我有一个Web应用程序,它通过reportviewer控件提供SQL报告服务报告。由于某些报告的复杂性,我使用附加到业务对象的rdlc报告。
现在我想扩展系统并允许某种形式的用户定义报告。理想情况下,我希望用户将他们的报告连接到我用来创建rdlc报告的相同业务对象。
我的所有开发都是在VS 2005中使用SQL 2005完成的,但如果2008年的新功能有助于解决方案,我可以进行升级。
答案 0 :(得分:3)
这不是一个很好的答案,但在我的公司,我已经整合了我们自己的报告生成器。
我们有大约30份报告服务报告,我们的用户可以通过网络或桌面应用程序访问这些报告。我们想要做的是让我们的用户能够在这些报告中获取任何给定的部分并创建他们自己的部分。
如果我们为他们制作了报告,但他们不想看到图表,他们可以创建相同的报告。如果他们想要合并来自4个不同报告的部分来制作一个摘要报告,他们可以在我们的自定义构建器上拖动这些部分并保存它。
我必须整理的报表生成器会将所选的所有不同子报告拉下来,并通过XML将其添加到我创建的报表生成器模板XML文件中。然后我必须聚合所有参数,以便多次不要求它们(如果你不希望它们聚合,参数名称必须在所有报告中都是唯一的)。这个新的报告XML被部署到服务器,用户可以随时访问它们。
我还让他们能够通过拖动文本框,图像,全局变量(日期运行,创建,运行,页码等等)来创建自己的封面,页眉和页脚。然后,我将他们药物周围的所有项目转换为另一个报告XML文件并将其重新调整为另一个报告XML文件并将其部署为可以添加到其自定义报告中的子报告。
是的,这需要相当多的工作,但我们的用户喜欢它。我们现在正在允许他们创建一个包含特殊分组的报告,以便报告可以在不同级别运行。
所以有可能,但没有简单的答案。 =)我很乐意向任何要求的人提供建议,但代码的直接副本违反了我的合同,但除此之外我会尽我所能。
答案 1 :(得分:1)
我认为SQL Reporting Services不适用于这种自定义。您可以隐藏和显示控件和子报表,但不存在交互式分组等内容。
您可以查看第三方报告框架,例如Telerik's。