Я написал XML-фрагмент для отображения дерева в
<core:FragmentDefinition xmlns="sap.m" xmlns:t="sap.ui.table" xmlns:l="sap.ui.layout" xmlns:f="sap.ui.layout.form" xmlns:core="sap.ui.core" xmlns:smartTable="sap.ui.comp.smarttable" xmlns:smartFilterBar="sap.ui.comp.smartfilterbar" xmlns:customData="http://schemas.sap.com/sapui5/extension/sap.ui.core.CustomData/1">
<smartTable:SmartTable id="smartTreeTable" entitySet="GetDynStrucSet" tableType="TreeTable" useExportToExcel="false" useVariantManagement="false" useTablePersonalisation="true" header="Hierarchy" showRowCount="false" enableAutoBinding="true" beforeRebindTable="onBeforeRebindTable" initiallyVisibleFields="UiRowId,UiHierLevel,UiParentRowId">
</smartTable:SmartTable>
</core:FragmentDefinition>
. В контроллере я передаю фильтры для выполнения службы -
onBeforeRebindTable: function (oEvent) {
//pass selection filters before execute call
var oBindingParams = oEvent.getParameter("bindingParams");
oBindingParams.filters = this.getOwnerComponent().getModel("parameterModel").getData();
oBindingParams.parameters.numberOfExpandedLevels = 2;
}
Служба возвращает30 записей в этом формате: Выход SAP Gateway
Но SmartTable отображает данные следующим образом: SmartTable после привязки
Древовидная структура изначения строк неверны.
В моем Сервисе я использовал некоторую помощь из этого блога: https://blogs.sap.com/2015/10/23/treetable-odata-binding/
Я установил следующие атрибуты для отмеченных свойств:
UIRowId => sap: имя-узла-иерархии для
UiParentRowId => sap: имя-узла-иерархии-для
UiHierLevel => sap: уровень-для-иерархии * для 1027 *
Вывод метаданных шлюза
Почему мое дерево выглядит так и как решить эту проблему?Есть идеи?