【发布时间】:2015-12-08 23:45:56
【问题描述】:
绅士,
在我构建这个问题之前,我阅读了 30 多个搜索条目(并全部尝试了),其中大部分都没有回复。虽然这是我第一次在这里提问,但 10 多年来,这里一直是我最喜欢得到答案的地方。所以这里开始......我创建了以下代码来接受来自另一个页面上我的数据集的数据并将其传播到报表查看器中。
//Creates the Grid View
dataGridViewReport.DataSource = null;
dataGridViewReport.DataSource = ds.Tables[0].DefaultView;
//Creates the Report
reportViewer1.LocalReport.DataSources.Clear();
this.reportViewer1.LocalReport.ReportPath = Application.StartupPath + @" \Report1.rdlc";// @"C:\Users\Pat\Documents\Visual Studio 2010\Projects\TTW 151200\TTW\Report1.rdlc";
DataTable dt = ds.Tables[0];
dt.TableName = "DataSet1";
ReportDataSource rds = new ReportDataSource("DataSet1", dataGridViewReport.DataSource);
reportViewer1.LocalReport.DataSources.Add(rds);
reportViewer1.RefreshReport();
当页面加载时,此页面从构造函数接受数据集值并在上面的代码中使用它。到目前为止,这一直是一场磨难,但我认为这可能很接近。我认为问题可能是找不到报告文件,尽管它不再抛出该错误。现在,当我创建报告文件 (Report1.rdlc) 时,它与其他表单文件一起出现。我以为我读到的是,它会在运行时位于 /bin 或 /release 文件夹中,但它似乎不存在,我也无法将其复制到该位置。我找不到实际路径在哪里,只有它没有运行时的路径。所以......首先,我不确定我是否有正确的代码来创建报告,但它不再抛出任何错误。视图显示只是说它找不到这个文件。其次,我应该指向哪里,以便此代码(或任何代码)具有文件的正确路径,以便可以创建报告。最后,我不明白需要数据集名称的参数,所以我只是从我发现的一些示例中复制了一些应该有效的代码。我将 Build Action 更改为 Embedded Resource 并将 Copy the Copy To Output 更改为 Copy Always 在属性表中(尽管它从未对我有用)。请帮忙。一个简单、清晰的代码 sn-p 将大大帮助我恢复理智!谢谢!
【问题讨论】:
标签: c# sql-server datagridview reportviewer