2015-06-29 4 views
0

Я хочу использовать смарт-таблицу, как в этом sapui5 explored sample, но проблема в том, что у меня есть модель OData, и в этом примере показано, как мы можем обрабатывать привязку с макетными данными, а также я сделал Не понимаю файл metadata.xml. Я предполагаю, что модель oData также имеет свой собственный документ метаданных. Здесь мои коды в контроллере:Как преобразовать модель OData в сущность в sap ui5

this.DataPath = "QuarterPerformanceSet"; 
var oModel = new sap.ui.model.odata.ODataModel(model.Config.getServiceUrl(), true, model.user, password); 
oModel.setCountSupported(false); 
oSmartTable.setModel(oModel); 
oSmartTable.setEntitySet(this.DataPath); 

но не работает. Я получил эту ошибку:

Не удалось загрузить компонент. Changes.json ./Component-changes.json. Проверьте, не найден ли файл или проанализированы ошибки. Причина: Не найдено -

GetChanges' не удалось: -

Просто, как я могу установить EntitySet используя мою модель OData?

мой взгляд:

<smartTable:SmartTable id="idSmartTable" tableType="Table" 
useExportToExcel="true" useVariantManagement="false" 
useTablePersonalisation="true" header="Line Items" showRowCount="true" 
persistencyKey="SmartTableAnalytical_Explored" enableAutoBinding="true"/> 

Спасибо заранее, если кто-то может помочь.

UPDATE 2: Я перепривязывают таблицу в соответствии с этим discussion

this.DataPath = "QuarterPerformanceSet"; 
var oModel = new sap.ui.model.odata.ODataModel(model.Config.getServiceUrl(), true, model.user, password); 
oModel.setCountSupported(false); 
var oSmartTable = this.getView().byId("idSmartTable"); 
oSmartTable.setModel(oModel); 
oSmartTable.setEntitySet(this.DataPath); 
oSmartTable.rebindTable(); 

грустно говорить, но все-таки я получил такую ​​же ошибку.

ответ

1

Вам необходимо передать имя объекта, а не экземпляр модели. Если у вас есть, например, набор лиц, который определил вас, вы только что сделали:

oSmartTable.setEntitySet("Customers"); 

или добавить атрибут entitySet в объявление своей таблицы.

<smartTable:SmartTable id="idSmartTable" entitySet="ENTITY_SET" .../> 
+0

Должен ли я устанавливать модель как oSmartTable.setModel (oModel); – melomg

+0

Да, но вам не нужно это делать, если модель знает представление, содержащее таблицу. В этом случае UI5 должен автоматически распространять модель. – matbtt

+0

Я обновил свой вопрос и все еще не работает. Можете ли вы снова рассмотреть вопрос, пожалуйста. – melomg

Смежные вопросы