SAPфорум.RU
https://sapboard.ru/forum/

SAPUI5\FIORI: задать formatter при динамическом создании столбца в таблице
https://sapboard.ru/forum/viewtopic.php?f=133&t=96003
Страница 1 из 1

Автор:  Кодер [ Вт, янв 30 2018, 10:54 ]
Заголовок сообщения:  SAPUI5\FIORI: задать formatter при динамическом создании столбца в таблице

Добрый день
Ситуация следующая:
1) использую таблицу sap.ui.table.Table
2) добавляю в таблицу динамически столбец по нажатию на кнопку
3) столбец использует в качестве template - sap.m.Text
4) отдельно объявлен formatter
код добавления столбца в таблицу
Code:
    var sColumnId = "ColumnId";
     var oColumn = new sap.ui.table.Column({
               id: sColumnId,
               label: new sap.m.Label({
                  text: dCurrDate.toLocaleDateString()
               }),
               template: new sap.m.Text({
                  id: sColumnId + "Txt",
                  text: "{path:'" + sColumnId + "', formatter: '.formatter.formatValueColor'}"
               })
            });

При выполнении - formatter не виден (это ошибка, которая пишется в лог консоли).
Code:
formatter function .formatter.formatValueColor not found! -

При этом, если я подвешу форматтер статически в xml View - все нормально, приложение его видит.
Что я делаю не так?

Автор:  Saperx [ Пт, фев 02 2018, 12:02 ]
Заголовок сообщения:  Re: SAPUI5\FIORI: задать formatter при динамическом создании столбца в таблице

Касатель fiori судить не могу, но если по коду: а .formatter.formatValueColor - тут точно .formatter нужен? Может тут именно функцию объекта formatter на указывать?
И что в отладке лежит в этом объекте после создания столбца?

Автор:  Кодер [ Пт, фев 02 2018, 13:01 ]
Заголовок сообщения:  Re: SAPUI5\FIORI: задать formatter при динамическом создании столбца в таблице

Saperx написал(а):
а .formatter.formatValueColor - тут точно .formatter нужен?

Пробовал указывать функцию напрямую - не вышло. Опять же, если я статически в xml-view привязываю форматтер, то именно такой синтаксис проходит.
Saperx написал(а):
И что в отладке лежит в этом объекте после создания столбца?

"В этом объекте" - это в каком? formatter - это свойтсво (аттрибут) контроллера. Ему присвоен объект, в котором как раз объявлен метод-форматтер formatValueColor .

Автор:  author [ Чт, мар 01 2018, 03:20 ]
Заголовок сообщения:  Re: SAPUI5\FIORI: задать formatter при динамическом создании столбца в таблице

Как именно xml описание компилится в js я не знаю.
Но могу показать как используется formatter в чистом js:

Code:
    var sColumnId = "ColumnId";
     var oColumn = new sap.ui.table.Column({
               id: sColumnId,
               label: new sap.m.Label({
                  text: dCurrDate.toLocaleDateString()
               }),
               template: new sap.m.Text({
                  id: sColumnId + "Txt",
===>             text: {
                      path: "sColumnId", //или parts: [{path: "field1"}, {path: "field2"}], если на вход форматтеру надо передать несколько полей
                      formatter: function (_sColumnId) {  // или (_field1, _field2), см. выше
                          if (_sColumnId.indexOf("0")>=0) {
                              return "sColumnId содержит 0"; // возвращаемое значение ляжет в text
                          }
                        }
<===           } 
               })
            });

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/