0

我想允许一个asp.net mvc 2应用程序的用户创建动态报表。在SQLServer数据库中是一个包含用户所有任务的表格。每项任务都取决于项目和用户。我想要做的是创建一些报告,如“向我展示项目X的所有任务”或“显示我所有的任务”,但也包括“向我展示我的所有任务,项目Y的状态X”。此列表应该可以导出为PDF或CSV。如果可以在asp.net mvc视图中显示此列表,这也会很好。使用水晶报表和实体框架创建自定义报表4

我读了很多关于水晶报告,看来我想要的是可能的。我找到了一些教程来解释如何在报告中显示表格的所有列。但是我不明白的是我如何设置一些条件“即时”。

这将是非常好的,如果像下面的伪代码会做我想做的:

// 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(); 

我希望你能帮助我,并说,如果这是可能的CHRYSTAL报告,我怎么能实现这一点。

+0

输出文件需要在ASP中查看还是只保存到磁盘?如果确实需要在ASP中查看,那么它需要被视为PDF,rpt等。 –

+0

如果可以在ASP中查看它,但它不是必须的。 –

回答

2

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

+0

好吧,我理解我应该显示报告。但我仍不明白我如何为报告设置数据。我不想显示表格的所有数据。我想创建一个条件取决于用户输入。类似于“上周一至今天的创建日期”。我所尝试的是将实体框架对象的列表设置为报告 –

+1

的数据源,以限制在报告中向报告添加参数的报告中显示的数据在报告设计器中 –

+0

您是否有简单的示例或教程来解释此问题? –