📄 c_stockedit.pas
字号:
unit c_stockedit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, DBCtrls, Mask, Buttons, ComCtrls;
type
Tcfrm_stockedit = class(TForm)
GroupBox1: TGroupBox;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
DBComboBox1: TDBComboBox;
DBComboBox2: TDBComboBox;
DBEdit1: TDBEdit;
DBEdit2: TDBEdit;
DBEdit3: TDBEdit;
DBEdit4: TDBEdit;
DBEdit5: TDBEdit;
DBEdit6: TDBEdit;
DBEdit7: TDBEdit;
Label12: TLabel;
DateTimePicker1: TDateTimePicker;
DBComboBox3: TDBComboBox;
procedure FormCreate(Sender: TObject);
procedure DBComboBox1Change(Sender: TObject);
procedure DBComboBox2Change(Sender: TObject);
procedure DBComboBox3Change(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure BitBtn2Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
cfrm_stockedit: Tcfrm_stockedit;
implementation
uses datam, c_stock;
{$R *.dfm}
procedure Tcfrm_stockedit.FormCreate(Sender: TObject);
begin
dm.ADO_provider.Open;
dm.ADO_provider.First;
while not dm.ADO_provider.Eof do
begin
DBCombobox1.Items.Add(dm.ADO_provider.fieldbyname('ProviderID').AsString);
dm.ADO_provider.Next;
end;
dm.ADO_depot.Open;
dm.ADO_depot.First;
while not dm.ADO_depot.Eof do
begin
DBCombobox2.Items.Add(dm.ADO_depot.fieldbyname('DepotID').AsString);
dm.ADO_depot.Next;
end;
dm.ADO_product.Close;
dm.ADO_product.Open;
dm.ADO_product.First;
while not dm.ADO_product.Eof do
begin
DBCombobox3.Items.Add(dm.ADO_product.fieldbyname('ProductID').AsString);
dm.ADO_product.Next;
end;
DateTimePicker1.Date:=date();
end;
procedure Tcfrm_stockedit.DBComboBox1Change(Sender: TObject);
begin
dm.ADO_provider.First;
if dm.ADO_provider.Locate('ProviderID',DBCombobox1.Text,[]) then
dbedit1.Text:=dm.ADO_provider.fieldbyname('CompanyName').AsString;
end;
procedure Tcfrm_stockedit.DBComboBox2Change(Sender: TObject);
begin
dm.ADO_depot.First;
if dm.ADO_depot.Locate('DepotID',DBCombobox2.Text,[]) then
dbedit2.Text:=dm.ADO_depot.fieldbyname('DepotName').AsString;
end;
procedure Tcfrm_stockedit.DBComboBox3Change(Sender: TObject);
begin
dm.ADO_product.First;
if dm.ADO_product.Locate('ProductID',DBCombobox3.Text,[]) then
begin
dbedit3.Text:=dm.ADO_product.fieldbyname('ProductName').AsString;
dbedit4.Text:=dm.ADO_product.fieldbyname('Spec').AsString;
dbedit5.Text:=dm.ADO_product.fieldbyname('Unit').AsString;
end;
end;
procedure Tcfrm_stockedit.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
dm.ADO_provider.Close;
dm.ADO_customer.Close;
dm.ADO_depot.Close;
dm.ADO_storage.Close;
release;
end;
procedure Tcfrm_stockedit.BitBtn2Click(Sender: TObject);
begin
dm.ADO_stock.Cancel;
dm.ADO_provider.Close;
dm.ADO_customer.Close;
dm.ADO_depot.Close;
dm.ADO_storage.close;
close;
end;
procedure Tcfrm_stockedit.BitBtn1Click(Sender: TObject);
var
paymoney:Double;
begin
if Length(dbedit6.Text)=0 then
begin
Application.MessageBox(PChar('商品数量不能为空,请重新录入!')
, PChar('提示'),MB_ICONEXCLAMATION);
dbedit6.SetFocus();
exit;
end;
if dbedit7.Text='' then
begin
Application.MessageBox(PChar('商品单价不能为空,请重新录入!')
, PChar('提示'),MB_ICONEXCLAMATION);
dbedit7.SetFocus();
exit;
end;
if dbcombobox1.Text='' then
begin
Application.MessageBox(PChar('供货商编号不能为空,请重新录入!')
, PChar('提示'),MB_ICONEXCLAMATION);
dbcombobox1.SetFocus();
exit;
end;
if dbcombobox2.Text='' then
begin
Application.MessageBox(PChar('仓库编号不能为空,请重新录入!')
, PChar('提示'),MB_ICONEXCLAMATION);
dbcombobox2.SetFocus();
exit;
end;
if dbcombobox3.Text='' then
begin
Application.MessageBox(PChar('商品编号不能为空,请重新录入!')
, PChar('提示'),MB_ICONEXCLAMATION);
dbcombobox3.SetFocus();
exit;
end;
paymoney:=StrtoFloat(dbedit7.Text)*Strtofloat(dbedit6.Text);
if Bitbtn1.Tag=1 then dm.ADO_stock.Edit;
dm.ADO_stock.fieldbyname('Stockdate').AsDateTime:=strtodate(datetostr(DatetimePicker1.Date));
dm.ADO_stock.FieldByName('Payment').AsFloat:=paymoney;
try
dm.ADO_stock.Post;
except
Application.MessageBox(PChar('输入数据有误,请重新录入!'), PChar('提示'),
MB_ICONEXCLAMATION);
DBCombobox1.SetFocus();
exit;
end;
dm.ADO_storage.Open;
if dm.ADO_storage.Locate('ProductID;DepotID',VarArrayOf([DBCombobox3.Text,DBCombobox2.Text]),[])then
begin
dm.ADO_storage.Edit;
dm.ADO_storage.FieldByName('Quantity').AsFloat:= dm.ADO_storage.FieldByName('Quantity').AsFloat+Strtofloat(dbedit6.text);
dm.ADO_storage.Post;
end
else
begin
dm.ADO_storage.Append;
dm.ADO_storage.FieldByName('DepotID').AsString:=DBCombobox2.Text;
dm.ADO_storage.FieldByName('DepotName').AsString:=DBEdit2.Text;
dm.ADO_storage.FieldByName('ProductId').AsString:=DBCombobox3.Text;
dm.ADO_storage.FieldByName('ProductName').AsString:=DBEdit3.Text;
dm.ADO_storage.FieldByName('Spec').AsString:=DBEdit4.Text;
dm.ADO_storage.FieldByName('Unit').AsString:=DBEdit5.Text;
dm.ADO_storage.FieldByName('Quantity').AsString:=DBEdit6.Text;
try
dm.ADO_storage.Post;
except
Application.MessageBox(PChar('输入数据有误,请重新录入!'), PChar('提示'),
MB_ICONEXCLAMATION);
DBCombobox1.SetFocus();
exit;
end;
dm.ADO_storage.Close;
end;
close;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -