FastReport做报表还是挺方便的,虽然自4.7.X后的汉化问题多多,但也不影响使用。这次由于客户使用一种类似于远程终端的技术来使用系统,导出报表时需要压缩数据以减少流量,因此在FR的导出功能中增加了两个事件以在导出时通知主程序进行处理。
首先在frxClass.pas中找到TfrxCustomExportFilter定义,在public下增加属性:
property OnStart: TNotifyEvent read FOnStart write FOnStart;
property OnFinish: TNotifyEvent read FOnFinish write FOnFinish;
按Shift+Ctrl+C作自动完成。
然后在ExportPack目录下修改 frxExportCSV.pas、frxExportODF.pas、frxExportText.pas、frxExportTXT.pas、frxExportXLS.pas、frxExportXML.pas等文件中找到各个导出类,在function Start: Boolean;函数后增加代码行:
if Assigned(OnStart) then OnStart(Self); //增加对OnStart事件的调用
//下面为原有的代码
if (FileName <> '') or Assigned(Stream) then
begin 。。。
在procedure Finish;函数最后增加:
if Assigned(OnFinish) then OnFinish(Self);//增加对OnFinish事件的调用。
最后,编译相关包(DPK),重新安装FR即可。