水晶报表分页汇总

水晶报表分页汇总
建三个公式字段,第一个(公式1)输入下面的公式:
whileprintingrecords;
global numbervar ptotal;
ptotal:=0;
第二个(公式2)输入下面的公式:
whileprintingrecords;
global numbervar ptotal;
ptotal := ptotal + [要汇总的字段];
如果要汇总的字段不是数字,就用tonumber()函数转换;
第三个(公式3)输入下面的公式:
whileprintingrecords;
global numbervar ptotal;
把公式1放在页眉,公式2放在详细资料,并隐藏公式1和公式2;把公式3放在页脚,格式公式3,设置为你要显示的格式。这样就行了。
 

在论坛上经常会看到水晶报表分页的问题,这个很好解决。
但是自动插入空白行的问题却一直没有很好的答案,
经过研究找到一个变通的办法来实现了。

'分页
在详细资料上点格式化节,在后面页新建页打勾
公式中输入:
if onlastrecord then
   FORMULA = FALSE
else
   if RecordNumber mod 5 =0 then
      FORMULA = TRUE
   else
      FORMULA = FALSE
   end if
end if
'(BASIC 语法)
---------------------------------------------------------------------

最后页不足,用空行填充:
新增一个空白详细资料行,格式化此节,在抑制显示(无深化)打勾
公式中输入:
if not onlastrecord  then
    FORMULA = TRUE
else
   if (RecordNumber mod 5 <= 1) then  '第一个,1
       FORMULA = TRUE  
   else
       FORMULA = FALSE 
   end if
end if
'(BASIC 语法)

...接着第二个[ 新增一个空白详细资料行,格式化此节,在抑制显示(无深化)打勾 ]:

公式中输入:
if not onlastrecord  then
    FORMULA = TRUE
else
   if (RecordNumber mod 5 <= 2) then  '第二个,2
       FORMULA = TRUE  
   else
       FORMULA = FALSE 
   end if
end if

...接着第三个[ 新增一个空白详细资料行,格式化此节,在抑制显示(无深化)打勾 ]:

公式中输入:
if not onlastrecord  then
    FORMULA = TRUE
else
   if (RecordNumber mod 5 <= 3) then  '第三个,3
       FORMULA = TRUE  
   else
       FORMULA = FALSE 
   end if
end if

在论坛上经常会看到水晶报表分页的问题,这个很好解决。
但是自动插入空白行的问题却一直没有很好的答案,
经过研究找到一个变通的办法来实现了。

'分页
在详细资料上点格式化节,在后面页新建页打勾
公式中输入:
if onlastrecord then
   FORMULA = FALSE
else
   if RecordNumber mod 5 =0 then
      FORMULA = TRUE
   else
      FORMULA = FALSE
   end if
end if
'(BASIC 语法)
---------------------------------------------------------------------

最后页不足,用空行填充:
新增一个空白详细资料行,格式化此节,在抑制显示(无深化)打勾
公式中输入:
if not onlastrecord  then
    FORMULA = TRUE
else
   if (RecordNumber mod 5 <= 1) then  '第一个,1
       FORMULA = TRUE  
   else
       FORMULA = FALSE 
   end if
end if
'(BASIC 语法)

...接着第二个[ 新增一个空白详细资料行,格式化此节,在抑制显示(无深化)打勾 ]:

公式中输入:
if not onlastrecord  then
    FORMULA = TRUE
else
   if (RecordNumber mod 5 <= 2) then  '第二个,2
       FORMULA = TRUE  
   else
       FORMULA = FALSE 
   end if
end if

...接着第三个[ 新增一个空白详细资料行,格式化此节,在抑制显示(无深化)打勾 ]:

公式中输入:
if not onlastrecord  then
    FORMULA = TRUE
else
   if (RecordNumber mod 5 <= 3) then  '第三个,3
       FORMULA = TRUE  
   else
       FORMULA = FALSE 
   end if
end if

...(同理第四个,即最后5-1个)

(注:此方法适用于行数较少,上面是为5行为例,不过不觉得麻烦,对行数较多也可以用)...(同理第四个,即最后5-1个)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值