我搜索了vs.net2003的帮助看到水晶报表的导出代码,可惜是vb的看不懂,哪位高手帮我把他转换成C#语言。或者提供别的更好的导出水晶报表的C#源码更好。
[Visual Basic]
' 定义 Crystal Reports 变量
Dim crReportDocument As ReportDocument
Dim crExportOptions As ExportOptions
Dim crDiskFileDestinationOptions As DiskFileDestinationOptions
Dim Fname as String' 以下代码可以直接放在窗体的构造函数中对
' InitializeComponent() 的调用之后,或者放在 ,
' Button_Click 事件内部,在该事件中,客户端使用该按钮
' 来获取报表的可打印副本。crReportDocument = New ReportDocument()
' 以下代码行加载
' 示例报表“Chart.rpt”
crReportDocument.Load ("C:\Program Files\Microsoft Visual Studio .NET 2003\Crystal Reports\Samples\Reports\Feature Examples\Chart.rpt")Fname = "c:\exports\" & Session.SessionID.ToString & ".pdf"
crDiskFileDestinationOptions = New DiskFileDestinationOptions()
CrDiskFileDestinationOptions.DiskFileName = Fname
crExportOptions = crReportDocument.ExportOptions
With crExportOptions
.DestinationOptions = crDiskFileDestinationOptions
.ExportDestinationType = ExportDestinationType.DiskFile
.ExportFormatType = ExportFormatType.PortableDocFormat
End With
crReportDocument.Export()
' 以下代码将 pdf 文件写入
' 客户端浏览器。
Response.ClearContent()
Response.ClearHeaders()
Response.ContentType = "application/pdf"
Response.WriteFile(Fname)
Response.Flush()
Response.Close()' 从磁盘删除导出的文件
System.IO.File.Delete(Fname)
[Visual Basic]
' 定义 Crystal Reports 变量
Dim crReportDocument As ReportDocument
Dim crExportOptions As ExportOptions
Dim crDiskFileDestinationOptions As DiskFileDestinationOptions
Dim Fname as String' 以下代码可以直接放在窗体的构造函数中对
' InitializeComponent() 的调用之后,或者放在 ,
' Button_Click 事件内部,在该事件中,客户端使用该按钮
' 来获取报表的可打印副本。crReportDocument = New ReportDocument()
' 以下代码行加载
' 示例报表“Chart.rpt”
crReportDocument.Load ("C:\Program Files\Microsoft Visual Studio .NET 2003\Crystal Reports\Samples\Reports\Feature Examples\Chart.rpt")Fname = "c:\exports\" & Session.SessionID.ToString & ".pdf"
crDiskFileDestinationOptions = New DiskFileDestinationOptions()
CrDiskFileDestinationOptions.DiskFileName = Fname
crExportOptions = crReportDocument.ExportOptions
With crExportOptions
.DestinationOptions = crDiskFileDestinationOptions
.ExportDestinationType = ExportDestinationType.DiskFile
.ExportFormatType = ExportFormatType.PortableDocFormat
End With
crReportDocument.Export()
' 以下代码将 pdf 文件写入
' 客户端浏览器。
Response.ClearContent()
Response.ClearHeaders()
Response.ContentType = "application/pdf"
Response.WriteFile(Fname)
Response.Flush()
Response.Close()' 从磁盘删除导出的文件
System.IO.File.Delete(Fname)
m_rptRSHT_RYMD.SetDataSource(DS); //DS是传递给报表的数据源 ExportOptions crExportOptions = new ExportOptions();
DiskFileDestinationOptions crDiskFileDestinationOptions = new DiskFileDestinationOptions();
String Fname1,Filename,Filepath; Filepath= Server.MapPath("")+"\\";
Filename="temp";
Fname1 = Filepath + Filename+".pdf"; crDiskFileDestinationOptions.DiskFileName =Fname1;
crExportOptions = m_rptRSHT_RYMD.ExportOptions; crExportOptions.DestinationOptions = crDiskFileDestinationOptions;
crExportOptions.ExportDestinationType = ExportDestinationType.DiskFile;
crExportOptions.ExportFormatType = ExportFormatType.PortableDocFormat;
m_rptRSHT_RYMD.Export(); Response.ClearContent();
Response.ClearHeaders();
Response.ContentType ="application/pdf";
Response.WriteFile(Fname1);
Response.Flush();
Response.Close();
System.IO.File.Delete(Fname1);
rDoc.SetDataSource(“tablename”);
rDoc.Refresh();
CrystalReportViewer.ReportSource = rDoc;
rDoc.ExportOptions.ExportFormatType = ExportFormatType.PortableDocFormat;
rDoc.ExportOptions.ExportDestinationType = ExportDestinationType.DiskFile;
DiskFileDestinationOptions diskOpts = new DiskFileDestinationOptions();
diskOpts.DiskFileName = Server.MapPath("./Temp.pdf");//fileName;
rDoc.ExportOptions.DestinationOptions = diskOpts;
rDoc.Export();
Response.ContentType ="application/pdf";
Response.AppendHeader("Content-Disposition","attachment; filename=Temp.pdf;");
Response.WriteFile("./Temp.pdf");
Response.Flush();
Response.End();
//生成
HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename=RoadRepair.doc");
Response.ContentType = "application/vnd.ms-word" ;//指定生成文件的类型
HttpContext.Current.Response.Charset = "";
HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.Default;
System.IO.StringWriter tw=new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter hw=new System.Web.UI.HtmlTextWriter(tw)
DataGrid1.RenderControl(hw);//datagrid转成string
HttpContext.Current.Response.Write(hw.tosting());
HttpContext.Current.Response.End();//显示
Response.ClearContent();
Response.ClearHeaders();
Response.ContentType="application/msword";
Response.WriteFile("RoadRepair.doc");
Response.Flush();
Response.Close();