【发布时间】:2014-03-27 21:34:05
【问题描述】:
我创建了充当报表加载器的 Windows 窗体。我还通过报告向导创建了两个 RDLC 报告,它自动为这两个报告创建了数据集。现在我有两个数据集:sparcsn4DataSet.xsd 和 sparcsn4DataSet1.xsd,它们使用存储过程并传递两个参数(dateFrom/dateTo)。我在绑定数据集时遇到问题,具体取决于状态:
if (idRep.Equals("extraMove"))
如果您有一个报表,将数据集绑定到报表视图非常容易。
但是如果你有不止一个呢?我总是可以使用另一个报表查看器创建另一个表单,但这不是一个选项(如果您有 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...!");
}
这是 ReportForm.cs,上面有 reportviewer:
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();
}
}
}
【问题讨论】:
标签: c# binding dataset reportviewer