RDLC在不预览的情况下打印本地报表
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
演练:在不预览的情况下打印本地报表
Visual Studio 2012
其他版本
Visual Studio 2010
Visual Studio 2008
Visual Studio 2005
此主题尚未评级 - 评价此主题
本演练演示如何使用 LocalReport 对象和 CreateStreamCallback 回调函数以编程方式在不查看的情况下打印报表。
先决条件
您必须具有访问示例报表和数据源的权限。 有关更多信息,请参见用于打印演练的示例数据和报表。
执行下列步骤可创建控制台应用程序项目。
创建新的控制台应用程序项目
1. 在“文件”菜单上,指向“新建”,然后选择“项目”。
2. 在“已安装的模板”窗格中,选择“C#”或“Visual
Basic”。 根据 Visual Studio 中的启动设
置,“C#”或“Visual Basic”节点可能会显示在“其他语
言”下。
3. 在“模板”窗格中,选择“控制台应用程序”。
4. 在“名称”框中,键入项目的名称:PrintLocalReport。
5. 在“位置”框中,输入要保存项目的目录,或者单击“浏
览”以导航到该目录。
6. 单击“确定”。 项目与显示“Program”代码文件的“代
码”窗口一起打开。
添加引用
1. 从“项目”菜单中,选择“添加引用”。
2. 在“添加引用”对话框的“.NET”选项卡上,选择
System.Drawing、System.Windows.Forms 和
Microsoft.ReportViewer.Winforms。
3. 单击“确定”。
添加现有的 report.rdlc 和 data.xml 文件
1. 从“项目”菜单中选择“添加现有项”。 随即将显示“添加
现有项”对话框。
2. 定位到保存 report.rdlc 和 data.xml 的文件夹。 然后选
择这两个文件。
3. 单击“添加”。 这两个文件将作为项目的一部分显示在解决
方案资源管理器中。
添加代码
1. Program 代码文件应该已经打开并处于待编辑状态。 如果该
文件尚未打开,请在“解决方案资源管理器”窗口中双击
Program.cs 或 Module1.vb 文件。
2. 根据您的编程语言选择下面的代码,并用其替
换“Program”文件中的现有代码。
注意
如果您的计算机上没有安装名为 Microsoft XPS
Document Writer 的打印机,请将粗体代码更改为您计算
机上的指定打印机。
3. C#
4. 复制
5. using System;
6. using System.IO;
7. using System.Data;
8. using System.Text;
9. using System.Drawing.Imaging;
10. using System.Drawing.Printing;
11. using System.Collections.Generic;
12. using System.Windows.Forms;
13. using Microsoft.Reporting.WinForms;
14.
15. public class Demo : IDisposable
16. {
17. private int m_currentPageIndex;
18. private IList
19.
20. private DataTable LoadSalesData()
21. {
22. // Create a new DataSet and read sales data
file
23. // data.xml into the first DataTable.
24. DataSet dataSet = new DataSet();
25. dataSet.ReadXml(@"..\..\data.xml");
26. return dataSet.Tables[0];
27. }
28. // Routine to provide to the report renderer, in
order to
29. // save an image for each page of the report.
30. private Stream CreateStream(string name,
31. string fileNameExtension, Encoding encoding,
32. string mimeType, bool willSeek)
33. {
34. Stream stream = new MemoryStream();
35. m_streams.Add(stream);
36. return stream;
37. }
38. // Export the given report as an EMF (Enhanced
Metafile) file.
39. private void Export(LocalReport report)
40. {
41. string deviceInfo =
42. @"
43.
44.
45.
46.
47.
48.
49.
50. ";
51. Warning[] warnings;
52. m_streams = new List
53. report.Render("Image", deviceInfo,