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

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.NET官方版下载(qun:585577353)icon-default.png?t=N7T8https://www.evget.com/product/1861/download

报告和引擎对象

除了报告中包含的对象外,脚本中还定义了两个变量:报告和引擎。

报告变量指的是当前的报告。在下面的列表中,列出了报告对象的方法:

Method Description
object Calc(string expression) 计算表达式并返回值。首次调用此方法时,表达式将被编译,这需要一些时间。
object GetColumnValue(string complexName) 返回数据列的值。列名必须以 "DataSource.Column "形式显示。如果列的值为空,则默认将其转换为一个值(0、空字符串、false)。
object GetColumnValueNullable(string complexName) 返回数据列的值。与前一个方法相反,它不会转换为默认值,也可能为空。
Parameter GetParameter(string complexName) 返回具有指定名称的报告参数。在引用嵌套参数时,名称可以是复合的:"MainParam.NestedParam"。
object GetParameterValue(string complexName) 返回具有指定名称的报告参数的值。
void SetParameterValue(string complexName, object value) 设置指定名称的报告参数值。
object GetVariableValue(string complexName) 返回系统变量的值,例如 "Date"。
object GetTotalValue(string name) 按名称返回 "Data"窗口中定义的总计值。
DataSourceBase GetDataSource(string alias)

按名称返回报表中定义的数据源。

引擎对象是一个控制报告创建的引擎。通过使用引擎的方法和属性,可以管理在页面上放置波段的过程。您可以使用引擎对象的以下属性:

Property Description
float CurX 当前 X 轴坐标。可以为该属性赋值,以便移动打印对象。
float CurY 当前在 Y 轴上的打印位置。可以为该属性赋值,以移动打印对象。
int CurColumn 多栏报表中当前列的编号。第一列的编号为 0
int CurPage 打印页面的编号。该值可从系统变量 "Page "中获取。
float PageWidth 页面宽度减去左右页边距。
float PageHeight 页面高度减去上下页边距。
float PageFooterHeight 页面页脚(及其所有子带)的高度
float ColumnFooterHeight 栏脚(及其所有子带)的高度。
float FreeSpace 页面可用空间的大小。
bool FirstPass 如果正在执行第一次(或唯一一次)报告传递,则返回 true。可通过 Report.DoublePass 属性获取传递次数。
bool FinalPass 如果正在执行最后一次(或唯一一次)报告传递,则返回 true。

在下图中,你可以看到上面列出的一些属性的含义。 

fastreport

Engine.PageWidth 和 Engine.PageHeight 属性决定打印区域的大小,几乎总是小于页面的实际大小。打印区域的大小由页边距决定,页边距由 LeftMargin、TopMargin、RightMargin 和 BottomMargin 页面属性给出。

Engine.FreeSpace 属性决定页面上可用空间的高度。如果页面上有 ""Report footer" "带,则在计算 FreeSpace 时会考虑其高度。请注意,打印页边框后,可用空间会减少。

如何形成准备好的报告页面?

FastReport 引擎在页面上显示条带,直到有足够的空间进行条带输出。当没有可用空间时,将打印 "报告页脚 "条带并形成新的空页。显示条带从当前位置开始,当前位置由 X 和 Y 坐标决定。该位置由 Engine.CurX 和 Engine.CurY 属性重新调整。打印带状图后,CurY 会自动按打印带状图的高度增加。打印多栏报表时,CurX 的位置会发生变化。

Engine.CurX 和 Engine.CurY 属性不仅可用于读取,也可用于写入。这意味着您可以通过使用一个合适的事件来手动移动条带。使用这些属性的示例请参见 "示例 "部分。

引擎对象中定义了以下方法:

Method Description
void AddOutline(string text) 在报告大纲中添加元素(请参阅 "交互式报告 "章节),并将当前位置设置为添加的元素。
void OutlineRoot() 设置大纲根部的当前位置。
void OutlineUp() 将当前位置移动到更高层次的大纲元素上。
void AddBookmark(string name) 添加书签(请参阅 "交互式报告 "章节)
int GetBookmarkPage(string name) 返回书签所在页码。
void StartNewPage() 开始一个新页面。如果报表是多栏报表,则开始新的一栏。

通过使用 AddOutline、OutlineRoot 和 OutlineUp 方法,可以手动创建报告大纲。通常,这都是借助 OutlineExpression 属性自动完成的,每个波段和报表页面都有 OutlineExpression 属性。

AddOutline 方法为当前大纲元素添加一个子元素,并使其成为当前元素。当前的报告页面和页面上的当前位置都与新元素相关联。如果多次调用 AddOutline 方法,就会产生如下结构:

Item1 Item2 Item3

为了控制当前元素,有 OutlineUp 和 OutlineRoot 方法。第一个方法将指针移到位于更高层的元素上。因此,脚本:

Engine.AddOutline("Item1"); Engine.AddOutline("Item2"); Engine.AddOutline("Item3"); Engine.OutlineUp(); Engine.AddOutline("Item4");

将创建以下大纲:

Item1 Item2 Item3 Item4

OutlineRoot 方法会将当前元素移动到大纲的根部。例如,下面的脚本:

Engine.AddOutline("Item1"); Engine.AddOutline("Item2"); Engine.AddOutline("Item3"); Engine.OutlineRoot(); Engine.AddOutline("Item4");

将创建以下大纲:

Item1 Item2 Item3 Item4

引用系统变量

要引用系统变量,请使用报告对象的 GetVariableValue 方法:

DateTime date = (DateTime)Report.GetVariableValue("Date");

在 "Data "窗口中可以看到系统变量列表。您可以将变量拖入脚本中,FastReport 会自动创建用于引用变量的代码。

引用总值

要引用总值,请使用报告对象的 GetTotalValue 方法:

float sales = Report.GetTotalValue("TotalSales");

在 "Data "窗口中可以看到总数列表。从它,你可以拖动到脚本,在此 FastReport 代码自动引用总。

总计值具有 FastReport.Variant 类型。It can be directly in any expression, because the FastReport.Variant type is automatically converted to any type.例如

float tax = Report.GetTotalValue("TotalSales") * 0.2f;

在处理过程中,可以参考总值。通常情况下,总值在打印带子的那一刻就 "ready to use"。

引用报告参数

要引用报告参数,请使用报告对象的 GetParameterValue 方法:

int myParam = (int)Report.GetParameterValue("MyParameter");

参数可以嵌套。在这种情况下,请标出父参数的名称,并在句号后标出子参数的名称:

Report.GetParameterValue("ParentParameter.ChildParameter")

参数有明确的数据类型。它在参数的 DataType 属性中给出。在引用参数时必须考虑到这一点。您可以在"Data"窗口中看到参数列表。您可以将参数拖入脚本,FastReport 会自动创建用于引用参数的代码。

要更改参数值,请使用报告对象的 SetParameterValue 方法:

Report.SetParameterValue("MyParameter", 10);

本次关于 FastReport .Net 介绍就讲解到这里了,点击此处查看关于用户指南的更多内容。

相关推荐

最近更新

  1. TCP协议是安全的吗?

    2024-03-22 06:04:02       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-22 06:04:02       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-22 06:04:02       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-22 06:04:02       18 阅读

热门阅读

  1. 电商平台客户反馈的数据分析与应用

    2024-03-22 06:04:02       17 阅读
  2. 华岳M9制造企业管理软件业务流程 4/4

    2024-03-22 06:04:02       18 阅读
  3. c++石头剪刀布游戏

    2024-03-22 06:04:02       18 阅读
  4. 如何进行Web应用的版本控制和部署?

    2024-03-22 06:04:02       25 阅读
  5. cad vba 打开excel并弹窗打开指定文件

    2024-03-22 06:04:02       16 阅读
  6. 383.赎金信

    2024-03-22 06:04:02       17 阅读
  7. bert_base_chinese入门

    2024-03-22 06:04:02       20 阅读
  8. python 之 装饰器(Decorators)

    2024-03-22 06:04:02       16 阅读