假设我有一个使用ORM(我正在考虑使用nHibernate或LINQ to Entities)进行数据访问的应用程序。如何为我的用户提供针对对象属性进行报告的功能?我所知道的所有最终用户报表设计者都直接与数据库对话,但我不喜欢在已经存在于应用程序对象中的报表中重复逻辑。
还有标准的解决方案吗?
我希望系统使用反射(或其他方法)从我的对象中获取模式,然后让用户构建一个linq查询,该查询可以针对我提供的IQueryable运行。
我自己编写所有数据检索逻辑并不吸引人。创建DataSet以表示我的所有对象更具吸引力。 (如果我喜欢数据集,我不会看ORM系统)
新的.NET RIA Services是解决方案的良好基础吗?
答案 0 :(得分:2)
您还可以查看XtraReports from DevExpress
XtraReports可以从任何实现IList,ITypedList或IBindingList接口的数据源生成报告。
答案 1 :(得分:1)
许多第三方报表设计器允许您从自己的数据源生成报表。例如。 DataSet,IList等
它们似乎都没有让用户使用Ling类型查询等设计报告。
(如果有人想出更好的答案,我会删除这个答案,并将更好的答案设为预期的答案。)
答案 2 :(得分:0)
您可以使用SSRS报告,但不能使用基于服务器的报告。我认为他们称他们为当地报道。
在此模式下,您将数据提供给报表而不是获取数据的报表,因此从概念上讲,您可以编写一种方法将对象转换为数据集,然后将其传递到报表中。
答案 3 :(得分:-1)
请查看数据动态报告。我们允许您指定最终用户将在设计器中看到的数据集,但您可以在后台从任意源加载数据。实际上,我们对一组对象有特殊的数据源支持。与您所关注的内容相关的几个截屏视频如下:
所有其他截屏视频均为http://www.datadynamics.com/Products/DDRPT/#screencasts
我们还有a knowledge base article on our website逐步将linq查询绑定到ActiveReports。
Scott Willeke
Data Dynamics / GrapeCity