finereport字段显示设置_Finereport之创建多选下拉框、构建下拉树控件和实现不同账号权限配置...

工作中会涉及Finereport报表开发,对此过程中遇到的一些难点进行总结,包括如何创建多选下拉框、构建下拉树控件和实现不同账号权限配置。

创建多选下拉框

step1:在参数界面中,点击控件下方的下拉复选框控件,将其拖拽至参数面板,如下图:

fdfa7926448896f60f9d4225ac32d179.png

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

39e8c0cb9b31a83e89d91de9d71e260c.png

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

dbb711990d43d3d49d15fc35882f40e4.png

效果展示:

236565a3843b89e3d2ca0bca03dad763.png

构建下拉树控件

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:在参数界面中,点击控件下方的下拉树控件,将其拖拽至参数面板,如下图:

536831edc2875bf158a1af614acab82c.png

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

8535760fe4adccce39b4f0898c899717.png

7144db130490d6d8948815152512b558.png

353305339336b4b85b90bc036d4f4d23.png

实现不同账号权限配置

40889c11ba568746067e392ce93ae8cc.png

f91371d69060cb8373e58013c24903a2.png

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

8cf7fd8bea3d9617810fa1be55feeaf3.png

效果展示:

0fe39349295c1332c87c983089569daf.png

实现不同账号权限配置

以分区域实现不同账号权限为例

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:在参数界面中,点击控件下方的下拉框控件和下拉复选框控件,将其拖拽至参数面板,如下图:

15f9ed4fa9501dfe55c4a4d9555f443a.png

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

7f1f6fade65bd4c52dcd94a91ced43b0.png

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

39e8c0cb9b31a83e89d91de9d71e260c.png

效果展示:

2939f4e53e860102aedee4625659fca3.png

722f5a080596e63b17d06431af92640a.png

扫码关注

关注我们更多精彩

END

f744f49a676022bf9d6ea603ef0d98c8.png

微信扫一扫
关注该公众号


版权声明:本文为weixin_39634579原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。