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中对象表达式可以在设计制作报表时极大的方便满足使用者,包罗万象的对象表达式和极其丰富对象表达式属性,可以多方位高效率的实现不同的需求。
附件
请先登录