国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

Asp.Net中使用水晶報(bào)表(下)

2024-07-10 12:56:24
字體:
供稿:網(wǎng)友
使用push模式
  我們采用下面的幾步使用push模式執(zhí)行水晶報(bào)表:

  1. 設(shè)計(jì)一個(gè)dataset

  2. 創(chuàng)建一個(gè).rpt文件同時(shí)將其指定給上一步建立的dataset。

  3. 在aspx頁面中拖放一個(gè)crystalreportviewer控件同時(shí)將其與前面的rpt文件建立聯(lián)系。

  4. 在代碼中訪問數(shù)據(jù)庫并把數(shù)據(jù)存入dataset

  5. 調(diào)用databind方法。

  設(shè)計(jì)一個(gè)dataset

  1) 右擊“解決方案瀏覽器”,選擇“添加”--“添加新項(xiàng)”-->“數(shù)據(jù)集”


  2) 從“服務(wù)器資源管理器”中的“sql server”中拖放“stores”表(位于pubs數(shù)據(jù)庫中)。





  3) 此時(shí)在數(shù)據(jù)集中就會(huì)有一個(gè)stores表的結(jié)構(gòu)圖。



  - .xsd文件中僅僅包含一個(gè)結(jié)構(gòu)圖,但是不會(huì)有任何數(shù)據(jù)在里面。

  創(chuàng)建 .rpt 文件 :

  4) 使用上面的介紹過的方法創(chuàng)建此文件,唯一的不同就是使用數(shù)據(jù)集來代替前面的直接連接數(shù)據(jù)。

  5)建立.rpt文件之后,右擊“詳細(xì)資料”-->"添加/刪除數(shù)據(jù)庫“

  6) 在”數(shù)據(jù)庫專家“窗口中,展開”項(xiàng)目數(shù)據(jù)“(代替以前的oledb),展開“ado.net數(shù)據(jù)集”--"dataset1“,選擇”stores“表。

  7) 將”stores"表添加到“選定的表”中,點(diǎn)擊“ok”



  8) 使用pull模式下的方法,建立一個(gè)webform

  建立一個(gè)crystal report viewer 控件

  9) 建立一個(gè)crystal report viewer 控件,并設(shè)定其屬性,此處與pull模式下是一致的。

  code behind 代碼:

  10) 在page_load方法中使用下面的子函數(shù):

vb.net代碼:

  sub bindreport()

    dim myconnection as new sqlclient.sqlconnection()

    myconnection.connectionstring= "server= (local)/netsdk;database=pubs;trusted_connection=yes"

    dim mycommand as new sqlclient.sqlcommand()

    mycommand.connection = myconnection

    mycommand.commandtext = "select * from stores"

    mycommand.commandtype = commandtype.text

    dim myda as new sqlclient.sqldataadapter()

    myda.selectcommand = mycommand

    dim myds as new dataset1()

    '這就是我們在設(shè)計(jì)模式上使用的dataset

    myda.fill(myds, "stores")

    '你不得不使用與你前面dataset相同名字。

    dim orpt as new crystalreport1()

    ' 水晶報(bào)表綁定

    orpt.setdatasource(myds)

    ' 設(shè)定水晶報(bào)表的reportsource

    crystalreportviewer1.reportsource = orpt

  end sub



c#代碼:

private void bindreport()

{

  string strprovider = "server=(local);database=pubs;uid=sa;pwd=";

  crystalreport1 ocr = new crystalreport1();

  dataset1 ds = new dataset1();

  sqlconnection myconn = new sqlconnection(strprovider);

  myconn.open();

  string strsel = "select * from stores";

  sqldataadapter myadapter = new sqldataadapter(strsel,myconn);

  myadapter.fill(ds,"stores");

  ocr.setdatasource(ds);

  this.crystalreportviewer1.reportsource = ocr;

}



  注意:在上面的代碼中,你得注意一下orpt是"strongly typed"的報(bào)表文件。如果你需要使用"untyped"報(bào)表,你得使用reportdocument對象,然后再調(diào)用報(bào)表文件。

  運(yùn)行你的程序。

  11) 運(yùn)行你的程序

  將報(bào)表文件導(dǎo)出成為其它格式

  你能夠?qū)?bào)表文件導(dǎo)出成為下列格式:

      1. pdf (portable document format)

      2. doc (ms word document)

      3. xls (ms excel spreadsheet)

      4. html (hyper text markup language – 3.2 or 4.0 compliant)

      5. rtf (rich text format)

  使用pull模式導(dǎo)出報(bào)表

  當(dāng)導(dǎo)出使用pull模式創(chuàng)建的文件時(shí),水晶報(bào)表準(zhǔn)確地打開所需要的數(shù)據(jù),下面是執(zhí)行導(dǎo)出功能的代碼:

c#代碼:

vb.net代碼:

private sub button1_click(byval sender as system.object, byval e as system.eventargs) handles button1.click

  dim myreport as crystalreport1 = new crystalreport1()

  '注意:這里我們建立一個(gè)strong-typed的水晶報(bào)表實(shí)例。

    dim diskopts as crystaldecisions.shared.diskfiledestinationoptions = new crystaldecisions.shared.diskfiledestinationoptions()

    myreport.exportoptions.exportdestinationtype = crystaldecisions.[shared].exportdestinationtype.diskfile

  ' 導(dǎo)出成為其它文件時(shí)也需要這個(gè)選項(xiàng)

  ' 如microsoft exchange, mapi等.

    myreport.exportoptions.exportformattype = crystaldecisions. [shared].exportformattype.portabledocformat

  '這里我們導(dǎo)出成為.pdf格式文件,你也能選擇上面的其它類型文件

    diskopts.diskfilename = "c:/output.pdf"

  '如果你不指定確切的目錄,那么文件就會(huì)保存到[windows]/system32目錄中去了

    myreport.exportoptions.destinationoptions = diskopts

  '水晶報(bào)表文件不包含直接的filename屬性,因此你不能直接指定保存的文件名

  '所以你不得不使用diskfiledestinationoptions對象,設(shè)置它的diskfilename屬性

  '為你想要的路徑,最后將水晶報(bào)表的destinationsoptions屬性指定為上面的diskfiledestinationoption

    myreport.export()

  '上面的代碼將完成導(dǎo)出工作。

end sub



  使用push模式導(dǎo)出水晶報(bào)表

  當(dāng)導(dǎo)出的報(bào)表是由push模式建立的時(shí),第一步就是通過編程建立連接并組裝dataset,設(shè)置報(bào)表的的setdatasource屬性。再下面的步驟就有pull模式一樣的了。


發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 东阿县| 松潘县| 保亭| 交城县| 阿尔山市| 全椒县| 定州市| 凌源市| 岳阳县| 隆安县| 宁明县| 大新县| 姜堰市| 鸡泽县| 泽库县| 邛崃市| 青阳县| 库尔勒市| 民勤县| 通河县| 泸州市| 富源县| 闻喜县| 望奎县| 乐清市| 内黄县| 五莲县| 兰州市| 汨罗市| 贵港市| 四子王旗| 昌吉市| 万年县| 平罗县| 凭祥市| 曲靖市| 临潭县| 安国市| 壤塘县| 海阳市| 惠安县|