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

📄 uneumt.pas

📁 设备巡检操作系统 本程序是专门为某电厂开发的设备巡检系统
💻 PAS
📖 第 1 页 / 共 5 页
字号:

procedure TEumt_Frm.listPCrec(adotmp: TADOQuery);
begin
  with DM.AQ4 do
  begin
    Edit1.Text:=fieldbyname('MsrNo').AsString;
    Edit16.Text:=fieldbyname('MsrName').AsString;
    ComboBox1.ItemIndex:=ComboBox1.Items.IndexOf(fieldbyname('MsrItem').AsString);
    //ComboBox1.Text:=fieldbyname('MsrItem').AsString;
    Edit5.Text:=fieldbyname('DWV').AsString;
    Edit6.Text:=fieldbyname('UWV').AsString;
    Edit7.Text:=fieldbyname('IB').AsString;
    Edit8.Text:=fieldbyname('PCDate').AsString;
    Edit9.Text:=fieldbyname('PCLine').AsString;
  end;
end;

procedure TEumt_Frm.TbnCpFirstClick(Sender: TObject);
begin
  if TrV.Selected=nil then exit;
 // if TrV.Selected.Level<1 then exit;
  DM.AQ4.First;
  DM.AQ4.Refresh;
  listPCrec(dm.AQ4);
  FindPc;
end;

procedure TEumt_Frm.TbnCpPriorClick(Sender: TObject);
begin
  if TrV.Selected=nil then exit;

  DM.AQ4.Prior;
  DM.AQ4.Refresh;
  listPCrec(dm.AQ4);
  FindPc;
end;

procedure TEumt_Frm.TbnCpNextClick(Sender: TObject);
begin
//if TrV.Selected.Level<1 then exit;
if TrV.Selected=nil then exit; 
  DM.AQ4.Next;
  DM.AQ4.Refresh;
  listPCrec(dm.AQ4);
  FindPc;
end;

procedure TEumt_Frm.TbnCpLastClick(Sender: TObject);
begin
//if TrV.Selected.Level<1 then exit;
if TrV.Selected=nil then exit; 
  DM.AQ4.Last;
  DM.AQ4.Refresh;
  listPCrec(dm.AQ4);
  FindPc;
end;

procedure TEumt_Frm.FindPc;
var
  nod,subnod:TTreeNode;
  i,j:integer;
  isfind:boolean;
begin
  nod:=nil;subnod:=nil;
  isfind:=False;
  Screen.Cursor:=crHourGlass;
 // if TrV.Selected.Level<1 then exit;
  case trv.Selected.Level of
    1:nod:=trv.Selected.Parent;
    2:nod:=trv.Selected.Parent.Parent;
    0:nod:=trv.Selected;
  end;
  for i:=0 to nod.Count-1 do
  begin
    subnod:=nod.Item[i];
    if isfind then Break;
    for j:=0 to subnod.Count-1 do begin
      if isfind then Break;
      if Tlabel(subnod.Item[j].Data).Caption=Edit1.Text then
      begin
        Application.ProcessMessages;
        trv.Selected:=subnod.Item[j];
        //Screen.Cursor:=crDefault;
        isfind:=True;
      end;
    end;
  end;
  if not isfind then

  begin
    for i:=0 to trv.Items.Count-1 do
    begin
      Application.ProcessMessages;
      if trv.Items[i].Data<>nil then
        if TLabel(trv.Items[i].Data).Caption=edit1.Text then
        begin
          trv.Selected:=trv.Items[i];
          Break;
        end;
    end;
  end;
    Screen.Cursor:=crDefault;
end;

procedure TEumt_Frm.TbnCpdelClick(Sender: TObject);
var
  adodelMsr:TADOQuery;
  msrno:integer;
