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

📄 ypkcgl.pas

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

interface

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

type
  Typkcgl_Form = class(TForm)
    GroupBox1: TGroupBox;
    GroupBox2: TGroupBox;
    Panel1: TPanel;
    ypmc_LEdit: TLabeledEdit;
    cmdok: TButton;
    Query1: TQuery;
    DataSource1: TDataSource;
    DBGrid1: TDBGrid;
    kc_LEdit: TLabeledEdit;
    xx_LEdit: TLabeledEdit;
    cmdadd: TButton;
    cmdmodi: TButton;
    cmddel: TButton;
    procedure cmdokClick(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormCreate(Sender: TObject);
    procedure DBGrid1CellClick(Column: TColumn);
    procedure cmdaddClick(Sender: TObject);
    procedure cmdmodiClick(Sender: TObject);
    procedure cmddelClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  ypkcgl_Form: Typkcgl_Form;

implementation

uses main, data;

{$R *.dfm}

procedure Typkcgl_Form.cmdokClick(Sender: TObject);
var
    mc,sqlstr:string;
begin
    mc:=trim(ypmc_LEdit.Text);
    if length(mc)<1 then
    begin
        sqlstr:='select a.编号,a.名称,isnull(b.库存,0) as 库存,isnull(b.下限,0) as 下限 from 药品信息 a left outer join 库存数据 b on a.编号=b.编号 order by a.编号';
    end
    else
    begin
        mc:='%'+mc+'%';
        sqlstr:='select a.编号,a.名称,isnull(b.库存,0) as 库存,isnull(b.下限,0) as 下限 from 药品信息 a left outer join 库存数据 b on (a.编号=b.编号) where(a.名称 like '''+mc+''') order by a.编号';
    end;
    Query1.Close;
    Query1.SQL.Clear;
    Query1.SQL.Add(sqlstr);
    Query1.Open;
    if Query1.RecordCount>0 then
    begin
        cmdmodi.Enabled:=true;
        cmddel.Enabled:=true;
        cmdadd.Enabled:=true;
    end
    else
    begin
        cmdmodi.Enabled:=false;
        cmddel.Enabled:=false;
        cmdadd.Enabled:=true;
    end;
    kc_LEdit.Clear;
    xx_LEdit.Clear;
end;

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

procedure Typkcgl_Form.FormCreate(Sender: TObject);
begin
    Query1.SessionName:=DM_form.Database1.SessionName;
    Query1.DatabaseName:=DM_form.Database1.DatabaseName;
end;

procedure Typkcgl_Form.DBGrid1CellClick(Column: TColumn);
begin
    if Query1.RecordCount>0 then
    begin
        kc_LEdit.Text:=Query1.fieldbyname('库存').AsString;
        xx_LEdit.Text:=Query1.fieldbyname('下限').AsString;
    end;
end;

procedure Typkcgl_Form.cmdaddClick(Sender: TObject);
var
    bh,kc,xx,sqlstr:string;
begin
    bh:=Query1.fieldbyname('编号').AsString;
    kc:=trim(kc_LEdit.Text);
    if length(kc)<1 then
    begin
        ShowMessage('药品库存数量不能为空');
        exit;
    end;
    xx:=trim(xx_LEdit.Text);
    if length(xx)<1 then
    begin
        ShowMessage('药品下限不能为空');
        exit;
    end;
    with TQuery.Create(nil) do
    begin
        try
        Close;
        SessionName:=DM_form.Database1.SessionName;
        DatabaseName:=DM_form.Database1.DatabaseName;
        sqlstr:='insert into 库存数据(编号,库存,下限)values('''+bh+''','''+kc+''','''+xx+''')';
        SQL.Clear;
        SQL.Add(sqlstr);
        ExecSQL;
        finally
        Free;
        end;
        ShowMessage('成功添加药品库存数据信息!');
        cmdok.Click;
    end;
end;

procedure Typkcgl_Form.cmdmodiClick(Sender: TObject);
var
    bh,kc,xx,sqlstr:string;
begin
    bh:=Query1.fieldbyname('编号').AsString;
    kc:=trim(kc_LEdit.Text);
    if length(kc)<1 then
    begin
        ShowMessage('药品库存数量不能为空');
        exit;
    end;
    xx:=trim(xx_LEdit.Text);
    if length(xx)<1 then
    begin
        ShowMessage('药品下限不能为空');
        exit;
    end;
    sqlstr:='select * from 库存数据 where(编号='''+bh+''')';
    with TQuery.Create(nil) do
    begin
        try
        Close;
        SessionName:=DM_form.Database1.SessionName;
        DatabaseName:=DM_form.Database1.DatabaseName;
        SQL.Clear;
        SQL.Add(sqlstr);
        Open;
        if recordcount =0 then
        begin
            if MessageDlg('在药品库存数据没有该药品的库存数据信息,需要添加吗?',mtConfirmation, [mbYes, mbNo], 0) = mrYes then
            begin
                sqlstr:='insert into 库存数据(编号,库存,下限)values('''+bh+''','''+kc+''','''+xx+''')';
                SQL.Clear;
                SQL.Add(sqlstr);
                ExecSQL;
                cmdok.Click;
                exit;
            end
            else
                exit;
        end;
        sqlstr:='update 库存数据 set 库存='''+kc+''',下限='''+xx+''' where(编号='''+bh+''')';
        SQL.Clear;
        SQL.Add(sqlstr);
        ExecSQL;
        finally
        Free;
        end;
        ShowMessage('成功修改药品库存数据信息!');
        cmdok.Click;
    end;
end;

procedure Typkcgl_Form.cmddelClick(Sender: TObject);
var
    bh:string;
begin
    try
    if MessageDlg('确认要删除选中的药品库存数据吗?',mtConfirmation, [mbYes, mbNo], 0) = mrYes then
    begin
        bh:=Query1.fieldbyname('bh').AsString;
        with tquery.Create(nil) do
        begin
            try
            Close;
            DatabaseName:=DM_form.Database1.DatabaseName;
            SessionName:=DM_form.Database1.SessionName;
            SQL.Clear;
            SQL.Add('delete from 库存数据 where 编号='''+bh+'''');
            ExecSQL;
            finally
            Free;
            end;
        end;
        ShowMessage('成功删除药品库存数据');
        cmdok.Click;
    end;
    except
    end;
end;

end.

⌨️ 快捷键说明

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