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

📄 unmain.pas

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

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Menus, StdCtrls,inifiles, ComCtrls,AdoDb,DB, ToolWin, ImgList,
  FR_Ctrls, FR_Dock,  ExtCtrls, Math, Buttons,
   WinSkinData, jpeg;

type
  TMain_Frm = class(TForm)
    TBar1: TToolBar;
    Memo1: TMemo;
    Memo2: TMemo;
    ToolButton3: TToolButton;
    ToolButton5: TToolButton;
    ToolButton2: TToolButton;
    ToolBar1: TToolBar;
    TBBtn2: TfrTBButton;
    TBbtn4: TfrTBButton;
    TBbtn3: TfrTBButton;
    TBBtn1: TfrTBButton;
    MainMenu1: TMainMenu;
    N1: TMenuItem;
    N19: TMenuItem;
    N6: TMenuItem;
    N26: TMenuItem;
    N7: TMenuItem;
    N18: TMenuItem;
    N20: TMenuItem;
    N23: TMenuItem;
    N21: TMenuItem;
    N27: TMenuItem;
    N24: TMenuItem;
    N25: TMenuItem;
    N2: TMenuItem;
    N15: TMenuItem;
    N31: TMenuItem;
    N5: TMenuItem;
    N14: TMenuItem;
    N3: TMenuItem;
    N10: TMenuItem;
    N11: TMenuItem;
    N12: TMenuItem;
    N13: TMenuItem;
    N4: TMenuItem;
    N16: TMenuItem;
    N29: TMenuItem;
    N9: TMenuItem;
    SkinData1: TSkinData;
    Sbtn7: TSpeedButton;
    Sbtn3: TSpeedButton;
    Sbtn2: TSpeedButton;
    Sbtn1: TSpeedButton;
    N32: TMenuItem;
    N33: TMenuItem;
    N34: TMenuItem;
    N35: TMenuItem;
    N36: TMenuItem;
    N37: TMenuItem;
    N22: TMenuItem;
    Panel1: TPanel;
    Panel2: TPanel;
    Panel3: TPanel;
    Panel4: TPanel;
    Splitter1: TSplitter;
    Bevel1: TBevel;
    Bevel2: TBevel;
    Splitter2: TSplitter;
    Timer1: TTimer;
    Image1: TImage;
    N28: TMenuItem;
    N38: TMenuItem;
    Sbtn4: TSpeedButton;
    Sbtn6: TSpeedButton;
    Sbtn5: TSpeedButton;
    Label2: TLabel;
    N39: TMenuItem;
    N40: TMenuItem;
    N41: TMenuItem;
    N42: TMenuItem;
    N8: TMenuItem;
    N17: TMenuItem;
    N30: TMenuItem;
    N43: TMenuItem;
    N44: TMenuItem;
    N45: TMenuItem;
    procedure N6Click(Sender: TObject);
    procedure N7Click(Sender: TObject);
    procedure N18Click(Sender: TObject);
    procedure N19Click(Sender: TObject);
    procedure N21Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure N24Click(Sender: TObject);
    procedure N25Click(Sender: TObject);
    procedure N15Click(Sender: TObject);
    procedure N16Click(Sender: TObject);
    procedure N29Click(Sender: TObject);
    procedure FormResize(Sender: TObject);
    procedure FormPaint(Sender: TObject);
    procedure N13Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure N32Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    procedure FormDestroy(Sender: TObject);
    procedure N14Click(Sender: TObject);
    procedure N28Click(Sender: TObject);
    procedure N38Click(Sender: TObject);
    procedure Sbtn1Click(Sender: TObject);
    procedure Sbtn2Click(Sender: TObject);
    procedure Sbtn3Click(Sender: TObject);
    procedure Sbtn4Click(Sender: TObject);
    procedure N39Click(Sender: TObject);
    procedure N40Click(Sender: TObject);
    procedure N8Click(Sender: TObject);
    procedure N17Click(Sender: TObject);
    procedure N31Click(Sender: TObject);
    procedure N30Click(Sender: TObject);
    procedure N43Click(Sender: TObject);
    procedure N45Click(Sender: TObject);
  private
    { Private declarations }
    function distill():Boolean;
    procedure CleaDistroryData();
    function CheckDb():boolean;    //-----检测是否写入数据库
    procedure ReadSkin;
  public       
    { Public declarations }

  end;

