Mdx 在pentaho CDE中为选择组件设置默认值

Mdx 在pentaho CDE中为选择组件设置默认值,mdx,pentaho-cde,Mdx,Pentaho Cde,我在布局中有一个组合框,一个选择组件和一个数据源(mdx超过mondrianJndi) 这里是我的mdx查询 with member [Measures].[Name] as '[Year].CurrentMember.UniqueName' select TopCount( filter({Descendants([Year].[All Years] ,[Year].[Year])}, not isempty(([Year].CurrentMember)) ) , 50) on ROWS,

我在布局中有一个组合框,一个选择组件和一个数据源(mdx超过mondrianJndi)

这里是我的mdx查询

with member [Measures].[Name] as '[Year].CurrentMember.UniqueName' select TopCount( filter({Descendants([Year].[All Years] ,[Year].[Year])}, not isempty(([Year].CurrentMember)) ) , 50) on ROWS, 
 {[Measures].[Name]} on Columns 
 from [Department Cube]
我的查询返回有数据的年份列表(包括当前年份)

此时,我必须等待加载数据,然后通过js资源将combobox的值设置为当前年份。
如何在不等待加载数据的情况下将默认值设置为布局中的组合框的当前年份?

作为一个动态查询,您不应该依赖于“当前”年份计算。任何确定当前年份的JS函数(例如,从客户端的时钟)都会遇到时区异常,并可能试图将值设置为查询中未返回的值

您应该仅在读取查询结果后设置选择器的默认值,但最好在组件的postFetch方法中进行设置

例如,如果要将参数值设置为查询结果的最后一个值

function(data){
  var results = data.resultset
  // some logic here to set current_year to the adequate value. For example,
  current_year = results[results.length-1][0];
  dashboard.setParameter(this.parameter, current_year);
  return data;
}