C#下水晶報表的資料動態綁定(推模式, 非關聯資料庫)

來源:互聯網
上載者:User

因為項目的中的資料是來源於網路, 而不是資料庫, 所有的table 都是動態建立的, 因此使用報表時也需要動態建立.

具體樣本如下:

1.  MainForm 下 Data的 擷取:

        public DataTable table = new DataTable("myTable");

        // 建立資料表資料
        public void CreateDataTable()
        {
            table.Columns.Clear();

            DataColumn column = new DataColumn("userName", Type.GetType("System.String"));
            column.Caption = column.ColumnName;
            table.Columns.Add(column);

            table.Rows.Clear();
            for (int i = 0; i < 8; i++)
            {
                DataRow newRow = table.NewRow();
                newRow[1] = "Name " + i.ToString();
                table.Rows.Add(newRow);
            }
        }

2 顯示報表表單:

   調用的是帶1個參數的 報表表單的建構函式:
// 顯示水晶報表  
private void btnCrystalReport_Click(object sender, EventArgs e)  
{  
    FormCrystal frmreport = new FormCrystal(table);  
 
    frmreport.Text = "水晶報表示例";  
    frmreport.WindowState = FormWindowState.Maximized;      
     
    frmreport.ShowDialog();  
    frmreport.Dispose();  
}  
     

3. 報表表單的建構函式(帶1個參數):

        public FormCrystal(DataTable table)
        {
            InitializeComponent();
            ReportDocument doc = new ReportDocument();           
            string rptname= @"D:\C#.Projects\CSProjects\csReportExam\CrystalReport1.rpt"; // 設計的報表
            doc.Load(rptname);
            doc.SetDataSource(table); // 設定資料來源
              this.crystalReportViewer1.ReportSource = doc;  // 載入報表
          
        }

4. 水晶報表的設計:

(1).  報表表單上放置一 CrystalReportViewer 控制項,  並建立 一個報表: CrystalReport1.rpt;

(2).  應用程式項目添加新項目:  資料 -- 資料集 , 儲存為 DataSet1.Xsd;

(3). 在資料集視圖下, 添加 Table , 此時主要名字一定要和 傳遞過來的表名一致, 命名為 myTable; 按照 myTable 中的 Column 添加列, 這裡只有一個: userName, 命名也要保持一致.(這裡很關鍵, 否則報表中就不能顯示出資料.)

(4). 在報表設計檢視下, 開啟"資料庫專家",  選 "項目資料" -- "ADO.NET 資料集" , 將表加入到"選定的表"中, 再回到視圖下就可以把需要在報表顯示的列(欄位)拖動 報表中的"詳細欄位"中.

這樣就實現了一個基本的水晶報表動態資料繫結.

聯繫我們

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

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

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.