CrystalReport水晶报表详细教程
水晶报表实验
四、 • 过使用连接共享以及限制记录集合的大小,可以使 实验作业 用
• 报表性能最大化。
5
三、实验内容及步骤
一、 实验目的
•
3.2 Pull模式的使用
• 首先创建rpt文件,并使用水晶报表设 二、 计接口设置一些必须的数据连接。
实验环境
• 拖放一个CrystalReportViewer控件至 三、 aspx 页面,设置它的属性指定我们上 实验步骤 一步创建的.rpt文件。
实验目的
•
新建Windows项目
二、 • 添加CrystalReportViewer 控件
• 实验环境 添加“选择报表”按钮
• 添加按钮响应事件
三、
实验步骤
四、 实验作业
3
三、实验内容及步骤
一、 • 实验目的 •
• • 二、 实验环境 • •
三、 • 实验步骤
•
• 四、 • 实验作业
2Web窗体中水晶报表的使用 结构 – 客户端: 客户端仅需要一个可以访问嵌入aspx页面报表的游览器就可以了
10
三、实验内容及步骤
一、 实验目的
•
3.3 使用Push模式
• 设计一个DataSet
二、 • 创建一个.rpt文件同时将其指定给上一步建 实验环境 立的DataSet。
• 在aspx页面中拖放一个CrystalReportViewer
三、 实验步骤
控件同时将其与前面的rpt文件建立联系。
• 在代码中访问数据库并把数据存入DataSet
四、 • 调用DataBind方法。
实验作业
11
三、实验内容及步骤
水晶报表CrystalReports培训教程(可编辑)
水晶报表CrystalReports培训教程(可编辑)水晶报表CrystalReports培训教程Crystal Reports 用户指南Crystal Reports 11专利 Business Objects 拥有以下美国专利,涵盖Business Objects 提供和销售的产品:5,555,403、6,247,008 B1、6,578,027 B2、6,490,593 和 6,289,352。
商标Business Objects、Business Objects 徽标、Crystal Reports 和Crystal Enterprise 是Business Objects SA 或其附属公司在美国和其他国家 / 地区的商标或注册商标。
此处提到的所有其他名称可能是各自所有者的商标。
版权所有 Copyright C 2004 Business Objects。
保留所有权利。
目录第1 章 Crystal Reports 11 简介1.1 关于 Crystal Reports211.2 关于本指南221.2.1联机帮助.221.2.2Business Objects 信息资源..22第2 章 Crystal Reports 11 中的新功能2.1 介绍 232.2 强大的报表创制功能.232.3 提高的实用性.242.4 扩展的应用程序开发功能 252.4.1一般说明.252.4.2报表应用程序服务器 RAS262.4.3报表设计器组件 RDC.272.4.4Crystal Reports .NET.27 2.5 与 BusinessObjects Enterprise 11 的集成.28 第3 章安装 Crystal Reports 113.1 安装 Crystal Reports 1130 3.2 安装要求303.3 在本地计算机上安装 Crystal Reports31 3.4 创建安装点并从网络服务器进行安装..32 3.4.1创建 Crystal Reports 的安装点.323.4.2从网络安装 Crystal Reports.33 34 Crystal Reports 用户指南3.5 自定义安装343.6 运行无提示安装..353.7 升级 Crystal Reports 组件37第4 章快速开始4.1 学习如何使用 Crystal Reports39 4.1.1示例数据 -- Xtreme.mdb39 4.2 报表创建向导.394.2.1标准404.2.2交叉表 404.2.3邮件标签. 40 4.2.4OLAP40 4.3 新用户快速入门..41 4.3.1开始之前.41 4.3.2创建报表. 42 4.3.3记录选定. 52 4.3.4分组及排序55 4.3.5完成报表. 58 4.4 高级用户快速开始59 第5 章报表设计概念 5.1 基本报表设计.64 5.2 决定报表内容.64 5.2.1说明目的. 64 5.2.2确定报表布局 65 5.2.3查找数据. 66 5.2.4操作数据. 67 5.2.5确定打印区域特性68 5.3 设计纸张原型.69 第6 章建立报表简介 6.1 报表创建选项.70 6.1.1报表创建向导 706.1.2另一个报表706.1.3新建报表. 70目录 5 6.2 选择数据源和数据库字段 71 6.2.1数据库专家716.2.2字段资源管理器. 73 6.3 关于报表设计环境74 6.3.1“设计”选项卡746.3.2“预览”选项卡776.3.36>HTML 预览选项卡 80 6.4 创建新报表 816.4.1选择数据源816.4.2添加表 826.4.3链接多个表826.4.4将数据放在报表上84 6.4.5格式化数据906.4.6记录选定. 906.4.7分组、排序和汇总数据. 90 6.4.8对汇总数据使用深化选项91 6.4.9使用缩放功能 926.4.10插入页眉和页脚. 92 6.4.11将标题页添加到报表中. 93 6.4.12将汇总信息添加到报表中936.5 浏览报表和处理多个报表 946.5.1报表资源管理器. 946.5.2工作台 966.5.3依赖项检查器 976.5.4打开和停靠资源管理器. 98 6.6 超出基本报表. 99第 7 章 BusinessObjects Enterprise 储备库 7.1 BusinessObjects Enterprise 储备库是什么?. 1007.1.1工作流程 1017.2 访问 BusinessObjects Enterprise 储备库. 1017.2.1工具栏1027.2.2Enterprise 项文件夹. 1036 Crystal Reports 用户指南7.3 在储备库中添加文件夹.1047.4 在储备库中添加项目1047.4.1添加文本对象或位图图像. 105 7.4.2添加自定义函数 1057.4.3添加命令 1067.5 在报表中使用储备库对象..106 7.5.1在报表中添加文本对象或位图图像106 7.5.2在报表中添加自定义函数. 107 7.5.3在报表中添加命令. 1077.5.4将值列表添加到参数中 1087.6 修改储备库中的对象1087.7 在报表中更新连接的储备库对象..109 7.8 从储备库中删除项目1097.9 在储备库中使用“撤销”命令.110 第8 章设计优化的 Web 报表8.1 概述..1118.2 通过 BusinessObjects Enterprise 缩放112 8.2.1BusinessObjects Enterprise 中日期函数的求值时间 1138.3 作出正确的设计选择1148.3.1使用更快的报表格式1148.3.2在实时数据和已保存数据之间选择115 8.3.3设计汇总报表1168.3.4慎用子报表. 1178.3.5有效地使用其他设计元素. 118 8.3.6设计报表以昀大程度地利用数据共享 118 8.4 优化您的制表环境..1198.4.1选择昀快的数据库和连接. 119 8.4.2使用表索引. 1198.4.3改进表链接选择 1208.4.4使用线程安全数据库驱动程序 121 8.4.5使用存储过程进行更快的处理121目录 7 8.5 使用增强的记录选定公式1228.5.1下推记录选定 - 示例 1228.5.2记录选定性能提示. 1238.5.3编写高效记录选定公式的策略 124 8.5.4将参数字段合并到记录选定公式中125 8.5.5适时使用 SQL 表达式. 127 8.6 改进分组、排序和总计. 128 8.6.1在服务器上执行分组1288.6.2在服务器上分组的好处 - 示例. 128 8.6.3将 SQL 表达式用于分组、排序和总计129 8.6.4将 SQL 表达式用于 Case 逻辑130 8.6.5在可能的位置插入汇总和运行总计字段. 130 第 9 章记录选定9.1 选择记录. 1319.1.1使用“选择专家”. 1329.1.2使用公式 1339.1.3“选择专家”和“公式编辑器”的相互作用 1349.2 使用公式模板 1359.2.1记录选定公式模板. 1359.3 将记录选定下推到数据库服务器137 9.4 记录选定公式疑难解答. 137 9.4.1修正未生成数据的选定 139第 10 章排序、分组及总计10.1数据排序. 14110.1.1理解排序选项14110.1.2单一或多个字段排序14210.2将数据分组14410.2.1创建自定义组14510.2.2有条件地对组进行排序 146 10.2.3将组内记录排序 14710.2.4组选定1488 Crystal Reports 用户指南 10.2.5按间隔将数据分组15110.2.6根据公司名称的第一个字母分组 153 10.2.7分层次对数据分组 15410.2.8编辑组. 15910.3汇总分组的数据.16010.3.1根据汇总值对组排序. 161 10.3.2选择昀前或昀后 N 个组或百分比161 10.3.3有条件地选择处在昀前或昀后的组或百分比16310.4小计..16410.4.1数据小计16410.4.2扩展价格并小计扩展. 165 10.5百分比16610.5.1计算百分比 16610.6组页眉16710.6.1创建组页眉 167 10.6.2取消组页眉 171 10.6.3深化组页眉 171 第11章运行总计11.1了解运行总计17211.1.1运行总计如何工作 172 11.2创建运行总计17311.2.1在列表中创建运行总计173 11.2.2为组创建运行总计 174 11.2.3创建条件运行总计 175 11.2.4在一对多链接关系中创建运行总计. 17611.3使用公式创建运行总计.178 第12章多节报表12.1关于节18012.2使用节18012.2.1插入节. 180目录 9 12.2.2删除节18112.2.3移动节18112.2.4合并两个相关节 182 12.3拆分并调整节大小183 12.3.1拆分节18312.3.2调整节大小. 18312.4在报表中使用多个节 184 12.4.1防止可变长度的对象相互覆盖 18512.4.2当字段为空时消除空白行. 185 12.4.3有条件地添加空白行186 12.5套用信函. 18712.5.1使用文本对象18712.5.2使用文本对象创建套用信函189 12.5.3在套用信函内打印条件消息193 第 13 章格式化13.1格式化概念19513.2使用模板. 19513.2.1应用模板 19513.2.2删除应用的模板 19613.2.3重新应用上次选定的模板. 197 13.2.4使用“模板字段对象” 197 13.3使用报表设计环境19813.3.1设计解决方案19813.3.2节特性19913.3.3使对象延伸到后续节199 13.3.4预先打印好的窗体. 201 13.3.5多列. 20113.3.6隐藏报表节. 20213.3.7隐藏报表对象20213.3.8放置基于文本的对象204 13.3.9放置多行、基于文本的对象20613.3.10从文件导入基于文本的对象. 20710 Crystal Reports 用户指南13.3.11基于文本的对象间的间距207 13.3.12溢出字段表示法. 212 13.3.13选择多个对象 21313.3.14自由格式位置 21313.3.15垂直位置. 21513.3.16插入字符间距和行间距. 216 13.3.17设置小数字体大小21613.3.18TrueType 字体21713.3.19页边距 21713.3.20默认打印机21813.3.21打印机驱动程序. 219 13.4格式化属性..22013.5使用绝对格式化.22013.5.1向字段添加边框、颜色和阴影220 13.5.2将报表、节、区域或对象设置为只读221 13.5.3锁定对象的大小和位置222 13.5.4更改默认字段格式 222 13.5.5添加和编辑行. 22413.5.6添加和编辑框. 224 13.5.7向报表添加形状225 13.5.8使用常规计帐格式 226 13.5.9在横排页面上重复报表对象. 227 13.5.10在行间使用空白区域228 13.6使用条件格式化.229 13.6.1条件开或关属性230 13.6.2条件特性属性. 230 13.6.3有条件地更改字体 232 13.6.4有条件地更改 X 位置 232 13.6.5在第一页之后创建页脚233 13.6.6使用“突出显示专家”234 13.6.7撤消 /恢复活动237 13.7使用格式刷..237目录 11 第 14 章图表14.1绘制图表概念 23914.1.1绘制图表概述23914.1.2图表布局 24014.1.3图表类型 24014.1.4在哪里放置图表 243 14.1.5使用图表深化24314.1.6使用图例深化24314.2创建图表. 24414.2.1在详细资料或公式字段上绘制图表 (高级布局)244 14.2.2在汇总或小计字段上绘制图表 (分组布局) 246 14.2.3在交叉表汇总上绘制图表 (交叉表布局)247 14.2.4在 OLAP 多维数据集上绘制图表 (OLAP 布局) 248 14.3使用图表. 24914.3.1使用“图表专家”编辑图表. 24914.3.2使用“图表选项”菜单项编辑图表. 249 14.3.3使用其他菜单项编辑图表. 25014.3.4在条形图和折线图中使用缩放功能251 14.3.5自动排列图表25114.3.6设置统计图格式 25214.3.7在图表上使用延伸功能 253第 15 章地图功能15.1地图功能的概念. 25415.1.1地图功能概述25415.1.2地图布局 25415.1.3地图类型 25515.1.4地图放置在何处 25715.1.5使用地图深化25715.2创建地图. 25815.2.1基于详细资料字段制作地图(“高级”布局). 25815.2.2基于组字段制作地图(“组”布局) 260 15.2.3基于交叉表汇总制作地图(“交叉表”布局). 26115.2.4基于 OLAP 多维数据集制作地图 (OLAP 布局) 26312 CrystalReports 用户指南15.3使用地图.26415.3.1使用“地图专家”编辑地图. 264 15.3.2更改地图标题. 26415.3.3更改地图类型. 26515.3.4更改地图层 26515.3.5解决数据不匹配26615.3.6更改地理地图. 26715.3.7放大和缩小地图26715.3.8平移地图26815.3.9地图居中26815.3.10隐藏和显示“地图导航器” 268 15.3.11设置地图格式 26915.3.12对地图使用延伸功能 269 第16章 OLE16.1OLE 概述.27016.1.1OLE 术语27016.1.2OLE 对象的类型27116.1.3常规 OLE 注意事项27116.2将 OLE 对象插入报表..272 16.3OLE 对象在报表中如何表示273 16.4编辑报表中的 OLE 对象273 16.4.1现场编辑27316.4.2动态 OLE 菜单命令27316.4.3OLE 和“插入图片”命令 274 16.5处理静态 OLE 对象.27416.6处理嵌入和链接的对象.276 16.6.1嵌入对象27616.6.2链接对象277第17章交叉表对象17.1什么是交叉表对象?279目录 13 17.2交叉表示例28017.2.1订单数据的报表 - 未排序 /未分组. 280 17.2.2订单数据的报表 - 按地区分组281 17.2.3订单数据的报表 - 按产品分组281 17.2.4订单数据的报表 - 按地区和产品分组282 17.2.5交叉表对象中的订单数据. 283 17.3创建交叉表报表. 28417.4使用交叉表29017.4.1以百分比显示值 29017.4.2缩写大的汇总字段. 29117.4.3自定义行 /列标签. 291 17.4.4在交叉表中使用运行总计. 29217.4.5打印跨越多页的“交叉表”293 17.5设置交叉表格式. 29317.5.1更改交叉表单元格的宽度、高度和对齐方式 29417.5.2设置整行 /整列的背景颜色的格式294 17.5.3设置个别字段的格式294 17.5.4一次设置若干字段的格式. 295 17.5.5取消“交叉表”数据. 29517.5.6水平显示汇总字段. 296 第 18 章构建查询18.1连接到 Universe 297 18.2为查询定义数据选定区域297 18.2.1快速引用对象29818.3编辑现有查询 29918.4查看查询后面的 SQL 300 18.5查询筛选器和提示30018.5.1创建查询筛选器 30018.5.2构建提示 30118.5.3合并查询筛选器和提示 302 18.5.4创建高级查询筛选器303 18.5.5命名高级筛选器 30514 Crystal Reports 用户指南18.5.6合并高级查询筛选器. 306 18.5.7使用“和”或“或”合并查询筛选器. 30818.5.8编辑和删除查询筛选器308 18.5.9查询筛选器运算符的快速参考309 第19章创建和更新 OLAP 报表19.1用创建 OLAP 报表 Crystal Reports.31119.1.1OLAP 网格对象 31119.2创建 OLAP 报表.31219.2.1指定数据源 31219.2.2定义网格结构. 31219.2.3设置切片维度并指定网格数目314 19.2.4应用预定义样式31519.2.5插入图表31619.3更新 OLAP 报表.31619.4格式化 OLAP 网格中的数据317 19.4.1更改维度的背景颜色. 31819.4.2创建维度的别名31919.4.3格式化网格线. 31919.4.4标注维度31919.5更改 OLAP 数据的视图.320 19.6对 OLAP 网格数据进行排序和筛选321 19.6.1对 OLAP 网格中的数据进行排序 32219.6.2对 OLAP 网格中的数据进行筛选 32319.7向 OLAP 网格添加计算.324 第20章打印、导出和查看报表 20.1分发报表.32520.1.1打印报表32520.1.2传真报表32520.1.3导出报表32620.1.4使用 Web 文件夹. 334 20.1.5使用 Enterprise 文件夹 335目录 1520.2查看报表. 33720.2.1什么是报表部件?. 338 20.2.2什么是导航?33820.2.3“报表部件深化”选项341 20.2.4“其他报表对象”选项 343 20.2.5查看器中显示的超级链接. 347 20.3使用智能标记 349第 21 章报表警报21.1关于报表警报 35121.2使用报表警报 35121.2.1创建报表警报35121.2.2编辑报表警报35321.2.3删除报表警报35321.2.4查看报表警报35421.2.5在公式中引用报表警报 355 第 22 章使用公式22.1公式概述. 35622.1.1公式的典型用途 356 22.2公式组件和语法. 357 22.2.1公式组件 35722.2.2公式语法 35822.3公式中的用户函数库 359 22.4指定公式. 36022.4.1使用公式工作室361 22.4.2使用公式编辑器 362 22.5创建与修改公式. 363 22.5.1创建公式并将其插入到报表中 363 22.5.2在“公式专家”中创建公式. 364 22.5.3编辑公式 36522.5.4搜索和替换文本 366 22.5.5从联机帮助复制公式366 22.5.6将公式从一个报表复制到另一个报表 36716 Crystal Reports 用户指南22.6删除公式.36822.6.1从报表删除工作公式. 36822.6.2删除公式规范. 36822.7调试公式.36922.7.1调试求值时间错误 369 22.7.2调试教程369第23章参数字段和提示23.1参数和提示概述.37423.1.1参数字段注意事项 374 23.1.2提示考虑因素. 37523.2了解动态提示37523.3了解值列表..37823.3.1值列表类型 37823.3.2确定要使用的值列表类型 380 23.3.3值列表和提示组的对比381 23.4创建带有静态提示的参数..381 23.5创建带有动态提示的参数..384 23.6创建带级联值列表的参数..386 23.7使用值列表..38823.7.1在报表中共享公共值列表 388 23.7.2使用不同的值字段和说明字段389 23.7.3将命令对象用作值列表的数据源 390 23.7.4空值处理39023.8有关提示的昀佳做法39123.8.1不受控报表 39123.8.2受控报表39123.8.3将不受控报表转换为受控报表392 23.8.4部署带有动态提示的受控报表392 23.9删除参数字段39323.10响应参数字段提示.39423.10.1第一次预览报表. 39423.10.2刷新报表数据 394目录 1723.11高级参数功能39523.11.1创建具有多个提示值的参数. 395 23.11.2使用参数字段应用条件格式设置 396 23.11.3使用参数字段创建报表标题. 396 23.11.4指定单个值或范围值. 397 23.11.5将参数包含在公式中. 398 23.11.6使用参数字段定义排序顺序. 399 23.11.7使用编辑掩码定义输入类型和格式. 400 第 24 章子报表24.1什么是子报表?. 40124.1.1未链接的子报表与链接的子报表. 401 24.1.2子报表链接如何工作40224.1.3数据库链接与一对多情况下的子报表 403 24.2插入子报表40324.2.1预览子报表. 40424.2.2将子报表另存为主报表 405 24.2.3更新子报表. 40524.3将子报表链接到主报表内的数据406 24.3.1在不修改选定公式的情况下将子报表链接到主报表 40724.4通过使用子报表组合不相关的报表 407 24.4.1组合两个或更多不相关的报表 408 24.5对无法链接的数据使用子报表. 408 24.5.1与公式字段进行相互链接. 409 24.5.2链接没有索引的表. 40924.6创建按需要显示子报表. 410 24.6.1向按需要显示子报表中添加标题. 410 24.7在单个报表中显示相同数据的不同视图411 第 25 章了解数据库25.1数据库概述41225.1.1关系数据库基础知识41225.1.2别名. 41318 Crystal Reports 用户指南 25.1.3定位文件41425.1.4索引表. 41525.2链接表41725.2.1链接自和链接到41825.2.2链接关系41825.2.3一对多链接中的性能考虑 418 25.2.4数据文件考虑. 42125.2.5SQL 数据库考虑42225.2.6对所有报表的性能考虑42325.2.7“数据库专家”的“链接”选项卡. 425 25.2.8链接索引表 42525.2.9链接处理顺序. 42625.2.10链接选项. 42625.3使用 SQL 和 SQL 数据库..436 25.3.1什么是 SQL?. 43625.3.2SQL DBMS..439 25.3.3Crystal Reports 如何使用 SQL?. 44025.3.4SQL 语言44025.4服务器端处理44225.4.1服务器端分组如何影响 SQL 查询444 25.5映射数据库字段.44525.5.1关于映射字段对话框. 445 25.5.2重新映射进程. 44625.5.3重新映射已更改的数据库字段447 25.6已保存数据的索引..44825.6.1报表索引如何工作 44825.6.2使用“已保存数据的索引”的考虑因素 44925.6.3选择正确的字段进行索引 449 25.7Crystal Reports 中的 Unicode 支持450 25.8有关更多信息450目录 19附录 A 报表处理模型A.1 概述451A.1.1什么是“传递”?. 451A.1.2第 1 次预传递. 451A.1.3第 1 次传递 451A.1.4第 2 次预传递. 452A.1.5第 2 次传递 452A.1.6第 3 次传递 452A.1.7多次传递建立报表流程图. 453 附录 B Crystal Reports 错误消息B.1 Drive:\filename.extension454B.2 Drive:\test.rpt 454 B.3 加载数据库连接器失败. 455B.4 未能打开该连接。
WinForm中使用CrystalReport水晶报表——基础,分组统计,自定义数据源
WinForm中使⽤CrystalReport⽔晶报表——基础,分组统计,⾃定义数据源开篇本篇⽂章主要是帮助刚开始接触CrystalReport报表的新⼿提供⼀个循序渐进的教程。
该教程主要分为三个部分1)CrystalReport的基本使⽤⽅法;2)使⽤CrystalReport对数据进⾏分组求和;3)CrystalReport如何使⽤⾃定义的数据源(如内存中的DataTable表)三个⽅⾯来写。
相信看懂了这个教程之后,对于⾃⼰项⽬中的实现报表这⼀功能,应该就能轻松的应对了。
⼀ CrystalReport模板的制作及显⽰A模板的制作1、右键【项⽬属性】添加⼀个⽔晶报表(在vs中需要安装CrystalReport模块,不同vs版本下载不同的CrystalReport版本:CrystalReport下载链接:)2、添加报表的设计界⾯如下:⼀个报表包括(报表头,页眉,详细资料,报表尾,页眉)5个基本部分。
3、现在我们需要给新建的报表添加⼀个数据源,右键左边的【数据库字段】选择相应的数据源,进⾏绑定。
我这⾥选择的是sqlserver数据库。
4、输⼊数据库的登录信息,然后选择需要绑定的数据库表,除了绑定数据表之外,还可以绑定sql语句查询的结果,以及存储过程和视图,下⾯给出绑定数据库表格,和绑定sql查询。
1)绑定数据库表格2)点击连接下⾯的【添加命令】绑定sql语句。
5、绑定数据库之后在报表左侧的【字段管理器】中就会出现该表以及sql查询结果的的相应表头字段。
6、把相应的字段在报表视图中进⾏布局。
到此⽔晶报表的模板已经做好了。
注意:页眉中的userName,courseName,score是可以更改。
B模板的显⽰1、⾸先在窗体上拖⼀个CrystalReportView控件作为显⽰报表模板。
2、在form_load事件⾥⾯写如下代码:CrystalReport1 cr = new CrystalReport1();//实例化⼀个报表模板this.crystalReportViewer1.ReportSource = cr;//为报表显⽰控件设置数据源3、运⾏报表设计点丑,但是你可以根基⾃⼰的风格进⾏排版设计,如字体,⼤⼩,颜⾊等啦。
水晶报表CryStalReport简单应用精选全文
可编辑修改精选全文完整版水晶报表CryStalReport使用教程(动态数据绑定)
第一步:添加水晶报表报表
1、右击鼠标,选择水晶报表
2、选择作为空白报表
第二步:添加数据集DataSet 1、右击鼠标,选择数据集
2、单击工具箱,拖拽一个DataTable到右边
3、根据数据表设计好DataTable
第三步:设计报表
1、从工具箱拖拽一个文本对象到页眉,并输入文字
2、选择字段资源管理器,右击数据库字段,选择数据库专家
3、从我的连接中选择MYDataSet到右边的选定的表
4、从左边的数据库字段中拖拽一些需要的字段到右边详细资料
5、展开特殊字段,拖拽一个第N页共M页,到页脚
第四步:添加页面
在页面中添加一个CryStalReportViewer控件
第五步、双击页面,编写数据绑定代码
protected void Page_Load(object sender, EventArgs e)
{
BLL.QueryAllStuService Qas = new BLL.QueryAllStuService();
MyCrystalReport Mcr = new MyCrystalReport();
Mcr.SetDataSource(Qas.QueryAllStudents());
CrystalReportViewer1.ReportSource = Mcr;
}
单击F5,运行效果如下:。
vb net数据库使用技巧——制作水晶报表Crystal Report
建立水晶报表的过程:▪ 1 设置DataSet数据源,建立数据集▪可以根据向导制作,过程简单。
▪ 2 建立报表▪使用上面的DataSet数据源,可以采用向导或手工,操作基本相同。
▪ 3 显示报表▪建立一个窗体(在此窗体中显示报表),▪窗体中添加crystalReportViewer控件(此控件用于显示具体的报表)▪在报表显示前指定一个DATESET作为数据源为报表的各个字段赋值▪把此报表指定给crystalReportViewer控件数据表说明[货物信息表](1)添加数据集(2)添加控件前的设置,如此图的dsn 设置点[新建连接]按钮后弹出界面(4)回到上一个界面后,点下一步请选择使用SQL语句,否则将一次多出四个存储过程,相对来说比较混乱。
而我们这里用的数据集仅目的是为了建立报表的时候可以设置报表字段。
(5)继续点下一步(6)点查询生成器,添加需要的数据库表(7)可以随意设置,自动会生成SQL语句,也可以点[执行查询]察看效果(8)点确定回到向导设置界面出现SQL语句(9)下一步保持默认(10)点完成(11)得到的数据集右键点配置,可以得到SQL 语句同时可以修改SQL点预览数据可以察看SQL语句执行结果(12)重点:这里的数据集对象是为了进行报表的设置,也就是说在报表设计的时候可以直接指定哪个位置显示什么字段,而字段的可以从上面做的数据集中直接拖出,比较方便。
如果报表显示的时候应该动态的为此报表提供查询出的数据集,提供数据集的方法依然是通过代码执行存储过程或者SQL语句来完成的ADAPTER对象的FILL方法。
因此我们拷贝上面查询分析器生成的SQL语句制作一个存储过程二)建立报表自动会弹出,选择报表向导拖动我们刚才设置的数据集到右边选择字段下一步这里我们不需要分组,所以不用设置下一步我们不需要筛选,如果需要筛选,右面图是个筛选例子最后设置报表风格,右面可以清楚显示预览效果,自己选择,建议标准符合常规建立的新报表如下设置页眉(1)报表页眉是每个报表的标题部分,默认状态时不显示,点击右键之后选择变为可显示状态可以拖动下面的页眉部分,来调整报表页眉的大小工具中拖个文本对象到报表页眉写字并设置大小拖个温州大学图标到界面上预览报表这种效果是正常的,数据很随意报表一般都有表格把文字隔开,如上图报表效果不美观,需要添加表格线注意可疑在页眉中标题的上下画2条线,而在详细资料部分只需文字下面绘制一条线,原因是报表页眉和页脚都是出现一次的地方,绘制的效果是编辑的效果,而详细资料部分是个模板位置,仅需要设置一行就可以产生无数行效果,而每一行都有下画线,这样上行的下画线将成为下行的上画线。
水晶报表(使用详细过程及注意事项)
JA V A水晶报表使用过程及注意事项一、第一阶段1.软件安装:Crystal Reports XI + Eclipse2.首先打开Eclipse,新建报表模板:new→other→ Crystal Reports web Project,姑且命名为Pen 注:此时可能会显示错误,不要紧,请不要理会。
3.在Java Resources:src下面的默认包中创建欲使用的JavaBean,如:Pen.java注意:一定要保存4.右键点击JavaBean下面的,选择Crystal Report→ add to a new Crystal Report,并自行创建名称注:名称的创建是有用处的,这便是生成模板的过程5.这时选择左下角的Layout,即可看见可视化编辑窗口,在右侧的Field Explorer中可选择所创建的虚拟字段(所创建的JavaBean中的属性)放入窗口中。
二、第二阶段6.打开MyEclipse,创建web project,命名为PenDemo。
7.复制Pen(Crystal Reports web Project中)项目src文件夹下的com文件夹、CRConfig.xml和log4j.properties文件到PenDemo(MyEclipse中的正常web project)中相应的目录下。
注:这时你会看见有错误,下一步解决8.复制Pen(Crystal Reports web Project中)项目WEB-INF下的全部内容到PenDemo(MyEclipse 中的正常web project)到相应的目录下。
注:请刷新PenDemo项目你会发现错误消失9.请将PenDemo(MyEclipse中的正常web project)src下面包中的生成的report模板cut至webroot 下。
10.copy资料包中的除了web-inf以外的所有文件(夹)至项目工程PenDemo相应的目录下注:刷新又出现错误了,不要紧,这是因为我们本末倒置的缘故,具体原因自己思考11.为了节省时间,我们可以copy资料包中的相关对数据操作的业务类来直接用,首先copy资料包中的DataSource.java至PenDemo项目中,存放的包及路径自己定。
CrystalReport水晶报表详细教程
有条理的表示数据记录 20 9500 分析员
经理 销售员 30 40
部门 20 的总薪金是 19500 更容易汇总所需的信息 12000 7600 部门 30 的总薪金是 12000
David Blake
Scott William
销售员
销售员
40
40
6500ቤተ መጻሕፍቲ ባይዱ
8500
部门 40 的总薪金是 22700
水晶报表支持 数据集。 可以使用各种数据源创建 数据集。 使用 数据集创建报表需遵循以下步骤。
生成一个 数据集 对象。 连接至 数据集 对象。 数据集设计器用来创建只包含数据结构而不包含实际数 据的 DataSet 对象。 要在报表上显示实际数据,可将数据库中的数据传递至 对象模型中的 DataSet 对象中。 将这个已填入数据的 DataSet 传递至报表引擎。 最后,将报表对象绑定至 WinForms 中相应水晶报表查看器上。
22
总结
水晶报表是用于创建报表的标准工具 水晶报表的优点包括: 运行时自定义 报表查看器与其他控件之间的交互 报表作为 Web 服务 开发 Windows 应用程序时,可以使用 CrystalReportViewer控件将报表绑定到 WinForms窗体上 数据集设计器用于创建只包含数据结构而不包 含实际数据的数据集对象 水晶报表中的选择公式可用于计算字段和汇总,确定如何 显示报表的输出结果
21
水晶报表应用程序示例 8-8
使用报表设计器可以将图表插入到水晶报表中 在水晶报表中可使用选择公式筛选记录 可在窗体的 Load 事件中指定选择公式
private void frmBooksReport_Load(object sender, System.EventArgs e) { this.crvBooksReportViewer.SelectionFormula= "{Book.Price} >= 70"; this.crvBooksReportViewer.RefreshReport(); }
水晶报表初级使用——直接与数据库连接
水晶报表初级使用——直接与数据库连接
1、使用步骤
添加报表控件,在工具箱中,拖拽CrystalReportViewer到Default.aspx中。
如下图。
选择数据源,选择数据表源的下拉列表框,在选择新建报表源...,如下图。
新建报表源,当点击新建报表源,是出现对话框,如下图。
给报表控件指定名称,并为报表控件指定报表文件。
由于不存在报表文件,需要新建报表文件。
点击下拉列表,选择新建报表。
出现如下对话框。
创建新报表,给新报表命名。
确定,再确定
出现的对话框,使用报表向导,使用标准。
确定,出现如下对话框。
选择数据源,如下图。
出现如下对话框。
选择如下数据源,如图。
下一步,出现对话框,选择服务器,选择数据库,按情况勾选集成安全项,如下图。
注意:需确保服务器的服务已经打开。
查看方法:开始》所有程序》Microsoft SQL Server2008》配置工具》SQL Server 配置管理器,进入界面,如下图。
查看红框部分状态。
出现对话框,添加表,如下图。
点击下一步,出现对话框,选择要显示的字段,此处全选,如下图。
下一步,出现分组依据对话框,忽略,点击下一步,再点下一步,点击完成。
进入界面,如下图。
编辑数据表的显示样式。
忽略。
点击主报表预览。
如下图
保存,浏览网页如下图,在Toolbar工具条中,可实现报表的导出和打印功能。
同时可不显示工具条,将True改为Faulse设置如下图。
水晶报表教程
水晶报表是一个功能强大的报表工具,现在已经被Microsoft Visual Studio 2005(下文以VS2005简称)集成在一起。
喜欢水晶报表的朋友可以方便使用了。
我把水晶报表在vs2005的使用方法总结一下,供大家参考。
首先介绍一下我用的软件环境:Microsoft Visual Studio 2005;Microsoft SQL Server 2005【数据用例】服务器:SQLEXPRESS数据库名:Test数据库表:T【说明】水晶报表在应用时分两种方法,分别是拉模式(PULL)、推模式(PUSH)。
拉模式:在水晶报表生成时的数据源是从水晶报表文件中的SQL语句从数据库中提取的,在编程时不用重写SQL语句,但要加上登录信息(具体方法,后面介绍)。
推模式:在水晶报表生成时的数据源,是用编程时重写水晶报表中SQL 语句而生成的dataset对像。
也就是说,推模式是用dataset组装水晶报表。
水晶报表组件介绍。
水晶报表在VS2005中有两种组件,在WEB项目是分别是CrystalReportSource,CrystalReportViewer。
在FORM项目里是分别是crystalReport,CrystalReportViewer。
CrystalReportSource,crystalReport是水晶报表的数据提供者;CrystalReportViewer是水晶报表的浏览器。
另外还要介绍一下水的报表的文件是以rpt为扩展名的文件,该文件可以用VS2005生成。
下面分别介绍具体操作方法:拉模式(PULL):在拉模式中如要在水晶报表中的SQL语句加上条件参数时要用{?参数名}方式给出。
例:“Select T1, T2, T3 FROM T Where T1=''{?parm}''” parm就是参数名以下例子中所用到的水晶报表文件中使用的SQL语句是“Select T1, T2, T3 FROM T Where T1=''{?parm}''” parm就是参数名。
水晶报表制作说明
BS报表制作向导一、制作报表样式1.新建水晶报表样式打开Visual Studio或水晶报表工具,点击菜单条中的文件—新建项目,在弹出的页面中选择其他语言-Visual J#-Crystal Reports应用程序修改名称和位置后,点击确定按钮,再在弹出的页面中选择作为空白报表,再点击确定按钮;如果已有一个水晶报表,要在现有项中再新增一个水晶报表样式,可以在解决方案资源管理器中在解决方案子主目录下,右键-添加新项,弹出以下页面,选择Crystal报表即可水晶报表工具Crystal Reports2008制作报表:工具栏文件->新建->空白报表/标准报表/交叉报表->数据库专家2.将报表数据源绑定数据库在显示的页面中,单击鼠标右键选择数据库-数据库专家在创建新连接中,点击OLE DB(ADO),弹出页面,提供程序中选择Microsoft OLE DB Provide for SQL Server,再点击下一步按钮,在弹出的页面中输入内容后,点击下一步按钮在弹出的页面中点击添加命令,输入SQL查询—报表所需字段(也可以是视图或存储过程),再点击确定按钮。
3.制作水晶报表A.工具箱--在左边工具箱中,可以选择工具画报表,文本对象(文本框及内容的输入),线条对象(画线),框对象(表格外面的框)水晶报表工具Crystal Reports2008:工具栏插入->文本对象/线/框B.字段--在字段中可以直接将要显示在报表中的字段拖放到报表中去C.合计的显示—选中要合计的字段,如金额,点击右键,插入-汇总在弹出的页面中,选择要汇总的字段和方式(求和,差,平均~~)点击确定后自动生成一个汇总字段,将该字段拖放到合计金额的位置即可水晶报表工具Crystal Reports2008:在“公式字段”新建“合计”,汇总字段为CalFee,拖动到页脚D.合计金额小写转换成大写—在右边字段中,选择公式字段,右键-新增(名为test),点击使用专家按钮,在弹出的页面中,选择报表自定义函数,再点击右键-新建,在弹出的页面中输入自定义函数有的名称(AmountToWord2),点击使用编辑器在下面的输入框中,输入以下函数(语法选择Basic语法)选择之前添加的公式字段test,在下面的输入框中输入以下内容(调用上面的函数)(语法选择Basic语法)Function CNMoney(ls As Number) As StringDim dx_sz As StringDim dx_dw As StringDim str_int As StringDim str_dec As StringDim dx_str As StringDim fu As StringDim a As StringDim b As StringDim c As StringDim d As StringDim b2 As StringDim num_int As NumberDim num_dec As NumberDim len_int As NumberDim i As NumberDim a_int As NumberDim pp As Numberdx_sz = "零壹贰叁肆伍陆柒捌玖"dx_dw = "万仟佰拾亿仟佰拾万仟佰拾圆"If ls = 0 ThenCNMoney = "零圆整"Exit FunctionEnd IfIf ls < 0 Thenls = Abs(ls) --返回绝对值fu = "负"Elsefu = ""End Ifdx_str = CStr(ls) --返回表达式,该表达式已被转换为String 子类型的V ariant--Dim MyDouble, MyString--MyDouble = 437.324 - ' MyDouble 是双精度值。
CRYSTAL REPORTS(水晶报表) JDBC连接MYSQL数据库
Crystal Reports2008(水晶报表)JDBC连接mysql数据库在本文中,主要介绍的是Crystal Reports2008使用JDBC连接mysql数据库。
在连接之间,首先要确认你电脑上面都安装了mysql数据库。
其次,就是jdbc连接数据时候所使用的相关jar包。
接下来,就可以进行数据库的一些连接操作了。
对JDBC不是很了解的,可以到完整java开发中JDBC连接数据库代码和步骤了解相关的操作1.打开Crystal Reports的数据专家2.点击JDBC(JNDI)出现:3.输入url和数据库类名,点击下一步:4.输入password和user id点击完成即可。
5.不过,在这操作之前,你需要做的是以下步骤:在你安装的Crystal Reports目录:我安装的目录是:D:\crystal reports2008\Common\4.0\java 在此目录下面,有一个文件:CRConfig.xml配置文件D:\crystal reports2008\Common\4.0\java\CRConfig.xml1<?xml version="1.0"encoding="utf-8"?><CrystalReportEngine-configuration>2<reportlocation>../..</reportlocation>3<timeout>10</timeout>45<ExternalFunctionLibraryClassNames>6<classname></classname>7<classname></classname>8</ExternalFunctionLibraryClassNames>910<keycode>CFKOA-YOTTM2M-OOUFAFF-N43M</keycode>11<Javaserver-configuration>12<DataDriverCommon>13<JavaDir>D:\crystal reports2008\javasdk\bin</JavaDir>14<Classpath>D:\crystal reports2008\Common\4.0\java/lib/mysql-connector-java-5.1.10-bin.jar; D:\crystal reports2008\Common\4.0\java/lib/crlovmanifest.jar;D:\crystal reports2008\Common\4.0\java/li b/CRLOVExternal.jar;D:\crystal reports2008\Common\4.0\java/lib/CRDBJDBCServer.jar;D:\crystal reports2008\Common\4.0\java/lib/CRDBXMLServer.jar;D:\crystal reports2008\Common\4.0\java/lib/CRDBJa vaBeansServer.jar;D:\crystal reports2008\Common\4.0\java/lib/external/CRDBXMLExternal.jar;D:\crysta l reports2008\Common\4.0\java/lib/external/log4j.jar;D:\crystal reports2008\Common\4.0\java/lib/CRDB SForceServer.jar;D:\crystal reports2008\Common\4.0\java/lib/external/CRDBSForceExternal.jar;${CLAS SPATH}</Classpath>15<IORFileLocation>${TEMP}</IORFileLocation>16<JavaServerTimeout>1800</JavaServerTimeout>17<JavaServerStartupTimeout>30</JavaServerStartupTimeout>18<JVMMaxHeap>64000000</JVMMaxHeap>19<JVMMinHeap>32000000</JVMMinHeap>20<NumberOfThreads>100</NumberOfThreads>21</DataDriverCommon>22<JDBC>23<CacheRowSetSize>100</CacheRowSetSize>24<JDBCURL></JDBCURL>25<JDBCClassName></JDBCClassName>26<JDBCUserName></JDBCUserName>27<JNDIURL></JNDIURL>28<JNDIConnectionFactory></JNDIConnectionFactory>29<JNDIInitContext>/</JNDIInitContext>30<JNDIUserName>weblogic</JNDIUserName>31<GenericJDBCDriver>32<Default>33<ServerType>UNKNOWN</ServerType>34<QuoteIdentifierOnOff>ON</QuoteIdentifierOnOff>35<StoredProcType>Standard</StoredProcType>36<LogonStyle>Standard</LogonStyle>37</Default>38<Sybase>39<ServerType>SYBASE</ServerType>40<QuoteIdentifierOnOff>OFF</QuoteIdentifierOnOff>41<DriverClassName>com.sybase.jdbc2.jdbc.SybDriver</DriverClassName>42<StoredProcType>Standard</StoredProcType>43<LogonStyle>MySQL</LogonStyle>44</Sybase>45</GenericJDBCDriver>46</JDBC>47<XML>48<CacheRowSetSize>100</CacheRowSetSize>49<PreReadNBytes>4096</PreReadNBytes>50<MaxCacheXMLSize>153600</MaxCacheXMLSize>51<XMLLocalURL></XMLLocalURL>52<SchemaLocalURL></SchemaLocalURL>53<XMLHttpURL></XMLHttpURL>54<SchemaHttpURL></SchemaHttpURL>55<RepositoryPath>D:\crystal reports2008\Common\4.0\java/lib/external</RepositoryPath>56<ExternalNamespace>D:\crystal reports2008\Common\4.0\java/xsd/wsdl.xsd;D:\crystal reports2008 \Common\4.0\java/xsd/wsdl_encoding.xsd</ExternalNamespace>57<SocketTimeout>60000</SocketTimeout>58</XML>59<JavaBeans>60<CacheRowSetSize>100</CacheRowSetSize>61<JavaBeansClassPath></JavaBeansClassPath>62</JavaBeans>63<SForce>64<CacheRowSetSize>100</CacheRowSetSize>65<QueryBatchSize>2000</QueryBatchSize>66<SocketTimeout>600000</SocketTimeout>67<UseProxy>FALSE</UseProxy>68<ProxyAddress>69</ProxyAddress>70<ProxyPort>71</ProxyPort>72<BatchLookupCacheJoinSize>200</BatchLookupCacheJoinSize>73</SForce>74</Javaserver-configuration>75</CrystalReportEngine-configuration>在xml文件中,红色部分,即是我们添加的内容,即把jar包的路径添加到<Classpath>里面去。
水晶报表制作说明
BS报表制作向导一、制作报表样式1.新建水晶报表样式打开Visual Studio或水晶报表工具,点击菜单条中的文件—新建项目,在弹出的页面中选择其他语言-Visual J#-Crystal Reports应用程序修改名称和位置后,点击确定按钮,再在弹出的页面中选择作为空白报表,再点击确定按钮;如果已有一个水晶报表,要在现有项中再新增一个水晶报表样式,可以在解决方案资源管理器中在解决方案子主目录下,右键-添加新项,弹出以下页面,选择Crystal报表即可水晶报表工具Crystal Reports2008制作报表:工具栏文件->新建->空白报表/标准报表/交叉报表->数据库专家2.将报表数据源绑定数据库在显示的页面中,单击鼠标右键选择数据库-数据库专家在创建新连接中,点击OLE DB(ADO),弹出页面,提供程序中选择Microsoft OLE DB Provide for SQL Server,再点击下一步按钮,在弹出的页面中输入内容后,点击下一步按钮在弹出的页面中点击添加命令,输入SQL查询—报表所需字段(也可以是视图或存储过程),再点击确定按钮。
3.制作水晶报表A.工具箱--在左边工具箱中,可以选择工具画报表,文本对象(文本框及内容的输入),线条对象(画线),框对象(表格外面的框)水晶报表工具Crystal Reports2008:工具栏插入->文本对象/线/框B.字段--在字段中可以直接将要显示在报表中的字段拖放到报表中去C.合计的显示—选中要合计的字段,如金额,点击右键,插入-汇总在弹出的页面中,选择要汇总的字段和方式(求和,差,平均~~)点击确定后自动生成一个汇总字段,将该字段拖放到合计金额的位置即可水晶报表工具Crystal Reports2008:在“公式字段”新建“合计”,汇总字段为CalFee,拖动到页脚D.合计金额小写转换成大写—在右边字段中,选择公式字段,右键-新增(名为test),点击使用专家按钮,在弹出的页面中,选择报表自定义函数,再点击右键-新建,在弹出的页面中输入自定义函数有的名称(AmountToWord2),点击使用编辑器在下面的输入框中,输入以下函数(语法选择Basic语法)选择之前添加的公式字段test,在下面的输入框中输入以下内容(调用上面的函数)(语法选择Basic语法)Function CNMoney(ls As Number) As StringDim dx_sz As StringDim dx_dw As StringDim str_int As StringDim str_dec As StringDim dx_str As StringDim fu As StringDim a As StringDim b As StringDim c As StringDim d As StringDim b2 As StringDim num_int As NumberDim num_dec As NumberDim len_int As NumberDim i As NumberDim a_int As NumberDim pp As Numberdx_sz = "零壹贰叁肆伍陆柒捌玖"dx_dw = "万仟佰拾亿仟佰拾万仟佰拾圆"If ls = 0 ThenCNMoney = "零圆整"Exit FunctionEnd IfIf ls < 0 Thenls = Abs(ls) --返回绝对值fu = "负"Elsefu = ""End Ifdx_str = CStr(ls) --返回表达式,该表达式已被转换为String 子类型的V ariant--Dim MyDouble, MyString--MyDouble = 437.324 - ' MyDouble 是双精度值。
C#.NET下使用水晶报表
1。
第一步是添加新项CrystalReport12。
在CrystalReport1.rpt面页右键选择:”数据库” ”添加/删除数据库”出现下面对话框:然后点开OLE DB(ADO)的加号,将弹出选择数据库的对话框其中”项目数据”里面的”当前连接”显示的就是OLE DB(ADO)的连接,这样就可以将表添加到右边的”选定的表”中了(切记:不要既从”OLE DB”中选表或命令又从”当前连接”中选,如果你用了数据集,也是一样的道理,否则全提示出”登陆失败”的错误!)3。
字段资料管理器里面”数据库字段”里把字段直接拖到CrystalReport.rpt里面了.布置好布局.4。
回到WebForm1.aspx页面,选择控件CrystalReportViewer将其放到页面上。
5。
代码using CrystalDecisions.Shared;using CrystalDecisions.CrystalReports.Engine;在WebForm1.aspx.cs的Form_Load里面添加代码:TableLogOnInfo logOnInfo = new TableLogOnInfo();ReportDocument rpdMy0= new ReportDocument();logOnInfo.ConnectionInfo.ServerName = "NNN";logOnInfo.ConnectionInfo.Password="dong";logOnInfo.ConnectionInfo.DatabaseName="Lab";erID = "sa";String path = Server.MapPath("CrystalReport2.rpt");rpdMy0.Load(path);rpdMy0.Database.Tables[0].ApplyLogOnInfo(logOnInfo);CrystalReportViewer1.ReportSource = rpdMy0;其中:TableLogOnInfo类是:提供属性,以便检索和设置表连接选项.它有一个连接的属性ConnectionInfo,用来设置与数据库的连接.如上面的ServerName等.生成一个报表文档对象将前面我们做好的那个CrystalReport1.rpt赋给它.在这里要注意的是Database属性!然后把报表对象做为CrystalReportViewer1的数据源.或者,获得数据库的方法改为直接从数据库获得DataSetusing System.Data.SqlClient;using System.Collections.Specialized;string strConn=System.Configuration.ConfigurationSettings. AppSettings["DB"].ToString();using (SqlConnection conn = new SqlConnection(strConn)) {SqlDataAdapter da = new SqlDataAdapter(strSQL,conn); //strSQL是SQL语言"select * from dbo.table1"DataSet ds=new DataSet();da.Fill( ds);CrystalReport1 cr1 = new CrystalReport1();cr1.SetDataSource( ds);CrystalReportViewer1.ReportSource = cr1;}using CrystalDecisions.Shared;using CrystalDecisions.CrystalReports.Engine;在WebForm1.aspx.cs的Form_Load里面添加代码:TableLogOnInfo logOnInfo = new TableLogOnInfo();ReportDocument rpdMy0= new ReportDocument();logOnInfo.ConnectionInfo.ServerName = "NNN";logOnInfo.ConnectionInfo.Password="dong";logOnInfo.ConnectionInfo.DatabaseName="Lab";erID = "sa";String path = Server.MapPath("CrystalReport2.rpt");rpdMy0.Load(path);rpdMy0.Database.Tables[0].ApplyLogOnInfo(logOnInfo);CrystalReportViewer1.ReportSource = rpdMy0;其中:TableLogOnInfo类是:提供属性,以便检索和设置表连接选项.它有一个连接的属性ConnectionInfo,用来设置与数据库的连接.如上面的ServerName等.生成一个报表文档对象将前面我们做好的那个CrystalReport1.rpt赋给它.在这里要注意的是Database属性!然后把报表对象做为CrystalReportViewer1的数据源.或者,获得数据库的方法改为直接从数据库获得DataSetusing System.Data.SqlClient;using System.Collections.Specialized;string strConn=System.Configuration.ConfigurationSettings. AppSettings["DB"].ToString();using (SqlConnection conn = new SqlConnection(strConn)) {SqlDataAdapter da = new SqlDataAdapter(strSQL,conn); //strSQL是SQL语言"select * from dbo.table1"DataSet ds=new DataSet();da.Fill( ds);CrystalReport1 cr1 = new CrystalReport1();cr1.SetDataSource( ds);CrystalReportViewer1.ReportSource = cr1;}using CrystalDecisions.Shared;using CrystalDecisions.CrystalReports.Engine;在WebForm1.aspx.cs的Form_Load里面添加代码:TableLogOnInfo logOnInfo = new TableLogOnInfo();ReportDocument rpdMy0= new ReportDocument();logOnInfo.ConnectionInfo.ServerName = "NNN";logOnInfo.ConnectionInfo.Password="dong";logOnInfo.ConnectionInfo.DatabaseName="Lab";erID = "sa";String path = Server.MapPath("CrystalReport2.rpt");rpdMy0.Load(path);rpdMy0.Database.Tables[0].ApplyLogOnInfo(logOnInfo);CrystalReportViewer1.ReportSource = rpdMy0;其中:TableLogOnInfo类是:提供属性,以便检索和设置表连接选项.它有一个连接的属性ConnectionInfo,用来设置与数据库的连接.如上面的ServerName等.生成一个报表文档对象将前面我们做好的那个CrystalReport1.rpt赋给它.在这里要注意的是Database属性!然后把报表对象做为CrystalReportViewer1的数据源.或者,获得数据库的方法改为直接从数据库获得DataSetusing System.Data.SqlClient;using System.Collections.Specialized;string strConn=System.Configuration.ConfigurationSettings. AppSettings["DB"].ToString();using (SqlConnection conn = new SqlConnection(strConn)) {SqlDataAdapter da = new SqlDataAdapter(strSQL,conn);//strSQL是SQL语言"select * from dbo.table1"DataSet ds=new DataSet();da.Fill( ds);CrystalReport1 cr1 = new CrystalReport1(); cr1.SetDataSource( ds);CrystalReportViewer1.ReportSource = cr1;}。
C# 水晶报表详细讲解 代码讲解
NET水晶报表首先要从概念入手,水晶报表(Crystal Report)是业内最专业、功能最强的报表系统,它除了强大的报表功能外,最大的优势是实现了与绝大多数流行开发工具的集成和接口。
1、.NET水晶报表的好处1)利用水晶报表可以进行数值求平均值,画图等2)利用水晶报表可以把文件导出不同的格式(word等)2、.NET水晶报表的两种格式1)pull模式,不利用DataSet,直接从数据库中取出数据2) push模式,使用DataSet,利用它进行数据的加载和处理等3. .NET水晶报表使用的库1)水晶报表的引擎(CREnging.dll),作用:合并数据,装换格式2)水晶报表设计器(CRDesigner.dll),作用:设计标题,插入数据等3)水晶报表查看控件(CRWebFormViewer.DLL)4)需要引入的命名空间ing CrystalDecisions.CrystalReports.Engine;ing CrystalDecisions.Shared;4、Pull模式下使用水晶报表1)创建rpt文件2)拖放CrystalReportViewer3)绑定5、读取.NET水晶报表文件3.private void ReadCRV(cryatalReportViewer crv)4. {5. openFileDialog dlg=new OpenFileDialog();6.dlg.Title="打开水晶报表文件";7.dlg.Filter="水晶报表文件(*.rpt)|*.rpt|所有文件|*.*";8. if(dlg.showDialog()==DialogResult.OK)9. {10.crv.ReportSource=dlg.FileName;11. }12. }6. B/S下读取报表的文件13.private void ReadCRV(cryatalReportViewer crv,File file)14. {15. string strName=file.PostedFile.FileName;16. if(strName.Trim()!="")17. {18.crv.ReportSource=strName19. Session["fileName"]=strName;20. }21. }在B/S中要防止数据源的丢失22.priavte void Page_Load(object sender,System.EventArgs e)23. {24. if(Session["fileName"]!=null)25. {26.crv.ReportSource=Session["fileName"].ToString();27. }28. }7. 假如直接从数据库中读取数据采用PULL模式可能出现错误(登录的用户名和密码不对)29.private void ReadCRV(CrystalReportViewer crv,CrystalReport cr)30. {31. ReportDocument reportDoc=new ReportDocument();32. reportDoc.Load(Server.MapPath(cr));//要加载的rpt文件的名字33. //解决登录的问题34. TableLogOnInfo logonInfo = new TableLogOnInfo();35. foreach(Table tb in ReportDoc.Database.Tables)36. {37.logonInfo=tb.LogOnInfo;38.logonInfo.ConnectionInfo.ServerName="(loacl)";39.logonInfo.ConnectionInfo.DatabaseName="Pubs";erId="sa";41.logonInfo.ConnectionInfo.Password="";42. tb.ApplyLogOnInfo(logonInfo);43. }44.crv.ReportSource=reportDoc;45. }8. 采用Push模式,直接在数据源读取46.private void BindReport(CrystalReportViewer crv)47. {48. string strProvider="Server=(local);DataBase=pubs;uid=sa;pwd=";49. CrystalReport cr=new CrystalReport();50. DataSet ds=new DataSet();51. SqlConnection conn=new SqlConnection(strProvider);52. conn.open();53. string strSql="select * from jobs";54. SqlDataAdapter dap=new SqlDataAdapter(strSql,conn);55. adp.Fill(ds,"jobs");56. cr.SetDataSource(ds);57.cr crv.ReportSource=cr;58. }9. 导出水晶报表的文件59.private void ExportCrv(CrystalReport cr)60. {61. DiskFileDestionOptions dOpt=new DiskFileDestionOptions();62.cr.ExportOptions.ExportDestinationType=ExportDestinationType.DiskFile();63.cr.ExportOptions.ExportFormatType= ExportFormatType.PortableDocFormat;64.dOpt.DiskFileName="C:\output.pdf";65.cr.ExportOptions.DestinationOptions=dOpt;66. cr.Export();67.68. }69. private void ExportCrv(CrystalReport cr,string strType,string strPath)70. {71. DiskFileDestionOptions dOpt=new DiskFileDestionOptions();72.cr.ExportOptions.ExportDestinationType=ExportDestinationType.DiskFile();73. switch(strType)74. {75. case "RTF":76.cr.ExportOptions.ExportFormatType=ExportFormatType.RichText;77.dOpt.DiskFileName=strPath;78. break;79. case "PDF":80.cr.ExportOptions.ExportFormatType=ExportFormatType.PortableDocFormat;81.dOpt.DiskFileName=strPath;82. break;83. case "DOC":84.cr.ExportOptions.ExportFormatType=ExportFormatType.WordForWindows;85.dOpt.DiskFileName=strPath;86. break;87. case "XLS":88.cr.ExportOptions.ExportFormatType=ExportFormatType.Excel;89.dOpt.DiskFileName=strPath;90. break;91. default;92. break;93.94. }95.cr.ExportOptions.DestinationOptions=dOpt;96. cr.Export();97.98. }10 B/S下水晶报表的打印99.priavte void PrintCRV(CrystalReport cr)100. {101. string strPrinterName=@"printName";102. PageMargins margins=cr.PrintOptions.PageMargins; 103.margins.bottomMargin = 250;104.margins.leftMargin = 350;105.margins.rightMargin = 350;106.margins.topMargin = 450;107. cr.PrintOptions.ApplyPageMargins(margins);108.cr.PrintOptions.printerName=strPrinterName;109. cr.PrintToPrinter(1,false,0,0)//参数设置为0,表示打印所用页110. }。