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

📄 uneumt.pas

📁 设备巡检操作系统 本程序是专门为某电厂开发的设备巡检系统
💻 PAS
📖 第 1 页 / 共 5 页
字号:
  Aitem.Level:=-1; Aitem.index:=-1;
  if TrV.Selected=nil then exit;
  Aitem.Level:=TrV.Selected.Level;
  Aitem.index:=TLabel(TrV.Selected.Data).Tag-1;
{  if Aitem.Level=0 then
  begin
    Aitem.emput:=TrV.Selected.Index;
  end else begin
    Aitem.emput:=TrV.Selected.Parent.Index;
    Aitem.part:=TrV.Selected.Index;
  end; }

end;

procedure TEumt_Frm.N4Click(Sender: TObject);
var
  curnod,oldnod,subnod,tmpnod:TTreeNode;
  i,j:integer;
  lab:TLabel;
  adoqeumpt,adoqPart,adoqmsr:TADOQuery;
  s1,s2,s3,s4:string;
begin
  if (Aitem.Level=-1) or (Aitem.index=-1) then exit;
  adoqeumpt:=TADOQuery.Create(nil);adoqeumpt.Connection:=adoEumt[0];
  adoqPart:=TADOQuery.Create(nil);adoqPart.Connection:=adoEumt[1];
  adoqmsr:=TADOQuery.Create(nil); adoqmsr.Connection:=adoEumt[2];
  oldnod:=TrV.Items[aitem.index];
  s1:=TLabel(oldnod.Data).Caption;    //原设备eupetnno
  try
   // adoEumt[0].BeginTrans;
   // adoEumt[1].BeginTrans;
   // adoEumt[2].BeginTrans;
    with adoqeumpt do //选机组
    begin
      Close;
      sql.Text:='select * from T_eupet where eupetnno='+quotedstr(s1)+' order by eupetnno';
      Open;
    end;
    //s2:=adoqeumpt.fieldbyname('eupetnno').AsString;
    with dm.AQ2 do begin
      Append;
      FieldByName('eupetnno').AsString:=FormatMe(Qbh('T_Eupet','EupetNNo'),4);
      FieldByName('eupetno').AsString:=adoqeumpt.FieldByName('eupetno').AsString;
      FieldByName('eupetname').AsString:=adoqeumpt.FieldByName('eupetname').AsString;
      Post;
    end;
    curnod:=trv.Items.AddChild(nil,oldnod.Text+'复制');
    curnod.ImageIndex:=0; curnod.SelectedIndex:=0;
    lab:=TLabel.Create(nil);lab.Caption:=dm.AQ2.FieldByName('eupetnno').AsString;lab.Tag:=TrV.Items.Count;
    curnod.Data:=lab;                               //增加机组 完
    with adoqPart do begin
      Close;
      SQL.Text:='select * from T_part where eupetnno='+quotedstr(s1)+' order by eupetnno,npartno';
      Open;
    end;
    while not adoqPart.eof do    //所有的设备
    begin
      //                     //增加所有的设备
      Application.ProcessMessages;
      s2:=adoqPart.fieldbyname('NpartNo').AsString;
      dm.AQ3.Append;
      dm.AQ3.FieldByName('NpartNo').AsString:=FormatMe(QPartNo(dm.AQ2.FieldByName('EupetNNo').AsString),4);
      dm.AQ3.FieldByName('PartNO').AsString:=adoqPart.FieldByName('partNo').AsString;
      dm.AQ3.FieldByName('EupetNNo').AsString:=dm.AQ2.FieldByName('EupetNNo').AsString;
      dm.AQ3.FieldByName('Partname').AsString:=adoqPart.FieldByName('Partname').AsString;
      dm.AQ3.FieldByName('Ib').AsString:=adoqPart.FieldByName('Ib').AsString;
      dm.AQ3.FieldByName('ibMemo').AsString:=adoqPart.FieldByName('ibMemo').AsString;
      dm.AQ3.Post;
      subnod:=TrV.Items.AddChild(curnod,'['+dm.AQ3.FieldByName('PartNO').AsString+']-'+dm.AQ3.FieldByName('Partname').AsString);
      lab:=TLabel.Create(nil);lab.Caption:=dm.AQ3.FieldByName('NpartNo').AsString; lab.Tag:=TrV.Items.Count;
      subnod.ImageIndex:=1;subnod.SelectedIndex:=1;
      subnod.Data:=lab;
      //所有的设备完
      with adoqmsr do
      begin
        Close;
        SQL.Text:='select * from T_checkpt where eupetnno='+
        quotedstr(s1)+
        ' and Npartno='+quotedstr(s2)+' order by eupetnno,npartno,msrno';
        Open;
      end;
      while not adoqmsr.Eof do  //所有测点
      begin
        Application.ProcessMessages;
        dm.AQ4.Append;
        dm.AQ4.FieldByName('EupetNNo').AsString:=dm.AQ3.FieldByName('EupetNNo').AsString;
        dm.AQ4.FieldByName('NpartNo').AsString:=dm.AQ3.FieldByName('NpartNo').AsString;
        dm.AQ4.FieldByName('MsrNNo').AsString:=FormatMe(QMsrNNo(dm.AQ3.FieldByName('EupetNNo').AsString,dm.AQ3.FieldByName('NpartNo').AsString),4);
        dm.AQ4.FieldByName('Msrno').AsInteger:=QMsrNo;
        dm.AQ4.FieldByName('msritem').AsString:=adoqmsr.FieldByName('msritem').AsString;
        dm.AQ4.FieldByName('dwv').AsString:=adoqmsr.FieldByName('dwv').AsString;
        dm.AQ4.FieldByName('uwv').AsString:=adoqmsr.FieldByName('uwv').AsString;
        dm.AQ4.FieldByName('msrname').AsString:=adoqmsr.FieldByName('msrname').AsString;
        DM.AQ4.Post;
        tmpnod:=TrV.Items.AddChild(subnod,'['+dm.AQ4.FieldByName('MsrNo').AsString+']-'
        +dm.AQ4.FieldByName('msrname').AsString);
        lab:=TLabel.Create(nil);lab.Caption:=dm.AQ4.FieldByName('Msrno').AsString; lab.Tag:=TrV.Items.Count;
        tmpnod.ImageIndex:=2;tmpnod.SelectedIndex:=2;
        tmpnod.Data:=lab;
        adoqmsr.Next;
      end;        //所有的测点完
      adoqPart.Next;
    end;
   // adoEumt[2].CommitTrans;
  //  adoEumt[1].CommitTrans;
  //  adoEumt[0].CommitTrans;
  except
   // adoEumt[2].RollbackTrans;
  //  adoEumt[1].RollbackTrans;
  //  adoEumt[0].RollbackTrans;
  end;


