Progress® Telerik® Reporting R2 2017

Overview

When implementing the ReportsController you need to provide an IReportResolver implementation, which is used in the Reporting REST Service ReportServiceConfiguration - ReportResolver property. This article elaborates on the Reporting REST Service's ReportResolver purpose, usage, built-in implementations and the option for adding a custom implementation.

Purpose and Usage of the Reporting REST Service Resolver

The Reporting REST Service's ReportResolver handles reports on the server.

IReportResolver defines the behavior of an object which takes a string as an argument and resolves it to a valid server-side ReportSource object. The format of this string argument is a matter of imlpementation, which should contain rules for collaboration between the service clients and the report resolver on the server. For example, if the resolver implementation expects a string containing a path relative to the application root directory, then the client should send a string containing such path. If the resolver is built to resolve reports from a type name, then a type name should be provided from the service client. Other scenario might require a resolver implementation which expects a report id and pulls the XML report definition from a database storage by that report id, then returns it as an XmlReportSource.

The Reporting REST Service's resolver is used when resolving information for a report on the server, which includes:

  • Getting information about the report's ReportParameters collection;

  • Returning a valid server-side Report Source;

  • Applying client-side parameters' values;

  • Exporting the report in a selected format;

  • Printing the report which is based on export in PDF file with additional Adobe Javascript secttings - Printing Reports;

  • Refresh calls;

  • Navigation to other report that is considered as a request for a new report.

Available built-in Report Resolver implementations:

  1. ReportFileResolver - resolves IReportDocument from relative path to report document created in Standalone Report Designer).

  2. ReportTypeResolver - resolves IReportDocument from report type's assembly qualified name (reports created in Visual Studio Report Designer).

Important note Important

When working with other types of report sources for which there is no built-in report resolver implementation, use a Custom Report Resolver implementation. For example, when using Drillthrough Report Action with XmlReportSource the action will not work unless a custom report resolver which can handle XmlReportSource has been implemented.

Custom Report Resolver implementations:

Implementing the IReportResolver interface allows you to include custom logic for creating, modifying, or accessing existing reports on the server, and to use any of the available report sources. An example implementation is available in How To Implement a Custom Report Resolver.

Note Note

The IReportResolverResolve(String) method will be called each time when the Reporting engine needs the report source. This can happen serveral times until the report document is completely rendered. It is important that when the method is invoked multiple times it returns exactly the same report source for a given value of the passed string argument.

See Also