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

📄 uneumt.pas

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

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComCtrls, StdCtrls, Buttons, ToolWin, Grids, DBGrids, DB,
  ExtCtrls,ADODB, ImgList, Menus,strutils;

type
  TFindEmun=Procedure (EupetNNo:string);
  TCopyItem=Record
    Level:integer;
    index:integer;
  end;
  TCMsr=Record
    EupetNNo,
    NPartNo,
    MsrNNo:string;
    MsrNo:integer;
    MsrName,
    MsrItem,
    DWV,
    UWV:string;
  end;
  TEumt_Frm = class(TForm)
    TrV: TTreeView;
    Page1: TPageControl;
    TabSheet1: TTabSheet;
    TabSheet2: TTabSheet;
    TabSheet3: TTabSheet;
    Panel1: TPanel;
    Label3: TLabel;
    Label19: TLabel;
    Edit3: TEdit;
    Edit19: TEdit;
    DS1: TDataSource;
    DBGrid1: TDBGrid;
    Panel2: TPanel;
    Label1: TLabel;
    Edit2: TEdit;
    Label4: TLabel;
    Edit4: TEdit;
    DBGrid2: TDBGrid;
    Panel3: TPanel;
    Label16: TLabel;
    Edit16: TEdit;
    ToolBar3: TToolBar;
    TbnCpadd: TToolButton;
    TbnCpedt: TToolButton;
    TbnCpview: TToolButton;
    TbnCpdel: TToolButton;
    TbnCpcancel: TToolButton;
    TbnCpsave: TToolButton;
    TbnCpExit: TToolButton;
    DS2: TDataSource;
    DBGrid3: TDBGrid;
    Label2: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    Label10: TLabel;
    Edit1: TEdit;
    Edit5: TEdit;
    Edit6: TEdit;
    Edit7: TEdit;
    Edit8: TEdit;
    Edit9: TEdit;
    ComboBox1: TComboBox;
    TbnCpFirst: TToolButton;
    ToolBar2: TToolBar;
    Tbnadd: TToolButton;
    Tbnedt: TToolButton;
    Tbnview: TToolButton;
    Tbndel: TToolButton;
    Tbncel: TToolButton;
    Tbnsv: TToolButton;
    TbnFirst: TToolButton;
    TbnPrior: TToolButton;
    TbnNext: TToolButton;
    TbnLast: TToolButton;
    TbnExit: TToolButton;
    ToolBar1: TToolBar;
    TbnEmAdd: TToolButton;
    TbnEmEdit: TToolButton;
    TbnEmView: TToolButton;
    TbnEmDel: TToolButton;
    TbnEmCancel: TToolButton;
    TbnEmSave: TToolButton;
    TbnEmFirst: TToolButton;
    TbnEmPrior: TToolButton;
    TbnEmNext: TToolButton;
    TbnEmLast: TToolButton;
    TbnEmExit: TToolButton;
    TbnCpPrior: TToolButton;
    TbnCpNext: TToolButton;
    TbnCpLast: TToolButton;
    DS3: TDataSource;
    ImageList1: TImageList;
    ImageList2: TImageList;
    ToolButton1: TToolButton;
    ToolButton2: TToolButton;
    ToolButton3: TToolButton;
    Label12: TLabel;
    Edit10: TEdit;
    PopMsrNo: TPopupMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    Label11: TLabel;
    Edit11: TEdit;
    N3: TMenuItem;
    N4: TMenuItem;
    N5: TMenuItem;
    N6: TMenuItem;
    N9: TMenuItem;
    N10: TMenuItem;
    N7: TMenuItem;
    N8: TMenuItem;
    N11: TMenuItem;
    procedure TrVClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure TbnEmAddClick(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure TbnEmEditClick(Sender: TObject);
    procedure TbnEmCancelClick(Sender: TObject);
    procedure TbnEmSaveClick(Sender: TObject);
    procedure TbnEmDelClick(Sender: TObject);
    procedure TbnEmFirstClick(Sender: TObject);
    procedure TbnEmPriorClick(Sender: TObject);
    procedure TbnEmNextClick(Sender: TObject);
    procedure TbnEmLastClick(Sender: TObject);
    procedure TbnEmExitClick(Sender: TObject);
    procedure TbnaddClick(Sender: TObject);
    procedure TbnedtClick(Sender: TObject);
    procedure TbncelClick(Sender: TObject);
    procedure TbnsvClick(Sender: TObject);
    procedure TbndelClick(Sender: TObject);
    procedure TbnFirstClick(Sender: TObject);
    procedure TbnPriorClick(Sender: TObject);
    procedure TbnNextClick(Sender: TObject);
    procedure TbnLastClick(Sender: TObject);
    procedure TbnExitClick(Sender: TObject);
    procedure TbnCpaddClick(Sender: TObject);
    procedure DBGrid1CellClick(Column: TColumn);
    procedure DBGrid1ColEnter(Sender: TObject);
    procedure DBGrid1ColumnMoved(Sender: TObject; FromIndex,
      ToIndex: Integer);
    procedure DBGrid1DblClick(Sender: TObject);
    procedure DBGrid2CellClick(Column: TColumn);
    procedure TbnCpedtClick(Sender: TObject);
    procedure TbnCpcancelClick(Sender: TObject);
    procedure TbnCpsaveClick(Sender: TObject);
    procedure TbnCpFirstClick(Sender: TObject);
    procedure TbnCpPriorClick(Sender: TObject);
    procedure TbnCpNextClick(Sender: TObject);
    procedure TbnCpLastClick(Sender: TObject);
    procedure TbnCpdelClick(Sender: TObject);
    procedure DBGrid3CellClick(Column: TColumn);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure Edit1KeyPress(Sender: TObject; var Key: Char);
    procedure DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
      DataCol: Integer; Column: TColumn; State: TGridDrawState);
    procedure DBGrid2DrawColumnCell(Sender: TObject; const Rect: TRect;
      DataCol: Integer; Column: TColumn; State: TGridDrawState);
    procedure DBGrid3DrawColumnCell(Sender: TObject; const Rect: TRect;
      DataCol: Integer; Column: TColumn; State: TGridDrawState);
    procedure TrVMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure ComboBox1Click(Sender: TObject);
    procedure N1Click(Sender: TObject);
    procedure N2Click(Sender: TObject);
    procedure PopMsrNoPopup(Sender: TObject);
    procedure TrVAddition(Sender: TObject; Node: TTreeNode);
    procedure N3Click(Sender: TObject);
    procedure N4Click(Sender: TObject);
    procedure N6Click(Sender: TObject);
    procedure N10Click(Sender: TObject);
    procedure N8Click(Sender: TObject);
  private
    { Private declarations }
    adoEumt: array[0..3] of TADOConnection;
    CMsr:TCMsr;
    Procedure CreaTreeEumt();
    procedure CreaChectPoints();
    Function ControlEdit():boolean;
    procedure listrec(adotmp:TADOQuery);
    procedure listPartrec(adotmp:TADOQuery);
    procedure listPCrec(adotmp:TADOQuery);
    procedure FindEumt(EupetNNo:string);
    function QPartNo(EuperNno:string):integer;
    function QMsrNNo(EuperNno,NPartNo:string):integer;
    function QMsrNo:integer;
    function ControlMsr():Boolean;
    procedure FindPart();
    procedure FindPc();
  public
    { Public declarations }
  end;

var
  Eumt_Frm: TEumt_Frm;

implementation

uses Undm, UnPlan, UnFuntion, Math, StdConvs;

{$R *.dfm}

var
  trvnod:integer=0;
  CreaPc:Boolean;
  Aitem:TCopyItem;

procedure TEumt_Frm.TrVClick(Sender: TObject);

begin
  if TrV.Selected=nil then exit;
  Tbncel.Click;
  TbnCpcancel.Click;
  TbnEmCancel.Click;

  case trv.Selected.Level of
   0:begin
      page1.ActivePageIndex:=0;
      //edit3.Text:=copy(trv.Selected.Text,pos(']',trv.Selected.Text)+2,length(trv.Selected.Text));
      //edit19.Text:=copy(trv.Selected.Text,2,pos(']',trv.Selected.Text)-2);
      dm.AQ2.Locate('EupetNno',TLabel(Trv.Selected.Data).Caption,[loPartialKey]);
      listrec(DM.AQ2);
      with DM.AQ3 do begin
        Close;
        SQL.Clear;
        SQL.Text:='select * from T_part where EupetNno='+quotedstr(TLabel(Trv.Selected.Data).Caption)+' order by eupetnno,npartno';
        Prepared:=True;
        Open;
      end;
     // CreaChectPoints;
     // if CreaPc then Exit;  是否建测点
      with DM.AQ4 do begin
        SQL.Clear;
        SQL.Text:='select * from T_checkpt where EupetNno='+quotedstr(TLabel(Trv.Selected.Data).Caption)+' order by eupetnno,npartno,msrno';
        Prepared:=True;
        Open;
      end;
      listPCrec(dm.AQ4);

    end;
    1:begin
      page1.ActivePageIndex:=1;
      dm.AQ2.Locate('EupetNno',TLabel(Trv.Selected.Parent.Data).Caption,[loPartialKey]);
      listrec(DM.AQ2);

      with DM.AQ3 do
      begin
      if not DM.AQ3.Locate('NPartNo;EupetNno',
      VarArrayOf([TLabel(Trv.Selected.Data).caption,
      TLabel(Trv.Selected.Parent.Data).caption]),[loPartialKey]) then begin

        Close;
        SQL.Clear;
        SQL.Text:='select * from T_part where EupetNno='+quotedstr(TLabel(Trv.Selected.Parent.Data).Caption)+' order by eupetnno,npartno';
        Prepared:=True;
        Open;
        Locate('NPartNo',TLabel(Trv.Selected.Data).caption,[loPartialKey])
      end;end;
      listPartrec(dm.AQ3);
      with DM.AQ4 do begin
        SQL.Text:='select * from T_checkpt where EupetNno='+quotedstr(TLabel(Trv.Selected.Parent.Data).Caption)+' and Npartno='+quotedstr(TLabel(Trv.Selected.Data).caption)+' order by eupetnno,npartno,msrno';
        Prepared:=True;
        Open;
      end;
      listPCrec(dm.AQ4);
      //TrV.Selected.Expanded:=true;
    end;
    2:begin
      page1.ActivePageIndex:=2;
      dm.AQ2.Locate('EupetNno',TLabel(Trv.Selected.Parent.Parent.Data).Caption,[loPartialKey]);
      listrec(DM.AQ2);
      with DM.AQ3 do
      begin
      if not DM.AQ3.Locate('NPartNo;EupetNno',
      VarArrayOf([TLabel(Trv.Selected.Parent.Data).caption,
      TLabel(Trv.Selected.Parent.Parent.Data).caption]),[loPartialKey]) then begin
        Close;
        SQL.Clear;
        SQL.Text:='select * from T_part where EupetNno='+quotedstr(TLabel(Trv.Selected.Parent.Parent.Data).Caption)+' order by eupetnno,npartno';
        Prepared:=True;
        Open;
        Locate('NPartNo',TLabel(Trv.Selected.Data).caption,[loPartialKey])
      end;end;
      listPartrec(dm.AQ3);

      if not dm.AQ4.Locate('msrno',Tlabel(TrV.Selected.Data).Caption,[loPartialKey]) then
      begin
        dm.AQ4.SQL.Text:='select * from T_checkpt where EupetNno='+quotedstr(TLabel(Trv.Selected.Parent.Parent.Data).Caption)+' and Npartno='+quotedstr(TLabel(Trv.Selected.Parent.Data).Caption)+' order by eupetnno,npartno,msrno';
        dm.AQ4.Prepared:=True;
        dm.AQ4.Open;
        dm.AQ4.Locate('msrno',Tlabel(TrV.Selected.Data).Caption,[loPartialKey])
      end;
      listPCrec(dm.AQ4);
    end;

  end;



end;

procedure TEumt_Frm.FormShow(Sender: TObject);
begin
  TbnEmCancel.Click;
  TbnCpcancel.Click;
  Tbncel.Click;
  if trv.Items.Count>0 then trv.Selected:=trv.Items[0];
  TrVClick(TrV);
end;

procedure TEumt_Frm.CreaTreeEumt;
var
  nod,subnod,subsubnod:TTreeNode;
  ado_tmp,ado_tmp1,ado_tmp2:TADOQuery;
  lab:TLabel;
  trvcount:integer;
begin
  TrV.Items.Clear;
  trvcount:=0;
  Screen.Cursor:=crHourGlass;
  ado_tmp:=TADOQuery.Create(self);
  ado_tmp1:=TADOQuery.Create(self);
  ado_tmp2:=TADOQuery.Create(self);
  ado_tmp.Connection:=DM.AdoConn;
  ado_tmp1.Connection:=DM.AdoConn;
  ado_tmp2.Connection:=DM.AdoConn;
  with ado_tmp do
  begin
    SQL.Clear;
    SQL.Text:='Select * from t_eupet order by eupetnno';
    Prepared:=True;
    Open;
    while not Eof do
    begin
      nod:=Trv.Items.AddChild(nil,'['+fieldbyname('eupetno').AsString+']-'+fieldbyname('eupetname').AsString);
      nod.ImageIndex:=0;nod.SelectedIndex:=0;
      lab:=TLabel.Create(nil); inc(trvcount);
      lab.Tag:=trvcount;
      lab.Caption:=fieldbyname('eupetnno').AsString;
      nod.Data:=lab;

      with ado_tmp1 do begin
        sql.Clear;
        sql.Text:='select * from T_part where EupetNNo='+quotedstr(ado_tmp.fieldbyname('eupetnno').AsString)+'order by eupetnno,npartno';
        Prepared:=True;
        Open;
        while not Eof do
        begin
          Application.ProcessMessages;
          subnod:=Trv.Items.AddChild(nod,'['+fieldbyname('PartNo').AsString+']-'+fieldbyname('PartName').AsString);
          lab:=TLabel.Create(nil);lab.Caption:=fieldbyname('NPartNo').AsString;
          inc(trvcount);lab.Tag:=trvcount;
          subnod.Data:=lab;
          subnod.ImageIndex:=1;subnod.SelectedIndex:=1;
          with ado_tmp2 do begin
            sql.Clear;
            SQL.Text:='select * from T_checkpt where eupetnno='+quotedstr(TLabel(nod.Data).Caption)+' and NpartNo='+quotedstr(TLabel(subnod.Data).Caption)+' order by eupetnno,npartno,msrno';
            Prepared:=True;
            Open;
            while not eof do
            begin
              Application.ProcessMessages;
              subsubnod:=TrV.Items.AddChild(subnod,'['+fieldbyname('Msrno').AsString+']-'+fieldbyname('Msrname').AsString);
              lab:=TLabel.Create(nil);  inc(trvcount);
              lab.Caption:=fieldbyname('msrno').AsString;
              lab.Tag:=trvcount;
              subsubnod.Data:=lab; subsubnod.ImageIndex:=2;subsubnod.SelectedIndex:=2;
              Next;
            end;
          end;
          Next;
        end;
      end;
      Next;
    end;

  end;
  ado_tmp.Free;
  ado_tmp1.Free;

  Screen.Cursor:=crDefault;

