Web サービスを作成し、SAPUI5 で oData プロトコルを使用してデータをバインドしようとしました。
私はテーブルを作成しました:
createContent : function(oController) {
jQuery.sap.require("sap.ui.table.Table");
//Create table control with properties
var oTable = new sap.ui.table.Table({
width : "100%",
rowHeight : 50,
title : "Lst of Items",
selectionMode : sap.ui.table.SelectionMode.None
});
oTable.addColumn(new sap.ui.table.Column({
label : new sap.ui.commons.Label({
text : "PO Number"
}),
template : new sap.ui.commons.TextView({
text : "{PoNumber}"
}),
}
));
oTable.addColumn(new sap.ui.table.Column({
label : new sap.ui.commons.Label({
text : "Item"
}),
template : new sap.ui.commons.TextView({
text : "{PoItem}"
}),
}
));
//Filter values for a certain PO
var aFilter = [];
aFilter.push( new sap.ui.model.Filter("PoNumber", sap.ui.model.FilterOperator.EQ, "4500000043") );
oTable.bindRows({
path: "/PurchaseOrderItemCollection",
filters: aFilter
});
return oTable;
}
出力は次のようになります。
PONumber POItem
4500000043 0010
4500000043 0020
しかし、私が得るものは次のとおりです。
PONumber POItem
4500000043 0020
4500000043 0020
したがって、最後の項目が 2 回表示され、最初の項目は表示されません。Web サービス コードにブレーク ポイントを配置すると、正しく入力されます。
データ モデルは、次の方法で作成されます。
var oModel = new sap.ui.model.odata.ODataModel(sServiceUrl, false, "user", "passw");
sap.ui.getCore().setModel(oModel);