【发布时间】:2015-10-28 16:44:25
【问题描述】:
我有一个 reportViewer 和多个报告(例如 Report1.rdlc、Report2.rdlc、ecc), 我如何以编程方式在它们之间切换?
我能够分配不同的报告,但是当我执行程序时它说我需要分配数据来源,我该如何做到这一点?
编辑:到目前为止,这是我的代码:
public Report()
{
InitializeComponent();
this.View_StatoMagTableAdapter.Fill(this.NGStoreV2DataSet.View_StatoMag);
this.mag2TableAdapter.Fill(this.NGStoreV2DataSet.mag2);
this.mag2BindingSource.DataMember = "mag2";
this.mag2BindingSource.DataSource = this.NGStoreV2DataSet;
}
private void reportViewer1_Load(object sender, EventArgs e)
{
this.reportViewer1.Reset();
var binding = new BindingSource();
binding.DataSource = this.NGStoreV2DataSet.mag2;
ReportDataSource rds = new ReportDataSource("NGStoreV2DataSet", binding);
this.reportViewer1.LocalReport.DataSources.Clear();
this.reportViewer1.LocalReport.DataSources.Add(rds);
this.reportViewer1.LocalReport.ReportEmbeddedResource = "ReportViewerForm.Report2.rdlc";
this.reportViewer1.RefreshReport();
}
新版本还是不行,运行程序时还是会询问数据来源。
我已经尝试了不同的组合,但这些都不起作用。 像这样的组合:
var binding = new BindingSource();
binding.DataSource = this.NGStoreV2DataSet.mag2;
ReportDataSource rds = new ReportDataSource("NGStoreV2DataSet", binding);
或
ReportDataSource rds = new ReportDataSourc("NGStoreV2DataSet", this.mag2BindingSource);
编辑:我终于设法解决了这个问题!我使用了错误的数据集(NGStoreV2DataSet 而不是报表数据集,它是 DataSet1) 感谢 tezzo 和 Hadi 的大力帮助;)
【问题讨论】:
-
你是如何设置它的?你的实现在哪里?
标签: c# reportviewer