打印表格
FastReport .Net是一款全功能的Windows Forms、ASP.NET和MVC報(bào)表分析解決方案,使用FastReport .NET可以創(chuàng)建獨(dú)立于應(yīng)用程序的.NET報(bào)表,同時(shí)FastReport .Net支持中文、英語(yǔ)等14種語(yǔ)言,可以讓你的產(chǎn)品保證真正的國(guó)際性。
歡迎加入技術(shù)交流群:585577353
表格可以兩種模式打印:
在第一種模式下,表格打印在其所屬的帶內(nèi),外觀與設(shè)計(jì)器中的相同。在這種模式下,如果表格的寬度大于報(bào)表頁(yè)面的寬度,則表格不會(huì)跨頁(yè)打印。這是默認(rèn)的打印模式。
第二種模式是動(dòng)態(tài)模式。在這種模式下,表格在腳本的幫助下生成。在此過(guò)程中,生成的表格可能不同于初始表格,就像FastReport準(zhǔn)備的報(bào)表不同于報(bào)表模板一樣。在動(dòng)態(tài)模式下,如果表格不適合在報(bào)告頁(yè)面上顯示,則可以將其分割成不同的頁(yè)面。
在動(dòng)態(tài)模式下,表格不會(huì)被打印在放置它的帶子上。取而代之的是,表格本身會(huì)生成一組帶,其中包含所生成表格的部分內(nèi)容。這種工作模式有以下限制:
- 切勿在表格下方或附近放置其他物體。取而代之的是使用 "Child "帶;
- 切勿將兩個(gè) "Table "對(duì)象放在一個(gè)帶中。
讓我們?cè)敿?xì)了解一下動(dòng)態(tài)模式。
這種模式與編程有關(guān),需要報(bào)表開(kāi)發(fā)人員具備更高的資質(zhì)
表格的形成是在腳本的幫助下完成的。為了創(chuàng)建腳本,請(qǐng)選擇 "Table "對(duì)象,在 "Properties "窗口中單擊 "Events"按鈕并雙擊 ManualBuild 事件:

一個(gè)空的事件處理程序就會(huì)被添加到報(bào)告代碼中:
在這種模式下,源表被用作模板。在事件代碼中,您可以根據(jù)需要多次打印源表中的行和列。在此過(guò)程中,將形成結(jié)果表,其中可包含無(wú)限數(shù)量的行和列。如果在報(bào)告頁(yè)面中無(wú)法容納,則可以將表格分割成不同的頁(yè)面。
打印表格時(shí),將使用 "Table "對(duì)象的以下方法:
Method | Parameters | Description |
---|---|---|
PrintRow | int index | 打印指定索引的行。行號(hào)從0開(kāi)始。 |
PrintColumn | int index | 打印指定索引的列。列編號(hào)從0開(kāi)始。 |
PrintRows | int[] indices |
打印表格的若干行。 |
PrintRows | - | 打印表格的所有行。 |
PrintColumns | int[] indices |
打印表格的若干列。 |
PrintColumns | - |
打印表格的所有列。 |
PageBreak | - | 在打印下一列或下一行之前插入分頁(yè)符。 |
打印表格可使用以下方法之一:
第一種方法 - 從上到下打印,然后從左到右打印。這種方法更適合行數(shù)不固定的表格。您必須按照以下順序調(diào)用這些方法:
- PrintRow(行索引);
- 一次或多次調(diào)用 PrintColumn(column index) 或 PrintColumns(columns indices) 方法打印指定的列;
- 或調(diào)用一次 PrintColumns() 方法打印所有列;
- 重復(fù)該序列以打印表格中所有需要的行。
表格的每一行必須包含相同數(shù)量的列。在使用 PrintColumn(int index) 和 PrintColumns(int [] indices) 方法時(shí),請(qǐng)記住這一點(diǎn)。
第二種方法 - 從左到右打印,然后從上到下打印。這種方法更適合打印列數(shù)不固定的表格。您必須按照以下順序調(diào)用這些方法:
- PrintColumn(列索引);
- 一次或多次調(diào)用PrintRow(行號(hào))或PrintRows(行索引)來(lái)打印指定的行;
- 或者調(diào)用一次PrintRows()方法打印所有行;
- 重復(fù)上述順序,打印表格中所有需要打印的列。
表格的每一列必須包含相同數(shù)量的行。在使用 PrintRow(int index) 和 PrintRows(int [] indices) 方法時(shí),請(qǐng)記住這一點(diǎn)。
違反調(diào)用打印方法的順序會(huì)導(dǎo)致在執(zhí)行報(bào)表時(shí)出錯(cuò)。其中一個(gè)錯(cuò)誤是試圖使用以下代碼打印表格:
Table1.PrintRows(); Table1.PrintColumns();
這種方法順序是不正確的。您應(yīng)從 PrintRow 或 PrintColumn 方法開(kāi)始打印表格。