var
  Main_Frm: TMain_Frm;
  MICnt: Integer=0;


implementation

uses UnFuntion, UnEmployee, UnEumt, UnPerPlan, UnPlan, UnDept,
  UnOracleSetup, UnRePassWord, Global, xyCom, Undm, Setup, UnXfind,
  UnFindPerPlan, UnUpDataModi, UnPerUpdatafind, UnAbout, UnPrtMsrVal,
  U_SaveOrRestore, UnFindNcpt, UnFindoutPt, UnPerSelPlan;

{$R *.dfm}

var
  id:integer;

procedure TMain_Frm.N6Click(Sender: TObject);
begin
  if Employee_Frm<>nil then exit;
  Employee_Frm:=TEmployee_Frm.Create(nil);
  Employee_Frm.Show;
end;

procedure TMain_Frm.N7Click(Sender: TObject);
begin
  if Eumt_Frm<>nil then exit;
  Eumt_Frm:=TEumt_Frm.Create(nil);
  Eumt_Frm.Show;
end;

procedure TMain_Frm.N18Click(Sender: TObject);
begin
  if PerPlan_frm<>nil then exit;
 PerPlan_frm:=TPerPlan_frm.Create(nil);
 PerPlan_frm.Show;
end;

procedure TMain_Frm.N19Click(Sender: TObject);
begin
  if Dept_frm<>nil then exit;
    Dept_frm:=TDept_frm.Create(Self);
  Dept_frm.Show;
end;

procedure TMain_Frm.N21Click(Sender: TObject);
begin
  if oracle_frm<>nil then exit;
  Oracle_frm:=TOracle_frm.Create(nil);
  Oracle_frm.Show;
end;

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



function TMain_Frm.distill: Boolean;
var
  str:string;
 // i:integer=1;
//const cfiB  = 'iB.dat';   const cfData= 'msr.dat';
//const cfCfg = 'cfg.sys';  const cfiBData= 'iBD.dat';
  ForwordIb,ForwordEumt:string;  //前一个IB
  TempI,TempCount,RowI:integer;  //当前区域的第一个点数与区域中的测点的个数,行数
  ls:TStrings;
