一、水晶报表简介

Crystal Reports(水晶报表)是一款商务智能(BI)软件,主要用于设计及产生报表。水晶报表是业内最专业、功能最强的报表系统,它除了强大的报表功能外。最大的优势是实现了与绝大多数流行开发工具的集成和接口。在VS.Net平台做过报表开发的程序员,一定都对水晶报表强大、高效、集成等特性留下了深刻印象。 除了开发新程序外,在工作中我们常需要接触到很多较早的软件系统报表功能升级的需求,如果能结合水晶报表这一强大的工具,往往能事半功倍。

二、水晶报表的实现模式

在讲解水晶报表实现模式之前,首先讲解一下我的电脑使用配置环境:

  Visual Studio 2013与SQL Server 2012

因为VS2013没有自带创建水晶报表的功能,所以需要到网上下载并安装一个插件,才能使用VS2013创建水晶报表。

插件下载地址:http://www.aspsnippets.com/Articles/Download-Crystal-Reports-for-Visual-Studio-2013.aspx

插件安装成功后打开VS2013,会发现工具箱里多了这些东西,那么说明你的VS2013已经安装了水晶报表的插件,现在可以通过VS2013创建水晶报表了。

2.1、拉(PULL)模式

概念介绍:拉模式是由水晶模板(引擎)直接连接数据库(源),从数据库(源)里拉取数据。

2.1.1、不敲一句代码创建水晶报表拉模式

1、首先在创建水晶报表拉模式之前我们需要准备数据库数据:

use master
go
create database Demo
go
use Demo
go
create table Dept
(
ID int primary key identity(1,1),
DeptID nvarchar(10),
DeptName nvarchar(10)
)
go
create table UserInfo
(
ID int primary key identity(1,1),
UserName nvarchar(10),
Salary decimal(10,2),
Gender bit,
DeptID int foreign key references Dept(ID)
)
go
insert into Dept values('HR','人事部')
insert into Dept values('DT','开发部')
go
insert into UserInfo values('程序猿1',2500,1,2)
insert into UserInfo values('程序猿2',3500,0,2)
insert into UserInfo values('程序猿3',5500,0,1)
insert into UserInfo values('程序猿4',6500,1,1)
insert into UserInfo values('程序猿5',10500,1,2)
go

2、然后,打开VS2013创建一个空网站项目。

3、接着在该项目下右键添加一个Reports文件夹,用来管理水晶报表。

4、接着 在文件夹下右键选择添加"新建项目",找到"CrystalReports",输入报表名称。

5、点击添加按钮后,会弹出默认的水晶报表向导对话框,我们按向导默认选项。

6、确定后,打开“标准报表创建向导”界面。

7、连接数据库成功后,会在简历连接那里出现你的连接信息,然后选择你要显示的表。

8、这里选择你要显示的表字段。

9、点击下一步后后面弹出的选项可以不用选择,因为暂时还用不着,所以后面一直点击下一步到完成会出现以下界面。

10、看到上面这个界面,说明你已经创建了一个水晶报表模板,因为是直接连接数据库的,所以我们可以能立即看到实际的效果,点击最下面的主报表预览,即可显示数据库的表数据。

至此,我们没有敲过任何代码,拉模式报表创建完成。

2.1.2、在Web中使用水晶报表拉模式

在之前创建的项目中,添加一个Web窗体,命名为CrystalReport_Pull.aspx。

然后打开设计页面,找到工具箱中的报表设计,双击或单击拖入到Web窗体中,如下图所示。

方式一:不敲代码通过设计器绑定数据源,显示数据。

点击确定后,你会看到Web窗体如下界面。

点击源,可以看到如下界面,设计器会自动生成以下代码。

最后我们运行VS2013在浏览器中查看效果,发现什么都没有显示,然后打开浏览器调试工具发现,报了以下错误。

解决此问题参考网站:http://stackoverflow.com/questions/31721443/crystal-report-with-visual-studio-2013-aspnet-client-system-web-4-6-81

此问题解决办法如下:找到C:\inetpub\wwwroot此目录下的文件夹,然后拷贝到你的项目的根目录下。

重新编译,再运行浏览查看,如下图,可以看到数据可以正常显示。

方式二:通过后台编写代码,连接数据库绑定数据源,显示数据。

重新添加一个Web窗体,创建步骤与上面一致。然后右键点击查看源代码,添加如下代码即可实现水晶报表拉模式。

 using CrystalDecisions.CrystalReports.Engine;
using CrystalDecisions.Shared;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls; namespace ch02
{
public partial class CrystalReport_Pull : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
ConfigureCrystalReports();
} private ReportDocument myReport;
private void ConfigureCrystalReports()
{
//定义ReportDocument对象,装载Crystalreport1.rpt
myReport = new ReportDocument();
string reportPath = Server.MapPath("Reports/CrystalReport1.rpt");
myReport.Load(reportPath);
//把模板对象赋给报表前端呈现控件CrystalReportViewerl
CrystalReportViewer1.ReportSource = myReport;
}
}
}

实现效果同上

2.2、推(PUSH)模式

概念介绍:由应用程序从数据库(源)获取数据,然后把数据推送给水晶报表引擎。水晶报表本身不与数据库进行交互。

1、要实现水晶报表推模式,首先我们需要在 网站项目中添加一个数据集。

2、然后你有两种方式 创建数据表,这里我们选择方式二创建。

3、把要显示的表拖入右边。

4、接下来要设计一个水晶报表模板。在Reports文件夹上右键添加新建项,步骤与上面推模式步骤一致,这里就不再详细解说。

5、最后我们开始编写页面CrystalReport_Push.aspx后台代码。

首先引入如下命名空间:

using CrystalDecisions.CrystalReports.Engine;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls; namespace ch02
{
public partial class CrystalReport_Push : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
LoadCrystalReports();
} //加载水晶报表
private void LoadCrystalReports()
{
DataSet ds = new DataSet();
string connStr = @"server=PC-201511211346\MSSQLSERVER2;database=Demo;uid=sa;pwd=123456";
using (SqlConnection conn = new SqlConnection(connStr))
{
conn.Open();
string SQL = "select * from UserInfo";
SqlDataAdapter sda = new SqlDataAdapter(SQL, conn);
sda.Fill(ds, "UserInfo");
}
ReportDocument rd = new ReportDocument();
//获取报表路径
string reportPath = Server.MapPath("Reports/CrystalReport2.rpt");
rd.Load(reportPath);
//绑定数据集,注意一个表用一个数据集。
rd.SetDataSource(ds);
CrystalReportViewer1.ReportSource = rd;
}
}
}

最后运行查看效果:

总结:此文章是对ASP.NET 水晶报表(Crystal Reports)的简单使用做了一个学习总结,目的是为了帮助想要学习水晶报表的初学者做了一个入门指导,让初学者少走一些弯路。

