📄 bs_physic.pas
字号:
unit Bs_physic;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, baseformtree, dxExEdtr, ActnList, ImgList, DB, ADODB, StdCtrls,
DBCtrls, Mask, dxTL, dxDBCtrl, dxCntner, dxDBTL, Buttons, ToolWin,
ComCtrls, dxDBGrid, dxEditor, dxEdLib;
type
TfBs_physic = class(Tfbaseformtree)
pgc1: TPageControl;
ts1: TTabSheet;
ts2: TTabSheet;
lbl3: TLabel;
dblkcbb1: TDBLookupComboBox;
lbl4: TLabel;
lbl5: TLabel;
lbl6: TLabel;
lbl7: TLabel;
lbl8: TLabel;
lbl9: TLabel;
lbl11: TLabel;
lbl12: TLabel;
lbl13: TLabel;
lbl14: TLabel;
lbl15: TLabel;
lbl16: TLabel;
lbl17: TLabel;
lbl18: TLabel;
lbl19: TLabel;
lbl20: TLabel;
lbl21: TLabel;
lbl22: TLabel;
lbl23: TLabel;
lbl24: TLabel;
lbl25: TLabel;
lbl26: TLabel;
lbl29: TLabel;
dbedt1: TDBEdit;
dbedt2: TDBEdit;
dbedt3: TDBEdit;
dbedt7: TDBEdit;
dbedt9: TDBEdit;
dbedt10: TDBEdit;
dbedt12: TDBEdit;
dbedt13: TDBEdit;
dbedt15: TDBEdit;
dbedt16: TDBEdit;
dbedt17: TDBEdit;
dbedt18: TDBEdit;
dbedt19: TDBEdit;
dbmmo1: TDBMemo;
dbmmo2: TDBMemo;
dbmmo3: TDBMemo;
dbmmo4: TDBMemo;
dbmmo5: TDBMemo;
dbchk1: TDBCheckBox;
dbchk2: TDBCheckBox;
dbmmo6: TDBMemo;
lbl27: TLabel;
dxDBGrid1: TdxDBGrid;
QbaseinfoPhy_code: TWideStringField;
QbaseinfoPhy_name: TWideStringField;
QbaseinfoPhy_type: TWideStringField;
QbaseinfoPhy_marking: TWideStringField;
QbaseinfoPhy_abc: TWideStringField;
QbaseinfoPhy_unit: TWideStringField;
QbaseinfoPhy_aveprice: TFloatField;
QbaseinfoPhy_retail1: TFloatField;
QbaseinfoPhy_unit1: TWideStringField;
QbaseinfoPhy_unit1rate: TFloatField;
QbaseinfoPhy_retail2: TFloatField;
QbaseinfoPhy_unit2: TWideStringField;
QbaseinfoPhy_unit2rate: TFloatField;
QbaseinfoPhy_retail3: TFloatField;
QbaseinfoPhy_unit3: TWideStringField;
QbaseinfoPhy_unit3rate: TFloatField;
QbaseinfoPhy_retail4: TFloatField;
QbaseinfoPhy_up: TFloatField;
QbaseinfoPhy_down: TFloatField;
QbaseinfoPhy_spec: TWideStringField;
QbaseinfoPhy_xz: TWideStringField;
QbaseinfoPhy_fit: TWideStringField;
QbaseinfoPhy_reaction: TWideStringField;
QbaseinfoPhy_enjoin: TWideStringField;
QbaseinfoPhy_attention: TWideStringField;
QbaseinfoPhy_savedate: TFloatField;
QbaseinfoPhy_otc: TIntegerField;
QbaseinfoPhy_out: TIntegerField;
Qbaseinfofmem: TWideStringField;
dxDBGrid1Phy_code: TdxDBGridColumn;
dxDBGrid1Phy_name: TdxDBGridColumn;
dxDBGrid1Phy_type: TdxDBGridColumn;
dxDBGrid1Phy_marking: TdxDBGridColumn;
dxDBGrid1Phy_abc: TdxDBGridColumn;
dxDBGrid1Phy_unit: TdxDBGridColumn;
dxDBGrid1Phy_aveprice: TdxDBGridMaskColumn;
dxDBGrid1Phy_retail1: TdxDBGridMaskColumn;
dxDBGrid1Phy_unit1: TdxDBGridColumn;
dxDBGrid1Phy_unit1rate: TdxDBGridMaskColumn;
dxDBGrid1Phy_retail2: TdxDBGridMaskColumn;
dxDBGrid1Phy_unit2: TdxDBGridColumn;
dxDBGrid1Phy_unit2rate: TdxDBGridMaskColumn;
dxDBGrid1Phy_retail3: TdxDBGridMaskColumn;
dxDBGrid1Phy_up: TdxDBGridMaskColumn;
dxDBGrid1Phy_down: TdxDBGridMaskColumn;
dxDBGrid1Phy_spec: TdxDBGridColumn;
dxDBGrid1Phy_xz: TdxDBGridColumn;
dxDBGrid1Phy_fit: TdxDBGridColumn;
dxDBGrid1Phy_reaction: TdxDBGridColumn;
dxDBGrid1Phy_enjoin: TdxDBGridColumn;
dxDBGrid1Phy_attention: TdxDBGridColumn;
dxDBGrid1Phy_savedate: TdxDBGridMaskColumn;
dxDBGrid1Phy_otc: TdxDBGridMaskColumn;
dxDBGrid1Phy_out: TdxDBGridMaskColumn;
dxDBGrid1fmem: TdxDBGridColumn;
Label2: TLabel;
DBEdit3: TDBEdit;
Qbaseinfophy_used: TWideStringField;
Qbaseinfophy_factory: TWideStringField;
DBLookupComboBox1: TDBLookupComboBox;
DBLookupComboBox2: TDBLookupComboBox;
DBLookupComboBox3: TDBLookupComboBox;
DBLookupComboBox4: TDBLookupComboBox;
Label3: TLabel;
dbcbbtype: TDBComboBox;
dxDBGrid1Column27: TdxDBGridColumn;
Qbaseinfoftype: TWideStringField;
sqltmp: TADOQuery;
DBEdit4: TDBEdit;
Label4: TLabel;
dbedtused: TDBEdit;
Qbaseinfounit: TStringField;
procedure actaddExecute(Sender: TObject);
procedure actfindExecute(Sender: TObject);
procedure actsaveExecute(Sender: TObject);
procedure acteditExecute(Sender: TObject);
procedure actrepriExecute(Sender: TObject);
procedure dxDBTreeList1DblClick(Sender: TObject);
procedure dbedtusedMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure DBEdit2Change(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
fBs_physic: TfBs_physic;
implementation
uses pubdata, phy_find, KC_table, used, Global;
{$R *.dfm}
procedure TfBs_physic.actaddExecute(Sender: TObject);
begin
//inherited; //添加记录
DBEdit1.Enabled:=True;
DBEdit2.Enabled:=True;
pgc1.TabIndex:=0;
ts1.Enabled:=True;
Qbaseinfo.Edit;
Qbaseinfo.Append;
Qbaseinfo.FieldByName('Phy_otc').Value:=0;
Qbaseinfo.FieldByName('Phy_out').Value:=0;
Qbaseinfo.FieldByName('Phy_unit1rate').Value:=1;
Qbaseinfo.FieldByName('Phy_unit2rate').Value:=1;
Qbaseinfo.FieldByName('Phy_unit3rate').Value:=1;
Qbaseinfo.FieldByName('Phy_retail1').Value:=0;
Qbaseinfo.FieldByName('Phy_retail2').Value:=0;
Qbaseinfo.FieldByName('Phy_retail3').Value:=0;
Qbaseinfo.FieldByName('Phy_retail4').Value:=0;
Qbaseinfo.FieldByName('Phy_type').Value:=fpubdata.qrydisp_type.fieldbyname('fcode').Value;
Qbaseinfo.FieldByName('ftype').Value:='西药';
SpeedButton7.Enabled:=False;
SpeedButton4.Enabled:=False;
SpeedButton10.Enabled:=True;
SpeedButton5.Enabled:=True;
DBEdit1.SetFocus;
end;
procedure TfBs_physic.actfindExecute(Sender: TObject);
begin
inherited;
fphy_find:=Tfphy_find.Create(Self);
fphy_find.ShowModal;
end;
procedure TfBs_physic.actsaveExecute(Sender: TObject);
begin
inherited;
//向库存表添加该药品信息,且所有的库存都为零(除库存上下限外)
sqltmp.Close;
sqltmp.SQL.Clear;
sqltmp.SQL.Add('select * from kc_table where (kc_code ='+''''+Qbaseinfo['Phy_code']+''''+' )or (Kc_name='+''''+Qbaseinfo['Phy_name']+''''+')');
sqltmp.Open;
if sqltmp.RecordCount>0 then
begin
//修改同种药品的信息
DBEdit1.Enabled:=False;
DBEdit2.Enabled:=False;
ts1.Enabled:=False;
fpubdata.qrykc_table.Edit;
fpubdata.qrykc_table.FieldByName('Kc_code').Value:=Qbaseinfo['Phy_code'];
fpubdata.qrykc_table.FieldByName('Kc_name').Value:=Qbaseinfo['Phy_name'];
fpubdata.qrykc_table.FieldByName('Kc_cbprice').Value:=Qbaseinfo['Phy_aveprice'];
fpubdata.qrykc_table.FieldByName('Kc_qty1').Value:=0;
fpubdata.qrykc_table.FieldByName('Kc_qty2').Value:=0;
fpubdata.qrykc_table.FieldByName('Kc_qty3').Value:=0;
fpubdata.qrykc_table.FieldByName('Kc_qty4').Value:=0;
fpubdata.qrykc_table.FieldByName('Kc_allqty').Value:=0;
fpubdata.qrykc_table.FieldByName('Kc_money').Value:=0;
fpubdata.qrykc_table.FieldByName('Kc_up').Value:=Qbaseinfo['Phy_up'];
fpubdata.qrykc_table.FieldByName('Kc_down').Value:=Qbaseinfo['Phy_down'];
fpubdata.qrykc_table.Post;
end
else
begin
DBEdit1.Enabled:=False;
DBEdit2.Enabled:=False;
ts1.Enabled:=False;
// 若有此类药品,刚添加新的库存(如同种药品不同的厂家)
fpubdata.qrykc_table.Append;
fpubdata.qrykc_table.FieldByName('Kc_code').Value:=Qbaseinfo['Phy_code'];
fpubdata.qrykc_table.FieldByName('Kc_name').Value:=Qbaseinfo['Phy_name'];
fpubdata.qrykc_table.FieldByName('Kc_cbprice').Value:=Qbaseinfo['Phy_aveprice'];
fpubdata.qrykc_table.FieldByName('Kc_qty1').Value:=0;
fpubdata.qrykc_table.FieldByName('Kc_qty2').Value:=0;
fpubdata.qrykc_table.FieldByName('Kc_qty3').Value:=0;
fpubdata.qrykc_table.FieldByName('Kc_qty4').Value:=0;
fpubdata.qrykc_table.FieldByName('Kc_allqty').Value:=0;
fpubdata.qrykc_table.FieldByName('Kc_money').Value:=0;
fpubdata.qrykc_table.FieldByName('Kc_up').Value:=Qbaseinfo['Phy_up'];
fpubdata.qrykc_table.FieldByName('Kc_down').Value:=Qbaseinfo['Phy_down'];
fpubdata.qrykc_table.Post;
end;
end;
procedure TfBs_physic.acteditExecute(Sender: TObject);
begin
DBEdit1.Enabled:=True;
DBEdit2.Enabled:=True;
ts1.Enabled:=True;
inherited;
end;
procedure TfBs_physic.actrepriExecute(Sender: TObject);
begin
inherited;
DBEdit1.Enabled:=False;
DBEdit2.Enabled:=False;
ts1.Enabled:=False;
end;
procedure TfBs_physic.dxDBTreeList1DblClick(Sender: TObject);
begin
inherited; //双击查找
Qbaseinfo.Close;
Qbaseinfo.SQL.Clear;
Qbaseinfo.SQL.Add('select * from Bs_physic where Phy_type like '+''''+'%'+dxDBTreeList1Column1.Field.Value+'%'+'''');
Qbaseinfo.Open;
end;
procedure TfBs_physic.dbedtusedMouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
inherited; //右击
if Button=mbRight then
begin
fused:=Tfused.Create(Self);
fused.ShowModal;
end;
end;
procedure TfBs_physic.DBEdit2Change(Sender: TObject);
var i:Integer; //附值(拼音简码)
hz:string;
begin
if Qbaseinfo.State in [dsinsert,dsedit] then
begin
Qbaseinfo.FieldByName('Phy_abc').Value:='';
for i:=1 to Length(DBEdit2.Text) div 2 do
begin
hz:=Copy(DBEdit2.Text,i*2-1,2);
Qbaseinfo.FieldByName('Phy_abc').Value:=Qbaseinfo.FieldByName('Phy_abc').Value+getpy(hz);
end;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -