2016-05-31 85 views
0

我正在用JSON數據和UI5創建演示應用程序。這個想法(簡而言之)是爲選定的項目提供各種信息視圖。我正在使用IconTabBar控件。我創建了一個示例場景(希望),我可以更清楚地解釋問題。分層JSON模型和UI5

1. IconTabBar's第一片具有員工和用戶的列表可以通過選擇左側

2,本單選按鈕選擇一個將用戶帶到下一個選項卡,其中顯示說,銷售視圖。用戶可以點擊任何標籤並移至相應的視圖。

3.用戶可以在任意視圖下修改信息。如果用戶忘記或忽略保存數據,則選項卡顏色設置爲紅色。

4.用戶可以保存數據。

5.某些視圖具有主細節格式的信息。

我現在面臨的問題(S)是: -

1.How過濾基於表選擇的項目模型數據?

2.如何更新過濾的數據並設置回模型?

3.我也想知道數據是否正確結構

我使用下面的代碼公司被選中後更新綁定路徑。 GREP函數沒有爲投標返回正確的值。它只返回1個E001建議,而它應該返回2.它也不適用於訂單。我不確定數據結構是否正確。

var oModel_Data = oJSONDataModel.getData(); 

    var oView_Data = oViewDataModel.getData(); 



    var aModelData = oModel_Data[sSelected_Key]; 

    var aViewData = oView_Data[sSelected_Key]; 



    aViewData = jQuery.grep(aModelData, function(data, index) { 

    return data.id === sSelected_id 

    })[0]; 



    oView_Data[sSelected_Key]=aViewData; 

    oViewDataModel.setData(oView_Data); 

    oViewDataModel.refresh(true); 

我正在使用以下代碼來檢查用戶是否更改了數據。

var oView_Data = oViewDataModel.getData(); 

    var oModel_Data = oJSONDataModel.getData(); 



    var aViewData = oView_Data[in_sKey]; 

    var aModelData = oModel_Data[in_sKey]; 



    aModelData.forEach(function(item, index, array) { 

    var valueView = aViewData; 

    if (item.id === sSelected_id){ 

    //The code here need to consider complex(nested) data types 

    //Thus it should check type of not only valueView and item 

    //but also their each and every child elements 

    /*---------Temporary Solution---------------------*/ 

    var sViewValue = JSON.stringify(valueView); 

    var sItem = JSON.stringify(item); 

    var bSameData = sViewValue === sItem; 



    if (bSameData==true){ 

    flag_data_changed=false; 

    }else{ 

    return flag_data_changed=true; 

    } 

    } 

    }); 

我的json模型如下。

{ 

    "employees": [ 

      {"id":"E0001" , 

      "name":"Alec Stewert" 

      }, 



      {"id":"E0002" , 

      "name":"Debra Manning" 

      } 

    ], 



    "sales": [ 

      {"id":"E0001" , 

      "sale_q1":"10000", 

      "sale_q2":"3000", 

      "sale_q3":"8000", 

      "sale_q4":"2000" 

      }, 



      {"id":"E0002" , 

      "sale_q1":"8000", 

      "sale_q2":"3000", 

      "sale_q3":"7000", 

      "sale_q4":"5000" 

      } 

    ], 



    "proposal":[ 



      {"id":"E0001", 

      "fi_q":"Q2", 

      "value":"12000", 

      "customer":"6000" 

      }, 



      { "id":"E0001", 

       "fi_q":"Q2", 

       "value":"8000", 

       "customer":"2300" 

      } 

    ], 



    "key_orders": [ 

     {"id":"E0001", 

     "order_hdr": 

     [ 

      {"id":"O0001", 

      "fi_q":"Q1", 

      "value":"2000", 

      "customer":"2000" 

      }, 



      {"id":"O0002", 

      "fi_q":"Q1", 

      "value":"2000", 

      "customer":"2000" 

      } 

     ], 

     "order_dtl":[ 

      { 

      "id":"O0001", 

      "itm":"Item X", 

      "Qty":"100", 

      "rate":"20" 

      } 

     ] 

     }, 



     {"id":"E0002", 

     "order_hdr": 

     [ 

      {"id":"O0011", 

      "fi_q":"Q1", 

      "value":"2000", 

      "customer":"5000" 

      }, 



      {"id":"O0012", 

      "fi_q":"Q1", 

      "value":"1000", 

      "customer":"5000" 

      } 

     ], 

     "order_dtl":[ 

      { 

      "id":"O00011", 

      "itm":"Item Z", 

      "Qty":"200", 

      "rate":"10" 

      } 

     ] 

     } 

    ] 

} 

我已經在線調查和在SAP幫助中,但未能理解需要做什麼。任何幫助表示讚賞。

回答

1

1.如何根據表中選擇的項目過濾模型數據?

如果您準備JSONModel可以使用Filter

2.How更新過濾的數據和設置回模型?

如果表綁定到JSONModel,默認情況下JSNOModel是2方式結合,所以任何編輯的數據將在JSONModel

3。我也想知道是否該數據是通過Table的實例結構正確

走那麼你會得到該模型的想法,並結合模式,以表