FastReport GroupHeader 合计 如何在fastreport中在groupHeader中添加汇总字段值呢? 在groupFooter中当然可以汇总,但是人家一定要在Header那显示,怎么弄好呢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 放在groupHeader肯定不能用fastreport中汇总功能了,用专门的数据源,事件中给groupHeader赋值。 实在不行,就每次只打印一页,打印前给报表中的MEMO赋值.self.frxReport1.LoadFromFile('reports\统计明细表.fr3');TfrxMemoView(frxReport1.FindObject('Memo13')).Memo.Text:=self.Edit1.Text;TfrxMemoView(frxReport1.FindObject('Memo15')).Memo.Text:=datetostr self.DateTimePicker5.Date);self.frxReport1.ShowReport; 想了想,你说的效果可以实现的。可以用主丛表实现,在你整理主表数据时,里面就准备好你个这汇总数,直接把它放在groupHeader就可以了。 我按照FastReport 中的Demo来做 在GroupHeader那里,拖进了一个Memo4进来,在OnBeforePrint事件中,写代码:procedure Memo4OnBeforePrint(Sender: TfrxComponent);begin if Engine.FinalPass then Memo4.Text := 'Sum: ' + Format('%2.2m',[Get(<Sales."Company">)]);end;在GroupFooter的OnBeforePrint的事件中,写代码:procedure Band7OnBeforePrint(Sender: TfrxComponent);begin Set(<Sales."Company">, Sum(<Sales."Qty">*<Sales."List Price">));end;我将程序与Memo中的那个例子仔细对照了属性、事件,没什么区别的,但是一统计出来,GroupHeader中的合计与分组不一致。意思是:第一分组GroupHeader中显示的合计是最后一个分组的合计,第二分组的GroupHeader中显示的合计是第一分组的合计值,第三分组的GroupHeader中显示的合计是第二分组的合计值,依此显示合计下去 有没有知道是怎么回事的呢? 你没明白我的意思吧!主从表打印主表:select 组别,sum(完成额) as 完成额合计 from mydate group by 组别 组别 完成额合计 第一组 300 第二组 400 第三组 500从表:sele * from mydata时间 组别 完成额2001.1 第一组 1002001.2 第一组 1002001.3 第二组 100.......这样组织好数据后,再用主丛表打印即可,可实现你的效果。组别:第一组 完成额合计:300//主数据日期 完成额//从数据2001.1 1002001.2 1002001.3 100 我明白你的意思,呵呵.如果用SQL来控制或程序来控制都是很简单的实现的.但是现在是程序不能变,SQL查询语句也不能动的情况下.意思是:数据集是select * from 表 where 字段=条件 查出来的数据。怎么通过fastreport来实现在分组头中显示各分组的合计。 哎,fastreport只是一个报表打印工具,虽然它的功能强大,但它毕竟只是delphi一个报表控件,不能指望它完成delphi所应该完成的数据处理工作。如果在前期处理很轻松就能完成的工作,没有必须再用fr来复杂化。我这样理解的,能在前期数据处理做的工作,决不用FR来做,要把FR完全的理解透、做到精通,可能得需要很长的时间,而且很少使用,一段时间后会忘得很快。我只用它来打印已经准备的数据,也用其它工具来打印和导出。 既然你看了 FastReport 中的 demo 中的 Totals in Group Head 的例子,我都说你应该会做的,只是你没有设置 "报表" 菜单中的“选项”菜单中的 "两遍过程" Uindexweb运行不了,请使用过的朋友帮帮忙。 MDI窗体显示被挡住了,怎么办 日期格式问题? INDYftp问题,怎么判断指定远程文件名是否为目录??在线等 decision cube问题 delphi 开发的客户端访问oracle数据库,如何打包 DGrid多选操作,寻求简单代码 SOS---一个刚用DELPHI做课程设计得大三学生得紧急求救!谁能救小妹一命,感激万分! 字符串格式化的问题;在线!!!!!!!!! 如何把access2000的数据库倒入sql7.0的数据库中? 为什么fastreport老提示EVariantTypeCastError ? POS打印机的英文字库字体
TfrxMemoView(frxReport1.FindObject('Memo13')).Memo.Text:=self.Edit1.Text;
TfrxMemoView(frxReport1.FindObject('Memo15')).Memo.Text:=datetostr self.DateTimePicker5.Date);
self.frxReport1.ShowReport;
可以用主丛表实现,在你整理主表数据时,里面就准备好你个这汇总数,直接把它放在groupHeader就可以了。
在GroupHeader那里,拖进了一个Memo4进来,在OnBeforePrint事件中,写代码:
procedure Memo4OnBeforePrint(Sender: TfrxComponent);
begin
if Engine.FinalPass then
Memo4.Text := 'Sum: ' + Format('%2.2m',[Get(<Sales."Company">)]);
end;在GroupFooter的OnBeforePrint的事件中,写代码:
procedure Band7OnBeforePrint(Sender: TfrxComponent);
begin
Set(<Sales."Company">, Sum(<Sales."Qty">*<Sales."List Price">));
end;我将程序与Memo中的那个例子仔细对照了属性、事件,没什么区别的,但是一统计出来,GroupHeader中的合计与分组不一致。意思是:第一分组GroupHeader中显示的合计是最后一个分组的合计,第二分组的GroupHeader中显示的合计是第一分组的合计值,第三分组的GroupHeader中显示的合计是第二分组的合计值,依此显示合计下去
有没有知道是怎么回事的呢?
主从表打印
主表:select 组别,sum(完成额) as 完成额合计 from mydate group by 组别
组别 完成额合计
第一组 300
第二组 400
第三组 500
从表:sele * from mydata
时间 组别 完成额
2001.1 第一组 100
2001.2 第一组 100
2001.3 第二组 100
.......这样组织好数据后,再用主丛表打印即可,可实现你的效果。
组别:第一组 完成额合计:300//主数据
日期 完成额//从数据
2001.1 100
2001.2 100
2001.3 100
我明白你的意思,呵呵.如果用SQL来控制或程序来控制都是很简单的实现的.但是现在是程序不能变,SQL查询语句也不能动的情况下.
意思是:数据集是select * from 表 where 字段=条件 查出来的数据。怎么通过fastreport来实现在分组头中显示各分组的合计。
既然你看了 FastReport 中的 demo 中的 Totals in Group Head 的例子,我都说你应该会做的,只是你没有设置 "报表" 菜单中的“选项”菜单中的 "两遍过程"