📄 getgoods.pas
字号:
unit GetGoods;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls, Buttons;
type
TFrmGetGoods = class(TForm)
GroupBox1: TGroupBox;
GroupBox2: TGroupBox;
Label1: TLabel;
EdtClass: TEdit;
Label2: TLabel;
EdtGoods: TEdit;
Label3: TLabel;
EdtGuige: TEdit;
Label4: TLabel;
EdtUnit: TEdit;
Label5: TLabel;
EdtPrice: TEdit;
Label6: TLabel;
EdtAmount: TEdit;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
DTPGetGoods: TDateTimePicker;
CmbDept: TComboBox;
EdtGetName: TEdit;
EdtGetAmount: TEdit;
LUnit: TLabel;
Label11: TLabel;
MemoGet: TMemo;
BtnOk: TBitBtn;
BtnCancel: TBitBtn;
procedure FormCreate(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure BtnOkClick(Sender: TObject);
procedure EdtGetAmountKeyPress(Sender: TObject; var Key: Char);
private
{ Private declarations }
procedure ReadDept;
procedure WriteToOutHistory;
procedure UpdateNowStock;
procedure AllGetGoods;
public
{ Public declarations }
end;
var
FrmGetGoods: TFrmGetGoods;
implementation
uses Global,dm, Logo;
{$R *.dfm}
procedure TFrmGetGoods.FormCreate(Sender: TObject);
begin
self.Caption :=SFormGetGoods;
with FrmLogo do
begin
LMsg1.Caption :=sMsgLoadInfo3;
LMsg2.Caption :=sMsgLoadInfo3;
LMsg1.Update;
LMsg2.Update;
end;
ReadDept;
end;
procedure TFrmGetGoods.FormActivate(Sender: TObject);
begin
DTPGetGoods.Date :=now;
CmbDept.SetFocus;
EdtGetName.Text :='';
EdtGetAmount.Text :='';
MemoGet.Text:='';
end;
procedure TFrmGetGoods.ReadDept;
begin
CmbDept.Clear;
with Dm_Wjckgl.ADOQry do
begin
close;
sql.Text :=format(SSQLTY1,[STDept,SFDept]);
open;
first;
while not eof do
begin
if FieldValues[SFDept]<> null then
CmbDept.Items.Add(FieldValues[SFDept]);
next;
end;
close;
end;
end;
procedure TFrmGetGoods.BtnOkClick(Sender: TObject);
begin
if trim(CmbDept.Text)='' then
begin
cmbDept.SetFocus;
exit;
end;
if trim(EdtGetName.Text)='' then
begin
EdtGetname.SetFocus;
exit;
end;
if trim(EdtGetAmount.Text)='' then
begin
EdtGetAmount.SetFocus ;
exit;
end;
if StrToInt(EdtGetAmount.Text)>StrToInt(EdtAmount.Text) then
begin
MsgBox(sMsgGetGoodsExceed,sTitleError,1);
EdtGetAmount.SetFocus;
exit;
end;
WriteToOutHistory;
if StrToInt(EdtGetAmount.Text)<StrToInt(EdtAmount.Text) then
UpdateNowStock
else
AllGetGoods; //全取物品,即从仓库库存中删除该项
close;
end;
procedure TFrmGetGoods.EdtGetAmountKeyPress(Sender: TObject;
var Key: Char);
begin
if not (key in ['0'..'9','.',#13,#8]) then key:=#0;
end;
procedure TFrmGetGoods.WriteToOutHistory;
var
yy,mm,dd:Word;
begin
decodeDate(DTPGetGoods.Date,yy,mm,dd);
with DM_Wjckgl.ADOQry do
begin
close;
sql.Text :=sSQLInsertGoodsToOutHistory;
parameters.ParamByName('pDate').Value :=DateToStr(DTPGetGoods.Date);
parameters.ParamByName('pYm').Value :=IntToStr(yy)+'年'+IntToStr(mm)+'月';
parameters.ParamByName('pDept').Value :=CmbDept.Text ;
parameters.ParamByName('pName').Value :=EdtGetName.Text;
parameters.ParamByName('pGoods').Value :=EdtGoods.Text;
parameters.ParamByName('pAmount').Value :=EdtGetAmount.Text;
if trim(MemoGet.Text)='' then MemoGet.Text:='无';
parameters.ParamByName('pMemo').Value :=MemoGet.Text;
execsql;
end;
end;
procedure TFrmGetGoods.UpdateNowStock;
begin
with dm_Wjckgl.ADOQry do
begin
close;
sql.Text :=sSQLUpdateGoodsToStock;
parameters.ParamByName('pGoods').Value :=EdtGoods.Text;
parameters.ParamByName('pAmount').Value := - StrToint(EdtGetAmount.Text);
// parameters.ParamByName('pMemo').Value :=MemoGoods.Text;
execsql;
end;
end;
procedure TFrmGetGoods.AllGetGoods; //全取物品,即从仓库库存中删除该项
begin
with dm_Wjckgl.ADOQry do
begin
close;
sql.Text := sSQLAllGet;
parameters.ParamByName('pGoods').Value :=EdtGoods.Text;
execsql;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -