原創(chuàng)|使用教程|編輯:鄭恭琳|2020-01-19 14:51:20.287|閱讀 313 次
概述:大多數(shù)報表生成器都有一個帶有工具欄的報表查看模式,您可以從中對報表進行各種操作。例如,翻頁、打印、導出等。但是,有時沒有足夠的按鈕具有您想要的功能。這可以是快速導出為某種格式,也可以是將報表發(fā)送給審閱,或者您可能想批量發(fā)送報表。無論哪種方式,標準工具欄FastReport.Net都不允許您添加自定義功能。但是開發(fā)人員提供了創(chuàng)建自己的預覽模式的可能性。很棒,并不是每個人都喜歡標準的預覽版。許多人希望刪除一些不必要的按鈕,但會添加自己的“features”功能。因此,讓我們看一下如何快速輕松地制作報表預覽。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
大多數(shù)報表生成器都有一個帶有工具欄的報表查看模式,您可以從中對報表進行各種操作。例如,翻頁、打印、導出等。但是,有時沒有足夠的按鈕具有您想要的功能。這可以是快速導出為某種格式,也可以是將報表發(fā)送給審閱,或者您可能想批量發(fā)送報表。無論哪種方式,標準工具欄FastReport.Net都不允許您添加自定義功能。但是開發(fā)人員提供了創(chuàng)建自己的預覽模式的可能性。很棒,并不是每個人都喜歡標準的預覽版。許多人希望刪除一些不必要的按鈕,但會添加自己的“features”功能。因此,讓我們看一下如何快速輕松地制作報表預覽。在FastReport.dll庫中,我們可以使用標準預覽模式下的所有功能。
讓我們看一下這個例子。典型的Windows窗體應用程序。我們正在將FastReport.dll庫連接到它。在表單上,我們添加了工具欄組件ToolStrip和PreviewControl——一個標準的報表查看器。該組件已經(jīng)擁有自己的工具欄,但是很容易隱藏在工具欄屬性中。
在工具欄上,我們創(chuàng)建了具有必要功能的按鈕:
打開報表、打印、導出、翻頁和具有其功能的特殊按鈕。它將以csv格式將報表保存在指定的文件夾中。這樣的QuickSave。假設我們經(jīng)常使用此特定功能,因此我們將其移至單獨的按鈕。現(xiàn)在讓我們看一下應用程序代碼:
public partial class Form1 : Form { private Report FReport; private DataSet FDataSet; public Form1() { InitializeComponent(); } private void LoadBtn_Click(object sender, EventArgs e) { FReport = new Report(); FReport.Preview = previewControl1; using (OpenFileDialog file = new OpenFileDialog()) { if (file.ShowDialog() == DialogResult.OK) { FDataSet = new DataSet(); FDataSet.ReadXml("K:/My documents/nwind.xml"); FReport.Load(file.FileName); FReport.RegisterData(FDataSet, "NorthWind"); FReport.Prepare(); FReport.ShowPrepared(); } } }
下載報表按鈕將打開一個標準的“File Open”文件打開對話框窗口。然后,我們將數(shù)據(jù)庫上傳到數(shù)據(jù)源,在報表對象中上傳選定的報表模板,將其注冊為數(shù)據(jù)源,以在組件預覽中收集并顯示報表。
private void SaveBtn_Click(object sender, EventArgs e) { SaveBtn.DropDownItems.Clear(); Listlist = new List(); RegisteredObjects.Objects.EnumItems(list); ToolStripMenuItem saveNative = new ToolStripMenuItem("Save to .fpx file..."); saveNative.Click += new EventHandler(item_Click); SaveBtn.DropDownItems.Add(saveNative); foreach (ObjectInfo info in list) { if (info.Object != null && info.Object.IsSubclassOf(typeof(ExportBase))) { ToolStripMenuItem item = new ToolStripMenuItem(Res.TryGet(info.Text) + "..."); item.Tag = info; item.Click += new EventHandler(item_Click); if (info.ImageIndex != -1) item.Image = Res.GetImage(info.ImageIndex); SaveBtn.DropDownItems.Add(item); } } }
導出/保存按鈕實際上有一個帶有各種導出格式的下拉列表。首先,我清除下拉列表,并創(chuàng)建要導出的對象列表。加載所有已注冊對象的列表。
然后,我將第一個元素添加到導出列表中——導出本機格式,即fpx格式。所有其他可用格式將循環(huán)添加到列表中。一些導出有圖片。列表中的每個元素都分配給處理按下項目的item_Click事件。
private void item_Click(object sender, EventArgs e) { ObjectInfo info = (sender as ToolStripMenuItem).Tag as ObjectInfo; if (info == null) { previewControl1.Save(); } else { ExportBase export = Activator.CreateInstance(info.Object) as ExportBase; export.CurPage = previewControl1.PageNo; export.Export(previewControl1.Report); } }
事件處理程序item_Click正在導出報表,該報表當前顯示在“Preview”預覽組件中。
private void PrintBtn_Click(object sender, EventArgs e) { previewControl1.Print(); }
“Print”打印按鈕將打開“ PrintDoc”對話框窗口。
private void FirstBtn_Click(object sender, EventArgs e) { previewControl1.First(); }
“First”按鈕顯示報表的第一頁。
private void PrevBtn_Click(object sender, EventArgs e) { previewControl1.Prior(); }
“Prev”按鈕顯示報表的上一頁。
private void NextBtn_Click(object sender, EventArgs e) { previewControl1.Next(); }
“Next”按鈕顯示報表的下一頁。
private void LastBtn_Click(object sender, EventArgs e) { previewControl1.Last(); }
最后,“Last”按鈕顯示報表的最后一頁。
private void PageNo_KeyDown(object sender, KeyEventArgs e) { if (e.KeyData == Keys.Enter) { previewControl1.PageNo = int.Parse(PageNo.Text); } }
按鈕之間的文本字段顯示當前頁面的編號。更改此值可以在報表頁面之間切換。
private void PreviewControl1_PageChanged(object sender, EventArgs e) { PageNo.Text = previewControl1.PageNo.ToString(); }
但是,如果使用按鈕在頁面之間切換,則文本字段中的頁面編號也會更改。根據(jù)預覽組件中的頁面更改事件。
private void QuickSaveCSVBtn_Click(object sender, EventArgs e) { FastReport.Export.Csv.CSVExport ex = new FastReport.Export.Csv.CSVExport(); FReport.Export(ex, "Text.csv"); }
最后,我們的自定義按鈕。它的功能無處不在,僅用于演示。它以csv格式保存報表。因此,您可以為自己或客戶創(chuàng)建方便的報表查看器,并為其提供必要的功能。
預覽版中附加功能的夢想可能是無限的,開發(fā)人員為我們提供了這一機會。
而且,如果您希望在顯示來自應用程序代碼的報表時使用預覽組件,我們將使用以下代碼:
CusomPreviewForm prev = new CusomPreviewForm (); Report report = new Report(); report.Load("K:/My documents/lines.frx"); report.Preview = prev.previewControl1; report.Show(); prev.ShowDialog();
在這里,我們覆蓋了報表的視圖組件。說實話,我們必須公開PreviewControl1。
就這樣。希望您能利用這個巨大的機會來制作自定義查看器報表。
產(chǎn)品介紹 | 下載試用 | 優(yōu)惠活動 |
本站文章除注明轉載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@fc6vip.cn