Показать сообщение отдельно
Старый 13.06.2008, 09:04   #16  
KingPeas is offline
KingPeas
Участник
Аватар для KingPeas
 
163 / 35 (2) +++
Регистрация: 09.01.2007
Адрес: Россия, Новосибирск
Ура у меня заработало) Спасибо всем за помощь, а особенно:

Цитата:
Сообщение от RumataEstor Посмотреть сообщение
...
Поэтому, чтобы получить список параметров необходимо:
  1. Создать Microsoft.Reporting.WebForms.ReportViewer.
  2. Установить его свойства на ваш отчет:
    • .ProcessingMode = ProcessingMode.Remote;
    • .ServerReport.ReportServerUrl = new Uri("http://ваш ури");
    • .ServerReport.ReportPath = "/ваш путь отчета".
  3. Получить список параметров с помощью метода ServerReport.GetParameters().

Еще хочу заметить, что для использования ReportViewer нужна сборка Microsoft.ReportViewer.WebForms.dll
Хотя остался один не ясный момент. Привожу код как я добился решения по своей задаче в аксапте 4.

X++:
static void RSGetReportParameter(Args _args)
{
    Microsoft.Reporting.WebForms.ReportViewer                   ReportViewer = new Microsoft.Reporting.WebForms.ReportViewer();
    Microsoft.Reporting.WebForms.ProcessingMode                 ProcessingMode;
    Microsoft.Reporting.WebForms.ServerReport                   ServerReport;
    Microsoft.Reporting.WebForms.ReportParameterInfoCollection  ParameterCollection;
    Microsoft.Reporting.WebForms.ReportParameter                ReportParameter;
    System.Uri                                                  url = new System.Uri('http://ax-dev/ReportServer');

    int         i;
    int         parmNum;
    str         name;
    ;

    //ReportViewer.set_ProcessingMode(?*?); Как установить не знаю по умолчанию Local
    ServerReport = ReportViewer.get_ServerReport();
    ServerReport.set_ReportServerUrl(url);
    ServerReport.set_ReportPath('/ABCD_New/ABCD_New');
    ParameterCollection = ServerReport.GetParameters();
    
    parmNum = ParameterCollection.get_Count();
    info (strfmt('Всего параметров: %1', parmnum));
    
    for (i = 0; i < parmNum; i++)
    {
        ReportParameter = ParameterCollection.get_Item(i);
        name = ReportParameter.get_Name();
        info (strFmt("%1 - %2",i,name));
    }
    
    info('Конец списка');

}
Не знаю как установить ProcessingMode. Доступа к константам хранящимся в ProcessingMode нет, есть только методы
  1. CompareTo()
  2. Equals()
  3. GetHashCode()
  4. GetType()
  5. GetTypeCode()
  6. toString()
Судя по названию методов через них установить значение не возможно.
Насколько это критично если я использую не Remote а Local подключение? И есть идеи как его установить?
__________________
Хочу IQ как ICQ, ну или хотя бы ICQ как IQ.
За это сообщение автора поблагодарили: iCloud (2).