彩票走势图

报表生成器FastReport .Net用户指南:"Data "带报告的操作

翻译|行业资讯|编辑:胡涛|2023-08-09 11:51:32.743|阅读 46 次

概述:本文介绍报表生成器FastReport .Net中关于"Data "带报告的操作,欢迎查阅~

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

相关链接:

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

FastReport.NET官方版下载

这种类型的报告是经常需要的。它允许从数据源中打印一个行的列表。例如,这可以是一个客户名单。

连接一个带子到数据源

要打印数据源的数据,需要 "Data "带。当该条带将被打印,其次数与数据源中的行数相同。

If the "Data" band is not connected to the source, it gets printed once.  

当你创建一个新的报告时,它已经包含几个空带,包括 "Data"带。这个带子也可以从 "Configure Bands "窗口中,通过选择 "Report|Configure Bands... "菜单项添加到报告中。

为了把一个带子连接到数据上,双击它。在编辑器窗口中选择数据源并点击 "ОК":
1

打印文本

当你把带子连接到数据源后,你可以把 "Text "对象放在带子上,它将显示数据列的信息。最快的方法是--从 "Data "窗口中拖出一个数据列,然后把它放到带子上。在 一章中阅读更多关于 "Text "对象的内容。

数据分类

默认情况下,"Data "带按自然顺序打印数据。通常情况下,在打印前需要对数据进行排序。例如,一个客户名单可以通过按字母顺序排序来舒适地呈现。

你可以在 "Data "段编辑器中控制排序。为了调用编辑器,请双击带子上的一个空位:

2

作为一个排序条件,你可以使用一个数据列或一个表达式。你可以指出几个(不超过三个)排序条件。

例如,如果你想按城市对客户列表进行排序,然后再按客户的名字排序。对于每个条件,你可以选择排序的顺序--升序或降序。

另一种排序数据的方法 - 使用SQL查询作为数据源。该查询将在数据服务器上执行,并返回一个排序的行。

数据筛选

为了过滤打印在 "Data "带中的行,调用其编辑器并切换到 "Filter "标签:

3

作为一个过滤表达式,你可以表示任何正确的表达式。关于表达式的更多细节可以在 章节中找到。
在上面的例子中,使用了以下过滤器:

[Products.Discontinued] == false

表明所有断开连接标志等于false的数据行将被选中。
你可以使用复杂的过滤条件:

[Products.Discontinued] == false && [Products.UnitPrice] < 10
表明所有断开连接标志等于false的数据行,以及价格小于10的数据行将被选中。

这种过滤方法假定数据源包含所有的行,其中一部分将被过滤。如果数据源包含大量的行,这可能会严重降低报告的速度。故你可以使用SQL查询作为数据源,你可以在其中执行所需的过滤。该查询将在数据服务器上执行,只返回报告中需要的行。
You also may use dialogue forms to perform data filtering. See more details in the "Dialogue forms" chapter. 
数据页眉和页脚

一个 "Data "带可以包含一个页眉和一个页脚。页眉将在数据前打印一次,页脚将在所有数据输出后打印。

为了给 "Data "带添加页眉和页脚,选择 "Report|Configure Bands... "菜单项。在窗口中,选择 "Data "带,然后右击鼠标。在上下文菜单中选择 "Header "和/或 "Footer "项目:

4

这些带子在以下情况下可以发挥作用:

