标题:
用父子关系的树状结构数据集作报表
[打印本页]
作者:
three
时间:
2010-4-21 17:12
标题:
用父子关系的树状结构数据集作报表
我们先来看一张报表,如下所示:
[attach]218[/attach](图1)
这张报表没看上去,没什么特别,但问题是所用的数据很特别,来源如下两张数据库表:
[attach]208[/attach] (图2) [attach]209[/attach](图3)
(图2)这是一个有id和父id字段的数据库表, 用来描述一种有层次关系的数据。(图3)是表示每个叶节点的数据(本例中的西湖区,江东区等),
这时候我们想做出如(图1)所示报表效果,在杰表中该如何实现?
我们按以下步骤来进行:
1
:新建空白报表
2
:添加数据集
[attach]208[/attach]
图(
4
)
这张表展示的是部门的数据,
pid
是指部门的父
ip
例如
西湖区的上一级就为杭州市
3
:选中数据集
tree
-添加视图
-
树节点
[attach]211[/attach]
图(
4
)
父节点字段选中
pid
,根
id
值
可以看图(
2
)中部门的值为
0
因为是字符型的所以用引号
[attach]210[/attach]
图(
5
)
4
:选中刚创建好的树节点
mytree
右键
添加数据集(明细表)
[attach]209[/attach]
5
:拖动
mytree
到报表设计区
[attach]212[/attach]
我们现在要改动表格来达到我们需要的样式
[attach]213[/attach]
[attach]214[/attach]
在上图中可以看到修改后的表格单元格中的内容比较多。下面我们一一进行解释
$.isDetail()?"":repeat("
",$.level-1)+$.name
这里的
$.isDetail()?"":repeat("
",$.level-1)
表示如果是明细数据那么就按照数据的级别减一
(l
例如西湖区的级别是
2
那么显示西湖区的时候就在西湖区前面加一空格
)
替换成空格
+
$.name
名称字段
6
:下面进行其他的设置
[attach]215[/attach]
点击第二行的行板,然后选中标签中的
RowPanel
点击打印样式-可见性-是否可见-编辑
!$.isDetail()
表示当不等于明细数据的时候显示
[attach]216[/attach]
点击第三行的行板,选中标签中的
RowPanel
重复以上的步骤。在公式定义中写上
$.isDetail()
表示当等于明细数据的时候显示
7
:点击行板-选中标签-打印样式-可见性-是否可见
[attach]217[/attach]
编辑
$.level>0
当级别小于
0
的时候不显示(从图
2
中可以看到此示例是不显示名称为部门的数据)
至此可得如图(1)所示的报表效果。
[
本帖最后由 three 于 2010-4-22 10:34 编辑
]
欢迎光临 杰表技术论坛 (http://bbs.jatools.com/)
Powered by Discuz! 6.1.0