DevExpress WinForm控件入门指南 - 如何在打印/导出时设置纸张格式_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > DevExpress WinForm控件入门指南 - 如何在打印/导出时设置纸张格式

DevExpress WinForm控件入门指南 - 如何在打印/导出时设置纸张格式

 2021/9/8 12:39:04  AABBbaby  程序员俱乐部  我要评论(0)
  • 摘要:WinForm平台下的DevExpressReporting控件允许您自定义纸张格式、方向,并将自定义信息添加到报表中。请注意,以下方法适用于实现IPrintable接口的控件(例如XtraGrid、XtraPivotGrid、XtraScheduler、XtraTreeList、XtraCharts、LayoutControl、XtraVerticalGrid等)。获取工具下载-DevExpressWinFormv21.1要开始学习本教程
  • 标签:for 控件 winform

WinForm平台下的DevExpress Reporting控件允许您自定义纸张格式、方向,并将自定义信息添加到报表中。请注意,以下方法适用于实现 IPrintable 接口的控件(例如 XtraGrid、XtraPivotGrid、XtraScheduler、XtraTreeList、XtraCharts、Layout Control、XtraVerticalGrid 等)。

获取工具下载 - DevExpress WinForm v21.1

要开始学习本教程,请启动Microsoft Visual Studio并创建一个新的Windows Forms应用程序或打开一个现有应用程序,然后运行Toolbox并将实现IPrintable接口所需控件拖放到窗体上。

DevExpress WinForm控件入门指南:如何在打印/导出时设置纸张格式并向报表添加自定义信息class="img-thumbnail">

接下来,您可以将控件绑定到数据或手动填充它。

在运行时自定义打印选项

IPrintable接口允许您自定义打印设置并使用 PrintableComponentLink 打印控件,以下代码演示了如何创建 PrintableComponentLink、将控件分配给其 PrintableComponentLinkBase.Component 属性、调整其打印设置以及打印控件。

C#

?

using DevExpress.LookAndFeel;
using DevExpress.XtraEditors;
using DevExpress.XtraPrinting;
using DevExpress.XtraPrinting.Links;
using DevExpress.XtraPrintingLinks;
//...

public partial class Form1 : XtraForm {
//...
private void gridControl1_Load(object sender, EventArgs e) {
PreviewPrintableComponent(gridControl1, gridControl1.LookAndFeel);
}

void PreviewPrintableComponent(IPrintable component, UserLookAndFeel lookAndFeel) {
// Create a link that will print a control.
PrintableComponentLink link = new PrintableComponentLink() {
PrintingSystemBase = new PrintingSystemBase(),
Component = component,
Landscape = true,
PaperKind = PaperKind.A5,
Margins = new Margins(20,20,20,20)
};
// Show the report.
link.ShowRibbonPreview(lookAndFeel);
}
}

?

VB.NET

?

Imports DevExpress.LookAndFeel
Imports DevExpress.XtraEditors
Imports DevExpress.XtraPrinting
Imports DevExpress.XtraPrinting.Links
Imports DevExpress.XtraPrintingLinks
'...

Public Partial Class Form1
Inherits XtraForm
'...
Private Sub gridControl1_Load(sender As Object, e As EventArgs)
PreviewPrintableComponent(gridControl1, gridControl1.LookAndFeel)
End Sub

Private Sub PreviewPrintableComponent(component As IPrintable, lookAndFeel As UserLookAndFeel)
' Create a link that will print a control.
Dim link As New PrintableComponentLink() With { _
.PrintingSystemBase = New PrintingSystem(), _
.Component = component, _
.Landscape = True, _
.PaperKind = PaperKind.A5, _
.Margins = New Margins(20, 20, 20, 20) _
}
' Show the report.
link.ShowRibbonPreview(lookAndFeel)
End Sub
End Class

?

在运行时向报表添加自定义信息

创建报表页眉或者页脚来向报表添加自定义信息,订阅CreateReportHeader事件来添加报表头,如下所示。

C#

?

using DevExpress.LookAndFeel;
using DevExpress.XtraEditors;
using DevExpress.XtraPrinting;
using DevExpress.XtraPrinting.Links;
using DevExpress.XtraPrintingLinks;
//...

public partial class Form1 : XtraForm {
//...
void PreviewPrintableComponent(IPrintable component, UserLookAndFeel lookAndFeel) {
// Create a link that will print a control.
//...
// Subscribe to the CreateReportHeaderArea event used to generate the report header.
link.CreateReportHeaderArea += link_CreateReportHeaderArea;
// Show the report.
link.ShowRibbonPreview(lookAndFeel);
}
}

?

VB.NET

?

Imports DevExpress.LookAndFeel
Imports DevExpress.XtraEditors
Imports DevExpress.XtraPrinting
Imports DevExpress.XtraPrinting.Links
Imports DevExpress.XtraPrintingLinks
'...

Public Partial Class Form1
Inherits XtraForm
'...
Private Sub PreviewPrintableComponent(component As IPrintable, lookAndFeel As UserLookAndFeel)
' Create a link that will print a control.
'...
' Subscribe to the CreateReportHeaderArea event used to generate the report header.
AddHandler link.CreateReportHeaderArea, AddressOf Link_CreateReportHeaderArea
' Show the report.
link.ShowRibbonPreview(lookAndFeel)
End Sub
End Class

?

按如下方式处理 CreateReportHeader 事件。

C#

?

using System.Drawing;
using DevExpress.XtraPrinting;

private void link_CreateReportHeaderArea(object sender,
CreateAreaEventArgs e) {
string reportHeader = "Categories Report";
e.Graph.StringFormat = new BrickStringFormat(StringAlignment.Center);
e.Graph.Font = new Font("Tahoma", 14, FontStyle.Bold);
RectangleF rec = new RectangleF(0, 0, e.Graph.ClientPageSize.Width, 50);
e.Graph.DrawString(reportHeader, Color.Black, rec, BorderSide.None);
}

?

VB.NET

?

Imports System.Drawing
Imports DevExpress.XtraPrinting

Private Sub link_CreateReportHeaderArea(ByVal sender As System.Object, _
ByVal e As CreateAreaEventArgs) _
Handles PrintableComponentLink1.CreateReportHeaderArea
Dim reportHeader As String = "Categories Report"
e.Graph.StringFormat = New BrickStringFormat(StringAlignment.Center)
e.Graph.Font = New Font("Tahoma", 14, FontStyle.Bold)
Dim rec As RectangleF = New RectangleF(0, 0, e.Graph.ClientPageSize.Width, 50)
e.Graph.DrawString(reportHeader, Color.Black, rec, BorderSide.None)
End Sub

?

下图说明了包含指定打印选项和附加自定义信息的结果报表。

DevExpress WinForm控件入门指南:如何在打印/导出时设置纸张格式并向报表添加自定义信息
在运行时将报表导出为指定格式

除了打印预览窗口中提供的导出功能外,您还可以通过PrintableComponentLink对象导出报表。

C#

?

PrintableComponentLink link = new PrintableComponentLink();
link.ExportToPdf(@"c:\gridcontrol.pdf");

?

VB.NET

?

Dim link As New PrintableComponentLink()
link.ExportToPdf("c:\gridcontrol.pdf")

?

DevExpress WinForm | 下载试用

DevExpress WinForm拥有180+组件和UI库,能为Windows Forms平台创建具有影响力的业务解决方案。DevExpress WinForms能完美构建流畅、美观且易于使用的应用程序,无论是Office风格的界面,还是分析处理大批量的业务数据,它都能轻松胜任!


DevExpress技术交流群4:715863792??????欢迎一起进群讨论

更多DevExpress线上公开课、中文教程资讯请上中文网获取

?

发表评论
用户名: 匿名