Devexpress(开发快车)打印问题总结
感觉用开发快车做出来的界面真不错,打印方面也很方便,微软的水晶报表发布后安装维护都挺麻烦的。
这几天闲来无事,看了下开发快车的一些打印方式,总结出如下几种方式。其实官方帮助很详细,此文
仅做为学习笔记。
1 XtraLayout 输出(最简单的方式)。可以将需要打印的控件等添加到layerout里面,
不过这些界面不太好弄,打印出来界面也不是太理想
layoutControl1.ShowPrintPreview();
layoutControl1.Print()
2 其他实现了IPrintable接口的控件也可以直接打印。
比如XtraGridControl, 直接调用 print()就可以了。
当想添加标题等额外功能时,需要使用DevExpress.XtraPrinting.PrintableComponentLink此对象来实现。也就是说不能使用gridControl控件的print()方法(此处网上多个地方有说明)
代码
1 PrintingSystem ps=new DevExpress.XtraPrinting.PrintingSystem();
2
3 DevExpress.XtraPrinting.PrintableComponentLink link=null;
4
5 link=new DevExpress.XtraPrinting.PrintableComponentLink(ps);
6
7 ps.Links.Add(link);
8
9 link.Component=urGridControl;//实现IPrintable接口的控件都可以赋值
10
11 string strPrintHeader="HeardInfo";
12
13 PageHeaderFooter phf = link.PageHeaderFooter as PageHeaderFooter;
14
15 phf.Header.Content.Clear();
16
17 phf.Header.Content.AddRange(new string[] {"",_PrintHeader,""});
18
19 phf.Header.Font=new System.Drawing.Font("宋体",14,System.Drawing.FontStyle.Bold);
20
21 phf.Header.LineAlignment=BrickAlignment.Center;
22
23 link.CreateDocument(); //建立文档
24
25 ps.PreviewForm.Show();//预览
26
3 想让打印效果更好的时候就需要我们设计报表了。
类似微软的水晶报表
ASP.NMT页面与水晶报表方式基本一致
新建报表类,在页面中添加reportview控件
代码
1 XtraReprt port=new XtraReprt();
2
3 Reportview1.report=port;
4
5 Reportview.print ();
6
7 //但是在winform中却用PrintControl来代替ReportView,此处觉得有点
8 //奇怪。 代码也有稍微变化。
9
10 XtraReport1 report = new XtraReport1();
11
12 // Bind the report's printing system to the print control.
13
14 printControl1.PrintingSystem = report.PrintingSystem;
15
16 // Generate the report's print document.
17
18 report.CreateDocument();
19