4

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);
4

2 に答える 2

2

私はこれに遭遇しました。問題はデータ モデルにあります。エンティティの PO 番号と PO アイテムの両方がキーとしてマークされていることを確認します。メタデータ キャッシュを更新し、両方のプロパティがキーとして表示されることを確認してから、再試行してください。それはうまくいくはずです。

ありがとうクリシュナ

于 2013-09-14T14:09:23.647 に答える