分析表绑定

2020-08-18 07:53发布

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

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


嘿,

我用Fiori Elements建立了一个分析列表页面。 好吧,一切正常,应用程序执行应有的工作。

但是与此同时,我想添加一个额外的过滤器字段。 我想用"扩展名"添加此过滤器字段。 该附加字段应该是" DateRangeSelection",并应使用值进行预定义。

这些代码显示了扩展程序的视图:

 
 
 
 
 
 
 
 

这些代码显示了扩展程序的一部分控制器:

 onInitSmartFilterBarExtension:函数(oEvent){
 var sUrl =" ...";
 var oModel = new sap.ui.model.odata.v2.ODataModel(sUrl,true);
 sap.ui.getCore()。setModel(oModel);

 var BUDAT = this.byId(" budat");
 var firstDate = BUDAT.setDateValue(new Date(" 2020-01-01"));
 var secondDate = BUDAT.setSecondDateValue(new Date(" 2020-12-31"));

 var oFilter = new sap.ui.model.Filter(" Buchungsdatum",sap.ui.model.FilterOperator.BT,firstDate,secondDate);

 sap.ui.getCore()。byId(" budat")。bindRows({
 过滤器:oFilter,
 路径:" budat"
 });
 },
 

图片显示了App中的预定义字段。

一直到这里。

但是过滤器不起作用,并且数据没有正确加载。 我认为" bindRows"是错误的。 也许有人可以帮忙。

感谢您和最诚挚的问候

蒂姆

datepicker.jpg (12.6 kB)

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

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


嘿,

我用Fiori Elements建立了一个分析列表页面。 好吧,一切正常,应用程序执行应有的工作。

但是与此同时,我想添加一个额外的过滤器字段。 我想用"扩展名"添加此过滤器字段。 该附加字段应该是" DateRangeSelection",并应使用值进行预定义。

这些代码显示了扩展程序的视图:

 
 
 
 
 
 
 
 

这些代码显示了扩展程序的一部分控制器:

 onInitSmartFilterBarExtension:函数(oEvent){
 var sUrl =" ...";
 var oModel = new sap.ui.model.odata.v2.ODataModel(sUrl,true);
 sap.ui.getCore()。setModel(oModel);

 var BUDAT = this.byId(" budat");
 var firstDate = BUDAT.setDateValue(new Date(" 2020-01-01"));
 var secondDate = BUDAT.setSecondDateValue(new Date(" 2020-12-31"));

 var oFilter = new sap.ui.model.Filter(" Buchungsdatum",sap.ui.model.FilterOperator.BT,firstDate,secondDate);

 sap.ui.getCore()。byId(" budat")。bindRows({
 过滤器:oFilter,
 路径:" budat"
 });
 },
 

图片显示了App中的预定义字段。

一直到这里。

但是过滤器不起作用,并且数据没有正确加载。 我认为" bindRows"是错误的。 也许有人可以帮忙。

感谢您和最诚挚的问候

蒂姆

datepicker.jpg (12.6 kB)
付费偷看设置
发送
4条回答
SC_Yao
1楼-- · 2020-08-18 07:57

您好 TimMüller

问题是这行代码:

 sap.ui.getCore()。byId(" budat")。bindRows({
 过滤器:oFilter,
 路径:" budat"
 }); 

,您尝试将表行绑定到过滤器对象中。
删除该行并在onBeforeRebindTableExtension中尝试另一个stanrda事件:

 onBeforeRebindTableExtension:function(oEvent){
 var oBindingParams = oEvent.getParameter(" bindingParams");
 oBindingParams.parameters = oBindingParams.parameters ||  {};

 var oSmartTable = oEvent.getSource();
 var oSmartFilterBar = this.byId(oSmartTable.getSmartFilterId());
 var vCategory;
 如果(sap.ui.comp.smartfilterbar.SmartFilterBar的oSmartFilterBar实例){
//自定义价格过滤器
 var oCustomControl = oSmartFilterBar.getControlByKey(" CustomPriceFilter");
 如果(sap.m.ComboBox的oCustomControl实例){
 vCategory = oCustomControl.getSelectedKey();
 开关(vCategory){
 情况" 0":
 oBindingParams.filters.push(new sap.ui.model.Filter(" Price"," LE"," 100"));
 打破;
 情况1":
 oBindingParams.filters.push(new sap.ui.model.Filter(" Price"," GT"," 100"));
 打破;
 默认:
 打破;
 }
 }
 } 

这是我在文档中找到的自定义过滤器的示例 >。 使用过滤器更改BindingParams的最后一部分;)

致谢

浮生未央
2楼-- · 2020-08-18 08:20

嘿塞巴斯蒂亚诺,

该服务是通过引用->数据源在SEGW中创建的,并且Nullable和Filterable字段已锁定。

N-Moskvin
3楼-- · 2020-08-18 08:18

尝试使用:

 var dateFormat = sap.ui  .core.format.DateFormat.getDateInstance({pattern:" yyyy/MM/dy"});
 var BUDAT = this.byId(" budat");
 var firstDate =新的Date(BUDAT.getDateValue);
 var secondDate = new Date(BUDAT.getSecondDateValue);

 oBindingParams.filters.push(new sap.ui.model.Filter(" Buchungsdatum",sap.ui.model.FilterOperator.BT,firstDate,secondDate)); 
小c菟菟
4楼-- · 2020-08-18 08:01

第一张图片显示了 变量BUDAT的值。 这是正确的。

但是firstDate和secondDate的值无效吗? 所以错误应该在这里?

后端的数据类型为" DATS"

一周热门 更多>