addsell.pas

来自「完整的delphi书籍源代码,大家有空的时候自己慢慢看看」· PAS 代码 · 共 227 行

PAS
227
字号
unit AddSell;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DB, ADODB, StdCtrls, Mask;

type
  TAddSellFrm = class(TForm)
    Groupbox1: TGroupBox;
    Label1: TLabel;
    Label2: TLabel;
    Label4: TLabel;
    Label3: TLabel;
    Label5: TLabel;
    Label10: TLabel;
    Label11: TLabel;
    Label12: TLabel;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    Edit5: TEdit;
    ComboBox2: TComboBox;
    ComboBox3: TComboBox;
    GroupBox2: TGroupBox;
    Label7: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    Label6: TLabel;
    Memo1: TMemo;
    MaskEdit1: TMaskEdit;
    Edit6: TEdit;
    Edit7: TEdit;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    ADOTable1: TADOTable;
    ADOTable2: TADOTable;
    ComboBox1: TComboBox;
    procedure FormShow(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure ComboBox1Change(Sender: TObject);
    procedure ComboBox2Change(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure ComboBox3Change(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  AddSellFrm: TAddSellFrm;

implementation

uses Login;

{$R *.dfm}
procedure TAddSellFrm.FormCreate(Sender: TObject);
begin

   ADOtable1.first;
   while not ADOtable1.eof do
      begin
       combobox1.items.insert(-1,ADOtable1.fieldbyname('CustomerID').asstring);
       ADOtable1.Next;
      end;
   
   ADOtable2.first;
   while not ADOtable2.eof do
      begin
       combobox2.items.insert(-1,ADOtable2.fieldbyname('DepotID').asstring);
       ADOtable2.Next;
      end;
end;

procedure TAddSellFrm.FormShow(Sender: TObject);
begin
    combobox1.text:='';
    combobox2.text:='';
    combobox3.text:='';
    edit1.text:='';
    edit2.text:='';
    edit3.text:='';
    edit4.text:='';
    edit5.text:='';
    edit6.text:='';
    edit7.text:='';
    Maskedit1.text:=formatdatetime('yyyy"-"mm"-"dd',Date);
    Memo1.Text:='';
    


   
end;

procedure TAddSellFrm.Button2Click(Sender: TObject);
begin
    combobox1.text:='';
    combobox2.text:='';
    combobox3.text:='';
    edit1.text:='';
    edit2.text:='';
    edit3.text:='';
    edit4.text:='';
    edit5.text:='';
    edit6.text:='';
    edit7.text:='';
    Memo1.Text:='';
   
end;

procedure TAddSellFrm.Button3Click(Sender: TObject);
begin
     AddSellFrm.Hide;
end;

procedure TAddSellFrm.Button1Click(Sender: TObject);
var Payment,Quantity:string;
begin

     if Combobox1.text='' then
      showmessage('请选择收货单位')
     else
       if Combobox2.text='' then
         showmessage('请选择仓库')
       else
         if Combobox3.text='' then
          showmessage('请选择出库货品')
         else
           if edit6.text='' then
             showmessage('请输入货品数量')
           else
             if edit7.text='' then
                showmessage('请输入货品单价')
             else
    begin
    Payment:=floattostr(strtofloat(edit6.text)*strtofloat(edit7.text));
    with LoginFrm.ADOQuery1 do
      begin
       close;
       sql.clear;
       sql.add('select * from Storage where convert(varchar,DepotID)='+''''+Combobox2.text+''''+'and convert(varchar,ProductID)='+''''+Combobox3.text+'''');
       open;
       first;
       Quantity:=floattostr(fieldbyname('Quantity').asfloat-strtofloat(Edit6.Text));
       if strtofloat(Quantity)<0 then
          showmessage('对不起,本类货品在此仓库中库存不够出库数量!')
       else
       begin
          sql.add('insert into Sell (CustomerID,CustomerName,DepotID,DepotName,ProductId,ProductName,Spec,Unit,Quantity,UnitPrice,Payment,SellDate,SellRemark)values (' );
          sql.add(''''+combobox1.text+''''+','+''''+edit1.text+''''+','+''''+combobox2.text+''''+','+''''+edit2.text+''''+','+''''+combobox3.text+''''+','+''''+edit3.text+''''+',');
          sql.add(''''+edit4.text+''''+','+''''+edit5.text+''''+','+''''+edit6.text+''''+','+''''+edit7.text+''''+','+''''+Payment+''''+','+''''+maskedit1.text+''''+','+''''+memo1.text+''''+')');
          sql.Add('update Storage set Quantity='+''''+Quantity+''''+' where convert(varchar,DepotID)='+''''+Combobox2.text+''''+'and convert(varchar,ProductID)='+''''+Combobox3.text+'''');
          execsql;
          showmessage('出库登记成功!') ;
       end;
      end;
   end;
end;

procedure TAddSellFrm.ComboBox1Change(Sender: TObject);
begin

     with LoginFrm.ADOQuery1 do
      begin
       close;
       sql.clear;
       sql.add('select * from Customer where Convert(varchar,CustomerID)='+''''+combobox1.text+'''');
       open;
       edit1.text:=fieldbyname('CustomerName').asstring;
     end;
end;

procedure TAddSellFrm.ComboBox2Change(Sender: TObject);
var i:integer;
begin
      Combobox3.items.clear;
      combobox3.text:='';
      edit3.text:='';
      edit4.text:='';
      edit5.text:='';
      with LoginFrm.ADOQuery1 do
      begin
       close;
       sql.clear;
       sql.add('select * from Depot where Convert(varchar,DepotID)='+''''+Combobox2.text+'''');
       open;
       edit2.text:=fieldbyname('DepotName').asstring;

       close;
       sql.clear;
       sql.add('select * from Storage where Convert(varchar,DepotID)='+''''+Combobox2.text+'''');
       open;
       first;
       if recordcount=0 then
         showmessage('对不起,本仓库没有货品库存!')
       else
       for i:=1 to recordcount do
        combobox3.items.insert(-1,Fieldbyname('ProductID').asstring);

     end;
end;



procedure TAddSellFrm.ComboBox3Change(Sender: TObject);
begin
     with LoginFrm.ADOQuery1 do
      begin
       close;
       sql.clear;
       sql.add('select * from Storage where Convert(varchar,DepotID)='+''''+Combobox2.text+''''+'and Convert(varchar,ProductID)='+''''+combobox3.text+'''');
       open;
       edit3.text:=fieldbyname('ProductName').asstring;
       edit4.text:=fieldbyname('Spec').asstring;
       edit5.text:=fieldbyname('Unit').asstring;
      end;
end;

end.

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?