使用FastReport報表工具生成標籤打印文檔

在咱們實際開發報表的時候,咱們須要按必定的業務規則組織好報表的模板設計,讓報表儘量的貼近實際的需求,在以前的隨筆中《使用FastReport報表工具生成報表PDF文檔》介紹了FastReport生成常規報表的處理,本篇隨筆回顧常規報表的處理效果,並介紹基於FastReport生成標籤紙打印須要的報表格式。html

一、常規報表的處理

咱們通常處理報表的時候,大多數狀況碰到的是明細報表,或者有主從表這種樣式的報表格式,明細報表就是隻須要設計一個表頭,按列表展現便可,以下所示格式。瀏覽器

 

或者相似一個基於XtraReport報表的功能界面,以下面圖示所示。框架

 

這裏面涉及的字段,包括字符型、日期型,數值型、枚舉類型等,還有統計值、打印時間(參數),所以也算一個比較完整的報表展現了。工具

或者一些有一條記錄構建成的報表信息,以下報表所示,這些也只是設計模板上的差別,在模板裏面綁定對應的字段或者參數便可實現。post

 還有一種是主表有信息,從表有明細的數據展現方式,這個在隨筆《使用FastReport報表工具生成報表PDF文檔》有介紹過。測試

 

二、基於標籤信息報表的打印處理

以前在隨筆《在Winform開發中使用Grid++報表》和《在Bootstrap開發框架中使用Grid++報表》中介紹了使用銳浪報表來設計展示標籤打印報表的處理,以下效果所示。url

本篇隨筆介紹基於FastReport報表工具生成標籤打印文檔的操做。spa

其實若是細心查找,FastReport也提供了不少Demo案例,其中就有標籤的案例介紹,設計效果以下所示。設計

 

 報表預覽效果以下所示。3d

 

咱們要作的相似,不過咱們須要增長二維碼、條碼上去進行打印而已。

首先咱們須要設計一個報表模板,設計格式以下所示。

 

 在其中咱們須要加入一個數據源進行綁定和測試預覽效果,咱們選擇SQLServer一個表的數據進行建立數據源,以下所示。

 

設計報表,咱們須要根據實際標籤紙張預先設計好報表頁面大小,以下所示。

 

若是須要展現多少列,能夠經過頁面設置中的列進行指定劃分多少列,以下所示。

 

不過在實際測試的時候,這樣的屬性設置,報表渲染的時候,是按指定高度,從左列到右列進行依次展示的,若是咱們須要按實際渲染高度,那麼這裏能夠設置爲1,而後由數據區進行設置列的數量便可。以下所示。

 

數據區設置列數爲實際須要展示的列數,這個根據寬度預覽看大概設計多少列合適,讓頁面高寬儘量利用好便可。

二維碼標籤報表格式設計效果大概以下所示。

 

咱們使用數據源的數據預覽下效果,效果仍是槓槓的。

 

 報表模板弄好了,咱們就須要如何生成FastReport報表或者導出PDF了。

我在以前的隨筆《使用FastReport報表工具生成報表PDF文檔》裏面介紹了FastReport報表的處理代碼,這裏作法依舊差很少,綁定數據源便可展現或者導出PDF了。

最主要的代碼以下所示。

//生成PDF報表文檔到具體文件
Report report = new Report();
report.Load(reportPath);

//定義參數和數據格式
var dict = new Dictionary<string, object>();
var dt = DataTableHelper.CreateTable("ID,Name,CurrDept,Code,UsePerson,KeepAddr");
if (list != null)
{
    foreach (var info in list)
    {
        var dr = dt.NewRow();
        dr["ID"] = info.ID;
        dr["Name"] = info.Name;
        dr["CurrDept"] = info.CurrDept;
        dr["Code"] = info.Code;
        dr["UsePerson"] = info.UsePerson;
        dr["KeepAddr"] = info.KeepAddr;
        dt.Rows.Add(dr);
    }
}

//刷新數據源
foreach (string key in dict.Keys)
{
    report.SetParameterValue(key, dict[key]);
}
report.RegisterData(dt, "T_Asset");

//運行報表
report.Prepare();

若是須要導出PDF,那麼代碼增長部分導出處理便可。

//導出PDF報表
PDFExport export = new PDFExport();
report.Export(export, realPath);
report.Dispose();

咱們來看看實際在瀏覽器預覽的效果,以下所示。

以上效果結合了pdfJS的在線預覽PDF操做,若是須要了解PDF的在線處理,參考下隨筆《實如今線預覽PDF的幾種解決方案》。

相關文章
相關標籤/搜索