浅谈扩展报表支持的系统变量 系统预设变量是一组由扩展报表运行引擎提供的内置参数,均以@ExtRptCurrent作为前缀,在报表或者数据集中均可以使用!实际执行过程中会被替换为当前用户在当前组织下对应的不同取值。
目前EAS系统中可使用的系统变量如下:
一、数据集 在数据集中使用系统变量时,可以在SQL查询语句中直接使用,也可以在参数默认值、参数来源中使用。 当要查询的数据只与报表上下文有关,且不允许查询其他与上下文无关的数据时,则在SQL查询语句中需要直接使用相应的系统变量。注意,在SQL查询语句中使用变量时,要用变量的变量名,不能使用别名。 例如要需要查询当前用户的业务组织范围,但不允许查询其他用户的业务组织范围时,则可以在SQL语句中使用系统变量“当前用户ID”:SELECTFID,FNUMBER,FNAME_L2,FParentID FROM T_ORG_BaseUnit WHERE FID IN(SELECT FORGID FROMT_PM_ORGRANGE WHERE FUSERID='@ExtRptCurrentUserInfoID'AND FTYPE=10) AND FISUNION = 0
若用户查询时需要根据不同的过滤条件来查询相应的数据,但不同用户参数的默认值不同,这时候就需要给数据集添加参数并将其默认值设置为系统变量。 例如要查询某组织的销售出库单,则可以添加一个参数,并将参数的默认值设置为“当前组织ID”:
另外,参数的来源也支持设置为系统变量,目前支持的有:当前用户的业务组织范围、当前用户行政组织范围、当前用户财务组织范围、当前报表授权组织范围。这几个变量中,除了当前用户的业务组织范围(变量名为:ExtRptCurrentUserOrgRange)可以直接在SQL查询语句中使用,另外3个变量因未配置变量名所以暂不支持在SQL查询语句中使用。
二、报表 可以在报表的单元格公式中使用系统变量。如下图所示,打开公式编辑器,左上角“数据集”抽屉的“内置变量”中可以看到报表中支持的系统变量: 可以在单元格中直接使用变量,例如单元格中写公式“=@ExtRptCurrentUserInfoName”,则可获取当前用户名称。 也可以在函数中使用系统变量。例如,判断若查询出来的用户FID等于当前用户,则前景色高亮显示,则可以在前景色属性中写公式:if(value(A2)=@ExtRptCurrentUserInfoID,RGB(255,0,0),RGB(0,0,0)) //A2单元格显示用户FID
三、报表调度 通过系统调度生成快照时,也可以将参数的默认值设置为系统变量。
四、移动报表——预警消息 在移动报表设计器中,点击菜单栏的“报表”—“预警与推送”,可以将推送消息的内容设置为与系统变量相关,见下图:
预警消息使用系统变量.jpg(111.29KB)
报表使用系统变量.jpg(150.01KB)
调度使用系统变量.jpg(110.05KB)
参数默认值使用系统变量.jpg(78.47KB)
参数来源使用系统变量.jpg(93.50KB)
SQL查询语句中使用系统变量.jpg(60.72KB)
变量列表.JPG(166.02KB)
推荐阅读