1. 概述
1.1 问题描述
在下拉框参数为空选择全部文档中,介绍了参数为空查询出所有数据的功能实现方式。在有些场景下,希望只有部分人有这个权限。例如只允许管理员可以不选择选项,查询全部数据,而其他人则必须选择选项后才可以查询,应该怎么实现呢?
1.2 实现思路
在下拉框的初始化后事件中,获取当前登录用户,利用 JS 判断是否是管理员,并根据判断结果来设置下拉框是否可以为空。
注:不支持移动端。
2. 示例
2.1 数据准备
新建数据集 ds1,SQL语句为:SELECT * FROM 销量 where 1=1 ${if(len(地区)==0,"","and 地区='"+地区+"'")}
2.2 报表设计
1)如下图设计表格:
2)参数面板添加地区控件,并配置数据字典,如下图所示:
2.3 设置初始化后事件
1)给下拉框控件添加一个初始化后事件
2)设置参数,参数名为user,参数值为公式$fine_username
3) JavaScript 代码如下:
if (user == "admin") {
this.options.allowBlank = true;
//如果当前用户为admin,允许为空
} else {
this.options.allowBlank = false;
//如果当前用户不为admin,不允许为空
}
2.4 效果预览
保存报表,点击分页预览,效果如下图所示:
3. 模板下载
点击下载模板:根据账号控制查询数据权限.cpt