📄 fin_product_rk.pas
字号:
unit Fin_Product_RK;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, DBGrids, DB, ADODB, StdCtrls, Mask, DBCtrls, ComCtrls,
ExtCtrls, Buttons;
type
TForm_Fin_Product_RK = class(TForm)
ADOV_RK_Fin: TADOQuery;
DS_RK_Fin: TDataSource;
PageControl1: TPageControl;
TabSheet1: TTabSheet;
Panel1: TPanel;
Button1: TButton;
TabSheet2: TTabSheet;
Panel4: TPanel;
DBGrid2: TDBGrid;
Panel5: TPanel;
Label22: TLabel;
Label23: TLabel;
Label25: TLabel;
Bevel1: TBevel;
Label28: TLabel;
OKBtn: TBitBtn;
CancelBtn: TBitBtn;
ComboBox1: TComboBox;
Edit1: TEdit;
ComboBox3: TComboBox;
Edit2: TEdit;
ComboBox2: TComboBox;
GroupBox6: TGroupBox;
Label31: TLabel;
Label32: TLabel;
Sdate: TDateTimePicker;
Edate: TDateTimePicker;
Panel3: TPanel;
Panel6: TPanel;
GroupBox2: TGroupBox;
Label8: TLabel;
Label9: TLabel;
Label6: TLabel;
Label7: TLabel;
Label10: TLabel;
Label11: TLabel;
BitBtn_RK: TBitBtn;
Label3: TLabel;
Label2: TLabel;
datep_rkdate: TDateTimePicker;
GroupBox4: TGroupBox;
DBGrid1: TDBGrid;
DS_order_Q: TDataSource;
ADOQ_order: TADOQuery;
ADOQ_orderord_id: TStringField;
ADOQ_ordercostume_name: TStringField;
ADOQ_orderclo_id: TIntegerField;
ADOQ_ordercust_id: TIntegerField;
ADOQ_ordernum: TIntegerField;
ADOQ_orderunit: TStringField;
ADOQ_ordercust_name: TStringField;
ADOQ_orderclo_name: TStringField;
ADOV_RK_Finrkid: TAutoIncField;
ADOV_RK_Finord_id: TStringField;
ADOV_RK_Finrkdate: TDateTimeField;
ADOV_RK_Fintmp_id: TIntegerField;
ADOV_RK_Finnum: TIntegerField;
ADOV_RK_Finsize_1: TIntegerField;
ADOV_RK_Finsize_2: TIntegerField;
ADOV_RK_Finsize_3: TIntegerField;
ADOV_RK_Finsize_4: TIntegerField;
ADOV_RK_Finsize_5: TIntegerField;
ADOV_RK_Finsize_6: TIntegerField;
ADOV_RK_Fincostume_name: TStringField;
ADOV_RK_Fincust_name: TStringField;
ADOV_RK_Finclo_name: TStringField;
ADOV_RK_Finunit: TStringField;
ADOV_RK_Finopername: TStringField;
DBText1: TDBText;
Edit_num: TEdit;
Edit_S: TEdit;
Edit_M: TEdit;
Edit_L: TEdit;
Edit_XXL: TEdit;
Edit_XL: TEdit;
Edit_XXXL: TEdit;
Label12: TLabel;
Label13: TLabel;
Label14: TLabel;
Label15: TLabel;
ADOQ_tmp: TADOQuery;
DBLookup_ordid: TComboBox;
Lookup_costume: TComboBox;
DBLookup_custname: TComboBox;
DBLookup_cloth: TComboBox;
DBLookup_operid: TComboBox;
Panel2: TPanel;
Label17: TLabel;
DBLookupComboBox1: TComboBox;
Label16: TLabel;
Edit3: TEdit;
Label1: TLabel;
Label4: TLabel;
DBE_ordid: TDBEdit;
DBE_custname: TDBEdit;
DBE_costume: TDBEdit;
Label5: TLabel;
Bit_Ser2: TBitBtn;
Panel7: TPanel;
BitBtn1: TBitBtn;
LocateBtn: TBitBtn;
ExtBtn: TBitBtn;
BtnExport: TBitBtn;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormCreate(Sender: TObject);
procedure BitBtn_RKClick(Sender: TObject);
procedure PageControl1Change(Sender: TObject);
procedure LocateBtnClick(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure CancelBtnClick(Sender: TObject);
procedure OKBtnClick(Sender: TObject);
procedure Bit_Ser2Click(Sender: TObject);
procedure Edit3KeyPress(Sender: TObject; var Key: Char);
procedure FormShow(Sender: TObject);
procedure DBLookupComboBox1Change(Sender: TObject);
procedure datep_rkdateChange(Sender: TObject);
procedure Edit1KeyPress(Sender: TObject; var Key: Char);
procedure BtnExportClick(Sender: TObject);
private
{ Private declarations }
procedure refreshdb;
public
{ Public declarations }
end;
var
Form_Fin_Product_RK: TForm_Fin_Product_RK;
implementation
uses sharevar, sharefun, data, Main;
{$R *.dfm}
procedure TForm_Fin_product_RK.refreshdb;
begin
with ADOQ_order do begin close; open; end;
with ADOV_RK_Fin do
begin
sql.Strings[1]:='';
sql.Strings[2]:='order by clo_name,cust_name, ord_id,rkdate desc';
try
execsql;
open;
except
msgErr(handle,'刷新数据库失败!(View_RK_Fin)');
end;
end;
end;
procedure TForm_Fin_Product_RK.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
if ADOQ_order.Active then ADOQ_order.Close;
if ADOV_RK_Fin.Active then ADOV_RK_Fin.Close;
action:=cafree;
end;
procedure TForm_Fin_Product_RK.FormCreate(Sender: TObject);
var
RK_date:Tdatetime;
begin
if not ADOQ_order.Active then ADOQ_order.Open;
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;
procedure TForm_Fin_Product_RK.BitBtn_RKClick(Sender: TObject);
var
ord_id, costume_name, qst_str, tmp_unit:string;
tmp_id, num, temp_sum_num: integer;
size_1, size_2, size_3, size_4, size_5, size_6: integer;
kc_flag, finrk_flag:boolean;
begin
ord_id:=trim(DBE_ordid.Text);
if ord_id='' then
begin
MsgOk(handle, '请选择待入库的服装成品!');
DBE_ordid.SetFocus;
exit;
end;
costume_name:=trim(DBE_costume.Text);
tmp_unit:=ADOQ_order.FieldValues['unit'];
if trim(Edit_num.Text)='' then
begin
msgok(handle, '请输入待入库的服装成品数量!');
edit_num.SetFocus;
exit;
end;
num:=strtoint(trim(edit_num.Text));
if num<=0 then
begin
msgErr(handle,'请输入正确的服装成品数量!');
edit_num.SetFocus;
exit;
end;
//得到成品入库数量明细
begin
if trim(edit_s.Text)='' then size_1:=0 else size_1:=strtoint(edit_s.Text);
if trim(edit_M.Text)='' then size_2:=0 else size_2:=strtoint(edit_M.Text);
if trim(edit_L.Text)='' then size_3:=0 else size_3:=strtoint(edit_L.Text);
if trim(edit_XL.Text)='' then size_4:=0 else size_4:=strtoint(edit_XL.Text);
if trim(edit_XXL.Text)='' then size_5:=0 else size_5:=strtoint(edit_XXL.Text);
if trim(edit_XXXL.Text)='' then size_6:=0 else size_6:=strtoint(edit_XXXL.Text);
end;
temp_sum_num:=size_1 + size_2 + size_3 + size_4 + size_5 + size_6;
if num<>temp_sum_num then
begin
MsgOK(handle,'入库总数与各大小型号服装数量明细不一致,请重新输入!');
edit_num.SetFocus;
exit;
end;
qst_str:='确定订单批号为 ['+ord_id+'] 的服装['+costume_name+']待入库 ['+inttostr(num)+']'+tmp_unit+'吗?';
if MsgQst(handle,qst_str)=IDNO then EXIT;
//CALL DATABASE Pro_RK_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
{ if not get_oper_tmpid(curAdmin.user_id , tmp_id) then
begin
MsgOk(handle,'服装成品入库失败,请重试!');
exit;
end;
with ADOSP_RK_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;
try
execproc;
except
showmessage('存储过程执行失败(Pro_RK_FinKC),请重新操作!');
exit;
end;
// edit_kc_ret_1:=
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;
}
//********************************************
//********************************************
//********************************************
if not get_oper_tmpid(curAdmin.user_id , tmp_id) then
begin
MsgOk(handle,'服装成品入库失败,请重试!');
exit;
end;
//先确定成品库存表内是否存在此条数据
with ADOQ_tmp do
begin
kc_flag:=false;
close; sql.clear;
sql.add('select * from kc_fin_product where (ord_id=:ord_id)');
parameters.ParamValues['ord_id']:=ord_id;
try
execsql; open;
except
MsgErr(handle,'服装成品入库失败,请重试!');
exit;
end;
if recordcount>0 then kc_flag:=true;
end;
//数据提交开始
finrk_flag:=true;
datamod.ADOCon.BeginTrans;
//1.成品入库表新增一条入库记录
with ADOQ_tmp do
begin
close;sql.clear;
sql.add('insert into rk_fin_product(ord_id, tmp_id, num, size_1, size_2, size_3, size_4, size_5, size_6)');
sql.add('values(:ord_id, :tmp_id, :num, :size_1, :size_2, :size_3, :size_4, :size_5, :size_6)');
parameters.ParamValues['ord_id']:=ord_id;
parameters.ParamValues['tmp_id']:=tmp_id;
//确保数据的安全性Start
if num=null then num:=0;
if size_1=null then size_1:=0;
if size_2=null then size_2:=0;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -