2010-03-19 187 views
0

我的项目表包含项目与每个项目都有一个特定的日期。我想生成一个显示两个不同日期之间项目的报告。例如,我会放置两个timedatepicker控件,以便用户选择From:24/9/2009 To:19/3/2010,然后按一个按钮生成这些日期之间的项目报告。帮助报告查看器

我使用报表查看器控制顺便说一句,没有水晶报告。

编辑:

好吧,我想通了使用LINQ查询并将其绑定到数据源是这样的:您的查询的WHERE子句中

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(); 

回答

1
  • 使用日期(自/至) 。或者如果您使用DataTable,则使用.Select来过滤特定的记录。类似如下:

    string strFilter =“dateFromCol>”+ DateFrom.Value +“and dateToCol <”+ DateTo.Value; yourTable.Select(strFilter);

  • 将.DataSource属性与您的DataTable绑定。

    reportViewer1.LocalReport.DataSources.Add(new ReportDataSource(“yourDataSourceName”,yourTable));

  • 刷新您的ReportViewer

This article具有简单的例子,可以帮助您开始使用。

+0

虽然我想到了另一种方式。但是谢谢你的时间。 – DanSogaard 2010-03-19 11:04:10

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();