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

📄 uneumt.pas

📁 设备巡检操作系统 本程序是专门为某电厂开发的设备巡检系统
💻 PAS
📖 第 1 页 / 共 5 页
字号:
procedure TEumt_Frm.TbnLastClick(Sender: TObject);
begin
if TrV.Selected=nil then exit; 
  dm.AQ3.Last;
  dm.AQ3.Refresh;
  listPartrec(dm.AQ3);
  FindPart;
end;

procedure TEumt_Frm.FindPart;
var
  nod:TTreeNode;
  i,j:integer;
  //str,str1:string;
begin
  nod:=nil;
  with dm.AQ3 do begin
  for i:=0 to TrV.Items.Count-1 do
  begin
    nod:=TrV.Items[i];
    if nod.Level<>0 then Continue;
    if TLabel(nod.Data).Caption=FieldByName('EupetNno').AsString then  //机组
      break;
  end;
   if nod<> nil then begin
    for j:=0 to nod.Count-1 do                                    //设备
      begin  //copy(nod.Item[j].Text,2,4)
        if nod.Item[j].Level<>1 then Continue;
        if TLabel(nod.Item[j].Data).Caption=FieldByName('Npartno').AsString then
        begin
          trv.Selected:=nod.Item[j];
        break;
        end;
      end;
   end;
  end;

  {nod:=nil; 方法二
  if TrV.Selected.Level=0 then
    nod:=Trv.Selected
  else if trv.Selected.Level=1 then
    nod:= trv.Selected.Parent
  else if trv.Selected.Level=2 then
    nod:=trv.Selected.Parent.Parent;
  j:=nod.Count-1;

  for i:=0 to j do
  begin
    subnod:=nod.Item[i];
    str:=  copy(subnod.Text,pos('[',subnod.Text)+1,pos(']',subnod.Text)-2);
    if copy(subnod.Text,pos('[',subnod.Text)+1,pos(']',subnod.Text)-2)=Edit4.Text then
    begin
      trv.Selected:=subnod;
      Break;
    end;
  end; }

end;

procedure TEumt_Frm.listPartrec(adotmp: TADOQuery);
begin
  with dm.AQ3 do begin
  Edit4.Text:=fieldbyname('partNo').AsString;
  edit2.Text:=fieldbyname('partname').AsString;
  edit10.Text:=fieldbyname('ib').AsString;
  edit11.Text:=fieldbyname('ibmemo').AsString;
  end;
end;

function TEumt_Frm.QPartNo(EuperNno:string): integer;
var
  ado_tmp:TADOQuery;
begin
  Result:=0;
  ado_tmp:=TADOQuery.Create(self);
  try
    with ado_tmp do begin
      Connection:=DM.AdoConn;
      sql.Clear;
      sql.Text:='Select * from T_part where EupetNno='+QuotedStr(EuperNno)+' order by NPARTNo DESC';
      Prepared:=True;
      Open;
      if Eof then
        Result:=1
      else
        Result:=strtoint(fieldbyname('Npartno').AsString)+1;
    end;
  finally
    ado_tmp.Free;
  end;

end;

procedure TEumt_Frm.TbnExitClick(Sender: TObject);
begin
  Close;
end;

procedure TEumt_Frm.TbnCpaddClick(Sender: TObject);
begin
  if TrV.Selected=nil then exit; 
  if (TrV.Selected.Level<>1) and (TrV.Selected.Level<>2)then
  begin
    Application.MessageBox('请选择你的部件','提示',MB_OK+MB_ICONWARNING);
    Exit;
  end;
  adoeumt[2].BeginTrans;
  DBGrid3.Enabled:=False;
  DM.AQ4.Append;
  TbnCpadd.Enabled:=False;
  TbnCpedt.Enabled:=False;
  TbnCpview.Enabled:=False;
  TbnCpdel.Enabled:=False;
  TbnCpcancel.Enabled:=True;
  TbnCpsave.Enabled:=True;
  TbnCpFirst.Enabled:=False;
  TbnCpPrior.Enabled:=False;
  TbnCpNext.Enabled:=False;
  TbnCpLast.Enabled:=False;
end;