end;

procedure TEumt_Frm.N6Click(Sender: TObject);
var
  curnod,oldnod,subnod,tmpnod:TTreeNode;
  i,j:integer;
  lab:TLabel;
  adoqeumpt,adoqPart,adoqmsr:TADOQuery;
  s1,s2,s3,s4:string;
begin
 // adoqeumpt:=TADOQuery.Create(nil);
  if (Aitem.Level=-1) or (Aitem.index=-1) then exit;
  adoqPart:=TADOQuery.Create(nil);
  adoqmsr:=TADOQuery.Create(nil);
  oldnod:=TrV.Items[aitem.index];  //设备点
  s3:=TLabel(oldnod.Parent.Data).Caption;   //复制机组
  s4:=TLabel(oldnod.Data).Caption;
  s1:=TLabel(TrV.Selected.Parent.Data).Caption;
 // s2:=TLabel(TrV.Selected.Data).Caption;
  if TrV.Selected.Level=0 then
    tmpnod:=trv.Selected
  else if trv.Selected.Level=1 then
    tmpnod:=TrV.Selected.Parent;
  with adoqPart do    //设备
  begin
    Connection:=adoEumt[1];
    sql.Text:='select * from T_Part where eupetnno='+quotedstr(s3)+' and Npartno='+quotedstr(s4)+' order by eupetnno,npartno';
    Prepared:=True; Open;
  end;
  
  with adoqmsr do    //测点
  begin
    Connection:=adoEumt[2];
    sql.Text:='select * from T_checkpt where eupetnno='+quotedstr(s3)+' and Npartno='+quotedstr(s4)+' order by eupetnno,npartno,msrno';
    Open;
  end;
  try
    //adoEumt[1].BeginTrans;
    //adoEumt[2].BeginTrans;
    with dm.AQ3 do
    begin
      Append;
      FieldByName('npartno').AsString:=FormatMe(QPartNo(s1),4);
      FieldByName('partno').AsString:=adoqpart.fieldbyname('partno').AsString;
      FieldByName('partname').AsString:=adoqpart.fieldbyname('partname').AsString;
      FieldByName('eupetnno').AsString:=s1;
      FieldByName('ib').AsString:=adoqpart.fieldbyname('ib').AsString;
      FieldByName('ibmemo').AsString:=adoqpart.fieldbyname('ibmemo').AsString;
      Post;
    end;
  
    curnod:=TrV.Items.AddChild(tmpnod,oldnod.Text);
    curnod.ImageIndex:=1; curnod.SelectedIndex:=1;
    lab:=TLabel.Create(nil);lab.Caption:=dm.AQ3.FieldByName('npartno').AsString; lab.Tag:=TrV.Items.Count;
    curnod.Data:=lab;
    for I:=0 to oldnod.Count-1 do
    begin   Application.ProcessMessages;
      with dm.AQ4 do
      begin
        Append;
        FieldByName('EupetNNo').AsString:=dm.AQ3.FieldByName('EupetNNo').AsString;
        FieldByName('NpartNo').AsString:=dm.AQ3.FieldByName('NpartNo').AsString;
        FieldByName('MsrNNo').AsString:=FormatMe(QMsrNNo(dm.AQ3.FieldByName('EupetNNo').AsString,dm.AQ3.FieldByName('NpartNo').AsString),4);
        FieldByName('Msrno').AsInteger:=QMsrNo;
        FieldByName('msritem').AsString:=adoqmsr.FieldByName('msritem').AsString;
        FieldByName('dwv').AsString:=adoqmsr.FieldByName('dwv').AsString;
        FieldByName('uwv').AsString:=adoqmsr.FieldByName('uwv').AsString;
        FieldByName('msrname').AsString:=adoqmsr.FieldByName('msrname').AsString;
        Post;
        adoqmsr.Next;
      end;
      subnod:=TrV.Items.AddChild(curnod,oldnod.Item[i].Text);
      lab:=TLabel.Create(nil);lab.Caption:=dm.AQ4.FieldByName('Msrno').AsString; lab.Tag:=TrV.Items.Count;
      subnod.ImageIndex:=2; subnod.SelectedIndex:=2;
      subnod.Data:=lab;
      Next;
    end;
    dm.AQ3.Refresh;
    dm.AQ4.Refresh;
    //adoEumt[2].CommitTrans;
    //adoEumt[1].CommitTrans;
  except
    //adoEumt[2].RollbackTrans;
    //adoEumt[1].RollbackTrans;
  end;
  adoqeumpt.Free;
  adoqPart.Free;


