报表生成器FastReport .Net用户指南:关于脚本(上)

翻译|行业资讯|编辑:胡涛|2024-03-14 11:10:00.490|阅读 27 次

概述:本文介绍报表生成器FastReport .Net中关于脚本部分,欢迎查阅~

# 聚惠初夏 ·DevExpress、Aspose、MyEclipse等知名产品 送技术支持/VIP资源/无门槛优惠券 >>

相关链接:

FastReport的报表生成器(无论VCL平台还是.NET平台),跨平台的多语言脚本引擎FastScript,桌面OLAP FastCube,如今都被世界各地的开发者所认可,这些名字被等价于“速度”、“可靠”和“品质”,在美国,欧洲和非洲不同国家均设有办事处。FastReports网站有10种不同语言的介绍,FastReports报表拥有40种语言的本地化的信息。

FastReport .Net是一款全功能的Windows Forms、ASP.NET和MVC报表分析解决方案,使用FastReport .NET可以创建独立于应用程序的.NET报表,同时FastReport .Net支持中文、英语等14种语言,可以让你的产品保证真正的国际性。

FastReport.NET官方版下载

一般信息

与其他报告生成器不同,FastReport 中的脚本只包含您编写的内容。在脚本中,您可以

  • 在主脚本类中添加变量、方法和属性;
  • 创建报告对象的事件处理程序;
  • 根据需要在脚本中添加新的类。类可以添加在 ReportScript 主类之前或之后。
您不能
  • 删除、重命名或更改 ReportScript 主类的可见性区域;
  • 重命名主类所在的命名空间。
运行报告时,会出现以下情况:
  • fastReport 会在脚本中添加变量列表,这些变量的名称与报告对象的名称相对应。这是在编译脚本之前完成的,这样就可以通过名称来引用报告对象;
  • 在脚本中添加表达式处理程序,处理报告中的所有表达式;
  • 如果脚本不为空,则编译脚本;
  • 初始化脚本类;
  • 运行报告。
事件处理程序

脚本主要用于创建对象的事件处理程序。要创建事件处理程序,请选择所需的对象。在 "Properties(属性)"窗口中按下 按钮,打开事件列表:

fastreport

选择需要的事件并双击。FastReport 会在报告代码中添加一个空的事件处理程序:

private void Text2_BeforePrint(object sender, EventArgs e) { }

Report "对象也有事件。可以通过以下方法选择该对象:
  • 在 "Report Tree”窗口中选择 "Report";
  • 在 "Properties "窗口的下拉列表中选择 "Report"。

要删除事件处理程序,请在 "Properties "窗口中选择一个事件,选中文本并按下删除键:
fastreport

报告事件

为了最大限度地灵活控制报表,每个报表对象都有多个事件。例如,在与 "Data"带连接的处理程序中,可以过滤记录,即根据特定条件隐藏或显示带。

让我们考虑一下在报表生成过程中触发的事件。以一个简单的报表为例,该报表包含一个页面、一个 "Data "条带和条带上的两个 "Text "对象:

fastreport

在报告开始时,"Report "对象会触发 StartReport 事件。在报告页面形成之前,StartPage 事件会被触发。每个模板页面(不要与准备好的报告页面混淆!)都会触发一次该事件。在我们的例子中,无论准备好的报告有多少页,事件都会被触发一次,因为模板报告只有一页。

然后,开始打印 "Data" 带行。具体过程如下:

  • 触发 BeforePrint 带事件;
  • 打印带中所有对象的 BeforePrint 事件被触发;
  • 所有对象都填入数据;
  • 所有位于带状布局上的对象的 AfterData 事件被触发;
  • 触发 BeforeLayout 频带事件;
  • 将对象放置在带状区域上,计算带状区域的高度并拉伸带状区域(如果可以的话);
  • 触发 AfterLayout band 事件;
  • 如果带状物件无法放置在页面的空闲位置,则会形成一个新页面;
  • 在准备好的报告页面上显示条带及其所有对象;
  • 触发 AfterPrint 频带事件;
  • 触发所有条带对象的 AfterPrint 事件。
  • 只要数据源中有数据,就会打印数据带行。之后,在我们的例子中,报告的形成就结束了。一个页面的 FinishPage 事件被触发,最后--"报表 "对象的 FinishReport 事件被触发。

因此,通过使用不同对象的事件,可以控制报告形成的每一步。正确使用事件的关键在于充分理解上述 11 个步骤中阐述的波段打印过程。

因此,只需使用 "BeforePrint "带,就可以完成很多操作--对对象所做的任何更改都会显示出来。但在这种情况下,无法分析如果条带拉伸,将在哪一页打印,因为条带的高度将在第 6 步计算。

这可以借助第 7 步的 AfterLayout 事件或第 10 步的 AfterPrint 来完成,但在后一种情况下,条带已经打印,对对象的操作不会产生任何结果。

总之,您必须明确说明每个事件在哪个时刻触发,并使用与给定任务相对应的事件。

.Net 对象

在脚本中,您可以使用以下程序集中定义的任何 .Net 对象:

System.dll
System.Drawing.dll
System.Windows.Forms.dll
System.Data.dll
System.Xml.dll

除此之外,您还可以使用 FastReport 程序集中定义的任何对象。如果需要访问其他程序集,请将其添加到程序集列表中。这可以在 "Report|Options...(报告|选项...)"菜单中选择 "Script(脚本)"选项卡来完成:
fastreport

例如,如果要在报告中使用在应用程序中声明的函数,请在报告程序集列表中添加应用程序程序集(.exe 或 .dll)。然后就可以使用应用程序的命名空间调用该函数。例如,应用程序中定义了以下函数:

namespace Demo
{
public static class MyFunctions
{
public static string Func1()
{
return"Hello!";
}
}
}
在脚本中调用它的方法如下:
string hello = Demo.MyFunctions.Func1();

如果您使用的是 "Demo",那么它将允许您进行短合成:
string hello = MyFunctions.Func1();

在引用报告对象(例如 "Text "对象)时,请使用对象名称。下面的示例将返回 Text1 对象的高度:

float height = Text1.Height;
请注意,报表的原始测量单位是屏幕像素。在使用此类对象的左、上、宽、高等属性时,请牢记这一点。要将像素转换为厘米或更多,请使用 "Units "类中定义的常量:
 
float heightInPixels = Text1.Height;  float heightInCM = heightInPixels / Units.Centimeters;  Text1.Height = Units.Centimeters * 5; // 5см 

本次关于 FastReport .Net 介绍就讲解到这里了,点击此处查看关于用户指南的更多内容。如果您想获取更多产品试用/授权/价格信息,请点击FastReport .Net了解,或者点击咨询慧都在线客服


FastReport技术QQ群:585577353      欢迎进群一起讨论


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@evget.com


为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问

在线咨询
联系我们

客服热线
023-68661681

QQ客服

意见反馈


添加微信获专业服务

TOP
在线客服系统
live chat