ActivePivot依赖于上下文的格式

时间:2013-03-08 09:27:42

标签: activepivot

我有一个价格衡量标准,我希望在不同的位置设置不同的格式,例如格式取决于维度的值。我可以使用不同格式的多个度量,但这会使许多其他事情变得复杂。

据我所知,标准IFormatter框架没有位置信息。

我想这可以作为后处理的mesaure来实现吗? 对于不同类型的价格,我可能也有不同的对象类型,然后使用开启对象类型的IFormatter实现?

这是最好的做法 - 利弊吗?

1 个答案:

答案 0 :(得分:0)

在ActivePivot中,格式化程序不知道已为其生成单元格的多维数据集位置(实际上,对于MDX构造,可以计算一些与任何位置无关的单元格值。)

但是,由于ActivePivot是基于对象的,因此总有一种解决方案可以满足您的需求:

对于价格指标,您可以编写包含金额和货币的“价格”java类,而不是仅使用数字。开箱即用的ActivePivot将不知道如何汇总这些价格,因此您还将编写自定义聚合函数(扩展 com.quartetfs.biz.pivot.aggfun.impl.GenericAggregationFunction )。

然后,您可以实现Price类的 toString()方法,因为ActivePivot将其用于默认格式。并且您在格式化时可以访问货币。当然,如果您想要更加分离的设计或基于用户的上下文格式,您还可以编写PriceFormatter来格式化您的价格实例。