📄 unmain.pas
字号:
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 + -