我已經創建的窗口形成充當報告裝載機。我還通過報告嚮導創建了兩個RDLC報告,並自動爲這兩個報告創建數據集。現在我有兩個數據集:sparcsn4DataSet.xsd和sparcsn4DataSet1.xsd正在使用存儲的過程和將兩個參數(dateFrom/dateTo)方法。我有根據狀態結合數據集的一個問題:如何動態綁定的數據源的ReportViewer Windows窗體C#
if (idRep.Equals("extraMove"))
這是很容易綁定數據集reportview,如果你有一個報告。
但是如果你有一個以上的?我總是可以用另一個報表查看器創建另一個表單,但這不是一個選項(如果有10個報表/數據集,該怎麼辦),這絕對沒有問題?
應該有綁定數據集的ReportViewer ......有沒有人有想法的方式,我怎麼可以根據情況解決綁定問題?
if (idRep.Equals("extraMove"))
{
this.AGCT_ServiceEventReportTableAdapter.Fill(this.sparcsn4DataSet.AGCT_ServiceEventReport, d1,d2);
}
else if (idRep.Equals("stripStuff"))
{
this.AGCT_StripStuffReportTableAdapter.Fill(this.sparcsn4DataSet1.AGCT_StripStuffReport, d1, d2);
}
else
{
MessageBox.Show("Ooops, something went wrong...!");
}
這是有它的ReportViewer ReportForm.cs:
namespace NavisReportLoader
{
public partial class ReportForm : Form
{
public DateTime d1;
public DateTime d2;
public string dat1;
public string dat2;
public string idRep;
public ReportForm()
{
InitializeComponent();
}
public void passParam(string dateFrom, string dateTo, string date1, string date2)
{
//ispravi ovo
d1 = Convert.ToDateTime(dateFrom);
d2 = Convert.ToDateTime(dateTo);
dat1 = date1;
dat2 = date2;
}
public void report(string id)
{
idRep = id;
}
private void ReportForm_Load(object sender, EventArgs e)
{
ReportParameter[] param = new ReportParameter[2];
param[0] = new ReportParameter("date1", dat1);
param[1] = new ReportParameter("date2", dat2);
this.reportViewer1.LocalReport.SetParameters(param);
if (idRep.Equals("extraMove"))
{
this.AGCT_ServiceEventReportTableAdapter.Fill(this.sparcsn4DataSet.AGCT_ServiceEventReport, d1,d2);
}
else if (idRep.Equals("stripStuff"))
{
this.AGCT_StripStuffReportTableAdapter.Fill(this.sparcsn4DataSet1.AGCT_StripStuffReport, d1, d2);
}
else
{
MessageBox.Show("Ooops, something went wrong...!");
}
this.reportViewer1.RefreshReport();
}
}
}
做得好的解釋有時候我覺得一些微軟技術不太常用 –