end;

procedure TEumt_Frm.FormCreate(Sender: TObject);
begin
  CreaPc:=False;
  //抄表
//液位
  CreaTreeEumt;    top:=5;Left:=20;Height:=579;Width:=920;
  adoEumt[0]:=TADOConnection.Create(self); adoEumt[0].LoginPrompt:=False;
  adoEumt[1]:=TADOConnection.Create(self); adoEumt[1].LoginPrompt:=False;
  adoEumt[2]:=TADOConnection.Create(self); adoEumt[2].LoginPrompt:=False;
  adoeumt[0].ConnectionString:=Connstr;
  adoeumt[1].ConnectionString:=Connstr;
  adoeumt[2].ConnectionString:=Connstr;
  adoEumt[0].Connected:=True;
  adoEumt[1].Connected:=True;
  adoEumt[2].Connected:=True;
  with DM.AQ2 do
  begin
    Connection:=adoEumt[0];
    Close;SQL.Text:='';
    SQL.Text:='Select * from T_Eupet order by eupetnno';
    Prepared:=True;
    Open;
  end;
 
  with DM.AQ3 do
  begin
    Connection:=adoEumt[1];
    Close;SQL.Text:='';
    SQL.Text:='Select * from T_Part';
    Prepared:=True;
    Open;
  end;
  with DM.AQ4 do
  begin
    Connection:=adoEumt[2];
    Close;SQL.Text:='';
    SQL.Text:='Select * from T_CheckPt';
    Prepared:=True;
    Open;
  end; 
end;

procedure TEumt_Frm.TbnEmAddClick(Sender: TObject);
begin
  adoeumt[0].BeginTrans;
  DBGrid1.Enabled:=False;

⌨️ 快捷键说明

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