我目前正尝试在IcCube中构建谷歌树形图。我是否使用多级维度并分别定义每个级别的向下钻取(如图所示) here和here),一切正常。 我想要做的是使用父/子维度并告诉树形图,只需在钻入树形图表时沿着这个层次结构下去。
这可能吗?
这是我使用的(不工作)MDX,其中[categories]是父/子维度:
WITH
MEMBER [category_name] as [categories].[categories].currentmember.name
SELECT
{[category_name],[Measures].[count_clicks]} on 0,
non empty [categories].[categories] on 1
FROM
[Cube]
答案 0 :(得分:1)
Treemap是一个棘手的可视化。您需要将两个第一列定义为定义父/子关系。例如:
>>> i = 1,
>>> i
(1,) # tuple with single element
第一列是构造Axis(1)名称,因此秒必须是父名称而不是成员名称。类似的东西:
$lines = str_replace("<ul>", "", $lines);
$lines = str_replace("</ul>", "", $lines);
$lines = str_replace("<li>", "<span>", $lines);
$lines = str_replace("</li>", "</span>", $lines);
你可以用作:
$array = array("<ul>", "</ul>", "<li>", "</li>");
$replace = array("", "", "<span>", "</span>");
$lines = str_replace($array, $replace, $lines);
这应该会更好。
希望它有所帮助。
答案 1 :(得分:0)
在用我自己的数据挣扎了一段时间之后,我采用了父/子Dimension(http://www.iccube.com/support/documentation/user_guide/schemas_cubes/dim_parentchild.php)的IcCube示例。然后我尝试了你的例子:
WITH
MEMBER [parent_name] as IIF( [dim (ALL)].[Hierarchy].currentmember
is [dim (ALL)].[Hierarchy].[ALL],'',
[dim (ALL)]. [Hierarchy].currentmember.parent.name )
SELECT
{[parent_name],[Measures].[value]} on 0,
non empty [dim (ALL)].[Hierarchy] on 1
FROM
[Cube]
(NULL值必须替换为&#39;&#39;)
第一个维度有效,但如果我尝试深入到地图中,系统会告诉我,没有一行带有id&#39; World&#39;。你有任何想法,如何解决这个问题?
编辑: 在父/子维度中使用实名而不是ids(子:西班牙;父:欧洲,值:3)并用[dim(ALL)]替换[dim(ALL)]。[Hierarchy]。[Hierarchy]。代码中的members(),到目前为止我得到了一个树形图:
WITH
MEMBER [parent_name] as IIF( [dim (ALL)].[Hierarchy].currentmember
is [dim (ALL)].[Hierarchy],'',
[dim (ALL)].[Hierarchy].currentmember.parent.name )
SELECT
{[parent_name],[Measures].[value]} on 0,
non empty [dim (ALL)].[Hierarchy].members() on 1
FROM
[Cube]
现在深入到下一级别后,这是一条错误消息,未能找到ID为&#34;欧洲&#34;&#39;的行。我在我的数据中添加了3级(孩子:马德里;父母:西班牙,价值:5),但我无法达到这个水平。点击&#34;西班牙&#34;没有改变任何事情。