begin
  str:='';  Result:=True;
  ForwordIb:='';
  TempI:=0;  TempCount:=0;
  ls:=TStringList.Create; RowI:=0;
  try
  if foMsrI then CloseFile(fMsrI);
  except
  end;
  //-------------
  try
  if foiB then begin
    CloseFile(fiB);
    foiB := False;
  end;
 // AssignFile(fiB, cfiB);
 // ReWrite(fiB);
 // foiB:=True;
  except
  end;
  //--------
  try
    AssignFile(fMsrI,cfMsrI);
    Rewrite(fMsrI);
    foMsrI := True;
  with DM.AQ10 do
  begin
    close;
   // sql.Text:='select *  from T_perplan,view_sbdj where T_perplan.specialty='+quotedstr(str1)+' and T_perplan.PlanNo='+quotedstr(str2)
    //  +' and T_perplan.Msrno=view_sbdj.Msrno order by T_perplan.plansortid,view_sbdj.ib';

    SQL.Text:='select * from view_sbdj a,view_sbdj_plandate b where a.msrno=b.msrno and b.no='+quotedstr(copy(username,1,4))+' order by b.plansortid,a.ib';// ,a.msrno
    //'Select * from view_perCurPlan where no='+quotedstr(copy(username,1,4));                                                                  //'select * from view_percurplan where view_sbdj.planno=T_employee.planno and T_employee.planno='+quotedstr(copy(username,1,4));
    Prepared:=True;

    Open;
    Writeln(fmsrI,'DJ'+Copy(username,1,4));

          //  测量量分:测量类、观察类和抄表类3类
          //  ①测量类:
          //  0-振动(μm),1-温度(℃),2-听诊(dB)
          //  ②观察类:
          //  5-泄漏,6~7检查,8~根据用户需求定制
          //  泄漏:0-无,  1-轻微,2-严重
          //  检查:0-是,  1-否
          //  检查:0-正常,1-异常
          //  定制(贵州): 8-漏油 9-漏灰 10-漏气 11-漏水
          //  ③抄表类:
          //  4位精度,1~3位小数
          //  13-抄表
    //::::::::::邢>>>>台::::::::::::::::
          //205:抄表
          //199 检查:正常 异常   198:检查 是 否
          //194:听诊 db   193:温度 'C    192:振动 um
    while not eof do
    begin
      str:='';
      str:=inttostr(RecNo)+',';                             //1序号
      str:=str+inttostr(fieldbyname('Msrno').AsInteger-40000)+',';           //2测点编号
      str:=str+fieldbyname('Msrname').AsString+',';         //3测点名
      str:=str+inttostr(strtoint(fieldbyname('nPartNo').AsString))+',';          //4设备号  原 Eupetno
      str:=str+fieldbyname('PartName').AsString+',';        //5 设备名  原 Eupetname
      if pos('振动',FieldByName('msritem').AsString)>0 then      //6
        str:=str+'192,'
      else if FieldByName('msritem').AsString ='听诊' then
        str:=str+'194,'
      else if FieldByName('msritem').AsString ='温度' then
        str:=str+'193,'
      else if FieldByName('msritem').AsString ='检查' then
        str:=str+'199,'
      else if FieldByName('msritem').AsString ='抄表' then
        str:=str+'205,'
      else
        str:=str+'199,';
      str:=str+'0,';                                        //7<待扩展>
      str:=str+'0,';                                        //8 <待扩展>
      str:=str+'0,';                                        //9 默认值
      str:=str+'0,';                                        //10 抄表数值的小数位数
      if fieldbyname('dwv').AsString='' then
      str:=str+'0,'
      else
      str:=str+fieldbyname('dwv').AsString+',';             //11 下限报警值,测量时<LowA时蜂鸣
      str:=str+'0,';                                        //12 <待扩展>
      if fieldbyname('uwv').AsString='' then
      str:=str+'0,'
      else
      str:=str+fieldbyname('uwv').AsString+',';             //13 上限报警值,测量时>UpA 时蜂鸣
      str:=str+fieldbyname('ib').AsString+',';              //14 信息钮(12位)
      str:=str+'0,';                                        //15下次点检到期日, =0时为每天检测
      str:=str+'0';                                         //16 点检周期(天),1~31
      str:=trim(str);str:=' '+str;
      if ForwordIb='' then begin          //ib.dat为空时
        ls.Add(FieldByName('ib').AsString+','+IntToStr(TempCount)+',');
        ForwordIb:=FieldByName('ib').AsString; //钮,0,3,设备名
        ForwordEumt:=FieldByName('ibmemo').AsString; //钮,0,3,设备名
      end;

      if FieldByName('ib').AsString<>ForwordIb then begin
        //WriteLn(fiB, fieldbyname('ib').AsString+',');
        RowI:=ls.Count-1;
        if RowI>=0 then
          ls[RowI]:=ls[RowI]+IntToStr(TempI)+','+ForwordEumt;   //tempi为区域的测点个数
        TempI:=1;
        ls.Add(FieldByName('ib').AsString+','+IntToStr(TempCount)+',');
        ForwordIb:=FieldByName('ib').AsString; //钮,0,3,设备名
        ForwordEumt:=FieldByName('ibmemo').AsString; //钮,0,3,设备名
      end else begin
        Inc(TempI);
        //TempCount:=TempCount+1;
      end;Inc(TempCount);
      Writeln(fmsrI,str);
      Next;
    end;
  end;
 // CloseFile(fiB);  foiB := False;
  RowI:=ls.Count-1;
        if RowI>=0 then
          ls[RowI]:=ls[RowI]+IntToStr(TempI)+','+ForwordEumt;   //tempi为区域的测点个数
  ls.SaveToFile(cfiB);
  CloseFile(fMsrI);
  except
  CloseFile(fMsrI); //CloseFile(fiB);
  Result:=False;
  end;
  foMsrI := False;
end;

procedure TMain_Frm.N24Click(Sender: TObject);
begin
//    n10.Enabled:=False;
//    n11.Enabled:=False;
//    N24.Enabled:=False;
//    N25.Enabled:=False;
    DjCom.SetFonts;

⌨️ 快捷键说明

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