怎樣使用水晶報表的推模式?

來源:互聯網
上載者:User
水晶報表  

1.根據報表的結構欄位,建立一個xsd檔案,用來存放資料。

2.建立一個報表,注意建立的時候要瀏覽到該xsd檔案,

   建好後找到該報表的屬性"自訂工具",把原來的

  "CrystalDecisions.VSDesigner.CodeGen.ReportCodeGenerator"

  改為"CrystalDecisions.VSShell.CodeGen.ReportCodeGenerator"

  這樣就會產生一個按照你報表名命名的zsmxb.cs檔案,其實就是下面的類zsmxb

   同時建立一個頁面,把CrystalReportViewer控制項放到頁面,

   並且要在該分頁檔的頂部申明一下報表的類,

   public class Fr_zsmxb : System.Windows.Forms.Form
   {
        zsmxb crReportDocument;

       .........

3.建立報表結構

   DataSet dss=new DataSet();
   DataTable dt=new DataTable("zsmxb");
   dt.Columns.Add("cchbh",System.Type.GetType("System.String"));
   dt.Columns.Add("nglf",System.Type.GetType("System.Decimal"));
   dt.Columns.Add("ncf",System.Type.GetType("System.Decimal"));
   dt.Columns.Add("nqyf",System.Type.GetType("System.Decimal"));
   dt.Columns.Add("nzsf",System.Type.GetType("System.Decimal"));
   dt.Columns.Add("ntcf",System.Type.GetType("System.Decimal"));
   dt.Columns.Add("ngz",System.Type.GetType("System.Decimal"));
   dt.Columns.Add("nzjf",System.Type.GetType("System.Decimal"));
   dt.Columns.Add("nylf",System.Type.GetType("System.Decimal"));
   dt.Columns.Add("nwxf",System.Type.GetType("System.Decimal"));
   dt.Columns.Add("nsy",System.Type.GetType("System.Decimal"));
   dt.Columns.Add("nqtf",System.Type.GetType("System.Decimal"));
   dt.Columns.Add("nxj",System.Type.GetType("System.Decimal"));
   dss.Tables.Add(dt);

   注意:這裡的DataTable dt=new DataTable("zsmxb");這句中表名"zsmxb"要和你的xsd檔案中的表名要一樣,

  同時,dt的欄位名、類型,都要和xsd檔案一樣,否則回產生"查詢引擎錯誤"。

4.為這個ds傳入資料

   for(int i=0;i<this.ds.Tables["zsmxb"].Rows.Count;i++)
   {
    DataRow dr=dt.NewRow();
    dr["cchbh"]=this.ds.Tables["zsmxb"].Rows[i]["cchbh"];
    dr["nglf"]=this.ds.Tables["zsmxb"].Rows[i]["nglf"];
    dr["ncf"]=this.ds.Tables["zsmxb"].Rows[i]["ncf"];
    dr["nqyf"]=this.ds.Tables["zsmxb"].Rows[i]["nqyf"];
    dr["nzsf"]=this.ds.Tables["zsmxb"].Rows[i]["nzsf"];
    dr["ntcf"]=this.ds.Tables["zsmxb"].Rows[i]["ntcf"];
    dr["ngz"]=this.ds.Tables["zsmxb"].Rows[i]["ngz"];
    dr["nzjf"]=this.ds.Tables["zsmxb"].Rows[i]["nzjf"];
    dr["nylf"]=0;
    dr["nwxf"]=0;
    dr["nsy"]=0;
    dr["nqtf"]=this.ds.Tables["zsmxb"].Rows[i]["nqtf"];
    dr["nxj"]=System.Convert.ToDecimal(dr["nglf"].ToString())+System.Convert.ToDecimal(dr["ncf"].ToString();    

   dt.Rows.Add(dr);
   } 

這裡的ds是同過查詢得到的,這裡只是舉個例子。

5.把得到的報表資料來源dss綁定到水晶報表。

   crReportDocument=new zsmxb();
   crReportDocument.SetDataSource(dss);
   crystalReportViewer1.ReportSource = crReportDocument; 



相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。