Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Alex2017
Зарегистрирован: 29.03.2017 Сообщения: 3
|
Добавлено: Ср Мар 29, 2017 11:45 am Заголовок сообщения: Не передаются значения через Map в новую форму |
|
|
Добрый день, столкнулся с проблемой, нужно в открываемую форму (из открытой Формы с операцией) передать значения через Map, делаю так:
'----------------
Sub TestN
Dim NewFrm
Set NewFrm = App.CreateForm(30) ' 30 - ID формы проекта
With NewFrm
.Map.Item("DOCID") = Op.ID '
.Map.("AGID") = Op.Trans(1).AgToID ' пробую передавать по разному - рез-т одинаков
End With
End Sub
'-- в открытой новой форме
Sub Form_OnLoad
Msgbox(Map.Count) ' только для примера, чтобы увидеть работу Map
Msgbox(Map.("AGID"))
Msgbox(Map.Item("DOCID"))
' ..... что-то делаем
End Sub
В новой форме НИЧЕГО не выводит... Пусто.
До сих пор передавал только в диалоги - там все нормально.
Что я делаю не так?
Спасибо. |
|
Вернуться к началу |
|
|
Юров Ю.С.
Зарегистрирован: 11.03.2005 Сообщения: 383 Откуда: Павлоград
|
Добавлено: Чт Мар 30, 2017 8:24 pm Заголовок сообщения: |
|
|
У тебя
Цитата: | '-- в открытой новой форме |
чья Мар, не от workarea случайно?
И зачем тебе
Цитата: | '-- в открытой новой форме |
какая-то Мар нужна, если есть ссылка на всю эту форму и ты ей полностью управляешь?
Получи через AddScriptFragment ссылку на операцию формы, сделай своё дело и обнови форму опять через AddScriptFragment. |
|
Вернуться к началу |
|
|
Alex2017
Зарегистрирован: 29.03.2017 Сообщения: 3
|
Добавлено: Чт Мар 30, 2017 9:05 pm Заголовок сообщения: |
|
|
Спасибо!
Через ссылку удается наполнить всю новую форму (она предназначалась только для вывода информации и последующей возможной печатью).
Передаю через Map самой формы, попытки через Workarea.Map тоже ни к чему не привели. Через ссылку все вышло. (Зациклился на том, что не получалось, ведь раньше через Map хорошо передавал параметры в диалоги). |
|
Вернуться к началу |
|
|
olimp Site Admin
Зарегистрирован: 10.03.2005 Сообщения: 2661
|
Добавлено: Вс Апр 02, 2017 5:51 pm Заголовок сообщения: |
|
|
Посмотрите под отладчиком и поймете сразу в чем проблема.
События в форме отрабатываются в другом контексте и, скорее всего, OnLoad отработает до того, как Вы отдадите ему данные в Map.
логика для формы должна быть такой
1. Создали форму
2. Наполнили Map
3. Вызвали UserEvent формы
4. в OnUser написали код, который будет использовать данные МАР
5. обновили форму
Используйте Workarea.Map для обмена данными между контекстами. |
|
Вернуться к началу |
|
|
Alex2017
Зарегистрирован: 29.03.2017 Сообщения: 3
|
Добавлено: Вт Апр 11, 2017 8:44 am Заголовок сообщения: |
|
|
olimp писал(а): | Посмотрите под отладчиком и поймете сразу в чем проблема.
События в форме отрабатываются в другом контексте и, скорее всего, OnLoad отработает до того, как Вы отдадите ему данные в Map.
логика для формы должна быть такой
1. Создали форму
2. Наполнили Map
3. Вызвали UserEvent формы
4. в OnUser написали код, который будет использовать данные МАР
5. обновили форму
Используйте Workarea.Map для обмена данными между контекстами. |
Большое спасибо! Теперь понятна суть происходящего. |
|
Вернуться к началу |
|
|
|