在类型加载文件中定义布局
1. 一种类型存在多少个默认布局?
每种类型都有且仅有一个默认布局,且该默认布局不与任何配置文件或屏幕关联。
2. 子类型如何继承布局?
子类型会自动继承布局。这意味着不必在子类型中重新定义相同的布局 (这实际上可能会导致意外结果),请参阅第 4) 点。如果子类型共用相同的布局,则应考虑上移在类型层次树上的布局。
3. 是否可通过子类型更新继承的布局?
是,可通过使用子类型中的 <csvtypeContext>Parent-Type-Name</csvtypeContext> 标记定义布局,以此覆盖子类型中的布局。覆盖即意味着可以将新组添加到现有布局,或将新的 (继承或非继承) 属性添加到现有组,或重新定义组/组成员的特性,例如坐标。
4. 子类型是否可以创建自己的布局?
是,可通过将 <csvtypeContext/> 标记留空或将其设置为子类型名称,在子类型上下文中创建布局。请注意,一旦子类型创建了自己的布局,甚至在其自身的上下文中定义相同的继承布局,它就不再从其父类型继承任何布局,而是从所有继承的布局中分离出来。
5. 如何将新属性添加到子类型的布局中?
无论是否继承,定义为组成员的属性必须首先存在于该类型中。这意味着,如果想要在子类型的布局上添加新的 (非继承) 属性,则必须先在子类型上创建属性。
6. 如何创建动态组以加载批次属性?
通过将 "isStatic" 设置为 false,可创建一个动态组,该动态组可能具有 0-1 个组成员。此组成员必须为 LWCAttributeSetAttribute 类的属性,其中可能包含指向批次属性的“映射”特性,例如 SCA|ALL_IBAS。
加载文件示例
以下示例将布局及其元数据添加到 wt.change2.WTChangeOrder2 类型中。
!-- beginning to define a new layout -->
csvBeginLayoutDefView handler="com.ptc.core.lwc.server.TypeDefinitionLoader.
beginProcessLayoutDefinition">
csvname>mini_info_page_layout/csvname> !-- name of the layout -->
csvisDefault>false/csvisDefault> !-- whether this is the default layout to use -->
csvtypeContext>/csvtypeContext> !-- By default, it's the current type.
It is a must have to indicate an inherited layout -->
csvdefaultGroup>groupA/csvdefaultGroup> !-- the default group of the layout,
has to be one of the groups defined below -->
csvprofiles>/csvprofiles> !-- a combination of typeContext, profiles, and screens
uniquely identifies a layout -->
csvscreens>Mini_Info_Page/csvscreens> !-- available screens must have been
defined in the BaseDefinitionLoader.xml -->
/csvBeginLayoutDefView>

!-- beginning of defining a group within the layout -->
csvBeginGroupDefView handler="com.ptc.core.lwc.server.TypeDefinitionLoader.
beginProcessGroupDefinition">
csvname>groupA/csvname> !-- name of the group, uniquely identify a
group within a layout -->
csvisStatic>true/csvisStatic> !-- in most cases, it's true -->
csvstyle>List/csvstyle> !-- available group styles must have been defined in the
BaseDefinitionLoader.xml -->
/csvBeginGroupDefView>

!-- defining properties of the group: 3 in total -->
csvPropertyValue handler="com.ptc.core.lwc.server.TypeDefinitionLoader.
processGroupPropertyValue">
csvname>displayName/csvname> !-- name of the property -->
csvvalue>groupA/csvvalue> !-- value -->
csvlocale_en_us>EN_US groupA/csvlocale_en_us> !--
the following are localized values -->
csvlocale_en_gb>EN_GB groupA/csvlocale_en_gb>
csvlocale_fr>FR groupA/csvlocale_fr>
csvlocale_de>DE groupA/csvlocale_de>
csvlocale_es>ES groupA/csvlocale_es>
csvlocale_ja>JA groupA/csvlocale_ja>
csvlocale_it>IT groupA/csvlocale_it>
csvlocale_ko>KO groupA/csvlocale_ko>
csvlocale_zh_cn>ZH_CN groupA/csvlocale_zh_cn>
csvlocale_zh_tw>ZH_TW groupA/csvlocale_zh_tw>
/csvPropertyValue>
csvPropertyValue handler="com.ptc.core.lwc.server.TypeDefinitionLoader.
processGroupPropertyValue">csvname>description/csvname>
csvvalue>groupA/csvvalue>
csvlocale_en_us>EN_US groupA/csvlocale_en_us>
csvlocale_en_gb>EN_GB groupA/csvlocale_en_gb>
csvlocale_fr>FR groupA/csvlocale_fr>
csvlocale_de>DE groupA/csvlocale_de>
csvlocale_es>ES groupA/csvlocale_es>
csvlocale_ja>JA groupA/csvlocale_ja>
csvlocale_it>IT groupA/csvlocale_it>
csvlocale_ko>KO groupA/csvlocale_ko>
csvlocale_zh_cn>ZH_CN groupA/csvlocale_zh_cn>
csvlocale_zh_tw>ZH_TW groupA/csvlocale_zh_tw>
/csvPropertyValue>
csvPropertyValue handler="com.ptc.core.lwc.server.TypeDefinitionLoader.
processGroupPropertyValue">
csvname>sort_order/csvname>
csvvalue>1/csvvalue>
/csvPropertyValue>

!-- beginning of defining a membership of the group: -->
csvBeginGroupMemberView handler="com.ptc.core.lwc.server.TypeDefinitionLoader
.beginProcessGroupMembership">
csvname>number/csvname>
/csvBeginGroupMemberView>

!-- beginning of defining properties (coordinates) of the membership -->
csvPropertyValue handler="com.ptc.core.lwc.server.
TypeDefinitionLoader.process GroupMembershipPropertyValue">
csvname>col_coord/csvname>
csvvalue>1/csvvalue>
/csvPropertyValue>
csvPropertyValue handler="com.ptc.core.lwc.server.
TypeDefinitionLoader.process GroupMembershipPropertyValue">
csvname>row_coord/csvname>
csvvalue>1/csvvalue>
/csvPropertyValue>
csvPropertyValue handler="com.ptc.core.lwc.server.
TypeDefinitionLoader.process GroupMembershipPropertyValue">
csvname>col_span/csvname>
csvvalue>1/csvvalue>
/csvPropertyValue>
csvPropertyValue handler="com.ptc.core.lwc.server.
TypeDefinitionLoader.process GroupMembershipPropertyValue">
csvname>row_span/csvname>
csvvalue>1/csvvalue>
/csvPropertyValue>

!-- ending of defining a membership of the group -->
csvEndGroupMemberView handler="com.ptc.core.lwc.server.
TypeDefinitionLoader. endProcessGroupMembership"/>
!-- more memberships can be defined here -->
!-- ending of defining a group within the layout -->
csvEndGroupDefView handler="com.ptc.core.lwc.server.
TypeDefinitionLoader.end ProcessGroupDefinition"/>
!-- more groups can be defined here -->
!-- ending of defining a new layout -->
csvEndLayoutDefView handler="com.ptc.core.lwc.server.
TypeDefinitionLoader.end ProcessLayoutDefinition"/>
!-- more layouts can be defined here -->
!-- ending of defining a type -->
csvEndTypeDefView handler="com.ptc.core.lwc.server.
TypeDefinitionLoader.end ProcessTypeDefinition"/>

这对您有帮助吗?