IcCube - 使用Javascript访问报告代码

时间:2016-07-22 12:50:01

标签: iccube

编辑报告时,我可以点击“报告代码”查看有关报告结构的信息。它像这样:

{
"classID": "ic3.ReportGuts",
"guts_": {
    "ic3Version": 12,
    "schemaName": "test_schema",
    "cubeName": "Cube",
    "layout": {
        "classID": "ic3.FixedLayout",
        "guts_": {
            "ic3Version": 12,
            "grid": 10,
            "boxes": [
                {
                    "classID": "ic3.FixedLayoutBox",
                    "guts_": {
                        "ic3Version":...

如何使用Javascript访问此信息?上下文。$ report显然没有提供这些信息。

还有办法获取信息,在报告的不同图表中使用了哪些MDX语句?这可以用Javascript改变吗?

1 个答案:

答案 0 :(得分:1)

要获取报告内容,请将此代码添加到报告代码

function consumeEvent( context, event ) {                                
  if (event.name == 'ic3-report-init') {                                 
    console.log(event.value.state.report);
  }                                                                      
}

至于在发送之前处理mdx请求,它有点难。再次在 ReportCode

function consumeEvent( context, event ) {                                
   if (event.name == 'ic3-report-init') {       
    event.value.widgetMgr().forEach(function(idx,item){
        if(item.hasOwnProperty('onVizBeforeRequestSend')){
            return;
        }

        var oldMethod = item.onVizBeforeRequestSend.bind(item);
        item.onVizBeforeRequestSend = function(request){
            console.log(item, request);
            oldMethod(request);
        }
    });
}

在此功能项中是widgetAdapter,其中包含有关窗口小部件的信息,请求是请求实例。