辰哥小课堂开课啦!亿信BI报表设计之对象表达式

3621
1

辰哥 管理员

发表于2018-6-22 10:13

楼主
你理解的对象表达式是login.id还是drillcell.txt?不要太局限喔~

我们常熟见的对象表达式不是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)

亿信BI常用的对象表达式
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.浮动维表元的下钻级次属性中,使用宏表达式引用参数@jglevel属性,表达式为<#=@jg.level+1#>,如下图:

【实现方法】
查询《对象表达式字典》,我们发现只需要用到txt属性(当前参数值对应的文字)和level属性(当前参数值在维度中的层级)即可
1.表头文本使用宏表达式,引用参数对象的txt属性,表达式为<#=@bbq.txt#>
2.浮动维表元的下钻级次属性中,使用宏表达式引用参数@jglevel属性,表达式为<#=@jg.level+1#>,如下图:

最近看过此主题的会员

18301609034

esen_4O6N6U6ZN2

15110830390

chestnut

1个回答

只看楼主

缱绻 数据领袖Lv6

发表于2019-9-11 11:10

只看该作者

取消 关注该作者的回复

沙发

对象表达式self.leftcell(i).value 本表元左侧第i个表元
self.rightcell(i).value     本表元右侧第i个表元
self.upcell(i).value       本表元上方第i个表元
self.downcell(i).value     本表元下方第i个表元

登录后可回答问题,请登录注册

快速回复 返回顶部 返回列表

小时

全天响应

分钟

快速处理问题

工程师强势助力

明星产品
解决方案
联系合作

渠道咨询电话:137-0120-6790

技术支持QQ:400-0011-866(工作日9:00-18:00)

产品建议邮箱yixin@esensoft.com

关注我们

扫TA学习更多干货

一对一专家交流

版权所有© 2006-2024 北京亿信华辰软件有限责任公司 京ICP备07017321号 京公网安备11010802016281号