通过表达式访问自定义程序集

创建自定义程序集后,将其提供给报表设计器或报表服务器、添加相应的安全策略,并在报表定义中添加对自定义程序集的引用后,可以使用报表表达式访问程序集中的类的成员。 若要在表达式中引用自定义代码,您必须调用程序集中某个类的成员。 调用方式取决于该方法是静态方法还是基于实例的方法。

从报表定义文件调用静态成员

静态成员属于类或类型本身,而不是实例化对象。 可以通过直接从类调用这些成员来访问这些成员。 应尽可能使用静态成员来调用报表中的自定义函数,因为静态成员的性能最好。 若要调用静态成员,需要将其引用为采用 =Namespace.Class.Method 形式的表达式。

调用静态成员

  • 若要调用静态成员,请将表达式设置为等于成员的完全限定名称,其中包括命名空间、类名称和成员名称。 以下示例调用 ToHTTP 方法,该方法将 StandardCost 字段值从美元转换为英镑,并将其显示在报表中:

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

有关静态字段和属性的重要信息

目前,所有报表都在同一应用程序域中执行。 这意味着具有用户特定静态数据的报表会将此数据公开给同一报表的其他实例。 此条件可能使一个用户的静态数据可供当前运行特定报表的所有用户使用。 因此,强烈建议不要在自定义程序集或 Code 元素中使用静态字段或属性;而是在报表中使用实例字段或属性。 静态方法仍可使用,因为它们不存储状态或数据。

从报表定义文件中调用实例成员

如果自定义程序集包含需要在报表定义中访问的实例成员,则必须将类的实例名称添加到报表中。 可以使用“报表属性”对话框的“代码”选项卡为类添加实例名称。 有关将类实例添加到报表的详细信息,请参阅报表设计器中表达式中的自定义代码和程序集引用(SSRS)。

若要调用静态成员,需要将其引用为采用窗体 = Code* 的表达式。InstanceName.Method*.

调用实例成员

  • 若要调用自定义程序集的实例成员,必须引用 Code 关键字,后跟实例名称和方法。 以下示例调用一个实例方法 ToEUR ,该方法将 StandardCost 字段值从美元转换为欧元,并将其显示在报表中:

    =Code.m_myDollarCoversion.ToEUR(Fields!StandardCost.Value)  
    

另请参阅

将自定义程序集用于报表