2010-03-19 230 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();