2015-01-05 53 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元素。感謝幫助的人! –

    相關問題