报表生成器FastReport .Net用户指南:互动报告示例

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

FastReport.NET官方版下载(qun:585577353)icon-default.png?t=N7T8https://www.evget.com/product/1861/download

在上文中我们已经向您介绍了创建互动报告,本文我们将继续为您介绍互动报告示例,

示例 1.网页链接

在本例中,我们将创建一个包含 "Text "对象的简单报告。点击预览窗口中的对象后,我们将进入 FastReport 网页。

创建新报告并添加 "Text "对象。在其中写入以下文本:

Go FastReport home page 

右键单击对象,选择右键菜单中的 "Hyperlink... "项。按以下方式配置链接:

FastReport.NET

然后,启用 "Modify the object's appearance..."复选框,以便为对象应用一些链接属性(蓝色文本颜色、下划线和手形光标)。

运行报告并点击对象。网络浏览器窗口打开,您将进入 FastReport 主页。

在本例中,我们将创建一个包含 "Text "对象的简单报告。点击预览窗口中的对象后,我们将进入 FastReport 网页。

创建新报告并添加 "Text "对象。在其中写入以下文本:

 Go FastReport home page   

右键单击对象,选择右键菜单中的 "Hyperlink... "项。按以下方式配置链接:

fastreport

然后,启用 "Modify the object's appearance..."复选框,以便为对象应用一些链接属性(蓝色文本颜色、下划线和手形光标)。

运行报告并点击对象。网络浏览器窗口打开,您将进入 FastReport 主页。

示例 2.创建详细报告

在本例中,我们将创建一个显示类别列表的报告。点击类别名称后,将显示详细报告,其中包含给定类别中的产品列表。

您需要执行以下操作:

  • 首先创建详细报告;
  • 定义识别类别的报告参数;
  • 根据该参数设置数据过滤;
  • 创建主报告;
  • 在主报告中配置超链接,以便在运行详细报告时将参数设置为所选类别。

首先,我们将创建一个打印产品列表的详细报告。为此,创建一个新报告并选择 "Products "表作为数据源。按以下放置对象:

fastreport

创建一个参数,用于将所选类别从主报告传递到详细报告。为了识别类别,我们将使用 "CategoryID "表和 "Products"表中都包含的 "CategoryID "列。按以下方式配置参数:

fastreport

现在,我们需要设置数据过滤,以过滤属于指定类别的所有产品。为此,请双击 "Data"带。切换到 "Filter "选项卡,并输入以下条件:

fastreport

现在创建主报告。创建新报告并选择 "Categories"表作为数据源。按以下方式放置对象:

fastreport

右击 "Text "对象,选择 "Hyperlink..."菜单项。按以下方式设置链接:

fastreport

选择详细报告文件的名称作为报告名称。按列表右侧的按钮,可从下拉列表中选择报告参数。作为参数值,请使用"[Categories.CategoryID]"表达式。

运行报告后,您将看到类别列表:

fastreport


如果点击其中一个类别,就会生成一份详细报告。它将显示在预览窗口的一个单独选项卡上:

fastreport

如图所示,标签页的标题被设置为超链接的值。在我们的例子中,这是 "CategoryID "数据列中的数值。这看起来既不翔实,也不美观。让我们更改报告,使用类别名称而不是其编号。为此,请执行以下操作:

在详细报告中

  • 将参数的 "DataType(数据类型)"属性更改为 "String(字符串)";
  • 在报告中添加 "Categories"数据源。它将用于在筛选数据时引用 "CategoryName "列;
  • 更改 "Data "带的过滤表达式:
[Products.Categories.CategoryName] == [SelectedCategory]

在主要报告中

  • 更改超链接设置。现在,我们将把"[Categories.CategoryName]"值传入报告参数。

如果我们现在运行报告,就会看到标签页的标题被设置为类别名称。我们可以稍微改进一下详细报告。添加 "Text "对象,它将在报告标题中打印所选类别的名称:

fastreport

在使用这个示例时,我们创建了两份报告,并在它们之间交换了好几次。这样做很不方便。为了简化操作,可以将两份报告合二为一:主要报告放在第一页,详细报告放在第二页。在这种情况下,需要按以下方式设置超链接:

fastreport

