使用sql語句直接生成dataset做為水晶報表的資料來源
使用sql語句直接生成dataset做為報表的資料來源(即push模式),這樣就可以接受引數了。當然報表有設定引數的功能 這方面我還沒有詳細研究
一.sql語句中沒有使用表的相互關聯(簡單的查詢語句)
設計一個DataSet
1) 右擊“解決方案瀏覽器”,選擇“新增”--“新增新項”-->“資料集”
2) 從“伺服器資源管理器”中的“SQL Server”中拖放“Stores”表(位於PUBS資料庫中)
3) 此時在資料集中就會有一個Stores表的結構圖。xsd檔案中僅僅包含一個結構圖,但是不會有任何資料在裡面
建立一個.rpt檔案crystalreport1.rpt同時將其指定給上一步建立的DataSet。
4) 使用上面的介紹過的方法建立此檔案,唯一的不同就是使用資料集來代替前面的直接連線資料。
5)建立.rpt檔案之後,右擊“詳細資料”-->"新增/刪除資料庫“profile.yahoo.com/337ZFW6LOECP4X7LM3HY2MNLN4/
6) 在”資料庫專家“視窗中,展開”專案資料“(代替以前的OleDb),展開“ADO.Net資料集”--"DataSet1“,選擇”Stores“表。
7) 將”Stores"表新增到“選定的表”中,點選“OK”
8) 建立一個WebForm1.aspx 拖入一個Crystal Report Viewer 控制元件
9)WebForm1.aspx.cs
ReportDocument oRpt = new ReportDocument();
string RptDir="f:\\bbs\\test\\crystal\\crystalreport1.rpt";
oRpt.Load(RptDir);
...//根據sql語句得到DataSet 這個就不多說了
oRpt.SetDataSource(ds);
CrystalReportViewer1.ReportSource=oRpt;
//注意push模式用不到設定logOnInfo引數
10)執行試試看!應該沒問題哦