如何使用FastReport VCL中的详细页面制作交互式报告
最近FastReport VCL已经有很多创新。其中之一是新的超链接选项。现在超链接可以指向另一个报告或报告页面。由于这个选项,我们可以制作交互式报告。文章“如何在FastReport VCL中创建交互式图表”中展示了一个包含详细报告超链接的报告示例,这次我们将考虑另一种选择——超链接到详细页面。
我们开始吧!
用一个客户列表创建一个简单的报告。
1)在数据选项卡上,添加ADO数据库组件。通过双击添加的对象,打开连接编辑器。我们从交付配置到demo.mdb数据库的连接。
数据提供程序 - Microsoft Jet OLEDB 4.0提供程序。数据库文件位于文件夹C:\ Program Files(x86)\ FastReport 5 VCL Enterprise \ Demos \ Main \ demo.mdb中。
现在放置ADO查询组件。在其SQL属性中输入查询:
SELECT * FROM customer a, orders b, items c, parts d WHERE a.custno = b.custno AND b.orderno = c.orderno AND c.partno = d.partno ORDER BY a.company, b.orderno
2)转到第1页(报告页面)。除了现有的bands报告标题和MasterData,我们还需要一个GroupHeader。添加它。在这种情况下,您将被要求配置分组。选择CustNo字段:
从数据源中,将以下字段拖到“组标题”区域:
公司,电话,传真。
下面我们有MasterData band。双击它并选择一个可用的数据源:
我们不会在此band中显示数据。我们仅将它用于分组的数据源。我们将band的Visible属性设置为false。
下一步是:
3)现在开始创建一个详细信息页面,在这里我们将显示在第一页上选择的组的详细信息。为此,请使用顶部工具栏中的图标向报告中添加一个页面。该页面为空。将下列bands添加进去:GroupHeader、另一个GroupHeader、MasterData、GroupFooter。
对于第一个组头,请选择分组字段 - CustNo。
对于第二个 – OrderNo。
对于MasterData band,请选择一个可用的数据源。
我们将在第一个band GroupHeader上放置以下字段:公司、电话和传真。您可能已经注意到,此分组与报告第一页上的分组相匹配。
现在改变背景颜色并添加标题。
在第二个band “GroupHeader”上,我们放置了字段:OrderNo和SaleDate。
在同一band中,显示MasterData band中字段的标题:类别、描述、价格、数量、总数。
最后,我们将这些字段放在MasterData band上:PartNo、Description、ListPrice、Qty。 对于Total,我们添加下面的表达式:
[< ADOQuery1. "Qty"> * < ADOQuery1. "ListPrice">]
现在MasterData band看起来像这样:/p>
在GroupFooter band中添加一个文本字段并输入以下表达式:
Total: [Sum (< ADOQuery1. "Qty"> * < ADOQuery1. "List Price">)]
如你所知,这是所有结果的总和。总体结果是:
4)您需要在报告中创建SelectedValue变量。我们会将所选公司的名称保存在其中的第一页上。然后我们将过滤第二页上的数据:
5)双击MasterData band。在过滤器字段中输入表达式:
< ADOQuery1. "Company"> = < SelectedValue>
6)让我们转到第一页。我们需要MasterData band中的公司字段。选择它。在属性检查器中,找到一个超链接并展开它。由于详细报告在第二页上,在DetailPage属性中,我们编写Page2。在Expression属性中,我们指定要传递给报表变量的表达式。接下来,我们在Kind属性中设置超链接的类型。hkDetailPage的值。然后,我们在ReportVariable属性中输入SelectedValue报告变量的名称。
现在运行报告:
选择公司的名称:
这样我们得到一份详细的报告。
现在我们可以得出结论,并非一定要是报告中的第二页,您可以使用单独的报告。但是,如果您不喜欢个人档案并花费大量时间思考,报告应该是自给自足的,那么带有详细页面的选项就会比较适合您。