Previous topicNext topic
Help > 操作指南 > 页面报表/RDL报表操作方法 > 常见任务 >
使用脚本向布局添加代码

页报表 RDL 报表中,可以在表达式中使用自定义代码来扩展报表的功能。但是,对于复杂函数或计划在报表中多次使用的函数,您还可以在报表中嵌入代码。还可以为要在多个报表中使用的代码创建和维护自定义程序集,并在表达式中引用其方法。

在报表中嵌入代码

将页面报表/RDL 报表模板添加到项目中,并在出现的 ActiveReports 设计器中,在“脚本”选项卡中添加如下所示的代码。

从控件的属性调用函数

这是单个方法代码块的简单示例:
Public Function GetDueDate() as Date
    Return DateTime.Now.AddDays(30)
End Function

这是一个表达式,用于从控件的属性调用代码块中的方法。例如,可以在 Textbox 控件的 Value 属性中调用此函数:
=Code.GetDueDate()

使用控件属性中的自定义常量和变量

下面是如何在代码块中定义自定义常量和变量的简单示例:
Public Dim MyVersion As String = "123.456"
Public Dim MyDoubleVersion As Double = 123.456
Public Const MyConst As String = "444"

这是一个表达式,用于在控件属性中的代码块中使用自定义常量和变量。例如,可以在 Textbox 控件的 Value 属性中获取变量或常量的值:
=Code.MyVersion
=Code.MyDoubleVersion
=Code.MyConst

从控件的属性调用全局集合

下面是全局集合代码块的简单示例,其中代码块引用报表对象以访问报表参数值:
Public Function ReturnParam() As String
    Return "param value = " + Report.Parameters!ReportParameter1.value.ToString()
End Function

这是一个表达式,用于从控件的属性调用代码块中的全局集合。例如,可以在 Textbox 控件的 Value 属性中调用全局集合:
=Code.ReturnParam()

以代码块的形式使用基于实例的 Visual Basic .NET 代码。可以在代码块中包含多个方法,并从控件属性中的表达式访问这些方法。

注意:在页报表或 RDL 报表中,可以使用可视 Basic.NET 作为脚本语言。但是,可以在脚本中同时使用 Visual Basic.Net 和 C# 进行节报表

创建自定义程序集

可以在 C# 或 Visual Basic .NET 中创建自定义程序集,以使代码可用于多个报表:

  1. 创建或查找要使用的程序集。程序集可以在安装位置找到:C:\Program Files (x86)\GrapeCity\ActiveReports 14\NuGet\{包名}\lib\net462\{程序集}
  2. 使程序集可用于报表引擎。
    • 如果要在自己的应用程序中嵌入设计器或查看器控件,请将程序集复制到可执行文件所在的位置。
    • 如果您使用的是包含的设计器或查看器,请将程序集复制到默认情况下位于 ...\GrapeCity\ActiveReports 14 的 ActiveReports 程序集文件夹中。
      注意:若要使程序集可用于您自己的应用程序并用于为应用程序设计报表,请将其复制到上面列出的两个位置。或者,可以将程序集放在全局程序集缓存 (C:\Windows\assembly) 中。
  3. 添加对报表的程序集引用。
    • “报告”菜单中,选择“报告属性”。
    • 在出现的“报告”对话框中,选择“引用”,然后单击程序集名称列表上方的“打开”图标以添加您自己的程序集。
    • 转到程序集名称下方的“类”列表,然后在“类名”下输入命名空间和类名。同样,在“实例名称”下,输入要在表达式中使用的名称。
  4. 通过表达式访问程序集。
    • 访问静态成员(在 C# 程序集中表示或在 Visual Basic 程序集中表示的成员):public staticPublic Shared
      =Namespace.Class.Member
    • 访问类实例:
      =Code.InstanceName