📄 selretexcludefrm.pas
字号:
unit SelRetExcludeFrm;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ceBaseBillFrm, ActnList, ModuleAction, ImgList, TB2Dock,
ExtCtrls, RzPanel, TB2Item, TB2Toolbar, DB, DBClient, MConnect, RzDBBnEd,
ComCtrls, RzDTP, RzDBDTP, StdCtrls, Mask, RzEdit, RzDBEdit, RzLabel,RzDBLbl,
Grids, DBGridEh, DbUtilsEh, EhLibCDS, xEhLibCtl, RzCmboBx, RzDBCmbo,IMainFrm, Menus, Buttons,
RzButton, ckDBClient,uGlobal,DbFuncs,ShowProGress,uDataTypes, ceGlobal;
type
TFmSelRetExclude = class(TceBaseBillForm)
DsSelRetExcludeDtl: TDataSource;
CdsSelRetExcludeDtl: TckClientDataSet;
DsSelRetExclude: TDataSource;
CdsSelRetExclude: TckClientDataSet;
RzLabel1: TRzLabel;
RzDBEdit1: TRzDBEdit;
RzLabel2: TRzLabel;
RzDBDateTimePicker1: TRzDBDateTimePicker;
RzLabel5: TRzLabel;
RzLabel8: TRzLabel;
Lab_State: TLabel;
Comcnn: TDCOMConnection;
Label7: TLabel;
edCustName: TRzDBButtonEdit;
RzDBEdit9: TRzDBEdit;
RzDBEdit8: TRzDBEdit;
dbgSelRetOrderDtl: TxDBGridEh;
RzLabel21: TRzLabel;
RzDBEdit6: TRzDBEdit;
RzLabel7: TRzLabel;
RzDBLabel1: TRzDBLabel;
RzLabel16: TRzLabel;
RzDBLabel2: TRzDBLabel;
RzDBButtonEdit2: TRzDBButtonEdit;
ActFinish: TModlAction;
TBItem18: TTBItem;
Label1: TLabel;
RzDBEdit2: TRzDBEdit;
RzDBButtonEdit1: TRzDBButtonEdit;
RzLabel12: TRzLabel;
RzLabel9: TRzLabel;
RzDBEdit3: TRzDBEdit;
RzDBEdit7: TRzDBEdit;
CdsSelRetExcludeBillNo: TStringField;
CdsSelRetExcludeFDate: TDateTimeField;
CdsSelRetExcludeEmpNo: TStringField;
CdsSelRetExcludeEmpName: TStringField;
CdsSelRetExcludeCustNo: TStringField;
CdsSelRetExcludeCustName: TStringField;
CdsSelRetExcludeLinkMan: TStringField;
CdsSelRetExcludeCustAddr: TStringField;
CdsSelRetExcludeCarrKind: TStringField;
CdsSelRetExcludeCarrAddr: TStringField;
CdsSelRetExcludeRemark: TStringField;
CdsSelRetExcludeInvoice: TStringField;
CdsSelRetExcludeCreater: TStringField;
CdsSelRetExcludeCreatTime: TDateTimeField;
CdsSelRetExcludeMender: TStringField;
CdsSelRetExcludeUpdateTime: TDateTimeField;
CdsSelRetExcludeGrup: TIntegerField;
CdsSelRetExcludeAdsSelRetExcludeDtl: TDataSetField;
CdsSelRetExcludeDtlBillNo: TStringField;
CdsSelRetExcludeDtlItemNo: TIntegerField;
CdsSelRetExcludeDtlGoodsID: TStringField;
CdsSelRetExcludeDtlName: TStringField;
CdsSelRetExcludeDtlSpecs: TStringField;
CdsSelRetExcludeDtlUnit: TStringField;
CdsSelRetExcludeDtlCheckQty: TBCDField;
CdsSelRetExcludeDtlExcludeQty: TBCDField;
CdsSelRetExcludeDtlAmount: TBCDField;
CdsSelRetExcludeDtlBatchNo: TStringField;
CdsSelRetExcludeDtlValidDate: TDateTimeField;
CdsSelRetExcludeDtlExcludeCause: TStringField;
CdsSelRetExcludeDtlCustGoodsID: TStringField;
CdsSelRetExcludeDtlRemark: TStringField;
CdsSelRetExcludePBillNo: TStringField;
CdsSelRetExcludeAudit: TStringField;
CdsSelRetExcludeTransfer: TBooleanField;
RzLabel3: TRzLabel;
RzDBEdit10: TRzDBEdit;
RzLabel10: TRzLabel;
RzDBEdit4: TRzDBEdit;
RzLabel11: TRzLabel;
RzDBEdit5: TRzDBEdit;
procedure ActAddSubItemExecute(Sender: TObject);
procedure ActDelSubItemExecute(Sender: TObject);
procedure CdsSelRetExcludeAfterScroll(DataSet: TDataSet);
procedure FormCreate(Sender: TObject);
procedure CdsSelRetExcludeDtlNewRecord(DataSet: TDataSet);
procedure CdsSelRetExcludeDtlBeforeInsert(DataSet: TDataSet);
procedure RzDBButtonEdit1ButtonClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure CdsSelRetExcludeCustNoChange(Sender: TField);
procedure ActSaveExecute(Sender: TObject);
procedure CdsSelRetExcludeReconcileError(DataSet: TCustomClientDataSet;
E: EReconcileError; UpdateKind: TUpdateKind;
var Action: TReconcileAction);
procedure CdsSelRetExcludeEmpNOChange(Sender: TField);
procedure ActAuditExecute(Sender: TObject);
procedure ActRevertExecute(Sender: TObject);
procedure ActFieldLayoutExecute(Sender: TObject);
procedure ActDataExportExecute(Sender: TObject);
procedure edCustNameButtonClick(Sender: TObject);
procedure RzDBButtonEdit2ButtonClick(Sender: TObject);
procedure ActQueryExecute(Sender: TObject);
procedure dbgSelRetOrderDtlEditButtonClick(Sender: TObject);
procedure CdsSelRetExcludeDtlGoodsIDChange(Sender: TField);
procedure CdsSelRetExcludeNewRecord(DataSet: TDataSet);
private
CdsFieldProperty :TckClientDataSet;
iClientID :Integer;
ItemId :Integer;
bBrowGoods,CanAudit,CanRevert:Boolean;
slPayModes:TStrings;
LocSetting: PLocSetting;
SvrSelRetExclude,SvrCommon:TDispatchConnection;
BeforeEmpNo,BeforeGoodsID,BeforeCustNo :String;
procedure ParseGoodsInfo;
protected
public
Function DoSome(cType: PChar; Values: Variant): Variant; override;
end;
Const
sFieldProPerty='Select * From SysFieldProperty '+
' Where TableName in (''SelRetExclude'', ''SelRetExcludeDtl'', ''Goodses'')';
var
FmSelRetExclude :TFmSelRetExclude;
implementation
uses SelectCustFrm, SelectEmpFrm, SelectCustLinkManFrm, SelectGoodsFrm,
FieldsLayoutFrm, DataExportFrm;
{$R *.dfm}
procedure TFmSelRetExclude.ActAddSubItemExecute(Sender: TObject);
begin
If FEditMode=0 Then Exit;
If Not(CdsSelRetExclude.State In dsEditModes) Then Exit;
CdsSelRetExcludeDtl.Append;
End;
procedure TFmSelRetExclude.ActDelSubItemExecute(Sender: TObject);
begin
If FEditMode=0 Then Exit;
if CdsSelRetExcludeDtl.IsEmpty then Exit;
CdsSelRetExcludeDtl.Delete;
end;
procedure TFmSelRetExclude.CdsSelRetExcludeAfterScroll(DataSet: TDataSet);
begin
If CdsSelRetExcludeTransfer.Value Then Begin
ActAudit.Enabled:=False And CanAudit;
ActRevert.Enabled:=True And CanRevert;
Lab_State.Caption:='单据状态:已审核';
Lab_State.Font.Color:=clRed;
End Else Begin
ActAudit.Enabled:=True And CanAudit;
ActRevert.Enabled:=False And CanRevert;
Lab_State.Caption:='单据状态:未审核';
Lab_State.Font.Color:=clHotLight;
End;
end;
procedure TFmSelRetExclude.FormCreate(Sender: TObject);
begin
inherited;
slPayModes:=TStringList.Create;
CdsFieldProperty:=TCkClientDataSet.Create(Self);
LocSetting := IFmMain.IFmMainEx.GetLocSetting;
SetGressHint('正在登录到销退拒收服务器...');
SvrSelRetExclude:=iFmMain.GetConnection(Handle,'','ckSalesBase.SalesBase');
SetGressHint('正在连接到公用信息服务器...');
SvrCommon:=iFmMain.GetConnection(Handle,'','CommonSvr.CommonRDM');
SetGressHint('读取用户操作权限...');
CanAudit := ActAudit.Enabled;
CanRevert:= ActCancel.Enabled;
IFmMain.SetActionStatus(ActionList1, hInstance, self.ClassName);
iClientID:=LogonInfo^.ClientID;
sBillNoList.Text := SvrSelRetExclude.AppServer.GetCurrMonthBills(iClientID, 'SelRetExclude');
CdsSelRetExclude.RemoteServer:=SvrSelRetExclude;
CdsFieldProPerty.ProviderName:='DspTemp';
CdsFieldProPerty.RemoteServer:=SvrCommon;
MasterDataSet := CdsSelRetExclude;
SetLength(FDetailDataSets, 1);
FDetailDataSets[0] := CdsSelRetExcludeDtl;
BillType := 'SelRetExclude';
RepDataSetNames := '销退拒收;拒收明细';
end;
procedure TFmSelRetExclude.FormShow(Sender: TObject);
begin
SetGressHint('初始化本地环境...');
SetGridEhColor([dbgSelRetOrderDtl]);
LoadFieldsLayOut(LocSetting^.FieldLayoutCfgFile, Name, [dbgSelRetOrderDtl]);
SysFieldXml(CdsFieldProPerty,sFieldProPerty,'TFmSelRetExclude.Xml');
SetFieldProperty(CdsFieldProPerty,CdsSelRetExclude, 'SelRetExclude');
SetFieldProperty(CdsFieldProPerty,CdsSelRetExcludeDtl, 'SelRetExcludeDtl,Goodses');
SetGressHint('读取历史单据...');
SetCurrBillIdx(0);
inherited;
FreeGressForm;
end;
procedure TFmSelRetExclude.CdsSelRetExcludeDtlNewRecord(DataSet: TDataSet);
begin
BeforeGoodsID:='';
CdsSelRetExcludeDtlBillNo.Value:=CdsSelRetExcludeBillNo.Value;
CdsSelRetExcludeDtlItemNo.Value := ItemId+1;
end;
procedure TFmSelRetExclude.CdsSelRetExcludeDtlBeforeInsert(DataSet: TDataSet);
begin
inherited;
ItemId := GetFieldMaxInt(CdsSelRetExcludeDtl,'ItemNO')
end;
procedure TFmSelRetExclude.RzDBButtonEdit1ButtonClick(Sender: TObject);
Var sEmpNo,sEmpName:String;
begin
If FEditMode=0 Then Exit;
sEmpNo := CdsSelRetExcludeEmpNO.Value;
If SelectEmp(sEmpNo,sEmpName) Then begin
CdsSelRetExcludeEmpNO.Value := sEmpNo;
CdsSelRetExcludeEmpName.Value := sEmpName;
End;
End;
procedure TFmSelRetExclude.CdsSelRetExcludeCustNoChange(Sender: TField);
Var
sCustNo,sCustName,LogText:String;
begin
IF FEditMode=0 Then Exit;
sCustNo:=CdsSelRetExcludeCustNo.Value;
if sCustNo=BeforeCustNo Then Exit;
If sCustNo='' Then Begin
CdsSelRetExcludeCustName.Value:='';
Exit;
End;
BeforeCustNo:=sCustNo;
sCustName:=VarToStr(SvrCommon.AppServer.GetCustInfo(iClientID,sCustNo,1,'CustName',LogText));
CdsSelRetExcludeCustName.Value:=sCustName;
If LogText<>'' Then Begin
Messagebox(Handle,PChar(LogText),nil,16);
Abort;
End;
end;
procedure TFmSelRetExclude.ActSaveExecute(Sender: TObject);
begin
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -