2013-04-21 59 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 - 表。