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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 05.05.2015, 16:41   #1  
Морковка is offline
Морковка
Участник
 
71 / 10 (1) +
Регистрация: 12.10.2014
Кнопка Выбрать в окне диалога.
Если есть InitQuery

Query query = new Query();
;

query.addDataSource(tablenum(InventTable));
queryRun = new SysQueryRun(query);
queryRun.promptLoadLastUsedQuery(false);


то как потом получить значения выбранные пользователем? не пойму по похожим примерам pack, unpack... а где же результат считывают
Старый 05.05.2015, 17:05   #2  
Cardagant is offline
Cardagant
Участник
 
317 / 54 (2) ++++
Регистрация: 11.10.2011
Цитата:
Сообщение от Морковка Посмотреть сообщение

queryRun = new SysQueryRun(query);

:
Лучше вот так:

X++:
queryRun = new QueryRun()

Пользователь редактирует существующий квери, просто используйте его.

Также можете заглянуть в Tutorial_RunbaseForm и Tutorial_RunbaseReport классы.

Последний раз редактировалось Cardagant; 05.05.2015 в 17:11.
За это сообщение автора поблагодарили: Морковка (1).
Старый 05.05.2015, 19:28   #3  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,701 / 1195 (43) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
В методе RunBase.QueryRun() Вы должны вернуть переменную типа QueryRun (или ее наследника SysQueryRun), которая будет использована в диалоге с пользователем. Не сформировать значение, а просто вернуть саму переменную.

Инициализация значений этой переменной (создание QueryRun) должны выполняться в двух местах
  • RunBase.initParmDefault() - выполняется в том случае, если класс еще ни разу не был запущен (unpack возвращает false). Первый запуск класса (версии класса) данным пользователем
  • RunBase.unpack() - выполняется в том случае, если предусмотрено "запоминание" настроек сделанных пользователем в методе pack(). Т.е. unpack() вернул true.

Собственно обработка запроса (организация цикла по queryRun) - это уже метод RunBase.run()

Если метод RunBase.showQueryValues() возвращает true, то будет отображена кнопка "Выбрать" и сделанные настройки.

В классе Tutorial_RunbaseForm это все наглядно демонстрируется. Хотя без собственно обработки результата

Для классов-наследников от RunBaseReport метод QueryRun() уже перекрыт и в нем используется фиксированная переменная с именем queryRun, которая формируется на основе настроек отчета, имя которого указывается в методе RunBaseReport.LastValueElementName()

Пример в классе Tutorial_RunbaseReport
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...
За это сообщение автора поблагодарили: Морковка (1).
Старый 06.05.2015, 09:03   #4  
Морковка is offline
Морковка
Участник
 
71 / 10 (1) +
Регистрация: 12.10.2014
Большое спасибо! все работает)
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Еще раз помогите с типом поля на окне диалога. Морковка DAX: Программирование 4 21.04.2015 17:47
Кнопка "Выбрать", как её добавить aao_p DAX: Программирование 6 31.05.2012 13:36
кнопка "Выбрать отборочную накладную" при обработке накладной по закупке (DAX2009) Bega DAX: Функционал 0 27.07.2010 14:35
Использование формы в качестве диалога vs создание диалога программно Lucky13 DAX: Программирование 3 30.05.2008 13:09
В 4.0 перестала работать кнопка выбрать файл. Eldar9x DAX: Программирование 14 12.11.2007 20:27

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

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

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