参数:数据中心提供三种参数,用户组参数,用户参数,报表参数,其中来自数据库的用户组参数可从数据库中直接取得参数的值(这部分请见18-5节介绍),本节介绍前三种参数的实现方法。
参数的作用:报表文件中可以定义同名参数来取得各类参数的值,这样在报表运行时,可以使用用户组参数或其它参数对报表的数据进行整理。例如:地区数据访问权限的控制。
用户组参数
登录数据中心控制台,进入用户组管理。新增用户组记录:
切换到用户管理,修改user01的所属组为北京业务人员。
在设计器中打开sales.raq,我们对这张表加入人员参数控制,具体作用是:按照登录人员的usergroup参数,加入新的数据过滤条件–让北京的业务人员只能看到发生在北京的销售统计。
【配置_参数】,新建一字符串类型参数:usergroup。
【配置_宏】,新增一动态宏macro1,表达式如下:
if(@usergroup==”bj”,” and D.areaid=1 “,”")
表达式提示 如果usergroup参数是”bj”,宏返回字符串” and D.areaid=1 “,否则,返回空串。
【配置_数据集】,编辑ds1数据集的语法为:
select
A.province,D.areaname,A.customerid,A.customername,
B.typeid,E.typename,B.productid,B.productname,sum(C.money) as jehj
from
customer A,product B,contract C,area D,type E
where
C.customerid = A.customerid and C.productid=B.productid
and A.province=D.areaid and B.typeid = E.typeid ${macro1}
group by
A.province,D.areaname,A.customerid,A.customername,
B.typeid,E.typename,B.productid,B.productname
保存报表。
使用user01用户登录数据中心首页,选择客户产品销售情况统计表节点。看一下user01所能看到的是不是只有北京的数据了?
用户参数
用户参数与用户组参数设置方法相同,需要强调的是:用户参数比用户组参数有更高的优先级,如果存在同名的用户组参数和用户参数,报表中取到的是用户参数值。
可以验证一下用户参数的优先级,我们为user01增加用户参数:usergroup=0,保存后,使用user01重新登录数据中心首页,打开客户产品销售情况统计表,看到了吗,这时候没有地区过滤作用了。
报表参数
设置方法与用户组相同,优先级小于用户组参数。

