Здраствуйте! Хочу изменить деталь "Файлы и примечания" для одного из разделов, а именно на "Счета".
Для этого я создал "Схему модели представления детали с реестра". Родительский обьект указал: FileDetailV2. Скопировал код из схемы FileDetailV2 в свою созданную схему. после очистки кеша получил следующую ошибку рис. 1.
Подскажите пожалуйста в чем проблема.
Нравится
Если правильно понял суть задачи, то для замещения объекта “DataGrid” необходимо сначала использовать операцию «remove», а затем «insert».
Пример прикрепилdobavitkolonkunadetal-fayly-.doc
Здраствуйте еще раз
Добавил поле в об'экт файлов(UsrCeritificateFile) рис.2
Хочу отобразить его на реестре, но получаю такое(рис.1)
"listedConfig": { "name": "DataGridListedConfig", "items": [ { "name": "UsrIsActualListedGridColumn", "bindTo": "UsrIsActual", "position": { "column": 1, "colSpan": 2 } }, { "name": "NameListedGridColumn", "bindTo": "Name", "position": { "column": 3, "colSpan": 14 }, "type": Terrasoft.GridCellType.LINK }, { "name": "CreatedOnListedGridColumn", "bindTo": "CreatedOn", "position": { "column": 15, "colSpan": 2 } } ] },
Вам необходимо заместить метод getGridDataColumns с добавлением в его переменную gridDataColumns своей колонки (добавленной в listedConfig).
Код метода из FileDetailV2:
getGridDataColumns: function() { var baseGridDataColumns = this.callParent(arguments); var gridDataColumns = { "Type": { path: "Type" }, "Version": { path: "Version" } }; return this.Ext.apply(baseGridDataColumns, gridDataColumns); },
"Мотков Илья" написал:Вам необходимо заместить метод getGridDataColumns с добавлением в его переменную gridDataColumns своей колонки (добавленной в listedConfig).Код метода из FileDetailV2:
getGridDataColumns: function() {
var baseGridDataColumns = this.callParent(arguments);
var gridDataColumns = {
"Type": {
path: "Type"
},
"Version": {
path: "Version"
}
};
return this.Ext.apply(baseGridDataColumns, gridDataColumns);
},
А возможно сам listedConfig менять динамически?
Добрый день, Евгений!
К сожалению, динамически менять listedConfig не получится.
Подскажите, пожалуйста, а есть тогда какие-либо возможности динамического создания простого грида?
Например:
var grid = Ext.create("Terrasoft.Grid", config); grid.render(container);
По правде говоря, пробовал такой метод - он не сработал. Но возможно некорректно указал параметры config. Было бы славно получить ссылку из документации, либо рабочий пример кода.
С контейнерами, кнопками и прочими компонентами это работает, но, за исключением грида...
Полная документация по js есть в sdk, конкретно в этом случае подойдет статья:
https://academy.terrasoft.ru/jscoresdk/#!/api/Terrasoft.controls.Grid
Вопрос, близкий к теме - а можно ли сделать деталь Файлы и ссылки с редактируемым реестром, как вот здесь: https://academy.terrasoft.ru/documents/technic-sdk/7-8/sozdanie-detali-… ?
То есть, если я хочу добавить к объекту детали ещё несколько колонок (к примеру, на скриншоте вывел колонку заказа - но она есть по умолчанию и служит для связи со страницей) и заполнять их уже вручную? Это могут быть какие-либо дополнительные сведения о файле и тд
Попробовал просто перенести содержимое diff и прочее из примера- вылезает ошибка, что CreatedOn уже существует.
Денис, к сожалению, такой функционал реализовать не выйдет, так в системе нет соответствующей колонки для хранения файлов.
"Кот Владимир Владимирович" написал:Денис, к сожалению, такой функционал реализовать не выйдет, так в системе нет соответствующей колонки для хранения файлов.
Владимир, спасибо, понятно.
Уточняющий момент, только - это только для файлов, или вообще для ссылок?
Если я например в простой детали с реестром (не FileDetail, а обычной) вот по такой схеме: http://www.community.terrasoft.ru/forum/topic/25377#comment-68061 сделаю какую либо колонку ссылкой (пусть даже ссылкой на файл, или какой-либо другой ресурс) - то можно ли будет на эту деталь редактируемый реестр навесить, или нет?
Для примера - в Заказе есть деталь График поставок, она с редаткируемым реестром, ну и там ссылки, правда колонка справочная.
Добрый день Денис.
В базовой реализации грида за ссылки отвечает метод addColumnLink из GridUtilitiesV2.
Пример замещения метода:
addColumnLink: function(item, column) { if (column.columnPath === "UsrColumn1" || column.columnPath === "UsrColumn2") { var onColumnLinkClickName = "on" + column.columnPath + "LinkClick"; item[onColumnLinkClickName] = function() { return { caption: item.get(column.columnPath), target: "_blank", title: item.get(column.columnPath), url: "https://test.ru" + item.get(column.columnPath)” }; }; } this.callParent(arguments); },
где UsrColumn1 и UsrColumn2 - имена текстовых колонок в бд.
В свойство url Вам необходимо добавить ссылку по аналогии с ссылкой формируемой деталью файлы и ссылки на сервис FileService.
Пример ссылки: http://localhost/bpmonline7100SalesEnterprise_Marketing_CustomerCenter_…
Илья, спасибо.
Был ещё вопрос, можно ли деталь с такими ссылками сделать деталью с редактируемым реестром, то есть деталью такого типа: https://academy.terrasoft.ru/documents/technic-sdk/7-8/sozdanie-detali-… ?
Ведь по идее эта колонка изначально может быть обычной строкой.
Уже не надо - ответ на мой же вопрос: да, возможно. Для этого надо помимо переопределения методов добавить в values DataGrid детали:
"useLinks": true,
Метод addColumnLink выполняется и для детали с редактируемым реестром. Предоставленный раннее код какраз для текстовых колонок.
Добрый день, коллеги!
Использовал код из сообщения http://www.community.terrasoft.ru/forum/topic/24805#comment-65796
Все сработало колонки добавились, только пришлось удалить метод getGridDataColumns т.к., ловил ошибку
message: Uncaught Terrasoft.ItemAlreadyExistsException: Элемент с ключём "CreatedOn" Уже существует .
Остался вопрос, который пока не удается поднять самому. Подскажите пожалуйста как добавить возможность сортировки к колонкам нового грида?