如何在 iccube 中使用带有 MDX 表达式的条件格式。目标是根据值添加颜色。例如,将 MDX 度量中的值划分为多个范围,并将每个范围的颜色应用于表格中单元格的背景。
问问题
124 次
1 回答
1
有几个选项
1 - 使用 MDX 单元属性
第一步是创建一个 MDX 表达式,为 MDX 表达式的每个单元格定义背景颜色。使用的单元格属性是 'BACK_COLOR' ,doc。
WITH
MEMBER [Colored Amount] as [Amount] ,
BACK_COLOR=InterpolateRGBColors(currentCellValue() / (1000*1000),RGB("#DBF2CC"), RGB("#C2AB4D") )
SELECT
[Product].[Product].[Article] on 0
FROM [MyCube] WHERE [Colored Amount]
CELL PROPERTIES VALUE, FORMATTED_VALUE, BACK_COLOR
为了构建 MDX 查询,我们一直在使用一些允许使用颜色InterpolateRGBColors和RGB和CurrentCellValues的函数。
RGB 允许将 RGB 颜色转换为 MDX 颜色,并且 interpolate 函数将把度量值(第一个参数)转换为颜色。
创建 MDX 后,我们可以使用报告来使用 MDX 中定义的颜色。这可以在“颜色编辑器对话框”中完成
- 使用不同的措施
在这里,我们将利用版本 6 以来的新报告功能并使用多种度量。MDX 看起来很相似:
WITH
MEMBER [Measures].[Color] AS toHexColor( InterpolateRGBColors( [Amount] / (1000*1000),RGB("#DBF2CC"), RGB("#C2AB4D") ) )
SELECT
// Measures
{[Measures].[Amount],[Measures].[Color]} ON 0,
// Rows
[Product].[Product].[Article].allmembers ON 1
FROM [Sales]
CELL PROPERTIES STYLE, CLASSNAME, VALUE, FORMATTED_VALUE, FORMAT_STRING
我们不使用单元格属性,而是定义了一个新的度量 [Color] 来保存颜色的值。此 MDX 也可以使用向导创建。
一旦 MDX 语句准备就绪,我们可以使用 MDX 选项卡在“颜色编辑器对话框”中使用颜色
那里又是我们的颜色表。
于 2017-07-18T10:14:58.183 回答