在本例中,我们需要选择 Page2 作为详细报告页面。

示例 3.交互式

在本例中,我们将看到如何通过单击 "Matrix "对象的单元格来创建详细报告。例如,我们将使用一个矩阵来显示按年份分组的员工销售额。

矩阵的数据源是 "MatrixDemo "表。该表显示了按年和月分组的员工销售额:

NameYearMonthItemsSoldRevenue
Nancy Davolio1999211000
Nancy Davolio19991111100
Nancy Davolio19991211200
Nancy Davolio2000111300
Nancy Davolio2000221400
Nancy Davolio2001221500
Nancy Davolio2001321600
Nancy Davolio2002121700
Andrew Fuller2002121800
Andrew Fuller19991021900
Andrew Fuller19991122000
Andrew Fuller2000222100
Janet Leverling19991033000
Janet Leverling19991133100
Janet Leverling2000333200
Steven Buchanan2001134000
Steven Buchanan2001244100
Steven Buchanan2000143999

按以下方式配置矩阵:

  • 将 "MatrixDemo.Year "数据列放在列头;
  • 将 "MatrixDemo.Name "数据列放在行标题中;
  • 将 "MatrixDemo.Revenue "数据列放在单元格中。

准备好的矩阵如下:

fastreport

如图所示,单元格的值是员工全年销售额的总和。让我们创建一个详细报告,点击单元格后就会显示该报告。在我们的例子中,详细报告可以包含所选员工在所选年度每个月的销售额。

如何将单元格与打印数据连接起来?矩阵的每个单元格都有自己的地址。这是来自列标题和行标题的值的组合。在我们的示例中,单元格的地址是雇员年份和姓名的组合。这些数据可以准确地传递到详细报告中。如何做到这一点呢?非常简单:设置超链接,只显示报告名称和参数名称。参数值无需标明:对于矩阵单元格,FastReport 本身会形成值并将其传递到参数中。

假设我们点击了左上角包含数字 3900 的单元格。这是名为 "Andrew Fuller "的员工 1999 年的销售额总和。使用什么表格将此值传入参数?FastReport 使用分隔符合并列和行的值:

1999;Andrew Fuller

这是否意味着我们必须从这个字符串中提取年份值和员工姓名,将年份转换为 int,然后使用这些值进行数据筛选?不,这要简单得多。我们只需创建一个具有嵌套参数的参数。你可以在 "数据 "一章中了解到这一点。在本例中,父参数可以是这样的

fastreport

创建参数时,请考虑以下时刻:

  • 不需要设置父参数。只需给它命名即可;
  • 父参数的嵌套参数数量必须与矩阵传递的值数量相同。在本例中,有两个值;
  • 嵌套参数的顺序必须与矩阵传递值的顺序一致。在本例中,年份将在第一个参数中传递,雇员姓名将在第二个参数中传递;
  • 嵌套参数可以随意命名,但最好与矩阵元素名称一致;
  • 正确设置每个嵌套参数的数据类型非常重要。数据类型必须与传入参数的值一致。在我们的例子中,第一个参数(年份)必须是整数类型,第二个参数(员工姓名)必须是字符串类型。

在明确所有必要事项后,我们将创建报告。选择矩阵的单元格并调用超链接编辑器:

fastreport

在超链接配置中,将父参数指定为报告参数(在我们的示例中为 "SelectedCell"):

fastreport

FastReport 将这些值传入 SelectedCell.Year 和 SelectedCell.Name 嵌套参数。这些值将转换为参数配置中指定的数据类型,因此正确配置参数数据类型非常重要。

详细报告位于主报告的单独页面上,使用相同的数据源:

fastreport

为了显示所选员工在所选年份的销售额,请设置筛选条件。为此,请打开 "Data"带编辑器,并输入以下筛选条件:

 
[MatrixDemo.Year] == [SelectedCell.Year] && [MatrixDemo.Name] == [SelectedCell.Name]

报告已准备就绪。运行报告并点击左上角的单元格。将打开一份详细报告,其中包含以下数据:

fastreport

如图所示,数值之和(1900+2000)与我们点击的矩阵单元格相对应。

示例 4.带目录、导航和大纲的报告

