1.Web 窗体 Viewer 的报表绑定
ReportDocument crReportDocument;
crReportDocument = new tempCrystalReport();
crReportDocument.SetDataSource(ds.Tables[0]);
CrystalReportViewer1.ReportSource =crReportDocument;
2.查看报表
Web 窗体 Viewer 是在 Microsoft Internet Information Server (IIS) 内运行的一种 ASP.NET Web 窗体控件。查看器的主要功能是在客户机上承载和更新 HTML 格式的 Crystal 报表页。
此 Crystal Reports 控件的工作方式与 Visual Studio .NET 环境中的其他 Web 应用程序控件相同:服务器端的控件将其自身呈现为 HTML 并将该 HTML 发送给客户机。
要以 HTML 格式承载所请求的报表页,Web 窗体 Viewer控件将与本地 Web 服务器上的报表引擎或远程服务器上的报表 Web 服务进行交互。
3.导出报表
导出格式
Adobe Acrobat (.pdf)
Crystal Reports for Visual Studio .NET 许可协议 (.rpt)
HTML 3.2 和 4.0 (.html)
Microsoft Excel (.xls)
Microsoft Rich Text (.rtf)
Microsoft Word (.doc)
注意 ASPNET 帐户必须具有写入将报表导出到的文件夹的权限。如果该文件夹没有至少设置更改权限,您将会收到一条错误消息,告诉您临时报表文件出错。出现这条错误消息是因为 ASPNET 帐户在导出时创建了一个临时报表文件,但是在试图将该报表文件写入到导出文件夹时由于权限不足而失败。手动创建的文件夹可能不会自动将完全控制赋予 ASPNET 帐户。
[C#]
// 声明变量并获取导出选项。
ExportOptions exportOpts = new ExportOptions();
ExcelFormatOptions excelFormatOpts = new ExcelFormatOptions ();
DiskFileDestinationOptions diskOpts = new DiskFileDestinationOptions();
exportOpts = Report.ExportOptions;
// 设置 Excel 格式选项。
excelFormatOpts.ExcelUseConstantColumnWidth = true;
exportOpts.ExportFormatType = ExportFormatType.Excel;
exportOpts.FormatOptions = excelFormatOpts;
// 设置磁盘文件选项并导出。
exportOpts.ExportDestinationType = ExportDestinationType.DiskFile;
diskOpts.DiskFileName = fileName;
exportOpts.DestinationOptions = diskOpts;
Report.Export ();
导出为 PDF
下面的示例演示如何将报表导出为 PDF 格式并将其发送到客户端机器。
[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)