下拉树实现不同级别之间的多样选择,多选下拉树
1. 问题描述
数据库中有3个级别的数据,分别是地区,城市,以及客户名称,如果想实现同时选择查询出华东地区下所有公司以及北京的某个公司的数据,这个该怎么实现呢?效果如下:
2. 数据准备
新建3个数据查询ds1,ds2,ds3
ds1:SELECT * FROM [客户]。
ds2:SELECT * FROM [客户] where 地区 = '${layer1}'。
ds3:SELECT * FROM [客户] where 城市 = '${layer2}',实际值为客户ID。
3. 报表主体设计
报表主体设计如下图:
4. 参数界面设计
4.1 新建模板参数
切换到参数界面,点击菜单栏中的模板>模板参数,点击添加按钮,新建模板参数tree。
4.2 构建树
点击右侧下方的的
按钮,然后将tree控件的类型选择为下拉树。 选中下拉树控件,在控件属性面板中点击数据,开始构建树。
构建方式选择分层构建。
层次1:选择ds1,实际值和显示值都为地区。
层次2:选择ds2,实际值和显示值都为城市。
层次3:选择ds3,实际值为客户ID,显示值为客户名称。
在高级里面勾选多选,即使用多选下拉树,如果不勾选,则为单选下拉树,其他属性默认,属性的具体介绍请查看下拉树控件。 5. 过滤设置
参数界面和报表主体都设计好了之后,由于我们使用的是模板参数,需要通过参数将参数界面和报表主体联系起来,
双击A2单元格,在过滤属性中设置,客户ID包含于treelayer($tree),如下图:
注:公式treelayer($tree)的意思是返回参数tree中的值的最后一层数据。具体介绍请查看treelayer函数。 6. 保存和预览
点击分页预览,则在BS端看到上图的效果,已完成的报表,可参见%FR%\WebReport\WEB-INF\reportlets\doc\Primary\widgetReport\tree.cpt。
返回顶部