📄 bomform.~pas
字号:
procedure Tbom.BitBtn5Click(Sender: TObject);
begin
//标识新增子项按钮被按下
insflag:=1;
//清空文本框中的内容
edit1.Clear;
edit2.Clear;
edit3.Clear;
edit4.Clear;
edit5.Clear;
edit9.Clear;
edit10.Clear;
edit11.Clear;
edit12.Clear;
//将搜寻按钮置为可用状态,同样对其它按钮进行设置
bitbtn13.Enabled:=true;
bitbtn1.Enabled:=false;
bitbtn2.Enabled:=false;
bitbtn3.Enabled:=false;
bitbtn4.Enabled:=false;
bitbtn5.Enabled:=false;
bitbtn6.Enabled:=false;
bitbtn7.Enabled:=false;
bitbtn8.Enabled:=false;
bitbtn9.Enabled:=true;
bitbtn10.Enabled:=true;
//允许修改文本框中的内容
edit4.ReadOnly:=false;
edit9.ReadOnly:=false;
edit10.ReadOnly:=false;
edit11.ReadOnly:=false;
edit12.ReadOnly:=false;
end;
//----------------新增同级项------------------------------
procedure Tbom.BitBtn6Click(Sender: TObject);
begin
//标识新增同级项按钮被按下
insflag:=2;
//清空文本框中的内容
edit1.Clear;
edit2.Clear;
edit3.Clear;
edit4.Clear;
edit5.Clear;
edit9.Clear;
edit10.Clear;
edit11.Clear;
edit12.Clear;
memo1.Clear;
//将搜寻按钮置为可用状态,同样对其它按钮进行设置
bitbtn13.Enabled:=true;
bitbtn1.Enabled:=false;
bitbtn2.Enabled:=false;
bitbtn3.Enabled:=false;
bitbtn4.Enabled:=false;
bitbtn5.Enabled:=false;
bitbtn6.Enabled:=false;
bitbtn7.Enabled:=false;
bitbtn8.Enabled:=false;
bitbtn9.Enabled:=true;
bitbtn10.Enabled:=true;
//允许修改文本框中的内容
edit4.ReadOnly:=false;
edit9.ReadOnly:=false;
edit10.ReadOnly:=false;
edit11.ReadOnly:=false;
edit12.ReadOnly:=false;
end;
//--------------删除数据----------------------
procedure Tbom.BitBtn8Click(Sender: TObject);
begin
//询问用户,确认删除
if treeview1.Selected.HasChildren then
showmessage('请先删除该项所属的全部子项')
else
begin
//删除数据
adocommand1.CommandText:='delete from 物料清单 where (物料编号='''+edit1.Text+''')and(父项编号='''+edit3.Text+''')';
if application.MessageBox('确实删除该条数据?','删除',MB_OKCANCEL)=ID_OK then
begin
adocommand1.Execute;
//重新绘制树形图
treeview1.Items.Clear;
showtree();
end;
end;
end;
//--------修改数据------------------------
procedure Tbom.BitBtn7Click(Sender: TObject);
begin
//标识修改项按钮被按下
insflag:=3;
//将相应按钮置为可用状态
bitbtn1.Enabled:=false;
bitbtn2.Enabled:=false;
bitbtn3.Enabled:=false;
bitbtn4.Enabled:=false;
bitbtn5.Enabled:=false;
bitbtn6.Enabled:=false;
bitbtn7.Enabled:=false;
bitbtn8.Enabled:=false;
bitbtn9.Enabled:=true;
bitbtn10.Enabled:=true;
//允许修改文本框中的内容
edit4.ReadOnly:=false;
edit9.ReadOnly:=false;
edit10.ReadOnly:=false;
edit11.ReadOnly:=false;
edit12.ReadOnly:=false;
//提醒用户与物料有关的信息应该在物料主文件中修改
showmessage('物料编号,物料名称等内容请在物料主文件中修改');
end;
//-------------调出子窗体,选择物料--------------------
procedure Tbom.BitBtn13Click(Sender: TObject);
var
newform:Tchoose;
begin
main.bomflag:=1;
newform:=Tchoose.Create(application);
//将本窗口灰化
self.Enabled:=false;
end;
//---------窗体恢复时,读入存在主窗体公共变量中的数据--------------
procedure Tbom.FormActivate(Sender: TObject);
var
i:integer;
begin
//如果是新增子项按钮被按下,则将从物料主文件中选取得零件的编号
//名称等信息送到BOM窗口中,并初始化一些数据
if insflag=1 then
begin
edit1.Text:=main.str;
edit2.Text:=main.str2;
edit4.Text:='0.0';
edit11.Text:='0.0';
if treeview1.Selected.Parent=nil then
edit3.Text:='0'
else
begin
i:=checknode(treeview1.Selected);
edit3.Text:=mytable[i,2];
end;
edit5.Text:=inttostr(treeview1.Selected.Level+1);
end;
//如果是新增同级项按钮被按下,则处理方法与新增子项相同,但父项编号和低层码有变化
if insflag=2 then
begin
edit1.Text:=main.str;
edit2.Text:=main.str2;
edit4.Text:='0.0';
edit11.Text:='0.0';
if treeview1.Selected.Parent=nil then
begin
edit3.Text:='0';
edit5.Text:=inttostr(treeview1.Selected.Level+1);
showmessage('不允许为"全部产品"添加同级项')
end
else
begin
i:=checknode(treeview1.Selected);
edit3.Text:=mytable[i,1];
edit5.Text:=inttostr(treeview1.Selected.Level);
end;
end;
end;
//------------保存对数据所作的修改-------------------
procedure Tbom.BitBtn9Click(Sender: TObject);
begin
//由于损耗率和数量在数据库中以decimal存储,因此需要将他们转换一遍
ratio:=strtofloat(edit11.Text);
num:=strtofloat(edit4.text);
//对新增子项或同级项操作的处理
if (insflag=1)or(insflag=2) then
adocommand1.CommandText:='insert into 物料清单([父项编号], [物料编号], [需要数量], [低层码],[领料车间],[领料库房],[损耗率],[审核日期],[其它事项]) values('''+edit3.Text+''','''+edit1.Text+''','''+floattostr(num)+''','''+edit5.Text+''','''+edit9.Text+''','''+edit10.Text+''','''+floattostr(ratio)+''','''+edit12.Text+''','''+memo1.Text+''')';
//对修改操作的处理
if insflag=3 then
adocommand1.CommandText:='update 物料清单 set [需要数量]='''+floattostr(num)+''',[领料车间]='''+edit9.Text+''',[领料库房]='''+edit10.Text+''',[损耗率]='''+floattostr(ratio)+''',[审核日期]='''+edit12.Text+''',[其它事项]='''+memo1.Text+''' where (物料编号='''+edit1.Text+''')and(父项编号='''+edit3.Text+''')';
adocommand1.Execute;
//清除现有树形图,重新绘制
treeview1.Items.Clear;
showtree();
//清除操作标识
insflag:=0;
//恢复按钮功能
bitbtn13.Enabled:=false;
bitbtn1.Enabled:=true;
bitbtn2.Enabled:=true;;
bitbtn3.Enabled:=true;
bitbtn4.Enabled:=true;
bitbtn5.Enabled:=true;
bitbtn6.Enabled:=true;
bitbtn7.Enabled:=true;
bitbtn8.Enabled:=true;
bitbtn9.Enabled:=false;
bitbtn10.Enabled:=false;
//不允许修改文本框中的内容
edit4.ReadOnly:=true;
edit9.ReadOnly:=true;
edit10.ReadOnly:=true;
edit11.ReadOnly:=true;
edit12.ReadOnly:=true;
end;
//---------------取消操作-------------------------
procedure Tbom.BitBtn10Click(Sender: TObject);
begin
//清除操作标识
insflag:=0;
//清空文本框中的内容
edit1.Clear;
edit2.Clear;
edit3.Clear;
edit4.Clear;
edit5.Clear;
edit9.Clear;
edit10.Clear;
edit11.Clear;
edit12.Clear;
memo1.Clear;
//恢复按钮功能
bitbtn13.Enabled:=false;
bitbtn1.Enabled:=true;
bitbtn2.Enabled:=true;;
bitbtn3.Enabled:=true;
bitbtn4.Enabled:=true;
bitbtn5.Enabled:=true;
bitbtn6.Enabled:=true;
bitbtn7.Enabled:=true;
bitbtn8.Enabled:=true;
bitbtn9.Enabled:=false;
bitbtn10.Enabled:=false;
//不允许修改文本框中的内容
edit4.ReadOnly:=true;
edit9.ReadOnly:=true;
edit10.ReadOnly:=true;
edit11.ReadOnly:=true;
edit12.ReadOnly:=true;
end;
//---------------查询数据--------------------
procedure Tbom.BitBtn12Click(Sender: TObject);
begin
adoquery3.Close;
adoquery3.SQL.Clear;
adoquery3.SQL.Add('select a.*,b.* from 物料清单 a,物料主文件 b where (a.父项编号 like ''%'+edit6.Text+'%'')and');
adoquery3.SQL.Add('(b.物料名称 like ''%'+edit7.Text+'%'')and(b.拼音编码 like ''%'+edit8.Text+'%'')');
adoquery3.SQL.Add('and(a.物料编号=b.物料编号)');
adoquery3.Open;
edit6.Clear;
edit7.Clear;
edit8.clear;
end;
//------在文本框中按下enter键执行查询-------------
procedure Tbom.Edit6KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
bitbtn12.Click;
end;
procedure Tbom.Edit7KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
bitbtn12.Click;
end;
procedure Tbom.Edit8KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
bitbtn12.Click;
end;
//-----------关闭窗体--------------------
procedure Tbom.BitBtn11Click(Sender: TObject);
begin
close;
end;
procedure Tbom.DataSource1DataChange(Sender: TObject; Field: TField);
begin
//设置表中列的宽度
dbgrid1.Columns[0].Width:=80;
dbgrid1.Columns[1].Width:=100;
dbgrid1.Columns[2].Width:=64;
dbgrid1.Columns[3].Width:=64;
dbgrid1.Columns[4].Width:=64;
dbgrid1.Columns[5].Width:=64;
dbgrid1.Columns[6].Width:=64;
dbgrid1.Columns[7].Width:=64;
dbgrid1.Columns[8].Width:=64;
dbgrid1.Columns[9].Width:=64;
dbgrid1.Columns[10].Width:=64;
dbgrid1.Columns[11].Width:=64;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -