转 http://blog.163.com/xu_shuhao/blog/static/52577487201072284619646/
?
本文和大家讲下C#不使用ReportViewer直接打印Report文件(rdlc)的实现代码,主要讲如何不使用报表预览控件(ReportViewer),直接将报表的内容在打印机上打印出来。
一般情况下,我们设计好报表后,在程序运行的时候,会将其加载到ReprotViewer控件中进行预览并打印,但有些情况下,我们不想预览报表的内容,而直接将其在打印机上打印出来,又该怎么做呢?要想实现直接打印的功能,我们需要用到.Net提供的2个对象,LocalReport和PrintDocument。LocalReport对象负责加载一个报表文件生成实际的报表并将报表按照知道的格式输出,PrintDocument对象负责将LocalReport的输出内容发送到打印机打印。具体的实现步骤如下:
Step 1: 声明一个LocalReport对象并加载一个报表文件(假定我们已经设计好一个报表文件,名称为PrintMe.rdlc)。
1: LocalReport report = new LocalReport();
2: //设置需要打印的报表的文件名称。
3: report.ReportPath = @"c:\PrintMe.rdlc";
4: //创建要打印的数据源
5: ReportDataSource source = new ReportDataSource(SourceTalbe.TableName, SourceTalbe);
6: report.DataSources.Add(source);
7: //刷新报表中的需要呈现的数据
8: report.Refresh();