2016-08-09 72 views
0

這裏是我的代碼,如何在SAP計數行數據UI5

var oTable_order = this.getView().byId("TabOrd"); 
oTable_order.setModel(oModel_order); 
oTable_order.bindAggregation("items", "/d/results", oTemplate); 
this.getView().setModel(oModel_order); 

請建議如何獲得計數設爲IconTabFilter伯爵元素與加載數據的長度。

Layout

+0

綁定到'{/ d/results/length}',就像你對模型 – Qualiture

+0

中的任何屬性是正確的,我已經使用它(忘記提及)我顯示3個選項卡,每個選項卡都有要顯示的表相同的數據,但用數據類型過濾 因此,它只能在第一個選項卡上工作,並且始終顯示最後一個選項卡的長度。 我需要一些其他方式來顯示計數值 –

回答

0

你必須在你的模型上運行了幾個ODataModel.read語句爲每個過濾器標籤的,是這樣的:

// These filters are the filter that should be applied for your icon count 
var _mFilters = { 
    matMaster: [new sap.ui.model.Filter("MatMaster", "EQ", true)], 
    equipment: [new sap.ui.model.Filter("Equipment", "EQ", true)], 
    prodOrder: [new sap.ui.model.Filter("OrderType", "EQ", "P")] 
}; 

// These are the counts that should be displayed on your filter buttons. 
// Bind them from your view 
var oViewModel = new JSONModel({ 
    matMaster: 0, 
    equipment: 0, 
    prodOrder: 0 
}); 
this.getView().setModel(oViewModel, "view"); 

// This will run the 3 read statement. One with each of the filters in 
// effect. The result will go into the oViewModel values declared above. 
jQuery.each(_mFilters, function (sFilterKey, oFilter) { 
    oModel.read("/Orders/$count", { 
     filters: oFilter, 
     success: function (oData) { 
      var sPath = "/" + sFilterKey; 
      oViewModel.setProperty(sPath, oData); 
     } 
    }); 
}); 

如果你然後綁定的計數性能IconTabFilter控件,例如:{view> matMaster}。每個計數應代表另一個過濾器值。

注意:不要擔心這是3讀。 UI5框架將很好地將這些內容捆綁到一個批處理中去,只需要一個請求,而不是三個。

+0

- _mFilters:{0} {0} {0} :[new sap.ui.model.Filter(「Equipment」,「EQ」,true)], prodOrder:[new sap.ui.model.Filter(「OrderType」,「EQ」,「P」)] }, –

+0

請代碼不完整,不應直接複製並粘貼到您的項目中。這只是爲了給你一個關於如何解決這個問題的一般想法。儘管如此,稍微改變了代碼。 – jpenninkhof