Dim dt As DataTable
'取出報表欲顯示之資料集
dt = db.GetData("select * from BarcodeRec")
'使用ReportDocument載入實體報表檔
rptDoc.Load(My.Computer.FileSystem.CurrentDirectory + "\frmBarCodeP.rpt")
'將報表物體的資料來源設定為DataTable
rptDoc.SetDataSource(dt)
'以報表檢視器顯示報表
CrystalReportViewer1.ReportSource = rptDoc
以下為之前在網站上找到的資料:
大致操作:
a 建立ADO.NET資料集---DataSet1.xsd
b 建立CrystalReports--CrystalReport.rpt
c 設計WEB頁面 拉入報表顯示控件---CrystalReportViewer
d 相關後台編碼
添加相關引用
連接數據庫
用相關查詢的結果填充DataSet1的實例對象
建立ReportDocument--rptDoc
rptDoc載入報表 rptDoc.Load("...")
設定rptDoc的資料來源 rptDoc.SetDataSource(ds)
通過頁面的報表檢視器顯示報表 crViewer.ReportSource = rptDoc
實例步驟:
1 新建web專案
2 在專案中新增ADO.NET資料集-DataSet1.xsd
專案右鍵-加入新項目-資料集
3 建立資料連接
伺服器總管-資料連接-右鍵-加入資料連接
4 將資料表(如tablename)放入剛才所建的資料集
具體就是從資料庫中將該表拉入資料集設計界面即可
5 儲存並建置專案
-----------
6 新增Crystal Reports報表-CrystalReport.rpt
專案-右鍵-加入新項目-Crystal Reports
7 使用標准報表專家 建立報表
8 使用ADO.NET資料集 做為資料來源
9 選擇加入相關表的相關樣位到報表中顯示
10 使用標准樣式
11 儲存並建置專案
----------
12 設計表單 拉入工具樣中的 CrystalReportViewer
13 編寫該WEB頁面的後台代碼
14 加入如下參考:
using System.Data.SqlClient
usint CrystalDecisions.CrystalReports.Engine
15 在適當位置編寫如下相關代碼
建立資料庫連線
SqlConnection sqlconn = new SqlConnection("server=localhost;database=db;uid=uid;pwd=pwd;");
sqlconn.Open();
建立SQL指令
SqlDataAdapter sda = new SqlDataAdapter("select * from table", sqlconn);
取回資料放入資料集
DataSet1 ds = new DataSet1();//注意 此處用的是 剛才所建立的資料集 而不是慣用的DataSet
sda.Fill(ds, "tablename");//注意 此處的tablename 要與剛才在建立資料集時 用到的tablename相同
建立報表物體-rptDoc
ReportDocument rptDoc = new ReportDocument();
載入報表-CrystalReport.rpt
rptDoc.Load(this.Server.MapPath("./").ToString() + "/CrystalReport.rpt");
將報表物體的資料來源設定為ds
rptDoc.SetDataSource(ds);
以報表檢視器顯示報表
this.CrystalReportViewer1.ReportSource = rptdoc;
this.CrystalReportViewer1.DataBind();
------------
編譯運行 查看效果
參考資料:
沒有留言:
張貼留言