📄 cg_master.pas
字号:
//********************************//
// 模块:采购模块 //
// 设计:杨凌 2005.06.20 //
// //
//********************************//
unit cg_master;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, baseform, ImgList, ActnList, Buttons, ToolWin, ComCtrls, DB,
ADODB, dxExEdtr, dxCntner, dxTL, dxDBCtrl, dxDBGrid, StdCtrls, Mask,
DBCtrls, dxEditor, dxEdLib, dxDBELib, dxDBTLCl, dxGrClms, ExtCtrls;
type
Tfbscg_master = class(Tfbaseform)
ActionList: TActionList;
actpirot1: TAction;
actnext: TAction;
actadd: TAction;
actdel: TAction;
actedit: TAction;
actquit: TAction;
actexcel: TAction;
actsave: TAction;
actfind: TAction;
actrepri: TAction;
il1: TImageList;
tlb1: TToolBar;
SpeedButton1: TSpeedButton;
SpeedButton2: TSpeedButton;
SpeedButton3: TSpeedButton;
SpeedButton4: TSpeedButton;
SpeedButton5: TSpeedButton;
SpeedButton6: TSpeedButton;
SpeedButton7: TSpeedButton;
Qbaseinfo: TADOQuery;
DataSource: TDataSource;
SpeedButton8: TSpeedButton;
SpeedButton9: TSpeedButton;
SpeedButton10: TSpeedButton;
pnl1: TPanel;
lbl1: TLabel;
lbl2: TLabel;
lbl3: TLabel;
lbl4: TLabel;
lbl5: TLabel;
lbl6: TLabel;
lbl7: TLabel;
lbl11: TLabel;
lbl12: TLabel;
lbl13: TLabel;
lbl14: TLabel;
lbl15: TLabel;
lbl16: TLabel;
lbl17: TLabel;
lbl19: TLabel;
lbl20: TLabel;
lbl18: TLabel;
dxDBGrid1: TdxDBGrid;
dbedtcode: TDBEdit;
dbedtmam: TDBEdit;
dbedtdate: TDBEdit;
dbedtname: TDBEdit;
dbedtinpri: TDBEdit;
dbedtqty: TDBEdit;
dbedtmoney: TDBEdit;
dbedtph: TDBEdit;
dbedtfactory: TDBEdit;
dbmmomen: TDBMemo;
btn1: TBitBtn;
btn2: TBitBtn;
dbchk1: TDBCheckBox;
dxDBButtonEdit1: TdxDBButtonEdit;
dxDBDateEdit1: TdxDBDateEdit;
dxDBDateEdit2: TdxDBDateEdit;
DBLookupComboBox1: TDBLookupComboBox;
procedure actaddExecute(Sender: TObject);
procedure acteditExecute(Sender: TObject);
procedure actdelExecute(Sender: TObject);
procedure actsaveExecute(Sender: TObject);
procedure actrepriExecute(Sender: TObject);
procedure actpirot1Execute(Sender: TObject);
procedure actnextExecute(Sender: TObject);
procedure actquitExecute(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure QbaseinfoAfterScroll(DataSet: TDataSet);
procedure btn1Click(Sender: TObject);
procedure btn2Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure actexcelExecute(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
fbscg_master: Tfbscg_master;
implementation
uses dataform, pubdata, Global, cg_inwhs;
{$R *.dfm}
procedure Tfbscg_master.actaddExecute(Sender: TObject);
begin
//inherited;
dbedtcode.Enabled:=True;
dbedtmam.Enabled:=True;
dbedtdate.Enabled:=True;
dxDBButtonEdit1.Enabled:=True;
dbedtname.Enabled:=True;
//DBLookupComboBox1.Enabled:=True;
dbedtinpri.Enabled:=True;
dbedtqty.Enabled:=True;
dbedtmoney.Enabled:=True;
dbedtph.Enabled:=True;
dxDBDateEdit1.Enabled:=True;
dxDBDateEdit2.Enabled:=True;
dbedtfactory.Enabled:=True;
dbmmomen.Enabled:=True;
dbchk1.Enabled:=True;
//添加记录
Qbaseinfo.Edit;
Qbaseinfo.Append;
Qbaseinfo.FieldByName('fdate').Value:=FormatDateTime('YYYY-MM-DD',Date());
Qbaseinfo.FieldByName('Ma_worker').Value:=fData.Sqltmp['User_code'];
Qbaseinfo.FieldByName('ma_otc').Value:=0;
Qbaseinfo.FieldByName('fout').Value:=0;
SpeedButton1.Enabled:=False;
SpeedButton3.Enabled:=False;
SpeedButton9.Enabled:=True;
SpeedButton10.Enabled:=True;
dxDBButtonEdit1.SetFocus;
end;
procedure Tfbscg_master.acteditExecute(Sender: TObject);
begin
inherited;
if not (Qbaseinfo.State in [dsedit,dsinsert]) then
begin
Qbaseinfo.Edit;
//------------------------------
//设置能否使用
dbedtcode.Enabled:=True;
dbedtmam.Enabled:=True;
dbedtdate.Enabled:=True;
dxDBButtonEdit1.Enabled:=True;
dbedtname.Enabled:=True;
//DBLookupComboBox1.Enabled:=True;
dbedtinpri.Enabled:=True;
dbedtqty.Enabled:=True;
dbedtmoney.Enabled:=True;
dbedtph.Enabled:=True;
dxDBDateEdit1.Enabled:=True;
dxDBDateEdit2.Enabled:=True;
dbedtfactory.Enabled:=True;
dbmmomen.Enabled:=True;
dbchk1.Enabled:=True;
//------------------------------
SpeedButton3.Enabled:=False;
SpeedButton1.Enabled:=False;
SpeedButton9.Enabled:=True;
SpeedButton10.Enabled:=True;
end;
end;
procedure Tfbscg_master.actdelExecute(Sender: TObject);
begin
inherited;
if MessageBox(0, '确定删除这条记录?', '提示', MB_OKCANCEL + MB_ICONWARNING) =
IDOK then
begin
Qbaseinfo.Delete;
end;
end;
procedure Tfbscg_master.actsaveExecute(Sender: TObject);
begin
inherited;
if Qbaseinfo.State in [dsedit,dsinsert] then
begin
Qbaseinfo.Post;
//------------------------------
//设置能否使用
dbedtcode.Enabled:=False;
dbedtmam.Enabled:=False;
dbedtdate.Enabled:=False;
dxDBButtonEdit1.Enabled:=False;
dbedtname.Enabled:=False;
//DBLookupComboBox1.Enabled:=False;
dbedtinpri.Enabled:=False;
dbedtqty.Enabled:=False;
dbedtmoney.Enabled:=False;
dbedtph.Enabled:=False;
dxDBDateEdit1.Enabled:=False;
dxDBDateEdit2.Enabled:=False;
dbedtfactory.Enabled:=False;
dbmmomen.Enabled:=False;
dbchk1.Enabled:=False;
//------------------------------
SpeedButton1.Enabled:=True;
SpeedButton3.Enabled:=True;
SpeedButton9.Enabled:=False;
SpeedButton10.Enabled:=False;
end;
end;
procedure Tfbscg_master.actrepriExecute(Sender: TObject);
begin
inherited;
if MessageBox(0, '真的要取消修改吗?', '提示', MB_OKCANCEL + MB_ICONQUESTION +
MB_TOPMOST) = IDOK then
begin
Qbaseinfo.Cancel;
//------------------------------
//设置能否使用
dbedtcode.Enabled:=False;
dbedtmam.Enabled:=False;
dbedtdate.Enabled:=False;
dxDBButtonEdit1.Enabled:=False;
dbedtname.Enabled:=False;
//DBLookupComboBox1.Enabled:=False;
dbedtinpri.Enabled:=False;
dbedtqty.Enabled:=False;
dbedtmoney.Enabled:=False;
dbedtph.Enabled:=False;
dxDBDateEdit1.Enabled:=False;
dxDBDateEdit2.Enabled:=False;
dbedtfactory.Enabled:=False;
dbmmomen.Enabled:=False;
dbchk1.Enabled:=False;
//------------------------------
SpeedButton1.Enabled:=True;
SpeedButton3.Enabled:=True;
SpeedButton9.Enabled:=False;
SpeedButton10.Enabled:=False;
end;
end;
procedure Tfbscg_master.actpirot1Execute(Sender: TObject);
begin
inherited;
Qbaseinfo.Prior;
end;
procedure Tfbscg_master.actnextExecute(Sender: TObject);
begin
inherited;
Qbaseinfo.Next;
end;
procedure Tfbscg_master.actquitExecute(Sender: TObject);
begin
inherited;
if Qbaseinfo.State in [dsedit,dsinsert] then
begin
if MessageBox(0, '数据尚未保存,确认退出?', '提示', MB_OKCANCEL +
MB_ICONWARNING) = IDOK then
begin
Close;
end
else
begin
Exit;
end;
end
else
close;
end;
procedure Tfbscg_master.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
inherited;
action:=caFree;
end;
procedure Tfbscg_master.QbaseinfoAfterScroll(DataSet: TDataSet);
begin
inherited;
if Qbaseinfo.FieldByName('fout').Value=0 then
lbl20.Visible:=False
else
lbl20.Visible:=True;
end;
procedure Tfbscg_master.btn1Click(Sender: TObject);
var a,b:Integer;
begin
inherited;
if Qbaseinfo.RecordCount>0 then
if Qbaseinfo.FieldByName('fout').Value=0 then
begin
if MessageBox(0, '要审核此单据吗?', '提示', MB_OKCANCEL + MB_ICONQUESTION) =
IDOK then
begin
Qbaseinfo.Edit;
Qbaseinfo.FieldByName('fout').Value:=1;
Qbaseinfo.Post;
//----------------------------
fpubdata.qryphy.Close;//查询当前药品信息
fpubdata.qryphy.SQL.Clear;
fpubdata.qryphy.SQL.Add('select * from Bs_physic where (Phy_code='+''''+Qbaseinfo['Ma_pcode']+''''+') and (Phy_name='+''''+Qbaseinfo['Ma_pname']+''''+')');
fpubdata.qryphy.Open;
fData.sqlcheck.Close; //查询当前药品的库存信息
fData.sqlcheck.SQL.Clear;
fData.sqlcheck.SQL.Add('select * from kc_table where (Kc_code='+''''+Qbaseinfo['Ma_pcode']+''''+') and (Kc_name='+''''+Qbaseinfo['Ma_pname']+''''+')');
fData.sqlcheck.Open;
if fData.sqlcheck.RecordCount>0 then
begin
fData.sqlcheck.Edit; //int 取整函数
fData.sqlcheck.FieldByName('Kc_qty2').Value:=fData.sqlcheck.FieldByName('Kc_qty2').Value+int(Qbaseinfo['ma_qyt']/fpubdata.qryphy.FieldByName('Phy_unit2rate').Value);
fData.sqlcheck.FieldByName('Kc_qty3').Value:=fData.sqlcheck.FieldByName('Kc_qty3').Value+int((Qbaseinfo['ma_qyt']-int(Qbaseinfo['ma_qyt']/fpubdata.qryphy.FieldByName('Phy_unit2rate').Value)*fpubdata.qryphy.FieldByName('Phy_unit2rate').Value)/fpubdata.qryphy.FieldByName('Phy_unit1rate').Value);
a:=int(Qbaseinfo['ma_qyt']/fpubdata.qryphy.FieldByName('Phy_unit2rate').Value)* fpubdata.qryphy.FieldByName('Phy_unit2rate').Value;
b:=int((Qbaseinfo['ma_qyt']-a)/fpubdata.qryphy.FieldByName('Phy_unit1rate').Value)*fpubdata.qryphy.FieldByName('Phy_unit1rate').Value;
fData.sqlcheck.FieldByName('Kc_qty4').Value:=fData.sqlcheck.FieldByName('Kc_qty4').Value+(Qbaseinfo['ma_qyt']-a-b);
fData.sqlcheck.FieldByName('Kc_allqty').Value:=fData.sqlcheck.FieldByName('Kc_allqty').Value+Qbaseinfo['ma_qyt'];
fData.sqlcheck.Post;
end;
//--------------------------------------
end
end
else
MessageBox(0, '该单据已审核!', '提示', MB_OK + MB_ICONINFORMATION +
MB_TOPMOST);
end;
procedure Tfbscg_master.btn2Click(Sender: TObject);
var a,b:Integer;
begin
inherited;
if Qbaseinfo.RecordCount>0 then
if Qbaseinfo.FieldByName('fout').Value=1 then
begin
if MessageBox(0, '要反审核此单据吗?', '提示', MB_OKCANCEL + MB_ICONQUESTION) =
IDOK then
begin
Qbaseinfo.Edit;
Qbaseinfo.FieldByName('fout').Value:=0;
Qbaseinfo.Post;
//----------------------------------------
fpubdata.qryphy.Close;//查询当前药品信息
fpubdata.qryphy.SQL.Clear;
fpubdata.qryphy.SQL.Add('select * from Bs_physic where (Phy_code='+''''+Qbaseinfo['Ma_pcode']+''''+') and (Phy_name='+''''+Qbaseinfo['Ma_pname']+''''+')');
fpubdata.qryphy.Open;
fData.sqlcheck.Close; //查询当前药品的库存信息
fData.sqlcheck.SQL.Clear;
fData.sqlcheck.SQL.Add('select * from kc_table where (Kc_code='+''''+Qbaseinfo['Ma_pcode']+''''+') and (Kc_name='+''''+Qbaseinfo['Ma_pname']+''''+')');
fData.sqlcheck.Open;
if fData.sqlcheck.RecordCount>0 then
begin
fData.sqlcheck.Edit; //int 取整函数
fData.sqlcheck.FieldByName('Kc_qty2').Value:=fData.sqlcheck.FieldByName('Kc_qty2').Value-int(Qbaseinfo['ma_qyt']/fpubdata.qryphy.FieldByName('Phy_unit2rate').Value);
fData.sqlcheck.FieldByName('Kc_qty3').Value:=fData.sqlcheck.FieldByName('Kc_qty3').Value-int((Qbaseinfo['ma_qyt']-int(Qbaseinfo['ma_qyt']/fpubdata.qryphy.FieldByName('Phy_unit2rate').Value)*fpubdata.qryphy.FieldByName('Phy_unit2rate').Value)/fpubdata.qryphy.FieldByName('Phy_unit1rate').Value);
a:=int(Qbaseinfo['ma_qyt']/fpubdata.qryphy.FieldByName('Phy_unit2rate').Value)* fpubdata.qryphy.FieldByName('Phy_unit2rate').Value;
b:=int((Qbaseinfo['ma_qyt']-a)/fpubdata.qryphy.FieldByName('Phy_unit1rate').Value)*fpubdata.qryphy.FieldByName('Phy_unit1rate').Value;
fData.sqlcheck.FieldByName('Kc_qty4').Value:=fData.sqlcheck.FieldByName('Kc_qty4').Value-(Qbaseinfo['ma_qyt']-a-b);
fData.sqlcheck.FieldByName('Kc_allqty').Value:=fData.sqlcheck.FieldByName('Kc_allqty').Value-Qbaseinfo['ma_qyt'];
fData.sqlcheck.Post;
end;
//-------------------------------------------
end
end
else
MessageBox(0, '此单已反审!', '提示', MB_OK + MB_ICONINFORMATION +
MB_TOPMOST);
end;
procedure Tfbscg_master.FormCreate(Sender: TObject);
begin
inherited;
lbl20.Visible:=False;
end;
procedure Tfbscg_master.actexcelExecute(Sender: TObject);
begin
inherited;
fdata.dlgSave.Filter := 'Microsoft Excel Workbook (*.xls)|*.XLS|xml(*.xml)|*.xml|HTML file (*.htm)|*.HTM';
fdata.dlgSave.DefaultExt:='xls';
fdata.dlgSave.FileName := FormatDateTime('YYYY-MM-DD',Date());
if fdata.dlgSave.Execute then
begin
case fdata.dlgSave.FilterIndex of
1: dxDBGrid1.SaveToxls(fdata.dlgSave.FileName,True);
2: dxDBGrid1.SaveToXML(fdata.dlgSave.FileName,true);
3: dxDBGrid1.SaveToHTML(fdata.dlgSave.FileName,true);
end;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -