【问题标题】:Create custom reports with crystal reports and entity framework 4使用水晶报表和实体框架 4 创建自定义报表
【发布时间】:2011-11-22 17:26:29
【问题描述】:

我想允许一个 asp.net mvc 2 应用程序的用户,创建动态报告。在 SQLServer 数据库中是一个包含用户所有任务的表。每个任务都依赖于一个项目和一个用户。我想做的是创建一些报告,例如“向我显示项目 X 的​​所有任务”或“向我显示我的所有任务”,以及“向我显示项目 Y 的状态为 X 的所有任务”之类的报告。此列表应可导出为 PDF 或 CSV。如果可以在 asp.net mvc 视图中显示此列表,那就太好了。

我读了很多关于水晶报告的文章,似乎我想要的东西都可以用它来实现。我找到了一些教程,这些教程解释了如何在报告中显示表格的所有列。但我不明白的是如何“即时”设置一些条件。

如果像下面的伪代码能做我想做的事,那就太好了:

// Load the tasks with Entity Framework by reference to some Condition
List<Task> tasks = GetTasks(userId); 

// Load the reportfile
var report = GetChristalReport("Name of the .rpt report file");

// Set the loaded entities to the report
report.setData(tasks);

// Export it to pdf or do what you want with the rendered report
var pdf = report.ExportToPdf();

我希望你能帮助我,并告诉我水晶报告是否可以实现这一点以及我如何实现这一点。

【问题讨论】:

  • 输出文件需要在 ASP 中查看还是只保存到磁盘?如果确实需要在 ASP 中查看,是否需要以 PDF、rpt 等格式查看?
  • 如果能用ASP查看就好了,但不是必须的。

标签: visual-studio-2010 asp.net-mvc-2 entity-framework-4 crystal-reports


【解决方案1】:

你提到的一切在 CR 中不仅是可能的,而且相对容易做到。您需要做的大部分工作是创建一个 ReportDocument 对象,调用 repDoc.Load("myReport.rpt");然后是 repDoc.ExportToDisk(fileFormat, fileName);你就完成了。如果你想在 asp 中以 rpt 文件的形式查看它,你需要创建一个 ReportViewer 对象,这有点困难,但 ASP 本身支持在浏览器中查看 pdf。希望对你有帮助

【讨论】:

  • 好的,我明白我应该以哪种方式显示报告。但我仍然不明白如何为报告设置数据。我不想显示表格的所有数据。我想创建一个取决于用户输入的条件。类似于“上周一和今天之间的创建日期”。我尝试将实体框架对象列表设置为报告的数据源
  • 在报表设计器中为报表添加参数来限制报表中显示的数据
  • 你有一个简单的例子或教程来解释这个吗?
  • 如果您在报表设计器帮助中键入“添加参数”,那里有一个很好的示例
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-11-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多