ReportDesignerClientSideModelGenerator.GetModel(String, IDictionary<String, Object>, String, String, String) Method

Generates a client-side model of the Web End-User Report Designer based on the specified data.

Namespace: DevExpress.XtraReports.Web.ReportDesigner

Assembly: DevExpress.XtraReports.v20.1.Web.dll

Declaration

public ReportDesignerModel GetModel(
    string reportUrl,
    IDictionary<string, object> dataSources,
    string controllerUri,
    string previewControllerUri,
    string queryBuilderControllerUri
)
Public Function GetModel(
    reportUrl As String,
    dataSources As IDictionary(Of String, Object),
    controllerUri As String,
    previewControllerUri As String,
    queryBuilderControllerUri As String
) As ReportDesignerModel

Parameters

Name Type Description
reportUrl String

The URL that is opened in the Report Designer when the application starts.

dataSources IDictionary<String, Object>

A dictionary of available data sources in the Report Designer for use in reports.

controllerUri String

The URI of the controller action that processes Report Designer requests.

previewControllerUri String

The URI of the controller action that processes Report Designer preview requests.

queryBuilderControllerUri String

An URI of the controller action that processes requests from the Query Builder.

Returns

Type Description
ReportDesignerModel

A client-side Report Designer model.

Remarks

NOTE

This method internally calls the ReportStorageWebExtension.GetData method to obtain a report from a storage with the URL passed as a parameter.

Examples

The following code implements the controller action and returns the Report Designer model. For more information on Report Designer server-side configuration, refer to the following help topic: Report Designer Server-Side Configuration (ASP.NET MVC).

The GetModel method obtains a client-side model and sets the ASPxReportDesigner.AllowMDI property to false. The GetJsonModelScript method serializes the model to JSON. The model is subsequently sent to the client.

using DevExpress.Web.Mvc.Controllers;
using DevExpress.XtraReports.Web.ReportDesigner;
using System.Web.Mvc;
// ...
  public ActionResult GetReportDesignerModel(string reportUrl)
  {
      Response.AppendHeader("Access-Control-Allow-Origin", "*");

      var generator = new ReportDesignerClientSideModelGenerator();
      var model = generator.GetModel(
              reportUrl,
              // A report that the Report Designer loads when the application starts.
              GetAvailableDataSources(),
              // Data sources available in the Report Designer.
              "ReportDesigner/Invoke",
              // Controller action that processes Report Designer requests.
              "WebDocumentViewer/Invoke",
              // Controller action that processes Web Document Viewer requests.
              "QueryBuilder/Invoke"      
              // Controller action that processes Query Builder requests.
          );
      model.AllowMDI = false;
      var modelJsonScript = generator.GetJsonModelScript(model);    
      return Content(modelJsonScript, "application/json");
  }
See Also