C数据交换与报表技术.ppt_第1页
C数据交换与报表技术.ppt_第2页
C数据交换与报表技术.ppt_第3页
C数据交换与报表技术.ppt_第4页
C数据交换与报表技术.ppt_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第10讲数据交换与报表技术 扩展内容 管理工程系 内容提要 使用Word与Excel显示和打印数据使用Windows组件预览和打印数据CrystalReport的使用 备注 本讲代码请在FTP上找 第7讲 rar 压缩包 课程导入 前端应用程序如何将数据送打印机打印输出分析 应用场合举例 以 田径运动会管理系统 为例 密码123456 1 田径运动会中如何生成电子报名表 填报的电子报名表 Excel文件 如何导入数据库 An Excel表格数据的访问2 田径运动会生成的比赛进程 分组编排结果 秩序册 如何打印出来 An 先送Word 进行适当编辑调整 预览后打印输出3 田径运动会中的赛中数据 比赛结果 初赛 复赛 决赛 如何打印输出 An 报表生成与打印 Windows组件或CrystalReport 实现思路 使用COM组件实现 COM ComponentObjectModel 一 Word实现数据的显示与打印 涉及知识 引用Word动态链接库 MicrosoftWord11 0ObjectLib 对象模型中Cell对象的应用 DataGridView控件的应用 Word的Application对象的应用 Word的Document对象的应用 2020 2 4 4 C 程序设计实用教程 一 Word与Excel显示和打印数据的实现 VBA编程 设计目标 2020 2 4 5 C 程序设计实用教程 设计步骤 参考代码 2020 2 4 7 C 程序设计实用教程 二 Excel实现数据的显示与打印 涉及知识 引用Excell动态链接库 MicrosoftExcel11 0ObjectLib Workbooks对象的Add方法的应用 DataGridView控件的应用 Cells对象的应用 Rows对象的应用 2020 2 4 8 C 程序设计实用教程 设计目标 设计步骤 参考代码 2020 2 4 10 C 程序设计实用教程 二 Windows组件预览和打印 涉及知识 PrintDialog控件 ShowDialog方法 PrintPreviewDialog控件PrintDocument控件DataGridView控件SqlCommand对象 ExcuteReader方法 Graphics对象 DrawString方法 设计目标 2020 2 4 11 C 程序设计实用教程 设计步骤 设计窗体分别添加PrintDialog控件 PrintViewDialog控件 PrintDocument控件编写以下事件代码 程序运行结果如图所示 2020 2 4 13 C 程序设计实用教程 设计步骤 设计窗体分别添加PrintDialog控件 PrintViewDialog控件 PrintDocument控件编写以下事件代码公共代码 SqlConnectioncnn newSqlConnection DataSource XP SQLEXPRESS AttachDbFilename D ReportBuilder database Test20081 mdf IntegratedSecurity True SqlDataAdapterda DataSetds 事件 frmPrint LoadprintDocument1 PrintPagebtnSendToWord ClickbtnQuit Click参考代码 三 CrystalReport 一 报表简介报表设计是数据库应用项目必不可少的一个环节 VS提供两种报表设计模板 1 微软报表 上图中名为 报表 或 报表向导 的模板 文件名后缀为 rdlc 用于设计在SQLServer报表服务器 MicrosoftReportingService 上发布的服务器报表 与SQLServer的版本密切相关 不讲 请参考相关资料 2 水晶报表 上图中名为 CrystalReports 的报表设计模板 文件名后缀为 rpt 集成于VS2003 VS2008版本 VS2010及以后的版本需要单独下载SAPCrystalReports versionforVisualStudio2010安装 设计 调用简单方便 通用性强 二 水晶报表基础知识 1 分类 1 从外观分 标准报表 交叉表和邮件标签 标准报表 向导包括如何选择数据源 链接表 添加字段和要使用的分组 摘要 总计 和排序字段 创建图表和选择记录等 交叉表 除了包含标准报表的设计步骤外 还包括如何将报表中的数据作为交叉表对象来显示 提供交叉表样式 参见 常见问题解答 邮件标签 向导可以帮助用户创建可以打印在任意尺寸上的报表 提供可选择的商用标签类型 可以自定义任何多列样式报表的行列布局 2 从分发形式分 嵌入式报表和非嵌入式报表 2 嵌入式报表和非嵌入式报表不同点 嵌入式报表具有与 rpt文件对应的同名包装类 直接通过代码与包装类进行交互 而不是与原始报表文件本身进行交互 非嵌入式报表则单独以 rpt文件形式存在 该报表不包含在项目内 也没有对应的报表包装类 对于嵌入式报表 系统对项目进行编译时 与其他项目资源一样 报表和其包装类都会被自动嵌入到程序集中 用户看不到被包装后的 rpt文件 对于非嵌入式报表 如果是ASP NET网站 要求该 rpt文件保存在网站根目录下 如果是Windows应用程序则要求分发后 rpt文件保存在和 exe文件相同的目录下 对于嵌入式报表 如果修改了报表内容 必须重新编译整个项目 修改非嵌入式报表不须重新编译整个项目 3 相关操作 如何将报表设置为 嵌入式报表 和 非嵌入式报表 在 解决方案资源管理器 中 水晶报表 rpt文件的 生成操作 属性默认为 嵌入的资源 即嵌入式报表 如果将其 生成操作 属性改为 无 该报表即成为 非嵌入式报表 此时需要将 复制到输出目录 属性改为 始终复制 以便在程序中能够访问到该文件 对于 非嵌入式报表 需要使用ReportDocument对象的Load方法将报表加载到ReportDocument对象模型中 然后用CrystalReportViewerApplication StartupPath对象的 ReportSource 属性将报表绑定到ReportDocument对象 如 stringreportPath Application StartupPath rpt3 rpt ReportDocumentrd newReportDocument rd Load reportPath rd SetDataSource ds Tables 0 DefaultView this crystalReportViewer1 ReportSource rd 注 Application StartupPath为 EXE文件所在位置 三 嵌入式水晶报表设计器 在嵌入式水晶报表设计器内 可以直接通过拖放方式将一个报表对象 如数据库字段或文本对象 拖动到设计器上 然后使用 属性 窗口或快捷菜单格式化该对象 可以定义报表的数据源 选择要使用的数据记录并对其进行分组 设置报表对象的格式及布局 四 报表节1 报表头 Section1 报表头节中的对象只在报表开头显示一次 一般在该节中放置希望只在整个报表开头出现的信息 2 页眉 Section2 保存在页眉中的对象在每页的顶部位置都会显示 3 详细资料 Section3 保存在详细资料中的对象在每条记录中都会显示 4 报表尾 Section4 报表尾节中的对象只在报表的结束显示一次 一般在该节中放置希望只在整个报表结尾出现的信息 5 页脚 Section5 保存在页脚中的对象在每页的底部都会显示 6 组页眉和组页脚 Section6 组页眉和组页脚中的对象分别显示在每个新组的开始位置和结束位置 五 报表数据源水晶报表数据源可以 1 直接连接到数据库 2 使用ADO Net数据集 建议尽量使用ADO Net数据集 要现在项目中创建DataSet数据集 xsd对象 使用VS的ADO NET数据集设计器 既可以从多种数据源 包括Access Oracle和SQLServer数据库 创建ADO NET数据集 也可以灵活 方便地控制报表的输出 六 水晶报表的对象模型对象模型是指构成编程模型的核心类及其周围类 分类 CrystalReportViewer对象模型ReportDocument对象模型 1 CrystalReportViewer对象模型CrystalReportViewer控件包含可用于控制该控件如何显示报表的属性和方法 以及少量的与绑定到该控件的报表进行交互的属性和方法 这些属性和方法构成了一个功能有限的CrystalReportViewer对象模型 CrystalReportViewer控件仅用于控制报表显示的形式 比如控制显示缩放比例等 而要与报表内部进行交互 则应该使用封装后的其他对象模型 即尽量不要使用CrystalReportViewer对象提供的属性和方法与报表内部进行交互 2 ReportDocument对象模型ReportDocument对象模型比CrystalReportViewer功能多 范围广 该对象模型提供了在代码中处理报表的各种能力 在VS中创建水晶报表文件 rpt 完成报表设计后 选择主菜单的 生成 生成解决方案 则系统会自动创建一个ReportDocument对象模型 在工具箱中即可以看到自动生成的与报表同名的组件 将该组件拖放到设计窗体后 即得到实例 使用该实例的属性完成对报表结构及报表内部数据的各种控制 一般不用此法 可用代码来实现 实例的属性完成对报表结构及报表内部数据的各种控制 例如 1 ReportDefinition属性获取ReportDefinition对象 该对象对应于报表设计器中的布局 2 DataDefinition属性获取DataDefinition对象 该对象对应于报表设计器中的字段资源管理器 3 SummaryInfo属性获取SummaryInfo对象 可以通过该对象设置报表主题等 例如 studentReport1 SummaryInfo ReportTitle 学生情况表 该行代码的意思是设置报表标题为 学生情况表 4 RecordSelectionFormula属性获取或设置记录选定公式 用于筛选指定的记录 例如 studentReport1 RecordSelectionFormula MyTable2 姓名 like 王 该行代码的意思是匹配MyTable2中所有姓名中包含 王 的记录 1 设计水晶报表在VS模板中 通过新建项 然后利用向导创建水晶报表 再通过嵌入式水晶报表设计器 可转换为非嵌入式 即可将 prt报表设计出来 2 显示和打印水晶报表 以下内容用案例操作代替 假如已经设计了一个水晶报表Rpt1 rpt 显示和打印该报表的步骤如下 1 添加一个窗体 例如Form1 cs 2 从工具箱中向窗体拖放一个CrystalReportViewer控件 该控件提供了显示 打印预览 打印和导出报表到Excel文档等功能 3 在Form1 cs中添加命名空间引用 以便使用ReportDocument对象模型 usingCrystalDecisions CrystalReports Engine 4 创建报表实例 例如 Rpt1rpt newRpt1 5 根据报表实例 得到对应的ReportDocument对象 例如 ReportDocumentdocument ReportDocument rpt 6 将CrystalReportViewer控件绑定到ReportDocument对象 例如 crystalReportViewer1 ReportSource document 7 利用ReportDocument对象与报表内部交互 3 不使用打印机驱动程序右击报表的任何空区域 选择 设计 打印机设置 无打印机 然后单击 确定 按钮即可 八 案例注 源代码在 常见问题解答 下找 水晶报表案例 案例1 设计一个水晶报表 输出MyDatabase数据库中MyTable2的所有数据 具体操作可看视频 实现步骤 1 新建 Windows窗体应用程序 项目 2 右击 解决方案资源管理器 中的项目名称 选择 属性 1 在 应用程序 标签下将目标框架改为 NETFramework4 2 在 设置 标签中 类型 选择 连接字符串 在 值 中连接你的数据库 关闭 这样配置了App Config文件 即本项目的数据库连接 3 打开App Config文件 将name字段的值改为 MyCon 改为保存后关闭该文件 3 创建数据集 1 右键单击项目名称 添加 新建项 选择 数据集 命名为 DS 确定 2 在 服务器资源管理器 中创建一个到你的数据库的连接 3 将你的连接下用到的表拖入DS窗体中 4 保存并关闭DS 4 新建一个报表 右键单击项目名称 添加 新建项 选择 CrystalReports 命名为 Rpt1 单击 添加 选择 作为空白报表 和 标准 确定 5 在左侧的 字段资源管理器 下右键单击 数据库字段 选择 数据库专家 展开 项目数据 ADO NET数据集 将用到的表添加到右侧列表框中 确定 如需要在表中建立链接 像在数据库中创建关系一样操作 确定 6 设计报表 展开 字段资源管理器 中的 数据库字段 下的表 将需要的字段拖入报表中相应位置 设置报表中相应控件的值 完成你所需要的报表设计 注意ITextObject和IFieldObject的区别 前者相当于数据库中的某个字段 后者其实是一文本框控件 右键单击可设置他的值 报表的详细设计可参考相关资料 保存并关闭 Rpt1 rpt 7 在 解决方案资源管理器 中打开Form1窗体 将 工具箱 中的 报表设计 下的CrystalReportView控件拖入窗体中 8 编写代码 1 引用配置管理器 在 解决方案资源管理器 右击 引用 添加引用 在 NET 标签下选择 System Configuration 2 打开窗体的Load事件 在代码窗体的顶部加入下面的引用usingSystem Data SqlClient usingCrystalDecisions CrystalReports Engine usingSystem Configuration 3 在窗体的Load事件中加入如下代码 privatevoidForm1 Load objectsender EventArgse 嵌入式水晶报表SqlConnectioncon newSqlConnection con ConnectionString ConfigurationManager ConnectionStrings MyCon ConnectionString ToString SqlDataAdapterda newSqlDataAdapter select fromMytable1 con DataSetds newDataSet da Fill ds Mytable1 Rpt1rpt newRpt1 rpt SetDataSource ds Tables Mytable1 this crystalReportViewer1 ReportSource r

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论