procedure TEumt_Frm.DBGrid1CellClick(Column: TColumn);
begin
  If not dm.AQ2.Active then exit;
  if dm.AQ2.Recordset.RecordCount<=0 then exit;
  listrec(DM.AQ2);
  FindEumt(DM.AQ2.fieldbyname('EupetNNo').AsString);
  with DM.AQ3 do begin
    SQL.Clear;
    SQL.Text:='select * from T_part where EupetNno='+quotedstr(TLabel(Trv.Selected.Data).Caption);
    Prepared:=True;
    Open;
  end;
  with DM.AQ4 do
  begin
    SQL.Clear;
    SQL.Text:='select * from T_checkpt where EupetNno='+quotedstr(TLabel(Trv.Selected.Data).Caption);
    Prepared:=True;
    Open;
  end;
//  CreaChectPoints;

end;

procedure TEumt_Frm.DBGrid1ColEnter(Sender: TObject);
begin
  //:='DBGrid1ColEnter';

end;

procedure TEumt_Frm.DBGrid1ColumnMoved(Sender: TObject; FromIndex,
  ToIndex: Integer);
begin
  //:='DBGrid1ColumnMoved';
end;

procedure TEumt_Frm.DBGrid1DblClick(Sender: TObject);
begin
  //:='DBGrid1DblClick'
end;

procedure TEumt_Frm.DBGrid2CellClick(Column: TColumn);
begin
  If not dm.AQ3.Active then exit;
  if dm.AQ3.Recordset.RecordCount<=0 then exit;
  listPartrec(DM.AQ3);
  FindPart;
  with DM.AQ4 do
  begin
    SQL.Clear;
    SQL.Text:='select * from T_checkpt where EupetNno='+quotedstr(TLabel(Trv.Selected.Data).Caption);
    Prepared:=True;
    Open;
  end;
end;

procedure TEumt_Frm.TbnCpedtClick(Sender: TObject);
begin
if TrV.Selected=nil then exit; 
  if {(TrV.Selected.Level<>1) and }(TrV.Selected.Level<>2)then
  begin
    Application.MessageBox('请选择你的测点','提示',MB_OK+MB_ICONWARNING);
    Exit;
  end;
  adoeumt[2].BeginTrans;
  DBGrid3.Enabled:=False;
  DM.AQ4.Edit;
  TbnCpadd.Enabled:=False;
  TbnCpedt.Enabled:=False;
  TbnCpview.Enabled:=False;
  TbnCpdel.Enabled:=False;
  TbnCpcancel.Enabled:=True;
  TbnCpsave.Enabled:=True;
  TbnCpFirst.Enabled:=False;
  TbnCpPrior.Enabled:=False;
  TbnCpNext.Enabled:=False;
  TbnCpLast.Enabled:=False;
end;

procedure TEumt_Frm.TbnCpcancelClick(Sender: TObject);
begin
  if (DM.AQ4.State in [dsInsert]) or (DM.AQ4.State in [dsEdit]) then
  begin
  try
    DBGrid3.Enabled:=True;
    DM.AQ4.Cancel;
    adoeumt[2].RollbackTrans;
  except
  end;
  end;

  TbnCpadd.Enabled:=True;
  TbnCpedt.Enabled:=True;
  TbnCpview.Enabled:=True;
  TbnCpdel.Enabled:=True;
  TbnCpcancel.Enabled:=False;
  TbnCpsave.Enabled:=False;
  TbnCpFirst.Enabled:=True;
  TbnCpPrior.Enabled:=True;
  TbnCpNext.Enabled:=True;
  TbnCpLast.Enabled:=True;
end;

procedure TEumt_Frm.TbnCpsaveClick(Sender: TObject);
var

  isadd,bz:string;
  lab:TLabel;
  adotmp:TADOQuery;
  nod:TTreeNode;
