ActiveReports 报表控件 的页面报表和RDL报表中,你可以使用自定义表达式来扩展报表的功能。自定义表达式可以嵌入到报表中使用,也可以包装成程序集进行重复调用。
在报表中嵌入表达式
首先,创建一张页面或者RDL报表,设计界面出现时点击 Script Tab:
在其中添加以下方法:
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 列添加类实例名称:
4. 使用DLL中的表达式:
使用静态方法:
=Namespace.Class.Member
使用其他方法:
=Code.InstanceName
=Namespace.Class.Member
Demo:
VS2013 + C# + .NET 4.0