FastReport4打印固定行(已经可以,有演示代码),但页小计有问题,请帮忙解决一下 ( 积分: 0 )

  • 主题发起人 主题发起人 hf20
  • 开始时间 开始时间
H

hf20

Unregistered / Unconfirmed
GUEST, unregistred user!
放以下四个组件(FastReport4.0)
ColumnHeader1(用来显示标题的),
MasterData1(数据集dataSet1,有OnBeforePrint事件),
Child1(补空行用的,里面放空的Memo框跟MasterData1中的Memo对齐),
ColumnFooter1(用来显示页合计之类用的,有OnBeforePrint事件)
注:数据集dataSet1是通过:报表-->数据... 中选进来的。
//************************************代码部分**********************************
var
maxline: integer;//每页行数
f: boolean;
procedure MasterData1OnBeforePrint(Sender: TfrxComponent);
var
lineNo1: integer;
begin
lineNo1:= (<line> -1) mod maxline;//
if (lineNo1 = 0) and (<line> <> 1) then
begin
f := false;
Engine.NewPage;
f := true;
end;
end;

procedure ColumnFooter1OnBeforePrint(Sender: TfrxComponent);
var
lineNo2: integer;
begin
lineNo2:= <line> mod maxline;
while f and (lineNo2 < maxline)do
begin
lineNo2 := lineNo2 + 1;
Engine.ShowBand(Child1);
end;

end;

begin
maxline :=6;
//每页行数
f := true;
end.

//************************************代码部分**********************************
以上代码可以实现:每页打印固定行,如果未页数小maxline,则补足到maxline行。
现有一个问题:就是页合计问题,如:数据集DataSet1,其中有一个money字段,现在要进行页小计,那么在ColumnFooter1中放一个Memo框,其计算公式为:[SUM(<DataSet1.&quot;money&quot;>,MasterData1)],如果当前页没有进行补空行,那么页小计是对的;如果有进行补空行的话,那么页小计显示为“空”。即:有进行补空行的页,页小计就不对;没进行补空行的页,页小计是对的。
 
自己顶一下
 
有人提示一下吗?[:(][:(]
 
对于这种固定行数的报表,我是用FR的GETVALUE+USERDATASET实现的,对于合计的计算也是在主程序里实现
 
to redchild
感谢提示。
不过我的设计是这样的:程序只提供数据集(DataSet)(一般是二个数据集,一个是单据主体数据集,数据主要显示在ColumnHeader1,ColumnFooter1中;一个是明细数据集:主要显示在MasterData1。&quot;主数据集&quot;跟&quot;明细数据集&quot;可以不要有关联, &quot;主数据集&quot;只有一条数据,&quot;明细数据集&quot;有条数据,这样基本上可以满足大多数的单据类型打印了),其它功能由报表实现。
如果实在不行,只能在FR代码中来实现计算了,不过感觉很不通用[:(][:(][:(];为什么执行补空行后(Engine.ShowBand(Child1))后,ColumnFooter1中的计算就不行了呢?
 
不行就在PageHeader 中加个变量 JinE := 0;
然后每个MasterData 中 JinE := JinE + [FieldValue];
在Summery Band 中 引用 [JinE],就可以了吧!
 
我也遇到类似问题,请高手指点!
 
顶一把·····
 
to xhr:
哈哈,你也还没有解决啊!都已经几个月了[:(][:(],不过我也还没有解决,因为最近都没有时间去理这个问题了,只能等其它的事情做完了,再回头来解决了。
 
用Grid++Report不用编程就可以做到,参考例子模板“2g.页分组.grf”与“4e.追加空白行.grf”
 
自己寫參數進去,再根據總記錄應該就可以判斷了吧
 
TO hf20:是啊,我现在直接对DATASET添加数据行的办法来解决,没办法···
 
后退
顶部