如何在SAPUI5 App和DB中处理枚举

2020-09-03 22:40发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)我已经创建了这样的数据模型,并创...

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

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


我已经创建了这样的数据模型,并创建了OData服务:

实体WikiPages {
 密钥ID:整数;
 SpaceKey:字符串(25);
 空格:字符串(50);
 标题:String(255);
 PageLink:字符串(255);
 SpaceStatus:字符串(15);
 LastUpdate:日期;
 SAPuserID:字符串(255);
 PageViews:整数;
 审稿人:弦乐(15);
 注释:字符串(255);
 状态:整数;
 }
 

状态列是一个整数,但实际上代表一个枚举-每行都有一个状态。

在我的SAPUI5应用程序中,我创建了一个名为"动作"的数据模型,并为每个枚举输入了键和文本。

 var actions = {" Actions":[
 {键:0,标签:""},
 {键:1,标签:"保持"},
 {键:2,标签:"迁移"},
 {键:3,标签:"删除"}
 ]};

 var oModel = new sap.ui.model.json.JSONModel(actions);
 this.getView()。setModel(oModel," actions");
 

在我看来,我创建了一个Select控件,其中键绑定到我的数据表,而选择项绑定到我在上面创建的数据模型:

 <列宽=" 8rem" hAlign =" Center">
 
 <模板>
 
 />
 
 
 
 

一切正常,我得到了想要的功能(尽管我不知道这是否是执行此操作的最佳方法):

2个问题:

  • 是否有一种标准(更好的方法)来实现我想做的事情?
  • 我的应用程序运行良好,但我不知道如何让人们在此列上进行过滤。 我将该列的filterProperty设置为data字段,但是即使输入密钥(例如,像1这样的整数),也无法进行过滤。 我在做什么错了?

(83.9 kB)
4条回答
我是小鹏鹏啊
2020-09-03 23:34

丹尼尔,你好

您可以使用JSONModel或为状态定义一个实体,并将Select绑定到该实体:

实体任务{
     密钥ID:UUID;
     title:字符串;
     状态:状态关联;
 }

 实体状态{
     密钥ID:整数;
     代码:字符串;
 }
 

如果状态可能会更改,则应使用一个实体,因为您的应用程序将更易于维护。

关于过滤器,您应该首先查看问题是来自前端还是后端。 在UI5应用中应用过滤器后,应发送带有$ filter参数的请求:

/Tasks?$ filter = status_ID eq 3 

您是否正在使用OData v2或v4,Java或Node.js? 我刚刚检查了一下,我没有做任何事情来使上面的过滤器正常工作,因此它必须在默认的Java OData v2实现中。

干杯

Pierre

一周热门 更多>