3

我有一个项目,我们正在为 SSRS 2008R2 创建自定义报告生成器。该项目允许用户从数据库中选择字段,然后在报表服务器上创建和存储 RDL。对于一些最初的概念验证尝试,我们一直在使用 XMLText 编写器来生成 XML 文件。虽然这可行,但这似乎很麻烦,而且我对如何将模式生成为 100% 防弹的方式没有太多信心。第二次尝试实际上是使用从 RDL 生成的类作为我的对象模型。我被困在这里的地方是关于如何使用这个对象的文档几乎为零。MSDN 有一个关于更新模型的教程,但它在概念上非常基础。

我正在寻找有关首选方法的一些指导。1) 继续生成 XML 2) 使用 RDL 对象创建报告 3) 我还考虑使用 SSRS 端点,其中创建一个虚拟报告并将其存储在服务器上,然后使用 RDL 对象模型更新报告必要的字段、组等

我还没有测试过第三个选项,但似乎这会最大限度地减少创建文档的编码量。

感谢您的任何建议或想法

4

2 回答 2

2

我刚刚构建了一个程序,可以从报告模板和存储过程创建 SSRS 报告。

我正在使用 RDLObjectModel 创建报告。并且 RDLSerializer 允许将报表保存到文件或报表服务器。我首先通过 SSRS Web 服务从我们的报表服务器加载一个报表模板,以将服务器报表反序列化为 RDLObjectModel。然后我为报表字段派生参数,并从存储过程中派生字段以制作报表数据集。

我遇到的问题是我无法序列化报表对象以便能够将其保存到服务器或文件中,因为在 RDL2008 中,RDLSerializer 是私有的。然后我发现了一篇让我很头疼的文章。http://ucodia.fr/2011/10/advanced-reporting-services-part2-rdl-serializer/

这是使用 XMLTextWriter 更好的方法。这应该为您提供足够的帮助。

于 2013-06-26T17:39:16.333 回答
-1

我在使用 RdlObjectModel 创建报表对象时遇到了同样的问题,但我无法对其进行序列化。有一种方法可以克服这个问题,您仍然可以获取 RdlSerializer 的实例并使用反射调用 serialize 方法

您可以在以下链接中找到实现

于 2019-06-28T14:19:57.490 回答