亿信ABI
当前版本:BI4.7

方便实用的对象表达式


BI@Report支持操作符".",用于引用对象的属性和方法,在报表设计的过程中,可以利用对象表达式轻松的实现许多功能和需求。

对象表达式具有如下特点:

  • 对象的属性和方法可能是简单的数值或字符串,比如A1.level;也可能是另外一个对象,比如A1.dimitem是DimensionItem对象,可以继续引用对象的属性和方法,比如a1.dimitem.level获取级次。
  • 对象本身是有值的,比如A1对象的值等于A1.value。
  • 对象名是大小写不敏感的,对象的属性和方法对大小写也不敏感。

下面通过几个应用场景,介绍几种常见的对象表达式:

1. 应用场景一


需求描述:某财务报表需要在表尾处显示登录者的部门名称及登录者姓名,如何实现呢?

解决办法:使用文本利用宏表达式和Login对象表达式,<#=Login.orgname#>,<#=Login.name#>.

关键字:Login—登录者,用于获取登录者信息,该对象的属性包括id、name、orgid、orgname及datalevel(数据级次)等。


2. 应用场景二


需求描述:A表为全国XX行业收入情况统计表,通过设置钻取跳转到B表,用来查看某一地区收入的行业分布情况,想要实现将A表中的点击的地区文字显示在B表标题文字中,如何实现?

解决办法:使用对象表达式中的drillcell,在B表中的标题中利用宏表达式写上"<#=drillcell.txt#>",就可以轻松实现。

关键字:drillcell—钻取表元,钻取所点击的表元对象,该对象的属性可以直接参考表元对象的属性。

 

3. 应用场景三


需求描述:一张浮动分析表按照机构维使用本表钻取方式,进行数据层层下钻,设置将可以进行钻取的机构表元,文字设置为蓝色。但当钻取到机构的叶子节点时,文字颜色变为黑色,如何实现?

  同时,该张浮动分析表想要实现奇偶行颜色不一,如何实现?

解决办法:在表元属性字体颜色中,利用对象表达式self及其属性isleaf,if(self.isleaf,"#000000","#0000FF"),即意为如果本表元为叶子节点,则显示黑色,否则显示为蓝色。

方便实用的对象表达式

  可以根据行号使用mod函数求余,如if(mod(row(),2)=0,"#EFEFEF","#FFFFFF"),同时可以使用对象表达式self.isodd,if(self.isodd,"#EFEFEF","#FFFFFF"),判断表元的index是否为奇数。

方便实用的对象表达式

关键字:self—表达式所在的对象,该对象表达式的属性较丰富,可具体对照附件文档使用。

 

4. 应用场景四


需求描述:要求报表中显示所选报表择参数的id值和文字,如何实现?    

解决办法:可以使用报表参数对象,例如:参数为@dept机构,则所选参数id及文字为,@dept.id和@dept.txt,可在表头文字用宏表达式引用。

关键字:CalcParam—计算参数对象. 通过参数名直接引用本对象。

 

5. 应用场景五


需求描述:报表参数为维下拉框,机构维表,树形共有三层组织机构,想要选择时只显示到第二层,如何实现?

解决办法:可以使用维节点对象DimensionItem对象,在报表参数的节点过滤中写上item.level<=1,即可控制维层级只显示到第二层。

方便实用的对象表达式  

关键字:DimensionItem—维树上的一个节点,它的值等于itemid属性的值。

 

 

BI@Report中对象表达式可以在设计制作报表时极大的方便满足使用者,包罗万象的对象表达式和极其丰富对象表达式属性,可以多方位高效率的实现不同的需求。

附件详尽列举了BI中的对象表达式及其用法举例,快去一饱眼福吧!

附件列表

1

文档内容仅供参考
如果您需要解决具体问题,还可以登录亿信社区
在提问求助板块提问,30分钟内帮您解决问题

如果您认为本词条还有待完善,请编辑

上一篇如何制作图表置换报表

下一篇如何快速构建一张dashboard报表

请先登录