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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 12.10.2006, 10:49   #1  
madproger is offline
madproger
Программист
 
82 / 19 (1) ++
Регистрация: 08.09.2006
Адрес: Москва
Создание формы перед генерацией отчета
Здравствуйте

У меня такая ситуация
Генерируем какой-либо отчет. Но перед его генерацией мне нужно вызвать какую-либо форму, ввести там данные, в зависимости от этих данных создать отчет.

Подскажите, есть ли какой-нить пример такой ситуации и в какую сторону мне лучше копать?

Причем эта форма что то вроде модальной формы, диалога.

Пока у меня мысли создать форму, привязать ее к MenuItem а потом вызвать - но что то мне кажется что это неправильно
Старый 12.10.2006, 10:53   #2  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
посмотрите любой из наследников класса RunBaseReport
Старый 12.10.2006, 10:58   #3  
kvg6 is offline
kvg6
program-ёр
Аватар для kvg6
1C
 
160 / 81 (3) ++++
Регистрация: 27.09.2005
Адрес: Moscow forever
Можно оттолкнуться сразу от RunBaseBatch
__________________
Становись лучше
Старый 12.10.2006, 11:00   #4  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Цитата:
Сообщение от kvg6 Посмотреть сообщение
Можно оттолкнуться сразу от RunBaseBatch
Это не совсем хорошая идея.
Во-первых, RunBaseReport специфически написан для печати отчетов.
Во-вторых, RunBaseBatch нужен для работы в пакетном режиме, который в данном случае врядли будет использоваться.
Старый 12.10.2006, 11:10   #5  
madproger is offline
madproger
Программист
 
82 / 19 (1) ++
Регистрация: 08.09.2006
Адрес: Москва
Хмм....

Попробую разобраться...

Спасибо, блин, бальшое (с) Масяня
__________________
Жизнь меняется тогда, когда меняемся мы...
Старый 12.10.2006, 11:14   #6  
BVN is offline
BVN
Участник
 
88 / 13 (1) ++
Регистрация: 07.04.2005
Адрес: г. Королёв МО
Ну если данных в форме вводить не много, то в отчет можно передать через Args
Старый 12.10.2006, 11:20   #7  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Хм. Чтобы помочь вам разбираться, неплохо было бы посмотреть класс tutorial_RunBaseReport.
Создать такой же (дублированием) и:
1) в нем нужно изменить метод lastValueElementName() - в нем указать тот отчет, который хотите вызвать.
2) в методе dialog вызвать или свою форму, или просто диалог (это см. в АОТ в каком-нибудь из наследников) (можно глянуть, к примеру, на tutorial_RunBaseBatch)
3) В методе description() написать то, что хотите видеть в заголовке формы диалога.
Старый 12.10.2006, 11:22   #8  
ntr is offline
ntr
Участник
 
31 / 16 (1) ++
Регистрация: 26.05.2006
Можно создавать форму в отчете
public boolean fetch()
{
Dialog dialog;
DialogField DialogField;
Boolean ret;
;
dialog = new dialog("Диалог");
DialogField = dialog.addField(typeid(NoYes), "НетДа");
if(dialog.run() && dialog.closedOk())
{
print DialogField.value();// из формы
ret = super();
}
return ret;
}
За это сообщение автора поблагодарили: madproger (1).
Старый 12.10.2006, 11:26   #9  
George Nordic is offline
George Nordic
Модератор
Аватар для George Nordic
Злыдни
 
4,479 / 1250 (50) ++++++++
Регистрация: 17.12.2003
Адрес: Moscow
Записей в блоге: 9
Блин! Что, все забыли о туториалах??

Смотрите отчеты и формы, начинающиеся с tutorial и содержащие в названии RunBase. Там Ваша задача реализована.

Вкратце: создается своя форма на базе стандартной (с группой, куда автоматом будут добавляться текущие критерии и группой клавиш), в классе перекрывается dialog и вместо диалога по-умолчанию подставляется Ваша форма. Потом параметрически сохраняются переменные, пакуются и запускается отчет.

И вуаля!

Удачи!
Георгий
Старый 12.10.2006, 11:28   #10  
kvg6 is offline
kvg6
program-ёр
Аватар для kvg6
1C
 
160 / 81 (3) ++++
Регистрация: 27.09.2005
Адрес: Moscow forever
Цитата:
Сообщение от kashperuk Посмотреть сообщение
Во-первых, RunBaseReport специфически написан для печати отчетов.
Во-вторых, RunBaseBatch нужен для работы в пакетном режиме, который в данном случае врядли будет использоваться.
1. не принципиально, напр., при выгрузке в Excel
2. что-ли RunBaseReport в пакетном режиме не запустить?
__________________
Становись лучше

Последний раз редактировалось kvg6; 12.11.2006 в 15:59.
Старый 12.10.2006, 11:29   #11  
madproger is offline
madproger
Программист
 
82 / 19 (1) ++
Регистрация: 08.09.2006
Адрес: Москва
Блин - стока вариантов. Думаю для того что мне надо счас подойдет вариант с Диалогом. А для себя надо будет рассмотреть все остальные варианты. Вариант с диалогом - потому что мне надо получить от юзера одну только циферку
__________________
Жизнь меняется тогда, когда меняемся мы...
Старый 12.10.2006, 11:32   #12  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Цитата:
Сообщение от George Nordic Посмотреть сообщение
Блин! Что, все забыли о туториалах??

Смотрите отчеты и формы, начинающиеся с tutorial и содержащие в названии RunBase. Там Ваша задача реализована.
В точности мой совет двумя постами выше. (если от Вашего считать)
Цитата:
Сообщение от George Nordic Посмотреть сообщение
Удачи!
Георгий
а почему без "С уважением"?

Последний раз редактировалось kashperuk; 12.10.2006 в 12:00.
Старый 12.10.2006, 11:37   #13  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Цитата:
Сообщение от kvg6 Посмотреть сообщение
1. не принципиально
2. что-ли RunBaseReport в пакетном режиме не запустить?
1. Зато много удобнее. (запрос подтягивается из отчета, он автоматом вызвается, настройки печати есть сразу, т.д.)
2. Чего ж нельзя, можно. Просто зачем?
Старый 12.10.2006, 11:38   #14  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Цитата:
Сообщение от madproger Посмотреть сообщение
Блин - стока вариантов. Думаю для того что мне надо счас подойдет вариант с Диалогом. А для себя надо будет рассмотреть все остальные варианты. Вариант с диалогом - потому что мне надо получить от юзера одну только циферку
Учитесь сразу следовать BestPractice. Это не совет по поводу данной задачи, а совет просто, на будущее
Старый 12.10.2006, 12:25   #15  
George Nordic is offline
George Nordic
Модератор
Аватар для George Nordic
Злыдни
 
4,479 / 1250 (50) ++++++++
Регистрация: 17.12.2003
Адрес: Moscow
Записей в блоге: 9
Цитата:
Сообщение от kashperuk Посмотреть сообщение
В точности мой совет двумя постами выше. (если от Вашего считать)
Мда, Вы опередили. Я стал отвечать, да отвлекся.
Цитата:
Сообщение от kashperuk Посмотреть сообщение
Учитесь сразу следовать BestPractice. Это не совет по поводу данной задачи, а совет просто, на будущее
Согласен на все 100% Это хороший совет!
Цитата:
Сообщение от kashperuk Посмотреть сообщение
а почему без "С уважением"?
Для разнообразия

С Уважением,
Георгий
Старый 12.10.2006, 12:29   #16  
madproger is offline
madproger
Программист
 
82 / 19 (1) ++
Регистрация: 08.09.2006
Адрес: Москва
Цитата:
Сообщение от kashperuk Посмотреть сообщение
Учитесь сразу следовать BestPractice. Это не совет по поводу данной задачи, а совет просто, на будущее
Тут вот я не очень понял - неужели мне надо писать целый класс, форму, чтобы при запуске отчета спросить одну цифорку у пользователя?
__________________
Жизнь меняется тогда, когда меняемся мы...
Старый 12.10.2006, 12:39   #17  
EVGL is offline
EVGL
Banned
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
4,445 / 3001 (0) ++++++++++
Регистрация: 09.07.2002
Адрес: Parndorf, AT
Цитата:
Сообщение от madproger Посмотреть сообщение
Тут вот я не очень понял - неужели мне надо писать целый класс, форму, чтобы при запуске отчета спросить одну цифорку у пользователя?
Ответ на риторический вопрос - да. Не форму, а класс, как минимум - один метод dialog(). Заметим, что в версии 4.0 Best practices поменялись: если не нужно наследование, то подобные диалоги делают прямо на отчете. Пример: \Reports\BankAccountStatement
Старый 12.10.2006, 12:43   #18  
Косых Артём is offline
Косых Артём
Участник
Axapta Retail User
 
123 / 77 (3) ++++
Регистрация: 03.09.2004
Адрес: Москва
Цитата:
Сообщение от EVGL Посмотреть сообщение
Ответ на риторический вопрос - да. Не форму, а класс, как минимум - один метод dialog(). Заметим, что в версии 4.0 Best practices поменялись: если не нужно наследование, то подобные диалоги делают прямо на отчете. Пример: \Reports\BankAccountStatement
Хмм.. Ведь и в 3.0 можно перекрыть метод dialog() непосредственно на отчете. Почему бы тогда, разумеется если не нужно наследование, не использовать это?
Старый 12.10.2006, 12:45   #19  
EVGL is offline
EVGL
Banned
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
4,445 / 3001 (0) ++++++++++
Регистрация: 09.07.2002
Адрес: Parndorf, AT
А я вот и говорю, что использовать надо. И в 3.0 тоже.
Старый 12.10.2006, 13:19   #20  
madproger is offline
madproger
Программист
 
82 / 19 (1) ++
Регистрация: 08.09.2006
Адрес: Москва
Цитата:
Сообщение от EVGL Посмотреть сообщение
Ответ на риторический вопрос - да. Не форму, а класс, как минимум - один метод dialog(). Заметим, что в версии 4.0 Best practices поменялись: если не нужно наследование, то подобные диалоги делают прямо на отчете. Пример: \Reports\BankAccountStatement
Кстати в этом примере и в версии 3.0 dialog перегружен
Вобщем на данный момент сделал наподобие него
__________________
Жизнь меняется тогда, когда меняемся мы...
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Теория: Создание отчета в виде Запроса Arahnid DAX: Программирование 3 20.12.2007 15:24
Создание Lookup формы Maxim Gorbunov DAX: База знаний и проекты 9 26.06.2007 16:44
Генерация веб-формы на основе отчёта Pawlik DAX: Программирование 0 12.01.2006 11:04
Русская локализация Axapta 3 ? SlavaK DAX: Администрирование 59 01.07.2003 22:38
Создание feature key на поле формы tov DAX: Администрирование 11 30.06.2003 15:49

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 01:40.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.