⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 c_stockedit.pas

📁 《delphi数据库设计与实例开发》随书光盘
💻 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 + -