首页 文章

SAPUI5智能表 - 智能字段使用注释强制字段

提问于
浏览
0

是否可以强制要求SAPUI5智能表中的属性,以便用户在编辑时不能将字段留空?

我发现this document说应该可以在metadata.xml文件中的Property上设置必需的字段控件,注释如下:

<Property Name="NameLast" Type="Edm.String" Nullable="false" MaxLength="40" sap:label="Last name" sap:field-control="7" />

但是使用此设置我在控制台中收到以下错误:

2017-04-14 11:37:36.691429 MockServer: Resource not found for the segment '7' 
2017-04-14 11:37:36.707985 The following problem occurred: HTTP request failed404,Not Found,{"error":{"code":404,"message":{"lang":"en","value":"Resource not found for the segment '7'"}}} -

编辑:

后来我发现sap:field-control不应该包含数字,而是包含该数字的另一个属性的路径表达式 . 但是这也行不通:

<Property Name="NameLast" Type="Edm.String" Nullable="false" MaxLength="40" sap:label="Last name" sap:field-control="Name_fc" />
<Property Name="Name_fc" Type="Edm.Byte" />

Name_fc属性的值为'7' . 我现在没有看到任何控制台错误,但是我仍然可以将输入(NameLast)字段留空而不进行任何验证并将其发送到OData服务,这不是我所期望的 .

以下是sap中使用必填字段的示例的链接 . 我不知道他们是如何做到的 . https://sapui5.netweaver.ondemand.com/sdk/explored.html#/sample/sap.ui.comp.sample.smartfield/code/SmartField.view.xml

3 回答

  • 0

    对于OData v2,属性上的sap:field-control批注可用于指定该字段是否为必填字段 .

    <Property Name="Customer" ... sap:field-control="mandatory"/>   
     <Property Name="CompanyCode" ... sap:field-control="mandatory"/>
    

    https://sapui5.hana.ondemand.com/#docs/api/symbols/sap.ui.comp.smartfield.SmartField.html

  • 0

    该实体的强制性 property 必须为 nullable="false" . 而已 .

    查看链接中的智能字段示例:

    <Property Name="Name" Type="Edm.String" Nullable="false"
                    MaxLength="30" sap:label="Name" sap:creatable="false"
                    sap:quickinfo="Property annotation DataFieldWithUrl"
                    sap:updatable="true" sap:sortable="false" />
    

    顺便说一句 . 感谢分享您的智能表示例!

  • 0

    根据我的理解,有两种选择:

    1)将特定属性定义为强制 - > Nullable="false"

    2)将房产链接到实体中的另一个房产,即“现场控制” . 该字段控件可以包含数字,“7”表示必须包含数字 .

    选项2的链接可以在MPC_EXT类中完成(重新定义define方法) . “field-control”属性中的实际值在get_entity / get_en中设置

    但是我也遇到了smarttable的问题 . 空白时,必填字段不会亮起红色 .

相关问题