使用MDX表达式的iccube报告条件格式

时间:2017-07-12 07:11:54

标签: iccube iccube-reporting

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

1 个答案:

答案 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查询,我们使用了一些允许使用颜色InterpolateRGBColorsRGB以及CurrentCellValues的函数。

RGB允许将RGB颜色转换为MDX颜色,插值函数将把测量,第一个参数转换为颜色。

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

中完成

enter image description here

  1. 使用不同的措施
  2. 在这里,我们将利用自版本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选项卡在“颜色编辑器对话框”中使用颜色

    enter image description here

    然后又是我们的桌子颜色。