📄 exstexp.pas
字号:
unit ExSTExp;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, ADODB, Grids, DBGridEh, dxCntner, dxEditor, dxExEdtr,
dxEdLib, StdCtrls, ExtCtrls, ComCtrls, ToolWin;
type
TFrmExSTExp = class(TForm)
CoolBar1: TCoolBar;
ToolBar1: TToolBar;
ToolButton1: TToolButton;
btnFresh: TToolButton;
ToolButton2: TToolButton;
btnNew: TToolButton;
btnEdit: TToolButton;
btnDelete: TToolButton;
ToolButton6: TToolButton;
ToolButton7: TToolButton;
ToolButton5: TToolButton;
ToolButton4: TToolButton;
btnExit: TToolButton;
ToolButton3: TToolButton;
Panel1: TPanel;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Edit1: TEdit;
dtpDateEnd: TdxDateEdit;
dtpDateStart: TdxDateEdit;
DBGridEh1: TDBGridEh;
ADOQuery1: TADOQuery;
DataSource1: TDataSource;
StatusBar1: TStatusBar;
qurfree: TADOQuery;
qurfree2: TADOQuery;
procedure btnNewClick(Sender: TObject);
procedure btnEditClick(Sender: TObject);
procedure btnExitClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure btnFreshClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure Edit1Change(Sender: TObject);
procedure ToolButton7Click(Sender: TObject);
procedure ToolButton5Click(Sender: TObject);
procedure btnDeleteClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
procedure Check(BillNO:string);
procedure Uncheck(BillNO:string);
end;
var
FrmExSTExp: TFrmExSTExp;
implementation
uses ExST, database, MyMath, ImSTExp;
{$R *.dfm}
procedure TFrmExSTExp.btnNewClick(Sender: TObject);
begin
if assigned(FrmExST)=false then
FrmExST:=TFrmExST.Create(self);
FrmExST.FormStyle:=fsMDIChild;
FrmExST.Show;
FrmExST.IniExST;
FrmExST.BringToFront;
end;
procedure TFrmExSTExp.btnEditClick(Sender: TObject);
begin
if assigned(FrmExST)=false then
FrmExST:=TFrmExST.Create(self);
FrmExST.FormStyle:=fsMDIChild;
FrmExST.Show;
FrmExST.EditExST(adoquery1.fieldbyname('出库单号').AsString);
FrmExST.BringToFront;
end;
procedure TFrmExSTExp.btnExitClick(Sender: TObject);
begin
Close;
end;
procedure TFrmExSTExp.FormClose(Sender: TObject; var Action: TCloseAction);
begin
FrmExSTExp:=NIL;
Action:=Cafree;
end;
procedure TFrmExSTExp.btnFreshClick(Sender: TObject);
begin
edit1.Clear;
OpenSQL(FrmImSTExp,adoquery1,'select * from 物品出库主表 '
+' where 制单日期>=#'+dtpDateStart.Text+'# and 制单日期<=#'+dtpDateEnd.Text+'# ');
end;
procedure TFrmExSTExp.FormShow(Sender: TObject);
begin
if dtpDateStart.Date=-700000 then
dtpDateStart.Date := date-100;
if dtpDateEnd.Date=-700000 then
dtpDateEnd.Date := date;
FrmExSTExp.Height:=544;
FrmExSTExp.Width:=751;
FrmExSTExp.Top:=0;
FrmExSTExp.Left:=0;
btnFreshClick(Sender);
end;
procedure TFrmExSTExp.Edit1Change(Sender: TObject);
begin
OpenSQL(FrmImSTExp,adoquery1,'select * from 物品出库主表 where 单据状态 like ''%'+Edit1.text+'%'' '
+' or 制单人 like ''%'+Edit1.text+'%'' or 制单日期 like ''%'+Edit1.text+'%'' '
+' or 审核人 like ''%'+Edit1.text+'%'' or 审核日期 like ''%'+Edit1.text+'%'' '
+' or 备注 like ''%'+Edit1.text+'%'' or 出库单号 like ''%'+Edit1.text+'%'' ');
end;
procedure TFrmExSTExp.ToolButton7Click(Sender: TObject);
begin
if adoquery1.FieldByName('单据状态').AsString='审核' then begin
Infook('该单据已审核!');
exit;
end;
if QueryDlg('确定反审核单据<'+adoquery1.FieldByName('出库单号').AsString+'>?')=false then exit;
Check (adoquery1.FieldByName('出库单号').AsString);
btnFreshClick(Sender);
end;
procedure TFrmExSTExp.ToolButton5Click(Sender: TObject);
begin
if adoquery1.FieldByName('单据状态').AsString='制单' then begin
Infook('该单据未审核!');
exit;
end;
if QueryDlg('确定审核单据<'+adoquery1.FieldByName('出库单号').AsString+'>?')=false then exit;
UnCheck (adoquery1.FieldByName('出库单号').AsString);
btnFreshClick(Sender);
end;
procedure TFrmExSTExp.btnDeleteClick(Sender: TObject);
begin
if (adoquery1.fieldbyname('出库单号').IsNull) or (adoquery1.IsEmpty) then begin
Infook('没有可用数据!');
exit;
end;
if QueryDlg('确定删除单据<'+adoquery1.FieldByName('出库单号').AsString+'>?')=false then exit;
Datamod.ExecSQL('delete from 物品出库主表 where 出库单号='''+adoquery1.FieldByName('出库单号').AsString+''' ');
Datamod.ExecSQL('delete from 物品出库明细表 where 出库单号='''+adoquery1.FieldByName('出库单号').AsString+''' ');
btnFreshClick(Sender);
Infook('删除成功!');
end;
procedure TFrmExSTExp.Uncheck(BillNO: string);
begin
OpenSQL(FrmExSTExp,qurfree,'select * from 物品出库明细表 where 出库单号='''+BillNo+''' ');
qurfree.First;
while Not qurfree.Eof do begin
OpenSQL(FrmExSTExp,qurfree2,'select 数据编码 from 仓库信息 where 物品名称= '''+qurfree.FieldByName('物品名称').AsString+''' ');
if qurfree2.RecordCount<1 then
Datamod.ExecSQL('insert into 仓库信息(物品名称,物品编码,物品单价,物品数量) values '
+'('''+qurfree.FieldByName('物品名称').AsString+''' , '
+' '''+qurfree.FieldByName('物品编码').AsString+''' , '
+' '+FloattoStr(qurfree.FieldByName('物品单价').AsFloat)+' , '
+' '+InttoStr(qurfree.FieldByName('物品数量').AsInteger)+') ')
else
Datamod.ExecSQL('update 仓库信息 set 物品数量 = 物品数量 + '+InttoStr(qurfree.FieldByName('物品数量').AsInteger)+' '
+' where 物品名称= '''+qurfree.FieldByName('物品名称').AsString+''' ');
qurfree.Next;
end;
Datamod.ExecSQL('update 物品出库主表 set 单据状态=''制单'',审核人=NULL ,审核日期=NULL where 出库单号='''+BillNo+''' ');
Infook('反审核成功');
end;
procedure TFrmExSTExp.Check(BillNO: string);
begin
OpenSQL(FrmExSTExp,qurfree,'select * from 物品出库明细表 where 出库单号='''+BillNO+''' ');
qurfree.First;
while Not qurfree.Eof do begin
OpenSQL(FrmExSTExp,qurfree2,'select 数据编码 from 仓库信息 where 物品名称= '''+qurfree.FieldByName('物品名称').AsString+''' ');
if qurfree2.RecordCount<1 then begin
Datamod.ExecSQL('insert into 仓库信息(物品名称,物品编码,物品单价,物品数量) values '
+' ('''+qurfree.FieldByName('物品名称').AsString+''' , '
+' '''+qurfree.FieldByName('物品编码').AsString+''' , 0, '
+' 0 - '+inttostr(qurfree.FieldByName('物品数量').AsInteger)+') ');
end
else
Datamod.ExecSQL('update 仓库信息 set 物品数量 = 物品数量 - '+InttoStr(qurfree.FieldByName('物品数量').AsInteger)+' '
+' where 物品名称= '''+qurfree.FieldByName('物品名称').AsString+''' ');
qurfree.Next;
end;
Datamod.ExecSQL('update 物品出库主表 set 单据状态=''审核'',审核人='''+gLoginName+''',审核日期='''+datetostr(date)+''' where 出库单号='''+BillNO+''' ');
Infook('审核成功');
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -