Здравствуйте!
Стоит задача получать от пользователя на определенном этапе некоторые данные, чтобы в дальнейшем их использовать в БП. В частности, нужно использовать какой-нибудь элемент для ввода даты, CalendarControl, например, и NumericEdit.
В БД эти данные сохранять не нужно (по крайней мере, пока), поэтому, как я понимаю, достаточно их записать в параметры БП. Однако сделать это не удается, я пытаюсь обработать событие OnClick единственной в окне кнопки ОК. Вопросы:
1. Как получить запущенный экземпляр БП из обработчика нажатия кнопки? Как я понимаю, GetDiagramByItem() тут не подходит, так же как и GetNewItemByUSI().
2. Для установки параметров диаграммы кажутся подходящими ф-ии WFSetParamValueDirect и WFSetParamValue. В чем их отличия?
3. Как работать с датой из CalendarControl?
4. Описан ли вообще где-то в документации DOM, ф-иям для БП? Без этого как-то очень тяжело :(
Заранее спасибо!
Нравится
Юрий, добрый день.
1) Среди элементов БП есть такой, как "Открытие окна". Вы можете создать своё окно для ввода значений, связать этот элемент с окном и сопоставить поля окна с параметрами бизнес-процесса. Другой вариант - добавить на диаграмму элемент "Скрипт", в обработчике события OnExecute которого написать примерно такой код:
var Window = Services.GetNewItemByUSI(<USI окна редактирования>); Window.ShowModal(); var ResultValue = Window.ComponentsByName(<Название контрола>).DataField.Value; ............
Далее можно присвоить эти значения параметрам диаграммы.
2) Данные функции отличаются исключительно набором входящих параметров: функция WFSetParamValueDirect работает непосредственно с коллекцией параметров, а WFSetParamValue получает на вход элемент диаграммы (параметры которого извлекаются уже внутри функции). В остальном - никаких отличий.
3) Получить дату из компонента ICalendarControl просто:
var ResultDate = Window.ComponentsByName('CalendarControl').Value;
Со списком остальных методов для работы с этим контролом можно ознакомиться здесь. Но лично мне кажется, в плане ввода и получения нужной даты удобнее работать с объектами DateTimeDataControl или DateTimeControl.
4) Информацию о свойствах и методах элемента БП и диаграммы можно найти в SDK на нашем сайте. События определённых элементов БП, а также другая информация о создании БП описаны в Руководстве администратора, которое поставляется вместе с установочным пакетом системы Terrasoft. Различного рода примеры, ответы на вопросы и другую информацию Вы можете найти и на нашем комьюнити.
Спасибо, со скриптом все получилось!
Я как раз и пользовался "Открытием окна", и думал про связывание параметров диаграммы с полями данных. Однако в окне настройки блока это поле пустое, а кнопки "Добавить" и прочие неактивны (см. скрин). С чем это может бызть связано?
Возможно, Ваше окно wnd_InsertPaymentDate - наследник wnd_BaseEdit, а не wnd_BaseDBEdit, то есть, в нём нет ссылки на датасет. Попробуйте подставить окно с датасетом, всё должно быть корректно. Если же используются контролы без привязки к датасету, тогда лучше вызывать окно из скрипта.