← 返回所有博客文章

ActiveReports 报表控件 的页面报表和RDL报表中,你可以使用自定义表达式来扩展报表的功能。自定义表达式可以嵌入到报表中使用,也可以包装成程序集进行重复调用。

在报表中嵌入表达式

 

首先,创建一张页面或者RDL报表,设计界面出现时点击 Script Tab:

image

 
在其中添加以下方法:

Public Function GetDueDate() as Date
Return DateTime.Now.AddDays(30)
End Function


我们需要在 AR 控件属性中调用这个表达式,例如,你可以在 Textbox 控件的 Value 属性设置如下代码:
=Code.GetDueDate()


如果需要在报表中定义一个常量,那么可以在 Script Tab 中通过以下方式声明:

Public Dim MyVersion As String = "123.456"
Public Dim MyDoubleVersion As Double = 123.456
Public Const MyConst As String = "444"

 

在 Textbox 控件的 Value 属性设置如下代码:

=Code.GetDueDate()
=Code.MyVersion
=Code.MyDoubleVersion
=Code.MyConst


在 Script Tab 中还可以调用报表中的元素,例如参数:

Public Function ReturnParam() As String
Return "param value = " + Report.Parameters!ReportParameter1.value.ToString()
End Function

 

以上表达式用于返回参数值。

你可以在 Textbox 控件的 Value 属性设置如下代码:

=Code.ReturnParam()


以上是一些基础用法,当然你可以在 Script Tab 下定义多个自定义表达式,并且可以同时应用这些表达式到一个或多个控件中。

注意:在页面和RDL报表中,你需要使用 Visual Basic.NET 脚本语言。在区域报表中可以使用Visual Basic.Net 和 C# 脚本语言。

创建程序集


1. 创建 ClassLibrary 工程
2. 添加类文件到新工程中。

3.编辑方法,即为实现需要工程的代码。

注意: 如果仅需要在当前工程中进行使用,需要拷贝 DLL 到当前应用的主DLL同级目录。如果需要在所有工程中都使用这个 DLL,那么需要把 DLL 拷贝到GAC中。

4. 添加 DLL 到报表
打开报表的属性窗体选择 Referrence,浏览选择自定义 DLL,在 Class name 列添加对于类名称,Instance name 列添加类实例名称:

 image

4. 使用DLL中的表达式:
使用静态方法:

=Namespace.Class.Member 

 

使用其他方法:
=Code.InstanceName

=Namespace.Class.Member 

 

Demo:

VS2013 + C# + .NET 4.0