📄 uneumt.pas
字号:
Aitem.Level:=-1; Aitem.index:=-1;
if TrV.Selected=nil then exit;
Aitem.Level:=TrV.Selected.Level;
Aitem.index:=TLabel(TrV.Selected.Data).Tag-1;
{ if Aitem.Level=0 then
begin
Aitem.emput:=TrV.Selected.Index;
end else begin
Aitem.emput:=TrV.Selected.Parent.Index;
Aitem.part:=TrV.Selected.Index;
end; }
end;
procedure TEumt_Frm.N4Click(Sender: TObject);
var
curnod,oldnod,subnod,tmpnod:TTreeNode;
i,j:integer;
lab:TLabel;
adoqeumpt,adoqPart,adoqmsr:TADOQuery;
s1,s2,s3,s4:string;
begin
if (Aitem.Level=-1) or (Aitem.index=-1) then exit;
adoqeumpt:=TADOQuery.Create(nil);adoqeumpt.Connection:=adoEumt[0];
adoqPart:=TADOQuery.Create(nil);adoqPart.Connection:=adoEumt[1];
adoqmsr:=TADOQuery.Create(nil); adoqmsr.Connection:=adoEumt[2];
oldnod:=TrV.Items[aitem.index];
s1:=TLabel(oldnod.Data).Caption; //原设备eupetnno
try
// adoEumt[0].BeginTrans;
// adoEumt[1].BeginTrans;
// adoEumt[2].BeginTrans;
with adoqeumpt do //选机组
begin
Close;
sql.Text:='select * from T_eupet where eupetnno='+quotedstr(s1)+' order by eupetnno';
Open;
end;
//s2:=adoqeumpt.fieldbyname('eupetnno').AsString;
with dm.AQ2 do begin
Append;
FieldByName('eupetnno').AsString:=FormatMe(Qbh('T_Eupet','EupetNNo'),4);
FieldByName('eupetno').AsString:=adoqeumpt.FieldByName('eupetno').AsString;
FieldByName('eupetname').AsString:=adoqeumpt.FieldByName('eupetname').AsString;
Post;
end;
curnod:=trv.Items.AddChild(nil,oldnod.Text+'复制');
curnod.ImageIndex:=0; curnod.SelectedIndex:=0;
lab:=TLabel.Create(nil);lab.Caption:=dm.AQ2.FieldByName('eupetnno').AsString;lab.Tag:=TrV.Items.Count;
curnod.Data:=lab; //增加机组 完
with adoqPart do begin
Close;
SQL.Text:='select * from T_part where eupetnno='+quotedstr(s1)+' order by eupetnno,npartno';
Open;
end;
while not adoqPart.eof do //所有的设备
begin
// //增加所有的设备
Application.ProcessMessages;
s2:=adoqPart.fieldbyname('NpartNo').AsString;
dm.AQ3.Append;
dm.AQ3.FieldByName('NpartNo').AsString:=FormatMe(QPartNo(dm.AQ2.FieldByName('EupetNNo').AsString),4);
dm.AQ3.FieldByName('PartNO').AsString:=adoqPart.FieldByName('partNo').AsString;
dm.AQ3.FieldByName('EupetNNo').AsString:=dm.AQ2.FieldByName('EupetNNo').AsString;
dm.AQ3.FieldByName('Partname').AsString:=adoqPart.FieldByName('Partname').AsString;
dm.AQ3.FieldByName('Ib').AsString:=adoqPart.FieldByName('Ib').AsString;
dm.AQ3.FieldByName('ibMemo').AsString:=adoqPart.FieldByName('ibMemo').AsString;
dm.AQ3.Post;
subnod:=TrV.Items.AddChild(curnod,'['+dm.AQ3.FieldByName('PartNO').AsString+']-'+dm.AQ3.FieldByName('Partname').AsString);
lab:=TLabel.Create(nil);lab.Caption:=dm.AQ3.FieldByName('NpartNo').AsString; lab.Tag:=TrV.Items.Count;
subnod.ImageIndex:=1;subnod.SelectedIndex:=1;
subnod.Data:=lab;
//所有的设备完
with adoqmsr do
begin
Close;
SQL.Text:='select * from T_checkpt where eupetnno='+
quotedstr(s1)+
' and Npartno='+quotedstr(s2)+' order by eupetnno,npartno,msrno';
Open;
end;
while not adoqmsr.Eof do //所有测点
begin
Application.ProcessMessages;
dm.AQ4.Append;
dm.AQ4.FieldByName('EupetNNo').AsString:=dm.AQ3.FieldByName('EupetNNo').AsString;
dm.AQ4.FieldByName('NpartNo').AsString:=dm.AQ3.FieldByName('NpartNo').AsString;
dm.AQ4.FieldByName('MsrNNo').AsString:=FormatMe(QMsrNNo(dm.AQ3.FieldByName('EupetNNo').AsString,dm.AQ3.FieldByName('NpartNo').AsString),4);
dm.AQ4.FieldByName('Msrno').AsInteger:=QMsrNo;
dm.AQ4.FieldByName('msritem').AsString:=adoqmsr.FieldByName('msritem').AsString;
dm.AQ4.FieldByName('dwv').AsString:=adoqmsr.FieldByName('dwv').AsString;
dm.AQ4.FieldByName('uwv').AsString:=adoqmsr.FieldByName('uwv').AsString;
dm.AQ4.FieldByName('msrname').AsString:=adoqmsr.FieldByName('msrname').AsString;
DM.AQ4.Post;
tmpnod:=TrV.Items.AddChild(subnod,'['+dm.AQ4.FieldByName('MsrNo').AsString+']-'
+dm.AQ4.FieldByName('msrname').AsString);
lab:=TLabel.Create(nil);lab.Caption:=dm.AQ4.FieldByName('Msrno').AsString; lab.Tag:=TrV.Items.Count;
tmpnod.ImageIndex:=2;tmpnod.SelectedIndex:=2;
tmpnod.Data:=lab;
adoqmsr.Next;
end; //所有的测点完
adoqPart.Next;
end;
// adoEumt[2].CommitTrans;
// adoEumt[1].CommitTrans;
// adoEumt[0].CommitTrans;
except
// adoEumt[2].RollbackTrans;
// adoEumt[1].RollbackTrans;
// adoEumt[0].RollbackTrans;
end;
end;
procedure TEumt_Frm.N6Click(Sender: TObject);
var
curnod,oldnod,subnod,tmpnod:TTreeNode;
i,j:integer;
lab:TLabel;
adoqeumpt,adoqPart,adoqmsr:TADOQuery;
s1,s2,s3,s4:string;
begin
// adoqeumpt:=TADOQuery.Create(nil);
if (Aitem.Level=-1) or (Aitem.index=-1) then exit;
adoqPart:=TADOQuery.Create(nil);
adoqmsr:=TADOQuery.Create(nil);
oldnod:=TrV.Items[aitem.index]; //设备点
s3:=TLabel(oldnod.Parent.Data).Caption; //复制机组
s4:=TLabel(oldnod.Data).Caption;
s1:=TLabel(TrV.Selected.Parent.Data).Caption;
// s2:=TLabel(TrV.Selected.Data).Caption;
if TrV.Selected.Level=0 then
tmpnod:=trv.Selected
else if trv.Selected.Level=1 then
tmpnod:=TrV.Selected.Parent;
with adoqPart do //设备
begin
Connection:=adoEumt[1];
sql.Text:='select * from T_Part where eupetnno='+quotedstr(s3)+' and Npartno='+quotedstr(s4)+' order by eupetnno,npartno';
Prepared:=True; Open;
end;
with adoqmsr do //测点
begin
Connection:=adoEumt[2];
sql.Text:='select * from T_checkpt where eupetnno='+quotedstr(s3)+' and Npartno='+quotedstr(s4)+' order by eupetnno,npartno,msrno';
Open;
end;
try
//adoEumt[1].BeginTrans;
//adoEumt[2].BeginTrans;
with dm.AQ3 do
begin
Append;
FieldByName('npartno').AsString:=FormatMe(QPartNo(s1),4);
FieldByName('partno').AsString:=adoqpart.fieldbyname('partno').AsString;
FieldByName('partname').AsString:=adoqpart.fieldbyname('partname').AsString;
FieldByName('eupetnno').AsString:=s1;
FieldByName('ib').AsString:=adoqpart.fieldbyname('ib').AsString;
FieldByName('ibmemo').AsString:=adoqpart.fieldbyname('ibmemo').AsString;
Post;
end;
curnod:=TrV.Items.AddChild(tmpnod,oldnod.Text);
curnod.ImageIndex:=1; curnod.SelectedIndex:=1;
lab:=TLabel.Create(nil);lab.Caption:=dm.AQ3.FieldByName('npartno').AsString; lab.Tag:=TrV.Items.Count;
curnod.Data:=lab;
for I:=0 to oldnod.Count-1 do
begin Application.ProcessMessages;
with dm.AQ4 do
begin
Append;
FieldByName('EupetNNo').AsString:=dm.AQ3.FieldByName('EupetNNo').AsString;
FieldByName('NpartNo').AsString:=dm.AQ3.FieldByName('NpartNo').AsString;
FieldByName('MsrNNo').AsString:=FormatMe(QMsrNNo(dm.AQ3.FieldByName('EupetNNo').AsString,dm.AQ3.FieldByName('NpartNo').AsString),4);
FieldByName('Msrno').AsInteger:=QMsrNo;
FieldByName('msritem').AsString:=adoqmsr.FieldByName('msritem').AsString;
FieldByName('dwv').AsString:=adoqmsr.FieldByName('dwv').AsString;
FieldByName('uwv').AsString:=adoqmsr.FieldByName('uwv').AsString;
FieldByName('msrname').AsString:=adoqmsr.FieldByName('msrname').AsString;
Post;
adoqmsr.Next;
end;
subnod:=TrV.Items.AddChild(curnod,oldnod.Item[i].Text);
lab:=TLabel.Create(nil);lab.Caption:=dm.AQ4.FieldByName('Msrno').AsString; lab.Tag:=TrV.Items.Count;
subnod.ImageIndex:=2; subnod.SelectedIndex:=2;
subnod.Data:=lab;
Next;
end;
dm.AQ3.Refresh;
dm.AQ4.Refresh;
//adoEumt[2].CommitTrans;
//adoEumt[1].CommitTrans;
except
//adoEumt[2].RollbackTrans;
//adoEumt[1].RollbackTrans;
end;
adoqeumpt.Free;
adoqPart.Free;
end;
procedure TEumt_Frm.N10Click(Sender: TObject);
var
Aadocon:TADOConnection;
AadoQMsr:TADOQuery;
i,tmpMsrno,Msrno:integer;
begin
if Application.MessageBox('你真的想重排这些编号么?','提示',MB_YESNO+MB_ICONQUESTION)<>idyes then exit;
Caption:= TLabel(trv.Selected.Parent.Parent.Data).Caption;
with dm.AQ4 do //打开本机组的测点
begin
//Connection:=Aadocon;
sql.Text:='select * from T_checkpt where eupetnno='+quotedstr(TLabel(trv.Selected.Parent.Parent.Data).Caption)+'order by msrno';
Prepared:=True;
Open;
if Eof then begin
Application.MessageBox('没有找到你想重编的测点内容?','提示',MB_OK+MB_ICONINFORMATION);
exit;
end;
end;
// i:=inttostr(TLabel(trv.Selected.Parent.Parent.Data).Caption);
Aadocon:=TADOConnection.Create(self);
with Aadocon do
begin
LoginPrompt:=False;
ConnectionString:=Connstr;
Connected:=True;
end;
AadoQMsr:=TADOQuery.Create(self);
AadoQMsr.Connection:=Aadocon;
Msrno:=dm.AQ4.fieldbyname('Msrno').AsInteger; //
try
Aadocon.BeginTrans;
adoEumt[2].BeginTrans;
while not DM.AQ4.Eof do //不是最后一测点
begin
Application.ProcessMessages;
with dm.AQ4 do begin
Edit;
tmpMsrno:=fieldbyname('Msrno').AsInteger;//旧的Msrno
fieldbyname('Msrno').AsInteger:=Msrno;
dm.AQ4.Post;
end;
// edit12.Text:=inttostr(tmpMsrno);
// edit13.Text:=inttostr(Msrno);
with AadoQMsr do
begin
sql.Text:='update T_BDATA set Msrno='+inttostr(Msrno)+' where Msrno='+inttostr(tmpMsrno);
ExecSQL;
sql.Text:='update T_Ncpt set Msrno='+inttostr(Msrno)+' where Msrno='+inttostr(tmpMsrno);
ExecSQL;
SQL.Text:='update T_PERPLAN set Msrno='+inttostr(Msrno)+' where Msrno='+inttostr(tmpMsrno);
ExecSQL;
end;
Msrno:=Msrno+1;
dm.AQ4.Next;
end;//移动测点
adoEumt[2].CommitTrans;
Aadocon.CommitTrans;
Application.MessageBox('新的测点编号已经重新生成!','提示',MB_OK+MB_ICONINFORMATION);
except
Caption:=inttostr(tmpMsrno)+'-'+inttostr(Msrno);
dm.AQ4.Cancel;
adoEumt[2].RollbackTrans;
AadoQMsr.Cancel;
Aadocon.RollbackTrans;
Application.MessageBox('测点编号生成失败,请检查其它机组中的测点编号是否正确!','提示',MB_OK+MB_ICONINFORMATION);
end;
try
AadoQMsr.Free;
Aadocon.Free;
except
end;
Close;
end;
procedure TEumt_Frm.N8Click(Sender: TObject);
var
curnod,oldnod,subnod,tmpnod:TTreeNode;
i,j:integer;
lab:TLabel;
adoqeumpt,adoqPart,adoqmsr:TADOQuery;
s1,s2,s3,s4:string;
begin
// adoqeumpt:=TADOQuery.Create(nil);
if (Aitem.Level=-1) or (Aitem.index=-1) then exit;
adoqPart:=TADOQuery.Create(nil);
adoqmsr:=TADOQuery.Create(nil);
oldnod:=TrV.Items[aitem.index]; //设备点
Caption:=oldnod.Text;
s3:=TLabel(oldnod.Parent.Data).Caption; //复制原机组
s4:=TLabel(oldnod.Data).Caption;
s1:=TLabel(TrV.Selected.Parent.Data).Caption; //现在机组
s2:=TLabel(TrV.Selected.Data).Caption; //现在设备
if TrV.Selected.Level=0 then
tmpnod:=trv.Selected
else if trv.Selected.Level=1 then
tmpnod:=TrV.Selected.Parent;
with adoqPart do //设备
begin
Connection:=adoEumt[1];
sql.Text:='select * from T_Part where eupetnno='+quotedstr(s1)+' and Npartno='+quotedstr(s2)+' order by eupetnno,npartno';
Prepared:=True; Open;
end;
with adoqmsr do //测点
begin
Connection:=adoEumt[2];
sql.Text:='select * from T_checkpt where eupetnno='+quotedstr(s3)+' and Npartno='+quotedstr(s4)+' order by eupetnno,npartno,msrno';
Open;
end;
try
// adoEumt[2].BeginTrans;
curnod:=TrV.Selected;
//curnod.ImageIndex:=1; curnod.SelectedIndex:=1;
//lab:=TLabel.Create(nil);lab.Caption:=dm.AQ3.FieldByName('npartno').AsString;
// curnod.Data:=lab;
for I:=0 to oldnod.Count-1 do
begin
with dm.AQ4 do
begin Application.ProcessMessages;
Append;
FieldByName('EupetNNo').AsString:=s1;
FieldByName('NpartNo').AsString:=s2;
FieldByName('MsrNNo').AsString:=FormatMe(QMsrNNo(s1,s2),4);
FieldByName('Msrno').AsInteger:=QMsrNo;
FieldByName('msritem').AsString:=adoqmsr.FieldByName('msritem').AsString;
FieldByName('dwv').AsString:=adoqmsr.FieldByName('dwv').AsString;
FieldByName('uwv').AsString:=adoqmsr.FieldByName('uwv').AsString;
FieldByName('msrname').AsString:=adoqmsr.FieldByName('msrname').AsString;
Post;
adoqmsr.Next;
end;
subnod:=TrV.Items.AddChild(curnod,oldnod.Item[i].Text);
lab:=TLabel.Create(nil);lab.Caption:=dm.AQ4.FieldByName('Msrno').AsString;lab.Tag:=TrV.Items.Count;
subnod.ImageIndex:=2; subnod.SelectedIndex:=2;
subnod.Data:=lab;
Next;
end;
dm.AQ3.Refresh;
dm.AQ4.Refresh;
// adoEumt[2].CommitTrans;
except
// adoEumt[2].RollbackTrans;
end;
adoqeumpt.Free;
adoqPart.Free;
end;
end.
{
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
var i:integer;
begin
{ with (Sender as TDBGrid).Canvas do //画 cell 的边框
begin
Pen.Color := $00ff0000; //定义画笔颜色(蓝色)
MoveTo(Rect.Left, Rect.Bottom); //画笔定位
LineTo(Rect.Right, Rect.Bottom); //画蓝色的横线
Pen.Color := clbtnface; //定义画笔颜色(兰色)
MoveTo(Rect.Right, Rect.Top); //画笔定位
LineTo(Rect.Right, Rect.Bottom); //画绿色
end;
end; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -