我在另一个问题中发布了这个,但我也会把它放在这里。这是我为实现类似目标而必须做的事情的快速总结。
在我的公司,我不得不组装我们自己的报表生成器。
我们有大约 30 份报告服务报告,我们的用户可以通过 Web 或桌面应用程序访问这些报告。我们想要做的是让我们的用户能够获取这些报告中的任何给定部分并创建自己的部分。
如果有我们为他们构建的报告,但他们不想看到图表,他们可以创建没有它的相同报告。如果他们想将 4 个不同报告中的部分组合成一份摘要报告,他们可以将这些部分拖到我们的自定义构建器上并保存。
我必须放在一起的报表生成器会下拉他们选择的所有不同的子报表,并通过 XML 读取将它们添加到我创建的报表生成器模板 XML 文件中。然后,我必须汇总所有参数,以免多次要求它们(如果您不希望它们汇总,参数名称在所有报告中必须是唯一的)。这个新的报告 XML 被部署到服务器上,用户可以随时访问它们。
我还让他们能够通过在空白画布上的任何位置拖动文本框、图像、全局变量(运行日期、创建时间、运行人、页码等)来创建自己的封面、页眉和页脚。然后,我将他们在此画布上使用并调整大小的所有项目转换为另一个报告 XML 文件,并将其部署为他们可以添加到自定义报告中的子报告。
是的,这需要做很多工作,但我们的用户喜欢它。我们现在正在允许他们创建具有特殊分组的报告,以便可以在不同级别运行报告。
所以这是可能的,但没有简单的答案。=) 我很乐意向任何提出建议的人提供建议,但直接复制代码可能违反了我的合同,但除此之外我会尽我所能。