begin
  bz:='';
  if not ControlMsr then exit;
  if (TrV.Selected.Level<>1) and (TrV.Selected.Level<>2)then
  begin
    Application.MessageBox('请选择你的设备','提示',MB_OK+MB_ICONWARNING);
    Exit;
  end;
  if edit1.Text<>'' then begin
    adotmp:=TADOQuery.Create(self);
    try
      adotmp.Connection:=DM.AdoConn;
      adotmp.SQL.Text:='select * from T_checkpt where Msrno='+quotedstr(edit1.Text);
      adotmp.Prepared:=True;
      adotmp.Open;
      if adotmp.Recordset.EOF then
        isadd:='enable';
    finally
      adotmp.Free;
    end;
  end else begin
    isadd:='enable';
  end;

  with DM.AQ4 do
  begin
    case DM.AQ4.State of
      dsInsert:begin
        if not (isadd='enable') then     //enable没有记录
         begin
          Application.MessageBox('对不起,此测点编号已经存在','提示',MB_OK+MB_ICONERROR);
          exit;
        end;
        bz:='add';
        if TrV.Selected.Level=1 then
        begin
          FieldByName('EupetNNo').AsString:=TLabel(TrV.Selected.Parent.Data).Caption;
          FieldByName('NPartNo').AsString:=TLabel(TrV.Selected.Data).Caption;//copy(TrV.Selected.Text,pos('[',TrV.Selected.Text)+1,pos(']',TrV.Selected.Text)-1);
          FieldByName('MsrNNo').AsString:=FormatMe(QMsrNNo(fieldbyname('EupetNNo').AsString,fieldbyname('NpartNo').AsString),4);
        end else begin
          FieldByName('EupetNNo').AsString:=TLabel(TrV.Selected.Parent.Parent.Data).Caption;
          FieldByName('NPartNo').AsString:=TLabel(TrV.Selected.Parent.Data).Caption;//copy(TrV.Selected.Parent.Text,pos('[',TrV.Selected.Parent.Text)+1,pos(']',TrV.Selected.Parent.Text)-1);
          FieldByName('MsrNNo').AsString:=FormatMe(QMsrNNo(fieldbyname('EupetNNo').AsString,fieldbyname('NpartNo').AsString),4);
        end;
      end;
      {dsEdit:begin
        if FieldByName('MsrNo').AsString<>copy(Edit1.Text,1,5) then    //是否是当前点
         if Application.MessageBox('此测点编号已经存在,你真的要修改么?','提示',MB_YESNO+MB_ICONQUESTION)<>idyes then
          exit;  
      end;     }
    end;
    if not (isadd='enable') then        //有此记录
    if FieldByName('MsrNo').AsString<>copy(Edit1.Text,1,5) then    //是否是当前点
      begin
        Application.MessageBox('对不起,此测点编号已经存在','提示',MB_OK+MB_ICONERROR);
        exit;
      end;
    if edit1.Text='' then
      FieldByName('MsrNo').AsInteger:=QMsrNo
    else
      FieldByName('MsrNo').AsString:=copy(Edit1.Text,1,6);
    if FieldByName('MsrNo').AsInteger>105536 then
    begin
      Application.MessageBox('对不起,测点编号数值过大,请修改后重试!','提示',MB_OK+MB_ICONINFORMATION);
      DM.AQ4.Cancel;
      adoEumt[2].RollbackTrans;
      Exit;
    end;
    FieldByName('MsrName').AsString:=copy(Edit16.Text,1,30);
    FieldByName('MsrItem').AsString:=copy(ComboBox1.Text,1,20);
    if ComboBox1.Text<>'检查' then begin
    FieldByName('DWV').AsString:=Edit5.Text;
    FieldByName('UWV').AsString:=Edit6.Text;
    end else
    begin
    FieldByName('DWV').AsString:='';
    FieldByName('UWV').AsString:='';
    end;
    //FieldByName('IB').AsString:=copy(Edit7.Text,1,15);
    {try
      FieldByName('PCDate').AsDateTime:=strtodatetime(Edit8.Text);
    except
      FieldByName('PCDate').AsDateTime:=Date;
    end;
  //  try
      FieldByName('PCLine').AsString:=Edit9.Text;
    except
      FieldByName('PCLine').AsInteger:=0;
    end; }

  end;
  try
    DBGrid3.Enabled:=True;
    DM.AQ4.UpdateRecord;
    DM.AQ4.Refresh;
    adoEumt[2].CommitTrans;

    if bz='add' then
    begin
      if TrV.Selected.Level=1 then
      begin
        nod:=TrV.Items.AddChild(TrV.Selected,'['+dm.AQ4.fieldbyname('MsrNo').AsString+']-'+dm.AQ4.fieldbyname('MsrName').AsString);
      end else begin
        nod:=TrV.Items.AddChild(TrV.Selected.Parent,'['+dm.AQ4.fieldbyname('MsrNo').AsString+']-'+dm.AQ4.fieldbyname('MsrName').AsString);
      end;
      nod.ImageIndex:=2;nod.SelectedIndex:=2;
      Trv.Selected:=nod;
      lab:=TLabel.Create(self);lab.Caption:=dm.AQ4.fieldbyname('MsrNo').AsString; lab.Tag:=trv.Items.Count;
      TrV.Selected.Data:=lab;trv.Refresh;
    end else begin
        TrV.Selected.Text:='['+dm.AQ4.fieldbyname('MsrNo').AsString+']-'+dm.AQ4.fieldbyname('MsrName').AsString;
    end;


  except
    DBGrid3.Enabled:=True;
    DM.AQ4.Cancel;
    adoEumt[2].RollbackTrans;
    Application.MessageBox('测点保存失败','提示',MB_OK+MB_ICONERROR);
  end;

  TbnCpadd.Enabled:=True;
  TbnCpedt.Enabled:=True;
  TbnCpview.Enabled:=True;
  TbnCpdel.Enabled:=True;
  TbnCpcancel.Enabled:=False;
  TbnCpsave.Enabled:=False;
  TbnCpFirst.Enabled:=True;
  TbnCpPrior.Enabled:=True;
  TbnCpNext.Enabled:=True;
  TbnCpLast.Enabled:=True;
end;

function TEumt_Frm.QMsrNNo(EuperNno, NPartNo: string): integer;
var
  ado_tmp:TADOQuery;
begin
  ado_tmp:=TADOQuery.Create(self);
  try
    with ado_tmp do begin
      Connection:=DM.AdoConn;
      sql.Clear;
      sql.Text:='Select * from T_checkpt where EupetNno='+QuotedStr(EuperNno)+' and NPartNo='+quotedstr(NPartNo)+' order by MsrNNo DESC';
      Prepared:=True;
      Open;
      if Eof then
        Result:=1
      else
        Result:=strtoint(fieldbyname('MsrNNo').AsString)+1;
      Free;
    end;
  except
    ado_tmp.Free;
    Result:=0;
  end;

end;

procedure TEumt_Frm.CreaChectPoints;
var
  tmpnod,subnod,nod:TTreeNode;
  i,j:integer;
  adotmp:TADOQuery;
  lab:TLabel;
begin
  if CreaPc then Exit;  //是否建测点

  if trv.Selected.Level>=2 then
   exit;
  adotmp:=TADOQuery.Create(nil);
  adotmp.Connection:=DM.AdoConn;
  Screen.Cursor:=crHourGlass;
  if trv.Selected.Level = 0 then begin
    nod:=TrV.Selected;
  end else begin
    nod:=trv.Selected.Parent;
  end;

  //for i:=0 to tmpi do
  //begin
    for j:=0 to {trv.Items[i]}nod.Count-1 do     //第一层
    begin
      subnod:=nod.Item[j];                    //sub第二层
     { if subnod.HasChildren then
      begin
        Screen.Cursor:=crDefault;
        exit;
      end;   }
      subnod.DeleteChildren;
      with  adotmp do
      begin
        Close;                                                                                             // quotedstr  {copy(subnod.Text,pos('[',subnod.Text)+1,pos(']',subnod.Text)-2)}
        SQL.Text:='select * from T_checkpt where eupetnno='+quotedstr(TLabel(nod.Data).Caption)+' and NpartNo='+quotedstr(TLabel(subnod.Data).Caption);//+' order by MsrNNo desc';
        Prepared:=True;
        Open;
        while not Recordset.EOF do
        begin
          tmpnod:=TrV.Items.AddChild(subnod,'['+fieldbyname('Msrno').AsString+']-'+fieldbyname('Msrname').AsString);
          lab:=TLabel.Create(self);
          lab.Caption:=fieldbyname('msrno').AsString;
          tmpnod.Data:=lab; tmpnod.ImageIndex:=2;tmpnod.SelectedIndex:=2;
          Next;
        end;
      end;
    end;
  //end;
  adotmp.Free;
  Screen.Cursor:=crDefault;
end;

⌨️ 快捷键说明

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