Добавление кастомной кнопки и выбор данных иморта

Доброго времени суток.

Стоит задача: нужно на страницу добавить кнопку, представляющую собой ссылку, ведущую на страницу импорта данных из файла.

При этом желательно, чтобы при переходе по кнопке уже был выбран вариант, куда загружать данные (см. скриншоты).

Возможно ли это сделать?

Нравится

3 комментария

Информация о том, как добавлять кнопки есть на академии:
https://academy.terrasoft.ru/documents/technic-sdk/7-8/kak-dobavit-knop…
Посмотреть как по нажатию кнопки переходить в импорт можете в схеме SystemDesigner
Там для этого есть метод:
navigateToImportFromExcel: function() {
var url = this.Terrasoft.workspaceBaseUrl + ConfigurationConstants.ApplicationPage.ExcelImport;
window.open(url, "_blank", "height=" + this.get("WindowHeight") + ",width=" + this.get("WindowWidth"));
},
Что касается предзаполения объекта, необходимо изучить как данный механизм работает в самой странице импорта: схема FileImportStartPage
В замещающей схеме FileImportStartPage реализовать метод который будет заполнять объект импорта на нужным вам. И средствами песочницы sandbox, узнавать что вы перешли в импорт из нужной вам страницы нужной вам кнопкой, выполнять его. Подробнее про песочницу: http://www.community.terrasoft.ru/forum/topic/15210

Илья, большое спасибо!

Не находил, что есть ещё такой вариант страницы импорта.

"Мотков Илья" написал:Что касается предзаполения объекта, необходимо изучить как данный механизм работает в самой странице импорта: схема FileImportStartPage

Это метод setImportObject, как я понимаю? Только запускать при открытии окна.

Разобрался с основным, кроме одного момента:

"Мотков Илья" написал:И средствами песочницы sandbox, узнавать что вы перешли в импорт из нужной вам страницы нужной вам кнопкой, выполнять его.

Сообщения использовал неоднократно, но ведь тут страница открывается на соседней вкладке (окне), будет ли там работать сандбокс?

Например, я передаю сообщение по клику на кнопку:

this.sandbox.publish("StartImportFlag", { date: "test" }, ['FileImportModule_FileImportStartPage']);

В замещающей схеме FileImportStartPage есть соответственно:

this.sandbox.subscribe("StartImportFlag", function(arg) {
	console.log(arg); //Это пока просто для примера - должно вывести test
}, this, [this.sandbox.id]); //Тут this.sandbox.id равен FileImportModule_FileImportStartPage, у этих страниц они слишком различаются между собой.

Открываю страницу импорта, сообщение по идее должно отправиться, в консоль выведется test, но... ничего не происходит.

Показать все комментарии