sapui5绑定问题中的smartform

2020-09-19 17:18发布

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

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


我正在尝试使用cds视图创建附加到odata服务的smartform。 我能够使用批注和metadata.xml成功创建smartfilter和表,但是陷入了smartform中。 该视图可以使用SmartField很好地呈现,但是要注意的是我必须为每个SmartField定义EntitySet,而在示例应用程序中,我检查这不是必需的。如果我从SmartField中删除实体集,则不会呈现SmartField。 这是我遵循的步骤顺序

第一步:我导入了odata服务并创建了默认模型。

第2步:基于数据服务创建了本地注释文件,其外观如下:

abc

在元数据中,存在以下相同属性:

<属性名称=" abc"类型=" Edm.String" MaxLength =" 4" sap:display-format =" UpperCase" sap:creatable =" true" sap:updatable =" true" sap:label =" 采购订单"/>

我认为我使用的是smartform,如下所示:

< /sap.ui.comp.smartform:Group>

在此处请求您的专家意见。

我也浏览了SCN上发布的博客,但看不到这些选项

https://blogs.sap.com/2016/04/22/how-to-use-smart-templates-with-sap-web-ide-extensibility /

https ://blogs.sap.com/2017/06/06/dynamic-field-control-using-annotations-in-sapui5 /

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

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


我正在尝试使用cds视图创建附加到odata服务的smartform。 我能够使用批注和metadata.xml成功创建smartfilter和表,但是陷入了smartform中。 该视图可以使用SmartField很好地呈现,但是要注意的是我必须为每个SmartField定义EntitySet,而在示例应用程序中,我检查这不是必需的。如果我从SmartField中删除实体集,则不会呈现SmartField。 这是我遵循的步骤顺序

第一步:我导入了odata服务并创建了默认模型。

第2步:基于数据服务创建了本地注释文件,其外观如下:

abc

在元数据中,存在以下相同属性:

<属性名称=" abc"类型=" Edm.String" MaxLength =" 4" sap:display-format =" UpperCase" sap:creatable =" true" sap:updatable =" true" sap:label =" 采购订单"/>

我认为我使用的是smartform,如下所示:

< /sap.ui.comp.smartform:Group>

在此处请求您的专家意见。

我也浏览了SCN上发布的博客,但看不到这些选项

https://blogs.sap.com/2016/04/22/how-to-use-smart-templates-with-sap-web-ide-extensibility /

https ://blogs.sap.com/2017/06/06/dynamic-field-control-using-annotations-in-sapui5 /

付费偷看设置
发送
4条回答
当学会了学习
1楼-- · 2020-09-19 17:34

贾斯汀,你好

我相信您的注释文件缺少一些UI.DataField元素或UI.DataPoints。 智能组件需要此注释才能在屏幕上显示元素-默认情况下,任何智能控件上都不会显示任何元素。 在博客

关于,
伊凡

jovirus
2楼-- · 2020-09-19 17:45

还有其他建议可以尝试吗?

葫芦娃快救爷爷
3楼-- · 2020-09-19 17:43

嗨贾斯汀,

请检查我如何在此简单的智能表单SAPUI5应用程序上使用智能表单组件。 我相信您的问题与xml视图有关。 显然,您使用的是无效标签,这可能会对智能字段控件产生不良影响。 请在此处查看文档

因此,我对您有一些建议:

1)不要使用与组件名称空间相同的名称空间。 直接在视图上声明名称空间,以使您的UI组件更具可读性。

2)我找不到智能表单的任何文档 api 与标签" groups"和" elements"相关。 因此,我相信摆脱它们是安全的。 <<-元素和组不是smartform api的一部分。

3)检查如何在xml视图中声明名称空间以及后者如何使用它:

  

4)检查读取以下xml的过程是否简单:

 
   
     
       
     
     
       
     
   
  

5)使智能表单与列表选择器一起使用。 因此,您需要将智能表单嵌入到一个页面上,该页面将从所选项目传播绑定(例如:Master View Detail示例应用程序)。 在示例应用程序中,我手动创建了一个JSON模型,并一次将一个元素绑定到页面的智能表单。 请注意,这不是在智能表单上显示数据的唯一方法。 您应该绑定来自主集合(列表选择器)的导航属性,该属性指向表单应该显示的数据。 在上面的代码中,我输入了绑定并指定了我想显示它在resultData集合中找到的第一条记录。

6)AFAIK:智能表单UI组件的OData V2注释的使用受到限制,该服务应直接处理它们。 我看你已经有几个了。 因此,例如,当注释" sap:label"映射到Odata的ktext属性时,它将自动在智能字段上放置一个标签。 <属性名称=" ktext"类型=" Edm.String" MaxLength =" 40" sap:label ="工作中心"/> OData V4提供了更多选项。 要检查每个注释如何影响每个Smart Field控件,请检查 文档。 本文档包含V2和V4的两种变体。

7)我认为您不需要为实现的目标添加本地注释文件。 AFAIK:从允许您从服务的元数据中选择要显示的字段而不必像现在这样在xml视图上手动输入字段的情况下,Smart Form控件不能像Smart Table控件那样工作。

从这种意义上讲,如果这成为您设计的问题,那么您可能需要查看对象页 。 在内部,OP将使用智能表单来允许用于编辑数据。 但是您不会手动构建智能表单标签。 OP和本地注释已对此进行了处理。 希望这可以帮助。

关于,伊万

ZJXianG
4楼-- · 2020-09-19 17:23

我已经创建了一个odata服务和一个模型。 现在,我创建了一个本地注释文件,并在其中添加了内容...但是我没有选择添加UI.DataField元素或UI.DataPoints

如果我创建工作清单并添加选择字段,则可以正常工作,但是我需要一个智能表格才能工作

一周热门 更多>