Asp.Net从零开始10(水晶报表另存为其他格式)
没有Asp.net开发经验的朋友可以看看这篇文章,可以从零开始学习各种ASP.NET技能。本资料是本人整理的ASP.NET与C#的基础资料。如需了解请查阅VS.NET的相关书籍。省略的内容有ASP.NET基础语法、C#基础语法、HTML语法、JAVASCRIPT语法。 适用人群:初学ASP.NET ### ASP.NET水晶报表另存为其他格式详解 #### 一、引言 在现代Web应用开发中,报表处理是一项常见的需求。ASP.NET结合Crystal Reports(水晶报表)为开发者提供了强大的报表设计与展示功能。本文旨在介绍如何利用ASP.NET将水晶报表导出为多种格式,包括但不限于RTF、PDF、DOC、XLS等。这对于需要生成多样化报表输出的应用非常有用。通过本文的学习,初学者可以更好地掌握这一技巧,并将其应用于实际项目中。 #### 二、基础知识简介 在深入探讨之前,我们先简要回顾一下相关的基础知识: 1. **ASP.NET**:一种基于Microsoft .NET Framework的服务器端Web应用程序框架,用于构建动态网页和Web服务。 2. **Crystal Reports**:一款流行的报表设计工具,被广泛应用于各种企业级应用中,支持多种数据源并能够生成多种形式的报表。 3. **C#**:一种面向对象的编程语言,是开发ASP.NET应用程序的主要语言之一。 #### 三、技术实现步骤 接下来,我们将详细介绍如何在ASP.NET中实现水晶报表的另存为功能。 ##### 3.1 引入必要的命名空间 为了能够在代码中使用Crystal Reports的功能,首先需要引入以下命名空间: ```csharp using CrystalDecisions.CrystalReports.Engine; using CrystalDecisions.Shared; using System.Data.OleDb; using System.IO; ``` - `CrystalDecisions.CrystalReports.Engine`:提供与水晶报表引擎交互的基本类。 - `CrystalDecisions.Shared`:包含一些共享的类和接口,用于配置水晶报表的各种属性。 - `System.Data.OleDb`:用于连接和操作OLE DB数据源。 - `System.IO`:提供基本的文件输入/输出操作。 ##### 3.2 创建下拉列表供用户选择导出格式 为了方便用户选择不同的导出格式,可以通过一个下拉列表来实现: ```csharp DropDownList1.Items.Add(""); DropDownList1.Items.Add("Rich Text (RTF)"); DropDownList1.Items.Add("Portable Document (PDF)"); DropDownList1.Items.Add("MS Word (DOC)"); DropDownList1.Items.Add("MS Excel (XLS)"); DropDownList1.Items.Add("Crystal Report (RPT)"); DropDownList1.Items.Add("HTML 3.2 (HTML)"); DropDownList1.Items.Add("HTML 4.0 (HTML)"); ``` 这里定义了多个选项,包括RTF、PDF、DOC等格式。 ##### 3.3 获取数据并填充报表 接下来需要从数据库获取数据,并将其填充到报表中: ```csharp string constr = "Provider=SQLOLEDB.1;Password=sa;Persist Security Info=True;User ID=sa;Initial Catalog=dianxinkapin;Data Source=new"; string command = "select * from comeout"; OleDbConnection myConn = new OleDbConnection(constr); myConn.Open(); DataSet myDataSet = new DataSet(); OleDbDataAdapter myCommand = new OleDbDataAdapter(command, constr); myCommand.Fill(myDataSet, command); myConn.Close(); myrpt rpt1 = new myrpt(); rpt1.SetDataSource(myDataSet.Tables[0]); crptv.ReportSource = rpt1; ``` 这里的代码片段展示了如何打开数据库连接,执行SQL查询语句,并将结果集填充到一个`DataSet`对象中,最后设置报表的数据源。 ##### 3.4 设置导出路径和格式 最后一步是设置导出文件的路径以及选择导出的格式: ```csharp string ExportPath = Request.PhysicalApplicationPath + "Exported\\"; if (!Directory.Exists(ExportPath)) Directory.CreateDirectory(ExportPath); DiskFileDestinationOptions crDiskFileDestinationOptions = new DiskFileDestinationOptions(); ExportOptions crExportOptions = rpt1.ExportOptions; if (DropDownList1.SelectedItem.Text == "Rich Text (RTF)") { crDiskFileDestinationOptions.DiskFileName = ExportPath + "RichTextFormat.rtf"; crExportOptions.ExportDestinationType = ExportDestinationType.DiskFile; crExportOptions.ExportFormatType = ExportFormatType.RichText; crExportOptions.DestinationOptions = crDiskFileDestinationOptions; } else if (DropDownList1.SelectedItem.Text == "Portable Document (PDF)") { crDiskFileDestinationOptions.DiskFileName = ExportPath + "PortableDoc.pdf"; crExportOptions.DestinationOptions = crDiskFileDestinationOptions; crExportOptions.ExportDestinationType = ExportDestinationType.DiskFile; // 注意:此处的"Expor"是不完整的,应补全为"ExportFormatType.Pdf" crExportOptions.ExportFormatType = ExportFormatType.Pdf; crExportOptions.DestinationOptions = crDiskFileDestinationOptions; } ``` 这段代码根据用户的选择设置导出文件的格式和路径。需要注意的是,在设置PDF格式时,原文中的“Expor”是不完整的,应该补全为“ExportFormatType.Pdf”。 #### 四、总结 通过以上步骤,我们可以实现ASP.NET应用程序中水晶报表的另存为功能。这对于需要向用户输出多样化的报表格式是非常有用的。希望本文能够帮助初学者理解和掌握这一重要的技术要点。未来还可以进一步扩展更多的导出格式或优化现有流程,以满足更多样化的需求。
剩余12页未读,继续阅读
- 粉丝: 1840
- 资源: 33
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助