报表学习总结(一)——ASP.NET 水晶报表(Crystal Reports)的简单使用的更多相关文章

  1. ASP.NET Dev ASPxGridView控件使用 ASP.NET水晶报表打印

    1.ASPxGridView控件使用 2.ASP.NET水晶报表客户端打印 3.javascript打印 4.ASPxGridView根据Textbox查询 5. ASPxGridView 列宽 1. ...

  2. asp.net实现通用水晶报表

    此片博文是在你有一定水晶报表基础的前提下参阅的:如果对于水晶报表的基础知识比较薄弱建议先去了解下水晶报表: 因为项目需要,研究了下水晶报表.说实在,这个组件很强大,但是用起来也很麻烦.刚开始使用遇到了 ...

  3. .NET环境下使用水晶报表

    .NET环境下使用水晶报表 听语音 | 浏览:3280 | 更新:2013-12-20 13:36 1 2 3 4 5 6 7 分步阅读 水晶报表(Crystal Reports)-商务智能软件,通常 ...

  4. (转)VS.NET2010水晶报表安装部署[VS2010]

    本文转载自:http://www.cnblogs.com/xiaofengfeng/p/3325793.html 欢迎C#高手加盟QQ群:9340166 水晶报表VS2010版IDE安装标准版SAP ...

  5. VS.NET2010水晶报表安装部署

    水晶报表VS2010版IDE安装标准版SAP Crystal Reports, version for Visual Studio 2010 - Standard: 下载地址: http://down ...

  6. VS.NET2010水晶报表安装部署[VS2010]

    水晶报表VS2010版IDE安装标准版SAP Crystal Reports, version for Visual Studio 2010 - Standard: 下载地址: http://down ...

  7. 水晶报表 VS2010 应用

    VS.NET2010水晶报表安装部署[VS2010]   欢迎C#高手加盟QQ群:9340166 水晶报表VS2010版IDE安装标准版SAP Crystal Reports, version for ...

  8. 关于vs2010下水晶报表的使用入门

    关于vs2010下使用水晶报表了解情况记录如下: 1.首先vs2010不再自带水晶报表控件了,需要下载安装vs2010配套的水晶报表控件:CRforVS_13_0.这个控件安装很简单,基本上都选择默认 ...

  9. VS2015安装水晶报表

    最近在做一个打印功能,本来是不想用水晶报表的.想直接用微软原生的报表rdlc完成,但是整了一个上午老是打印乱码,且网上找资料找也找不出. 无奈放弃,然后就想到用水晶报表了,以前用过水晶报表,不过一直都 ...

随机推荐

  1. UVA 11149 Power of Matrix

    矩阵快速幂. 读入A矩阵之后,马上对A矩阵每一个元素%10,否则会WA..... #include<cstdio> #include<cstring> #include< ...

  2. 使用LIBUSB实现和自定义通讯设备通讯--MFC代码在末尾

    LIBUSB是一款简单好用的USB通讯开发库,一般HID设备用该库通讯能大大降低开发周期,使用如下,首先需要为设备安装驱动 在libusb的bin目录下有一个inf_wirzed.exe的文件,该文件 ...

  3. UVA 11551 Experienced Endeavour

    矩阵快速幂. 题意事实上已经告诉我们这是一个矩阵乘法的运算过程. 构造矩阵:把xi列的bij都标为1. 例如样例二: #include<cstdio> #include<cstrin ...

  4. vs2012中的小技巧

    解除起始页: 网站(或者叫项目)-属性-启动选项-使用当前页 发布项目: 有些文件在发布的时候,不能发布到指定文件夹中,所以要手动修改该文件的属性 修改两处: 复制到输出目录:始终复制 生成操作:内容

  5. iReport折线图

    1.拖动组件面板chart到Summary   2.右击-->chart data  单出   3.   4.X轴和Y轴必须是数字 series:系列 连续,串联 category:类型.部门. ...

  6. C语言-知识点及学习路线

    最近进行了为期两周的C语言培训,把几年前学过的C语言又重新学习了一遍,然后根据学习的内容和过程,总结了一下学习路线.这是基本的C语言学习路线,相当于编程语言类的基础,再根据自己究竟是要做单片机开发,还 ...

  7. Xcode 之 snippet 代码重用

    1. 选中代码 2. 拖入xcode 右下侧的 snippet 区域 3. 修改名称 4. 修改快捷输入 (shortcut) 5. <#content#> ,可选修改项

  8. Python3基础 setdefault() 根据键查找值,找不到键会添加

    镇场诗: 诚听如来语,顿舍世间名与利.愿做地藏徒,广演是经阎浮提. 愿尽吾所学,成就一良心博客.愿诸后来人,重现智慧清净体.-------------------------------------- ...

  9. YII 1.0 设置关联模型

    在model中设置如下 /* * 设置关联 */ public function relations(){ return array( 'cate'=>array(self::BELONGS_T ...

  10. 连锁不平衡LD

    http://wenku.baidu.com/link?url=Fr_C7J5F4KusZTpZJUfuVfh4Bpyb9BAY7IQhWAOYirQJW0Oz-X3fI5r41aPHiQR8ENn9 ...