📄 ustock_cancel.pas
字号:
unit UStock_cancel;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, fm_Base, Grids, StdCtrls, ExtCtrls, Buttons;
type
TFmCancel = class(TfmBase)
Panel1: TPanel;
Panel2: TPanel;
SpeedButton2: TSpeedButton;
SpeedButton3: TSpeedButton;
SpeedButton4: TSpeedButton;
Label1: TLabel;
Panel3: TPanel;
Edit1: TLabeledEdit;
GroupBox1: TGroupBox;
SpeedButton1: TSpeedButton;
SpeedButton7: TSpeedButton;
SpeedButton9: TSpeedButton;
Edit4: TLabeledEdit;
Edit6: TLabeledEdit;
Edit8: TLabeledEdit;
Edit9: TLabeledEdit;
Edit10: TLabeledEdit;
Edit5: TLabeledEdit;
Edit2: TLabeledEdit;
Panel6: TPanel;
Panel8: TPanel;
Panel9: TPanel;
Panel10: TPanel;
Cmd_Delete: TSpeedButton;
Cmd_Add: TSpeedButton;
StringGrid1: TStringGrid;
procedure SpeedButton1Click(Sender: TObject);
procedure SpeedButton9Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure Cmd_DeleteClick(Sender: TObject);
procedure SpeedButton3Click(Sender: TObject);
procedure SpeedButton4Click(Sender: TObject);
procedure SpeedButton2Click(Sender: TObject);
procedure StringGrid1SelectCell(Sender: TObject; ACol, ARow: Integer;
var CanSelect: Boolean);
procedure StringGrid1KeyPress(Sender: TObject; var Key: Char);
procedure StringGrid1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
procedure StringGrid1DblClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
Pcol,Prow:integer;
procedure init;
function ReadData():boolean;
Function CheckData():boolean;
Function SaveData():boolean;
public
{ Public declarations }
end;
var
FmCancel: TFmCancel;
implementation
uses func, untdatadm, Unt_PubStrGrid, Supply_Monad, Login_Man, Unitreportxf,
Public_Don, UntgoodCodeSelStr;
{$R *.dfm}
//////////////////////
procedure tFmCancel.init;
var
temp,make:string;
begin
InitialStrGrid(stringgrid1,'库存退货');
edit1.Text:=formatdatetime('yyyy''-''mm''-''dd',date);
Edit8.Text:=Handle_Man;
edit5.Text:=shopid;
if public_do<>'Edited' then
begin
temp:='select max(right(stock_no,4)) from Cancel_strip where copy_date='+''''+formatdatetime('yyyy''-''mm''-''dd',date)+''''+' and shop_no='+''''+trim(Handle_Part)+'''';
make:='KTH-'+trim(Handle_Part)+trim(handle_no);//5-11用部门编号
edit2.Text:=setcode(temp,make);
end;
end;
Function TFmCancel.ReadData :boolean;
var
sqlsub:widestring;
k:integer;
begin
result:=false;
if (Public_Do='Edited') then
begin
sqlsub:='Select a.*,b.*,c.stock_amount from Cancel_strip as a, Cancel_strip_detail as b,vselectgoods as c where a.stock_no=b.stock_no and b.goods_no=c.goods_no and c.storage_no=a.storage_no and a.stock_No='''+List_No+'''';
dmmain.CDSexecsql.Close;
dmmain.CDSexecsql.Data:=adisp.execSql(sqlsub);
dmmain.CDSexecsql.Open;
StringGrid1.RowCount:=dmmain.CDSexecsql.RecordCount+1;
if dmmain.CDSexecsql.IsEmpty then
begin
application.MessageBox('此退货单已被删除!',pchar(application.Title),mb_iconwarning);
exit;
end;
//******************
Edit1.Text:=dmmain.CDSexecsql.Fieldbyname('Copy_Date').AsString;
Edit2.Text:=dmmain.CDSexecsql.Fieldbyname('stock_No').AsString;
Edit4.Text:=dmmain.CDSexecsql.Fieldbyname('WLDW').AsString;
Edit6.Text:=dmmain.CDSexecsql.Fieldbyname('Transactor').AsString;
Edit5.Text:=dmmain.CDSexecsql.Fieldbyname('Storage_NO').AsString;
Edit8.Text:=dmmain.CDSexecsql.Fieldbyname('proposer').AsString;
Edit9.Text:=dmmain.CDSexecsql.Fieldbyname('Condense').AsString;
Edit10.Text:=dmmain.CDSexecsql.Fieldbyname('Remark').AsString;
wldwno:=trim(dmmain.CDSexecsql.Fieldbyname('Contract_No').AsString);//Contract_No
for k:=1 to dmmain.CDSexecsql.RecordCount do
begin
StringGrid1.Cells[0,K]:=IntTostr(k); //表示第0列第i行的名称
StringGrid1.Cells[1,k]:=trim(dmmain.CDSexecsql.Fieldbyname('Goods_NO').AsString);//商品编号
StringGrid1.Cells[2,k]:=trim(dmmain.CDSexecsql.Fieldbyname('Quality').AsString);//商品名称
StringGrid1.Cells[3,k]:=trim(dmmain.CDSexecsql.Fieldbyname('amount').AsString);//数量
StringGrid1.Cells[4,k]:=trim(dmmain.CDSexecsql.Fieldbyname('pass_no').AsString);//商品类别
StringGrid1.Cells[5,k]:=trim(dmmain.CDSexecsql.Fieldbyname('Fade_Name').AsString); //商品说明
StringGrid1.Cells[6,k]:=trim(dmmain.CDSexecsql.Fieldbyname('stock_amount').AsString);
dmmain.CDSexecsql.Next;
end;
GetDataPrint(dmmain.cdsprintmaster,dmmain.CDsexecsql);
result:=true;
end;
end;
function TFmCancel.CheckData:boolean;
VAR
i:integer;
begin
result:=false;
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;
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[3,i]='') or (StringGrid1.Cells[3,i]='0') then
begin
application.MessageBox('操作错误,【数量】不能为空!请确认!',pchar(application.Title),mb_iconwarning);
Exit;
end;
{if (StringGrid1.Cells[9,i]='') or (StringGrid1.Cells[9,i]='0') then
begin
application.MessageBox('操作错误,【退货单价】不能为空!请确认!',pchar(application.Title),mb_iconwarning);
Exit;
end;}
end;
result:=true;
end;
function TFmCancel.SaveData:boolean;
var
sqlsub:widestring;
i:integer;
begin
if Public_Do_Result='02' then
begin
if public_Do<>'Edited' then
begin
dmmain.cdsCancel_strip.Close; //主表
dmmain.cdsCancel_strip.Open;
dmmain.cdsCancel_strip.Append;
dmmain.cdsCancel_strip.FieldByName('Copy_Date').AsString:=Trim(Edit1.Text);
dmmain.cdsCancel_strip.FieldByName('Stock_No').AsString:=Trim(Edit2.Text);
dmmain.cdsCancel_strip.FieldByName('WLDW').AsString:=Trim(Edit4.Text);
dmmain.cdsCancel_strip.FieldByName('Storage_NO').AsString:=Trim(Edit5.Text);
dmmain.cdsCancel_strip.FieldByName('Transactor').AsString:=Trim(Edit6.Text);
dmmain.cdsCancel_strip.FieldByName('Shop_NO').AsString:=Trim(Handle_Part);
dmmain.cdsCancel_strip.FieldByName('Proposer').AsString:=Trim(Edit8.Text);
dmmain.cdsCancel_strip.FieldByName('Condense').AsString:=Trim(Edit9.Text);
dmmain.cdsCancel_strip.FieldByName('Remark').AsString:=Trim(Edit10.Text);
dmmain.cdsCancel_strip.FieldByName('Contract_No').AsString:=trim(wldwno);//
dmmain.cdsCancel_strip.FieldByName('Stock_name').AsString:=trim('库存退货单');//
dmmain.cdsCancel_strip.Post;
dmmain.cdsReceipt.Close;
dmmain.cdsReceipt.Open; //草稿
dmmain.cdsReceipt.Append;
dmmain.cdsReceipt.FieldByName('Receipt_NO').AsString:=Trim(Edit2.Text);
dmmain.cdsReceipt.FieldByName('Receipt_Name').AsString:='库存退货单';
dmmain.cdsReceipt.FieldByName('Copy_Date').AsString:=Trim(Edit1.Text);
dmmain.cdsReceipt.FieldByName('Proposer').AsString:=Trim(Edit8.Text);
dmmain.cdsReceipt.FieldByName('Condense').AsString:=Trim(Edit10.Text);
dmmain.cdsReceipt.FieldByName('Check_Result').Asinteger:=0;
dmmain.cdsReceipt.FieldByName('Flag_Sign').AsString:='草稿';
dmmain.cdsReceipt.FieldByName('Re_part').AsString:=trim(Handle_Part);
dmmain.cdsReceipt.Post;
if not dmmain.cdsCanceldetail.Active then dmmain.cdsCanceldetail.Open;
for i:=1 to stringgrid1.RowCount-1 do //细表
begin
dmmain.cdsCanceldetail.Insert;
dmmain.cdsCanceldetail.FieldByName('Stock_NO').AsString:= Trim(Edit2.Text);
dmmain.cdsCanceldetail.FieldByName('Goods_NO').AsString:=Trim(StringGrid1.Cells[1,i]);
dmmain.cdsCanceldetail.FieldByName('amount').AsString:= Trim(StringGrid1.Cells[3,i]);
dmmain.cdsCanceldetail.FieldByName('Pass_NO').AsString:= Trim(StringGrid1.Cells[4,i]);
dmmain.cdsCanceldetail.FieldByName('quality').AsString:=Trim(StringGrid1.Cells[2,i]);
dmmain.cdsCanceldetail.FieldByName('Fade_Name').AsString:=Trim(StringGrid1.Cells[5,i]);
dmmain.cdsCanceldetail.Post;
end;
try
dmmain.cdsReceipt.ApplyUpdates(-1);
dmmain.cdsCancel_strip.ApplyUpdates(-1);
dmmain.cdsCanceldetail.ApplyUpdates(-1);
setnull(fmcancel);
init;
except
Application.MessageBox('服务器发生故障!',Pchar(Application.Title),Mb_ICONwarning);
Exit;
end;
end else
begin
if not bedit then
begin
if trim(Handle_Man)<>trim(edit8.Text) then
begin
Application.MessageBox('不能修改数据!',pchar(application.Title),mb_iconinformation);
exit;
end;
end;
sqlsub:='select * from [Cancel_strip] where Stock_No='+''''+Trim(List_NO)+'''';
dmmain.CDSexecsql.Close;
dmmain.CDSexecsql.Data:=adisp.execSql(sqlsub);
dmmain.CDSexecsql.Open;
dmmain.CDSexecsql.Edit;
dmmain.CDSexecsql.FieldByName('WLDW').AsString:=Trim(Edit4.Text);
dmmain.CDSexecsql.FieldByName('Contract_No').AsString:=trim(wldwno);
dmmain.CDSexecsql.FieldByName('Storage_NO').AsString:=Trim(Edit5.Text);
dmmain.CDSexecsql.FieldByName('Transactor').AsString:=Trim(Edit6.Text);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -