这个示例展示了如何在运行时刻,为 Windows Forms 或 Web 应用程序创建一个简单的报表,然后把输出它。
创建报表类
首先,需要新建一个继承自 XtraReport 类的类。 在代码中引用 XtraReport 类之前,需要把所有必需的程序集添加到项目的 引用 列表中。 注意,对于 Windows 窗体和 ASP.NET Web 应用程序而言,所添加的程序集列表可能不同,也取决于某些其他环境。 请参阅 Windows 窗体部署,来确定您必须引用的程序集。
在添加了所有必需的程序集之后,还要把报表类定义添加到项目中。 例如,下面是一个报表类定义,它创建了一个有“Hello, World!”文本的简单报表。
C# | 复制代码 |
---|---|
using System.Drawing; using DevExpress.XtraReports.UI; namespace MyReportsNamespace { public class MyReport : XtraReport { private DetailBand Detail; private PageHeaderBand PageHeader; private PageFooterBand PageFooter; private XRLabel HelloWorldLabel; public MyReport() { this.Detail = new DetailBand(); this.PageHeader = new PageHeaderBand(); this.PageFooter = new PageFooterBand(); this.PageFooter.Height = 30; this.PageHeader.Height = 30; this.Bands.AddRange(new Band[] { this.Detail, this.PageHeader, this.PageFooter }); this.HelloWorldLabel = new XRLabel(); this.HelloWorldLabel.Text = "Hello, World!"; this.HelloWorldLabel.Font = new Font("Tahoma", 15, FontStyle.Bold); this.Detail.Controls.Add(this.HelloWorldLabel); } } } |
Visual Basic | 复制代码 |
---|---|
Imports System.Drawing Imports DevExpress.XtraReports.UI Namespace MyReportsNamespace Public Class MyReport Inherits XtraReport Private Detail As DetailBand Private PageHeader As PageHeaderBand Private PageFooter As PageFooterBand Private HelloWorldLabel As XRLabel Public Sub New() Me.Detail = New DetailBand() Me.PageHeader = New PageHeaderBand() Me.PageFooter = New PageFooterBand() Me.PageFooter.Height = 30 Me.PageHeader.Height = 30 Me.Bands.AddRange(New Band() {Me.Detail, Me.PageHeader, Me.PageFooter}) Me.HelloWorldLabel = New XRLabel() Me.HelloWorldLabel.Text = "Hello, World!" Me.HelloWorldLabel.Font = New Font("Tahoma", 15, FontStyle.Bold) Me.Detail.Controls.Add(Me.HelloWorldLabel) End Sub End Class End Namespace |
此报表包含一个 HelloWorldLabel 报表控件 (被放置在 Detail 报表带区)。 注意,在本示例中,PageHeader 和 PageFooter 带区不包含任何控件,只是为了演示目的而添加到报表中。
现在报表类已经就绪,可以被用于 Windows Forms 和 Web 应用程序中了。
在 Windows 窗体应用程序中显示报表
要在 Windows 窗体应用程序中输出此报表,则需要把一个 Button 控件拖放到窗体中,并接管其 Click 事件。 例如,下列代码演示了如何创建一个新报表、预览报表并把它发送到打印机。
C# | 复制代码 |
---|---|
private void button1_Click(object sender, EventArgs e) { // Create a new report instance. MyReportsNamespace.MyReport report = new MyReportsNamespace.MyReport(); // Show its print preview. report.ShowPreviewDialog(); // Print this report. report.PrintDialog(); } |
Visual Basic | 复制代码 |
---|---|
Private Sub button1_Click(ByVal sender As Object, ByVal e As EventArgs) _ Handles button1.Click ' Create a new report instance. Dim Report As New MyReportsNamespace.MyReport() ' Show its print preview. Report.ShowPreviewDialog() ' Print this report. Report.PrintDialog() End Sub |
在 Web 应用程序中显示报表
要在 ASP.NET 应用程序中输出此报表,首先需要把 ReportViewer 控件拖放到 Web 页面上。 此控件被设计用于在网页上显示报表的 HTML 输出。 如果需要在客户端提供报表导航功能,那么也可以添加 ReportToolbar 控件,并把它的 ReportToolbar.ReportViewer 属性设置为已有的报表查看器。
然后,可以把一个新的 Button 控件拖放到 Web 页面,并接管它的 Click 事件,如下所示。
C# | 复制代码 |
---|---|
protected void Button1_Click(object sender, EventArgs e) { MyReportsNamespace.MyReport report = new MyReportsNamespace.MyReport(); ReportViewer1.Report = report; } |
Visual Basic | 复制代码 |
---|---|
Protected Sub Button1_Click(sender As Object, e As EventArgs) _ Handles Button1.Click Dim Report As New MyReportsNamespace.MyReport() ReportViewer1.Report = Report End Sub |