如何使用从RDL模式生成的报告类创建RDL?

3
我有一个项目,我们正在为SSRS 2008R2创建自定义报告生成器。该项目允许用户从数据库选择字段,然后在报告服务器上创建和存储RDL。在一些最初的概念验证尝试中,我们使用XMLText编写器来生成XML文件。虽然这有效,但似乎非常繁琐,并且我对生成的架构的100%可靠性没有太多信心。第二次尝试实际上是使用RDL生成的类作为我的对象模型。我卡在这里的问题是几乎没有关于如何使用此对象的文档。MSDN上有一个教程,但它的概念非常基础。
我正在寻找一些关于首选方法的指导。 1)继续使用XML生成 2)使用RDL对象创建报告 3)我还考虑使用SSRS端点,在服务器上创建并存储一个虚拟报告,然后使用RDL对象模型更新报告,添加所需的字段、分组等。
我还没有测试第三个选项,但它似乎会将创建文档的编码量最小化。
感谢任何建议或想法。
2个回答

2
我刚刚建立了一个程序,它可以通过报表模板和存储过程创建一个SSRS报表。
我使用RDLObjectModel来创建报表。使用RDLSerializer来允许将报表保存到文件或报表服务器。我首先通过SSRS Web服务从我们的报表服务器加载报表模板,将服务器报表反序列化为RDLObjectModel。然后我从存储过程中导出报表字段的参数,并导出数据集制作报表数据集。
我遇到的问题是,我无法序列化报表对象以便将其保存到服务器或文件中,因为在RDL2008中,RDLSerializer是私有的。然后我偶然发现了一篇文章,这节省了我很多麻烦。http://ucodia.fr/2011/10/advanced-reporting-services-part2-rdl-serializer/ 这是一个比使用XMLTextWriter更好的方法。这应该足够让你开始推进事情了。

感谢您的输入。我也阅读了这篇文章,我认为这是我要采用的方法。虽然文章中提到RdlSerializer,但我选择不使用它,因为它与其他程序集有太多依赖关系。相反,我使用了MSDN文章建议的方法,只使用XMLserialization将rdl添加回ssrs存储库中http://msdn.microsoft.com/en-us/library/aa337428%28v=sql.105%29.aspx。再次感谢您澄清了这个方法。 - rlcrews
我也看了那篇文章。我一开始尝试使用RDLSchema来构建我的报表,但与使用RDLObjectModel相比,它似乎不是很直观。就像在链接中所示...像这样的代码对我个人来说看起来并不友好:'Dim reportItems As List(Of ItemsChoiceType118) = New List(Of ItemsChoiceType118)(m_report.ItemsElementName)'和'DirectCast(m_report.Items(index), StringLocIDType). Value ="New Report Description"' - Eric

-1

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

您可以在以下链接link中找到实现方式。


这个答案有什么问题吗?它已经在我正在工作的生产系统中实现并运行。 - Sameh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接