end;

procedure TEumt_Frm.N10Click(Sender: TObject);
var
  Aadocon:TADOConnection;
  AadoQMsr:TADOQuery;
  i,tmpMsrno,Msrno:integer;

begin
  if Application.MessageBox('你真的想重排这些编号么?','提示',MB_YESNO+MB_ICONQUESTION)<>idyes then exit;
  Caption:= TLabel(trv.Selected.Parent.Parent.Data).Caption;
  with dm.AQ4 do     //打开本机组的测点
  begin
    //Connection:=Aadocon;
    sql.Text:='select * from T_checkpt where eupetnno='+quotedstr(TLabel(trv.Selected.Parent.Parent.Data).Caption)+'order by msrno';
    Prepared:=True;
    Open;
    if Eof then begin
      Application.MessageBox('没有找到你想重编的测点内容?','提示',MB_OK+MB_ICONINFORMATION);
      exit;
    end;
  end;

 // i:=inttostr(TLabel(trv.Selected.Parent.Parent.Data).Caption);
  Aadocon:=TADOConnection.Create(self);
  with Aadocon do
  begin
    LoginPrompt:=False;
    ConnectionString:=Connstr;
    Connected:=True;
  end;

  AadoQMsr:=TADOQuery.Create(self);
  AadoQMsr.Connection:=Aadocon;
  Msrno:=dm.AQ4.fieldbyname('Msrno').AsInteger; //
  try
    Aadocon.BeginTrans;
    adoEumt[2].BeginTrans;
    while not DM.AQ4.Eof do  //不是最后一测点
    begin
      Application.ProcessMessages;
      with dm.AQ4 do begin
        Edit;
        tmpMsrno:=fieldbyname('Msrno').AsInteger;//旧的Msrno
        fieldbyname('Msrno').AsInteger:=Msrno;
        dm.AQ4.Post;
      end;
     // edit12.Text:=inttostr(tmpMsrno);
     // edit13.Text:=inttostr(Msrno);
      with AadoQMsr do
      begin
        sql.Text:='update T_BDATA set Msrno='+inttostr(Msrno)+' where Msrno='+inttostr(tmpMsrno);
        ExecSQL;
        sql.Text:='update T_Ncpt set Msrno='+inttostr(Msrno)+' where Msrno='+inttostr(tmpMsrno);
        ExecSQL;
        SQL.Text:='update T_PERPLAN set Msrno='+inttostr(Msrno)+' where Msrno='+inttostr(tmpMsrno);
        ExecSQL;
      end;
      Msrno:=Msrno+1;
      dm.AQ4.Next;
    end;//移动测点
    adoEumt[2].CommitTrans;
    Aadocon.CommitTrans;
    Application.MessageBox('新的测点编号已经重新生成!','提示',MB_OK+MB_ICONINFORMATION);
  except
    Caption:=inttostr(tmpMsrno)+'-'+inttostr(Msrno);
    dm.AQ4.Cancel;
    adoEumt[2].RollbackTrans;
    AadoQMsr.Cancel;
    Aadocon.RollbackTrans;  
    Application.MessageBox('测点编号生成失败,请检查其它机组中的测点编号是否正确!','提示',MB_OK+MB_ICONINFORMATION);
  end;
  try
  AadoQMsr.Free;
  Aadocon.Free;
  except
  end;
  Close;
