水晶报表教程:手把手教你制作基本报表

标签: 水晶报表
概述:本文手把手教你制作最基本的水晶报表。

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

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

  • 用水晶报表的“数据库专家”直接连接数据库,报表数据会即时显示在报表上就是“拉”模式,即把数据直接从数据库拉到报表上,这样与程序没有直接关系,即报表与数据库之间多了一个数据连接,与程序的数据库连接没有直接关系。
  • 先在程序中建立数据集,然后设计报表,再用程序填充数据到数据集,这样报表会显示这些数据,这就是“推”模式。

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

  1. 下载水晶报表的插件并安装
  2. 打开vs2010,新建一个WinForm程序,在“资源管理器”中设置此项目的属性,把应用程序的目标框架“.Net Framework 4 Client Profile”改成“.Net Framework 4”即可。这样才能把工具箱中的crystalReportViewer和crystalReportDocument组件显示出来。
  3. 建立“数据库连接”新连接,本例以数据库为原sql2000中的 Northwind数据库,用它的orders 及order details表来做报表。
  4. 在此项目右键->"添加-新建项"弹出框中选择左边的“数据”并选择右边的“数据集”,会产生一个*.xsd的页面,把第3步中建立的orders及order details表拖到此页面中即可(两者关系已建立),如下图:
  5. 给此项目添加一水晶报表CrystalReport1.rpt,此处我建立了一个空白报表,然后在此报表左边的“字段资源管理器”中设置“数据库字段”,把第4项的两个ado.net数据集加到这里面来,“推”模式必须要用到ado.net数据集,如下图:

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

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

字段资源管理器:

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

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

插入组:

组名:

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

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
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 = SqlDataAdapter( "select * from Orders" ,conn);
DataSet ds = DataSet( "ds" );
sda.Fill(ds, "Orders" );
sda.SelectCommand.CommandText = "select * from [Order Details]" ;
"Order Details" );
ReportDocument rd = 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的配置文件,主要改动<startup>节,web项目中不用改动,如下为app.config的内容:

12
<? xml version = "1.0" ?>
< configuration >
configSections >
</ >
connectionStrings >
add name "WindowsFormsApplication1.Properties.Settings.NorthwindConnectionString" connectionString "Data Source=.;Initial Catalog=Northwind;Persist Security Info=True;User ID=sa;Password=abc123..." providerName "System.Data.SqlClient" />
>
<!--<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup>-->
startup useLegacyV2RuntimeActivationPolicy "true" >
supportedRuntime "v4.0" sku ".NETFramework,Version=v4.0" />
startup >
>

11.运行效果图:

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


php输出xml格式字符串
J2ME Mobile 3D入门教程系列文章之一
XML轻松学习手册
XML入门的常见问题(一)
XML入门的常见问题(三)
XML轻松学习手册(2)XML概念
xml文件介绍及使用
xml编程(一)-xml语法
XML文件结构和基本语法
第2章 包装类
XML入门的常见问题(二)
Java对象的强、软、弱和虚引用
JS解析XML文件和XML字符串详解
java中枚举的详细使用介绍
了解Xml格式
XML入门的常见问题(四)
深入SQLite多线程的使用总结详解
PlayFramework完整实现一个APP(一)
XML和YAML的使用方法
XML轻松学习总节篇