一、在使用內建的水晶報表時,請註冊,否則只能使用30次
水晶報表註冊碼
註冊號:6707437608
密碼:AAP5GKS0000GDE100DS
二、實戰
準備知識:DataSet作為水晶表的資料來源只是一個架構結構,做完了水晶表以後,它就沒有用了.做水晶表時的dataset,跟以後的fill的dataset的路徑之類可以不同,當然最好是一致.特別是水晶表中要使用的欄位.
一句話,那dataset只是水晶表的一個架構而已.
編程:
有了上面的準備知識,就知道該如何辦了,水晶表跟dataset的fill分開,最後捆綁在一起就行了.
BindReport()
{
//不管用什麼方式,只要能fill,dataset就行
string strProvider = "Server=(local);DataBase=pubs;UID=sa;PWD=";
SqlConnection MyConn = new SqlConnection(strProvider);
MyConn.Open();
string strSel = "Select * from Stores";
SqlDataAdapter MyAdapter = new SqlDataAdapter(strSel,MyConn);
Dataset1 ds = new Dataset1();//這個DataSet1在結構上最好跟水晶表的一致,
//路徑可以不同
MyAdapter.Fill(ds,"stores");//"stores"應該跟水晶表中指定的dataset的表名一樣
//這裡可以有兩種方式;"Strongly Typed"的報表檔案和"UnTyped"報表.兩種不能同時用,只能取其一.
cr水晶報表名 oCR =new cr水晶報表名();//第一種
ReportDocument oCR = new ReportDocument();//第二種
oCR.Load("cr水晶報表名.rpt")
oCR.SetDataSource(ds);
this.CrystalReportViewer1.ReportSource = oCR;
}