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

Результаты опроса: Нужен ли .Net Аксапте?
Конечно нужен, это ведь дополнительные возможности. 32 84.21%
Все что надо можно через DLL делать и не мучиться. 3 7.89%
Знал бы прикуп жил бы в Сочи. 3 7.89%
Голосовавшие: 38. Вы ещё не голосовали в этом опросе

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 19.06.2008, 14:18   #13  
KingPeas is offline
KingPeas
Участник
Аватар для KingPeas
 
163 / 35 (2) +++
Регистрация: 09.01.2007
Адрес: Россия, Новосибирск
:(
Цитата:
Сообщение от RumataEstor Посмотреть сообщение
Уверен, что ReportingServices типа Microsoft.Dynamics.ReportingServices.ReportingService2005? Уж с методами все должно быть нормально, ведь ListChildren нормально отрабатывает.
Тип правильный. Во первых в определении явно указываю
X++:
Microsoft.Dynamics.ReportingServices.ReportingService2005   ReportingServices = new Microsoft.Dynamics.ReportingServices.ReportingService2005();
Во вторых специально ввел для проверки в месте вызова
X++:
 info (ReportingServices.ToString());
возвращает
Microsoft.Dynamics.ReportingServices.ReportingService2005
так что ошибка непонятно где( Может у кого есть возможность в 2009 посмотреть код, там вроде описание необходимых параметров есть, возможно и ошибки более детальные выдаются...
Вот результирующий код
X++:
static void RSGetReportParameter2(Args _args)
{
    Microsoft.Dynamics.ReportingServices.ReportingService2005   ReportingServices = new Microsoft.Dynamics.ReportingServices.ReportingService2005();
    Microsoft.Dynamics.ReportingServices.CatalogItem            catalogItem;
    Microsoft.Dynamics.ReportingServices.ItemTypeEnum           itemTypeEnum;

    Microsoft.Dynamics.ReportingServices.ReportParameter        reportParameter;
    SRSItemTypeEnum                                             ItemType;
    System.Net.ICredentials cred = CLRInterop::staticInvoke("System.Net.CredentialCache", "get_DefaultCredentials");

    System.Exception                                            exception;
    System.Array                                                ar, ar2, arEmpty;
    System.Text.StringBuilder                                   sb = new System.Text.StringBuilder();
    System.Uri                                                  url = new System.Uri('http://ax-dev/ReportServer');
    str         name,
                path;
    int         i, j, arLength, arLength2, typeElement;
    str         type;

    anytype getFieldValue(CLRObject _object, str  _fieldName)
    {
        System.Type                     t;
        System.Reflection.FieldInfo     fieldInfo;
        ;

        t = _object.GetType();
        fieldInfo = t.GetField(_fieldName);
        return fieldInfo.GetValue(_object);

    }
    ;

    try
    {
        ReportingServices.set_WebServiceUrl('http://ax-dev/ReportServer/ReportService2005.asmx');
        ReportingServices.set_Credentials(cred);
        ar = ReportingServices.ListChildren('/',true);
        arLength = ar.get_Length();
        for (i=0; i< arLength; i++)
        {
            catalogItem = ar.GetValue(i);
            path = getFieldValue(catalogItem,"Path");
            name = getFieldValue(catalogItem,"Name");
            typeElement = getFieldValue(catalogItem,"Type");
            ItemType = typeElement;
            info (strfmt('%1 - %2 (%3)',ItemType, path, name));
            ar2 = ReportingServices.GetReportParameters(path, null, false, null, null);
            arLength2 = ar2.get_Length();
            for (j = 0; j < arLength2; j++)
            {
                reportParameter = ar2.GetValue(j);
                name = getFieldValue(reportParameter,"Name");
                info(strFmt('--Параметр %1',name));
            }

        }
    }
    catch (Exception::CLRError)
    {
        info('Ошибка .NET');
        exception = CLRInterop::getLastException();
        name = exception.ToString();
        info (name);

    }

    info('Конец');

}
__________________
Хочу IQ как ICQ, ну или хотя бы ICQ как IQ.
Теги
.net, отчет, reporting services

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Как сделать фильтр по группе пользователей? Zabr DAX: Программирование 12 08.04.2009 11:40
jinx: Microsoft Dynamics AX - X++ und .NET (CLR) Arrays Blog bot DAX auf Deutsch 0 03.03.2009 03:08
Dynamics AX: Vista, IIS 7 and .Net BC Blog bot DAX Blogs 0 14.06.2007 10:00
Dynamics AX: .Net BC Custom App, One Step Back! [Connection] Blog bot DAX Blogs 0 07.06.2007 22:41
Что сделать, чтобы связанные Data Source обновились? Maxim Gorbunov DAX: Программирование 4 11.04.2005 17:40

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

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

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