在通过Saiku查询数据的时候,当需要改变查询结果的显示方式的时候,可以添加formatString属性,但是当需要计算查询结果的时候,则需要使用CellFormatter,使用方法如下:
<Measure name="XXSJCD" column="zxsc" aggregator="sum" caption="%{measure.name.XXSJCD}" visible="true"> <CellFormatter> <Script language="JavaScript"> <![CDATA[ var result_string = ''; // access Mondrian value var sec = value; var hours = Math.floor(sec/(60*60)); var minutes = Math.floor((sec/60) - (hours*60)); var seconds = Math.floor(sec - (hours*60*60) - (minutes*60)); result_string = hours.toString() + ':' + minutes.toString() + ':' + seconds.toString(); return result_string; ]]> </Script> </CellFormatter> </Measure>
上面的查询的Measure(指标)为时间,查询结果为总秒数,但是想要以“小时:分钟:秒”的格式显示,通过CellFormatter添加函数(函数中value为总秒数),计算后返回显示结果。