Reporting services 使用外部组件';s方法';将结果作为数据集

Reporting services 使用外部组件';s方法';将结果作为数据集,reporting-services,ssrs-2008,Reporting Services,Ssrs 2008,使用SQL2008R2: 我试图创建一个数据集,它只是外部程序集的返回方法的结果,但是我所能找到的关于使用自定义/外部程序集的所有内容都只是通过表达式将文本框的值设置为外部程序集的方法的结果 我只想让报表服务器在外部程序集中进行数据处理,并将结果绑定到一个非常简单的报表 我找到了一些有关MDX的参考资料,但它们似乎已经过时了几年,需要知道这是否可行。假设您已经有一个.dll-将您的dll放在报表设计器文件夹(RDL所在的位置)和报表服务器文件夹中,在这附近的某个地方: Program Files

使用SQL2008R2: 我试图创建一个数据集,它只是外部程序集的返回方法的结果,但是我所能找到的关于使用自定义/外部程序集的所有内容都只是通过表达式将文本框的值设置为外部程序集的方法的结果

我只想让报表服务器在外部程序集中进行数据处理,并将结果绑定到一个非常简单的报表


我找到了一些有关MDX的参考资料,但它们似乎已经过时了几年,需要知道这是否可行。

假设您已经有一个.dll-将您的dll放在报表设计器文件夹(RDL所在的位置)和报表服务器文件夹中,在这附近的某个地方:

Program Files\Microsoft Visual Studio 8\Common7\IDE\PrivateAssemblies
Program Files\Microsoft SQL Server\MSSQL.3\Reporting Services\ReportServer\bin
现在从报告中添加对dll的引用。
打开报表后,转到报表、报表属性、引用、添加引用、浏览到dll并添加它

现在,在文本框属性值中调用dll的方法。它应该是这样的:

=MyDllName.ClassName.MyMethodOrSubOrWhatever
这是一篇很好的文章,可以引导您了解以下内容:


假设您已经有一个.dll-将您的dll放在报表设计器文件夹(RDL所在的位置)和报表服务器文件夹中,位于以下位置:

Program Files\Microsoft Visual Studio 8\Common7\IDE\PrivateAssemblies
Program Files\Microsoft SQL Server\MSSQL.3\Reporting Services\ReportServer\bin
程序文件\Microsoft Visual Studio 8\Common7\IDE\PrivateAssembly 程序文件\Microsoft SQL Server\MSSQL.3\Reporting Services\ReportServer\bin

现在从报告中添加对dll的引用。
打开报表后,转到报表、报表属性、引用、添加引用、浏览到dll并添加它

现在,在文本框属性值中调用dll的方法。它应该是这样的: =MyDllName.ClassName.mymethodorsuborwhich

这是一篇很好的文章,可以引导您了解以下内容:


另外,如果您不想让web服务器承担繁重的工作,另一种选择是使用存储过程。然而,根据我们使用大型数据库系统的经验,扩展web服务器要比扩展数据库服务器容易得多,因此我们在web服务器上做了很多繁重的工作

如果需要由自定义.NET代码生成的数据集,可以设置web服务(),也可以设置自定义“数据处理扩展”

数据处理扩展将允许您在SSRS报表设计器中选择新的数据源,该数据源将运行自定义.NET代码。MSDN上有,但以下是基本步骤:

  • 创建一个新的类库项目
  • 实现所有必需的扩展(以及任何所需的可选扩展)
  • 将DLL复制到SSRS
    bin
    文件夹
  • 编辑SSRS配置文件以注册扩展名(通过指定类的完全限定名)

  • 您可以从和中找到工作示例。

    为了澄清,我知道我可以将XML数据源设置为Web服务。在本例中,我希望由报表服务器而不是web服务器来完成工作。谢谢,但我希望将外部程序集的方法结果作为数据集,而不是将文本框指向一段数据。程序集中的方法返回一个数据集。执行存储过程需要在数据库上使用CLR,这样它就可以使用我们的businesslayer进行兼容,这当然是一个选项,但我们希望探索其他一些选项。我没有要测试的程序集,但我会尝试添加新的数据集>查询类型:Text>Function>=MyAssmbly.Etc。。数据应该传递参数,并期望返回数据表。现在我想知道,一旦我有空闲时间,我就要进行一个测试:)我想函数必须使用命令行参数调用程序集,例如/myDllParamFoo=@myRdlParamFoo/myDllNextParam=mynextrdldparam。这个问题是关于将程序集返回的数据用作数据集,而不是作为查询文本