2015-01-05 90 views
-1

我已经使用了viz图表库。我在列图上给出了一些向下钻取功能。为此,我必须选择图的任何一列来查看所选零件的细节(在同一页面中)。默认选择当页面加载到sapui5时viz列图的第一栏

现在我想自动选择列柱状图的第一列/栏。这意味着当我进入图表页面时,应该选择第一个栏作为默认栏,并且所选栏的细节应该在那里。

请帮帮我吧。

代码:

查看:

<viz:ui5.Column id="chart" selectData="goToDaily" width="auto"> 
       <viz:plotArea> 
       <viz:ui5.types.VerticalBar colorPalette="#FFCC00"/> 
      </viz:plotArea> 
       <viz:title> 
        <viz:ui5.types.Title text="Monthly"> 
        </viz:ui5.types.Title> 
       </viz:title> 
       <viz:dataset> 
        <viz:ui5.data.FlattenedDataset id="fds1" > 
         <viz:dimensions> 
          <viz:ui5.data.DimensionDefinition id="dim" axis="1" name="Month" value="{name}"> 
          </viz:ui5.data.DimensionDefinition> 
         </viz:dimensions> 
         <viz:measures> 
          <viz:ui5.data.MeasureDefinition id="mea" name="Values" value="{value}"> 
          </viz:ui5.data.MeasureDefinition > 
         </viz:measures> 
        </viz:ui5.data.FlattenedDataset> 
       </viz:dataset> 
      </viz:ui5.Column> 

控制器:

的OnInit:

JSONmodel = new sap.ui.model.json.JSONModel(); 
    data1 = [ { 
     name : "Jan",   
     value : 100, 
     }, 
     { 
     name : "Feb",   
     value : 150, 
     }, 
     { 
     name : "March", 
     value :120, 
     }, 
     { 
     name : "April", 
     value : 200, 
     } 
     ]; 
    JSONmodel.setData(data1); 
    sap.ui.getCore().byId("idPage3--chart").setModel(JSONmodel); 

选择的图表数据:

goToDaily:function(evt){ 
    sap.ui.getCore().byId("idPage3--chart").selection({ctx:[{dii_a1:1}]}); 
} 

我试图选择2月份作为默认选择,但无法选择它。

问候, Niket Talati

+1

到目前为止你有什么尝试过自己?你看过API吗?有一个'fireSelectData'方法,相应的'selectData'事件显示它期望接收的对象结构 – Qualiture

+0

我尝试过很多事件但无法完成。我也尝试过fireSelectData方法,但无法选择第一个。你能给我同样的代码吗?谢谢你的帮助。 –

+0

您是否可以使用您尝试的代码更新您的问题以及您收到的任何控制台错误?这将更容易查明哪些是错误的。 – Qualiture

回答

0

有相当多的在你的代码不正确的东西

  1. 您指定的事件处理程序selectData但是这当您第一次“选择数据显然只是触发”。你永远不会在你的代码中触发事件进行数据选择,所以事件处理程序只会在你手动点击列时触发。

  2. 看起来你试图从事件处理程序中触发事件(这是另一种方式看到前面的点),但你从未实现过fireSelectData方法。

  3. 另外,您尝试选择的地图的签名不正确。 According to the API(这是生病格式的,我知道)你需要发送一大堆更多的,是这样的:

// ...snip... 
    var oSelection = { 
     data : [ 
      { 
       target : oRect, 
       data : [ 
        { 
         ctx : { 
          path : { 
           dii_a1 : 0, 
           dii_a2 : 0, 
           mg  : 0, 
           mi  : 0 
          }, 
          type : "Measure" 
         }, 
         val : 100 
        } 
       ] 
      } 
     ], 
     name : "selectData" 
    }; 
    oYourChart.fireSelectData(oSelection); 
    // ...snip... 
  • 如果你需要获得一个元素当使用XMLViews时,它应该使用this.getView().byId("chart")而不是
  • 希望以上帮助!

    +0

    感谢您的帮助Qualiture!什么是oRect?我得到像这样的错误oRect没有定义? –

    +0

    根据API,target属性期望“指向相应dom元素的对象”,所以在您的情况下,“oRect”应该是对第一列DOM元素的引用。我不确定,但我期望它是一个SVG'rect'元素 – Qualiture

    +0

    我也通过了rect,然后也是同样的错误。我已经完成了检查元素,但无法看到这个DOM元素。感谢帮助的人! –

    相关问题