09.04.2002, 16:35 | #1 |
Administrator
|
Как открыть форму
Вот, сколько уже писали на X++, а проблема, тривиальная по сути, первый раз возникла. Предположим, что у нас есть форма. В форме кнопка. Хочется, чтобы когда мы на эту кнопку нажимаем, открывалась другая форма, а исходная форма закрывалась.
Не торопитесь советовать вариант с использованием MenuItem. Дело в том, что при вызове одной формы из другой с помощью MenuItem Axapta фильтрует данные во второй форме, а это именно то, чего хотелось бы избежать. И напоследок некоторое усложнение задачи: а как сделать так, чтобы при нажатии на кнопку открывались две формы?
__________________
Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me |
|
09.04.2002, 17:18 | #2 |
Участник
|
1. Связью между формами занимается не MenuItem. Поищи в хелпе слово AutoJoin
===== The following properties form Axapta’s AutoJoin system ensure data synchronization when two forms are linked: AutoNotify AutoQuery AutoSearch DelayActive, and LinkType ===== 2. Для того, чтобы открыть две формы надо перехватить метод clicked. Создать args и открыть форму. См. пример X++: formRun = new MenuFunction(menuItemDisplayStr(LedgerJournalTransCustPayment),MenuItemType::Display).create(args); if (formRun) { formRun.run(); formRun.wait(); } |
|
09.04.2002, 17:43 | #3 |
Administrator
|
1. Да, это настройки фильтрации, но сами данные-то как раз при вызове передаются.
Дело в том, что я вызываю стандартную форму из своей. Бог знает, откуда она еще вызывается, поэтому настройки сбивать не хотелось бы. 2. 3. Это все, конечно, хорошо, но как бы сделать так, чтобы одновременно происходило и открытие одной формы, и закрытие другой (то есть и close(), и без wait())? На TechNet посоветовали использовать следующую вещь: X++: menuItem = new MenuFunction (menuItemDisplayStr (MenuItemFromAOT), MenuItemType::Display); parameters.caller(this); parameters.record(someRecordInForm) menuItem.run(parameters); В любом случае, спасибо за ответ.
__________________
Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me |
|
09.04.2002, 19:09 | #4 |
Участник
|
1.
ну, не всегда. Дело в том, что в открываемой форме как правило проверяется args().Record(). Однако же может проверяться и args().caller(). caller проверяется редко. 2. Не по аксаптовски это... не по аксаптовски... Ты уверен, что делаешь согласно "духу аксапты"? Может стоит почитать best practice? Ты уверен, что это такое поведение не собъет пользователе |
|
09.04.2002, 20:41 | #5 |
Administrator
|
Цитата:
Изначально опубликовано mazzy
Однако же может проверяться и args().caller(). caller проверяется редко. Цитата:
Изначально опубликовано mazzy
Не по аксаптовски это... не по аксаптовски... Ты уверен, что делаешь согласно "духу аксапты"? Может стоит почитать best practice? Ты уверен, что это такое поведение не собъет пользователе
__________________
Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me |
|
09.04.2002, 21:11 | #6 |
Участник
|
тады ой.
раз пользователи хотят - надо делать (сначала предупредить о последствиях, а потом все равно сделать ) |
|