佳木斯湛栽影视文化发展公司

主頁(yè) > 知識(shí)庫(kù) > ASP.NET中水晶報(bào)表的使用方法詳解

ASP.NET中水晶報(bào)表的使用方法詳解

熱門(mén)標(biāo)簽:電銷(xiāo)業(yè)務(wù) 電商新玩法 國(guó)美全國(guó)運(yùn)營(yíng)中心 客戶服務(wù) 人工智能 網(wǎng)站排名優(yōu)化 科大訊飛語(yǔ)音識(shí)別系統(tǒng) 百度AI接口

前一段時(shí)間,由于在項(xiàng)目中要用到報(bào)表做統(tǒng)計(jì),所以我學(xué)習(xí)了一下ASP.NET水晶報(bào)表的使用。水晶報(bào)表的執(zhí)行模式(也就是取數(shù)據(jù)的方法)可以分為兩種:

第一種是Pull模式:被請(qǐng)求時(shí),水晶報(bào)表直接根據(jù)指定的驅(qū)動(dòng)連接數(shù)據(jù)庫(kù)然后組裝這些數(shù)據(jù)。

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

水晶報(bào)表中的報(bào)表類(lèi)型也分為兩種:

--StrongTyped 報(bào)表: 當(dāng)你將報(bào)表文件加入到項(xiàng)目中去時(shí),它就變成了一個(gè)了“ strongly-typed“報(bào)表。在這些情況下,你將擁有直接創(chuàng)建報(bào)表的對(duì)象的權(quán)力,這將減少一些代碼并且能夠提供一些性能。

--UnTyped報(bào)表:這里的報(bào)表并不直接包含在項(xiàng)目中,因此稱(chēng)為‘un-typed' 報(bào)表。在這種情況下,你不得不使用水晶報(bào)表的”ReportDocuemt“對(duì)象建立一個(gè)實(shí)例,并且”手動(dòng)“地凋用報(bào)表。

使用Pull模式   我們將通過(guò)下面的這些步驟來(lái)通過(guò)Pull模式來(lái)執(zhí)行水晶報(bào)表
  1.首先創(chuàng)建rpt文件,并使用水晶報(bào)表設(shè)計(jì)接口設(shè)置一些必須的數(shù)據(jù)連接。
  2.拖放一個(gè) CrystalReportViewer控件至aspx頁(yè)面,設(shè)置它的屬性指定我們上一步創(chuàng)建的.rpt文件。
  3. 在代碼中調(diào)用DataBind方法。

復(fù)制代碼 代碼如下:

ReportDocument  ReportDoc  = new  ReportDocument();
ReportDoc.Load(Server.MapPath("MyPullDemo.rpt"));
#region 解決登錄錯(cuò)誤問(wèn)題
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模式執(zhí)行水晶報(bào)表:
  1. 設(shè)計(jì)一個(gè)DataSet
  2. 創(chuàng)建一個(gè).rpt文件同時(shí)將其指定給上一步建立的DataSet。
  3. 在aspx頁(yè)面中拖放一個(gè)CrystalReportViewer控件同時(shí)將其與前面的rpt文件建立聯(lián)系。
  4. 在代碼中訪問(wèn)數(shù)據(jù)庫(kù)并把數(shù)據(jù)存入DataSet
  5. 調(diào)用DataBind方法。

復(fù)制代碼 代碼如下:

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文件連接數(shù)據(jù)庫(kù)所用的DataSet結(jié)構(gòu)完全相同,名稱(chēng)可以不同

建立.rpt文件時(shí)DataSet的作用是為rpt文件提供一種架構(gòu)。

這里 用dataadapter填充數(shù)據(jù)集的一個(gè)實(shí)例,作為報(bào)表的數(shù)據(jù)源。

復(fù)制代碼 代碼如下:

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

Crv.DataBind();

您可能感興趣的文章:
  • 水晶報(bào)表asp.net的webform下基本用法實(shí)例
  • asp.net 水晶報(bào)表隔行換色實(shí)現(xiàn)方法
  • ASP.NET 水晶報(bào)表打印功能實(shí)現(xiàn)代碼
  • VS2010 水晶報(bào)表的使用方法
  • VS2005 水晶報(bào)表在時(shí)部署時(shí)遇到的問(wèn)題
  • .NET 水晶報(bào)表使用代碼
  • 什么是水晶報(bào)表與水晶報(bào)表功能分析
  • asp.net水晶報(bào)表參數(shù)字段在代碼中賦值的方法

標(biāo)簽:POS機(jī) 益陽(yáng) 廈門(mén) 棗莊 南平 咸寧 拉薩 攀枝花

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《ASP.NET中水晶報(bào)表的使用方法詳解》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    梁平县| 嘉禾县| 肃南| 通许县| 常德市| 义乌市| 芷江| 瓮安县| 石阡县| 汶川县| 石屏县| 南京市| 四会市| 玉田县| 新乡县| 新邵县| 定安县| 丁青县| 城步| 平凉市| 若尔盖县| 井陉县| 兴安盟| 霍州市| 金秀| 伊宁市| 韩城市| 山丹县| 大新县| 焦作市| 乌兰察布市| 山东省| 天祝| 德化县| 阜康市| 依兰县| 广宁县| 威信县| 丰都县| 思南县| 屏东县|