📄 stock_enter.pas
字号:
unit Stock_Enter;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, Grids, StdCtrls, Buttons, XPMenu;
type
Tfrm_Stock_Enter = class(TForm)
Panel1: TPanel;
Panel2: TPanel;
SpeedButton2: TSpeedButton;
SpeedButton3: TSpeedButton;
Cmd_Cancel: TSpeedButton;
Panel3: TPanel;
Cmd_HT: TSpeedButton;
Edit1: TLabeledEdit;
GroupBox1: TGroupBox;
SpeedButton5: TSpeedButton;
SpeedButton7: TSpeedButton;
SpeedButton8: TSpeedButton;
SpeedButton9: TSpeedButton;
Edit4: TLabeledEdit;
Edit_Stock_Name: TLabeledEdit;
Edit6: TLabeledEdit;
Edit7: TLabeledEdit;
Edit8: TLabeledEdit;
Edit9: TLabeledEdit;
Edit10: TLabeledEdit;
Edit5: TEdit;
Edit2: TLabeledEdit;
Edit3: TLabeledEdit;
Panel8: TPanel;
Label2: TLabel;
Label3: TLabel;
Panel9: TPanel;
Panel10: TPanel;
Cmd_Delete: TSpeedButton;
Cmd_Add: TSpeedButton;
StringGrid1: TStringGrid;
SpeedButton1: TSpeedButton;
Label1: TLabel;
procedure Cmd_CancelClick(Sender: TObject);
procedure Edit1DblClick(Sender: TObject);
procedure Cmd_HTClick(Sender: TObject);
procedure SpeedButton5Click(Sender: TObject);
procedure SpeedButton8Click(Sender: TObject);
procedure SpeedButton7Click(Sender: TObject);
procedure StringGrid1DblClick(Sender: TObject);
procedure StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormShow(Sender: TObject);
procedure Cmd_AddClick(Sender: TObject);
procedure Cmd_DeleteClick(Sender: TObject);
procedure SpeedButton9Click(Sender: TObject);
procedure SpeedButton2Click(Sender: TObject);
procedure Edit3Change(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure StringGrid1SelectCell(Sender: TObject; ACol, ARow: Integer;
var CanSelect: Boolean);
procedure StringGrid1KeyPress(Sender: TObject; var Key: Char);
procedure SpeedButton3Click(Sender: TObject);
private
{ Private declarations }
//procedure Stock_States_Total;
stockid:widestring;
pcol,prow:integer;
PROCEDURE INIT;
public
{ Public declarations }
end;
var
frm_Stock_Enter: Tfrm_Stock_Enter;
iColcount,Total_Count:Integer;
Pcol,Prow:integer;
Insert_Sql:String;
ss,tempstr:string;
implementation
uses Data, Public_Don, Main, Contract_Check, Supply_Monad, Storage_Select,
ChildShop_Select, Quality_Check_Select, Stock_Write_Check,
func, untdatadm, Login_Man, Unt_PubStrGrid, Unitreportxf;
{$R *.dfm}
PROCEDURE TFRM_STOCK_ENTER.INIT;
VAR
I:INTEGER;
temp,make:string;
BEGIN
edit1.Text:='';
edit2.Text:='';
edit3.Text:='';
edit4.Text:='';
edit5.Text:='';
edit6.Text:='';
edit7.Text:='';
edit8.Text:='';
edit9.Text:='';
edit10.Text:='';
// FUNC.setnull(frm_Goods_Write); //清除窗体上的控件内容
for i:=1 to stringgrid1.RowCount-1 do //清空网格,不能只减去行,避免下次新建时数据重复出现
stringgrid1.Rows[i].Clear;
stringgrid1.RowCount:=2;
if (Public_Do='Business_Storage_in') or (Public_Do='instock_0001') then
begin
InitialStrGrid(stringgrid1,'非营业性入库');
end else
begin
InitialStrGrid(stringgrid1,'采购入库');
stringgrid1.ColCount:=stringgrid1.ColCount+1; //在预定商品时记录预定单编号;
stringgrid1.ColWidths[stringgrid1.ColCount-1]:=-1;
end;
if (Public_Do='Business_Storage_in') or (Public_Do='Business_Draft_0001') then exit;
temp:='select max(right(stock_no,4)) from stock_jion where copy_date='+''''+formatdatetime('yyyy''-''mm''-''dd',date)+''''+' and part_no='+''''+trim(Handle_Part)+'''';
make:='ISK-'+trim(Handle_Part)+trim(handle_no);//5-11编码中部门编号
edit2.Text:=setcode(temp,make);
edit1.Text:=formatdatetime('yyyy''-''mm''-''dd',date);
edit8.Text:=trim(Handle_Man);
END;
//*******************************************
//*******************************************
procedure Tfrm_Stock_Enter.Cmd_CancelClick(Sender: TObject);
var
i,j,icol:integer;
Check_Flag:string;
sqlsub:widestring;
t_i,t_j:integer;
begin
frm_Public_Don:=Tfrm_Public_Don.Create(self);
frm_Public_Don.no:=trim(edit2.Text);
frm_Public_Don.no:=trim(edit2.Text);
frm_Public_Don.ShowModal;
//直接操作入库界面
//保存为草稿单据
if (Public_Do='Stock_0003') or (Public_Do='instock_0001')then
begin
if Public_Do_Result='02' then
begin
if Trim(Edit1.Text)='' then
begin
application.MessageBox('操作错误,【录单日期】不能为空!,请确认!',pchar(application.Title),mb_iconwarning);
Edit1.SetFocus;
Exit;
end;
if Trim(Edit2.Text)='' then
begin
application.MessageBox('操作错误,【单据编号】不能为空!,请确认!',pchar(application.Title),mb_iconwarning);
Edit2.SetFocus;
Exit;
end;
if Trim(Edit4.Text)='' then
begin
application.MessageBox('操作错误,【供货单位】不能为空!,请确认!',pchar(application.Title),mb_iconwarning);
Edit4.SetFocus;
Exit;
end;
if Trim(Edit5.Text)='' then
begin
application.MessageBox('操作错误,【收货仓库】不能为空!,请确认!',pchar(application.Title),mb_iconwarning);
Edit5.SetFocus;
Exit;
end;
if Trim(Edit6.Text)='' then
begin
application.MessageBox('操作错误,【经手人】不能为空!,请确认!',pchar(application.Title),mb_iconwarning);
Edit6.SetFocus;
Exit;
end;
if Trim(Edit8.Text)='' then
begin
application.MessageBox('操作错误,【制单人】不能为空!,请确认!',pchar(application.Title),mb_iconwarning);
Edit8.SetFocus;
Exit;
end;
if (Public_Do<>'instock_0001') and (public_do<>'Business_Storage_in') then //非营业入库不给提示;
begin
if Trim(Edit3.Text)='' then
begin
application.MessageBox('操作错误,【质量验收单据号】不能为空!,请确认!',pchar(application.Title),mb_iconwarning);
Edit3.SetFocus;
Exit;
end;
end;
for i:=1 to StringGrid1.RowCount-1 do
begin
if StringGrid1.Cells[1,i]='' then
begin
application.MessageBox('操作错误,【商品编号】不能为空!,请确认!',pchar(application.Title),mb_iconwarning);
Exit;
end;
if (StringGrid1.Cells[4,i]='') or (StringGrid1.Cells[4,i]='0') then
begin
application.MessageBox('操作错误,【数量】不能为空!,请确认!',pchar(application.Title),mb_iconwarning);
Exit;
end;
end;
sqlsub:='Select * from [Stock_Jion] where Copy_Date='''+Trim(Edit1.Text)+''' and Stock_NO='''+Trim(Edit2.Text)+''' ';
dmmain.CDSquery.Close;
dmmain.CDSquery.Data:=frm_data.Socket_Connection.AppServer.GetRecord(sqlsub);
dmmain.CDSquery.Open;
if dmmain.CDSquery.RecordCount>0 then
begin
Application.MessageBox('添加失败,该记录已经存在,请确认!',pchar(application.Title),mb_iconwarning);
Exit;
end else
begin
// Close;
// CommandText:='';
if not dmmain.cdsStock_Jion.Active then dmmain.cdsStock_Jion.Open; //CommandText:='Insert into [Stock_Jion] (Copy_Date,Stock_No,Contract_No,WLDW,Storage_Name,Transactor,Shop_NO,proposer,Resume,remark,Quality_Check_ID) values ('''+Trim(Edit1.Text)+''','''+Trim(Edit2.Text)+''','''+Trim(Edit3.Text)+''','''+Trim(Edit4.Text)+''','''+Trim(Edit5.Text)+''','''+Trim(Edit6.Text)+''','''+Trim(Edit7.Text)+''','''+Trim(Edit8.Text)+''','''+Trim(Edit9.Text)+''','''+Trim(Edit10.Text)+''','''+Trim(Edit11.Text)+''')';
dmmain.cdsStock_Jion.Append;
dmmain.cdsStock_Jion.FieldByName('Copy_Date').AsString:=Trim(Edit1.Text);
dmmain.cdsStock_Jion.FieldByName('Stock_No').AsString:=Trim(Edit2.Text);
dmmain.cdsStock_Jion.FieldByName('Contract_No').AsString:=Trim(Edit3.Text);
dmmain.cdsStock_Jion.FieldByName('WLDW').AsString:=Trim(Edit4.Text);
dmmain.cdsStock_Jion.FieldByName('WLDW_no').AsString:=Trim(wldwno);/////////////////
//原来字段名为Storage_Name,系统要出错(无此字段名),改为Stock_Name
if (Public_Do='Stock_0003') then
begin
dmmain.cdsStock_Jion.FieldByName('Stock_Name').AsString:='采购入库单';
end;
if (Public_Do='instock_0001') then
begin
dmmain.cdsStock_Jion.FieldByName('Stock_Name').AsString:='非营业性入库单';
end;
dmmain.cdsStock_Jion.FieldByName('Storage_no').AsString:=Trim(Edit5.Text); //写库房号或分店号
dmmain.cdsStock_Jion.FieldByName('Transactor').AsString:=Trim(Edit6.Text);
dmmain.cdsStock_Jion.FieldByName('Shop_NO').AsString:=Trim(Edit7.Text);
dmmain.cdsStock_Jion.FieldByName('proposer').AsString:=Trim(Edit8.Text);
dmmain.cdsStock_Jion.FieldByName('Resume').AsString:=Trim(Edit9.Text);
dmmain.cdsStock_Jion.FieldByName('remark').AsString:=Trim(Edit10.Text);
dmmain.cdsStock_Jion.FieldByName('Quality_Check_ID').AsString:=Trim(Edit3.Text);
dmmain.cdsStock_Jion.FieldByName('part_no').AsString:=Trim(Handle_Part);//制单部门;
dmmain.cdsStock_Jion.Post;
//草稿单据
dmmain.cdsReceipt.close;
dmmain.cdsReceipt.Open;
dmmain.cdsReceipt.Append;
dmmain.cdsReceipt.FieldByName('Receipt_NO').AsString:=Trim(Edit2.Text);
if (Public_Do='Stock_0003') then
begin
dmmain.cdsReceipt.FieldByName('Receipt_Name').AsString:='采购入库单';
end;
if (Public_Do='instock_0001') then
begin
dmmain.cdsReceipt.FieldByName('Receipt_Name').AsString:='非营业性入库单';
end;
dmmain.cdsReceipt.FieldByName('Copy_Date').AsString:=Trim(Edit1.Text);
dmmain.cdsReceipt.FieldByName('Proposer').AsString:=Trim(Edit8.Text);
dmmain.cdsReceipt.FieldByName('Check_Result').Asinteger:=0;
dmmain.cdsReceipt.FieldByName('Flag_Sign').AsString:='草稿';
dmmain.cdsReceipt.FieldByName('Condense').AsString:=Trim(Edit10.Text);
dmmain.cdsReceipt.FieldByName('Re_part').AsString:=trim(Handle_Part);
dmmain.cdsReceipt.Post;
//Total_Count:=StringGrid1.RowCount;
dmmain.cdsstockdetail.Close;
dmmain.cdsstockdetail.Open;
for i:=1 to StringGrid1.RowCount-1 do
begin
dmmain.cdsstockdetail.Append;
dmmain.cdsstockdetail.FieldByName('Stock_NO').AsString :=Trim(Edit2.Text);
dmmain.cdsstockdetail.FieldByName('Goods_NO').AsString :=Trim(StringGrid1.Cells[1,i]);
dmmain.cdsstockdetail.FieldByName('goods_name').AsString :=Trim(StringGrid1.Cells[2,i]);
dmmain.cdsstockdetail.FieldByName('amount').AsString :=Trim(StringGrid1.Cells[4,i]);
if (Public_Do='instock_0001')then
begin
dmmain.cdsstockdetail.FieldByName('price').AsString :=Trim(StringGrid1.Cells[3,i]); //非营业入库写入单价;
dmmain.cdsstockdetail.FieldByName('total_money').AsString :=Trim(StringGrid1.Cells[5,i]);
dmmain.cdsstockdetail.FieldByName('quality').AsString :=Trim(StringGrid1.Cells[7,i]); //非营业入库写入金额
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -