fastreport报表问题(请教高手!) ( 积分: 100 )

W

wangmao

Unregistered / Unconfirmed
GUEST, unregistred user!
因为我现在才用fastreprot,不是很熟.我想在报表里面打印记录,如果记录8条,每页只能打5条,每页有合计,并有合计的大写金额转换,不足5条的页要打印空行,请问在fastreport中怎么实现
 
因为我现在才用fastreprot,不是很熟.我想在报表里面打印记录,如果记录8条,每页只能打5条,每页有合计,并有合计的大写金额转换,不足5条的页要打印空行,请问在fastreport中怎么实现
 
加个childband
在它的下一个band 的
OnBeforePrint事件 for i:=0 to lindo
begin
showband(child);
end
合计 report summary band
 
放主项数据Master Data Band 放好你的数据。
MasterDataVand下 放覆盖OverFlow沾满整页,画四行表格即可,让MasterData的数据打印是的表格下线和这里的最上一行表格上线重合
最下面当然放页角了。这里的求和要求用页合计的话,用一个自定义的函数,比如叫 pagesum 把Sum作为参数传入。
自定义函数在frReport1UserFunction里面处理就行了。有Demo。
好象是这样 if name='pagesum' then
处理。
 
如果在将合计report summary band 里,则只有在最后才能得到所有项的合计,得不到我想要的结果,我想要的结果是,因为有8条记录,前5条作一个合计,并将合计转换为大写金额,后面3条记录也作一个合计,并将合计转换为大写,而且后面3条不足一页,后面两行打印空行,如果用函数来传值,如果是一页到好办,不是一页的时候.怎么样才能将不同的值传给不同页的合计
 
設計紙張的大小或設計顯示字段的高度都可以解決你的問題。
 
去我的主页下载使用手册看看吧:
www.zptang.ys168.com
 
bbscom:设计纸张大小或显示字段的高度,可以得到每页数据的合平,但不能将每页的数据(钱转换为人民币),还有最后页如果记录不足5条,记录空行不能实现.
唐先生吧:你的主页上的资料不能下载
 
我说的方法你快试试吧!100%能实现你的要求。
 
jxyghm;您好!
你说的方法我试过,但是传递过去的值怎么样才能使它们正确,因为我在getvalue 事件中编程后,在预览时,每一页的值都是一样的,还有你说"放覆盖OverFlow沾满整页,画四行表格即可,让MasterData的数据打印是的表格下线和这里的最上一行表格上线重合
最下面当然放页角了。"是编程实现吗,另外,我打印的情况是,不用表格线,因为纸张是设计好的.
 
四行表格不要线可以,覆盖占整夜不用编程。这些是在设计器里实现的。
getValue和这些东西不影响,另外
userFunction里面
if lowercase(name)='pagesum' then
begin
fieldval := frParser.cacl(p1);//(p1就是传入的field,得到它的值主要frparser解析)
val := 返回值(处理fieldval,返回大写金额)
end;
pagesum在你用的时候虽然是Fastreport本身没有的但是,使用的表达在Memo中的格式和Fastreport自带的是一样的,当Fastreport找不到所用的函数时会自动调用UserFunction.你说的GetValue,不知道是计算哪个值。
 
jxyghm:您好!
将金额转换为大写,我是在frxreport中加入一个自定义函数来实现的,现在还有空行没有实现,用showband(child1)的方法,showband中fastreport中不能识别,不知道你们用的是什么版本(我用的是3点多的),还有你说的overflow在我的版本里,应该是overlay吧,但是怎么样来设置它,把它放在页面上,如果占满整页,其它的就不能放了
 
OverLay放在MasterDataBand下面,和上面的东西一起占满页面部分,它的下面再放Footer页角.我用的2.57
 
自由界面和报表的完美解决方案!
http://www.anylib.com
 
你们好!
我用了overlay,但是不能解决空行的问题,
因为我的打印格试如下:
第一页
用户名 编号
费用名称1 金额1
费用名称2 金额2
费用名称3 金额3
费用名称4 金额4
费用名称5 金额5
合计金额 (数值)
大写合计
时间
第二页
用户名 编号
费用名称1 金额1
费用名称2 金额2

合计金额 (数值)
大写合计
时间
我是在栏首中加入"用户名","编号"
masterdata1中没有设置任何字段,
在detaildata1中加入"费用名称","费用金额"
在栏尾加入合计(小写,大写)及时间等
但是就是不能实现
http://www.anylib.com 上好像没有关于fastreport使用及例子
 
如果用户 名称 不是数据库中的可变值,只做表头那
用PageHeader放用户名 编号,MasterData主项数据放 费用名称 金额
下面放Overlay
下面放PageFooter
如果 用户 名称 和 费用金额是主从关系,用MasterData放 用户 明称,右健选择Start new page,Detail 放 费用金额 放Overlay
或者用子报表Subreport也放在MasterData上 放OverLay
 
如果存在主从关系没有用主从表用了一个查询,我上面所说的Master->detail换成用分组Groupheader。子报表不行,说错了。
 
jxyghm:您好!
你说的用分组我也试过,但分组比如是按编号,分页的情况是以编号来分页的而不是以5条记录来分页
 
jxyghm:您好!
你说的用分组我也试过,但分组比如是按编号,分页的情况是以编号来分页的而不是以5条记录来分页
 
奥!那是我不明白你的意思。如果只是按5条一页,Pageheader、PageFooter足够大就行了,调整调整位置。而且也不用Overlay,OverLay实际上相当于-背景,象放在report上的图片一样,对于数据没什么用。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
顶部