在本例中,我们将创建一份具有以下功能的报告:

  • 在第一页打印 "Table of Contents"(TOC),它是交互式的,即您可以单击其中的元素导航到相应的页面;
  • 在预览窗口中显示大纲,大纲也是交互式的。

fastreport

报告将使用"Categories"和 "Products" 表。在 TOC 中,我们将打印类别列表。报告的其余部分将打印产品分类列表。报告模板将由两页组成:第一页用于打印 TOC;第二页是报告的主要部分。

我们将首先讨论 TOC。创建新报告并添加 "Categories"和  "Products" 数据源。将 "Data "带连接到 "Categories"表,并按以下方式放置对象:

fastreport

为了使 TOC 对象具有交互性,请配置其 "Hyperlink "属性:

fastreport

将类别名称作为书签。我们稍后将定义对象的书签。

要在 TOC 中打印页码,需要执行以下操作:

启用报告的 "double pass "设置。这可以在 "Report|Options..."菜单中完成。需要这样做是因为 TOC 页面会在其他页面之前打印。此时,FastReport 不知道类别将在何处打印;
使用 "Engine.GetBookmarkPage "函数,该函数返回指定书签的页码。在本例中,我们使用"[Categories.CategoryName]"表达式作为书签名称,因此函数调用如下:

[Engine.GetBookmarkPage([Categories.CategoryName])]< 

在报告的第二页,我们将创建一个主从报告,如下图所示:

fastreport

设置我们在 TOC 中点击元素时导航到的书签。为此,请选择第一个 "Data "带,并在其 "Bookmark "属性中注明以下表达式:

 [Categories.CategoryName] 

要设置报告大纲,请执行以下操作:

  • 选择第一个报告页面。这可以通过切换到该页面来完成;
  • 在 "Properties "窗口中,为 "OutlineExpression "属性设置以下值:
"Contents"
  • 切换到第二个报告页面;
  • 选择第一个 "数据 "带,并设置其 "OutlineExpression "属性:
[Categories.CategoryName] 

选择第二个 "Data "并设置其 "OutlineExpression "属性:

[Products.ProductName]
这个指南让你熟悉报表设计器和了解报表设计的基本概念(各种区域,数据源,二次表,等等)。指南将帮助你开始用FastReport创建报表,但它不能告诉你怎样使用其它基本的报表设计器。 如果你不熟悉报表设计器,我们建议你参考QuickReport的帮助系统。QuickReport指南已经包含在你的Delphi拷贝中。QuickReport的大部分基本概念也适用于FastReport,然而,FastReport能提供更多的弹性和最终用户的自定义。 关于FastReport的说明 FastReport是高弹性的报表设计器,用于报表的数据可以从任何类型的数据源获取,包含字符列表,BDE数据库,ADO数据源(不使用BDE),Interbase(使用IBO),Pascal数组和记录,以及一些不常用的数据源。 整个FastReport系统是用Delphi的Pascal编写的。FastReport不需要动态链接库,但需在你的项目中占用大约400kb(Delphi 5)。如果你想最终用户拥有设计能力,这将在你的.EXE中增加大约500kb。虽然这看上去比较大,但这只是其它设计的几分之一。你同样应该考虑到FastReport不仅仅只是包含最终用户更改报表设计的能力,还能够适应查询和数据库的变化。FastReport还包含自己的脚本语言,让应用程序和最终用户能够更容易地改变报表。如果你的大部分应用使用FastReport,你可以简单地配置FastReport BPL(大约1400kb)而所有你的应用程序只需要保留很少的一部分。 你可以发现FastReport有一个非常吸引人的用户界面,使用最新的用户界面组件,例如可停靠的工具栏。你的最终用户将会非常愿意使用这个设计器,只需使用鼠标就可以创建大多数报表FastReport是名副其实的快速报表:较其它一些Delphi报表设计器而言,你可以发现没有什么可以接近于它的开发速度。报表预览窗口一直是大多数报表设计器的弱点,高品质的外观,赋于你的应用程序非常专业的用户界面。 FastReport是一个已经拥有三年历史的非常成熟的报表设计器,成长使它拥有其它Delphi报表设计器所不能相比的诸多先进特性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值