📄 mrwx_bjrk_tj.~pas
字号:
end;
mr_wxbj_rk.adotable2.insertrecord([date,dbcombobox1.text,
dbcombobox3.text,dbedit4.text,dbedit5.text,
dbcombobox2.text,dbedit8.text,nil,dbedit9.text,nil,
dbedit11.text,mr_wxbj_rk.adotable1.fieldbyname('数量').asinteger,
dbedit12.text,dblookupcombobox5.text,nil,mr_wxbj_rk.combobox3.text]);
mr_wxbj_rk.ADOTable3.Insert;
mr_wxbj_rk.adotable3.fieldbyname('日期').asdatetime:=date;
dbcombobox1.setfocus; }
end;
procedure TMR_WXBJRK_TJ.DBEdit8KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then begin
if (activecontrol is Tdbedit) then
Perform(WM_nextdlgctl,0,0);
end;
if key<>#8 then begin
if (key>'9') or (key<'0') then key:=#0;
end;
end;
procedure TMR_WXBJRK_TJ.DBEdit9KeyPress(Sender: TObject; var Key: Char);
var i:integer;
begin
if key=#13 then begin
if (activecontrol is Tdbedit) then
Perform(WM_nextdlgctl,0,0);
end;
if key<>#8 then begin
if key='.' then begin
for i:=1 to length(tdbedit(sender).text) do begin
if tdbedit(sender).text[i]='.' then key:=#0;
end;
end else begin
if (key>'9') or (key<'0') then key:=#0;
end;
end;
end;
procedure TMR_WXBJRK_TJ.DBEdit8Exit(Sender: TObject);
begin
Tdbedit(sender).color:=clwindow;
if mr_wxbj_rk.adotable1.Locate('物品名称;型号;规格;部门',vararrayof([dbcombobox1.text,
dbcombobox3.text,dbedit4.text,mr_wxbj_rk.combobox3.text]),[loCaseInsensitive]) then begin
if strtoint(dbedit8.text)+mr_wxbj_rk.ADOTable1.FieldByName('数量').asinteger
>mr_wxbj_rk.adotable1.fieldbyname('提示上限').asinteger then begin
showmessage('该备件的库存数量以超出了提示上限,请三思。');
end;
end else begin
if strtoint(dbedit8.text)>mr_wxform.adotable2.fieldbyname('库存上限').asinteger then begin
showmessage('该备件的库存数量以超出了提示上限,请三思。');
end;
end;
if dbedit8.text='' then dbedit8.text:='0';
if dbedit9.text='' then dbedit9.text:='0';
mr_wxbj_rk.adotable3.fieldbyname('金额').asfloat:=strtofloat(dbedit9.text)*
strtoint(dbedit8.text);
end;
procedure TMR_WXBJRK_TJ.BitBtn2Click(Sender: TObject);
var bian:string; bian1:integer;
ke:string; i:integer;
begin
if (dbedit11.Text='') or (dbedit11.text='0') then begin
showmessage('金额不能为空或为0,请察看您的入库单价和数量!');
dbedit8.setfocus;
exit;
end;
if dbcombobox1.text='' then begin
showmessage('请输入维修物品名称.');
dbcombobox1.SetFocus;
exit;
end;
if dbcombobox3.text='' then begin
showmessage('请选择或输入物品型号.');
dbcombobox3.setfocus;
exit;
end;
if dbcombobox2.Text='' then begin
showmessage('请选择或输入商家信息.');
dbcombobox2.setfocus;
exit;
end;
if dblookupcombobox5.Text='' then begin
showmessage('请选择经手人.');
dblookupcombobox5.SetFocus;
exit;
end;
adoquery1.Close;
adoquery1.SQL.clear;
adoquery1.SQL.Add('select * from 备件基本信息');
adoquery1.Open;
adoquery1.last;
ke:=adoquery1.fieldbyname('备件编号').asstring;
if not adoquery1.Locate('备件名称;备件名称;备件型号',vararrayof([dbcombobox1.text,
dbcombobox3.text,dbedit4.text]),[loCaseInsensitive]) then begin
if ke='' then ke:='000001' else begin
ke:=inttostr(strtoint(ke)+1);
for i:=1 to 6-length(ke) do begin
ke:='0' + ke;
end;
end;
adoquery1.Append;
adoquery1.FieldByName('备件编号').asstring:=ke;
adoquery1.fieldbyname('备件名称').asstring:=dbcombobox1.text;
adoquery1.FieldByName('备件型号').asstring:=dbcombobox3.text;
adoquery1.FieldByName('备件规格').asstring:=dbedit4.text;
adoquery1.Post;
end;
adoquery2.Last;
ke:=adoquery2.fieldbyname('商家编号').asstring;
if not adoquery2.Locate('商家名称',dbcombobox2.text,[loCaseInsensitive]) then begin
if ke='' then ke:='000001' else begin
ke:=inttostr(strtoint(ke)+1);
for i:=1 to 6-length(ke) do begin
ke:='0'+ke;
end;
end;
adoquery2.Append;
adoquery2.FieldByName('商家编号').asstring:=ke;
adoquery2.FieldByName('商家名称').asstring:=dbcombobox2.text;
adoquery2.Post;
end;
mr_wxbj_rk.adotable3.FieldByName('部门').asstring:=mr_wxbj_rk.ComboBox3.text;
MR_WXBJ_RK.adotable3.Post;
if mr_wxbj_rk.adotable1.locate('物品名称;型号;规格;部门',
vararrayof([dbcombobox1.text,dbcombobox3.text,dbedit4.text,mr_wxbj_rk.combobox3.text]),
[loCaseInsensitive]) then begin
mr_wxbj_rk.adotable1.Edit;
mr_wxbj_rk.adotable1.FieldByName('数量').asinteger:=
mr_wxbj_rk.adotable1.FieldByName('数量').asinteger+
strtoint(dbedit8.text)-
strtoint(dbedit12.text);
mr_wxbj_rk.adotable1.FieldByName('库存金额').asfloat:=
mr_wxbj_rk.adotable1.FieldByName('库存金额').asfloat+
strtofloat(dbedit11.text);
mr_wxbj_rk.adotable1.fieldbyname('平均单价').asfloat:=
mr_wxbj_rk.adotable1.fieldbyname('库存金额').asfloat/
mr_wxbj_rk.adotable1.fieldbyname('数量').asfloat;
mr_wxbj_rk.adotable1.Post;
end else begin
mr_wxbj_rk.adotable1.Last;
bian:=mr_wxbj_rk.adotable1.fieldbyname('编号').asstring;
if bian='' then begin
bian:='000001';
end else begin
bian:=inttostr(strtoint(bian)+1);
for bian1:=1 to 6-length(bian) do begin
bian:='0'+bian;
end;
end;
mr_wxbj_rk.adotable1.InsertRecord([bian,dbcombobox1.text,
dbcombobox3.text,dbedit4.text,dbedit5.text,
strtoint(dbedit8.text)-strtoint(dbedit12.text),
dbedit9.text,dbedit11.text,
mr_wxform.adotable2.fieldbyname('库存上限').asinteger,
mr_wxform.adotable2.fieldbyname('库存下限').asinteger,
mr_wxbj_rk.combobox3.text]);
end;
mr_wxbj_rk.adotable2.insertrecord([date,dbcombobox1.text,
dbcombobox3.text,dbedit4.text,dbedit5.text,
dbcombobox2.text,dbedit8.text,nil,dbedit9.text,nil,
dbedit11.text,mr_wxbj_rk.adotable1.fieldbyname('数量').asinteger,
dbedit12.text,dblookupcombobox5.text,nil,mr_wxbj_rk.combobox3.text]);
close;
end;
procedure TMR_WXBJRK_TJ.DBEdit9Exit(Sender: TObject);
begin
Tdbedit(sender).color:=clwindow;
if dbedit8.text='' then dbedit8.text:='0';
if dbedit9.text='' then dbedit9.text:='0';
mr_wxbj_rk.adotable3.fieldbyname('金额').asfloat:=strtofloat(dbedit9.text)*
strtoint(dbedit8.text);
end;
procedure TMR_WXBJRK_TJ.DataSource4DataChange(Sender: TObject;
Field: TField);
begin
{ if adotable4.RecordCount<>0 then begin
if adotable4.FieldByName('金额').asfloat<=adotable4.fieldbyname('提示下限').asfloat then begin
showmessage('该款项的金额以低于提示下限,请三思.');
end;
end;}
end;
procedure TMR_WXBJRK_TJ.FormShow(Sender: TObject);
begin
adotable1.First;
dbcombobox1.Items.Clear;
while not adotable1.Eof do begin
dbcombobox1.Items.Add(adotable1.fieldbyname('备件名').asstring);
adotable1.Next;
end;
adoquery2.First;
dbcombobox2.Items.Clear;
while not adoquery2.Eof do begin
dbcombobox2.Items.Add(adoquery2.fieldbyname('商家名称').asstring);
adoquery2.Next;
end;
end;
procedure TMR_WXBJRK_TJ.DBComboBox1Exit(Sender: TObject);
begin
if dbcombobox1.Text<>'' then begin
if not adotable1.Locate('备件名',dbcombobox1.text,[loCaseInsensitive]) then begin
adotable1.InsertRecord([dbcombobox1.text]);
dbcombobox1.Items.Add(dbcombobox1.text);
end;
end;
mr_wxbj_rk.ADOTable3.FieldByName('入库方式').asstring:='买入';
mr_wxbj_rk.ADOTable3.FieldByName('入库数量').asinteger:=0;
mr_wxbj_rk.adotable3.FieldByName('入库单价').asfloat:=0;
mr_wxbj_rk.ADOTable3.FieldByName('损耗').asinteger:=0;
end;
procedure TMR_WXBJRK_TJ.DBComboBox1Change(Sender: TObject);
begin
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.add('select * from 备件基本信息 where 备件名称='''+dbcombobox1.Text+'''');
adoquery1.Open;
adoquery1.First;
dbcombobox3.Items.Clear;
while not adoquery1.Eof do begin
dbcombobox3.Items.Add(adoquery1.fieldbyname('备件型号').asstring);
adoquery1.Next;
end;
dbcombobox3.Text:='';
mr_wxbj_rk.ADOTable3.FieldByName('规格').asstring:='';
mr_wxbj_rk.ADOTable3.FieldByName('单位').asstring:='';
end;
procedure TMR_WXBJRK_TJ.DBComboBox3Change(Sender: TObject);
begin
if adoquery1.Locate('备件型号',dbcombobox3.text,[loCaseInsensitive]) then begin
mr_wxbj_rk.ADOTable3.FieldByName('规格').asstring:=
ADOQuery1.fieldbyname('备件规格').asstring;
mr_wxbj_rk.ADOTable3.FieldByName('单位').asstring:=
adoquery1.fieldbyname('单位').asstring;
mr_wxbj_rk.ADOTable3.FieldByName('入库方式').asstring:='买入';
mr_wxbj_rk.ADOTable3.FieldByName('入库数量').asinteger:=0;
mr_wxbj_rk.adotable3.FieldByName('入库单价').asfloat:=0;
mr_wxbj_rk.ADOTable3.FieldByName('损耗').asinteger:=0;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -