翻譯|行業(yè)資訊|編輯:胡濤|2023-08-21 11:35:53.203|閱讀 162 次
概述:本文將介紹報(bào)表生成器FastReport .Net中表格式報(bào)告部分,歡迎查閱~
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關(guān)鏈接:
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ó)際性。
您可以通過右鍵菜單添加或刪除列。
列的右鍵菜單也可以在 "Report Tree"窗口中調(diào)用。打開該窗口,選擇需要的列并單擊鼠標(biāo)右鍵。
您可以使用以下方法之一設(shè)置列的寬度:
您也可以啟用 "AutoSize "列屬性。在運(yùn)行報(bào)表時(shí),將自動(dòng)計(jì)算列的寬度。為了限制列的寬度,您可以指定 "MinWidth "和 "MaxWidth "屬性。
列寬不應(yīng)大于頁(yè)面寬度。
如果您需要選擇相鄰的幾行,則左擊鼠標(biāo),然后在不離開鼠標(biāo)的情況下,向右或向左移動(dòng)鼠標(biāo),以選擇相鄰的行。
您可以使用以下方法之一設(shè)置行的高度:
左擊并移動(dòng)鼠標(biāo),以改變行的大小。
您還可以啟用行的 "AutoSize "屬性。運(yùn)行報(bào)表時(shí),將自動(dòng)計(jì)算行的高度。為了限制行的高度,可以使用最小高度("MinHeight")和最大高度("MaxHeight")屬性:行的高度不應(yīng)大于頁(yè)面高度。
單元格是文本對(duì)象。從本質(zhì)上講,單元格類繼承自 "Text "對(duì)象。上面提到的關(guān)于 "Text "對(duì)象的所有內(nèi)容同樣適用于表格的單元格。
編輯單元格的文本就像編輯 "Text "對(duì)象一樣。此外,您還可以將 "Data "窗口中的元素拖放到單元格中。
單元格的邊框和填充可以通過 "Border and Fill "工具欄進(jìn)行配置。
要調(diào)用單元格的右鍵菜單,只需右擊該單元格即可。
要分割單元格,請(qǐng)調(diào)用其上下文菜單并選擇 "Split cell"項(xiàng)。
您可以在單元格中插入其他對(duì)象,例如圖片。以下對(duì)象不能添加到單元格中:
要在單元格中添加對(duì)象,只需將其拖入單元格即可。您可以在單元格之間自由移動(dòng)對(duì)象,也可以將其帶回表格邊界之外。
單元格是放置對(duì)象的容器。這意味著,您可以使用單元格內(nèi)對(duì)象的 "Dock "和 "Anchor "屬性。當(dāng)單元格的大小發(fā)生變化時(shí),可以改變對(duì)象的大小。
表格可以兩種模式打印:
在第一種模式下,表格打印在其所屬的帶內(nèi),外觀與設(shè)計(jì)器中的相同。在這種模式下,如果表格的寬度大于報(bào)表頁(yè)面的寬度,則表格不會(huì)跨頁(yè)打印。這是默認(rèn)的打印模式。
第二種模式是動(dòng)態(tài)模式。在這種模式下,表格在腳本的幫助下生成。在此過程中,生成的表格可能不同于初始表格,就像FastReport準(zhǔn)備的報(bào)表不同于報(bào)表模板一樣。在動(dòng)態(tài)模式下,如果表格不適合在報(bào)告頁(yè)面上顯示,則可以將其分割成不同的頁(yè)面。
在動(dòng)態(tài)模式下,表格不會(huì)被打印在放置它的帶子上。取而代之的是,表格本身會(huì)生成一組帶,其中包含所生成表格的部分內(nèi)容。這種工作模式有以下限制:
讓我們?cè)敿?xì)了解一下動(dòng)態(tài)模式。
這種模式與編程有關(guān),需要報(bào)表開發(fā)人員具備更高表格的形成是在腳本的幫助下完成的。為了創(chuàng)建腳本,請(qǐng)選擇 "Table "對(duì)象,在 "Properties "窗口中單擊 "Events"按鈕并雙擊 ManualBuild 事件:
一個(gè)空的事件處理程序就會(huì)被添加到報(bào)告代碼中:
在這種模式下,源表被用作模板。在事件代碼中,您可以根據(jù)需要多次打印源表中的行和列。在此過程中,將形成結(jié)果表,其中可包含無(wú)限數(shù)量的行和列。如果在報(bào)告頁(yè)面中無(wú)法容納,則可以將表格分割成不同的頁(yè)面。
打印表格時(shí),將使用 "Table "對(duì)象的以下方法:
Method | Parameters | Description |
---|---|---|
PrintRow | int index | 打印指定索引的行。行號(hào)從0開始。 |
PrintColumn | int index | 打印指定索引的列。列編號(hào)從0開始。 |
PrintRows | int[] indices |
打印表格的若干行。 |
PrintRows | - | 打印表格的所有行。 |
PrintColumns | int[] indices |
打印表格的若干列。 |
PrintColumns | - |
打印表格的所有列。 |
PageBreak | - | 在打印下一列或下一行之前插入分頁(yè)符。 |
打印表格可使用以下方法之一:
第一種方法 - 從上到下打印,然后從左到右打印。這種方法更適合行數(shù)不固定的表格。您必須按照以下順序調(diào)用這些方法:
表格的每一行必須包含相同數(shù)量的列。在使用 PrintColumn(int index) 和 PrintColumns(int [] indices) 方法時(shí),請(qǐng)記住這一點(diǎn)。
第二種方法 - 從左到右打印,然后從上到下打印。這種方法更適合打印列數(shù)不固定的表格。您必須按照以下順序調(diào)用這些方法:
表格的每一列必須包含相同數(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 方法開始打印表格。
這里我們討論的是包含跨單元格的表頭。當(dāng)打印包含跨單元格的表格的行或列時(shí),單元格的尺寸會(huì)自動(dòng)增大。我們將在下一個(gè)示例中進(jìn)行演示:
private void Table1_ManualBuild(object sender, EventArgs e) { // printing row 1 and columns 0, 0, 0, 1 Table1.PrintRow(0); Table1.PrintColumn(0); Table1.PrintColumn(0); Table1.PrintColumn(0); Table1.PrintColumn(1); // printing row 1 and columns 0, 0, 0, 1 Table1.PrintRow(1); Table1.PrintColumn(0); Table1.PrintColumn(0); Table1.PrintColumn(0); Table1.PrintColumn(1); }
我們將創(chuàng)建一個(gè)ManualBuild事件處理程序,它將打印第一列3次,第二列1次:
我們?cè)诿恳恍兄写蛴×讼嗤瑪?shù)量的列。如果違反這一規(guī)則,我們將得到意料之外的結(jié)果。
執(zhí)行該代碼的結(jié)果如下:
/>
如圖所示,標(biāo)題單元格被自動(dòng)跨過。我們將使代碼更復(fù)雜一些,以便打印兩組列:
private void Table1_ManualBuild(object sender, EventArgs e) { // print 0 row and two groups of 0, 0, 0, 1 columns Table1.PrintRow(0); // group 1 Table1.PrintColumn(0); Table1.PrintColumn(0); Table1.PrintColumn(0); Table1.PrintColumn(1); // group 2 Table1.PrintColumn(0); Table1.PrintColumn(0); Table1.PrintColumn(0); Table1.PrintColumn(1); // print 1 row and two groups of 0, 0, 0, 1 columns Table1.PrintRow(1); // group 1 Table1.PrintColumn(0); Table1.PrintColumn(0); Table1.PrintColumn(0); Table1.PrintColumn(1); // group 2 Table1.PrintColumn(0); Table1.PrintColumn(0); Table1.PrintColumn(0); Table1.PrintColumn(1); }
當(dāng)我們運(yùn)行報(bào)告時(shí),我們將看到以下結(jié)果:
當(dāng)使用以下代碼打印第二列時(shí):
Table1.PrintColumn(1);
頁(yè)眉結(jié)束,繼續(xù)打印第一列開始新的頁(yè)眉:
// group 2 Table1.PrintColumn(0);
在 "Table"對(duì)象的動(dòng)態(tài)模式下,支持以下全部功能:
Function | Parameters | Description |
---|---|---|
Sum | TableCell cell | 返回單元格中包含的數(shù)值之和。 |
Min | TableCell cell | 返回單元格中數(shù)值的最小值。 |
Max | TableCell cell | 返回單元格中數(shù)值的最大值。 |
Avg | TableCell cell | 返回單元格中數(shù)值的平均值。 |
Count | TableCell cell |
返回包含指定單元格的行數(shù)。 |
在普通打印模式下(非動(dòng)態(tài)),這些功能無(wú)效。
要使用合計(jì)函數(shù),請(qǐng)將其置于表格的單元格中。如以下函數(shù)計(jì)算名為 "Cell1 "的單元格中包含的值之和:
[Sum(Cell1)]
在此過程中,我們將分析位于當(dāng)前單元格(我們正在其中計(jì)算總和)上方和左側(cè)的所有單元格。
動(dòng)態(tài)生成的表格可在頁(yè)面間自動(dòng)分割。這種行為由表格的 "Layout "屬性控制。您可以選擇以下值之一:
Value | Description |
---|---|
AcrossThenDown | 表格先橫后豎 |
DownThenAcross |
表格先下后上。 |
Wrapped |
寬表格被包裹并在同一頁(yè)面渲染。 |
本次關(guān)于 FastReport .Net 介紹就講解到這里了,點(diǎn)擊此處查看關(guān)于用戶指南的更多內(nèi)容。如果您想獲取更多產(chǎn)品試用/授權(quán)/價(jià)格信息,請(qǐng)點(diǎn)擊FastReport .Net了解,或者點(diǎn)擊咨詢。
FastReport技術(shù)QQ群:585577353 歡迎進(jìn)群一起討論
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn