我有一个价格度量,我想在不同的位置设置不同的格式,例如格式取决于维度的值。我可以有多个不同格式的度量,但这会使很多其他事情复杂化。
据我了解,标准 IFormatter 框架没有位置信息。
我想可以将其作为后处理的措施来实现吗?对于不同类型的价格,我可能也有不同的对象类型,然后使用打开对象类型的 IFormatter 实现?
是否有最佳实践 - 优点/缺点?
我有一个价格度量,我想在不同的位置设置不同的格式,例如格式取决于维度的值。我可以有多个不同格式的度量,但这会使很多其他事情复杂化。
据我了解,标准 IFormatter 框架没有位置信息。
我想可以将其作为后处理的措施来实现吗?对于不同类型的价格,我可能也有不同的对象类型,然后使用打开对象类型的 IFormatter 实现?
是否有最佳实践 - 优点/缺点?
在 ActivePivot 中,格式化程序不知道为其生成单元格的多维数据集位置(实际上,使用 MDX 构造可以计算一些与任何位置无关的单元格值)。
但由于 ActivePivot 是基于对象的,因此总有一种解决方案可以满足您的需求:
对于价格度量,您可以编写一个包含金额和货币的“价格”Java 类,而不仅仅是使用数字。开箱即用的 ActivePivot 不知道如何聚合这些价格,因此您还将编写一个自定义聚合函数(扩展com.quartetfs.biz.pivot.aggfun.impl.GenericAggregationFunction)。
然后,您可以实现 Price 类的toString()方法,因为 ActivePivot 将其用于默认格式。并且您可以在格式化时访问货币。当然,如果您想要更解耦的设计或基于用户的上下文格式,您也可以编写 PriceFormatter 来格式化您的价格实例。