200 分 求教 RastReport报表设计问题!!!

xiven 2010-08-02 05:27:08
做一个资产打印的报表,由于资产打印按资产分类有多种打印模式,所以在批量打印时,需要分别调用改分类对应的模板,如果有N条记录,就需要做N个报表,把报表复合(frxReport1.PrepareReport(False);)再一次性打印出来(frxReport1.ShowPreparedReport;)。 每种报表模板打印格式不对,但是对应的数据源是一样的(cdsData)的,所以每次加载一个模板后就要先过滤cdsData,后又要恢复,这样搞效率很慢,打印N条记录,就要过滤cdsData N次。 应该怎么修改设计???
我的代码:
var
cdsData:TClientDataSet;
frxReport1: TfrxReport;
frxDBDataset1: TfrxDBDataset;

frxDBDataset1.dataset:=cdsData;
try
frxReport1.LoadFromFile(StreamList.Values[ModeCode]);
cdsData.Filtered:=False;
cdsData.Filter:='ZCKB_ZCCODE='+QuotedStr(sZcCode);//过滤
cdsData.Filtered:=True;
frxReport1.PrepareReport(False);
finally
cdsData.Filtered:=False;
cdsData.Filter:=sFilter;//恢复过滤
cdsData.Filtered:=True;
cdsData.Locate('ZCKB_ZCCODE',sZcCode,[loCaseInsensitive]);
end;

另外, 复合报表是不是有最大复合数设置??为何我复合多张报表(PrepareReport(False);)后,frxReport1.ShowPreparedReport;时只打印了一部分出来?

只能发100分,怎么追加分? 求正解 ,谢谢
...全文
122 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
火龙岛主 2010-08-05
  • 打赏
  • 举报
回复
感觉方法不对,反复过滤可能要慢的。
先标记一下,还无法从楼主给的现有条件来诊断问题的所在,除了过滤的问题。
xiven 2010-08-02
  • 打赏
  • 举报
回复
发现一个方法 frxDBDataset1的RangeEnd和RangeBegin:=reCurrent.就只打印cdsData当前记录了?

后面的话题呢 ----另外, 复合报表是不是有最大复合数设置??为何我复合多张报表(PrepareReport(False);)后,frxReport1.ShowPreparedReport;时只打印了一部分出来?
kampan 2010-08-02
  • 打赏
  • 举报
回复
标记一下,下班先,改天上来看看!

16,742

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