我有点问题:) 我创建了实体,我想在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);
}
报告将检测实体。我怎么不明白为什么? 是否必须拥有数据源,才能在报表数据源中显示实体?
答案 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();
是的,对象数据源总是必须是一个集合。如果你认为它有点像数据库表(在某个阶段总是有多行)。