reportbuild问题,伸出你的小手帮偶一个大忙。急! 300大元 (200分)

  • 主题发起人 主题发起人 iwalk
  • 开始时间 开始时间
I

iwalk

Unregistered / Unconfirmed
GUEST, unregistred user!
问题如下:
清单套打,每页打印10行(在detail band),要求:
1、首页有个标题(其它页不打标题,但必须空出标题区的位置,即第二页的明细打印位置和首页一样)。
末页页尾有一总计(其它页不打)。
每页尾部有一小计(该页明细金额之和)。
即使明细只有1条,其它区也不能占明细区的位置,因为表格是印好的(每页10行)。
2、在打印总计和小计时,同时打印出分类别总计及小计。即:若该清单中某字段的值
取值为1或0,分别打印为0的总计和为1的总计或小计。
 
召唤英雄
分数:300
 
多看它的例子.
 
to marknew:
谢谢!
“如果记录数不是10的倍数,必须插入一定的空记录,使其刚好为10的倍数”
——这样做好像有点麻烦,有无其它办法?
 
to marknew:
if YouSay=clear then
YouGet:=300分
 
这种程序是有点麻烦,要不你简单的用word画个表发给我,
我做过sample发给你,这样可能会更清晰一点,你要delphi5还是6的?
supermark@yesky.com不行的话就发到
zjhmailok@263.net 相信我会给一个满意的答案的。
 
To marknew:
分类别总计,比如:A类总计,B类总计,放在清单最后一页打印,应该在哪个事件中处理?
 
首先定义两个全局变量CntTypeA,CntTypeB
可以在任何一个明细字段ppDbText的onPrint事件里写:
if FieldbyName('类型').value=0 then
CntTypeA:=CntTypeA+FieldByName('金额').value
else
CntTypeB:=CntTypeB+FieldByName('金额').value;
在SummaryBand里加入两个ppLable,在它们的onGetText事件里分别写:
Text:=CntTypeA;
Text:=CntTypeB;
还有一种方法通过ppVaiable来做(参照如下)
对于页内数据的统计你可以参照以下两种方法:
在明细区域放一ppDbText4,设好要统计的字段。
方法一:
在Foot Band 放一ppVariable1关键属性设置如下:
Caltype :veTraversal
DataType:dtInteger
ResetType:vePageEnd//每页复位
然后在ppVariable1的onCalc写如下代码:
if ppDbtext4.text<>'' then
value:=value+strtoint(ppDbText4.Text);
另外一种方法,在FootBand放ppLabel1自己写代码:
var
Form1: TForm1;
SubTotal:integer;
implementation
procedure TForm1.ppLabel1GetText(Sender: TObject;
var Text: String);
begin
text:=inttostr(SubTotal);
end;

procedure TForm1.ppFooterBand1AfterPrint(Sender: TObject);
begin
SubTotal:=0;
//每页打印过后复位
end;

procedure TForm1.ppDBText4Print(Sender: TObject);
begin
//应该在onPrint事件中统计,而非onGetText事件,特此更正
if ppDbText4.Text<>'' then
SubTotal:=SubTotal+strtoint(ppDbText4.Text);
end;

Good luck to you.

 
这个很简单我来帮你吧。
我做过个人所得税报表的打印,情况同你非常类似,现简单的说一下:
1。每页打印10行,只要调标题和页尾的宽度就行了。(如果记录数不是10的倍数,必须插入
一定的空记录,使其刚好为10的倍数)
2。打印出分类别总计及小计时,要在那个字段的onGetText事件中对0和1和情况分别累加,
放在两全局变量里。
3。至于末页页尾有一总计当然得用summary band了。
每页尾部有一小计(该页明细金额之和)?有没有分组?如果没有的话,先在某个ppText
的onPrint里统计放到一全局变量,然后FootBand的AfterPrint事件中对此变量进行复位。
 
to marknew
我用的是FastReport中文版,请问如何解决?[:)]
 
不好意思,我没用过FastReport,但我想可以按我说的思路去做的。
 
接受答案了.
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
867
DelphiTeacher的专栏
D
D
回复
0
查看
836
DelphiTeacher的专栏
D
D
回复
0
查看
785
DelphiTeacher的专栏
D
后退
顶部