多语言展示
当前在线:1466今日阅读:26今日分享:39

报表生成器中多选下拉树实现不同级别之间的查询

数据库中有3个级别的数据,分别是地区,城市,以及客户名称,如果想实现同时选择查询出华以的数据,这个该怎么实现呢?下面通过报表生成器FineReport来简单介绍一下。
工具/原料
1

报表生成器FineReport7.1.1

2

大小:148.2M 适用平台:windows/linux

方法/步骤
1

数据准备新建3个数据查询ds1,ds2,ds3ds1:SELECT * FROM [客户]。ds2:SELECT * FROM [客户] where 地区 = '${layer1}'。ds3:SELECT * FROM [客户] where 城市 = '${layer2}',实际值为客户ID。

2

报表主体设计报表主体设计如下图:

3

新建模板参数切换到参数界面,点击菜单栏中的模板>模板参数,点击添加按钮,新建模板参数tree。

4

构建树点击右侧下方的的按钮,然后将tree控件的类型选择为下拉树。数据选中下拉树控件,在控件属性面板中点击数据,开始构建树。构建方式选择分层构建。层次1:选择ds1,实际值和显示值都为地区。层次2:选择ds2,实际值和显示值都为城市。层次3:选择ds3,实际值为客户ID,显示值为客户名称。

5

属性设置在高级里面勾选多选,即使用多选下拉树,如果不勾选,则为单选下拉树,其他属性默认。结果返回完整层次路径如果勾选该选项,那么,下拉树返回的值为完整的层次路径,在使用时需要通过treelayer函数进行获取最底层的值,如果不勾选,则可以直接使用,这里先勾选上。

6

过滤设置参数界面和报表主体都设计好了之后,由于我们使用的是模板参数,需要通过参数将参数界面和报表主体联系起来,双击A2单元格,在过滤属性中设置,客户ID包含于treelayer($tree),如下图:注:公式treelayer($tree)的意思是返回参数tree中的值的最后一层数据。

7

如果在参数面板设置下拉树属性时没有勾选结果返回完整层次路径,那么其过滤设置如下图:

推荐信息