📄 fin_product_ck.pas
字号:
parameters.ParamValues['ord_id']:=ord_id;
parameters.ParamValues['tmp_id']:=tmp_id;
parameters.ParamValues['num']:=num;
//确保数据的安全性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['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!');
finck_flag:=false; exit;
end;
end;//1.End
//2.更新成品库存表的库存量
with ADOQ_tmp do
begin
close; sql.clear;
sql.Add('update kc_fin_product set num=num-:num, size_1=size_1-:size_1, size_2=size_2-:size_2,');
sql.Add('size_3=size_3-:size_3, size_4=size_4-:size_4, size_5=size_5-:size_5, size_6=size_6-:size_6');
sql.add('where (ord_id=:ord_id)');
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_6']:=size_6;
parameters.ParamValues['size_5']:=size_5;
try
execsql;
except
if datamod.ADOCon.InTransaction then datamod.ADOCon.RollbackTrans;
MsgErr(handle,'服装成品出库处理失败--2!');
finck_flag:=false; exit;
end;
end;//2.End
//3.企业收入流水账中新增一条记录
with ADOQ_tmp do
begin
close;sql.clear;
sql.add('INSERT INTO earning(event, [money], tmp_id)');
sql.add(' values(:event, :money, :tmp_id)');
parameters.ParamValues['event']:='订单批号:'+ord_id+'的服装出库'+inttostr(num)+'件';;
parameters.ParamValues['tmp_id']:=tmp_id;
parameters.ParamValues['money']:=money;
try
execsql;
except
if datamod.ADOCon.InTransaction then datamod.ADOCon.RollbackTrans;
MsgErr(handle,'服装成品销售出库处理失败--3!');
finck_flag:=false; exit;
end;
end;//3.End
if not finck_flag then
begin
msgErr(handle,'服装成品 ['+costume_name+'] 出库 '+inttostr(num)+' '+tmp_unit+'失败,请重试--All!');
if datamod.ADOCon.InTransaction then datamod.ADOCon.RollbackTrans;
exit;
end;
//提交数据库
if finck_flag then
if datamod.ADOCon.InTransaction then
begin
try
datamod.ADOCon.CommitTrans;
except
msgErr(handle,'服装成品 ['+costume_name+'] 出库 '+inttostr(num)+' '+tmp_unit+'失败,请重试--All!');
if datamod.ADOCon.InTransaction then datamod.ADOCon.RollbackTrans;
exit;
end;
msgok(handle,'服装成品 ['+costume_name+'] 出库 '+inttostr(num)+' '+tmp_unit+'成功!');
//初始化数据值
begin
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;
//********************************************
//********************************************
//********************************************
//CALL DATABASE Pro_CK_FinKC STORE PROCEDURE
//@ord_id varchar(10), @tmp_id int, @num int, @size_1 int,@size_2 int,@size_3 int,@size_4 int,@size_5 int,@size_6 int
{
with ADOSP_CK_FinKC do
begin
parameters.paramvalues['@ord_id']:=ord_id;
parameters.paramvalues['@tmp_id']:=tmp_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;
parameters.paramvalues['@event']:='订单批号:'+ord_id+'的服装出库'+inttostr(num)+'件';
try
execproc;
except
showmessage('存储过程执行失败(Pro_CK_FinKC),请重新操作!');
exit;
end;
if parameters.paramvalues['@RETURN_VALUE']=0 then
begin
msgErr(handle,'服装成品 [ '+costume_name+' ] 出库 '+inttostr(num)+' '+tmp_unit+'失败,请重试!');
exit;
end;
if parameters.paramvalues['@RETURN_VALUE']=1 then
msgok(handle,'服装成品 [ '+costume_name+' ] 出库 '+inttostr(num)+' '+tmp_unit+'成功!');
end;
//初始化数据值
begin
Edit_num.Text:='';
Edit_S.Text:='';
Edit_M.Text:='';
Edit_L.Text:='';
Edit_XL.Text:='';
Edit_XXL.Text:='';
Edit_XXXL.Text:='';
end; }
end;
procedure TForm_Fin_Product_CK.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_CK.CancelBtnClick(Sender: TObject);
begin
panel5.Visible:=false;
panel5.Enabled:=false;
ExtBtn.Cancel:=true;
CancelBtn.cancel:=false;
end;
procedure TForm_Fin_Product_CK.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 (ckdate 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_CK_Fin do
begin
try
close;
sql.Strings[1]:=strwhere;
sql.Strings[2]:='order by clo_name,cust_name,ord_id,ckdate 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_CK_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_CK.BitBtn1Click(Sender: TObject);
begin
if not ADOV_CK_Fin.Active then exit;
refreshdb;
end;
procedure TForm_Fin_Product_CK.PageControl1Change(Sender: TObject);
begin
if pagecontrol1.ActivePageIndex=0 then
begin
if ADOV_CK_Fin.Active then ADOV_CK_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';
end;
end;
procedure TForm_Fin_Product_CK.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_CK.DBLookupComboBox1Change(Sender: TObject);
begin
DBLookupComboBox1.Text:=trim(DBLookupComboBox1.Text);
with ADOV_KC_Fin do
begin
close;
if trim(DBLookupComboBox1.Text)='' then
begin
SQL.Strings[1]:='';
open; exit;
end;
SQL.Strings[1]:='where clo_name ='+''''+trim(DBLookupComboBox1.Text)+'''';
execsql; open;
end;
end;
procedure TForm_Fin_Product_CK.Edit1KeyPress(Sender: TObject;
var Key: Char);
begin
if not (key in ['0'..'9',#13, #8]) then abort;
end;
procedure TForm_Fin_Product_CK.Edit3KeyPress(Sender: TObject;
var Key: Char);
begin
if key=chr(13) then Bit_Ser2.Click;
end;
procedure TForm_Fin_Product_CK.Bit_Ser2Click(Sender: TObject);
begin
edit3.Text:=trim(edit3.Text);
if edit3.Text='' then begin edit3.SetFocus;exit;end;
//查找对应的订单信息
with ADOV_KC_Fin do
begin
close;
sql.Strings[1]:='costume_name like '+''''+'%'+edit3.Text+'%'+'''';
open;
if recordcount<0 then
begin
MsgErr(handle,'没找到服装名称为 ['+edit3.Text+'] 的库存订单!');
edit3.SetFocus;
end;
end;
end;
procedure TForm_Fin_Product_CK.BtnexportClick(Sender: TObject);
begin
Form_main.WriteIntoExcel(DBGrid2,datetostr(date),'成品出库信息报表');
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -