Implementing a Rendering Extension
A rendering extension is a module of a report server that transforms report data and layout information into a device-specific format. Reporting Services includes six rendering extensions: HTML, Excel, Text, XML, Image, and PDF. You can create additional rendering extensions to generate reports in other formats.
To determine which rendering extensions are available, you can view the list of installed extensions in the RSReportServer.config file. The RSReportServer.config file is located in C:\Program Files\Microsoft SQL Server\MSSQL\Reporting Services\ReportServer\bin folder, if the default installation location was selected during installation.
Note The documentation to support custom rendering extension development is not yet complete. Microsoft is working to make documentation available soon. For the latest technical resources, visit the Reporting Services Web site.
The following table describes the rendering extensions that are included with Reporting Services.
|XML||Renders a report in XML. The report opens in a browser. Applying additional transformations to this XML output may be a cost-effective way to avoid developing your own rendering extension.|
|CSV||Renders a report in comma-delimited format. The report opens in a viewing tool associated with CSV file formats.|
|IMAGE||Renders a report in a page-oriented format. The format is shown as TIFF in the Export list of the report toolbar.|
|Opens a report in Adobe Acrobat Reader. The format is shown as Acrobat (PDF) File in the Export list of the report toolbar.|
|EXCEL||Renders a report in Microsoft Excel.|
|HTML4.0 (part of the HTML rendering extension)||Renders the report in HTML. HTML4.0 is used if your browser supports it. Otherwise, HTML3.2 is used.|
|HTML 3.2 (part of the HTML rendering extension)||HTML is the format used to initially render the report. HTML4.0 is used if your browser supports it. Otherwise, HTML3.2 is used.|
|MHTML (part of the HTML rendering extension)||Renders a report in MHTML. The report opens in Internet Explorer. The format is shown as Web Archive in the Export list of the report toolbar.|
|HTMLOWC (part of the HTML rendering extension)||Renders a report in an Office Web Component that loads within the browser window. The format is shown as HTML with Office Web Components in the Export list of the report toolbar.|
|NULL||Does not render a report to a specific format. This rendering extension is useful for placing reports in cache in anticipation of a high volume of requests for a given report. Null rendering should be used in conjunction with a scheduled execution or delivery.|
For more information on the recommended formats and their uses, see "Exporting Reports" in SQL Server 2000 Reporting Services Books Online.
Writing Custom Rendering Extensions
Before you decide to create a custom rendering extension, you should evaluate simpler alternatives. You can:
- Create a modified version of an existing rendering extension.
- Customize rendered output by specifying device information settings for existing extensions.
- Add custom formatting and presentation features by combining XSL Transformations (XSLT) with the output of the XML rendering format.
Writing a custom rendering extension is difficult to do as well as to learn.. A rendering extension must typically support all possible combination of report elements. The report object model is extensive (the classes, interfaces, methods, and properties that you must implement number in the hundreds), and the documentation and samples are not yet at a level that can support you through a challenging development project.
If you must render a report in a format that is not included with Reporting Services, you can write your own managed code implementation of a rendering extension. The rendering extension code must implement the IRenderingExtension interface, which is required by the report server. Each of the rendering extensions implemented by Microsoft and shipped with Reporting Services uses a common set of interfaces. This ensures that each extension implements comparable functionality and reduces the complexity of the rendering code in the core of the report server.
As stated previously, the documentation to support custom rendering extension development is not yet complete. Microsoft is working to make documentation available soon. For the latest technical resources, visit the Reporting Services Web site.