阿泰的软件实用主义

水晶报表/BOE

博客园 首页 新随笔 联系 订阅 管理
  176 Posts :: 9 Stories :: 2046 Comments :: 38 Trackbacks


在我以前的一篇文章中,我错误的使用了运行时总计的形式来实现每页的汇总
因为当时比较粗心,没有注意到使用该方式其实是实现了当前页之前的所有页面数据的汇总
后来也一直没有找到合适的方法

最近在做一个应用的时候,突然意识到问题的所在
主要是我们太局限于用一个公式来解决所有的问题。
其实我们可以使用多个公式配合来解决。

思路如下(Crystal语法):
1:用一个变量mySum来累计页面数据 “订单.订单金额”
公式@CurrentSum,放在详细资料节需要进行汇总的字段的位置

WhilePrintingRecords; 
CurrencyVar mySum; 
mySum:
=mySum + {订单.订单金额}; 

如果不需要显示,抑制显示即可

2: 在每页的页脚获取到这个变量的值(也就是该页最后一个Sum值),当然这个时候后一个mySum是前面所有数据的和,
  也就是仍然是我以前犯的错误症状 
  @CurrentPageSum 

WhilePrintingRecords; 
CurrencyVar mySum; 

3:关键所在,在每页的页眉或者页脚的位置将我们的变量重置@ResetPageSum,保证在每页的开始它都是从0开始累计的

WhilePrintingRecords; 
CurrencyVar mySum :
= 0

 

在这里对两个基本概念进行说明
WhilePrintingRecords:
这里的Printing不是指打印机打印的时候,而是水晶报表在获取完数据后将数据显示在报表上的过程

WhilePrintingRecords 强制公式将在程序打印数据库记录的同时进行计算。 
该函数也可以强制不含数据库字段和组字段的公式在打印记录的同时而不是在读取记录之前进行处理。它还强制含有数据库字段的公式在打印记录而不是在读取记录的同时进行处理。 


变量的作用域问题 :
前一篇文章里我对共享变量进行了说明,而此处则使用的是全局变量(Global)的特性
同一名称的全局变量,在报表(一个报表,不含子报表)中使用同样的内存空间,可以为报表中所有的公式使用
默认情况下,可以省略Global关键字,所以在前面的公式中没有出现这个关键字

具体请参见操作录像
http://files.cnblogs.com/babyt/CRMov20050526_1.rar

使用的是水晶报表9.2中文企业版
=========================
阿泰 20050526

posted on 2005-05-26 23:42 阿泰 阅读(2501) 评论(10)  编辑 收藏 网摘 所属分类: CR我的原创

Feedback

老大,你录像里的水晶报表是什么版本的,能给个下载连接的地址吗。
还有就是谢谢你的教程,非常清楚。依样画葫芦中。。。
  回复  引用    

#2楼 [楼主] 2005-05-27 13:38 阿泰      
我使用的是水晶报表9.2中文企业版
是公司里买的正版,没看见哪里有得下。:)
  回复  引用  查看    

#3楼  2005-07-04 16:39 caphen [未注册用户]
阿泰,你好,我按照你的方法进行页汇总,可是出现一个问题:页汇总数据是在每页的页脚出现,如果该页数据行比较少,那么就会出现一大段的空白,不知道怎么解决?
  回复  引用    

#4楼  2005-08-20 10:52 DUX++ [未注册用户]
http://community.csdn.net/Expert/topic/4219/4219967.xml?temp=.1193506

帮帮忙
  回复  引用    

#5楼  2006-08-18 15:46 sdf [未注册用户]
"阿泰,你好,我按照你的方法进行页汇总,可是出现一个问题:页汇总数据是在每页的页脚出现,如果该页数据行比较少,那么就会出现一大段的空白,不知道怎么解决? "

我也遇到同样的问题,怎样解决啊?
  回复  引用    

能看下,我照著你的這樣寫,有些頁數據不對,有些有是對。怎麽辦呢?
  回复  引用    

#7楼  2008-05-26 13:58 jsxhxxp [未注册用户]
阿泰你好,
我现在设计一水晶报表,水晶报表中有一详细资料,和两个组,分别为字段1和字段2,设计初步显示结果如下:
字段1 字段2 名称 数量
1 a a1 2
1 a a2 3
1 a a2 4
1 a a2 2
2 b b1 5
2 b b1 6
2 b b2 4
2 b b2 5
现在我想让它显示的格式为:
字段1 字段2 名称 数量
1 a a1 2
1 a a2 9
2 b b1 11
2 b b2 9
在组字段1和组字段2的前提下对名称相同的数量进行汇总,该如何实现?
  回复  引用    

#8楼  2008-05-26 13:59 jsxhxxp [未注册用户]
下面是我的提问:
http://topic.csdn.net/u/20080526/13/dca9a24f-1316-47a1-abea-f52e9c36c460.html
  回复  引用    

#9楼 [楼主] 2008-05-26 22:58 阿泰      
@jsxhxxp

水晶报表中,你只要再按“名称”加一层组就可以了

直接用语句实现更方便些

Select 字段1,字段2,名称,Sum(数量) From 表 Group By 字段1,字段2,名称
  回复  引用  查看    

#10楼  2008-07-20 20:43 梵蒂冈 [未注册用户]
很好啊,赞誉
  回复  引用    





标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2006-11-09 23:49 编辑过
Google站内搜索


China-pub 计算机图书网上专卖店!6.5万品种 2-8折!
近千种 9-95 新二手计算图书火热销售中!

相关文章:

相关链接: