📄 xsgl.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 + -