Pentaho CCC Line Chart限制为12个月

时间:2017-04-18 19:40:06

标签: javascript mdx pentaho pentaho-cde

我制作了一个带有日期范围输入选择器的简单CCC折线图。在X轴上我有几个月。我从中获取数据的多维数据集是默认的钢制车轮,因此时间维度具有年度季度和月份。 问题是,当我选择超过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()];

} 

1 个答案:

答案 0 :(得分:0)

这里不是那么优雅,而是工作解决方案:

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]

您可以使用计算列来处理字幕的字符串