Показать сообщение отдельно
Старый 05.05.2015, 19:28   #3  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,715 / 1204 (44) ++++++++
Регистрация: 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).