1

根据我 6 月份上一个问题的答案,我想使用 icCube HSL() 公式来定义 amChart 小部件中图表成员的颜色。

在标准模式销售中,我使用以下 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":"color-hsl"}]

除了,这并没有给我计算出来的颜色。但是,如果我将 colorField 更改为颜色固定,它会给我定义的红色。

问题:

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

1 回答 1

1

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

返回的ToHexColor ( colorAsInteger )

于 2015-09-28T13:49:45.290 回答