Skip to main content
All docs
V24.1

Standalone Report Parameters Panel in Angular Applications

  • 4 minutes to read

The Standalone Report Parameters Panel is a component that creates a layout with editors for report parameters. It retrieves information on report parameters from a DevExpress report instance passed from the backend.

Standalone Report Parameters Panel

Use this component to programmatically create a report, then export or email it without showing a preview to the end user. The component reduces memory usage because it eliminates the need to generate report images in the background and send them to the client application.

The Standalone Report Parameters Panel component is based on the Parameters Panel of the DevExpress Web Report Viewer component. Public properties and events are similar to the properties and events implemented in the Web Document Viewer component.

Add a Standalone Report Parameters Panel to Your Application

The application is based on a backend server project and includes an Angular client part.

Backend Part (ASP.NET Core)

For information on how to create a backend part, review the corresponding section in the ASP.NET Core Project tutorial: Configure the Server Part (Backend)

Client Part (Angular Application)

  1. Start with an Angular application. You can create a new Angular app from a template:

    ng new angular-parameters-panel
    
  2. Change your current directory to the project root folder and install the following packages:

    cd angular-parameters-panel
    npm install devextreme@24.1-stable devextreme-angular@24.1-stable @devexpress/analytics-core@24.1-stable devexpress-reporting-angular@24.1-stable
    

    Note

    Front-end and back-end applications should use the same version of DevExpress controls.

  3. Create the Standalone Report Parameters Panel component and template files with the following content:

    parameters-panel.html

    <dx-report-parameters-panel class="parametersPanel" [reportUrl]="reportUrl" height="100%" width="400px">
        <dxrpp-request-options [invokeAction]="invokeAction" [host]="host"></dxrpp-request-options>
        <dxrpp-callbacks (BeforeRender)="onBeforeRender($event)"></dxrpp-callbacks>
    </dx-report-parameters-panel>
    

     

    parameters-panel.ts

    import { Component, Inject, ViewEncapsulation } from '@angular/core';
    import * as $ from 'jquery';
    
    @Component({
    selector: 'parameters-panel',
    encapsulation: ViewEncapsulation.None,
    templateUrl: './parameters-panel.html',
    styleUrls: [
        "../../../node_modules/devextreme/dist/css/dx.light.css",
        "../../../node_modules/@devexpress/analytics-core/dist/css/dx-analytics.common.css",
        "../../../node_modules/@devexpress/analytics-core/dist/css/dx-analytics.light.css",
        "../../../node_modules/devexpress-reporting/dist/css/dx-webdocumentviewer.css"
    ]
    })
    export class ReportParametersPanelComponent {
    host = 'https://localhost:5001/';
    invokeAction = 'DXXRDV';
    reportUrl = 'ParameterPanelReport';
    
    onBeforeRender(event) {
        const sender = event.sender;
        const panel = sender.GetParametersModel();
        window['parametersPanel'] = panel;
        panel.buttons.push({
            text: 'Export',
            onClick: () => {
                const data = sender.SerializeParametersState();
                $.ajax({
                    url: `${this.host}Home/ExportWithParameters`,
                    method: 'POST',
                    data: { serializedParameters: data, reportUrl: this.reportUrl }
                }).then(result => {
                    alert(result.message)
                });
            }
        });
        panel.showButtons = true;
    }
    }
    

In this example, a Send button is added to the Standalone Report Parameters Panel. When a user clicks this button, parameter values are sent to the server for processing by the controller action.

The controller action example is described in the following help topic: Implement the Controller Action.

Standalone Report Parameters Panel with Buttons

Standalone Report Parameters Panel Component Settings

The following component settings are critical for component integration:

reportUrl
A string that identifies a report. This string is passed to server-side report name resolution services. You can create a ReportStorageWebExtension or IReportProvider descendant, and register it in your back-end application as a custom report name resolution service. For more information, review the following help topic: Open a Report in ASP.NET Core Application.
invokeAction
Specifies a route to the controller that handles requests in your back-end application. A controller with the DXXRDV route is an internal MVC controller that is added to the back-end application when the methods AddDevExpressControls and UseDevExpressControls are called in the Startup.cs file. You can implement a WebDocumentViewerController descendant and register it as a controller with a custom route. To see a code sample, review the following help topic: ASP.NET Core Reporting Best Practices.
host
The back-end application’s URL.

Standalone Report Parameters Panel API

Client-Side API

The following types and members implement client-side Standalone Report Parameters Panel functionality:

JSReportParametersPanel
A class that triggers events for the Standalone Report Parameters Panel and serves as the sender in callback functions.
JSReportParametersPanel.GetParametersModel
Allows you to access the report parameters client-side model.
JSReportParametersPanel.SerializeParametersState
Serializes parameter information from the Standalone Report Parameters Panel to a JSON string.
ParametersPanelModelBase
A base class that defines common properties and methods for client models of report parameters.
ParametersPanelStandalone
Client-side model for the Standalone Report Parameters Panel component.

Server API

The component events (callbacks) are defined using ReportParametersPanelClientSideEventsBuilder methods:

Classes related to the server-side model:

IReportParametersPanelClientSideModelGenerator
A class used to generate a client-side model for the Standalone Report Parameters Panel component.
ReportParametersPanelModel
A class that is the server-side model for the Standalone Report Parameters Panel.

This service allows you to pass a string obtained from the client’s SerializeParametersState method. The return object is a report instance with the applied parameters:

IReportParametersSerializer
Defines methods that enable you to deserialize parameters received from the Standalone Report Parameters Panel component and apply parameters to a report instance.

Panel Builder

ParameterPanelFluentBuilder
Contains methods that allow you to customize the Parameters panel.