首页 > 解决方案 > SAP CX - HYBRIS:将输入配置为仅显示小时 - 默认时间

问题描述

我在后台的 a 部分添加了一个新属性。我添加了一个日期时间属性

                <editorArea:attribute qualifier="DateCutOffTime" defaultEditor="com.hybris.cockpitng.editor.defaulttime">
                        <editorArea:editor-parameter>
                            <editorArea:name>timeFormat</editorArea:name>    
                            <editorArea:value>short</editorArea:value>
                        </editorArea:editor-parameter>
                        <editorArea:editor-parameter>
                            <editorArea:name>timeZoneReadOnly</editorArea:name>
                            <editorArea:value>false</editorArea:value>  
                        </editorArea:editor-parameter>
                        <editorArea:editor-parameter>
                             <editorArea:name>selectedTimeZone</editorArea:name>
                             <editorArea:value>GMT+01:00</editorArea:value>
                        </editorArea:editor-parameter>
                        <editorArea:editor-parameter>
                             <editorArea:name>displayedTimeZones</editorArea:name>
                             <editorArea:value>GMT-12:00,GMT-11:00,GMT-10:00,GMT-09:30,GMT-09:00,GMT-08:00,GMT-07:00,GMT-06:00,GMT-05:00,GMT-04:30,GMT-04:00,GMT-03:30,GMT-03:00,GMT-02:00,GMT-01:00,GMT+00:00,GMT+01:00,GMT+02:00,GMT+03:00,GMT+03:30,GMT+04:00,GMT+04:30,GMT+05:00,GMT+05:30,GMT+05:45,GMT+06:00,GMT+06:30,GMT+07:00,GMT+08:00,GMT+08:30,GMT+08:45,GMT+09:00,GMT+09:30,GMT+10:00,GMT+10:30,GMT+11:00,GMT+12:00,GMT+12:45,GMT+13:00,GMT+14:00</editorArea:value>
                        </editorArea:editor-parameter>
                    </editorArea:attribute>

但我有一个带日历的显示器

在此处输入图像描述

我想显示一个组件,只显示选择时间和时区或只显示小时。

标签: hybrisbackoffice

解决方案


您似乎混合了 2 种不同类型的配置

这一行是错误的:

<editorArea:attribute qualifier="DateCutOffTime" defaultEditor="com.hybris.cockpitng.editor.defaulttime">

您想对特定属性(限定符)使用编辑器。为此,您需要使用editor而不是编写标题defaultEditor。如果您查看对应的 xsd 验证,您会注意到 defaultEditor 不是有效的配置选项。将其更改为editor,它应该可以工作。(假设 DateCutoffTime 是您的一个对象的属性而不是类型,如果它是类型,请查看答案的第二部分)

<editorArea:attribute qualifier="DateCutOffTime" editor="com.hybris.cockpitng.editor.defaulttime">

对应的xsd:

<xs:complexType name="attribute">
        <xs:complexContent>
            <xs:extension base="abstractPositioned">
                <xs:sequence>
                    <xs:element name="editor-parameter" type="parameter" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
                <xs:attribute name="qualifier" type="xs:string" use="required"/>
                <xs:attribute name="label" type="xs:string" use="optional"/>
                <xs:attribute name="visible" type="xs:boolean" use="optional" default="true"/>
                <xs:attribute name="readonly" type="xs:boolean" use="optional" default="false"/>
                <xs:attribute name="editor" type="xs:string" use="optional"/>
                <xs:attribute name="merge-mode" type="xs:string" use="optional"/>
                <xs:attribute name="description" type="xs:string" use="optional"/>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>

(完成)

据我所知, defaultEditor 仅用于为type定义默认编辑器。然后您需要指定要为其创建默认编辑器的类型。这也需要放在 .zul 文件中,而不是常规的后台配置文件中。

<editor id="textEditor" type="java.lang.String" defaultEditor="com.hybris.cockpitng.editor.defaulttext"/>

推荐阅读