2017-01-11 2 views
2

Итак, я создаю приложение в SAPUI5, и я не могу исправить проблему.SAPUI5 - ярлык форматирования с использованием навигационного свойства/массивов

У меня в моем интерфейсе: JS, SAPUI5, FIORI и в моем бэкэнде: HANA, HANAXS.


Вот что происходит:

у меня в службе бэкэнд следующую структуру:

http://prntscr.com/dudto4

У меня есть на мой взгляд, следующий код:

<Table> 
.... 
<items> 
<ColumnListItem 
    type="Navigation"> 
    <cells> 
     <Label text = "{START_TIME}" design="Bold"/> 
     <Label text = "{END_TIME}" design="Standard"/> 
     <ObjectIdentifier title="{DESCRIPTION}" /> 
     <Label text="{ItsSpeakers}" design="Bold"/> 
    </cells> 
</ColumnListItem> 
</items> 
</Table> 

Я могу получить все поля (START_TIME, END_TIME, DESCRIPT ION), но ItsSpeakers, что свойство навигации в следующей таблице:

http://prntscr.com/dudvw3

Каков наилучший подход для меня, чтобы получить свойство (NAME, например) с картинки выше?

ответ

1

Если ItsSpeakers является ссылкой на единый объект можно связать следующим образом

<Label text="{ItsSpeakers/NAME}" design="Bold"/> 

Если это массив, вы можете определить нужную запись и возвращает значение с помощью функции форматировочной

<Label text="{path:'ItsSpeakers', formatter: '.getItsSpeakersName'}" design="Bold"/> 

... и соответствующий метод на контроллере ...

getItsSpeakersName: function(aItsSpeakers) { 
    // For example to return the NAME property of the first record 
    return this.getView().getModel().getProperty("/"+aItsSpeakers[0]+"/NAME"); 
} 

Для того, чтобы любой из них мог работать, его сканеры должны быть расширены, например, в привязке ваших столов ...

<Table items="{ path: 'EntitySet', parameters: { expand: 'ItsSpeakers' } }"> 
+0

спасибо, человек. Он работал отлично. Последний вопрос: вы искали где-то свой ответ, или вы уже это знали? Я задаю этот вопрос, потому что я много искал, и я не мог найти ничего ... – LuisValgoi

+0

Рад, что он помог ... имел аналогичные требования в прошлом, изначально был бы либо замечен в примере где-то, либо был бы найден через тест, тест и отладка –