DevExpress:XtraGrid与WebForms和实体框架



从今天起,我对XtraReports(以及DevExpress)完全陌生。。我有两天的时间来执行一份报告,所以如果你愿意的话,请善意地提供一个彻底的解释。

我必须使用的是:

  1. WebForms(.NET 4)
  2. 实体框架(edmx,而非代码优先)
  3. 我已经创建了一个报告(继承了DevExpress.XtraReports.UI.XtraReport)
  4. 目前报告中没有字段,因为我不知道如何将其绑定到我的实体

我确实找到了一个有人在做这件事的网站:

NorthwindEntities entities = new NorthwindEntities();
report.DataSource = entities.Categories;

我试着在构造函数中这样做:

 this.DataSource = context.Tenants.ToList();

但是,尽管我可以看到有8条记录,但报告没有显示任何内容。我想我需要创建一些控件并绑定它们。有人有针对这种情况的工作代码吗?

编辑

万一有人问。。是的,我已经到处搜索了一个例子,包括这里:http://documentation.devexpress.com/#XtraReports/CustomDocument9814.该网站确实展示了如何绑定到数据集。。但我不知道如何使用实体框架来代替它。。。这就是为什么我在这里问。。。

这起到了作用:http://www.devexpress.com/Support/Center/p/Q334667.aspx

显然,您可以在上面拖动一个bindingSource,但您需要在设计器中添加一行额外的代码。就我而言:

this.bindingSource.DataSource = typeof(Tenant);

现在,我可以看到填充了该类所有属性的字段列表,并且可以将字段拖放到设计器中。。

我们也使用XtraReports,但在winform解决方案中,所以我不知道一切是否完全相同。

假设您在项目中添加了xtraReport文件,就像我们在其中一个项目中所做的那样,您可以在设计时而不是在运行时设置数据源。要执行此操作,请打开报表并在"属性"窗口中查看。当您这样做时,您可以从visualstudio中的字段窗口中选择字段或完整的表,并将它们添加到报表中。假设您不希望用户能够设计报告,那么您也可以在这里这样做。

根据我的经验,创建一个单独的edmx文件是明智的,该文件只保存您想要为报表显示的数据。devexpress处理数据的方式是,它在过滤数据之前先检索所有数据,对于大型数据集,这可能需要一段时间。

最新更新