begin
  if TrV.Selected=nil then exit;
  if trv.Selected.Level<>2 then exit;
  if (DM.AQ4.State in [dsInsert]) or (DM.AQ4.State in [dsEdit]) then  exit;
  if dm.AQ4.Recordset.RecordCount<=0 then exit;
  if Application.MessageBox('你真的要删除此测点么?','提示',MB_YESNO+MB_ICONQUESTION)=idno then exit;
  try
    adodelMsr:=TADOQuery.Create(self);
    adodelMsr.Connection:=adoeumt[2];
    adoEumt[2].BeginTrans;
    msrno:=dm.AQ4.fieldbyname('msrno').AsInteger;
    DM.AQ4.Delete;
    dm.AQ4.Refresh;
    with adodelMsr do
    begin
      SQL.Text:='delete from T_Ncpt where Msrno='+inttostr(msrno);
      ExecSQL;
      SQL.Text:='delete from T_PerPlan where Msrno='+inttostr(msrno);
      ExecSQL;
      SQL.Text:='delete from T_Bdata where Msrno='+inttostr(msrno);
      ExecSQL;
    end;
    adoEumt[2].CommitTrans;
    trv.Selected.Delete;
    listPCrec(dm.AQ4);
    FindPc;
    //CreaChectPoints;
  except
    DM.AQ4.Cancel;
    adoEumt[2].RollbackTrans;
    Application.MessageBox('删除测点失败!','错误',MB_OK+MB_ICONERROR);
  end;

end;

procedure TEumt_Frm.DBGrid3CellClick(Column: TColumn);
begin
  If not dm.AQ4.Active then exit;
  if dm.AQ4.Recordset.RecordCount<=0 then exit;
 // CreaChectPoints;
  listPCrec(dm.AQ4);   FindPc;
end;

procedure TEumt_Frm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Action:=cafree;Eumt_Frm:=nil;
end;

function TEumt_Frm.ControlMsr: Boolean;
var
  i:integer;
begin
  Result:=True;
  try
    i:=strtoint(edit1.Text);
  except
    i:=40001;
  end;
  if (i<40001) OR (i>105536) then
  begin
    Application.MessageBox('请输入正确的测点编号!','提示',MB_OK+MB_ICONINFORMATION);
    Result:=False;
    exit;
  end;
  {If edit1.Text='' Then
  begin
    Application.MessageBox('测点编号不能为空','提示',MB_OK+MB_ICONINFORMATION);
    edit1.SetFocus;  Result:=False;
    Exit;
  end;  }
  If edit16.Text='' Then
  begin
    Application.MessageBox('测点名称不能为空','提示',MB_OK+MB_ICONINFORMATION);
    edit16.SetFocus; Result:=False;
    Exit;
  end;
  If combobox1.Text='' Then
  begin
    Application.MessageBox('测点项目不能为空','提示',MB_OK+MB_ICONINFORMATION);
    Exit;   Result:=False;
  end;
  If ((edit6.Text='') and (ComboBox1.Text<>'检查' )) Then
  begin
    Application.MessageBox('上限报警值不能为空','提示',MB_OK+MB_ICONINFORMATION);
    edit6.SetFocus; Result:=False;
    Exit;
  end;
  If ((edit5.Text='') and (ComboBox1.Text<>'检查')) Then
  begin
    Application.MessageBox('下限报警值不能为空','提示',MB_OK+MB_ICONINFORMATION);
    edit5.SetFocus;  Result:=False;
    Exit;
  end;


end;

procedure TEumt_Frm.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  if not (key in ['0'..'9','.',#8,#13]) then key:=#0;
end;

procedure TEumt_Frm.DBGrid1DrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumn;
  State: TGridDrawState);
begin
  if gdSelected in State then
    exit;

    if dm.AQ2.RecNo mod 2 = 0 then
      (Sender as TDBGrid).Canvas.Brush.Color := rgb(255,255,240)//rgb(253,255,253),clinfobk , RGB(226, 253, 254);
  else
    (Sender as TDBGrid).Canvas.Brush.Color := rgb(225,249,255);//
  DBGrid1.DefaultDrawColumnCell(Rect,DataCol,Column,State);

end;



procedure TEumt_Frm.DBGrid2DrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumn;
  State: TGridDrawState);
begin
  if gdSelected in State then
    exit;

    if dm.AQ3.RecNo mod 2 = 0 then
      (Sender as TDBGrid).Canvas.Brush.Color := rgb(255,255,240)//rgb(253,255,253),clinfobk , RGB(226, 253, 254);
  else
    (Sender as TDBGrid).Canvas.Brush.Color := rgb(225,249,255);//
  DBGrid2.DefaultDrawColumnCell(Rect,DataCol,Column,State);
end;

procedure TEumt_Frm.DBGrid3DrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumn;
  State: TGridDrawState);
begin
  if gdSelected in State then exit;

    if dm.AQ4.RecNo mod 2 = 0 then
      (Sender as TDBGrid).Canvas.Brush.Color := rgb(255,255,240)//rgb(253,255,253),clinfobk , RGB(226, 253, 254);
  else
    (Sender as TDBGrid).Canvas.Brush.Color := rgb(225,249,255);//
  DBGrid3.DefaultDrawColumnCell(Rect,DataCol,Column,State);
end;


procedure TEumt_Frm.TrVMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
 {if Trv.GetNodeAt(X,Y)<> nil then
 if  TrV.GetNodeAt(X,Y).Index<> TrV.Selected.Index then
 begin
  TrV.Selected:=TrV.GetNodeAt(X,Y);
  if trv.Selected.HasChildren then
    TrV.Selected.Expanded:=not TrV.Selected.Expanded;
 end;} 
end;

procedure TEumt_Frm.ComboBox1Click(Sender: TObject);
begin
  if ((dm.AQ4.State in [dsInsert]) or (dm.AQ4.State in [dsedit])) and (pos('振动',TComboBox(Sender).Text)>0) then
  begin
    Edit16.Text:=ComboBox1.Text;
  end;
end;

procedure TEumt_Frm.N1Click(Sender: TObject);
begin
 //复制
  with DM.AQ4 do begin
    if Recordset.RecordCount<=0 then exit;
    if TrV.Selected.Level=1 then
    begin
      CMsr.EupetNNo:=TLabel(TrV.Selected.Parent.Data).Caption;
      CMsr.NPartNo:=TLabel(TrV.Selected.Data).Caption;
    end else begin
      CMsr.EupetNNo:=TLabel(TrV.Selected.Parent.Parent.Data).Caption;
      CMsr.NPartNo:=TLabel(TrV.Selected.Parent.Data).Caption;

    end;
    //CMsr.MsrNNo:=FormatMe(QMsrNNo(fieldbyname('EupetNNo').AsString,fieldbyname('NpartNo').AsString),4);
    CMsr.MsrNo:=0;
    CMsr.MsrName:=fieldbyname('MsrName').AsString;
    CMsr.MsrItem:=fieldbyname('MsrItem').AsString;
    CMsr.DWV:=fieldbyname('DWV').AsString;
    CMsr.UWV:=fieldbyname('UWV').AsString;
  end;
  N2.Enabled:=True;
end;

procedure TEumt_Frm.N2Click(Sender: TObject);
var
  lab:TLabel;
  nod:TTreeNode;
