📄 unupdatamodi.pas
字号:
unit UnUpDataModi;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls;
type
TUPdate=record // 123 0001. N 2004-01-11 16:28:0
msrno,msrv,msrz,msrud:string;
end;
TUpDataModi_frm = class(TForm)
Button1: TButton;
Button2: TButton;
ListView1: TListView;
Memo1: TMemo;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
procedure ReadUpFile(filename:string);
function WriteDB: boolean;
function qNum:integer;
{ Private declarations }
public
{ Public declarations }
end;
var
UpDataModi_frm: TUpDataModi_frm;
implementation
uses Global, Undm, UnFuntion, DB, ADODB, Math;
{$R *.dfm}
// DJ0005 2005-03-03 09:35:05
//机组 设备 测点编号 测点名 测量项目 测量值 测量时间
//测试,射水泵及系统,40001,11,温度,18.2,2004-03-03 09:34:0
//测试,射水泵及系统,40002,11,听诊,40,2004-03-03 09:35:0
procedure TUpDataModi_frm.FormCreate(Sender: TObject);
begin
Height:=531; Left:=39; Top:= 1; Width:=950;
ListView1.Clear;
if FileExists(copy(username,1,4)) then //有无没有保存的数据,有就打开原来的数据
// memo1.Lines.LoadFromFile(copy(username,1,4))
ReadUpFile(copy(username,1,4))
else //没有就读初始的数据
ReadUpFile(cfData);
end;
procedure TUpDataModi_frm.Button1Click(Sender: TObject);
begin
if ListView1.Items.Count<=0 then
begin
MessageBox(Handle,'对不起,没有数据进行保存','',MB_OK+MB_ICONEXCLAMATION);
Close;
exit;
end;
{ try
memo1.Lines.SaveToFile(cfData);
except
end; }
if not WriteDB then
Application.MessageBox('数据格式错误,写入数据库失败!','错误',MB_OK+MB_ICONERROR);
Close;
end;
function TUpDataModi_frm.WriteDB: boolean;
var
str{,str2}:string;
i{,j}:integer;
num:Integer;
adoqncpt,adoqncpt1:TADOQuery; //未测点数据
ls:TStrings;
begin
str:=''; Result:=True;
num:=qNum;
adoqncpt:=TADOQuery.Create(Self);
adoqncpt1:=TADOQuery.Create(Self);
ls:=TStringList.Create;
with adoqncpt do
begin
Connection:=DM.AdoConn;
SQL.Text:='select * from view_sbdj_plandate where no='+QuotedStr(copy(username,1,4));
Open;
while Not Eof do
begin
ls.Add(fieldbyname('msrno').AsString);
Next;
end;
close;
Free;
end;
with adoqncpt1 do
begin
Connection:=DM.AdoConn;
SQL.Text:='select * from t_ncpt';
Open;
end;
with DM.AQ9 do
begin
close;
SQL.Text:='Select * from T_bdata'; //'select * from view_percurplan where view_sbdj.planno=T_employee.planno and T_employee.planno='+quotedstr(copy(username,1,4));
Prepared:=True;
Open;
try
DM.AdoConn.BeginTrans; //i:=1;
//while not adoqncpt.Eof do begin
For i:=0 to ListView1.Items.Count-1 do
begin
//inc(i);
if i<ListView1.Items.Count then begin
str:=''; //机组,设备,测点编号,测点名,测量项目,测量值,商量时间
Append;
FieldByName('msrno').AsString:=ListView1.Items[i].SubItems[3];
//测点不相同
ls.Delete(ls.IndexOf(fieldbyname('msrno').AsString));
FieldByName('checknum').AsInteger:=num;
if ListView1.Items[i].SubItems[6]='停巡' then
FieldByName('MsrValue').AsString:='-9999'
else if ListView1.Items[i].SubItems[6]='热备' then
FieldByName('MsrValue').AsString:='-10000'
else if ListView1.Items[i].SubItems[6]='维修' then
FieldByName('MsrValue').AsString:='-10001'
else if ListView1.Items[i].SubItems[6]='正常' then
FieldByName('MsrValue').AsString:='-10002'
else if ListView1.Items[i].SubItems[6]='异常' then
FieldByName('MsrValue').AsString:='-10003'
else
FieldByName('MsrValue').AsString:=ListView1.Items[i].SubItems[6];
try
FieldByName('CDate').AsDateTime:=StrToDateTime(trim(ListView1.Items[i].SubItems[7]));
except end;
{j:=length(FieldByName('MsrValue').AsString);
if copy(FieldByName('MsrValue').AsString,j,j)='.' then
FieldByName('MsrValue').AsString:=copy(FieldByName('MsrValue').AsString,1,j-1);
str2:=trim(copy(str,1,pos(' ',str)-1));str:=trim(copy(str,pos(' ',str),length(str)));
if str2<>'N' then //0为热备,=1为维修
begin
if FieldByName('MsrValue').AsString='0' then
FieldByName('MsrValue').AsString:='热备'
else
FieldByName('MsrValue').AsString:='维修';
end;
try
if str2='N' then
FieldByName('MsrValue').AsString:=inttostr(strtoint(FieldByName('MsrValue').AsString));
FieldByName('CDate').AsDateTime:=StrToDateTime(trim(str));
except
end; }
FieldByName('Perno').AsString:=copy(username,1,4);
FieldByName('Udate').AsString:=datetostr(date);
FieldByName('cbz').AsString:='';
Refresh;
end;
//adoqncpt.Next;
end;
for i:=0 to ls.Count-1 do
begin
adoqncpt1.Append;
adoqncpt1.FieldByName('msrno').AsString:=ls[i];
adoqncpt1.FieldByName('checknum').AsInteger:=num;
adoqncpt1.FieldByName('perno').AsString:=copy(UserName,1,4);
adoqncpt1.FieldByName('udate').AsDateTime:=now;
adoqncpt1.UpdateRecord;
adoqncpt1.Refresh;
end;
DM.AdoConn.CommitTrans;
memo1.Lines.Clear;memo1.Lines.SaveToFile(cfData);
MessageBox(Handle,'保存成功!','提示',MB_OK+MB_ICONINFORMATION);
DeleteFile(copy(UserName,1,4)) ;
except
Cancel;
DM.AdoConn.RollbackTrans;
Result:=False;
end;
end;
end;
procedure TUpDataModi_frm.Button2Click(Sender: TObject);
begin
if ListView1.Items.Count>0 then
begin
if Application.MessageBox('数据没有保存,你是否保存数据?','保存提示',MB_YESNO+MB_ICONQUESTION)=IDYES then
Button1Click(nil)
else begin
memo1.Lines.Clear;memo1.Lines.SaveToFile(cfData);
DeleteFile(copy(UserName,1,4)) ;
end;
end;
Close;
end;
procedure TUpDataModi_frm.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
Action:=caFree;UpDataModi_frm:=nil;
end;
procedure TUpDataModi_frm.ReadUpFile(filename:string); //读上传的数据到个人文件中
var
ls:TStringList;
//Dls:Tstringlist;
i,j:integer;
str,tmpstr,tmpv:string;
Up_tmp:TUPdate;
lv:TListItem;
begin
listview1.Clear;
ls:=TStringList.Create;// dls:=TStringList.Create;
tmpstr:='';
if filename<>copy(UserName,1,4) then
begin
ls.LoadFromFile(cfData);
if ls.Count<2 then exit;//没有数据
ls.SaveToFile(copy(username,1,4)); //保存个人数据文件
end else
ls.LoadFromFile(filename);
For i:=1 to ls.Count-1 do
begin
//if i=0 then
//begin
// Dls.Add(ls[i]);
// dls.Add('机组 设备 测点编号 测点名 测量项目 测量值 测量时间');
// Continue;
//end;
str:=ls[i];str:=trim(str);
up_tmp.msrno:=copy(str,1,pos(' ',str)-1);str:=trim(copy(str,pos(' ',str),length(str)));
Up_tmp.msrno:=inttostr(strtoint(Up_tmp.msrno)+40000);
Up_tmp.msrv:=trim(copy(str,1,pos(' ',str)-1));str:=trim(copy(str,pos(' ',str),length(str)));
j:=length(Up_tmp.msrv);
if copy(Up_tmp.msrv,j,j)='.' then
Up_tmp.msrv:=copy(Up_tmp.msrv,1,j-1);
Up_tmp.msrz:=trim(copy(str,1,pos(' ',str)-1));str:=trim(copy(str,pos(' ',str),length(str)));
try
if Up_tmp.msrz='N' then
Up_tmp.msrv:=FloatToStr(StrToFloat(Up_tmp.msrv));
Up_tmp.msrud:=trim(str);
except
end;
with dm.AQ9 do
begin
Close;
SQL.Text:='select * from view_sbdj where msrno='+quotedstr(up_tmp.msrno);
Open;
if not eof then
begin
lv:=ListView1.Items.Add;
lv.Caption:=fieldbyname('eupetno').AsString;
lv.SubItems.Add(fieldbyname('eupetname').AsString);
lv.SubItems.Add(fieldbyname('partno').AsString);
lv.SubItems.Add(fieldbyname('partname').AsString);
lv.SubItems.Add(fieldbyname('msrno').AsString);
lv.SubItems.Add(fieldbyname('msrname').AsString);
lv.SubItems.Add(fieldbyname('msritem').AsString);
tmpstr:=fieldbyname('eupetname').AsString+',';
tmpstr:=tmpstr+fieldbyname('partname').AsString+','; //机组,设备,测点编号,测点名,测量项目,测量值
tmpstr:=tmpstr+Up_tmp.msrno+',';
tmpstr:=tmpstr+fieldbyname('msrname').AsString+',';
tmpstr:=tmpstr+fieldbyname('msritem').AsString+',';
if Up_tmp.msrz='N' then
begin
if fieldbyname('msritem').AsString='检查' then //测量项目值
begin
if up_tmp.msrv='0' then
begin
tmpstr:=tmpstr+'正常'+',';
tmpv:='正常';
end else begin
tmpstr:=tmpstr+'异常'+',';
tmpv:='异常';
end;
end else begin
tmpstr:=tmpstr+Up_tmp.msrv+',';
tmpv:=up_tmp.msrv;
end;
end else begin
if up_tmp.msrv='0' then begin //0为热备,=1为维修
up_tmp.msrv:='停巡'
end else if up_tmp.msrv='1' then begin
up_tmp.msrv:='热备'
end else if up_tmp.msrv='2' then begin
Up_tmp.msrv:='维修';
end;
tmpv:=Up_tmp.msrv;
end;
lv.SubItems.Add(tmpv);
lv.SubItems.Add(Up_tmp.msrud);
tmpstr:=tmpstr+Up_tmp.msrud;
// dls.Add(tmpstr);
end;
end;
end;
{ try
if FileExists(copy(username,1,4)) then
DeleteFile(copy(username,1,4));
dls.SaveToFile(copy(username,1,4));
Memo1.Lines.Assign(dls);
ls.Clear;
ls.SaveToFile(cfData);
except
end; }
ls.Free;
//dls.Free;
end;
function TUpDataModi_frm.qNum: integer;
var
adoqnum:TADOQuery;
begin
adoqnum:=TADOQuery.Create(self);
try
with adoqnum do
begin
Connection:=DM.AdoConn;
SQL.Text:='select * from T_bdata where PerNo='+quotedstr(copy(UserName,1,4))+' order by checknum desc';
Open;
If Eof then Result:=1
else
Result:=fieldbyname('checknum').AsInteger+1;
end;
finally
adoqnum.Close;
adoqnum.Free;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -