📄 fin_product_rk.pas
字号:
if size_3=null then size_3:=0;
if size_4=null then size_4:=0;
if size_5=null then size_5:=0;
if size_6=null then size_6:=0;
/////////////////////End
parameters.ParamValues['num']:=num;
parameters.ParamValues['size_1']:=size_1;
parameters.ParamValues['size_2']:=size_2;
parameters.ParamValues['size_3']:=size_3;
parameters.ParamValues['size_4']:=size_4;
parameters.ParamValues['size_5']:=size_5;
parameters.ParamValues['size_6']:=size_6;
try
execsql;
except
if datamod.ADOCon.InTransaction then datamod.ADOCon.RollbackTrans;
MsgErr(handle,'成品入库处理失败--1!');
finrk_flag:=false; exit;
end;
end;//1.End
//2.更新成品库存表的库存量
with ADOQ_tmp do
begin
close; sql.clear;
//如果库存表存在则更新记录
if kc_flag then
begin
sql.Add('update kc_fin_product set num=num+:num');
sql.Add('update kc_fin_product set size_1=size_1+:size_1');
sql.Add('update kc_fin_product set size_2=size_2+:size_2');
sql.Add('update kc_fin_product set size_3=size_3+:size_3');
sql.Add('update kc_fin_product set size_4=size_4+:size_4');
sql.Add('update kc_fin_product set size_5=size_5+:size_5');
sql.Add('update kc_fin_product set size_6=size_6+:size_6');
sql.add('where ord_id=:ord_id')
end;
//如果库存表不存在该服装成品的数据则新增一条记录
if not kc_flag then
begin
close;sql.clear;
sql.add('insert into kc_fin_product (ord_id, num, size_1, size_2, size_3, size_4, size_5, size_6)');
sql.add('values(:ord_id, :num, :size_1, :size_2, :size_3, :size_4, :size_5, :size_6)');
end;
//确保数据的安全性Start
if num=null then num:=0;
if size_1=null then size_1:=0;
if size_2=null then size_2:=0;
if size_3=null then size_3:=0;
if size_4=null then size_4:=0;
if size_5=null then size_5:=0;
if size_6=null then size_6:=0;
/////////////////////End
parameters.ParamValues['ord_id']:=ord_id;
parameters.ParamValues['num']:=num;
parameters.ParamValues['size_1']:=size_1;
parameters.ParamValues['size_2']:=size_2;
parameters.ParamValues['size_3']:=size_3;
parameters.ParamValues['size_4']:=size_4;
parameters.ParamValues['size_5']:=size_5;
parameters.ParamValues['size_6']:=size_6;
try
execsql;
except
if datamod.ADOCon.InTransaction then datamod.ADOCon.RollbackTrans;
MsgErr(handle,'成品入库处理失败--2!');
finrk_flag:=false; exit;
end;
end;//2.End
//提交数据库
if not finrk_flag then
begin
if datamod.ADOCon.InTransaction then datamod.ADOCon.RollbackTrans;
msgErr(handle,'服装成品 [ '+costume_name+' ] 入库 '+inttostr(num)+' '+tmp_unit+'失败,请重试--All!');
exit;
end;
if finrk_flag then
if datamod.ADOCon.InTransaction then
begin
try
datamod.ADOCon.CommitTrans;
except
if datamod.ADOCon.InTransaction then datamod.ADOCon.RollbackTrans;
msgErr(handle,'服装成品 [ '+costume_name+' ] 入库 '+inttostr(num)+' '+tmp_unit+'失败,请重试--All!');
exit;
end;
msgok(handle,'服装成品 [ '+costume_name+' ] 入库 '+inttostr(num)+' '+tmp_unit+'成功!');
//初始化数据值
Edit_num.Text:='0';
Edit_S.Text:='0';
Edit_M.Text:='0';
Edit_L.Text:='0';
Edit_XL.Text:='0';
Edit_XXL.Text:='0';
Edit_XXXL.Text:='0';
end;
//********************************************
//********************************************
//********************************************
end;
procedure TForm_Fin_Product_RK.PageControl1Change(Sender: TObject);
var
RK_date:Tdatetime;
begin
if pagecontrol1.ActivePageIndex=0 then
begin
if ADOV_RK_Fin.Active then ADOV_RK_Fin.close;
Edit_num.Text:='0';
Edit_S.Text:='0'; Edit_M.Text:='0';
Edit_L.Text:='0'; Edit_XL.Text:='0';
Edit_XXL.Text:='0'; Edit_XXXL.Text:='0';
GetHostDateTime(datamod.ADOCon,RK_date);
datep_rkdate.DateTime:=RK_date;
end;
end;
procedure TForm_Fin_Product_RK.LocateBtnClick(Sender: TObject);
var
tmpdatetime:Tdatetime;
begin
if not panel5.Visible then
begin
panel5.Enabled:=true;
panel5.Visible:=true;
//得到入库日期
GetHostDateTime(datamod.ADOCon,tmpdatetime);
edate.DateTime:=tmpdatetime;
DBLookup_ordid.Text:='';
DBLookup_custname.text:='';
DBLookup_cloth.ItemIndex:=0;
Lookup_costume.text:='';
DBLookup_operid.ItemIndex:=0;
edit1.Clear; edit2.Clear;
ExtBtn.Cancel:=false;
CancelBtn.cancel:=true;
end;
end;
procedure TForm_Fin_Product_RK.BitBtn1Click(Sender: TObject);
begin
if not ADOV_RK_Fin.Active then exit;
refreshdb;
end;
procedure TForm_Fin_Product_RK.CancelBtnClick(Sender: TObject);
begin
panel5.Visible:=false;
panel5.Enabled:=false;
ExtBtn.Cancel:=true;
CancelBtn.cancel:=false;
end;
procedure TForm_Fin_Product_RK.OKBtnClick(Sender: TObject);
var
tmpnum, ordid, custname, clothing,
costume, tmp_operid, strwhere: string;
begin
ordid:=trim(DBLookup_ordid.text);
custname:=trim(DBLookup_custname.text);
clothing:=trim(DBLookup_cloth.text);
costume:=trim(Lookup_costume.text);
tmp_operid:=trim(DBLookup_operid.Text);
tmpnum:=Getquery_char(ComboBox1.Text,trim(Edit1.Text),trim(ComboBox2.Text),ComboBox3.Text,trim(Edit2.Text),'num');
//得到查询的条件语句
begin
strwhere:='where (rkdate between :TmpStart and :TmpEnd )';
if ordid<>'' then
strwhere:=strwhere+' and (ord_id = '+''''+ordid+''''+')';
if custname<>'' then
strwhere:=strwhere+' and (cust_name = '+''''+custname+''''+')';
if clothing<>'' then
strwhere:=strwhere+' and (clo_name = '+''''+clothing+''''+')';
if costume<>'' then
strwhere:=strwhere+' and (costume_name = '+''''+costume+''''+')';
if tmp_operid<>'' then
strwhere:=strwhere+' and (opername = '+''''+tmp_operid+''''+')';
strwhere:=strwhere + tmpnum;
end;
with ADOV_RK_Fin do
begin
try
close;
sql.Strings[1]:=strwhere;
sql.Strings[2]:='order by clo_name,cust_name, ord_id,rkdate desc';
parameters.ParamValues['TmpStart']:=strtodatetime(formatdatetime('yyyy-mm-dd',sdate.Date)+' 00:00:00');
parameters.ParamValues['TmpEnd']:=strtodatetime(formatdatetime('yyyy-mm-dd',edate.Date)+' 23:59:59');
execsql;
open;
except
MsgErr(handle,'数据库检索失败(Fin_product_RK_Q)!');
refreshdb;
exit;
end;
BtnExport.Enabled:=recordcount>0;
end;
panel5.Visible:=false;
panel5.Enabled:=false;
ExtBtn.Cancel:=true;
CancelBtn.cancel:=false;
end;
procedure TForm_Fin_Product_RK.Bit_Ser2Click(Sender: TObject);
begin
edit3.Text:=trim(edit3.Text);
if edit3.Text='' then begin edit3.SetFocus;exit;end;
//查找对应的订单信息
with ADOQ_order do
begin
close;
sql.Strings[3]:='and a.costume_name like '+''''+'%'+edit3.Text+'%'+'''';
open;
if recordcount<0 then
begin
MsgErr(handle,'没找到服装名称为 ['+edit3.Text+'] 的订单!');
edit3.SetFocus;
end;
end;
end;
procedure TForm_Fin_Product_RK.Edit3KeyPress(Sender: TObject;
var Key: Char);
begin
if key=chr(13) then Bit_Ser2.Click;
end;
procedure TForm_Fin_Product_RK.FormShow(Sender: TObject);
begin
with adoQ_tmp do
begin
close; sql.Clear;
sql.Add('select ord_id,costume_name from order_msg');
open; First;
DBLookup_ordid.Clear;
Lookup_costume.Clear;
DBLookup_ordid.Items.Add(' ');
Lookup_costume.Items.Add(' ');
while not eof do
begin
DBLookup_ordid.Items.Add(fieldvalues['ord_id']);
Lookup_costume.Items.Add(fieldvalues['costume_name']);
next;
end;
close; sql.Clear;
sql.Add('select cust_name from customer');
open ; First;
DBLookup_custname.Items.Clear;
DBLookup_custname.Items.Add(' ');
while not eof do
begin
DBLookup_custname.Items.Add(fieldvalues['cust_name']);
next;
end;
close; sql.Clear;
sql.Add('select clo_name from clothing');
open ; First;
DBLookup_cloth.Items.Clear;
DBLookupComboBox1.Items.Clear;
DBLookup_cloth.Items.Add(' ');
DBLookupComboBox1.Items.Add(' ');
while not eof do
begin
DBLookup_cloth.Items.Add(fieldvalues['clo_name']);
DBLookupComboBox1.Items.Add(fieldvalues['clo_name']);
next;
end;
close;sql.Clear;
sql.Add('select opername from operator');
open; first;
DBLookup_operid.Clear;
DBLookup_operid.items.add(' ');
while not eof do
begin
DBLookup_operid.Items.Add(fieldvalues['opername']);
next;
end;
close;
end;
end;
procedure TForm_Fin_Product_RK.DBLookupComboBox1Change(Sender: TObject);
begin
DBLookupComboBox1.Text:=trim(DBLookupComboBox1.Text);
with ADOQ_order do
begin
close;
if trim(DBLookupComboBox1.Text)='' then
begin
SQL.Strings[3]:='';
open; exit;
end;
SQL.Strings[3]:='and c.clo_name ='+''''+trim(DBLookupComboBox1.Text)+'''';
execsql; open;
end;
end;
procedure TForm_Fin_Product_RK.datep_rkdateChange(Sender: TObject);
var rk_date:Tdatetime;
begin
GetHostDateTime(datamod.ADOCon,RK_date);
datep_rkdate.Time:=StrToTimeDef('hh-mm-ss',RK_date);
end;
procedure TForm_Fin_Product_RK.Edit1KeyPress(Sender: TObject;
var Key: Char);
begin
if not (key in ['0'..'9',#13, #8]) then abort;
end;
procedure TForm_Fin_Product_RK.BtnExportClick(Sender: TObject);
begin
Form_main.WriteIntoExcel(DBGrid2,datetostr(date),'成品入库信息报表');
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -