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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 25.06.2002, 14:11   #1  
eugene egorov is offline
eugene egorov
Участник
Аватар для eugene egorov
 
273 / 97 (4) ++++
Регистрация: 05.06.2002
Адрес: Москва
:( передача параметров в Report
помогите чайнику - сделал форму для запроса параметров отчета, сделал отчет, сделал кнопку для запуска отчета - типа

X++:
void clicked()
{
    super();
    reportRun = new ReportRun(My_Report1);
    if ( reportRun.prompt() )
    reportRun.run();
}
а вот как передать несколько параметров в отчет (даты всякие и пр.) так и не сообразил
Старый 25.06.2002, 19:34   #2  
SSA is offline
SSA
Участник
 
20 / 12 (1) ++
Регистрация: 21.06.2002
Адрес: Балашиха
Так запускать отчет не совсем верно (написано в кратком описании языка).

Попробуй один из следующих способов
1. Через MenuItem
PHP код:
Args = New Args();
args.caller(<параметр>); // типа this, element
args.parmEnum(<Enum параметр>);
args record(<Таблица>);
...
new 
MenuFunction("<Имя отчета>"MenuItemType::<тип MenuItem>).run(args);// Тип Display, Output, Action 
2. Через класс classFactory
PHP код:
ReportRun reportRun;
args = new args();
;
args.caller(<Параметр>); // типа this, element (тип параметра object)
args.name(reportstr(MyReport));
args.parmEnum(<Enum параметр>);
...
reportRun ClassFactory.ReportRunClass(args);
reportRun.init(;
reportRun.Run(); 
3. Создать класс наследник от RunBaseReport
3.1 Перекрыть метод lastValueElementName(). Этот меод должен возвращать имя отчета
3.2 Перекрыть метод Dialog(). Если используешь форму, то он должен выглядеть так

PHP код:
public object Dialog()
{
    
Args            parameters = new Args();
    
FormRun         formRun;

    ;
    
parameters.caller(this);
    
parameters.name(formstr(MyForm));
    
parameters.parmEnum(this.ParmEnum()); // параметр в форму
    
formRun classFactory.formRunClass(parameters);

    return 
formRun;

3.3 Если не будет пакетной обработки, тогда перекрой метод CanGoBatch() он должен вернуть False (return False) и все
3.4 Создать метод static void main(args args). Пример ниже

PHP код:
static void Main(Args args)
{
    
MyRunBaseКeport       report// MyRunBaseReport класс наследник RunBaseReport
    
;
    
Report =new MyRunBaseReport();

    
report.initParmDefault();
    if (
report.prompt())
        
report.run();

В качестве параметра в отчет уйдет класс MyRunBaseReport
Сначала должен запускаться Класс MyRunBaseReport, а из класса запускается форма

Класс RunBaseReport наследуется от RunBaseBatch который наследуется от RunBase все дополнительные возможности класса смотри в "Описание класса RunBase" на этом сайте.


Как достать параметры
перекрыть метод init() у отчета
element.args().caller(); вернет то, что переслали в caller() при вызове отчета
т.е. В 3 методе вернется класс MyRunBaseReport.
в этом объекте (который ушел в caller()) создаешь методы которые будут возвращать нужные параметры...
А вызвать эти методы можно так
PHP код:
fromDate element.Args().caller().FromDate(); 
PHP код:
public void init()
{
    ;
    
super();


    
report element.args().caller(); // если в качестве параметра ушел класс так удобнее
    
fromDate report.FromDate();
...

__________________
Сергей
За это сообщение автора поблагодарили: alex55 (1).
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Передача переменного числа параметров в метод lemchey_white DAX: Программирование 16 14.12.2009 21:21
передача параметров в запрос while select tolstjak DAX: Программирование 13 15.02.2009 19:39
Передача query в report, проблемы Андрей К. DAX: Программирование 9 26.06.2008 15:38
Передача параметров запроса из CurrentList tolstjak DAX: Программирование 3 21.04.2008 09:56
Передача параметров Vpooh DAX: Программирование 2 21.10.2003 13:43
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

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

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