2

如何在 iccube 中使用带有 MDX 表达式的条件格式。目标是根据值添加颜色。例如,将 MDX 度量中的值划分为多个范围,并将每个范围的颜色应用于表格中单元格的背景。

4

1 回答 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 查询,我们一直在使用一些允许使用颜色InterpolateRGBColorsRGBCurrentCellValues的函数。

RGB 允许将 RGB 颜色转换为 MDX 颜色,并且 interpolate 函数将把度量值(第一个参数)转换为颜色。

创建 MDX 后,我们可以使用报告来使用 MDX 中定义的颜色。这可以在“颜色编辑器对话框”中完成

在此处输入图像描述

  1. 使用不同的措施

在这里,我们将利用版本 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 回答