How to create an RDL using the report class generated from the RDL schema

我们两清 提交于 2019-12-07 17:58:26

问题


I have a project where we are creating a custom report generator for SSRS 2008R2. This project allows the user to select fields from a database and then create and store the RDL on the report server. For some of the initial proof of concept attempts we have been using XMLText writer to generate the XML file. While this works this seems to be very cumbersome and I don't have a lot of confidence in how the schema is being generated as being 100% bulletproof. A second attempt is actually using the generated class from the RDL as my object model. Where I am stuck here is there is almost zero documentation on how to use this object. MSDN has a tutorial on updating the model but it very basic in concept.

I'm looking for some guidance on the preferred approach. 1) continue with the XML generation 2) use the RDL object to create the reports 3) I have also considered using the SSRS endpoint where a dummy report is created and stored on the server then using the RDL object model to update the report with the necessary fields, groups etc.

I haven't tested the third option but it seems as this would minimize the amount of coding for the creation of the document.

Thanks for any suggestions or ideas


回答1:


I just built a program that creates an SSRS report from a report template and a stored procedure.

I am using the RDLObjectModel to create the report. And RDLSerializer to allow saving the report to a file or the report server. I first load a report template from our report server through the SSRS web service to deserialize the server report into and RDLObjectModel. I then derive parameters for the report fields, and derive fields from the stored procedure to make a report dataset.

The problem that I ran into is that I wasn't able to serialize the report object to be able to save it to the server or to a file because in RDL2008 RDLSerializer is private. Then I came across an article that saved me a lot of headaches. http://ucodia.fr/2011/10/advanced-reporting-services-part2-rdl-serializer/

This is a much better approach that using XMLTextWriter. This should provide you enough to get things rolling.




回答2:


I ran into the same problem where I was using RdlObjectModel to create my report object but I was unable to serialize it. There is a way to overcome that issue where you can still get instance of the RdlSerializer and call serialize method using reflection

You can find the implementation at the following link



来源:https://stackoverflow.com/questions/17283817/how-to-create-an-rdl-using-the-report-class-generated-from-the-rdl-schema

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!