历史版本10 :多选下拉树实现不同级别之间的查询 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 描述编辑

数据库中有 3 个级别的数据,分别是地区,城市,以及客户名称,如果想实现同时选择查询出华东地区下所有公司以及北京的某个公司的数据,这个该怎么实现呢?效果如下:

222

2. 数据准备编辑

新建 3 个数据查询 ds1,ds2,ds3

ds1:SELECT * FROM 客户

ds2:SELECT * FROM 客户 where 地区 = '${layer1}'

ds3:SELECT * FROM 客户 where 城市 = '${layer2}',实际值为客户 ID

3. 报表主体设计编辑

报表主体设计如下图:

222

4. 参数界面设计编辑

4.1 新建模板参数

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

4.2 构建树

点击右侧上方的222按钮,可以讲参数全部添加到参数界面,然后将 tree 控件的类型选择为下拉树。

数据

选中下拉树控件,在控件属性面板中点击数据,开始构建树。

构建方式选择分层构建。

层次 1:选择 ds1,实际值和显示值都为地区。

层次 2:选择 ds2,实际值和显示值都为城市。

层次 3:选择 ds3,实际值为客户 ID,显示值为客户名称。

注:此处使用的是列序号选取实际值和显示值,亦可使用列名选取实际值和显示值。

222

4.3 属性设置

高级里面勾选多选,即使用多选下拉树,如果不勾选,则为单选下拉树,其他属性默认,属性的具体介绍请查看 下拉树控件

结果返回完整层次路径

如果勾选该选项,那么,下拉树返回的值为完整的层次路径,在使用时需要通过 treelayer 函数进行获取最底层的值,如果不勾选,则可以直接使用,这里先勾选上。

5. 过滤设置编辑

参数界面和报表主体都设计好了之后,由于我们使用的是模板参数,需要通过参数将参数界面和报表主体联系起来,

双击 A2 单元格,在过滤属性中设置,客户 ID 包含于 treelayer($tree),如下图:

222

注:公式 treelayer($tree) 的意思是返回参数 tree 中的值的最后一层数据。具体介绍请查看 treelayer 函数

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

222

注:如果在参数面板设置下拉树属性时没有勾选【结果返回完整层次路径】,无需使用 treelayer 函数,可直接用下拉数参数,返回值即为 tree 的值。


6. 保存和预览编辑

点击分页预览,则在 B/S 端看到上图的效果。

已完成的报表,可参见%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Primary\widgetReport\多选下拉树实现不同级别之间的查询.cpt

点击下载模板:多选下拉树实现不同级别之间的查询.cpt