2016-08-09 35 views
0

Hier ist mein Code,Wie Zeilendaten in 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); 

Bitte legen nahe, zählt, wie die Zählung in dem IconTabFilter Count Element mit der Länge der geladenen Daten eingestellt zu bekommen.

Layout

+0

Binden an '{/ d/results/length}', wie Sie mit jeder Eigenschaft in Ihrem Modell – Qualiture

+0

, das ist richtig, und ich habe es bereits verwendet (vergessen zu erwähnen) Ich zeige 3 Registerkarten mit jeweils Tabelle zur Anzeige gleiche Daten, aber gefiltert mit der Art der Daten daher funktioniert es nur auf der ersten Registerkarte und es zeigt immer die Länge der letzten Registerkarte. Ich brauche eine andere Möglichkeit, um den Zählwert anzuzeigen –

Antwort

0

Sie müssten ein paar ODataModel.read Anweisungen auf Ihrem Modell für jedes Ihrer Filter Tabs laufen, so etwas wie:

// 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); 
     } 
    }); 
}); 

Wenn Sie dann binden die Zählergebnisse Eigenschaften die Controls des IconTabFilters, zB: {view> matMaster}. Jede Zählung sollte einen anderen Filterwert darstellen.

Hinweis: Mach dir keine Sorgen darüber, dass es 3 liest. Das UI5-Framework bündelt diese in einem einzigen Batch, der zum Backend geht, was zu einer einzigen Anfrage führt, nicht zu drei.

+0

Es gibt einige Syntaxfehler in - _mFilters: { matMaster: [neue sap.ui.model.Filter ("MatMaster", "EQ", wahr)], Ausrüstung : [new sap.ui.model.Filter ("Equipment", "EQ", true)], prodOrder: [neuer sap.ui.model.Filter ("OrderType", "EQ", "P")] }, –

+0

Der Code ist nicht vollständig und sollte nicht direkt in Ihr Projekt kopiert und eingefügt werden. Es soll lediglich eine allgemeine Vorstellung davon geben, wie das zu lösen ist. Habe den Code trotzdem etwas geändert. – jpenninkhof