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

📄 xsgl.pas

📁 很好的药店进销存系统
💻 PAS
字号:
unit xsgl;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Grids, DBGrids, StdCtrls, ExtCtrls, DB, DBTables;

type
  Txsgl_Form = class(TForm)
    GroupBox1: TGroupBox;
    Label1: TLabel;
    gwc_CBox: TComboBox;
    cmdok: TButton;
    cmdclose: TButton;
    GroupBox2: TGroupBox;
    cmdr: TButton;
    cmdl: TButton;
    sl_LEdit: TLabeledEdit;
    GroupBox3: TGroupBox;
    DBGrid2: TDBGrid;
    GroupBox4: TGroupBox;
    DBGrid1: TDBGrid;
    Query1: TQuery;
    Query2: TQuery;
    DataSource1: TDataSource;
    DataSource2: TDataSource;
    procedure FormCreate(Sender: TObject);
    procedure gwc_CBoxChange(Sender: TObject);
    procedure cmdrClick(Sender: TObject);
    procedure DBGrid2CellClick(Column: TColumn);
    procedure cmdlClick(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  xsgl_Form: Txsgl_Form;

implementation

uses data, main;

{$R *.dfm}

procedure Txsgl_Form.FormCreate(Sender: TObject);
begin
    Query1.SessionName:=DM_form.Database1.SessionName;
    Query1.DatabaseName:=DM_form.Database1.DatabaseName;
    Query2.SessionName:=DM_form.Database1.SessionName;
    Query2.DatabaseName:=DM_form.Database1.DatabaseName;
    with TQuery.Create(nil) do
    try
    Close;
    SessionName:=DM_form.Database1.SessionName;
    DatabaseName:=DM_form.Database1.DatabaseName;
    SQL.Clear;
    SQL.Add('select * from 购物记录 where(结算=0) order by 编号');
    Open;
    First;
    gwc_CBox.Items.Clear;
    while not Eof do
    begin
        gwc_CBox.Items.Add(fieldbyname('编号').AsString+'&'+fieldbyname('客户名').AsString);
        Next;
    end;
    finally
    Free;
    end;
    Query1.Close;
    Query1.SQL.Clear;
    Query1.SQL.Add('select a.编号,a.名称,a.售价,b.库存 from 药品信息 a,库存数据 b  where(b.库存>0)and(a.编号=b.编号) order by a.编号');
    Query1.Open;
    if Query1.RecordCount> 0 then
        cmdr.Enabled:=true
    else
        cmdr.Enabled:=false;
end;

procedure Txsgl_Form.gwc_CBoxChange(Sender: TObject);
var
    i:integer;
    bh,sqlstr:string;
begin
    i:=pos('&',trim(gwc_CBox.Text));
    bh:=copy(trim(gwc_CBox.Text),1,i-1);
    sqlstr:='select a.药编号,a.数量,a.单价,b.名称 from 药品销售 a,药品信息 b where(a.编号='''+bh+''')and(a.药编号=b.编号) order by a.药编号';
    Query2.Close;
    Query2.SQL.Clear;
    Query2.SQL.Add(sqlstr);
    Query2.Open;
    if Query2.RecordCount > 0 then
        cmdl.Enabled:=true
    else
        cmdl.Enabled:=false;
end;

procedure Txsgl_Form.cmdrClick(Sender: TObject);
var
    rq,ybh,cbh,dj,sl,sqlstr:string;
    i:integer;
begin
    i:=pos('&',trim(gwc_CBox.Text));
    cbh:=copy(trim(gwc_CBox.Text),1,i-1);
    ybh:=Query1.fieldbyname('编号').AsString;
    sl:=trim(sl_ledit.Text);
    if strtofloat(sl)>Query1.FieldByName('库存').AsFloat then
    begin
        ShowMessage('销售的数量不能大于库存数量!');
        EXIT;
    end;
    dj:=Query1.fieldbyname('售价').AsString;
    rq:=datetimetostr(now);
    with TQuery.Create(nil) do
    try
    Close;
    SessionName:=DM_form.Database1.SessionName;
    DatabaseName:=DM_form.Database1.DatabaseName;
    sqlstr:='select * from 药品销售 where(药编号='''+ybh+''')and(编号='''+cbh+''')';
    close;
    SQL.Clear;
    SQL.Add(sqlstr);
    Open;
    if recordcount > 0 then
    begin
        sqlstr:='update 药品销售 set 数量=数量+'''+sl+''' where ';
        sqlstr:=sqlstr+' (药编号='''+ybh+''')and(编号='''+cbh+''')';
    end
    else
    begin
        sqlstr:='insert into 药品销售(编号,日期,药编号,数量,单价)';
        sqlstr:=sqlstr+'values('''+cbh+''','''+rq+''','''+ybh+''','''+sl+''','''+dj+''')';
    end;
    close;
    SQL.Clear;
    SQL.Add(sqlstr);
    ExecSQL;
    sqlstr:='update 库存数据 set 库存=库存-'''+sl+''' where(编号='''+ybh+''')';
    Close;
    SQL.Clear;
    SQL.Add(sqlstr);
    ExecSQL;
    finally
    Free;
    end;
    Query1.Close;
    Query1.SQL.Clear;
    Query1.SQL.Add('select a.编号,a.名称,a.售价,b.库存 from 药品信息 a,库存数据 b  where(b.库存>0)and(a.编号=b.编号) order by a.编号');
    Query1.Open;
    if Query1.RecordCount> 0 then
        cmdr.Enabled:=true
    else
        cmdr.Enabled:=false;
    gwc_CBox.OnChange(Sender);
end;

procedure Txsgl_Form.DBGrid2CellClick(Column: TColumn);
begin
    try
    sl_LEdit.Text:=Query1.fieldbyname('库存').AsString;
    except
    end;
end;

procedure Txsgl_Form.cmdlClick(Sender: TObject);
var
   ybh,cbh,sl,sqlstr:string;
begin
    cbh:=Query1.fieldbyname('编号').AsString;
    ybh:=Query1.fieldbyname('药编号').AsString;
    sl:=Query1.fieldbyname('数量').AsString;
    with TQuery.Create(nil) do
    try
    Close;
    SessionName:=DM_form.Database1.SessionName;
    DatabaseName:=DM_form.Database1.DatabaseName;
    sqlstr:='delete from  药品销售 where(药编号='''+ybh+''')and(编号='''+cbh+''')';
    SQL.Clear;
    SQL.Add(sqlstr);
    ExecSQL;
    sqlstr:='update 库存数据 set 库存=库存+'''+sl+''' where(编号='''+ybh+''')';
    Close;
    SQL.Clear;
    SQL.Add(sqlstr);
    ExecSQL;
    finally
    Free;
    end;
    Query1.Close;
    Query1.SQL.Clear;
    Query1.SQL.Add('select a.编号,a.名称,a.售价,b.库存 from 药品信息 a,库存数据 b  where(b.库存>0)and(a.编号=b.编号) order by a.编号');
    Query1.Open;
    if Query1.RecordCount> 0 then
        cmdr.Enabled:=true
    else
        cmdr.Enabled:=false;
    gwc_CBox.OnChange(Sender);
end;

procedure Txsgl_Form.FormClose(Sender: TObject; var Action: TCloseAction);
begin
    Action:=caFree;
    mainform.N32.Enabled:=true;
end;

end.

⌨️ 快捷键说明

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