4

我正在尝试在我的 FIORI 应用程序中从 EntitySet(比如 E1)创建一个树表。

我有我的控制器和扩展视图,并且数据在两者之间正确绑定。

我指的是树表代码的官方 SAP Demo Explored Kit。

  1. 在那里,他们将 5 个参数作为 JSON 的输入。根节点的样本数据:

    {
    "NodeID": 1,
    "HierarchyLevel": 0,
    "Description": "1",
    "ParentNodeID": null,
    "DrillState": "expanded"
    },
    

    现在,我的 OData EntitySet 中没有“DrillState”字段。这个字段的目的是什么,没有它我的树会正常显示吗?如果需要,我可以对逻辑进行硬编码。

  2. 目前我没有通过“DrillState”。我的输出看起来很奇怪。它只是一个没有树形结构的普通表,并且都处于同一级别(但第一列确实附加了“展开或折叠”按钮,但它没有任何作用)。

以下是我的 XML 代码:

    <table:TreeTable
        id="treeTable"
        selectionMode="Single"
        enableColumnReordering="false"
        expandFirstLevel="false"
        rootLevel="01"
        useGroupMode="false"

    rows="{
        path: '/ZSC',
        parameters : {
            countMode: 'Inline',
            treeAnnotationProperties : {
                hierarchyLevelFor : 'tree_level',
                hierarchyNodeFor : 'Node',
                hierarchyParentNodeFor : 'parent'
            }
        }
    }">

<!-- add drill state in property and path also-->


    <table:columns>

         <table:Column label="Hier_ID">
            <table:template>
                <Text text="{Hier_ID}"/>
            </table:template>
        </table:Column>

        <table:Column label="tree_level">
            <table:template>
                <Text text="{tree_level}"/>
            </table:template>
        </table:Column>

        <table:Column label="Node">
            <table:template>
                <Text text="{Node}"/>
            </table:template>
        </table:Column>

        <table:Column label="parent">
            <table:template>
                <Text text="{parent}"/>
            </table:template>
        </table:Column>

    </table:columns>

</table:TreeTable>

我哪里错了?或者我是否必须以不同的方式映射它,因为我从实体集中获取数据,并且在教程中它们直接作为 JSON 对象传递

4

1 回答 1

0

尽管SAP Annotations for OData Version 2.0 - Entity Set with Hierarchy提到了hierarchy-drill-state-for under (good-to-have)

此外,可以通过带有注释的属性添加更多有用的层次结构信息...

以下是从 ODataTreeBinding.js 记录的。所以hierarchy-drill-state-for更像是除了hierarchy-level-for、hierarchy-parent-node-for、hierarchy-node-for、hierarchy-drill-state-for之外的必备品

“层次树注释不完整。请检查您的服务元数据定义!”

您需要按如下方式指定它们。

<TreeTable
selectionMode="Single"
rows="{
  path: '<your path>',
  parameters : {
  treeAnnotationProperties : {
                hierarchyLevelFor : '<your property>',
                hierarchyNodeFor : '<your property>',
                hierarchyParentNodeFor : '<your property>',
                hierarchyDrillStateFor : '<your property>'
            }
  }
}">
于 2022-01-26T00:03:32.637 回答