【问题标题】:Pentaho CCC Line Chart limited to 12 monthsPentaho CCC 折线图限 12 个月
【发布时间】:2017-05-04 23:28:58
【问题描述】:

我用日期范围输入选择器制作了一个简单的 CCC 折线图。在 X 轴上,我有几个月的时间。我从中获取数据的 Cube 是默认的 Steel Wheels,因此 Time 维度具有 Years Quarters 和 Months。 问题是当我选择一个超过 12 个月的时间间隔时,可视化仅限于前 12 个月(没有重复的月份名称)。我怎样才能克服这个障碍?我想我需要将 X 轴设置为可视化年月而不是仅月,但我不知道如何。

提取数据的 MDX 查询是:

SELECT
    [Measures].[Sales] ON COLUMNS,
    {[Time].[${param_start_year}].[${param_start_quarter}].[${param_start_month}]:[Time].[${param_end_year}].[${param_end_quarter}].[${param_end_month}]} ON ROWS
FROM
    [SteelWheelsSales]

从数据选择器中提取 YEAR QUARTER 和 MONTH 的 javascript 函数是:

function extract_function(){

dateFrom = Dashboards.getParam('dateFrom');
dateTo = Dashboards.getParam('dateTo');
tmp_date = new Date(dateFrom);
var quarter = ['QTR1','QTR2','QTR3','QTR4'];
var month = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'];

param_start_year = tmp_date.getFullYear();
param_start_quarter = quarter[Math.floor((tmp_date.getMonth()+ 3) / 3)-1];
param_start_month = month[tmp_date.getMonth()];

tmp_date = new Date(dateTo);
param_end_year = tmp_date.getFullYear();
param_end_quarter = quarter[Math.floor((tmp_date.getMonth()+ 3) / 3)-1];
param_end_month = month[tmp_date.getMonth()];

} 

【问题讨论】:

    标签: javascript mdx pentaho pentaho-cde


    【解决方案1】:

    这里不是那么优雅,但可行的解决方案:

    WITH
    MEMBER Measures.[Years] as 
    Ancestor([Time].Currentmember, [Time].[Years]).Properties("MEMBER_CAPTION")
    SELECT
    NON EMPTY { Measures.[Years], [Measures].[Sales]} ON COLUMNS,
    [Time].[2003].[QTR1].[Jan]:[Time].[2005].[QTR1].[Feb] ON ROWS
    FROM [SteelWheelsSales]
    

    您可以使用计算列来操作字幕字符串

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多