Пользовательская сборка служб Reporting Services: доступ к параметрам отчета - PullRequest
2 голосов
/ 17 ноября 2009

Я пишу пользовательскую сборку для ссылки в отчете. Я хотел бы иметь возможность доступа к объекту Report из этой сборки, чтобы затем получить доступ к параметрам отчета и другим вещам, к которым я могу получить доступ в пользовательском коде RDL, с помощью Report.stuff.

.

Мне, очевидно, для этого нужно сослаться на некоторые сборки служб отчетов, но я не могу понять, какие именно. Я попытался Microsoft.ReportingServices.ProcessingCore, поскольку у него есть класс Report с различными свойствами, такими как Parameters и т. Д., Но когда я попытался передать объект Report из раздела пользовательского кода RDL в мой класс, я получил эту ошибку:

Unable to cast object of type 'ReportExprHostImpl' to type 'Microsoft.ReportingServices.ReportRendering.Report'.

Существует также сборка, которая предоставляет различные интерфейсы и абстрактный класс Report, но, похоже, параметры не имеют свойства.

Итак, вопрос в том, как я могу добиться этого, на какую сборку я должен ссылаться? И, если возможно, могу ли я получить доступ к объекту Report, не передавая его из RDL, то есть, чтобы я мог просто зарегистрировать экземпляр своего класса и позже написать выражение, например:

=Utils.DoStuffWhileReferencingReportParameters(Fields!field.Value)

1 Ответ

0 голосов
/ 17 декабря 2009

Ссылка на эти две библиотеки в вашей библиотеке: Microsoft.ReportingServices.ProcessingCore Microsoft.ReportingServices.ProcessingObjectModel

Поместите следующий код в вашу библиотеку (как пример)

using Microsoft.ReportingServices.ReportProcessing.ReportObjectModel;

public static string Test(Parameters item)
{

    return item ["my_parameter_name"].Value.ToString();
}

Вот пример выражения для использования в вашем файле RDL:

=MyNameSpace.MyStaticClass.Test(Parameters)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...