使用icCube HSL颜色公式设置amChart值的颜色

时间:2015-09-28 09:45:17

标签: amcharts iccube-reporting

根据my previous question in June的答案,我想使用icCube HSL() formula来定义amChart小部件中图表成员的颜色。

在标准架构Sales中,我使用以下MDX:

with
member [measures].[hue] as 16
member [measures].[saturation] as 1-indexof([Rubriek].[Rubriek].currentmember.siblings,[Rubriek].[Rubriek].currentmember)/30
member [measures].[lightness] as 0.2+ordinal(level([Rubriek].[Rubriek].currentmember))/10
member [measures].[color-hsl] as hsl([hue],[saturation],[lightness])
member [measures].[color-fixed] as "#FF0000"

SELECT
{ {[Measures].[Amount],[measures].[color-hsl],[measures].[color-fixed]} } ON COLUMNS,
{ [Product].[Product].firstNotAllLevel().allmembers } ON ROWS
 FROM [Sales]

我添加了2个颜色字段:

  • color-hsl = HSL定义的颜色,基于产品层次结构的层次深度以及成员在其兄弟姐妹中的位置

  • color-fixed =仅为十六进制颜色,用于测试目的

现在,当我定义组合图时,我可以在“高级属性”中设置颜色字段:

  • [{ “colorField”: “彩色-HSL”}]

除此之外,这不会给我计算出的颜色。但是,如果我将colorField更改为颜色固定,它会给我定义的红色。

问题:

  1. 如何实现color-hsl正常工作。我必须将其转换为十六进制字符串吗?我怎样才能做到这一点?
  2. 如何摆脱color-hsl的数据值。我只想用它作为字段来定义颜色,而不是我mdx中的值(即“Amount”)字段?

1 个答案:

答案 0 :(得分:1)

MDX中的颜色函数返回一个整数值,例如: 2334.如果要在浏览器中使用它,则必须将其转换为十六进制字符串表示形式:

返回

ToHexColor(colorAsInteger)