水晶报表(Crystal Reports)是一款应用非常广泛的商业智能软件,除了强大的报表功能外,最大的优势是实现了绝大多数流行开发工具的集成和接口。下面这篇教程将手把手教你如何制作一个最基本的水晶报表。

水晶报表连接数据源有两种模式,Pull 和 Push 两种,即拉和推。

用水晶报表的“数据库专家”直接连接数据库,报表数据会即时显示在报表上就是“拉”模式,即把数据直接从数据库拉到报表上,这样与程序没有直接关系,即报表与数据库之间多了一个数据连接,与程序的数据库连接没有直接关系。

先在程序中建立数据集,然后设计报表,再用程序填充数据到数据集,这样报表会显示这些数据,这就是“推”模式。

下面介绍下制作水晶报表的步骤:

下载水晶报表的插件并安装

打开vs2010,新建一个WinForm程序,在“资源管理器”中设置此项目的属性,把应用程序的目标框架“.Net Framework 4 Client Profile”改成“.Net Framework 4”即可。这样才能把工具箱中的crystalReportViewer和crystalReportDocument组件显示出来。

建立“数据库连接”新连接,本例以数据库为原sql2000中的 Northwind数据库,用它的orders 及order details表来做报表。

在此项目右键->"添加-新建项"弹出框中选择左边的“数据”并选择右边的“数据集”,会产生一个*.xsd的页面,把第3步中建立的orders及order details表拖到此页面中即可(两者关系已建立),如下图:

给此项目添加一水晶报表CrystalReport1.rpt,此处我建立了一个空白报表,然后在此报表左边的“字段资源管理器”中设置“数据库字段”,把第4项的两个ado.net数据集加到这里面来,“推”模式必须要用到ado.net数据集,如下图:

在数据源中查找要添加的表:

将添加到报表中的表链接在一起:

字段资源管理器:

6.因我们建立的是主从表,以是orderid为条件分组的,所在把order details中的一些字段拖动到报表的“详细资料”段中。

7.建立分组:在“详细资料”空白处右键,插入个组,并以orders.orderid为分组条件,如下图:

插入组:

组名:

8.把orders表中的一些字段拖放到报表的"组头"部分,并给其它段中添加一些其它东西,设计完后如下图:

9.以上做完后,就要用程序把数据填充到数据集中,这样报表才能显示出来。打开Form1的设计部分,把工具箱中的crystalReportViewer拖放到此窗体上,主要用来显示上步中我们建立的报表。 在窗体的Load事件中写如下代码:

private void Form1_Load(object sender, EventArgs e)

{

string connstr = ConfigurationManager.ConnectionStrings["WindowsFormsApplication1.Properties.Settings.NorthwindConnectionString"].ConnectionString;

SqlConnection conn = new SqlConnection(connstr);

conn.Open();

try

{

SqlDataAdapter sda = new SqlDataAdapter("select * from Orders", conn);

DataSet ds = new DataSet("ds");

sda.Fill(ds, "Orders");

sda.SelectCommand.CommandText = "select * from [Order Details]";

sda.Fill(ds, "Order Details");

ReportDocument rd = new ReportDocument();

rd.Load(@"C:\Users\Administrator\Desktop\WindowsFormsApplication1\WindowsFormsApplication1\CrystalReport1.rpt");

rd.SetDataSource(ds);

this.crystalReportViewer1.ReportSource = rd;

}

catch (System.Exception ex)

{

MessageBox.Show(ex.Message);

}

finally

{

conn.Close();

}

}

代码中的sda.Fill(ds,表名称)中的表名称就是建立xsd页面中表的名称,不一定是数据库表的默认名称,你可以随便改,程序集的数据库连接在app.config配置文件中。ReportDocument是报表的内容,用到填充数据的。

10.运行程序,会发现弹出错误信息,此时要改动app.config的配置文件,主要改动节,web项目中不用改动,如下为app.config的内容:

11.运行效果图:

转自:http://www.cnblogs.com/yagzh2000/p/3224600.html

标签:水晶报表

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至hey@evget.com

文章转载自:慧都控件

水晶报表html,水晶报表教程:手把手教你制作基本报表相关推荐

  1. python开源报表系统详细操作流程_手把手教你实现自动化报表系统

    今天给大家安利一套自动化报表的实现过程. 说到报表,大家脑海里一定浮现了各种高大上的财务报表,不管他们如何实现的,本文却要教你实现自己的报表系统.对于土豪公司来说,这些都是小case,因为商业的工具平 ...

  2. graphpad两组t检验_Graphpad 作图教程 | 手把手教你绘制森林图

    森林图 (forest plots) 是以估计模型 (固定效应模型或是随机效应模型) 结果为基础绘制出的图型.它以一条垂直的直线 (横坐标刻度为 1 或 0) 为中心,用平行于横轴的多条线段描述了每个 ...

  3. 镜播无人直播带货教程,手把手教你如何搭建直播间

    镜播无人直播带货新手教程,手把手教你如何搭建直播间 如果你一个人在家里面直播,没有直播中控来辅助你一个情况下怎么办?来教你一个什么叫做镜播.用镜子来做一个直播的辅助.在你的面前放一面镜子,下面是产品, ...

  4. 小白都能看懂的实战教程 手把手教你Python Web全栈开发(DAY 3)

    小白都能看懂的实战教程 手把手教你Python Web全栈开发 Flask(Python Web)实战系列之在线论坛系统 第三讲 这是小白都能看懂的实战教程 手把手教你Python Web全栈开发 的 ...

  5. linux下运行mcnp6安装教程,JBPM6教程-手把手教你安装JBPM

    JBPM6教程-手把手教你安装JBPM 1. 安装JBPM的先决条件: (1)JDK 1.6+以上,没有安装的话,猛击这里. (2)Ant 1.7+以上,没有安装的话,看看这里. 2. 下载JBPM安 ...

  6. 小白都能看懂的实战教程 手把手教你Python Web全栈开发(DAY 1)

    小白都能看懂的实战教程 手把手教你Python Web全栈开发 Flask(Python Web)实战系列之在线论坛系统 第一讲 博主博客文章内容导航(实时更新) 更多优质文章推荐: 收藏!最详细的P ...

  7. 网课答案公众号小白教程——手把手教你创建自己的大学查题公众号

    网课答案公众号小白教程--手把手教你创建自己的大学查题公众号 1.很多新手想搭建属于自己的查题公众号! 所以我来写一个搜题公众号搭建教程,如果你想要做公众号方面的引流之类的,这个就非常不错! 废话不多 ...

  8. 2021win11最新最全MySQL下载安装教程——手把手教你安装MySQL

    2021win11最新最全MySQL下载安装教程--手把手教你安装MySQL 最近重装了win11,给我MySQL整没了,故今天重新装一下. 第一步,进入官网 https://www.mysql.co ...

  9. 我的世界服务器显示器,我的世界红石显示器制作教程 手把手教你做显示器

    我的世界红石显示器制作教程 手把手教你做显示器.那下面给大家分享的是我的世界里面的一个红石显示器的制作教程,那对下面的这个显示器感兴趣的玩家不妨进来卡看哦!希望大家喜欢. 游戏园我的世界官方群:325 ...

  10. [github 教程]手把手教你最简单的开源项目托管GitHub入门教程_github 教程

    [github 教程]手把手教你最简单的开源项目托管GitHub入门教程--简介 自从google code关闭了下载服务了之后,GitHub作为了目前最好用的免费 开源 项目托管站点,众多开源项目都 ...

最新文章

  1. koa-router让人迷惑的文档和源码实现
  2. 计算机网络技术及应用 课程 英语,计算机网络应用—现代英语课堂中的第三种语言...
  3. web前端入门学习 css(9)广义的html5 品优购项目(html+css基础完结,js开始,移动端布局开始)
  4. SQL Server配置delegation实现double-hop
  5. nosql简答什么是最终一致性_NoSql的三大基石:CAP理论BASE最终一致性
  6. 随机森林-集成学习方法(分类)
  7. linux划分root_vg,為Linux添加新硬盤,划分LVM分區
  8. BZOJ1095: [ZJOI2007]Hide 捉迷藏(动态点分治)
  9. mysql sqlite 分页查询_sqlite分页查询
  10. libsvm2.89在matlab,libsvm-mat-2.89-3工具箱,方便实用
  11. Python基础----集合
  12. ppt上的倒计时小工具_英孚线上精品小班课平台操作指南这些课堂小工具你都知道吗?更多课前指引看这里!...
  13. 微信小程序CSS之Flex布局
  14. 【概念学习】联邦学习的三个类别+【论文阅读】异步联邦学习
  15. 多级指针—为快捷方式创建快捷方式
  16. 35岁后,互联网数据分析人的出路在哪里?
  17. word中硬回车(enter)与软回车(shift+enter)
  18. Sandbox——沙箱技术,来自chromium开发文档
  19. 【Python】自动化办公之Excel拆分并自动发邮件
  20. Ubuntu ROS 安装

热门文章

  1. php网易云随机音乐api源码开源,网易云音乐随机歌曲
  2. 第45章 DCMI—OV2640摄像头—零死角玩转STM32-F429系列
  3. Ardunio开发实例-ADS1115模数转换器
  4. 512 排序预演_最小数置前
  5. QT 打开PDF文件或图片
  6. 提高共射放大电路增益不改变直流偏置的手段
  7. Linux下rpm软件包rpm命令的安装及卸载
  8. 基于Python的淘宝用户行为数据分析
  9. [办公自动化]名师推荐-excelpro刘万祥 图表之道作者
  10. 源码编译安装Netron模型可视化工具