📄 selretdemandfrm.pas
字号:
unit SelRetDemandFrm;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ceBaseBillFrm, ActnList, ModuleAction, ImgList, TB2Dock,StdCtrls,
ExtCtrls, RzPanel, TB2Item, TB2Toolbar, DB, DBClient, MConnect,
Mask, RzEdit, RzDBEdit, DBCtrls, Grids, DBGridEh, DbUtilsEh, EhLibCDS, xEhLibCtl, ComCtrls,
RzDTP, RzDBDTP, RzDBBnEd,IMainFrm, Menus, Buttons, RzButton,DbFuncs,
RzRadChk, RzDBChk, ckDBClient,ShowProGress,uDataTypes,ceGlobal,
SelectCustFrm,SelectEmpFrm,SelectCustLinkManFrm, RzDBLbl, RzLabel;
type
TFmSelRetDemand = class(TceBaseBillForm)
DComConn: TDCOMConnection;
CdsSelRetDemand: TckClientDataSet;
DsSelRetDemand: TDataSource;
Label1: TLabel;
Label2: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label10: TLabel;
Label9: TLabel;
DBEdit1: TRzDBEdit;
DBEdit4: TRzDBEdit;
DBEdit5: TRzDBEdit;
DBEdit6: TRzDBEdit;
DBEdit10: TRzDBEdit;
DBEdit9: TRzDBEdit;
Lab_State: TLabel;
dbgSelRetDemandDtl: TxDBGridEh;
DBEdit2: TRzDBDateTimePicker;
RzDBEdit1: TRzDBEdit;
edProvName: TRzDBButtonEdit;
RzDBButtonEdit1: TRzDBButtonEdit;
DsSelRetDemandDtl: TDataSource;
CdsSelRetDemandDtl: TckClientDataSet;
DBCheckBox1: TRzDBCheckBox;
RzLabel7: TRzLabel;
RzDBLabel1: TRzDBLabel;
RzLabel16: TRzLabel;
RzDBLabel2: TRzDBLabel;
RzDBButtonEdit2: TRzDBButtonEdit;
CdsSelRetDemandBillNo: TStringField;
CdsSelRetDemandFDate: TDateTimeField;
CdsSelRetDemandContractNo: TStringField;
CdsSelRetDemandEmpNo: TStringField;
CdsSelRetDemandEmpName: TStringField;
CdsSelRetDemandAudit: TStringField;
CdsSelRetDemandLinkMan: TStringField;
CdsSelRetDemandGoodsQty: TBCDField;
CdsSelRetDemandGoodsSum: TBCDField;
CdsSelRetDemandTaxSum: TBCDField;
CdsSelRetDemandAmount: TBCDField;
CdsSelRetDemandRemark: TStringField;
CdsSelRetDemandFungible: TBooleanField;
CdsSelRetDemandTransfer: TBooleanField;
CdsSelRetDemandAbated: TBooleanField;
CdsSelRetDemandCreater: TStringField;
CdsSelRetDemandMender: TStringField;
CdsSelRetDemandGrup: TIntegerField;
CdsSelRetDemandCreatTime: TDateTimeField;
CdsSelRetDemandUpdateTime: TDateTimeField;
CdsSelRetDemandAdsSelRetDemandDtl: TDataSetField;
CdsSelRetDemandDtlBillNo: TStringField;
CdsSelRetDemandDtlItemNo: TIntegerField;
CdsSelRetDemandDtlGoodsID: TStringField;
CdsSelRetDemandDtlName: TStringField;
CdsSelRetDemandDtlSpecs: TStringField;
CdsSelRetDemandDtlUnit: TStringField;
CdsSelRetDemandDtlQty: TBCDField;
CdsSelRetDemandDtlOPrice: TFloatField;
CdsSelRetDemandDtlRebate: TBCDField;
CdsSelRetDemandDtlPrice: TFloatField;
CdsSelRetDemandDtlTaxRate: TBCDField;
CdsSelRetDemandDtlUnTaxPrice: TFloatField;
CdsSelRetDemandDtlGoodsSum: TBCDField;
CdsSelRetDemandDtlTaxSum: TBCDField;
CdsSelRetDemandDtlAmount: TBCDField;
CdsSelRetDemandDtlBatchNo: TStringField;
CdsSelRetDemandDtlProdDate: TDateTimeField;
CdsSelRetDemandDtlValidDate: TDateTimeField;
Label11: TLabel;
RzDBEdit2: TRzDBEdit;
Label12: TLabel;
RzDBEdit3: TRzDBEdit;
Label13: TLabel;
RzDBEdit4: TRzDBEdit;
CdsSelRetDemandCustNo: TStringField;
CdsSelRetDemandCustName: TStringField;
procedure FormCreate(Sender: TObject);
procedure ActDeleteExecute(Sender: TObject);
procedure ActSaveExecute(Sender: TObject);
procedure CdsSelRetDemandNewRecord(DataSet: TDataSet);
procedure CdsSelRetDemandDtlBeforeInsert(DataSet: TDataSet);
procedure CdsSelRetDemandDtlNewRecord(DataSet: TDataSet);
procedure CdsSelRetDemandReconcileError(DataSet: TCustomClientDataSet;
E: EReconcileError; UpdateKind: TUpdateKind;
var Action: TReconcileAction);
procedure ActAddSubItemExecute(Sender: TObject);
procedure ActDelSubItemExecute(Sender: TObject);
procedure CdsSelRetDemandDtlAfterPost(DataSet: TDataSet);
procedure edProvNameButtonClick(Sender: TObject);
procedure RzDBButtonEdit1ButtonClick(Sender: TObject);
procedure CdsSelRetDemandEmpNoChange(Sender: TField);
procedure CdsSelRetDemandDtlGoodsIDChange(Sender: TField);
procedure dbgSelRetDemandDtlEditButtonClick(Sender: TObject);
procedure ActUpdateExecute(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure CdsSelRetDemandAfterScroll(DataSet: TDataSet);
procedure ActAuditExecute(Sender: TObject);
procedure ActRevertExecute(Sender: TObject);
procedure ActFieldLayoutExecute(Sender: TObject);
procedure ActDataExportExecute(Sender: TObject);
procedure RzDBButtonEdit2ButtonClick(Sender: TObject);
procedure ActBillTurnExecute(Sender: TObject);
procedure ActQueryExecute(Sender: TObject);
procedure CdsSelRetDemandCustNoChange(Sender: TField);
procedure CdsSelRetDemandDtlQtyChange(Sender: TField);
procedure CdsSelRetDemandDtlPriceChange(Sender: TField);
procedure CdsSelRetDemandDtlTaxRateChange(Sender: TField);
procedure CdsSelRetDemandDtlUnTaxPriceChange(Sender: TField);
private
FlagGoodsID,BeforeGoodsID,BeforeEmpNo,BeforeCustNo:String;
bBrowGoods,CanAudit, CanRevert:Boolean;
SvrCommon,SvrSelRetDemand:TDispatchConnection;
iClientID,iLastItemNO:Integer;
LocSetting: PLocSetting;
CdsFieldProperty :TckClientDataSet;
procedure ParseGoodsInfo;
public
protected
Function DoSome(cType: PChar; Values: Variant): Variant; override;
end;
Const
sFieldProPerty='Select * From SysFieldProPerty '+
' Where TableName in(''SelRetDemand'',''SelRetDemandDtl'', ''Goodses'')';
var
FmSelRetDemand: TFmSelRetDemand;
implementation
Uses SelectGoodsFrm,FieldsLayoutFrm,DataExportFrm,ViewGoodsPriceFrm;
{$R *.dfm}
procedure TFmSelRetDemand.FormCreate(Sender: TObject);
begin
inherited;
CdsFieldProperty:=TCkClientDataSet.Create(Self);
IFmMain.SetActionStatus(ActionList1, hInstance, self.ClassName);
LocSetting := IFmMain.IFmMainEx.GetLocSetting;
LoadFieldsLayOut(LocSetting^.FieldLayoutCfgFile, Name, [dbgSelRetDemandDtl]);
SetGressHint('正在登录到销售退回申请服务器...');
CanAudit := ActAudit.Enabled;
CanRevert:= ActCancel.Enabled;
iClientID:=logonInfo^.ClientID;
RepDataSetNames := '销售退回申请;销售退回申请明细';
sRepSection := '销售退回申请';
SvrSelRetDemand:=iFmMain.GetConnection(Handle,'','ckSalesBase.SalesBase');
sBillNoList.Text := SvrSelRetDemand.AppServer.GetCurrMonthBills(iClientID, 'SelRetDemand');
CdsSelRetDemand.RemoteServer:=SvrSelRetDemand;
SetGressHint('正在连接到公用信息服务器...');
SvrCommon:=IFmMain.GetConnection(Handle,'','CommonSvr.CommonRDM');
CdsFieldProPerty.ProviderName:='DspTemp';
CdsFieldProperty.RemoteServer:=SvrCommon;
SetGressHint('读取用户操作权限...');
MasterDataSet:=CdsSelRetDemand;
SetLength(FDetailDataSets, 1);
BillType :='SelRetDemand';
FDetailDataSets[0] := CdsSelRetDemandDtl;
dbgSelRetDemandDtl.SetAutoSort('');
end;
procedure TFmSelRetDemand.FormShow(Sender: TObject);
Var
sTableNames:String;
begin
SetGressHint('初始化本地环境...');
SetGridEhColor(dbgSelRetDemandDtl);
SysFieldXml(CdsFieldProPerty,sFieldProPerty,'TFmSelRetDemand.Xml');
SetFieldProperty(CdsFieldProPerty,CdsSelRetDemandDtl,'SelRetDemand');
SetFieldProperty(CdsFieldProPerty,CdsSelRetDemandDtl,'SelRetDemandDtl,Goodses');
SetGressHint('读取历史单据...');
SetCurrBillIdx(0);
inherited;
FreeGressForm;
end;
procedure TFmSelRetDemand.ActDeleteExecute(Sender: TObject);
begin
If CdsSelRetDemandTransfer.Value Then Begin
Messagebox(Handle,Pchar('当前单据已[复核],不能执行删除操作!'),'警告:',64);
Exit;
End;
inherited;
end;
procedure TFmSelRetDemand.ActSaveExecute(Sender: TObject);
begin
If FEditMode=0 Then Exit;
If (CdsSelRetDemandDtl.State In dsEditModes) Then
CdsSelRetDemandDtl.Post;
Inherited;
End;
procedure TFmSelRetDemand.CdsSelRetDemandNewRecord(DataSet: TDataSet);
begin
BeforeCustNo:='';
BeforeEmpNo :='';
edProvName.Button.Click;
CdsSelRetDemandBillNo.Value := BuildBillNo('SelRetDemand');
CdsSelRetDemandCreater.Value := LogonInfo^.UserID;
CdsSelRetDemandGrup.Value := LogonInfo^.UserGrupID;
CdsSelRetDemandFDate.Value:=Date;
end;
procedure TFmSelRetDemand.CdsSelRetDemandDtlBeforeInsert(
DataSet: TDataSet);
begin
iLastItemNO:=GetFieldMaxInt(CdsSelRetDemandDtl,'ItemNO')+1;
end;
procedure TFmSelRetDemand.CdsSelRetDemandDtlNewRecord(DataSet: TDataSet);
begin
BeforeGoodsID:='';
CdsSelRetDemandDtlBillNo.Value:=CdsSelRetDemandBillNo.Value;
CdsSelRetDemandDtlProdDate.Value:=Date;
CdsSelRetDemandDtlValidDate.Value:=IncMonth(Date,1);
CdsSelRetDemandDtlItemNo.Value:=iLastItemNO;
end;
procedure TFmSelRetDemand.CdsSelRetDemandReconcileError(
DataSet: TCustomClientDataSet; E: EReconcileError;
UpdateKind: TUpdateKind; var Action: TReconcileAction);
begin
Messagebox(Handle,Pchar(E.Message),'',16);
Action:=RaAbort;
end;
procedure TFmSelRetDemand.ActAddSubItemExecute(Sender: TObject);
begin
IF FEditMode=0 Then Exit;
If Not(CdsSelRetDemand.State In dsEditModes) Then Exit;
CdsSelRetDemandDtl.Append;
end;
procedure TFmSelRetDemand.ActDelSubItemExecute(Sender: TObject);
begin
IF FEditMode=0 Then Exit;
if CdsSelRetDemandDtl.IsEmpty then Exit;
CdsSelRetDemandDtl.Delete;
end;
procedure TFmSelRetDemand.CdsSelRetDemandDtlAfterPost(DataSet: TDataSet);
var dQty,dTaxSum,dGoodsSum,dAmount:Double;
mark1: TBookmark;
begin
BeforeGoodsID:='';
dQty:=0;
with CdsSelRetDemandDtl do begin
Mark1 := GetBookmark;
DisableControls;
try
First;
while not Eof do begin
dQty:=dQty+FieldByName('Qty').AsFloat;
dTaxSum := dTaxSum+FieldByName('TaxSum').AsFloat;
dGoodsSum := dGoodsSum+FieldByName('GoodsSum').AsFloat;
dAmount := dAmount+FieldByName('Amount').AsFloat;
next;
end;
CdsSelRetDemandGoodsQty.Value := dQty;
CdsSelRetDemandGoodsSum.Value := dGoodsSum;
CdsSelRetDemandTaxSum.Value := dTaxSum;
CdsSelRetDemandAmount.Value := dAmount;
finally
GotoBookmark(Mark1);
FreeBookmark(Mark1);
EnableControls;
end;
end;
end;
procedure TFmSelRetDemand.edProvNameButtonClick(Sender: TObject);
Var
sCustNo,sCustName : String;
begin
If FEditMode=0 Then Exit;
sCustNo := cdsSelRetDemandCustNo.Value;
If SelectCust(sCustNo,sCustName) Then
Begin
cdsSelRetDemandCustNo.Value:= sCustNo;
cdsSelRetDemandCustName.Value := sCustName;
End;
End;
procedure TFmSelRetDemand.RzDBButtonEdit1ButtonClick(Sender: TObject);
Var sEmpNo,sEmpName:String;
begin
If FEditMode=0 Then Exit;
sEmpNo := CdsSelRetDemandEmpNo.Value;
If SelectEmp(sEmpNo,sEmpName) Then
begin
CdsSelRetDemandEmpNo.Value := sEmpNo;
CdsSelRetDemandEmpName.Value := sEmpName;
End;
end;
procedure TFmSelRetDemand.CdsSelRetDemandEmpNoChange(Sender: TField);
Var
sEmpNo,sEmpName,LogText:String;
begin
IF FEditMode=0 Then Exit;
sEmpNo:=CdsSelRetDemandEmpNo.Value;
If sEmpNo='' Then Exit;
if sEmpNo=BeforeEmpNo Then Exit;
BeforeEmpNo:=sEmpNO;
sEmpName:=VarToStr(SvrCommon.AppServer.GetEmpInfo(iClientID,sEmpNo,1,'Name',LogText));
CdsSelRetDemandEmpName.Value:=sEmpName;
If LogText<>'' Then Begin
Messagebox(Handle,Pchar(LogText),nil,16);
DBEdit5.SetFocus;
Abort;
End;
end;
procedure TFmSelRetDemand.CdsSelRetDemandDtlGoodsIDChange(Sender: TField);
Var
LogText,Flag,sGoodsID,sSetFields:String;
Begin
IF FEditMode=0 Then Exit;
IF FlagGoodsID<>'' Then Begin
FlagGoodsID:='';
Exit;
End;
If bBrowGoods then Exit;
sGoodsID:=CdsSelRetDemandDtlGoodsID.AsString;
If sGoodsID='' Then Exit;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -