回 帖 发 新 帖 刷新版面

主题:[原创]线性报表教程—重新取数

重新取数,指的是数据存在包含与被包含关系的情况下,报表取数的一种操作。例如国家,省份和城市之间的关系,这三者有包含关系,但是又同处在一列当中。例如下面
这种数据的存储类型,即处在同一个列的数据之间存在包含与被包含关系。
[img]http://photo01.yeskee.com/memberphoto/1034/4135987/997129587_1.png[/img]
      而我们要实现的报表样式则是如下图所示:
[img]http://photo01.yeskee.com/memberphoto/1034/4135987/988815015_1.png[/img]
      实现这张报表的步骤如下:
   1. 首先新建一张线性报表。
   2. 新建私有数据表命名为 ds1,如下图所示:
[img]http://photo01.yeskee.com/memberphoto/1034/4135987/892456844_1.png[/img]
   3. 拖拽 ds1 中的 id 字段到A2单元格。双击该单元格,打开绑定数据列对话框,将类型设置为扩展,数据为分组,扩展方向为从上到下。在条件区域添加一个条件为“preid 等于 ' '”。
   4. 拖拽 ds1 中的 id 字段到A3单元格。双击该单元格,打开绑定数据列对话框,将类型设置为扩展,数据为分组,扩展方向为从上到下。将其左父格自定义为A2单元格。在条件区域添加一个条件为“preid 等于 'A2'”。点击确定返回设计界面,并给A3单元格添加一个背景色。
   5. 点击预览按钮,可以看到效果图如下图所示。但是我们发现A3单元格中,并没有我们想要的数据显示出来。这是因为,A3单元格中有一个条件 preid 等于 'A2',而我们在
A2单元格中定义了一个条件 preid 等于 ' '。所以A3单元格在取数的时候,是继承了A2中的所有条件。这样在实际执行的时候,A3当中取数就有两个条件 preid 等于 ''&&preid 等于 'A2',因此在两个条件共同的限制下,在我们的数据当中并没有符合条件的数据,因此取出的数据为空。
[img]http://photo01.yeskee.com/memberphoto/1034/4135987/1632874004_1.png[/img]
   6. 双击A3单元格,在绑定数据列对话框中,选中重新取数对话框。如下图所示:
[img]http://photo01.yeskee.com/memberphoto/1034/4135987/830809770_1.png[/img]
   7. 点击确定返回设计界面,单击预览按钮,看到效果图,如下所示:
[img]http://photo01.yeskee.com/memberphoto/1034/4135987/829977544_1.png[/img]
   8. 拖拽 ds1 中的 id 字段到A4单元格。双击该单元格,打开绑定数据列对话框,将类型设置为扩展,数据为分组,扩展方向为从上到下。将其左父格自定义为A3单元格。在条件区域添加一个条件为“preid 等于 'A3'”。并且,同理,要选中重新取数复选框。点击确定返回设计界面,并给A4单元格添加一个背景色。预览,可以看到效果如下图所示:
[img]http://photo01.yeskee.com/memberphoto/1034/4135987/595215696_1.png[/img]
   9. 拖拽 ds1 中的 sales 字段到B4单元格。双击该单元格,打开绑定数据列对话框,将类型设置为不扩展,数据为汇总|Sum。
   10. 拖拽 ds1 中的 outstanding 字段到C4单元格。双击该单元格,打开绑定数据列对话框,将类型设置为不扩展,数据为汇总|Sum。
   11. 在B2,B3单元格分别写入公式“=sum(B4)”。在C2,C3单元格中分别写入公式“=sum(C4)”。
   12. 预览,即可得到我们期望的报表样式。


更多内容请登陆:www.FineReport.com

回复列表 (共1个回复)

沙发

已阅。这个产品跟你们很类似哦:[url= http://blog.csdn.net/for_report/category/247358.aspx]java报表制作[/url]

我来回复

您尚未登录,请登录后再回复。点此登录或注册