使用注释或扩展名的智能筛选器中的默认值

2020-09-05 07:12发布

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

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


大家好,

我想知道使用标准版本打开应用程序时,有什么方法可以将默认值设置为智能过滤器。 下面是供参考的屏幕截图

日期列应在当日或当日之后预填充。

我已经扩展了标准列表控制器,但想知道过滤器的ID,并在过滤器值上或之后添加预填充日期。

是通过变体管理实现的还是有什么办法?

dd.jpg (29.0 kB)

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

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


大家好,

我想知道使用标准版本打开应用程序时,有什么方法可以将默认值设置为智能过滤器。 下面是供参考的屏幕截图

日期列应在当日或当日之后预填充。

我已经扩展了标准列表控制器,但想知道过滤器的ID,并在过滤器值上或之后添加预填充日期。

是通过变体管理实现的还是有什么办法?

dd.jpg (29.0 kB)
付费偷看设置
发送
9条回答
小熊yu生菜
1楼-- · 2020-09-05 07:28

嗨Prasad,

您可以使用"过滤器栏"的初始化事件来设置字段中的值。

要获取该字段,您可以执行以下操作 :

 var smartFilterBar = this.getView()。byId(" smartFilterBar"); //获取过滤条实例

 var field = smartFilterBar.getControlByKey(" FieldName"); //获取字段(FieldName是元数据中字段的名称)

 field.setValue(" My Value"); 

谢谢

Vaibhav Maheshwari

xfwsx85
2楼-- · 2020-09-05 07:32

Hi Vaibhav

感谢 Vaibhav Maheshwari 的回复

我能够预填充日期,但是您能提供给我任何代码来添加大于今天的日期值吗?

致谢

普拉萨德

梦想连接
3楼-- · 2020-09-05 07:28

嗨普拉萨德,

要添加将来的日期,您可以采用多种方式。

 var date = 新的Date(); //它会给您当前的系统日期(今天的日期)
 date.setDate(date.getDate()+ 10); //10是我将来想要的日子
 var date = new Date();  2019年1月4日星期五12:26:25 GMT + 0530(印度标准时间)
 date.addDays(1); //将来不希望有多少天Sat Jan 05 2019 12:26:25 GMT + 0530(India Standard Time)
haha101010
4楼-- · 2020-09-05 07:31

感谢 Vaibhav Maheshwari

我们默认加载"大于等于",如下所示。

下面是我实现的代码

 onInitSmartFilterBarExtension:函数(oEvent){
 var smartFilterBar = this.getView()。byId(" listReportFilter");
 var field = smartFilterBar.getControlByKey(" enddate");
 var dateFormat = sap.ui.core.format.DateFormat.getDateInstance({
 模式:" YYYY-MM-dd"
 });
 var datetoDay = dateFormat.format(new Date());


 field.setValue(datetoDay);
 }

 
zhangjiyang1323
5楼-- · 2020-09-05 07:33

为此,您必须使用令牌将其添加到过滤器中,而不是直接设置值。

请尝试以下代码:

 onInitSmartFilterBarExtension:function(oEvent){
 var smartFilterBar = this.getView()。byId(" listReportFilter");
 var field = smartFilterBar.getControlByKey(" enddate");
 var dateFormat = sap.ui.core.format.DateFormat.getDateInstance({pattern:" YYYY-MM-dd"});;
 var datetoDay = dateFormat.format(newDate());


//创建一个新令牌
 var token = new sap.m.Token({
 键:"日期",//任何唯一值
 文本:"> =" + datetoDay,//串联> =签署日期
 工具提示:"> =" + datetoDay
 });


//JSON声明我们想要在实际过滤器中的值
 var valueComp = {
       "排除":false,
       " keyField":"结束日期",
       " operation":" GE",
       " tokenText":"> =" + datetoDay,//连接> =签署日期
       " value1":datetoDay,//实际日期值
       " value2":未定义}
 };


//将以上定义的值添加到CustomData
 var customData = new sap.ui.core.CustomData(" data",{
                                               key:" custdata",//任何唯一值
                                               value:valueComp}); //上面声明的JSON
 token.addCustomData(customData); //将自定义数据添加到令牌
 field.addToken(token); //将令牌添加到过滤器字段。

 } 

感谢

Vaibhav Maheshwari

d56caomao
6楼-- · 2020-09-05 07:28

感谢 Vaibhav Maheshwari 进行回复

我实际上期望的是同一件事。 但是当我实际上点击go按钮时。 过滤器值未传递到后端,值从字段中消失了。

我们还需要在onBeforeRebindTableExtension方法中执行过滤器添加吗?

为什么单击" go"按钮后该值消失了。

致谢

普拉萨德

一周热门 更多>