Reporting Service 中使用自定义程序集

   如要在报表中使用自定义程序集,您必须先创建程序集,使其可供报表设计器使用,然后在报表中添加对该程序集的引用,最后在报表中使用表达式来引用该程序集中的方法。
   如果报表部署到报表服务器,您还必须向报表服务器部署该自定义程序集。

布署步骤:

1.把自己写的自定义的程序集拷贝到以下目录:
  1)报表服务器的目录.默认目录为 C:\Program Files\Microsoft SQL Server\MSSQL.3\Reporting Services\ReportServer\bin.
  2)vs 2005的安装目录下.默认目录为: C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\PrivateAssemblies.

2.如果你的程序集代码需要运行权限,请打开以下目录下的适当的配置文件.(这一步不是必须的.)

报表服务器,默认目录为 C:\Program Files\Microsoft SQL Server\MSSQL\Reporting Services\ReportServer.
vs 2005安装默认目录为 C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\PrivateAssemblies.


3. 向报表添加程序集引用

  1)在“报表”菜单上,单击“报表属性”。

 注意: 
         如果“报表”菜单不可用,请单击报表设计区域。

 


 2)在“引用”选项卡上,执行以下操作:

    a)在“引用”中,单击添加按钮 (...),然后在“添加引用”对话框中选择或找到程序集。

  b)在“类”中,键入类的名称并提供要在报表中使用的实例名。

 注意: 
         仅为基于实例的成员指定类名称和实例名。请不要在“类”列表中指定静态成员。
 

使用:

    若要在表达式中引用自定义代码,您必须调用自定义程序集中某个类的成员。
    调用方式取决于该方法是静态方法还是基于实例的方法。
  
1. 自定义程序集中的静态方法可在报表内全局使用。您可以在表达式中通过命名空间、类和方法名称来访问静态方法。
  下面的示例调用 ToGBP 方法,该方法将 StandardCost 字段的值从美元转换为英镑:

=CurrencyConversion.DollarCurrencyConversion.ToGBP(Fields!StandardCost.Value)

2.  基于实例的方法可通过全局定义的 Code 成员使用。
 您可以通过先引用 Code 成员,再引用实例和方法名称,来访问这些方法。
 下面的示例调用实例方法 ToEUR,该方法将 StandardCost 字段的值从美元转换为欧元:
 
例1
=Code.m_myDollarCoversion.ToEUR(Fields!StandardCost.Value)

例2:时间差计算并进行格式转换
=Code.mydate.DateTimeDiff(Fields!StartLoadTime.Value,Fields!FactArriveTime.Value,"hhMM")

注意: 
       在报表设计器中,除非您关闭 Visual Studio,否则一旦加载自定义程序集,就不会卸载该程序集。
       如果预览报表后对报表所用的自定义程序集进行更改,然后再次预览该报表,则第二次预览结果中不会体现所做的更改。
      若要重新加载程序集,请关闭 Visual Studio,再将其重新打开,然后预览报表。

可以参考以下文章
 http://blogs.gotdotnet.com/swisowaty/archive/2006/06/21/641734.aspx

posted @ 2006-10-26 14:54  DotNet菜园  阅读(1266)  评论(1编辑  收藏  举报