2013-04-21 81 views
0

的WinForms的ReportViewer(.NET 3.5)結合數據從數據表的WinForms的ReportViewer(.NET 3.5)從數據表

結合數據我想要一個DataTable被動態創建,綁定到ReportViewer控件。在互聯網上有很多這方面的教程,但他們似乎沒有爲這個項目工作...(有堆棧溢出相關的問題,但解決方案不起作用在我的情況下)

這是事件爲顯示報告按鈕處理程序:

private void btn_ShowRwport_Click(object sender, EventArgs e) 
    { 
     //Set the date range for the report 
     rptctn.SetDateRangeOne(listBox1.SelectedItem.ToString(), dateTimePicker_Start.Value, dateTimePicker_End.Value); 

     //Get the report datatable 
     DataTable dt = rptctn.GetReportTest(listBox1.SelectedItem.ToString()); 

     //Set the datagridview 
     dataGridView1.DataSource = dt; 

     //Set the reportViewer 
     this.reportViewer1.LocalReport.DataSources.Clear();    
     Microsoft.Reporting.WinForms.ReportDataSource rprtDTSource = new Microsoft.Reporting.WinForms.ReportDataSource(dt.TableName, dt); 
     this.reportViewer1.LocalReport.DataSources.Add(rprtDTSource); 
     this.reportViewer1.RefreshReport(); 
    } 

我知道DataTable中得到了適當的重試爲DataGridView的工作... https://docs.google.com/file/d/0B6b_N7sDgjmvZHpEYS1BWWhqZ3c/edit?usp=sharing

該項目具有以下限制:

  • 由於客戶端環境,必須使用.NET 3.5。 (所以報告查看器2008)

  • 創建數據表和的ReportViewer是在不同的包(應用/表示層)

  • 我試圖避免產生.rdlc文件作爲報告(數據表)有一個變量行數/列數。

任何人都知道我可以如何綁定一個動態創建的DataTable到報表查看器在我的情況?

+0

報告中的數據源與'dt.TableName'名稱相同嗎? – 2013-04-21 01:33:24

+0

@JoeyGennari我沒有設置reportViewer1的數據源(我認爲這就是上面的代碼);也正如我上面提到的我沒有任何.rdlc文件在項目中,我會設置數據源? dt.TableName的值是一個空字符串。 – zaza 2013-04-21 01:41:51

+0

真正需要做的是動態創建一個RDLC文件並添加一個表格。我從http://www.gotreportviewer.com找到了一些第三方示例代碼,只需在頁面的右側查看動態生成RDLC - 表。 – 2013-04-21 01:56:53

回答

1

真的你要做的是動態創建一個RDLC文件並添加一個表。我用gotreportviewer.com的一些代碼找到了第三方示例,只是在頁面的右側向下看動態生成RDLC - 表。