12.10.2006, 10:49 | #1 |
Программист
|
Создание формы перед генерацией отчета
Здравствуйте
У меня такая ситуация Генерируем какой-либо отчет. Но перед его генерацией мне нужно вызвать какую-либо форму, ввести там данные, в зависимости от этих данных создать отчет. Подскажите, есть ли какой-нить пример такой ситуации и в какую сторону мне лучше копать? Причем эта форма что то вроде модальной формы, диалога. Пока у меня мысли создать форму, привязать ее к MenuItem а потом вызвать - но что то мне кажется что это неправильно |
|
12.10.2006, 10:53 | #2 |
Участник
|
посмотрите любой из наследников класса RunBaseReport
|
|
12.10.2006, 10:58 | #3 |
program-ёр
|
Можно оттолкнуться сразу от RunBaseBatch
__________________
Становись лучше |
|
12.10.2006, 11:00 | #4 |
Участник
|
Это не совсем хорошая идея.
Во-первых, RunBaseReport специфически написан для печати отчетов. Во-вторых, RunBaseBatch нужен для работы в пакетном режиме, который в данном случае врядли будет использоваться. |
|
12.10.2006, 11:10 | #5 |
Программист
|
Хмм....
Попробую разобраться... Спасибо, блин, бальшое (с) Масяня
__________________
Жизнь меняется тогда, когда меняемся мы... |
|
12.10.2006, 11:14 | #6 |
Участник
|
Ну если данных в форме вводить не много, то в отчет можно передать через Args
|
|
12.10.2006, 11:20 | #7 |
Участник
|
Хм. Чтобы помочь вам разбираться, неплохо было бы посмотреть класс tutorial_RunBaseReport.
Создать такой же (дублированием) и: 1) в нем нужно изменить метод lastValueElementName() - в нем указать тот отчет, который хотите вызвать. 2) в методе dialog вызвать или свою форму, или просто диалог (это см. в АОТ в каком-нибудь из наследников) (можно глянуть, к примеру, на tutorial_RunBaseBatch) 3) В методе description() написать то, что хотите видеть в заголовке формы диалога. |
|
12.10.2006, 11:22 | #8 |
Участник
|
Можно создавать форму в отчете
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 |
Модератор
|
Блин! Что, все забыли о туториалах??
Смотрите отчеты и формы, начинающиеся с tutorial и содержащие в названии RunBase. Там Ваша задача реализована. Вкратце: создается своя форма на базе стандартной (с группой, куда автоматом будут добавляться текущие критерии и группой клавиш), в классе перекрывается dialog и вместо диалога по-умолчанию подставляется Ваша форма. Потом параметрически сохраняются переменные, пакуются и запускается отчет. И вуаля! Удачи! Георгий |
|
12.10.2006, 11:28 | #10 |
program-ёр
|
Цитата:
2. что-ли RunBaseReport в пакетном режиме не запустить?
__________________
Становись лучше Последний раз редактировалось kvg6; 12.11.2006 в 15:59. |
|
12.10.2006, 11:29 | #11 |
Программист
|
Блин - стока вариантов. Думаю для того что мне надо счас подойдет вариант с Диалогом. А для себя надо будет рассмотреть все остальные варианты. Вариант с диалогом - потому что мне надо получить от юзера одну только циферку
__________________
Жизнь меняется тогда, когда меняемся мы... |
|
12.10.2006, 11:32 | #12 |
Участник
|
Цитата:
а почему без "С уважением"? Последний раз редактировалось kashperuk; 12.10.2006 в 12:00. |
|
12.10.2006, 11:37 | #13 |
Участник
|
Цитата:
2. Чего ж нельзя, можно. Просто зачем? |
|
12.10.2006, 11:38 | #14 |
Участник
|
Учитесь сразу следовать BestPractice. Это не совет по поводу данной задачи, а совет просто, на будущее
|
|
12.10.2006, 12:25 | #15 |
Модератор
|
Мда, Вы опередили. Я стал отвечать, да отвлекся.
Цитата:
Для разнообразия С Уважением, Георгий |
|
12.10.2006, 12:29 | #16 |
Программист
|
Тут вот я не очень понял - неужели мне надо писать целый класс, форму, чтобы при запуске отчета спросить одну цифорку у пользователя?
__________________
Жизнь меняется тогда, когда меняемся мы... |
|
12.10.2006, 12:39 | #17 |
Banned
|
Ответ на риторический вопрос - да. Не форму, а класс, как минимум - один метод dialog(). Заметим, что в версии 4.0 Best practices поменялись: если не нужно наследование, то подобные диалоги делают прямо на отчете. Пример: \Reports\BankAccountStatement
|
|
12.10.2006, 12:43 | #18 |
Участник
|
Хмм.. Ведь и в 3.0 можно перекрыть метод dialog() непосредственно на отчете. Почему бы тогда, разумеется если не нужно наследование, не использовать это?
|
|
12.10.2006, 12:45 | #19 |
Banned
|
А я вот и говорю, что использовать надо. И в 3.0 тоже.
|
|
12.10.2006, 13:19 | #20 |
Программист
|
Цитата:
Вобщем на данный момент сделал наподобие него
__________________
Жизнь меняется тогда, когда меняемся мы... |
|
|
Похожие темы | ||||
Тема | Ответов | |||
Теория: Создание отчета в виде Запроса | 3 | |||
Создание Lookup формы | 9 | |||
Генерация веб-формы на основе отчёта | 0 | |||
Русская локализация Axapta 3 ? | 59 | |||
Создание feature key на поле формы | 11 |
|