📄 monthfootfrm.pas
字号:
unit MonthFootFrm;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, RzPanel, RzTabs, RzButton, ComCtrls, RzDTP, StdCtrls,
Grids, DBGridEh, DbUtilsEh, EhLibCDS, xEhLibCtl, DB, DBClient, ckDBClient, TFlatSpeedButtonUnit,
RzCmboBx, Mask, RzEdit, RzBtnEdt, MConnect, ImgList, ActnList, Menus,
ModuleAction, IMainFrm, xBaseFrm, uDataTypes, DbFuncs, ShowProgress, FieldsLayoutFrm;
type
TFmMonthFoot = class(TxBaseForm)
RzPanel1: TRzPanel;
Label1: TLabel;
edFootMonth: TRzDateTimePicker;
RzBitBtn1: TRzBitBtn;
RzBitBtn2: TRzBitBtn;
PageCtrl: TRzPageControl;
TabSheet1: TRzTabSheet;
TabSheet2: TRzTabSheet;
TabSheet3: TRzTabSheet;
RzBitBtn3: TRzBitBtn;
Label2: TLabel;
cdsMonthDtlStock: TckClientDataSet;
dsMonthDtlStock: TDataSource;
dbgMonthDtlStock: TxDBGridEh;
Panel1: TPanel;
Label3: TLabel;
RzButtonEdit1: TRzButtonEdit;
RzButtonEdit2: TRzButtonEdit;
RzComboBox1: TRzComboBox;
BtnDataFilter1: TRzBitBtn;
DCOMConn: TDCOMConnection;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
RzButtonEdit3: TRzButtonEdit;
RzButtonEdit4: TRzButtonEdit;
cdsMonthArrearage: TckClientDataSet;
dsMonthArrearage: TDataSource;
cdsMonthGathering: TckClientDataSet;
dsMonthGathering: TDataSource;
BtnPopMenu: TFlatSpeedButton;
TopPopMenu: TPopupMenu;
SetFields1: TMenuItem;
refresh1: TMenuItem;
ActionList1: TActionList;
ActRefresh: TModlAction;
ActTryoutMonthFoot: TModlAction;
ActViewFootRec: TModlAction;
ActFoot: TModlAction;
ActPrint: TModlAction;
ActExit: TModlAction;
ActFieldsLayOut: TModlAction;
ActDataExport: TModlAction;
ActDesignReport: TModlAction;
ImageList1: TImageList;
BtnPrint: TRzBitBtn;
BitBtn2: TRzBitBtn;
ActUnFoot: TModlAction;
RzBitBtn6: TRzBitBtn;
Panel2: TPanel;
dbgMonthArrearage: TxDBGridEh;
Panel3: TPanel;
dbgMonthGathering: TxDBGridEh;
RzEdit1: TRzEdit;
Label8: TLabel;
RzButtonEdit5: TRzButtonEdit;
RzEdit2: TRzEdit;
Label9: TLabel;
RzButtonEdit6: TRzButtonEdit;
RzEdit3: TRzEdit;
Label10: TLabel;
Label11: TLabel;
RzButtonEdit7: TRzButtonEdit;
RzButtonEdit8: TRzButtonEdit;
BtnDataFilter2: TRzBitBtn;
Label12: TLabel;
RzButtonEdit9: TRzButtonEdit;
RzEdit4: TRzEdit;
Label13: TLabel;
RzButtonEdit10: TRzButtonEdit;
RzEdit5: TRzEdit;
Label14: TLabel;
Label15: TLabel;
RzButtonEdit11: TRzButtonEdit;
RzButtonEdit12: TRzButtonEdit;
BtnDataFilter3: TRzBitBtn;
procedure FormCreate(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure BtnPopMenuClick(Sender: TObject);
procedure ActViewFootRecExecute(Sender: TObject);
procedure ActTryoutMonthFootExecute(Sender: TObject);
procedure ActFootExecute(Sender: TObject);
procedure ActUnFootExecute(Sender: TObject);
procedure ActPrintExecute(Sender: TObject);
procedure ActExitExecute(Sender: TObject);
procedure ActFieldsLayOutExecute(Sender: TObject);
procedure ActDataExportExecute(Sender: TObject);
private
IFmMain: IMainForm;
iClientID: Integer;
LocSetting: PLocSetting;
CdsFieldProPerty:TCKClientDataSet;
SvrCommon: TDispatchConnection;
protected
SvrDataTend: TDispatchConnection;
public
end;
var
FmMonthFoot: TFmMonthFoot;
const
sFieldProPerty='Select * From SysFieldProPerty '+
' Where TableName In(''MonthGathering'',''MonthArrearage'',''MonthDtlStock'')';
implementation
uses ceGlobal, RepSelectFrm, DataExportFrm;
{$R *.dfm}
procedure TFmMonthFoot.FormCreate(Sender: TObject);
begin
IFmMain := Application.MainForm as IMainForm;
iClientID := IFmMain.IFmMainEx.ClientID;
LocSetting := IFmMain.IFmMainEx.GetLocSetting;
SetGressHint('正在连接数据分析服务器...');
SvrDataTend := IFmMain.GetConnection(Handle, '', 'SysDataTendSvr.SysDataTend');
SetGressHint('正在连接到公用信息服务器...');
SvrCommon:=IFmMain.GetConnection(Handle,'','CommonSvr.CommonRDM');
CdsFieldProPerty.RemoteServer:=SvrCommon;
cdsMonthDtlStock.RemoteServer := SvrDataTend;
cdsMonthArrearage.RemoteServer := SvrDataTend;
cdsMonthGathering.RemoteServer := SvrDataTend;
end;
procedure TFmMonthFoot.FormShow(Sender: TObject);
var sTableNames: string;
begin
PageCtrl.TabIndex := 0;
SetGridEhColor([dbgMonthDtlStock, dbgMonthArrearage, dbgMonthGathering]);
LoadFieldsLayOut(LocSetting^.FieldLayoutCfgFile, Name, [dbgMonthGathering,dbgMonthArrearage,dbgMonthDtlStock]);
SetGressHint('初始化本地环境...');
SysFieldXml(CdsFieldProPerty,sFieldProPerty,'TFmSelectGathering.Xml');
sTableNames:='MonthGathering';
SetFieldProperty(CdsFieldProPerty,cdsMonthGathering,sTableNames);
sTableNames:='MonthArrearage';
SetFieldProperty(CdsFieldProPerty,cdsMonthArrearage,sTableNames);
sTableNames:='MonthDatlStock';
SetFieldProperty(CdsFieldProPerty,cdsMonthDtlStock,sTableNames);
FreeGressForm;
end;
procedure TFmMonthFoot.BtnPopMenuClick(Sender: TObject);
var tp:TPoint;
begin
tp.X:=BtnPopMenu.Left;
tp.Y:=BtnPopMenu.Top+BtnPopMenu.Height+1;
tp:=ClientToScreen(tp);
TopPopmenu.Popup(tp.x,tp.Y);
end;
procedure TFmMonthFoot.ActTryoutMonthFootExecute(Sender: TObject);
var sInaptBills: String;
i, j, n: word;
k: Integer;
begin
DecodeDate(edFootMonth.Date, i, j, n);
k := i*100+j;
SvrDataTend.AppServer.TryoutMonthFoot(iClientID, k, sInaptBills);
cdsMonthDtlStock.Close;
cdsMonthDtlStock.Params[0].Value := k;
cdsMonthDtlStock.Open;
cdsMonthArrearage.Close;
cdsMonthArrearage.Params[0].Value := k;
cdsMonthArrearage.Open;
cdsMonthGathering.Close;
cdsMonthGathering.Params[0].Value := k;
cdsMonthGathering.Open;
if sInaptBills<>'' then
ShowMessage(sInaptBills);
end;
procedure TFmMonthFoot.ActViewFootRecExecute(Sender: TObject);
var i, j, n: word;
k: Integer;
begin
DecodeDate(edFootMonth.Date, i, j, n);
k := i*100+j;
cdsMonthDtlStock.Close;
cdsMonthDtlStock.Params[0].Value := k;
cdsMonthDtlStock.Open;
cdsMonthArrearage.Close;
cdsMonthArrearage.Params[0].Value := k;
cdsMonthArrearage.Open;
cdsMonthGathering.Close;
cdsMonthGathering.Params[0].Value := k;
cdsMonthGathering.Open;
end;
procedure TFmMonthFoot.ActFootExecute(Sender: TObject);
var i, j, n: word;
k, m: Integer;
sError: String;
begin
DecodeDate(edFootMonth.Date, i, j, n);
k := i*100+j;
m := cdsMonthDtlStock.Params[0].Value;
if k<>m then begin
Application.MessageBox('为了保障月结封帐的可靠性,应先核对该月份的月结记录(或进行月结试算)后再执行此操作!', '消息', MB_ICONINFORMATION);
Exit;
end;
if Application.MessageBox('"月结封帐"是一个非常重要且不可逆的操作,"解帐"只是返回上月的非常手段。'#13
+'系统并不能为您提供任何有关"解帐"操作所引的数据安全性担保。'#13#13'你确定准备就绪了吗?', '警告', MB_YESNO+MB_ICONWARNING)=IDNO then
Exit;
if not SvrDataTend.AppServer.MonthFoot(iClientID, k, sError) then begin
Application.MessageBox(PChar(sError), '"月结封帐"操作失败', MB_ICONERROR);
end;
end;
procedure TFmMonthFoot.ActUnFootExecute(Sender: TObject);
var i, j, n: word;
k: Integer;
sError: String;
begin
DecodeDate(edFootMonth.Date, i, j, n);
k := i*100+j;
if Application.MessageBox('"解帐"只是返回上月的非常手段,系统管理员不应将此权限授予普通用户。'#13
+'系统并不能为您提供任何有关"解帐"操作所引的数据安全性担保。'#13#13'你确定准备就绪了吗?', '警告', MB_YESNO+MB_ICONWARNING)=IDNO then
Exit;
if not SvrDataTend.AppServer.UndoMonthFoot(iClientID, k, sError) then begin
Application.MessageBox(PChar(sError), '"解帐"操作失败', MB_ICONERROR);
Exit;
end;
cdsMonthDtlStock.Refresh;
cdsMonthArrearage.Refresh;
cdsMonthGathering.Refresh;
end;
procedure TFmMonthFoot.ActPrintExecute(Sender: TObject);
begin
SelRepPrint(self.Name, [cdsMonthDtlStock, cdsMonthArrearage, cdsMonthGathering],
'库存月结数量;应付款月结;应收付款月结',ActDesignReport.Enabled);
end;
procedure TFmMonthFoot.ActFieldsLayOutExecute(Sender: TObject);
begin
SetFieldsLayOut(LocSetting^.FieldLayoutCfgFile, Name,
[dbgMonthDtlStock, dbgMonthArrearage, dbgMonthGathering],'库存月结数量;应付款月结;应收付款月结');
end;
procedure TFmMonthFoot.ActDataExportExecute(Sender: TObject);
begin
ExportData([cdsMonthDtlStock, cdsMonthArrearage, cdsMonthGathering],
'库存月结数量;应付款月结;应收付款月结', '');
end;
procedure TFmMonthFoot.ActExitExecute(Sender: TObject);
begin
Close;
end;
initialization
RegisterClass(TFmMonthFoot);
finalization
UnRegisterClass(TFmMonthFoot);
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -