Reporting Services自定义程序集:访问报表参数

时间:2009-11-17 08:20:21

标签: reporting-services ssrs-2008

我正在编写要在报告中引用的自定义程序集。我希望能够从该程序集中访问Report对象,以便我可以使用Report.stuff访问报表参数以及我可以在自定义RDL代码中访问的其他内容。

我显然需要引用一些报告服务程序集来执行此操作,但我无法弄清楚哪些。我尝试了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 :(得分:0)

在您的库中引用这两个dll: 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)