• <menu id="w2i4a"></menu>
  • logo Devexpress WPF控件文檔中心

    打印自定義報表


    立即下載DevExpress WPF

    DXPrinting Library提供了一種創(chuàng)建自定義打印報表的簡單方法,這種方法是基于稱為打印鏈接的特殊打印程序。DXPrinting Library引入了幾種類型的 printing links,每種鏈接都是為呈現(xiàn)特定的數(shù)據(jù)對象、創(chuàng)建報表以及導(dǎo)出和打印報表而設(shè)計的,可以通過從LinkBase抽象類繼承您的類來創(chuàng)建自定義打印鏈接。

    下表列出了內(nèi)置的打印鏈接類型。

    打印鏈接 描述
    SimpleLink 呈現(xiàn)包含線性數(shù)據(jù)的數(shù)據(jù)對象。
    CollectionViewLink 呈現(xiàn)包含分層數(shù)據(jù)的數(shù)據(jù)對象,并實現(xiàn)ICollectionView 接口。
    PrintableControlLink DevExpress呈現(xiàn)控件。

    創(chuàng)建簡單鏈接

    簡單的打印鏈接通常用于在報表中顯示非分層數(shù)據(jù),在不需要將數(shù)據(jù)項分成組的情況下使用這種鏈接。

    Winforms 報表預(yù)覽

    創(chuàng)建后,必須為簡單鏈接提供數(shù)據(jù)。要做到這一點,通過SimpleLink.DetailCount屬性指定數(shù)據(jù)項的數(shù)量,并處理SimpleLink.CreateDetail事件,每次需要新的數(shù)據(jù)項時都會引發(fā)該事件,并根據(jù)SimpleLink.DetailCount屬性指定的次數(shù)引發(fā)該事件,在處理程序中,將新的數(shù)據(jù)項分配給CreateAreaEventArgs.Data事件參數(shù)的屬性,所需數(shù)據(jù)項的索引可以使用CreateAreaEventArgs.DetailIndex屬性獲得。

    除了數(shù)據(jù)項之外,還必須指定可視化表示。要做到這一點,創(chuàng)建一個DataTemplate ,它應(yīng)該應(yīng)用于每個數(shù)據(jù)項,然后將其分配給鏈接的SimpleLink.DetailTemplate屬性。

    創(chuàng)建集合視圖鏈接

    當(dāng)您需要在報表中顯示來自分層數(shù)據(jù)源的數(shù)據(jù),或者當(dāng)數(shù)據(jù)項應(yīng)該分成幾個組顯示時,集合視圖打印鏈接非常有用。

    Winforms分組數(shù)據(jù)報告

    要將數(shù)據(jù)分配給集合視圖鏈接,需要創(chuàng)建一個實現(xiàn)ICollectionView接口的對象,它可以是System.Windows.Data.CollectionViewSource對象,向該對象提供數(shù)據(jù)后,將其分配給鏈接的CollectionViewLink.CollectionView屬性。

    當(dāng)指定數(shù)據(jù)時,您應(yīng)該定義其可視化表示。要做到這一點,創(chuàng)建一個DataTemplate應(yīng)該應(yīng)用于每個數(shù)據(jù)項,并將其分配給鏈接的CollectionViewLink.DetailTemplate屬性。為了提供關(guān)于分組信息的鏈接,為每個分組級別創(chuàng)建一個GroupInfo對象,并通過GroupInfo.HeaderTemplate屬性指定一個應(yīng)該應(yīng)用于當(dāng)前分組級別中的每個組頭的模板,然后將GroupInfo對象添加到鏈接的CollectionViewLink.GroupInfos 集合中。

    創(chuàng)建可打印控件鏈接

    可打印控件鏈接用于呈現(xiàn)控件和實現(xiàn)IPrintableControl或IRootDataNode接口的數(shù)據(jù)對象。例如,TableView對象可以通過可打印控件鏈接呈現(xiàn)。

    Winforms網(wǎng)格報表預(yù)覽

    要創(chuàng)建一個可打印的控件鏈接,將適當(dāng)?shù)目丶驍?shù)據(jù)對象傳遞給PrintableControlLink構(gòu)造函數(shù)。

    頁面設(shè)置

    DXPrinting Library提供了許多設(shè)置,允許自定義報表的頁面選項。

    您可以在報表中包含頁眉和頁腳,以及整個文檔的頁眉和頁腳。要做到這一點,分別通過TemplatedLink.PageHeaderTemplate、TemplatedLink.PageFooterTemplate、TemplatedLink.ReportHeaderTemplate和TemplatedLink.ReportFooterTemplate 屬性指定它們的模板。通過將適當(dāng)?shù)臄?shù)據(jù)對象分別分配給TemplatedLink.PageHeaderData、TemplatedLink.PageFooterData、TemplatedLink.ReportHeaderData和TemplatedLink.ReportFooterData屬性,這些模板也可以提供一些自定義數(shù)據(jù)。

    下表列出了用于指定報表頁設(shè)置的其他屬性。

    屬性 描述
    LinkBase.CustomPaperSize 獲取或設(shè)置自定義紙張的大小(以百分之一英寸為單位測量)。
    LinkBase.DocumentName 獲取或設(shè)置文檔的名稱。
    LinkBase.Landscape 獲取或設(shè)置一個值,該值指示頁面方向是否為橫向。
    LinkBase.Margins 獲取或設(shè)置報表頁面的邊距(以百分之一英寸為單位測量)。
    LinkBase.MinMargins 指定最小打印機(jī)邊距值。
    LinkBase.PaperKind 獲取或設(shè)置文檔的紙張類型。
    LinkBase.SuppressAutoRebuildOnPageSettingsChange 獲取或設(shè)置一個值,該值指示是否有必要在每次更改鏈接的頁面設(shè)置時禁止重建文檔。

    導(dǎo)出和打印報表

    在創(chuàng)建鏈接對象并提供數(shù)據(jù)之后,您可以通過調(diào)用LinkBase.CreateDocument方法從鏈接創(chuàng)建文檔,現(xiàn)在報表生成了就可以打印和導(dǎo)出它,也可以在DocumentPreview控件中顯示它。要做到這一點,有必要創(chuàng)建一個新的LinkPreviewModel實例,將當(dāng)前鏈接作為初始化參數(shù),并將其分配給DocumentPreview.Model屬性。

    使用LinkBase.ShowPrintPreview方法可打開報表預(yù)覽窗口。要打開一個模式預(yù)覽窗口,使用LinkBase.ShowPrintPreviewDialog方法,打印對話框可以通過LinkBase.Print方法調(diào)用,要在不打開任何對話框的情況下打印報告,請使用LinkBase.PrintDirect方法。

    下表列出了用于將報表導(dǎo)出為不同格式的方法。

    方法 描述
    LinkBase.ExportToCsv 使用指定的CSV特定選項,用CSV格式將報表導(dǎo)出到指定的流。
    LinkBase.ExportToHtml 使用指定的特定于HTML的選項,用HTML格式將報告導(dǎo)出到指定的流。
    LinkBase.ExportToImage  
    LinkBase.ExportToMht 使用指定的MHT特定選項用MHT格式將報告導(dǎo)出到指定流。
    LinkBase.ExportToPdf 使用指定的PDF特定選項用PDF格式將報表導(dǎo)出到指定的流。
    LinkBase.ExportToRtf 使用指定的RTF特定選項用RTF格式將報表導(dǎo)出到指定的流。
    LinkBase.ExportToText 使用指定的特定于文本的選項用文本格式將報表導(dǎo)出到指定的流。
    LinkBase.ExportToXls 使用指定的特定于XLS的選項用XLS格式將報告導(dǎo)出到指定的流。
    LinkBase.ExportToXlsx 使用指定的特定于XLSX的選項,用XLSX格式將報告導(dǎo)出到指定的流。
    LinkBase.ExportToXps 使用指定的特定于XPS的選項用XPS格式將報表導(dǎo)出到指定的流。
    掃碼咨詢


    添加微信 立即咨詢

    電話咨詢

    客服熱線
    023-68661681

    TOP
    三级成人熟女影院,欧美午夜成人精品视频,亚洲国产成人乱色在线观看,色中色成人论坛 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();