工作中会涉及Finereport报表开发,对此过程中遇到的一些难点进行总结,包括如何创建多选下拉框、构建下拉树控件和实现不同账号权限配置。
创建多选下拉框
step1:在参数界面中,点击控件下方的下拉复选框控件,将其拖拽至参数面板,如下图:

step2:点击复选框,然后选择属性->高级->数据字典,定义下拉复选框的数据为数据查询中的“00 区域权限分配”,实际值和显示值均为compnay_province_name:

step3:下拉复选框是可以进行多选的,返回值的格式可以是数组或字符串。以下介绍返回字符串的设置方法:点击属性->高级->返回值类型,选择字符串,并设置分隔符、起始符、结束符(此处起始符、结束符省略),并在SQL语句的where条件中加上compnay_province_name_new in ('${compnay_province_name}'):

效果展示:

构建下拉树控件
step1:通过SQL语句定义分层数据集
--层次1 select dimension_name_4from tablenamewhere bus_date = '${lday}';--层次2select dimension_name_3from tablenamewhere bus_date = '${lday}'and dimension_name_4 = '${layer1}';--层次3 select dimension_name_2from tablenamewhere bus_date = '${lday}'and dimension_name_4 = '${layer1}'and dimension_name_3 = '${layer2}';--层次4 select product_alias_namefrom tablenamewhere bus_date = '${lday}'and dimension_name_4 = '${layer1}'and dimension_name_3 = '${layer2}'and dimension_name_2 = '${layer3}';step2:在参数界面中,点击控件下方的下拉树控件,将其拖拽至参数面板,如下图:

step3:点击下拉树控件,然后选择属性->高级->数据字典,构建方式选择普通分层构建,选择每层对应的值,并且设置相应的依赖层次和依赖字段:



实现不同账号权限配置


step4:在SQL语句的where条件中加上1=1 ${if(len(aa)==0,""," and product_alias_name in ("+"'"+treelayer(aa,true,"\',\'")+"'"+")")},实现下拉树应用。其中aa是指下拉树的控件名称;product_alias_name是指层次4对应的名称:

效果展示:

实现不同账号权限配置
以分区域实现不同账号权限为例
step1:先通过SQL语句给每个账号限定可访问的区域,如限制账号wangxiaoyan可以访问全区域数据,而zhangsan只能访问福建省、重庆市和湖南省的数据:
select compnay_province_name ,'wangxiaoyan' as user_namefrom tablenamewhere bus_date = '${lday}' group by 1union select compnay_province_name ,'zhangsan' as user_namefrom tablenamewhere bus_date = '${lday}' and compnay_province_name in ('福建省','重庆市','湖南省') group by 1;step2:在参数界面中,点击控件下方的下拉框控件和下拉复选框控件,将其拖拽至参数面板,如下图:

step3:点击下拉框控件,然后选择属性->高级->公式,输入账号公式:

step4:点击复选框,然后选择属性->高级->数据字典,定义下拉复选框的数据为数据查询中的“00 区域权限分配”,实际值和显示值均为compnay_province_name:

效果展示:


扫码关注
关注我们更多精彩
END

微信扫一扫
关注该公众号