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