11.01.2007, 16:25 | #1 |
Участник
|
Передача ссылки на формы через SysInfoAction_FormRun
Добрый день,
Форма А вызывает инфолог, в инфологе через двойной щелчок (SysInfoAction_FormRun - класс вызова форм из инфолога) вызывается форма Б. Возникла необходимость банально дергать функции формы А из формы Б. Мелочь выросла в проблему, так как SysInfoAction_FormRun все переменные вызова пакует в контейнер, а объект вызываещей формы в контейнер не передашь (цит. Containers [...] can contain elements of almost all data types: boolean, integer, real, date, string, container, arrays, tables, and extended data types. However, objects may not be stored in containers.). Как итог - формы А и Б, связанные действиями пользователя, на самом деле разорваны. Есть ли решение? Артем |
|
11.01.2007, 16:50 | #2 |
Banned
|
К моменту "щелчка" по инфологу исходная форма уже может быть закрыта. Использовать инфолог для передачи управления между формами - неправильно. Контейнеры здесь не при чем.
Если вам ОЧЕНЬ хочется испробовать этот неправильный способ, то посмотрите, как в классе Info используется переменная lastActivatedForm типа ObjectIdent. Дает пищу для размышления. Последний раз редактировалось EVGL; 11.01.2007 в 16:52. |
|
11.01.2007, 16:52 | #3 |
Участник
|
Посмотрите, как работает механизм проверки в складских журналах
__________________
Axapta v.3.0 sp5 kr2 |
|
12.01.2007, 07:17 | #4 |
Участник
|
Можно в info.globalCache вести Map (guid -> Форма) для вызывающей формы. При создании формы регистрировать ее в мепе при закрытии разрегистрировать и передовать номер вместо самой формы. Вызываемая форма смотрит в Map и если находит в ней форму по переданному ID, то что-то делает.
|
|