1. 程式人生 > >使用sql語句直接生成dataset做為水晶報表的資料來源

使用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)執行試試看!應該沒問題哦