【发布时间】:2020-09-26 12:50:03
【问题描述】:
我的应用程序基于 Windows 窗体。我正在使用 RDLC(版本 15.3.1)创建报告。这个报告应该有一个表格,里面填满了我从 DataGridView 获取的数据。
从DataGridView传输数据到报表如下。
List<OriginalPredicted> op = new List<OriginalPredicted>();
op.Clear();
for (int i = 0 ; i < mp.predResultsGridView.Rows.Count; i++)
{
op.Add(new OriginalPredicted { Original = (double)mp.predResultsGridView.Rows[i].Cells[0].Value, Predicted = (double)mp.predResultsGridView.Rows[i].Cells[1].Value });
}
ReportDataSource rds = new ReportDataSource("Dataset_Orig_Pred", op);
reportViewer.LocalReport.DataSources.Clear();
reportViewer.LocalReport.DataSources.Add(rds);
reportViewer.LocalReport.Refresh();
在此之前,我创建了一个由类实例组成的列表。类实现如下:
public class OriginalPredicted
{
public double Original { get; set; }
public double Predicted { get; set; }
}
问题是当我想添加一个数据集并选择一个对象作为数据源时,我在“选择数据对象”窗口中找不到任何要使用的类(业务对象) .项目树下只有“属性”项,但我希望也能看到我创建的类。 Image of "Select the data objects" window
我尝试了什么:
- 将编译选项更改为 x86。我猜 RDLC 在 x86 环境下运行良好,所以 x64 依赖存在问题。 没用。这里提供了解决方案:Class (Business Object) not appearing in Report Data toolbox for RDLC
- 重建项目解决方案。 没有任何改变。
- 重新启动 Visual Studio。 还是没有运气。
项目中存在严格针对 x64 架构的依赖项会影响数据源配置向导的行为吗?
我的项目使用版本控制系统。会不会也有影响?
另外,我试图在干净的项目中重现该问题。在这种情况下,一切正常。不幸的是,我无法在其他地方重做该项目,因为它非常耗时。 Image of "Select the Data Objects" window after reproducing issue
谢谢。
【问题讨论】:
-
是否有特定原因您的 for 循环直到最后一个索引(即
int i = 0 ; i < mp.predResultsGridView.Rows.Count - 1而不是int i = 0 ; i < mp.predResultsGridView.Rows.Count才迭代? -
@jonathana,我的错,修好了。
标签: c# winforms datagridview rdlc objectdatasource