AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 03.09.2014, 22:25   #1  
kitty is offline
kitty
Участник
 
370 / 30 (2) +++
Регистрация: 24.05.2005
Как класс->запрос->форма. Как такое создать?
Задание:
1) Пользователь жмет на пункт меню, появляется форма запроса по таблице заказов
2) Пользователь забивает критерии , и открываетя форма с выбранными заказами (и их строками) + на форме несколько текстовых полей (для комметариев).
3) Пользователь жмет кнопку "ок" и по выбранным заказам производится определенная операция.

Создала класс, в котором в в методе prompt вызываю свою форму стандартно через
X++:
boolean prompt()
{
    Args formArgs;
    FormRun formRun;
    formArgs = new Args();
    formArgs.name(formStr(myForm));
    formArgs.caller(this);
    formRun = ClassFactory::formRunClassOnClient(formArgs);
    formRun.init();
    formRun.run();
    formRun.wait();
    return formRun.closedOk();
}
Так как форма запроса, показываемая пользователю, по сути - запрос , используемый на форме, я вызываю в init формы queryRun.promt(), а потом подставляю его в запрос формы.
X++:
public void  init()
{   .....
    super();
    .....
    xSysLastValue::getLast(this);

    if (!queryRun.prompt())
    {
        element.close();
    }
    salesTable_ds.query(queryRun.query());
}
Все работает, но , если пользователь нажимает Отмена на форме запроса, то вываливается ошибка , что метод detach() или wait() вызван до run().
Что верно, тк в методе init по сути форма закрыватеся и formRun.wait не имеет уже formRun .
Я могу, конечно, проверять formRun на существование после вызова formRun.init()в методе promt(). Но, мне кажется. я что-то идеологически неправильно делаю. Может, лучше создавать запрос в классе и там же делать queryRun.prompt , а потом передавать его в форму и подставлять в ds? Это тоже коряво, тк зачем отдельно в классе создавать запрос , если форма уже на нем основана и по сути надо дать пользователю именно его изменить...

Подскажите, где в системе есть примеры подобного интерфейса? Как правильно его реализовать?
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Новый класс создается как копия существующего с другого слоя Владимир Максимов DAX: Программирование 9 15.06.2014 21:16
программно сохранить пользовательский запрос Varmen DAX: Программирование 13 28.04.2010 01:03
класс InventSumDateValueReportDim Физические запасы? Poleax DAX: Программирование 12 01.07.2008 15:27
как создать класс в Axapta? andreynikolai DAX: Программирование 4 12.04.2002 18:00
Класс xSysLastValue Maxim Gorbunov DAX: База знаний и проекты 0 27.11.2001 17:39

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 16:56.