报表生成器FastReport .Net用户指南:Multicolumn、“Booklet “式的报告

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

Multicolumn 报告

一个普通的报告如果没有到达页面的末端,就会打印数据。当形成一个新的页面后,继续打印。带列的报告将数据打印在几个列中。当达到页面的末端时,在同一页上的一个新列中继续打印。一个普通的报告可以被看作是一个有一列的报告。

在FastReport中,有两种打印列的方法。

页列

第一种方法是基于设置报告页的列数。这是在 "Page Setup "窗口的 "Columns"标签上进行的:

正如所见,你可以设置以下栏目参数:

  • 列数
  • 列的宽度
  • 每一列的位置

为了将一个普通的报表转变为一个有列的报表,你只需要设置页面上的列数。其余的参数FastReport将自行计算。当你启用列时,设计器中的带状模式会发生变化:

灰色显示的区域不能用来放置对象,它只是用来打印下一列的对象。

为了处理列,"Column Header "和 "Column Footer "带被使用。从它们的名字可以看出,它们分别打印在每一列的顶部和底部。下图展示了带列报告中的打印顺序:

数据带列

另一种打印多列报告的方法是基于使用 "Data "带列。其余的带子继续在一列中打印。

列的参数可以使用 "Columns "属性进行配置,可以在 "Properties "窗口中改变。你可以设置以下参数:

  • 列的数量
  • 列的宽度
  • 列的打印模式。你可以选择 "AcrossThenDown "和 "DownThenAcross "两种模式中的一种;
  • 如果选择的模式是 "DownThenAcross",一列中的最小行数。

列带可以以两种模式中的任何一种进行打印。在 "AcrossThenDown "模式(默认模式)下,列带的打印方式如下:

在 "DownThenAcross "的模式下,列打印以下列方式发生:

在这种模式下,FastReport计算一列中的数据行数的方式是,列被平均填充。你也可以通过 "Columns.MinRowCount "属性来设置一个列中的最小行数。

"Booklet "式的报告

当以小册子的形式打印报告时,你可能会面临以下要求:

  • 独立的报告页--封面、目录、报告内容、封底
  • 偶数页和奇数页的页边距不同
  • 偶数页和奇数页的页眉和页脚不同

将页面添加到报告中

你可以在报告模板中添加任意数量的页面。在每一页上,你可以放置一个单独的报告。要添加一个新的页面,点击工具栏上的

按钮。也可以通过按 "Add New... "按钮并在窗口中选择 "Report page

对于创建 "Table of Contents "部分,你可以使用"Interactive reports" 章节中描述的技术来添加到页面中。 

页面设置

在 "Page Setup "窗口中,你可以指示FastReport应该为偶数页的左和右边距做镜像:

1

所有报告对象都有 "PrintOn "属性。使用这个属性,你可以在奇数和偶数页上打印不同的对象。

这个属性可以在 "Properties "窗口中设置。

此属性决定了该对象可以在哪些页面上打印。该属性可以有以下值之一或其任何组合:

  • FirstPage
  • LastPage - 报告必须是双页的
  • OddPages
  • EvenPages
  • RepeatedBand。这个值指的是 "RepeatOnEveryPage "属性设置为 "true "的带
  • SinglePage - 报告必须是双通的

默认情况下,该属性的值等于 "FirstPage, LastPage, OddPages, EvenPages, RepeatedBand, SinglePage"。表明该对象将被打印在报告的所有页面上。如果报告只有单页,对象的可见性只由SinglePage值决定。

我们将给出几个使用该属性的典型例子:

Property value Where the object will be printed
FirstPage  只在第一页。
LastPage, OddPages, EvenPages, RepeatedBand 除第一页外的所有页面上。
FirstPage, OddPages, EvenPages, RepeatedBand 除最后一页外,所有页面都是如此。
RepeatedBand 只有在 "RepeatOnEveryPage "属性被设置为 "true "的带子上。
FirstPage, LastPage, OddPages, EvenPages 在所有的频段上,除了重复的那一个。
FirstPage, LastPage, OddPages, RepeatedBand 只在奇数页上。
FirstPage, LastPage, EvenPages, RepeatedBand  只在偶数页上。

如要在奇数页和偶数页上打印不同的文字,把两个 "Text "对象放在一个带子上,并按以下方式设置:

  • 第一个对象将被打印在奇数页上。将其 "PrintOn "属性设置为 "FirstPage, LastPage, OddPages, RepeatedBand"(即除 "EvenPages "外的所有值)。
  • 第二个对象将被打印在偶数页上。将其 "PrintOn "属性设置为 "FirstPage, LastPage, EvenPages, RepeatedBand"(即除 "OddPages "外的所有值)。

这些对象不会被同时打印,故你可以把它们放在彼此的上面。

所有带子有相同的属性。要在奇数页和偶数页上打印不同的带子,可以使用 "Child "带。你可以把它附加到任何条带上;这可以在 "Configure Bands "窗口中完成。以下列方式设置主带和其子带:

  • 主带将被打印在奇数页上。将其 "PrintOn "属性设置为 "FirstPage, LastPage, OddPages, RepeatedBand"(即除 "EvenPages "外的所有值)。
  • 子带将被打印在偶数页上。将其 "PrintOn "属性设置为 "FirstPage, LastPage, EvenPages, RepeatedBand"(即除 "OddPages "外的所有值)。

带子可以有不同的高度、外观和内容。请看下面的例子,它打印不同的页眉

1

如果需要在奇数页上开始打印,请将 "StartOnOddPage "属性设置为true。当需要时,FastReport在开始打印指定的页面之前会打印空页。

猜你喜欢

转载自blog.csdn.net/m0_67129275/article/details/132539599