将格式化程序应用于字段和多字段处理概念时的处理过滤器

2020-08-20 04:22发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


专家们,

我遇到了过滤器代码中的一个问题,该问题给出了错误的搜索结果。 使用格式化程序功能处理UI值时,就会发生此问题。 我已经使用json文件加载数据并进行了测试。 如果您在状态字段中搜索值为Keep或Remove,但在odata/json中则值为Y或N或""。 它应该提供相关的项目列表,但是不起作用。 您可能会在zip文件中获得完整的代码。 如果您需要更多详细信息,请告诉我。 请建议如何处理这种情况,在这种情况下,我从oData/Jason获取了不同的数据,但是在UI上进行了操作以获取不同的结果,但是如何进行搜索。

您可以在下面的URL中获得相同的zip文件。 您可以下载文件并导入到Web进行测试。

ztableLiveChange.zip

Git中心网址: https://github.com/rkmishra2703/RK -

 XML代码:
 

 

 控制器代码:
 onSearch:function(oEvent){
    var that = this;
   var sQuery = oEvent.getSource()。getValue();
   //var sQuery = oEvent.getParameter(" newValue");
    var oList = that.getView()。byId(" idTable");
    var oBinding = oList.getBinding(" items");
   
    如果(sQuery){
     var aFilter = [];
     aFilter.push(new Filter(" MAN_USER_ID",FilterOperator.Contains,sQuery));
     aFilter.push(new Filter(" USER_ID",FilterOperator.Contains,sQuery));
     aFilter.push(new Filter(" EMP_FIRST_NAME",FilterOperator.Contains,sQuery));
     aFilter.push(new Filter(" T_CODE",FilterOperator.Contains,sQuery));
     aFilter.push(new Filter(" T_CODE_DSCRIPTN",FilterOperator.Contains,sQuery));
     aFilter.push(new Filter(" TEAMLEAD_FUNAREA",FilterOperator.Contains,sQuery));
     aFilter.push(new Filter(" MAN_APPROVE",FilterOperator.EQ,sQuery));
     aFilter.push(new Filter(" TEAMLEAD_APPR",FilterOperator.EQ,sQuery));
                 aFilter.push(new Filter(" TEAMLEAD_APPR_ID",FilterOperator.Contains,sQuery));
               
     oBinding.filter(new Filter({
      过滤器:aFilter,
      和:false
     }));
   
    }其他{
    
     oBinding.filter([]);
    }
   }

 格式化功能:
 availableColor:函数(available,available1){
     if(available ==="" && available1 ===" Y"){
      返回"保持";
     } else if(available ===" Y" && available1 ===" Y"){
      返回"保持";
     }否则if(available ===" N" && available1 ===" Y"){
      返回"保持";
     }否则if(available ===" Y" && available1 ===""){
      返回"保持";
     }否则if(available ==="" && available1 ===""){
      返回"";
     } else if(available ==="" && available1 ===" N"){
      返回"删除";
     } else if(available ===" N" && available1 ===" N"){
      返回"删除";
     } if if(available ===" Y" && available1 ===" N"){
      返回"删除";
     }其他{
      返回"删除";
     }
    }

 

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


专家们,

我遇到了过滤器代码中的一个问题,该问题给出了错误的搜索结果。 使用格式化程序功能处理UI值时,就会发生此问题。 我已经使用json文件加载数据并进行了测试。 如果您在状态字段中搜索值为Keep或Remove,但在odata/json中则值为Y或N或""。 它应该提供相关的项目列表,但是不起作用。 您可能会在zip文件中获得完整的代码。 如果您需要更多详细信息,请告诉我。 请建议如何处理这种情况,在这种情况下,我从oData/Jason获取了不同的数据,但是在UI上进行了操作以获取不同的结果,但是如何进行搜索。

您可以在下面的URL中获得相同的zip文件。 您可以下载文件并导入到Web进行测试。

ztableLiveChange.zip

Git中心网址: https://github.com/rkmishra2703/RK -

 XML代码:
 

 

 控制器代码:
 onSearch:function(oEvent){
    var that = this;
   var sQuery = oEvent.getSource()。getValue();
   //var sQuery = oEvent.getParameter(" newValue");
    var oList = that.getView()。byId(" idTable");
    var oBinding = oList.getBinding(" items");
   
    如果(sQuery){
     var aFilter = [];
     aFilter.push(new Filter(" MAN_USER_ID",FilterOperator.Contains,sQuery));
     aFilter.push(new Filter(" USER_ID",FilterOperator.Contains,sQuery));
     aFilter.push(new Filter(" EMP_FIRST_NAME",FilterOperator.Contains,sQuery));
     aFilter.push(new Filter(" T_CODE",FilterOperator.Contains,sQuery));
     aFilter.push(new Filter(" T_CODE_DSCRIPTN",FilterOperator.Contains,sQuery));
     aFilter.push(new Filter(" TEAMLEAD_FUNAREA",FilterOperator.Contains,sQuery));
     aFilter.push(new Filter(" MAN_APPROVE",FilterOperator.EQ,sQuery));
     aFilter.push(new Filter(" TEAMLEAD_APPR",FilterOperator.EQ,sQuery));
                 aFilter.push(new Filter(" TEAMLEAD_APPR_ID",FilterOperator.Contains,sQuery));
               
     oBinding.filter(new Filter({
      过滤器:aFilter,
      和:false
     }));
   
    }其他{
    
     oBinding.filter([]);
    }
   }

 格式化功能:
 availableColor:函数(available,available1){
     if(available ==="" && available1 ===" Y"){
      返回"保持";
     } else if(available ===" Y" && available1 ===" Y"){
      返回"保持";
     }否则if(available ===" N" && available1 ===" Y"){
      返回"保持";
     }否则if(available ===" Y" && available1 ===""){
      返回"保持";
     }否则if(available ==="" && available1 ===""){
      返回"";
     } else if(available ==="" && available1 ===" N"){
      返回"删除";
     } else if(available ===" N" && available1 ===" N"){
      返回"删除";
     } if if(available ===" Y" && available1 ===" N"){
      返回"删除";
     }其他{
      返回"删除";
     }
    }

 
付费偷看设置
发送
2条回答
绿领巾童鞋
1楼 · 2020-08-20 04:40.采纳回答

您好 Raju Rajan

Formatter仅用于格式化UI中的数据,而且 仅表格中可见的项目。 它将不会更新模型。

因此您可以为此

1。 绑定数据之前,请在模型中手动更新数据,然后将其绑定回表。 否则,如果是odata直接绑定到表,请让odata/后端团队为此提供一个附加字段。

2。 这不是您情况下的最佳方法,并且有点复杂:在搜索时,检查值是否为" keep",然后对availableColor所做的事情进行反向推导,然后用这些值填充过滤器。

-Mahesh

当学会了学习
2楼-- · 2020-08-20 04:39

感谢Mahesh

我想添加有助于解决该问题的URL。 如果有人需要它可能会有所帮助。

https://stackoverflow .com/questions/38922998/将属性添加到对象数组

一周热门 更多>