⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unupdatamodi.pas

📁 设备巡检操作系统 本程序是专门为某电厂开发的设备巡检系统
💻 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 + -