多选下拉树实现不同级别之间的查询

编辑
  • 文档创建者:印然
  • 浏览次数:8188次
  • 编辑次数:8次
  • 最近更新:jiangsr 于 2018-08-17
  • 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,显示值为客户名称。
    注:此处使用的是列序号选取实际值和显示值,亦可使用列名选取实际值和显示值。

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

    5. 过滤设置

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

    注:公式treelayer($tree)的意思是返回参数tree中的值的最后一层数据。具体介绍请查看treelayer函数
    如果在参数面板设置下拉树属性时没有勾选【结果返回完整层次路径】,那么其过滤设置如下图:
    注:如果在参数面板设置下拉树属性时没有勾选【结果返回完整层次路径】,无需使用treelayer函数,可直接用下拉数参数,返回值即为tree的值。

    6. 保存和预览

    点击分页预览,则在BS端看到上图的效果。
    模板效果在线查看请点击:tree.cpt
    已完成的报表,可参见%FR_HOME%\WebReport\WEB-INF\reportlets\doc\Primary\widgetReport\多选下拉树实现不同级别之间的查询.cpt

    附件列表


    主题: 专题总结
    如果您认为本文档还有待完善,请编辑

    文档内容仅供参考,如果你需要获取更多帮助,付费/准付费客户请咨询帆软技术支持
    关于技术问题,您还可以前往帆软社区,点击顶部搜索框旁边的提问按钮
    若您还有其他非技术类问题,可以联系帆软传说哥(qq:1745114201

    此页面有帮助吗?只是浏览 [ 去社区提问 ]