如何在iccube中使用MDX表达式的条件格式。目标是根据值添加颜色。例如,将MDX度量值中的值除以范围,并将每个范围的颜色应用于表格中单元格的背景。
答案 0 :(得分: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颜色,插值函数将把测量,第一个参数转换为颜色。
创建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选项卡在“颜色编辑器对话框”中使用颜色
然后又是我们的桌子颜色。