2016-10-06 12 views
0

テーブルバインディングでの検索用に複数のフィルタを実装したいと思います。要件は、と条件で複数のフィルタを関連付けることである。SAPUI5フィルタと複数の引数に対するand-operation

擬似コード:

if(filterA && filter1 || filterB && filter1 || filterC && filter1){...} 

どのように私はそれを達成することができますか?

私は次のように試してみました:

var filter1 = [ new sap.ui.model.Filter("desc", FilterOperator.Contains, sQuery), new sap.ui.model.Filter("flag", FilterOperator.NE, 'X')]; 
       var filter2 = [ new sap.ui.model.Filter("costnr", FilterOperator.Contains, sQuery), new sap.ui.model.Filter("flag", FilterOperator.NE, 'X')]; 
       var filter3 = [ new sap.ui.model.Filter("location", FilterOperator.Contains, sQuery), new sap.ui.model.Filter("flag", FilterOperator.NE, 'X')]; 
       var filter4 = [ new sap.ui.model.Filter("location2", FilterOperator.Contains, sQuery), new sap.ui.model.Filter("flag", FilterOperator.NE, 'X')]; 
       var filter5 = [ new sap.ui.model.Filter("street", FilterOperator.Contains, sQuery), new sap.ui.model.Filter("flag", FilterOperator.NE, 'X')]; 
       var filter6 = [ new sap.ui.model.Filter("houseno", FilterOperator.Contains, sQuery), new sap.ui.model.Filter("flag", FilterOperator.NE, 'X')]; 
       var filter7 = [ new sap.ui.model.Filter("customer", FilterOperator.Contains, sQuery), new sap.ui.model.Filter("flag", FilterOperator.NE, 'X')]; 
       var filter8 = [ new sap.ui.model.Filter("ordernr", FilterOperator.Contains, sQuery), new sap.ui.model.Filter("flaga", FilterOperator.NE, 'X')]; 
       var oFilterExt = new sap.ui.model.Filter({filters: [filter1,filter2, filter3, filter4, filter5, filter6, filter7, filter8], and: false}); 

       //binding 
       binding.filter(oFilterExt, sap.ui.model.FilterType.Application); 

答えて

3

あなたはandプロパティで正しい軌道に乗っていた:

new sap.ui.model.Filter({ 
    and:false, 
    filters: [ 
     new sap.ui.model.Filter({ 
     and: true, 
     filters: [ 
      new sap.ui.model.Filter("property1", FilterOperator.Contains, sQuery), 
      new sap.ui.model.Filter("property2", FilterOperator.Contains, sQuery) 
     ]}), 
     new sap.ui.model.Filter({ 
     and: true, 
     filters: [ 
      new sap.ui.model.Filter("property3", FilterOperator.Contains, sQuery), 
      new sap.ui.model.Filter("property4", FilterOperator.Contains, sQuery) 
     ]}), 
     new sap.ui.model.Filter({ 
     and: true, 
     filters: [ 
      new sap.ui.model.Filter("property5", FilterOperator.Contains, sQuery), 
      new sap.ui.model.Filter("property6", FilterOperator.Contains, sQuery) 
     ]}) 
    ]}); 
+0

おかげで、それが解決しました – iach

関連する問題