一、什么是FastReport?
FastReport是功能齊全的報表控件,使開發者可以快速並高效地為·NET/VCL/COM/ActiveX應用程序添加報表支持。
FastReport有很多產品,如FastReport.Net、FASTREPORT VCL等,這里不一一去做概述,描述下FastReport.Net的具體使用。
FastReport.Net
A、是一款適用於Windows Forms, ASP.NET和MVC框架的功能齊全的報表分析解決方案。
B、可用在Microsoft Visual Studio 2005到2015,支持.Net Framework 2.0到4.x。
C、2013版支持AJAX,雲存儲,地圖編輯器和自定義標簽。
二、使用FastReport可以完成什么功用?
打印預覽、打印設計、導出PDF、根據數據源生成報表等
三、如何使用FastReport?
(1)下載安裝
下載地址:鏈接: https://pan.baidu.com/s/1wAx3A-chefjgVUwWjvzDLw 密碼: 2dca
解壓后,見以下文件:
(2)打開程序,並進行界面漢化
A、雙擊Demo.exe打開程序
B、在彈出窗體中,點擊設計按鈕
彈出設計界面:
C、點擊菜單File-- Select Language
彈出界面如下:界面已漢化
(3)設計模板:
A、根據情況,可適當刪除畫布中的位置,只保留Data數據區部分,刪除方式見下圖:
在對應模塊的空白區域,點擊右鍵--刪除即可:
B、設置頁面的尺寸:(很重要,與打印的面單紙大小要一致,如A4紙,或自定義的尺寸)
彈出設置窗口,如下:
點擊確定后,畫布會自動調整尺寸大小
C、點擊左側的工具,進行排版設計(此處以一個條形碼做為案例):
點擊條形碼按鈕,彈出編碼方式,這里選擇Code128(原因是生成的數據會做壓縮,條形碼更簡潔,見下圖有對比)
點擊后,把鼠標移動到data編輯區,即可以看到一個條形碼隨鼠標移動:
如需添加文字,左側的工具欄也有對應的按鈕。
(4)保存模板:.frx后綴名
(5)電腦連接好打印機,安裝好驅動,保證在打印機列表中,可以選擇。
(6)在項目中使用模板,進行打印操作
1 private bool GodownEntryPrint(string instorageNumber, string localhostCode) 2 { 3 try 4 { 5 //創建Report對象 6 var report = new Report(); 7 //獲得模板的路徑 8 string reportLabel = Application.StartupPath + @"\" + "Report\\GodownEntry.frx"; 9 //判斷文件是否存在 10 if (!File.Exists(reportLabel)) 11 { 12 MessageTool.Show("標簽模板不存在!請先獲取標簽模板!"); 13 } 14 //清空 15 report.Clear(); 16 //加載報表模板 17 report.Load(reportLabel); 18 //獲取模板中,對應的TextObject節點-替換模板內容 19 var textObject = report.FindObject("Text2") as TextObject; 20 if (textObject != null) textObject.Text = localhostCode; //庫位編碼 21 22 //同理:一/二維碼文本替換 23 var barcodeObject = report.FindObject("Barcode1") as BarcodeObject; 24 if (barcodeObject != null) 25 { 26 barcodeObject.Text = instorageNumber; //入庫單號 27 //更改一維碼的生成方式為Code128碼 28 barcodeObject.Barcode = new Barcode128(); 29 } 30 31 //預覽面單 32 //report.Show(); 33 //默認不顯示打印機選擇頁面 34 report.PrintSettings.ShowDialog = false; 35 //獲取打印機的名稱,這里是通過封裝的方法去獲取打印機名,這里可以直接指定“打印機名稱”; 36 string strPrintName = PrinterHelper.GetPrintSetting("LocationPrint"); 37 if (string.IsNullOrWhiteSpace(strPrintName)) 38 { 39 MessageTool.Show("未設置打印機!"); 40 return false; 41 } 42 //當前操作打印機 43 report.PrintSettings.Printer = strPrintName; 44 //啟動打印 45 report.Print(); 46 } 47 catch (Exception) 48 { 49 return false; 50 } 51 return true; 52 }