当在sap ui5中选择*时,过滤器代码返回2a而不是*(star)

2020-08-17 19:14发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)专家们, 我在sapui5中面...

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

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


专家们,

我在sapui5中面临一个问题。

1)应用过滤器有4个字段,我在sap ui5读取调用中获取数据。 当选择的值为TRANSPORT12时,它正在工作;当选择为'*'时,它失败。 如果显示star(*),则可以从网络选项卡中检查以下过滤器,它显示为2a。 那就是存在问题的地方,如何将其保留为用户在组合框中选择的星形。 我已经检查了后端服务,该记录为我提供了正确的记录,但在前端服务中仅看起来像问题存在。

场景1 :ZZ_USERNAME ='TRANSPORT12',ZZ_AREA ='',ZZ_STATUS_DATE =''和SHOW_PRD =''

场景2 :ZZ_USERNAME ='*',ZZ_AREA ='',ZZ_STATUS_DATE =''和SHOW_PRD =''

计数=假设21

TestSet $ filter = ZZ_USERNAME%20eq%20%27 TRANSPORT12 %27%20and%20ZZ_AREA%20eq%20%27%27%20and%20(ZZ_STATUS_DATE%20ge%20%27%27 %20and%20ZZ_STATUS_DATE%20le%20%27%27)%20and%20SHOW_PRD%20eq%20%27%20%27

计数=计数没有变化,它应该返回12条记录,比如说

TestSet $ filter = ZZ_USERNAME%20eq%20%27% 2a %27%20and%20ZZ_AREA%20eq%20%27%27%20and%20(ZZ_STATUS_DATE%20ge%20%27% 27%20and%20ZZ_STATUS_DATE%20le%20%27%27)%20and%20SHOW_PRD%20eq%20%27%20%27

后端服务:

/opu/odata/sap/Service_SRV/TestSet/?$ filter =(ZZ_USERNAME eq'TRANSPORT12')和(ZZ_AREA eq'')和(ZZ_STATUS_DATE ge''和ZZ_STATUS_DATE le'')和(SHOW_PRD eq'' )

控制器中的UI过滤器代码:
 filterRecords:function(){
 var that = this;
 var userId = sap.ushell.Container.getService(" UserInfo")。getUser()。getId();
 var aDate = that.getView()。byId(" DRS3")。getDateValue();
 var adateFormat = sap.ui.core.format.DateFormat.getDateInstance({
 模式:" yyyMMdd"
 });
 var adateFormatted = adateFormat.format(aDate);


 var bDate = that.getView()。byId(" DRS3")。getSecondDateValue();
 var bdateFormat = sap.ui.core.format.DateFormat.getDateInstance({
 模式:" yyyMMdd"
 });
 var bdateFormatted = bdateFormat.format(bDate);


 var pakageOwner = that.getView()。byId(" combo1")。getValue();
//var pakageOwner =" transport12";
 var businessArea = that.getView()。byId(" combo2")。getValue();
//var businessArea =" TECH";
 var showPrd = that.getView()。byId(" prdflag")。getState();
 如果(!showPrd){
 showPrd ='';
 }其他{
 showPrd ='X';
 }
////alert(adateFormatted +" from" + bdateFormatted +"" + pakageOwner +"" + businessArea +"" + showPrd);
 var url ="/img/sap/opu/odata/sap/Service_SRV/";
//var andFilter = [];
//var orFilter = [];
 var andFilter = new Filter({
 过滤器:[


 新的sap.ui.model.Filter({
 路径:" ZZ_STATUS_DATE",
 运算子:sap.ui.model.FilterOperator.GE,
 值1:adateFormatted
 }),
 新的sap.ui.model.Filter({
 路径:" ZZ_STATUS_DATE",
 运算子:sap.ui.model.FilterOperator.LE,
 值1:bdateFormatted
 })


 ],
 和:正确
 });
 var allfilters = [new sap.ui.model.Filter({
 路径:" ZZ_USERNAME",
 运算子:sap.ui.model.FilterOperator.EQ,
 值1:pakageOwner
 }),
 新的sap.ui.model.Filter({
 路径:" ZZ_AREA",
 运算子:sap.ui.model.FilterOperator.EQ,
 值1:businessArea
 }),
 和过滤器
 新的sap.ui.model.Filter({
 路径:" SHOW_PRD",
 运算子:sap.ui.model.FilterOperator.EQ,
 值1:showPrd
 })
 ];
 var oModel = new sap.ui.model.odata.v2.ODataModel(url);
 sap.ui.getCore()。setModel(oModel);
 var oModel1 = new sap.ui.model.json.JSONModel();
 oModel.metadataLoaded()。then(function(oSuccess){
 oModel.read("/img/PACKAGESet",{
 过滤器:所有过滤器,
 成功:函数(oData){


 lv_BusyDialog.close();
 var data = oData;
 oModel1.setData(data);
 that.getView()。setModel(oModel1," key");


 },
 错误:函数(oError){


//alert(" error");


 }


 });
 },函数(oError){


 });
 }
 

让我知道更多细节。

4条回答
绿领巾童鞋
2020-08-17 19:56

正如我所说的,在少数情况下,数据计数不是很大时,它可以工作。 它不断出现,所以不是间歇性的问题。

感谢您的回复。

一周热门 更多>