我的项目表包含每个项目都有特定日期的项目。我想生成一个报告,显示两个不同日期之间的项目。例如,我放了两个timedatepicker控件,以便用户选择From:24/9/2009 To:19/3/2010然后按一个按钮生成这些日期之间的项目报告。
我正在使用报表查看器控制btw而不是水晶报表。
编辑:
好吧我用linq查询想出来并将它绑定到数据源,如下所示:
var query = from c in MyDatabase01DataSet.Items
where c.ProductDate >= Convert.ToDateTime(x) && c.ProductDate <= Convert.ToDateTime(y)
select c;
ItemsBindingSource.DataSource = query.ToList();
reportViewer1.LocalReport.ReportEmbeddedResource = "[reportTest.Report3.rdlc";
reportViewer1.LocalReport.ReportPath = "Report3.rdlc";
reportViewer1.ProcessingMode = Microsoft.Reporting.WinForms.ProcessingMode.Local;
reportViewer1.RefreshReport();
答案 0 :(得分:1)
在查询的where子句中使用date(From / to)。或者如果您使用DataTable
,请使用.Select
过滤特定记录。如下所示:
string strFilter =“dateFromCol&gt;”+ DateFrom.Value +“and dateToCol&lt;”+ DateTo.Value; yourTable.Select(strFilter的);
将.DataSource属性与DataTable绑定。
reportViewer1.LocalReport.DataSources.Add(new ReportDataSource(“yourDataSourceName”,yourTable));
刷新ReportViewer
This article有一个简单的例子,可以帮助您入门。
答案 1 :(得分:0)
var query = from c in MyDatabase01DataSet.Items
where c.ProductDate >= Convert.ToDateTime(x) && c.ProductDate <= Convert.ToDateTime(y)
select c;
ItemsBindingSource.DataSource = query.ToList();
reportViewer1.LocalReport.ReportEmbeddedResource = "[reportTest.Report3.rdlc";
reportViewer1.LocalReport.ReportPath = "Report3.rdlc";
reportViewer1.ProcessingMode = Microsoft.Reporting.WinForms.ProcessingMode.Local;
reportViewer1.RefreshReport();