前面的数据处理博文解释的,是“静态”的,即通过属性设置格式、输入数学表达式、使用ActiveReports内置的函数。下面我通过后台代码、脚本来实现“动态”,即运行时来修改数据内容或者UI控件的文字、颜色等属性内容。
ActiveReports 是一款专注于 .NET 和 .NET Core 平台的 表控件。通过拖拽式 表设计器,可以快速地设计 Excel表格、Word文档、图表、数据过滤、数据钻取、精准套打等类型 表,全面满足 WinForm、ASP.NET、ASP.NET MVC、WPF 平台中各种 表的开发需要。同时,通过丰富的 API 可以灵活的实现 表创建、加载和运行时的个性化自定义需求。
前面的数据处理博文解释的,是“静态”的,即通过属性设置格式、输入数学表达式、使用
页面 表:
我们通过脚本可实现在运行时修改数据。
添加页面 表后,回出现下的模板,脚本选项卡将会出现在 表设计器中,然后您可以在脚本选项卡中写入代码(VB.net)。

- 返回未来30天的日期
脚本代码:
Public Function GetDueDate() as Date Return DateTime.Now.AddDays(30)End Function
在 Textbox 控件的Value属性来调用此函数:
=Code.GetDueDate()
- 使用自定义常量和变量
脚本代码:
Public Dim MyDoubleVersion As Double = 123.456
在 Textbox 控件的Value属性中使用之前定义的常量:
=Code.MyDoubleVersion
- 使用全局参数集合
脚本代码:
Public Function ReturnParam() As StringReturn "param value = " + Report.Parameters!ReportParameter1.value.ToString()End Function
在 TextBox 控件的Value属性中调用全局集合:
=Code.ReturnParam()
- 判断数据值返回颜色
脚本代码:
Public Function GetColorByValue(val As Integer) As System.ConsoleColorSelect Case valCase 1Return System.ConsoleColor.BlueExit SelectCase 2Return System.ConsoleColor.RedExit SelectCase 3Return System.ConsoleColor.GreenExit SelectCase ElseReturn System.ConsoleColor.DarkYellowExit SelectEnd SelectEnd Function
在Table的Detail中调用:
BackgroundColor=Code.GetColorByValue(Fields!产品ID.Value)
展示结果:

注意:
- 在页面 表中,可以使用 Visual Basic.NET 作为脚本语言;
- 在区域 表中, 可以使用 Visual Basic.NET 和 C# 语言作为脚本语言。
区域 表
脚本和后台代码,原理相同,用到了区域 表的事件,关于事件请阅读这篇博文《ActiveReports 区域 表中的事件介绍》。
区域 表强大的脚本编程能力,几乎无所不能,如可在脚本中控制 表的UI控件,非常方便。
不用UI调用,而是在脚本中控制UI控件,且非常好的兼容Visual Basic.NET 和 C# 语言。
此外,对习惯了使用Visual Studio的程序员而言,没有什么比能提供智能感知更爽的东西了:

脚本代码:
public void Detail_Format()
{
int id = Convert.ToInt32(this.TextBox3.Text);
switch(id)
{
case 1:
this.TextBox2.BackColor = Color.Red;
break;
case 2:
this.TextBox2.BackColor = Color.Green;
break;
case 3:
this.TextBox2.BackColor = Color.Blue;
break;
default:
this.TextBox2.BackColor = Color.White;
break;
}
}
结果展现:
注意:
- 使用 “this”(C#.net)“或者“Me”(VB.net)来引用 表对象
源码下载:
表中的数据处理:运行时修改数据.rar
人民币金额小写转换为大写.zip (50.83 kb)
标签:
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!