📄 imstexp.pas
字号:
unit ImSTExp;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, dxCntner, dxEditor, dxExEdtr, dxEdLib, Grids, DBGridEh,
StdCtrls, ExtCtrls, ComCtrls, ToolWin, DB, ADODB;
type
TFrmImSTExp = class(TForm)
CoolBar1: TCoolBar;
ToolBar1: TToolBar;
ToolButton1: TToolButton;
btnFresh: TToolButton;
ToolButton2: TToolButton;
btnNew: TToolButton;
btnEdit: TToolButton;
btnDelete: TToolButton;
ToolButton6: TToolButton;
btnExit: TToolButton;
ToolButton3: TToolButton;
Panel1: TPanel;
Label1: TLabel;
Edit1: TEdit;
ToolButton4: TToolButton;
ToolButton5: TToolButton;
ToolButton7: TToolButton;
DBGridEh1: TDBGridEh;
dtpDateEnd: TdxDateEdit;
Label2: TLabel;
dtpDateStart: TdxDateEdit;
Label3: TLabel;
DataSource1: TDataSource;
ADOQuery1: TADOQuery;
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 FormShow(Sender: TObject);
procedure btnFreshClick(Sender: TObject);
procedure btnDeleteClick(Sender: TObject);
procedure Edit1Change(Sender: TObject);
procedure ToolButton7Click(Sender: TObject);
procedure ToolButton5Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
procedure Check(BillNo:String);
procedure UnCheck(BillNo:String);
end;
var
FrmImSTExp: TFrmImSTExp;
implementation
uses database, ImST, ExSTExp, MyMath;
{$R *.dfm}
procedure TFrmImSTExp.btnNewClick(Sender: TObject);
begin
if assigned(FrmImST)=false then
FrmImST:=TFrmImST.Create(self);
FrmImST.FormStyle:=fsMDIChild;
FrmImST.Show;
FrmImST.IniImST;
FrmImST.BringToFront;
end;
procedure TFrmImSTExp.btnEditClick(Sender: TObject);
begin
if adoquery1.fieldbyname('入库单号').IsNull then begin
Infook('没有可用数据!');
exit;
end;
if assigned(FrmImST)=false then
FrmImST:=TFrmImST.Create(self);
FrmImST.FormStyle:=fsMDIChild;
FrmImST.Show;
FrmImST.EditImST(adoquery1.fieldbyname('入库单号').AsString);
FrmImST.BringToFront;
end;
procedure TFrmImSTExp.btnExitClick(Sender: TObject);
begin
Close;
end;
procedure TFrmImSTExp.FormClose(Sender: TObject; var Action: TCloseAction);
begin
FrmImSTExp:=NIl;
Action:=cafree;
end;
procedure TFrmImSTExp.FormShow(Sender: TObject);
begin
if dtpDateStart.Date=-700000 then
dtpDateStart.Date := date-100;
if dtpDateEnd.Date=-700000 then
dtpDateEnd.Date := date;
FrmImSTExp.Height:=544;
FrmImSTExp.Width:=751;
FrmImSTExp.Top:=0;
FrmImSTExp.Left:=0;
btnFreshClick(Sender);
end;
procedure TFrmImSTExp.btnFreshClick(Sender: TObject);
begin
edit1.Clear;
OpenSQL(FrmImSTExp,adoquery1,'select * from 物品入库主表 '
+' where 制单日期>=#'+dtpDateStart.Text+'# and 制单日期<=#'+dtpDateEnd.Text+'# ');
end;
procedure TFrmImSTExp.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 TFrmImSTExp.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 TFrmImSTExp.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 TFrmImSTExp.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 TFrmImSTExp.Check(BillNo: String);
begin
OpenSQL(FrmImSTExp,qurfree,'select * from 物品入库明细表 where 入库单号='''+BillNo+''' ');
qurfree.First;
while Not qurfree.Eof do begin
OpenSQL(FrmImSTExp,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 单据状态=''审核'',审核人='''+gLoginName+''',审核日期='''+datetostr(date)+''' where 入库单号='''+BillNo+''' ');
Infook('审核成功');
end;
procedure TFrmImSTExp.UnCheck(BillNo: String);
begin
OpenSQL(FrmImSTExp,qurfree,'select * from 物品入库明细表 where 入库单号='''+BillNo+''' ');
qurfree.First;
while Not qurfree.Eof do begin
OpenSQL(FrmImSTExp,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 单据状态=''制单'',审核人=NULL ,审核日期=NULL where 入库单号='''+BillNo+''' ');
Infook('反审核成功');
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -