报表学习总结(一)——ASP.NET 水晶报表(Crystal Reports)的简单使用
報(bào)表學(xué)習(xí)總結(jié)(一)——ASP.NET 水晶報(bào)表(Crystal Reports)的簡(jiǎn)單使用
目錄
- 一、水晶報(bào)表簡(jiǎn)介
- 二、水晶報(bào)表的實(shí)現(xiàn)模式
- 2.1、拉(PULL)模式
- 2.1.1、不敲一句代碼創(chuàng)建水晶報(bào)表拉模式
- 2.1.2、在Web中使用水晶報(bào)表拉模式
- 2.2、推(PUSH)模式
- 2.1、拉(PULL)模式
一、水晶報(bào)表簡(jiǎn)介
Crystal Reports(水晶報(bào)表)是一款商務(wù)智能(BI)軟件,主要用于設(shè)計(jì)及產(chǎn)生報(bào)表。水晶報(bào)表是業(yè)內(nèi)最專(zhuān)業(yè)、功能最強(qiáng)的報(bào)表系統(tǒng),它除了強(qiáng)大的報(bào)表功能外。最大的優(yōu)勢(shì)是實(shí)現(xiàn)了與絕大多數(shù)流行開(kāi)發(fā)工具的集成和接口。在VS.Net平臺(tái)做過(guò)報(bào)表開(kāi)發(fā)的程序員,一定都對(duì)水晶報(bào)表強(qiáng)大、高效、集成等特性留下了深刻印象。 除了開(kāi)發(fā)新程序外,在工作中我們常需要接觸到很多較早的軟件系統(tǒng)報(bào)表功能升級(jí)的需求,如果能結(jié)合水晶報(bào)表這一強(qiáng)大的工具,往往能事半功倍。
二、水晶報(bào)表的實(shí)現(xiàn)模式
在講解水晶報(bào)表實(shí)現(xiàn)模式之前,首先講解一下我的電腦使用配置環(huán)境:
Visual Studio?2013與SQL?Server?2012
因?yàn)閂S2013沒(méi)有自帶創(chuàng)建水晶報(bào)表的功能,所以需要到網(wǎng)上下載并安裝一個(gè)插件,才能使用VS2013創(chuàng)建水晶報(bào)表。
插件下載地址:http://www.aspsnippets.com/Articles/Download-Crystal-Reports-for-Visual-Studio-2013.aspx
插件安裝成功后打開(kāi)VS2013,會(huì)發(fā)現(xiàn)工具箱里多了這些東西,那么說(shuō)明你的VS2013已經(jīng)安裝了水晶報(bào)表的插件,現(xiàn)在可以通過(guò)VS2013創(chuàng)建水晶報(bào)表了。
2.1、拉(PULL)模式
概念介紹:拉模式是由水晶模板(引擎)直接連接數(shù)據(jù)庫(kù)(源),從數(shù)據(jù)庫(kù)(源)里拉取數(shù)據(jù)。
2.1.1、不敲一句代碼創(chuàng)建水晶報(bào)表拉模式
1、首先在創(chuàng)建水晶報(bào)表拉模式之前我們需要準(zhǔn)備數(shù)據(jù)庫(kù)數(shù)據(jù):
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','開(kāi)發(fā)部') 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) go2、然后,打開(kāi)VS2013創(chuàng)建一個(gè)空網(wǎng)站項(xiàng)目。
3、接著在該項(xiàng)目下右鍵添加一個(gè)Reports文件夾,用來(lái)管理水晶報(bào)表。
4、接著 在文件夾下右鍵選擇添加"新建項(xiàng)目",找到"CrystalReports",輸入報(bào)表名稱(chēng)。
5、點(diǎn)擊添加按鈕后,會(huì)彈出默認(rèn)的水晶報(bào)表向?qū)?duì)話框,我們按向?qū)J(rèn)選項(xiàng)。
6、確定后,打開(kāi)“標(biāo)準(zhǔn)報(bào)表創(chuàng)建向?qū)А苯缑妗?/p>
7、連接數(shù)據(jù)庫(kù)成功后,會(huì)在簡(jiǎn)歷連接那里出現(xiàn)你的連接信息,然后選擇你要顯示的表。?
8、這里選擇你要顯示的表字段。
9、點(diǎn)擊下一步后后面彈出的選項(xiàng)可以不用選擇,因?yàn)闀簳r(shí)還用不著,所以后面一直點(diǎn)擊下一步到完成會(huì)出現(xiàn)以下界面。
10、看到上面這個(gè)界面,說(shuō)明你已經(jīng)創(chuàng)建了一個(gè)水晶報(bào)表模板,因?yàn)槭侵苯舆B接數(shù)據(jù)庫(kù)的,所以我們可以能立即看到實(shí)際的效果,點(diǎn)擊最下面的主報(bào)表預(yù)覽,即可顯示數(shù)據(jù)庫(kù)的表數(shù)據(jù)。
至此,我們沒(méi)有敲過(guò)任何代碼,拉模式報(bào)表創(chuàng)建完成。
2.1.2、在Web中使用水晶報(bào)表拉模式
在之前創(chuàng)建的項(xiàng)目中,添加一個(gè)Web窗體,命名為CrystalReport_Pull.aspx。
然后打開(kāi)設(shè)計(jì)頁(yè)面,找到工具箱中的報(bào)表設(shè)計(jì),雙擊或單擊拖入到Web窗體中,如下圖所示。
方式一:不敲代碼通過(guò)設(shè)計(jì)器綁定數(shù)據(jù)源,顯示數(shù)據(jù)。
點(diǎn)擊確定后,你會(huì)看到Web窗體如下界面。
點(diǎn)擊源,可以看到如下界面,設(shè)計(jì)器會(huì)自動(dòng)生成以下代碼。
?最后我們運(yùn)行VS2013在瀏覽器中查看效果,發(fā)現(xiàn)什么都沒(méi)有顯示,然后打開(kāi)瀏覽器調(diào)試工具發(fā)現(xiàn),報(bào)了以下錯(cuò)誤。
解決此問(wèn)題參考網(wǎng)站:http://stackoverflow.com/questions/31721443/crystal-report-with-visual-studio-2013-aspnet-client-system-web-4-6-81
此問(wèn)題解決辦法如下:找到C:\inetpub\wwwroot此目錄下的文件夾,然后拷貝到你的項(xiàng)目的根目錄下。
重新編譯,再運(yùn)行瀏覽查看,如下圖,可以看到數(shù)據(jù)可以正常顯示。
方式二:通過(guò)后臺(tái)編寫(xiě)代碼,連接數(shù)據(jù)庫(kù)綁定數(shù)據(jù)源,顯示數(shù)據(jù)。
?重新添加一個(gè)Web窗體,創(chuàng)建步驟與上面一致。然后右鍵點(diǎn)擊查看源代碼,添加如下代碼即可實(shí)現(xiàn)水晶報(bào)表拉模式。
1 using CrystalDecisions.CrystalReports.Engine;2 using CrystalDecisions.Shared;3 using System;4 using System.Collections.Generic;5 using System.Linq;6 using System.Web;7 using System.Web.UI;8 using System.Web.UI.WebControls;9 10 namespace ch02 11 { 12 public partial class CrystalReport_Pull : System.Web.UI.Page 13 { 14 protected void Page_Load(object sender, EventArgs e) 15 { 16 ConfigureCrystalReports(); 17 } 18 19 private ReportDocument myReport; 20 private void ConfigureCrystalReports() 21 { 22 //定義ReportDocument對(duì)象,裝載Crystalreport1.rpt 23 myReport = new ReportDocument(); 24 string reportPath = Server.MapPath("Reports/CrystalReport1.rpt"); 25 myReport.Load(reportPath); 26 //把模板對(duì)象賦給報(bào)表前端呈現(xiàn)控件CrystalReportViewerl 27 CrystalReportViewer1.ReportSource = myReport; 28 } 29 } 30 }?實(shí)現(xiàn)效果同上
2.2、推(PUSH)模式
概念介紹:由應(yīng)用程序從數(shù)據(jù)庫(kù)(源)獲取數(shù)據(jù),然后把數(shù)據(jù)推送給水晶報(bào)表引擎。水晶報(bào)表本身不與數(shù)據(jù)庫(kù)進(jìn)行交互。
1、要實(shí)現(xiàn)水晶報(bào)表推模式,首先我們需要在 網(wǎng)站項(xiàng)目中添加一個(gè)數(shù)據(jù)集。
?
2、然后你有兩種方式 創(chuàng)建數(shù)據(jù)表,這里我們選擇方式二創(chuàng)建。
3、把要顯示的表拖入右邊。
4、接下來(lái)要設(shè)計(jì)一個(gè)水晶報(bào)表模板。在Reports文件夾上右鍵添加新建項(xiàng),步驟與上面推模式步驟一致,這里就不再詳細(xì)解說(shuō)。
5、最后我們開(kāi)始編寫(xiě)頁(yè)面CrystalReport_Push.aspx后臺(tái)代碼。
?首先引入如下命名空間:
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();}//加載水晶報(bào)表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();//獲取報(bào)表路徑string reportPath = Server.MapPath("Reports/CrystalReport2.rpt");rd.Load(reportPath);//綁定數(shù)據(jù)集,注意一個(gè)表用一個(gè)數(shù)據(jù)集。rd.SetDataSource(ds);CrystalReportViewer1.ReportSource = rd;}} }?最后運(yùn)行查看效果:
總結(jié):此文章是對(duì)ASP.NET 水晶報(bào)表(Crystal Reports)的簡(jiǎn)單使用做了一個(gè)學(xué)習(xí)總結(jié),目的是為了幫助想要學(xué)習(xí)水晶報(bào)表的初學(xué)者做了一個(gè)入門(mén)指導(dǎo),讓初學(xué)者少走一些彎路。
?
https://zhuanlan.zhihu.com/p/37993724
總結(jié)
以上是生活随笔為你收集整理的报表学习总结(一)——ASP.NET 水晶报表(Crystal Reports)的简单使用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 央视再次点赞阿里云ET城市大脑,树立用人
- 下一篇: linux 安装 python3