.Net報表開發控件XtraReport介紹
一、概述
在XtraReport中,每一個報表都是XtraReport或者其子類。
XtraReport中的報表類可以與數據綁定也可以不綁定。
在創建一個報表時,可以從已有的報表中加載樣式和佈局,樣式中包含瞭報表控件外觀的屬性值,而佈局包含瞭報表的結構信息。另外,還可以從其他報表系統中導入報表,比如:Access,水晶報表等等。
報表類(XtraReport的子類)創建後,就可以生成其實例。需要註意的是,XtraReport對象可以在Windows Forms中使用也可以在Asp.net中使用。在Windows應用中使用報表,通常需要維護報表的,這個對象提供瞭報表的輸出功能。
創建報表有兩種方式,一種是簡單地添加一個"模板"報表,一種是通過報表向導來創建報表。
在報表添加到項目後,報表設計器提供瞭大量的設計時元素來加快簡化報表的創建。XtraReport工具箱包含瞭所有的控件。
Report Navigator可以瀏覽整個報表,Feild List可以拖放數據字段來創建與數據綁定的報表控件。
XtraReport的所有報表都是由和組成的。
public class XtraReport1 : DevExpress.XtraReports.UI.XtraReport { private DevExpress.XtraReports.UI.DetailBand Detail; private DevExpress.XtraReports.UI.PageHeaderBand PageHeader; private DevExpress.XtraReports.UI.PageFooterBand PageFooter; private DevExpress.XtraReports.UI.XRLabel xrLabel1; private DevExpress.XtraReports.UI.XRLabel xrLabel2; private System.ComponentModel.Container components = null; public XtraReport1() { InitializeComponent(); } protected override void Dispose(bool disposing) { if (disposing) { if (components != null) { components.Dispose(); } } base.Dispose(disposing); } }
然後開始創建報表的結構,首先在XtraReportBase.Bands屬性中添加Bands,然後在相應的Bands的XRControl.Controls屬性中添加控件。報表帶和控件的添加方法一般是這樣的。
// Add Detail, PageHeader and PageFooter bands to the report's collection of bands. this.Bands.AddRange(new DevExpress.XtraReports.UI.Band[] { this.Detail, this.PageHeader, this.PageFooter }); // Add two XRLabel controls to the Detail band. this.Detail.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] { this.xrLabel1, this.xrLabel2 });
可以給報表傳遞參數:
XtraReport1 report = new XtraReport1(); report.Parameters["yourParameter1"].Value = firstValue; report.Parameters["yourParameter2"].Value = secondValue;
報表內使用參數:
report.FilterString = "[CategoryID] = [Parameters.yourParameter1]";
最後創建好的報表可以輸出給用戶看瞭
// Create a report. XtraReport1 report = new XtraReport1(); // Create the report's document so it can then be previewed, printed or exported. // NOTE: Usually you don't need to call this method as it's automatically called by all of the following methods. // See the corresponding member topic to find out when it needs to be called. report.CreateDocument(); // Show the form with the report's print preview. report.ShowPreview(); // Print the report in a dialog and "silent" mode. report.PrintDialog(); report.Print(); // Open the report in the End-User designer report.RunDesigner(); // Export the report. report.CreateHtmlDocument("report.html"); report.CreatePdfDocument("report.pdf"); report.CreateImage("report.jpg", System.Drawing.Imaging.ImageFormat.Gif);
二、實例展示
1、報表設計
在報表屬性中,設置默認font為微軟雅黑,設置Language為默認(註意:不能設置為中文,否則導出PDF中文亂碼)。
2、報表後臺代碼
綁定到List類型的綁定方法,設置報表上的對象的XRBinging中DataSource參數為null。
從報表的DataMember 需要設置,否則從報表隻顯示一條記錄。
同時“計算”字段的表達式的使用。
public partial class MyReport : DevExpress.XtraReports.UI.XtraReport { public MyReport() { InitializeComponent(); this.xrLabel6.DataBindings.Add("Text", null, "FileNo"); this.xrLabel7.DataBindings.Add("Text", null, "ApplyTime", "{0:yyyy-MM-dd}"); CalculatedField calculatedField1 = new CalculatedField { Expression = "Iif([InspectItms.InspectResult]==1,'合格','不合格' )", Name = "calculatedField1" }; CalculatedField calculatedField2 = new CalculatedField { Expression = "[ReviewResult]=='1'", Name = "calculatedField2" }; this.CalculatedFields.AddRange(new DevExpress.XtraReports.UI.CalculatedField[] { calculatedField1, calculatedField2}); DetailReport.DataMember = "InspectItms"; this.xrTableCell5.DataBindings.Add("Text", null, "InspectItms.InspectItem"); this.xrTableCell6.DataBindings.Add("Text", null, "calculatedField1"); this.xrCheckBox1.DataBindings.Add("Checked", null, "calculatedField2"); } }
3、調用報表
List list = new List<MyEntity> { entity }; MyReport myReport = new MyReport(); //報表實例 myReport.DataSource = list;//綁定報表的數據源 myReport.ShowPreview();
到此這篇關於.Net報表開發控件XtraReport的文章就介紹到這瞭。希望對大傢的學習有所幫助,也希望大傢多多支持WalkonNet。
推薦閱讀:
- C# 控件屬性和InitializeComponent()關系案例詳解
- C#中使用DevExpress中的ChartControl實現極坐標圖的案例詳解
- Winform項目中TextBox控件DataBindings屬性
- C# InitializeComponent()方法案例詳解
- C#實現數字轉換漢字的示例詳解