begin
//粘贴
  CMsr.EupetNNo:=TLabel(TrV.Selected.Parent.Parent.Data).Caption;
  CMsr.NPartNo:=TLabel(TrV.Selected.Parent.Data).Caption;
  with DM.AQ4 do
  begin
    try
      adoEumt[2].BeginTrans;
      Append; 
      FieldByName('EupetNNo').AsString:=CMsr.EupetNNo;
      FieldByName('NPartNo').AsString:=CMsr.NPartNo;
      FieldByName('MsrNNo').AsString:=FormatMe(QMsrNNo(fieldbyname('EupetNNo').AsString,fieldbyname('NpartNo').AsString),4);
      FieldByName('MsrNo').AsInteger:=QMsrNo;
      FieldByName('MsrName').AsString:=copy(CMsr.MsrName,1,30);
      FieldByName('MsrItem').AsString:=copy(CMsr.MsrItem,1,20);
      FieldByName('DWV').AsString:=CMsr.DWV;
      FieldByName('UWV').AsString:=CMsr.UWV;
      UpdateRecord;
      Refresh;
      adoEumt[2].CommitTrans;
      if TrV.Selected.Level=1 then
      begin
        nod:=TrV.Items.AddChild(TrV.Selected,'['+fieldbyname('MsrNo').AsString+']-'+fieldbyname('MsrName').AsString);
      end else begin
        nod:=TrV.Items.AddChild(TrV.Selected.Parent,'['+fieldbyname('MsrNo').AsString+']-'+fieldbyname('MsrName').AsString);
      end;
      nod.ImageIndex:=2;nod.SelectedIndex:=2;
      Trv.Selected:=nod;
      lab:=TLabel.Create(self);lab.Caption:=fieldbyname('MsrNo').AsString; lab.Tag:=TrV.Items.Count;
      TrV.Selected.Data:=lab;trv.Refresh;
    except
      if DM.AQ4.State in [dsedit,dsinsert] then begin
      Cancel;
      adoEumt[2].RollbackTrans;
      end;
    end;
  end;

end;


function TEumt_Frm.QMsrNo: 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 MsrNo from T_checkpt order by MsrNo DESC';
      Prepared:=True;
      Open;
      if Eof then
        Result:=40001
      else
        Result:=fieldbyname('MsrNo').AsInteger+1;
      Free;
    end;
    if Result<40001 then Result:=40001;
  except
    ado_tmp.Free;
    Result:=1;
  end;

end;

procedure TEumt_Frm.PopMsrNoPopup(Sender: TObject);
begin
  case TrV.Selected.Level of
    0:begin
      N1.Visible:=False;
      N2.Visible:=False;
      N3.Visible:=True;
      N4.Visible:=True;
      N5.Visible:=False;
      N6.Visible:=False;
      N7.Visible:=False;
      N8.Visible:=False;
      N11.Visible:=False;
      N9.Visible:=False;
      N10.Visible:=False;
    end;
    1:begin
      N1.Visible:=False;
      N2.Visible:=False;
      N3.Visible:=False;
      N4.Visible:=False;
      N5.Visible:=True;
      N6.Visible:=True;
      N7.Visible:=True;
      N8.Visible:=True;
      N11.Visible:=True;
      N9.Visible:=False;
      N10.Visible:=False;
    end;
    2:begin
      N1.Visible:=True;
      N2.Visible:=True;
      N7.Visible:=False;
      N8.Visible:=False;
      N11.Visible:=False;
      N3.Visible:=False;
      N4.Visible:=False;
      N5.Visible:=False;
      N6.Visible:=False;
      N9.Visible:=True;
      N10.Visible:=True;
    end;
  end;

end;

procedure TEumt_Frm.TrVAddition(Sender: TObject; Node: TTreeNode);
begin
  //caption:=node.Text;
 { if node=nil then exit;
  case node.Level of
    1:begin
     // node.Expanded:=not node.Expanded;
    end;
    0:begin
      if node.Parent=nil then exit;
      if not node.HasChildren then exit;
     node.Parent.Expanded:=not node.Parent.Expanded;
    end;
    2:begin
      if node.Parent.Parent=nil then exit;
      if not node.Parent.Parent.HasChildren then exit;
     node.Parent.Parent.Expanded:=True;
    end;
  end;  }
end;

procedure TEumt_Frm.N3Click(Sender: TObject);
begin

⌨️ 快捷键说明

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