一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - ASP.NET教程 - ASP.NET中水晶報表的使用方法詳解

ASP.NET中水晶報表的使用方法詳解

2019-11-21 13:40ASP.NET教程網 ASP.NET教程

這篇文章介紹了ASP.NET中水晶報表的使用方法,有需要的朋友可以參考一下

前一段時間,由于在項目中要用到報表做統計,所以我學習了一下ASP.NET水晶報表的使用。水晶報表的執行模式(也就是取數據的方法)可以分為兩種:

第一種是Pull模式:被請求時,水晶報表直接根據指定的驅動連接數據庫然后組裝這些數據。

另外一種就是Push模式:此時開發者不得不自己編寫代碼連接數據并組裝DataSet,同時將它傳送至報表。在些這種情況下,通過使用連接共享以及限制記錄集合的大小,可以使用報表性能最大化。

水晶報表中的報表類型也分為兩種:

--StrongTyped 報表: 當你將報表文件加入到項目中去時,它就變成了一個了“ strongly-typed“報表。在這些情況下,你將擁有直接創建報表的對象的權力,這將減少一些代碼并且能夠提供一些性能。

--UnTyped報表:這里的報表并不直接包含在項目中,因此稱為‘un-typed' 報表。在這種情況下,你不得不使用水晶報表的”ReportDocuemt“對象建立一個實例,并且”手動“地凋用報表。

使用Pull模式   我們將通過下面的這些步驟來通過Pull模式來執行水晶報表 
  1.首先創建rpt文件,并使用水晶報表設計接口設置一些必須的數據連接。 
  2.拖放一個 CrystalReportViewer控件至aspx頁面,設置它的屬性指定我們上一步創建的.rpt文件。 
  3. 在代碼中調用DataBind方法。

復制代碼代碼如下:


ReportDocument  ReportDoc  = new  ReportDocument();
ReportDoc.Load(Server.MapPath("MyPullDemo.rpt"));
#region 解決登錄錯誤問題
TableLogOnInfo  logonInfo  = new TableLogOnInfo();//
foreach( CrystalDecisions.CrystalReports.Engine.Table tb in ReportDoc.Database.Tables)
{
logonInfo = tb.LogOnInfo;
logonInfo.ConnectionInfo.ServerName = "(local)";
logonInfo.ConnectionInfo.DatabaseName = "myDatabase";//
logonInfo.ConnectionInfo.UserID = "sa";
logonInfo.ConnectionInfo.Password = "sa1234";//
tb.ApplyLogOnInfo(logonInfo);
}
#endregion
CrystalReportViewer1.ReportSource = ReportDoc;

 

CrystalReportViewer1.DataBind();

 


使用PUSH模式 
  我們采用下面的幾步使用Push模式執行水晶報表:
  1. 設計一個DataSet
  2. 創建一個.rpt文件同時將其指定給上一步建立的DataSet。
  3. 在aspx頁面中拖放一個CrystalReportViewer控件同時將其與前面的rpt文件建立聯系。
  4. 在代碼中訪問數據庫并把數據存入DataSet
  5. 調用DataBind方法。

復制代碼代碼如下:

ReportDocument ReportDoc = new ReportDocument();
ReportDoc.Load(Server.MapPath("MyPushDemo.rpt"));
string strProvider = "Server=(local);DataBase=myDatabase;UID=sa;PWD=sa1234";
SqlConnection MyConn = new SqlConnection(strProvider);
MyConn.Open();
string strSel = "Select * from SaleOfCuntry";
SqlDataAdapter MyAdapter = new SqlDataAdapter(strSel,MyConn);


--這里的ds與.rpt文件連接數據庫所用的DataSet結構完全相同,名稱可以不同

 

建立.rpt文件時DataSet的作用是為rpt文件提供一種架構。

這里 用dataadapter填充數據集的一個實例,作為報表的數據源。

復制代碼代碼如下:


DataSet ds = new DataSet();
MyAdapter.Fill(ds,"SaleOfCuntry");
ReportDoc.SetDataSource(ds);
Crv.ReportSource = ReportDoc;

 

Crv.DataBind();

 

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 三年片韩国在线观看 | 日韩成本大片35分钟免费播放 | 日日操日日 | 精品国语国产在线对白 | 天天色影视综合网 | 超级乱淫伦小说1女多男 | 36美女厕所撒尿全过程 | 青草福利视频 | 调教扩张宫颈女人惨叫 | 欧美成人v视频免费看 | 成人性生交大片免费看软件 | 羞羞色男人的天堂伊人久久 | 青青久在线视频免费观看 | 精品国产精品国产偷麻豆 | 农村妇女野外性生话免费视频 | 亚洲大片免费看 | 91国内精品久久久久怡红院 | 明星ai人脸替换造梦在线播放 | 母爱成瘾在线观看 | 无码国产成人午夜在线观看不卡 | 亚洲男人天堂久久 | 国产成人免费高清激情视频 | 欧美日韩亚毛片免费观看 | 视频一区二区三区欧美日韩 | 国产高清一区二区三区免费视频 | 国产精品第一区揄拍 | 国产精品亚洲精品日韩已满 | 成3d漫二区三区四区 | 亚洲色大成网站www久久九九 | 欧美一区二区三区免费高 | 国产成人精品日本亚洲网址 | 天堂网在线网站成人午夜网站 | 互换身体全集免费观看 | 亚洲国产精品嫩草影院久久 | 国产精品视频在这里有精品 | 精品视频一区二区观看 | 91国内精品线免费播放 | 精品无码国产污污污免费网站2 | x8x8在线观看| 男生同性啪视频在线观看 | 欧美精品久久一区二区三区 |