в документе метаданных, чтобы использовать

кст

Я создаю небольшую демонстрационную страницу, которая отображает некоторые прямые функции UI5. Эта страница состоит из двух основных страниц:

На первой странице есть список операторов, которые можно создавать, удалять и обновлять. Эти перевозчики имеют идентификатор (Carrid).Если один щелкнет по перевозчику, он будет перенаправлен на вторую страницу, на которой все рейсы выбранного перевозчика показаны в таблице (с некоторой информацией о рейсах).

Таблица выглядит так:

<Table id="detailTable" inset="false" class="sapUiResponsiveMargin">
    <columns>
        <Column>
            <Text text="ID" />
        </Column>
        <Column>
            <Text text="Flightnumber" />
        </Column>
        <Column>
            <Text text="Starts in" />
        </Column>
        <Column>
            <Text text="Departs at" />   
        </Column> 
        <Column>
            <Text text="Lands in" />   
        </Column> 
        <Column>
            <Text text="Lands at" />   
        </Column>
    </columns>
</Table>

Данные привязаны к столбцам с этим кодом:

// Get routing data and show only entrys with the matched primary key (Carrid)
_onRouteMatched: function(oEvent) {
    // ...
    var oArgs = oEvent.getParameter("arguments");
    var oFlightTable = oView.byId("detailTable");
    oFlightTable.bindAggregation("items", {
        path: "/CarrierSet(" + "'" + oArgs.flightPath + "'" + ")/FlightSet",
        template: new sap.m.ColumnListItem({
            cells: [
                new sap.m.Text({
                    text: "{Carrid}"
                }),
                new sap.m.Text({
                    text: "{Connid}"
                }),
                new sap.m.Text({
                    text: "{Cityfrom}"
                }),
                new sap.m.Text({
                    text: "{Deptime}"
                }),
                new sap.m.Text({
                    text: "{Cityto}"
                }),
                new sap.m.Text({
                    text: "{Arrtime}"
                })
            ]
        })
    });
}
проблема

Код работает нормально, если данные можно отобразить, не манипулируя им в первую очередь. Но поля{Deptime} а также{Arrtime} иметь типEdm.Time который мне нужно сначала преобразовать, чтобы отобразить в удобочитаемой форме.
Я смог добиться этого с помощью этого кода (я знаю, что это не самый эффективный способ, но я все еще учусь. Поэтому, если у вас есть какие-либо улучшения, не стесняйтесь их публиковать):

pageTable.addEventDelegate({
    onAfterRendering: function() {
        var mTable = this.getView("FilterBarSimple").byId("detailTable");
        var mModel = mTable.getModel();
        var aItems = mTable.getItems();

        // ----- TIME CONVERSION ----

        var arrayTime = [];
        for (var iTime = 0; iTime < aItems.length; iTime++) {
            var iAdded = mModel.getProperty("Deptime", aItems[iTime].getBindingContext());
            arrayTime.push(iAdded);
        }
        var timeFormat = sap.ui.core.format.DateFormat.getTimeInstance({
            pattern: "kk:mm:ss"
        });
        var tz = new Date(0).getTimezoneOffset() * 60 * 1000;
        var arrayTimeClean = [];
        $.each(arrayTime, function(ii, ee) {
            var timeStr = timeFormat.format(new Date(ee.ms + tz));
            arrayTimeClean.push(timeStr);
        });
    }
});

Это генерирует этот вывод, который является правильным:

Но я не могу правильно связать эти манипулированные данные в таблицу снова. Я попробовал это сOData.read() функции и некоторые другие довольно хакерские подходы, но я никогда не был успешным, и я застрял с этой проблемой в течение достаточно долгого времени.

Если у кого-то есть идея или предложение, я буду более чем благодарен, если вы дадите мне знать.

Ответы на вопрос(1)

Ваш ответ на вопрос