当在一页上打印多个列表时( "报告)。在这种情况下,每个数据带都可以有自己的页眉和页脚:
    5
当打印一个列表时,如果该列表不适合在准备好的报告中的一页上打印。通过使用数据页眉/页脚的 "Repeat On Every Page "属性,你可以在报告的每一页打印这些带子:

    6

    打破数据并保持其一致性

    在本节中,我们将研究两种数据打印模式--"Break "和 "Keep together"。

    在常规的带状打印模式中,FastReport检查当前页是否有足够的空间来打印一个带状。如果没有,则在下一页上全部打印出带子。如果带子的 "CanBreak "属性被激活,FastReport将尝试将带子的一部分打印在可用的空间上,也就是 "Break "。

    打破一个带子的尝试可以成功,也可以不成功。这取决于被放置在带子上的对象的类型和它的设置。以下物体可以被打破:

    • "Text"
    • "Rich Text"
    • "Table"
    这些对象也有 "CanBreak "属性。如果它被启用,那么该对象就可以被打破。不易破碎的对象总是完全显示,在那里,它们有足够的位置。

    在下图中,显示了一个带子是如何被打破的。

    7
    Break algorithm does not always work correctly. The artifacts can occur in a situation, when there are several objects with different font size on a band.

    断带的目的是为了节省印张上的空间。数据保持的目标则相反:在一张纸上完全显示一组带子。在这种情况下,虽然纸张上会有很多未使用的空间,但数据的打印方式让人很舒服。

    "keep together "机制允许将一组带子保持在一张纸上(或列,如果报告有列的话)。如果在打印时,保留的数据到了页面的末端,FastReport会将所有已经打印过的数据重新定位到新的页面。

    你可以在以下情况下使用 "keep together":

    一起打印 "Data"带的所有行;

    一起打印一个组的所有元素(页眉、数据、页脚);

    将主数据源的行与所有明细行一起打印(在 "master-detai "报告中);

    打印报告页眉或数据页眉与至少一个数据行;

    打印报告页脚或数据页脚以及至少一个数据行;

    一起打印父带和子带。

    让我们来看看 "keep together "机制的使用情况。

    要把所有的数据行或组元素(页眉、数据、页脚)放在一起,请启用 "KeepTogether "属性。这个属性在 "Data "和 "Group Header "带中使用。

    下图显示了在有和没有保持在一起的情况下数据的打印情况:

    8

    要把主数据行和详细数据行放在一起,请启用 "KeepDetail "带的 "KeepDetail "属性。这个属性用于 "master-detail "类型的报告中:

    10

    为了防止 "hanging "页眉和页脚,请使用 "KeepWithData "属性。下面这些带子都有这个属性:

    • report header
    • 报告页脚
    • data header
    • 数据页脚
    • 组头
    • 组页脚

    这个属性允许保持至少有一个数据行的页眉/页脚:

    11

    为了使一个带子和它的子带子保持在一起,启用 "KeepChild "属性。

    打印

    当数据带连接到一个空的数据源时,它将不会被打印。有时需要打印一些文本,如 "No data",而不是只打印一个空页。要做到这一点:

    • 给数据带添加一个子带
    • 将子带的PrintIfDatabandEmpty属性设置为true(可以在 "Properties "窗口中完成)
    • 把 "Text "对象放在子带上,并在其中写上 "No data to display"的文字
    12

    该报告将以如下方式打印:

    • 如果数据源有一些数据行,数据带将被打印出来,同时还有所有相关的带(数据头/数据脚);
    • 如果数据源是空的,只有带有 "No data to display "文本的子带将被打印。
    印刷层次
    一个 "Data "带允许打印一个分层的列表。为此,需要使用一个带子和一个数据源。层次结构必须在数据源中借助于两个数据列来定义:
    1. 关键列。这是数据行的标识符。
    2. 列,包含这个项目的父项的键。

    为了以分层形式打印这样的源,你需要设置以下 "Data "带属性。这可以在 "属性 "窗口中完成:

    13
    • 在 "IdColumn "属性中指出关键列;
    • 在 "ParentIdColumn "属性中指出包含父值的列;
    • 在 "Indent "属性中指出层次结构的缩进。
    让我们看看如何从 "Employees "演示表中打印雇员的层次结构的例子。该表有两列,我们需要:
    • EmployeeID列是关键,包含雇员的ID;
    • ReportsTo列包含 "parent "员工的ID。
    创建一个类似以下的报告:
    14

    设置 "Data "带属性,它负责层次结构,方法如下:

    当我们运行一个报告时,我们将看到以下内容:

    16

     当打印层次结构时,FastReport将带子向右移动(通过缩进属性中指示的值),同时也将带子宽度以相同的值减少。这使得你可以使用带子对象的锚定属性。下面是在这种情况下可以使用的该属性的可能值:

    • 左、顶(默认)--对象随带子移动;
    • 右,顶--对象保持在原来的位置;
    • 左、右、顶--对象的右边保持在原来的位置,左边随带子移动。
    你将获得一些有用的效果:

    1

    在这个例子中,图片对象的Anchor属性被设置为Left, Top;带有职位名称的对象被锚定在Left, Right, Top;带有名字的对象被锚定在Right, Top。


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


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


标签:

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


为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP