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应该为偶数页的左和右边距做镜像:
所有报告对象都有 "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 "外的所有值)。
带子可以有不同的高度、外观和内容。请看下面的例子,它打印不同的页眉
如果需要在奇数页上开始打印,请将 "StartOnOddPage "属性设置为true。当需要时,FastReport在开始打印指定的页面之前会打印空页。