end;

procedure TEumt_Frm.N8Click(Sender: TObject);
var
  curnod,oldnod,subnod,tmpnod:TTreeNode;
  i,j:integer;
  lab:TLabel;
  adoqeumpt,adoqPart,adoqmsr:TADOQuery;
  s1,s2,s3,s4:string;
begin
 // adoqeumpt:=TADOQuery.Create(nil);
  if (Aitem.Level=-1) or (Aitem.index=-1) then exit;
  adoqPart:=TADOQuery.Create(nil);
  adoqmsr:=TADOQuery.Create(nil);
  oldnod:=TrV.Items[aitem.index];  //设备点
  Caption:=oldnod.Text;
  s3:=TLabel(oldnod.Parent.Data).Caption;   //复制原机组
  s4:=TLabel(oldnod.Data).Caption;
  s1:=TLabel(TrV.Selected.Parent.Data).Caption;  //现在机组
  s2:=TLabel(TrV.Selected.Data).Caption;         //现在设备
  if TrV.Selected.Level=0 then
    tmpnod:=trv.Selected
  else if trv.Selected.Level=1 then
    tmpnod:=TrV.Selected.Parent;
  with adoqPart do    //设备
  begin
    Connection:=adoEumt[1];
    sql.Text:='select * from T_Part where eupetnno='+quotedstr(s1)+' and Npartno='+quotedstr(s2)+' order by eupetnno,npartno';
    Prepared:=True; Open;
  end;
  
  with adoqmsr do    //测点
  begin
    Connection:=adoEumt[2];
    sql.Text:='select * from T_checkpt where eupetnno='+quotedstr(s3)+' and Npartno='+quotedstr(s4)+' order by eupetnno,npartno,msrno';
    Open;
  end;
  try

   // adoEumt[2].BeginTrans;
    curnod:=TrV.Selected;
    //curnod.ImageIndex:=1; curnod.SelectedIndex:=1;
    //lab:=TLabel.Create(nil);lab.Caption:=dm.AQ3.FieldByName('npartno').AsString;
   // curnod.Data:=lab;
    for I:=0 to oldnod.Count-1 do
    begin
      with dm.AQ4 do
      begin     Application.ProcessMessages;
        Append;
        FieldByName('EupetNNo').AsString:=s1;
        FieldByName('NpartNo').AsString:=s2;
        FieldByName('MsrNNo').AsString:=FormatMe(QMsrNNo(s1,s2),4);
        FieldByName('Msrno').AsInteger:=QMsrNo;
        FieldByName('msritem').AsString:=adoqmsr.FieldByName('msritem').AsString;
        FieldByName('dwv').AsString:=adoqmsr.FieldByName('dwv').AsString;
        FieldByName('uwv').AsString:=adoqmsr.FieldByName('uwv').AsString;
        FieldByName('msrname').AsString:=adoqmsr.FieldByName('msrname').AsString;
        Post;
        adoqmsr.Next;
      end;
      subnod:=TrV.Items.AddChild(curnod,oldnod.Item[i].Text);
      lab:=TLabel.Create(nil);lab.Caption:=dm.AQ4.FieldByName('Msrno').AsString;lab.Tag:=TrV.Items.Count;
      subnod.ImageIndex:=2; subnod.SelectedIndex:=2;
      subnod.Data:=lab;
      Next;
    end;
    dm.AQ3.Refresh;
    dm.AQ4.Refresh;
   // adoEumt[2].CommitTrans;
  except
   // adoEumt[2].RollbackTrans;
  end;
  adoqeumpt.Free;
  adoqPart.Free;


end;

end.











































{

 procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
 DataCol: Integer; Column: TColumn; State: TGridDrawState);
var i:integer;
begin
 { with (Sender as TDBGrid).Canvas do //画 cell 的边框
  begin
    Pen.Color := $00ff0000; //定义画笔颜色(蓝色)
    MoveTo(Rect.Left, Rect.Bottom); //画笔定位
    LineTo(Rect.Right, Rect.Bottom); //画蓝色的横线
    Pen.Color := clbtnface; //定义画笔颜色(兰色)
    MoveTo(Rect.Right, Rect.Top); //画笔定位
    LineTo(Rect.Right, Rect.Bottom); //画绿色
  end;
end; }
















⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -