stockconfectfrm.~pas
来自「群星医药系统源码」· ~PAS 代码 · 共 598 行 · 第 1/2 页
~PAS
598 行
unit StockConfectFrm;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ceBaseBillFrm, StdCtrls, Mask, RzEdit, RzDBEdit, Menus,
ActnList, ModuleAction, ImgList, TB2Dock, ExtCtrls, RzPanel, Buttons,
RzButton, TB2Item, TB2Toolbar, RzDBBnEd, ComCtrls, RzDTP, RzDBDTP,
RzCmboBx, RzDBCmbo, Grids, DBGridEh, xEhLibCtl, RzLabel, RzDBLbl, DB,
DBClient, ckDBClient, MConnect,uDataTypes,DBFuncs,ceGlobal;
type
TFmStockConfect = class(TceBaseBillForm)
Label1: TLabel;
edBillNo: TRzDBEdit;
edDepotName: TRzDBEdit;
Label3: TLabel;
edDepotNo: TRzDBButtonEdit;
Label2: TLabel;
edBerthNo: TRzDBButtonEdit;
Label4: TLabel;
edProvNo: TRzDBButtonEdit;
edProvName: TRzDBEdit;
Label5: TLabel;
edGoodsName: TRzDBEdit;
edGoodsID: TRzDBButtonEdit;
Label6: TLabel;
edQty: TRzDBEdit;
edPrice: TRzDBEdit;
Label7: TLabel;
Label8: TLabel;
edAmount: TRzDBEdit;
edUnit: TRzDBComboBox;
Label9: TLabel;
edFDate: TRzDBDateTimePicker;
edValidDate: TRzDBDateTimePicker;
Label10: TLabel;
dbgStockConfectDtl: TxDBGridEh;
Label14: TLabel;
edAuditName: TRzDBEdit;
Label12: TLabel;
edEmpName: TRzDBEdit;
Label13: TLabel;
edEmpNo: TRzDBButtonEdit;
lbStatus: TRzDBLabel;
edCreater: TRzDBEdit;
Label15: TLabel;
edCreatTime: TRzDBEdit;
Label16: TLabel;
edRemark: TRzDBEdit;
Label17: TLabel;
edMender: TRzDBEdit;
Label18: TLabel;
edUpdateTime: TRzDBEdit;
DCOMConnection1: TDCOMConnection;
cdsStockConfect: TckClientDataSet;
cdsStockConfectDtl: TckClientDataSet;
dsStockConfect: TDataSource;
dsStockConfectDtl: TDataSource;
cdsStockConfectBillNo: TStringField;
cdsStockConfectFDate: TDateTimeField;
cdsStockConfectDepotID: TIntegerField;
cdsStockConfectDepotNo: TStringField;
cdsStockConfectDepotName: TStringField;
cdsStockConfectBerthNo: TStringField;
cdsStockConfectProvNo: TStringField;
cdsStockConfectProvName: TStringField;
cdsStockConfectGoodsID: TStringField;
cdsStockConfectName: TStringField;
cdsStockConfectSpecs: TStringField;
cdsStockConfectMaker: TStringField;
cdsStockConfectPDCAddr: TStringField;
cdsStockConfectUnit: TStringField;
cdsStockConfectQty: TBCDField;
cdsStockConfectPrice: TFloatField;
cdsStockConfectAmount: TBCDField;
cdsStockConfectBatchNo: TStringField;
cdsStockConfectValidDate: TDateTimeField;
cdsStockConfectEmpNo: TStringField;
cdsStockConfectEmpName: TStringField;
cdsStockConfectAudit: TStringField;
cdsStockConfectAuditName: TStringField;
cdsStockConfectTransfer: TBooleanField;
cdsStockConfectStatuText: TStringField;
cdsStockConfectRemark: TStringField;
cdsStockConfectCreater: TStringField;
cdsStockConfectCreatTime: TDateTimeField;
cdsStockConfectMender: TStringField;
cdsStockConfectUpdateTime: TDateTimeField;
cdsStockConfectGrup: TIntegerField;
cdsStockConfectadsStockConfectDtl: TDataSetField;
cdsStockConfectDtlBillNo: TStringField;
cdsStockConfectDtlItemNo: TIntegerField;
cdsStockConfectDtlBerthNo: TStringField;
cdsStockConfectDtlGoodsID: TStringField;
cdsStockConfectDtlName: TStringField;
cdsStockConfectDtlSpecs: TStringField;
cdsStockConfectDtlQty: TBCDField;
cdsStockConfectDtlUnit: TStringField;
cdsStockConfectDtlPrice: TFloatField;
cdsStockConfectDtlAmount: TBCDField;
cdsStockConfectDtlBatchNo: TStringField;
cdsStockConfectDtlValidDate: TDateTimeField;
cdsStockConfectDtlMaker: TStringField;
cdsStockConfectDtlPdcAddr: TStringField;
cdsStockConfectDtlRemark: TStringField;
Label11: TLabel;
edBatchNo: TRzDBButtonEdit;
Bevel1: TBevel;
procedure FormCreate(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure cdsStockConfectNewRecord(DataSet: TDataSet);
procedure cdsStockConfectDtlNewRecord(DataSet: TDataSet);
procedure cdsStockConfectDtlAfterPost(DataSet: TDataSet);
procedure cdsStockConfectDtlAfterCancel(DataSet: TDataSet);
procedure cdsStockConfectAfterScroll(DataSet: TDataSet);
procedure cdsStockConfectAfterOpen(DataSet: TDataSet);
procedure cdsStockConfectDtlQtyChange(Sender: TField);
procedure cdsStockConfectQtyChange(Sender: TField);
procedure cdsStockConfectDtlGoodsIDChange(Sender: TField);
procedure cdsStockConfectGoodsIDChange(Sender: TField);
procedure dbgStockConfectDtlEditButtonClick(Sender: TObject);
procedure edDepotNoButtonClick(Sender: TObject);
procedure edDepotNoKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure edGoodsIDButtonClick(Sender: TObject);
procedure edGoodsIDKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure edBerthNoButtonClick(Sender: TObject);
procedure edProvNoButtonClick(Sender: TObject);
procedure edBerthNoKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure edProvNoKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure edEmpNoButtonClick(Sender: TObject);
procedure edEmpNoKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure ActAuditExecute(Sender: TObject);
procedure ActRevertExecute(Sender: TObject);
procedure ActFieldLayoutExecute(Sender: TObject);
procedure ActDataExportExecute(Sender: TObject);
procedure ActUpdateExecute(Sender: TObject);
procedure edBatchNoButtonClick(Sender: TObject);
procedure edBatchNoKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure ActQueryExecute(Sender: TObject);
private
{ Private declarations }
FDrawSysmenuRect: boolean;
bBrowGoods:Boolean;
FMaxItemNo: integer;
CdsFieldProPerty:TCkClientDataSet;
LocSetting: PLocSetting;
iClientID:Integer;
SvrStockConfect,SvrCommon:TDispatchConnection;
procedure ParseGoodsInfo;
public
{ Public declarations }
end;
Const
sFieldProPerty='Select * From SysFieldProPerty '+
' Where TableName in(''StockConfect'', ''StockConfectDtl'',''Goodses'')';
var
FmStockConfect: TFmStockConfect;
implementation
uses SelectGoodsFrm,FieldsLayoutFrm,DataExportFrm,ViewGoodsPriceFrm,
SelectEmpFrm,SelectDepotFrm,SelectBerthFrm, ShowProGress,
SelectProvFrm, SelectBatchNoFrm;
{$R *.dfm}
procedure TFmStockConfect.FormCreate(Sender: TObject);
begin
inherited;
IFmMain.SetActionStatus(ActionList1, hInstance, self.ClassName);
CdsFieldProPerty:=TCKClientDataSet.Create(Self);
LocSetting := IFmMain.IFmMainEx.GetLocSetting;
SetGressHint('正在连接仓库服务器...');
iClientID:=IFmMain.IFmMainEx.ClientID;
SvrStockConfect := IFmMain.GetConnection(Handle,'','CkStockSvr.Stock');
sBillNoList.Text := SvrStockConfect.AppServer.GetCurrMonthBills(iClientID, 'StockConfect');
cdsStockConfect.RemoteServer:=SvrStockConfect;
SetGressHint('正在连接到公用信息服务器...');
SvrCommon:=IFmMain.GetConnection(Handle,'','CommonSvr.CommonRDM');
CdsFieldProPerty.ProviderName:='DspTemp';
CdsFieldProPerty.RemoteServer:=SvrCommon;
SetGressHint('正在读取用户操作权限...');
RepDataSetNames := '药品组合加工单;药品组合加工明细';
sRepSection := '药品组合加工单';
MasterDataSet:=cdsStockConfect;
SetLength(FDetailDataSets, 1);
FDetailDataSets[0] := cdsStockConfectDtl;
end;
procedure TFmStockConfect.FormShow(Sender: TObject);
begin
SetGressHint('初始化本地环境...');
SetGridEhColor(dbgStockConfectDtl);
SysFieldXml(CdsFieldProPerty,sFieldProPerty,'TFmStockConfectDtl.Xml');
SetFieldProperty(CdsFieldProPerty,CdsStockConfect, 'StockConfect');
SetFieldProperty(CdsFieldProPerty,CdsStockConfectDtl, 'StockConfectDtl,Goodses');
SetGressHint('读取历史单据...');
SetCurrBillIdx(0);
inherited;
FreeGressForm;
end;
procedure TFmStockConfect.FormDestroy(Sender: TObject);
begin
CdsFieldProPerty.Free;
inherited;
end;
procedure TFmStockConfect.cdsStockConfectNewRecord(DataSet: TDataSet);
begin
cdsStockConfectEmpNo.Value := LogonInfo^.UserID;
cdsStockConfectCreater.Value := LogonInfo^.UserID;
cdsStockConfectGrup.Value := LogonInfo^.UserGrupID;
cdsStockConfectFDate.Value :=Date;
cdsStockConfectValidDate.Value := Date;
cdsStockConfectBillNo.Value := BuildBillNo('StockConfect');
end;
procedure TFmStockConfect.cdsStockConfectDtlNewRecord(DataSet: TDataSet);
begin
FMaxItemNo := FMaxItemNo + 1;
cdsStockConfectDtlItemNo.Value := FMaxItemNo;
cdsStockConfectDtlBillNo.Value := edBillNo.Text;
DataSet.Tag := -1; //新增标志,如果用户取消操作,则根据些标志减FMaxItemNo
end;
procedure TFmStockConfect.cdsStockConfectDtlAfterPost(DataSet: TDataSet);
begin
DataSet.Tag := 0;
end;
procedure TFmStockConfect.cdsStockConfectDtlAfterCancel(DataSet: TDataSet);
begin
if DataSet.Tag <> 0 then
Dec(FMaxItemNo);
DataSet.Tag := 0;
end;
procedure TFmStockConfect.cdsStockConfectAfterScroll(DataSet: TDataSet);
var
i: integer;
bk: string;
begin
//改变单据状态文字颜色
if cdsStockConfectTransfer.Value then
lbStatus.Font.Color := clBlue
else
lbStatus.Font.Color := clRed;
//取得最大项次。本来可以直接取DBGRID的行数加1,但
//考虑到用户可能删除位于中间的行;也可以以ITEMNO排序取得最大,
//但可能以其他列排序,所以要这样取得最大项次
FMaxItemNo := 0;
with cdsStockConfectDtl do
begin
bk := Bookmark;
DisableControls;
First;
for i:=0 to RecordCount-1 do
begin
if FieldByName('ItemNo').AsInteger > FMaxItemNo then
FMaxItemNo := FieldByName('ItemNo').AsInteger;
Next;
end;
Bookmark := bk;
EnableControls;
end;
end;
procedure TFmStockConfect.cdsStockConfectAfterOpen(DataSet: TDataSet);
begin
cdsStockConfectAfterScroll(DataSet);
end;
procedure TFmStockConfect.cdsStockConfectDtlQtyChange(Sender: TField);
var
dAmount: Double;
begin
dAmount := cdsStockConfectDtlQty.Value;
dAmount := dAmount * cdsStockConfectDtlPrice.Value;
cdsStockConfectDtlAmount.Value := dAmount;
end;
procedure TFmStockConfect.cdsStockConfectQtyChange(Sender: TField);
var
dAmount: Double;
begin
dAmount := cdsStockConfectQty.Value;
dAmount := dAmount * cdsStockConfectPrice.Value;
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?