Windows报告添加到数据源列表

时间:2011-03-20 10:02:57

标签: c# ssrs-2008

我有点问题:) 我创建了实体,我想在VS 2008中填写并显示在Windows报告中。

我的实体代码

namespace MvcApplication3.entities
{
    public class invoiceRow
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public string Surname{get;set;}
        public decimal Income { get; set; }

    }
}

我想要做的是将此实体显示在数据源vindow中以进行报告,这样我就可以选择数据源(使用实体并将其添加到报告中)。 我知道如何绑定它,但不知道如何获取报告来检测这个实体。


我发现如果我创建类:代码如下,

  public List<invoiceRow> rows()
    {
        List<invoiceRow> list = new List<invoiceRow>();

        return (list);
    }

报告将检测实体。我怎么不明白为什么? 是否必须拥有数据源,才能在报表数据源中显示实体?

1 个答案:

答案 0 :(得分:0)

您的实体类似乎没有任何问题。对我而言,它可以作为数据源。你有足够的搜索,因为我认为数据源配置向导按类名称对类进行排序。这是我的代码:

reportViewer1.ProcessingMode = ProcessingMode.Local;
reportViewer1.LocalReport.LoadReportDefinition(Assembly.GetExecutingAssembly().GetManifestResourceStream("MyProject.Report1.rdlc"));
reportViewer1.LocalReport.DataSources.Clear();
var dataSourcesNames = (ReadOnlyCollection<string>) reportViewer1.LocalReport.GetDataSourceNames();
reportViewer1.LocalReport.DataSources.Add(new ReportDataSource(dataSourcesNames[0], objectCollection));//objectCollection is a List<MyObject>
reportViewer1.RefreshReport();

是的,对象数据源总是必须是一个集合。如果你认为它有点像数据库表(在某个阶段总是有多行)。