-
辰哥 管理员
发表于2018-11-21 09:31
楼主
我们常熟见的对象表达式不是login.do就是drillcell.txt,那对象表达式到底是什么呢?
简单讲,就是通过对象的属性及方法,访问服务器上的任何资源。
何为属性及方法
对象很富有,它拥有属性和方法,对象用它们可以做任何他可以做的事。如果我本人是一个对象,性别、身高、体重等为我的属性;而我可以用我这个对象去工作、洗衣、打球等活动,这就是方法。
如何访问对象
访问对象的属性和方法的格式为:
(1)对象.属性
比如:myme.name=”小王” ; myme.age=” secret”
(2)对象.方法
比如:this.display表示display(this)
对象的特点
1. 对象本身是有值的,如:A1.value
2. 对象、属性、方法大小写不敏感
3. 对象的属性、方法可能是另一个对象,可以继续引用。比如:A1.dimitem可获取A1表元的指标对应维项目;A1.dimitem.level可获取A1表元的指标对应维项目所在的级次
4. 可以用函数去处理对象的属性和方法,如:left(A1.text,1)
Self对象
self对象是表达式所在的对象,比如在表元的表达式中用self引用表元自己
self.value—表元的原始值
self.txt—表元的显示值
self.index—表元在浮动出来的节点中的序号
self.row—表元所在行号
Login对象
login.id—登录用户的id
login.org.id—登录用户所在机构的id
参数对象
@jg.txt—计算时,所选参数值对应的文字
@jg.level—计算时,选择参数值在维表中的级次
钻取表元对象
drillcell.txt—钻取表元的显示文字,常用于下钻表中
计算信息对象
calcinfo.sql—报表计算时的sql
应用实例
实例(一):
表元对象
【需求说明】
使用对象表达式对浮动表元值进行排名,如下图:
查询《对象表达式字典》,我们发现rank表元对象的属性刚好满足需求。
那我们来看看,rank属性的作用是什么?
表元对象属性rank:表元的排名。
例子:self.rank --- 如果本表元的值最大,则返回1
所以我们只需要在C2表元输入B2.rank即可,效果如下图:
参数对象
【需求说明】
1. 表头需要显示报表期参数(@bbq)选择的报表期;
2. 选择机构参数(@jg)时,报表展示其直接下级的数据;如下图
【实现方法】
查询《对象表达式字典》,我们发现只需要用到txt属性(当前参数值对应的文字)和level属性(当前参数值在维度中的层级)即可
1. 表头文本使用宏表达式,引用参数对象的txt属性,表达式为<#=@bbq.txt#>
2. 浮动维表元的下钻级次属性中,使用宏表达式引用参数@jg的level属性,表达式为<#=@jg.level+1#>,如下图: