首页| 水晶报表 | 润乾报表 | 快逸报表 | Birt报表 | 其他产品 | 报表教程 | 产品评述 | 技术文章 | 其他资料
>> 首页 -> 报表教程 ->一个复杂的例子
一个复杂的例子

  我们看一下下面的报表,10.4.4.raq                      ( 下载

  因为有“客户”,所以这个表要更复杂。

  E2格中表达式是求去年同期的值:=d2[b2:-1,c2]即指年上移一行,季度不变时相应的d2的值。

  在f2格,我们可以先输入:=d2[-1]做个尝试。

  一个客户的第一行使用了上一个客户的最后一行。

  为了处理每个客户的第一行,避免这种情况,需使用&运算符和if函数:=if(&b2=1 and &c2=1,"",d2[-1])。我们在10.4.2节讲&的用法时,用&运算符求了这个例子中单元格的位置,如下图所示,我们可以看到,每个客户的第一行具备两个条件,也就是在以年和季度为主格的坐标层次中的位置都是1。所以,当&b2=1且c2=1时,每个客户的第一行的上期值显示""。

  关于层次座标,在这个“快速入门”教程中,就讲这些。实际层次座标是比较复杂的,功能也非常强大,可以完成许多非常复杂的报表。我们将另外编写一本《由实例精通层次座标》,来深入讲解层次座标。

  练习 10.41 用一些实际的业务数据完成比上期和同期比,比如下表。         ( 下载

  提示: 比上期不能像同期比那样,直接用=d2/g2计算就行了,因为求上期的值时用了if函数来特别处理每个客户的第一行,所以求比上期同样还要用if函数,避免一个客户的第一行的值与上一个客户的最后一行的值相比。

  练习10.42 我们可以注意到,我们在使用了位移坐标后,很少再使用{}。如下例,因为像这样选出单元格是一个一个选出的,而不是选出格集。当然我们也可以这样用c2[-1]{}。

  我们也可以在一个一个选出单元格时加上过滤条件,如=if(&B2=1 and &C2=1,"",D2[-1] {D2[1]>$d2} ),选出大于本期的上期值;=d2[b2:-1,c2] {@value>$d2} ,选出大于本期的去年同期,在这里,选出的值其实已经是确定的了,所以可以用@value,只是增加了过滤条件罢了。

  练习 10.43 利用&运算符可以实现动态多级序号,如下图所示,一级序号是大写的一、二,二级序号是加了圆括号的大写一二,三级序号是小写1、2加上顿号。怎样实现呢?        ( 下载

  我们可以用以前的数据作这样一个相似的报表:

  提示:

  ①a1、a2、a3的左主格应依次设为b1、b2、b3;&b1是求当前单元格在以b1为主格的坐标层次中的位置。

  ②chn是个将整数转换为汉字大写的函数,详见函数帮助;

  ③b2的左主格为b1,b3的左主格为b2,因为它们都是纵向扩展的;

  至此,你已经掌握了润乾报表的?基本的操作和概念,可以完成大多数常见的报表了。如果您想进一步了解更加高级的功能,更加精通润乾报表,实现各种复杂报表,可以参见润乾报表使用帮助、视频教程,或者向我们的技术支持咨询。

                  感谢您对润乾报表的关注!

 

 相关内容:
 
 
 
 

Copy Right 2005, 版权所有 Report99.com