Adding a Custom Component to the Designer

You can extend the designer with your own report components that users can drop onto a report like any built-in element.

Adding a Custom Function

You can extend the report engine with your own functions that authors call from expressions in the designer.

Adding a Custom Function to the Designer

You can extend the report engine with your own functions that users call from expressions in the web designer.

Adding a Custom Function to the Designer

Add a custom function to the expression engine and call it from a dashboard template during rendering.

Adding a Custom Function to the Designer

Add a custom function to the expression engine and call it from a dashboard template during rendering.

Adding a Custom Function to the Designer

Add a custom function to the expression engine and call it from a dashboard template during rendering.

Adding a Custom Function to the Designer

Add a custom function to the expression engine and call it from a dashboard template during rendering.

Adding a Custom Function to the Designer

Add a custom function to the expression engine and call it from a dashboard template during rendering.

Adding a Custom Function to the Designer

Add a custom function to the expression engine and call it from a report template during rendering.

Adding a Custom Function to the Designer

Add a custom function to the expression engine and call it from a report template during rendering.

Adding a Custom Function to the Designer

You can extend the report engine with your own functions that users can call from expressions in the web designer.

Adding a Custom Function to the Designer

You can extend the report engine with your own functions that users can call from expressions in the web designer.

Adding a Font to the Resource

Fonts can be embedded into a report as resources so the document renders and exports identically regardless of the fonts installed on the server.

Adding a Font to the Resource

A custom font can be embedded into the report as a resource, so it travels with the template.

Adding a Font to the Resource

Fonts can be embedded into a report as resources so it renders identically everywhere. This example adds a TrueType font to the report dictionary.

Adding a Font to the Resource

Register the required resource in JavaScript so the dashboard renders consistently in every environment.

Adding a Font to the Resource

A custom font can be embedded into the report as a resource, so it travels with the template.

Adding a Font to the Resource

Fonts can be embedded into the report as resources so exported files render identically on any server.

Adding a Font to the Resource

A custom font can be embedded into the report as a resource, so it travels with the template.

Adding a Font to the Resource

Fonts can be embedded into a report as resources so it renders and exports identically on machines where the font is not installed.

Adding a Font to the Resource

Fonts can be embedded into a report as resources so it renders and exports identically on machines where the font is not installed.

Adding a Font to the Resource

Fonts can be embedded into a report as resources so it renders and exports identically on machines where the font is not installed.

Adding a Font to the Resource

Register the required resource in .NET 6.0 so the report renders consistently in every environment.

Adding a Font to the Resource

Register the required resource in .NET 8.0 so the report renders consistently in every environment.

Adding a Font to the Resource

Register the required resource in .NET Framework so the report renders consistently in every environment.

Adding a Font to the Resource

A font can be embedded into a dashboard as a resource so it renders identically everywhere; here a TrueType font is added to the dictionary.

Adding a Font to the Resource

A font can be embedded into a dashboard as a resource so it renders identically everywhere; here a TrueType font is added to the dictionary.

Adding a Font to the Resource

Fonts can be embedded into a report as resources so the document renders and exports identically regardless of the fonts installed on the server.

Adding a Font to the Resource

A font can be embedded into a dashboard as a resource so it renders identically everywhere; here a TrueType font is added to the dictionary.

Adding a Font to the Resource

Fonts can be embedded into a report as resources so the document renders and exports identically regardless of the fonts installed on the server.

Adding Components from Code

Load a PDF form, add new elements with the Forms API, and return the updated definition to the browser.

Assigning a Dashboard to the Viewer

Dashboards.JS displays interactive dashboards entirely in the browser using the same viewer as Reports.JS.

Assigning a Report to the Viewer

The Reports.JS viewer displays a report entirely in the browser. This example creates a viewer, loads a report, and shows it.

Change Theme in Avalonia

Stimulsoft integrates with Avalonia's light/dark theming. This example switches the application theme and applies the matching Stimulsoft appearance.

Change Theme in Avalonia

Stimulsoft integrates with Avalonia's light/dark theming. This example switches the application theme and applies the matching Stimulsoft appearance.

Changing an Export Settings on the Server-Side

Customize a dashboard export on the PHP server through onBeginExportReport.

Changing an Export Settings on the Server-Side

Export settings can be adjusted on the server when the user exports from the viewer, through the onBeginExportReport event.

Changing an Export Settings on the Server-Side

Export settings can be adjusted on the server when the user exports from the viewer, through the onBeginExportReport event.

Changing an Export Settings on the Server-Side

Export settings can be adjusted on the server when the user exports from the viewer, through the onBeginExportReport event.

Changing Dashboard Properties on the Server-Side

Use onOpenedReport in PHP to change dashboard properties before the viewer renders it.

Changing Database Type

A report's data connection can be swapped for a different database type at run time without editing the template.

Changing Database Type

A report's data connection can be swapped for a different database type at run time without editing the template.

Changing Properties from Code

Find a form element by name, change its text and font in code, and send the updated form to the web component.

Changing Report Properties on the Server-Side

A report's template is JSON, so you can modify its properties on the server before rendering.

Changing the Designer Options

The Blazor designer is configured the same way as the viewer, through an options object and a theme.

Changing the Designer Options

The Blazor designer is configured the same way as the viewer, through an options object and a theme.

Changing the Designer Theme

Embed the dashboard designer in JavaScript, load a template, and connect its editing and save actions.

Changing the Designer Theme

Embed the report designer in JavaScript, load a template, and connect its editing and save actions.

Changing the Designer Theme

The report designer is available as a React component too, and it also supports themes. This example applies a theme to the designer.

Changing the Designer Theme

The report designer is available as a component too, and it also supports themes. This example applies a theme to the designer.

Changing the Designer Theme

The report designer is available as a component too, and it also supports themes. This example applies a theme to the designer.

Changing the Designer Theme

The dashboard designer supports many themes, set on the Python options object.

Changing the Designer Theme

The dashboard designer supports themes too, applied through its options object from the StiDesignerTheme enumeration.

Changing the Designer Theme

The dashboard designer supports themes too, applied through its options object from the StiDesignerTheme enumeration.

Changing the Designer Theme

The dashboard designer supports themes too, applied through its options object from the StiDesignerTheme enumeration.

Changing the Viewer and Designer Theme

The WPF viewer and designer support light and dark themes and configurable accent colors. This example switches their appearance at run time.

Changing the Viewer and Designer Theme

Embed the report designer in .NET Framework, load a template, and connect its editing and save actions.

Changing the Viewer Options

The viewer's appearance, toolbar, size and theme can all be configured. This example sets several options and a theme on the component.

Changing the Viewer Options

The viewer's appearance, toolbar, size and theme can all be configured. This example sets several options and a theme on the component.

Changing the Viewer Options from the Controller

Set up the report viewer in .NET 6.0, load a template, and connect the component to the application.

Changing the Viewer Options from the Controller

Set up the report viewer in .NET 8.0, load a template, and connect the component to the application.

Changing the Viewer Theme

The web viewer ships with a set of visual themes and appearance options. This example changes the viewer's theme and background color.

Changing the Viewer Theme

The dashboard viewer supports many themes, selected through options. This example applies a theme and switches it at run time.

Changing the Viewer Theme

Set up the report viewer in JavaScript, load a template, and connect the component to the application.

Changing the Viewer Theme

The viewer supports many visual themes, selected through options. This example applies a theme to the React viewer component.

Changing the Viewer Theme

Set up the report viewer in Angular, load a template, and connect the component to the application.

Changing the Viewer Theme

The dashboard viewer supports many themes, set on the PHP options object.

Changing the Viewer Theme

Set up the report viewer in Vue 3, load a template, and connect the component to the application.

Changing the Viewer Theme

The dashboard viewer supports many themes, chosen through the options object from the StiViewerTheme enumeration.

Changing the Viewer Theme

The viewer supports many themes and appearance options, set on the PHP options object. This example applies a dark theme and tunes the toolbar.

Changing the Viewer Theme

The dashboard viewer supports many themes, chosen through the options object from the StiViewerTheme enumeration.

Changing the Viewer Theme

The web viewer ships with a set of visual themes and configurable appearance options. This example changes the viewer's theme and background color.

Changing the Viewer Theme

The dashboard viewer supports many themes, chosen through the options object from the StiViewerTheme enumeration.

Changing the Viewer Theme

The web viewer ships with a set of visual themes and configurable appearance options. This example changes the viewer's theme and background color.

Changing the Viewer Theme

Set up the report viewer in Python, load a template, and connect the component to the application.

Checking Long Task Status

Start an asynchronous PDF export and inspect its task status through the Stimulsoft Server REST API.

Configuring and Installing Node.js

The server-side engine relies on Node.js, which the SDK can install for you. This example installs Node.js and updates the required packages.

Configuring and Installing Node.js

The server-side engine relies on Node.js, which the SDK can install for you.

Configuring and Installing NodeJs

Install and configure the Node.js runtime required by the Dashboards.PHP server engine.

Configuring and Installing NodeJs

The server-side engine relies on Node.js, which the SDK can install for you. This example installs Node.js and updates the required packages.

Configuring Report caching

Caching keeps a rendered report on the server between requests, so paging and exporting do not re-render it every time.

Configuring Report caching

Caching keeps a rendered report on the server between requests, so paging and exporting do not re-render it every time.

Configuring Report caching

Caching keeps a rendered report on the server between requests, so paging and exporting do not re-render it every time.

Connecting to Data from Code

A report's data can be supplied entirely from code. This example builds a dataset from JSON and registers it with the report before showing it.

Connecting to Data from Code

A report's data can be supplied entirely from code. This example builds a dataset from JSON and registers it with the report before showing it.

Connecting to Data from Code

A report's data can be supplied entirely from code. This example builds a dataset from JSON and registers it with the report before showing it.

Connecting to Data from Code

Reports are usually bound to data at design time, but you can also supply the data entirely from code.

Connecting to Data from Code

Reports are usually bound to data at design time, but you can also supply the data entirely from code.

Connecting to Data from Code

Reports are usually bound to data at design time, but you can also supply the data entirely from code.

Connecting to Data from Code

A report's data can be supplied and switched from Blazor code. This example loads a report and lets the user swap between two datasets.

Connecting to Data from Code

A report's data can be supplied and switched from Blazor code. This example loads a report and lets the user swap between two datasets.

Connecting to Data from Code

A report's data can be supplied entirely from the controller instead of being stored in the template.

Connecting to Data from Code

A report's data can be supplied entirely from the controller instead of being stored in the template.

Connecting to Data from Code

A report's data can be supplied from the page model instead of the template.

Copying a Report Template to Other Workspaces

Copy a report template to other Stimulsoft Server workspaces through the REST API.

Copying Components Between Reports

Move reusable content between templates in Java without rebuilding the report structure by hand.

Creating a Custom Button on the Viewer Toolbar

The web viewer toolbar can be extended with your own buttons using its client-side JavaScript API.

Creating a Custom Button on the Viewer Toolbar

Set up the report viewer in Server, load a template, and connect the component to the application.

Creating a Custom Button on the Viewer Toolbar

Set up the report viewer in WebAssembly, load a template, and connect the component to the application.

Creating a Custom Button on the Viewer Toolbar

Set up the report viewer in PHP, load a template, and connect the component to the application.

Creating a Custom Button on the Viewer Toolbar

The web viewer toolbar can be extended with your own buttons using its client-side JavaScript API.

Creating a Custom Button on the Viewer Toolbar

The web viewer toolbar can be extended with your own buttons using its client-side JavaScript API.

Creating a Custom Parameter Panel for the Viewer

Instead of the built-in parameter panel, you can build your own HTML form and feed its values to the viewer through the client API.

Creating a Custom Parameter Panel for the Viewer

Instead of the built-in parameter panel, you can build your own HTML form and feed its values to the viewer.

Creating a Custom Parameter Panel for the Viewer

Instead of the built-in parameter panel, you can build your own HTML form and feed its values to the viewer.

Creating a Form with Table

Build a PDF form in code, add a table with several column types, and prepare it for browser input.

Creating a new Data Connection from code

A report can be connected to a data source entirely from code, without editing the template dictionary.

Creating a new Data Connection from code

A report can be connected to a data source entirely from code, without editing the template dictionary.

Creating a new Data Connection from code

A report can be connected to a data source entirely from code, without editing the template dictionary.

Creating a new Data Connection from code

A data connection can be created entirely from code — here a StiJsonDatabase is added to the dashboard dictionary and synchronized.

Creating a new Data Connection from code

A data connection can be created entirely from code — here a StiJsonDatabase is added to the dashboard dictionary and synchronized.

Creating a new Data Connection from code

A data connection can be created entirely from code — here a StiJsonDatabase is added to the dashboard dictionary and synchronized.

Creating a Table then Adding Two Filters and Exporting to Excel

Render the dashboard in JavaScript and export it directly from code, without opening the viewer.

Creating a Table then Adding Two Filters and Exporting to Excel

Render the dashboard in Node.js and export it directly from code, without opening the viewer.

Creating Chart at Runtime

Build the report in .NET Framework from code by creating its structure and configuring the required components.

Creating Chart at Runtime

Charts can be built from code and placed on a report page. This example creates a report with a chart at run time under Avalonia.

Creating Chart at Runtime

Charts can be built from code and placed on a report page. This example creates a report with a chart at run time under Avalonia.

Creating Dashboard at Runtime

A dashboard can be built entirely from code — pages and elements are objects you create and add.

Creating Dashboard at Runtime

A dashboard can be built entirely in code — the dashboard page and its elements are objects you create and add.

Creating Dashboard at Runtime

A dashboard can be built entirely in code — the dashboard page and its elements are objects you create and add.

Creating Dashboard at Runtime

A dashboard can be built entirely in code. This example creates a new dashboard, registers data, and adds elements to it.

Creating Dashboard at Runtime

A dashboard can be built entirely in code. This example creates a new dashboard, registers data and adds an element, then shows it in the viewer.

Creating Dashboard at Runtime

A dashboard can be built entirely in code. This example creates a new dashboard, registers data and adds an element, then shows it in the viewer.

Creating Dashboard at Runtime

A dashboard can be built from code — elements from the Stimulsoft.Dashboard.Components namespace are added to the dashboard page.

Creating Dashboard at Runtime

A dashboard can be built from code — elements from the Stimulsoft.Dashboard.Components namespace are added to the dashboard page.

Creating Dashboard at Runtime

A dashboard can be built from code — elements from the Stimulsoft.Dashboard.Components namespace are added to the dashboard page.

Creating Report at Runtime

Build the report in Angular from code by creating its structure and configuring the required components.

Creating Report at Runtime

Build the report in React from code by creating its structure and configuring the required components.

Creating Report at Runtime

Build the report in Vue 3 from code by creating its structure and configuring the required components.

Creating Report at Runtime

Build the report in .NET 6.0 from code by creating its structure and configuring the required components.

Creating Report at Runtime

Build the report in .NET 8.0 from code by creating its structure and configuring the required components.

Creating Report at Runtime

Build the report in .NET Framework from code by creating its structure and configuring the required components.

Creating Report at Runtime

Build the report in Java from code by creating its structure and configuring the required components.

Creating Report at Runtime

Build the report in .NET 6.0 from code by creating its structure and configuring the required components.

Creating Report at Runtime

Build the report in .NET 8.0 from code by creating its structure and configuring the required components.

Creating Report at Runtime

Build the report in .NET Framework from code by creating its structure and configuring the required components.

Creating Report at Runtime

A report can be built entirely in code under Avalonia — pages, bands and components are objects you create.

Creating Report at Runtime

A report can be built entirely in code under Avalonia — pages, bands and components are objects you create.

Creating Report with MySQL Database at Runtime

Prepare the data in Java, register it in the report dictionary, and render the template with those records.

Creating Report with Relations at Runtime

Register related data in Java, define the relation in the dictionary, and use it inside the report.

Customizing the Designer

The dashboard designer interface can be trimmed to expose only the features you want. This example hides several toolbar items.

Customizing the Designer

The designer interface can be trimmed down to just the features you want to expose. This example hides several toolbar items and component types.

Customizing the Designer

Embed the report designer in React, load a template, and connect its editing and save actions.

Customizing the Designer

Embed the report designer in Angular, load a template, and connect its editing and save actions.

Customizing the Designer

Embed the report designer in Vue 3, load a template, and connect its editing and save actions.

Customizing the Designer

The designer interface can be simplified by hiding toolbar items through its options.

Customizing the Designer

The designer interface can be simplified by hiding toolbar items through its options.

Customizing the Designer

The designer interface can be simplified by hiding toolbar items through its options.

Customizing the Viewer

Set up the dashboard viewer in JavaScript, load a template, and connect the component to the application.

Customizing the Viewer

The viewer exposes many options for appearance and toolbar contents. This example tunes the toolbar, colors, zoom and size.

Customizing the Viewer

The viewer's toolbar and export options can be trimmed to expose only the features you want. This example hides the Open button and the PDF export.

Customizing the Viewer

The viewer toolbar and export options can be trimmed to expose only the features you want. This example hides the Open button and the PDF export.

Customizing the Viewer

The viewer toolbar and export options can be trimmed to expose only the features you want. This example hides the Open button and the PDF export.

Customizing the Viewer

The embedded StiViewerControl exposes many properties that turn interface elements on and off, so you can tailor the preview to your application.

Customizing the Viewer

Set up the dashboard viewer in React, load a template, and connect the component to the application.

Customizing the Viewer

Set up the dashboard viewer in Angular, load a template, and connect the component to the application.

Customizing the Viewer

The Avalonia StiViewerControl exposes properties to show or hide its interface elements. This example toggles toolbar buttons and panels from code.

Customizing the Viewer

The Avalonia StiViewerControl exposes properties to show or hide its interface elements. This example toggles toolbar buttons and panels from code.

Customizing the Viewer

Set up the dashboard viewer in Vue 3, load a template, and connect the component to the application.

Drilling Down Report in Live

Interactive reports let a user click an element to open a related detailed report — a drill-down.

Drilling Down Report in Live

Use .NET 6.0 code to drilling down report in live, with the required setup kept alongside the main API calls.

Drilling Down Report in Live

Use .NET 8.0 code to drilling down report in live, with the required setup kept alongside the main API calls.

Editing a Dashboard in the Designer

The Stimulsoft web dashboard designer can be embedded in an ASP.NET Core MVC application.

Editing a Dashboard in the Designer

The Stimulsoft web dashboard designer can be embedded in an ASP.NET Core MVC application.

Editing a Dashboard in the Designer

Your WinForms application can host the full dashboard designer. This example opens a dashboard in the designer for editing.

Editing a Dashboard in the Designer

The Blazor dashboard designer lets users edit dashboards in the browser and raises an event when they save. This example handles the save event.

Editing a Dashboard in the Designer

The Blazor dashboard designer lets users edit dashboards in the browser and raises an event when they save. This example handles the save event.

Editing a Dashboard Template

Dashboards.JS includes the full dashboard designer in the browser. This example opens the designer with a dashboard loaded for editing.

Editing a Dashboard Template and Showing it in the Dashboard Viewer

This example hosts both the dashboard designer and the viewer on one page, so a user can edit a dashboard and preview the result.

Editing a Dashboard Template in the Designer

The Dashboards.PHP designer runs in the browser, served by the PHP SDK. This example opens the designer with a dashboard loaded for editing.

Editing a Dashboard Template in the Designer

Dashboards.Python includes the full dashboard designer in the browser.

Editing a Dashboard Template in the Designer in an HTML template

The designer's scripts and body can be emitted separately to fit your own HTML layout.

Editing a Dashboard Template in the Designer in an HTML template

The designer's scripts and body can be emitted separately to fit your HTML template.

Editing a Dashboard Template in the Designer using JavaScript

The designer can be created entirely in JavaScript, with PHP acting only as the request handler.

Editing a Form in the Designer

Embed the form designer in .NET Core, load a template, and connect its editing and save actions.

Editing a Report in the Designer

The Reports.JS designer can be embedded in a Wisej.NET application the same way as the viewer, giving users a full report editor inside a C# web app.

Editing a Report in the Designer

The Reports.PHP designer embeds in a Laravel application the same way as the viewer, letting users edit report templates in the browser.

Editing a Report Template in the Designer

Reports.JS includes a full report designer that runs in the browser. This example opens the designer with a template loaded for editing.

Editing a Report Template in the Designer

Embed the report designer in .NET 6.0, load a template, and connect its editing and save actions.

Editing a Report Template in the Designer

Embed the report designer in .NET 8.0, load a template, and connect its editing and save actions.

Editing a Report Template in the Designer

Embed the report designer in .NET Framework, load a template, and connect its editing and save actions.

Editing a Report Template in the Designer

Your application can host the full Stimulsoft report designer so users edit templates themselves.

Editing a Report Template in the Designer

Your application can host the full Stimulsoft report designer so users edit templates themselves.

Editing a Report Template in the Designer

Your application can host the full Stimulsoft report designer so users edit templates themselves.

Editing a Report Template in the Designer

Embed the report designer in Server, load a template, and connect its editing and save actions.

Editing a Report Template in the Designer

Embed the report designer in WebAssembly, load a template, and connect its editing and save actions.

Editing a Report Template in the Designer

The Reports.PHP designer runs in the browser, served by the PHP SDK. This example opens the designer with a template loaded for editing.

Editing a Report Template in the Designer

Besides the viewer, Stimulsoft provides a full web report designer that you can embed in an ASP.NET Core MVC application.

Editing a Report Template in the Designer

Besides the viewer, Stimulsoft provides a full web report designer that you can embed in an ASP.NET Core MVC application.

Editing a Report Template in the Designer

Embed the report designer in Python, load a template, and connect its editing and save actions.

Editing a Report Template in the Designer

Embed the report designer in ASP.NET Core Razor Pages, load a template, and connect its editing and save actions.

Editing a Report Template in the Designer in an HTML template

As with the viewer, the designer's scripts and body can be emitted separately to fit your own HTML layout.

Editing a Report Template in the Designer in an HTML template

The designer's scripts and body can be emitted separately to fit your own HTML template, just like the viewer.

Editing a Report Template in the Designer using JavaScript

The designer can be created entirely in JavaScript, with PHP acting only as the request handler. This example uses StiHandler on the server.

Exporting a Dashboard

Render the dashboard in .NET Framework and export it directly from code, without opening the viewer.

Exporting a Dashboard Asynchronously

Exporting a large dashboard can be done asynchronously to keep the interface responsive. This example uses the async export API.

Exporting a Dashboard from Code

A dashboard can be exported from code to formats such as PDF, Excel or an image. This example renders a dashboard and exports it.

Exporting a Dashboard from Code

A dashboard can be exported from PHP code to formats such as PDF, Excel or an image. This example renders a dashboard and exports it.

Exporting a Dashboard from Code

Render the dashboard in Python and export it directly from code, without opening the viewer.

Exporting a Dashboard from Code on the Server-Side

Dashboards.PHP can render and export dashboards fully on the server using an embedded Node.js engine. This example exports to a file.

Exporting a Dashboard from Code on the Server-Side

Render the dashboard in Python and export it directly from code, without opening the viewer.

Exporting a Dashboard from Code with Changing Export Settings

Server-side dashboard exports can be fine-tuned with a settings object. This example exports to PDF with custom metadata.

Exporting a Dashboard from Code with Changing Export Settings

Render the dashboard in React and export it directly from code, without opening the viewer.

Exporting a Dashboard from Code with Changing Export Settings

Render the dashboard in Angular and export it directly from code, without opening the viewer.

Exporting a Dashboard from Code with Changing Export Settings

Render the dashboard in Vue 3 and export it directly from code, without opening the viewer.

Exporting a Dashboard to Excel

Render the dashboard in Node.js and export it directly from code, without opening the viewer.

Exporting a Dashboard to HTML

Render the dashboard in React and export it directly from code, without opening the viewer.

Exporting a Dashboard to HTML

Render the dashboard in Angular and export it directly from code, without opening the viewer.

Exporting a Dashboard to HTML

Render the dashboard in Vue 3 and export it directly from code, without opening the viewer.

Exporting a Dashboard to PDF

Render the dashboard in Node.js and export it directly from code, without opening the viewer.

Exporting a Dashboard to PDF

Render the dashboard in React and export it directly from code, without opening the viewer.

Exporting a Dashboard to PDF

Render the dashboard in Angular and export it directly from code, without opening the viewer.

Exporting a Dashboard to PDF

Render the dashboard in Vue 3 and export it directly from code, without opening the viewer.

Exporting a Report from Code

Render the report in Java and export it directly from code, without opening the viewer.

Exporting a Report from Code

Render the report in .NET 6.0 and export it directly from code, without opening the viewer.

Exporting a Report from Code

Render the report in .NET 8.0 and export it directly from code, without opening the viewer.

Exporting a Report from Code

Render a report and export it directly to a selected file format without opening the viewer — ideal for batches and scheduled jobs.

Exporting a Report from Code

This example shows how to export a rendered report to a file without opening the viewer — useful for batch generation or server-side scenarios.

Exporting a Report from Code

This example shows how to export a rendered report to a file without opening the viewer — useful for batch generation or server-side scenarios.

Exporting a Report from Code

This example shows how to export a rendered report to a file without opening the viewer — useful for batch generation or server-side scenarios.

Exporting a Report from Code

A report can be exported to a file and delivered to the browser without the viewer.

Exporting a Report from Code

A report can be exported to a file and delivered to the browser without the viewer.

Exporting a Report from Code

A report can be exported from PHP code to several formats. This example renders a report and exposes buttons that export it to PDF, Excel or HTML.

Exporting a Report from Code

A report can be rendered and exported to a file from Avalonia code. This example loads a selected report and exports it after rendering.

Exporting a Report from Code

A report can be rendered and exported to a file from Avalonia code. This example loads a selected report and exports it after rendering.

Exporting a Report from Code

Render the report in Python and export it directly from code, without opening the viewer.

Exporting a Report from Code on the Server-Side

Server-side rendering can be followed by a server-side export. This example renders a report with the Node.js engine and exports it to text.

Exporting a Report from Code on the Server-Side

Server-side rendering can be followed by a server-side export. This example renders a report with the Node.js engine and exports it to a file.

Exporting a Report from Code with Changing Export Settings

Export output can be tuned through a settings object. This example exports to PDF while adjusting metadata, font embedding and a user password.

Exporting a Report from Code with Changing Export Settings

Export output can be tuned through a settings object. This example exports to PDF while adjusting metadata, font embedding and a user password.

Exporting a Report from Code with Changing Export Settings

Export output can be tuned through a settings object. This example exports to PDF while adjusting metadata, font embedding and a user password.

Exporting a Report from Code with Changing Export Settings

Server-side exports can be fine-tuned with a settings object. This example exports to PDF with custom metadata and saves it to a file.

Exporting a Report in a .NET MAUI Application

Render the report in .NET MAUI and export it directly from code, without opening the viewer.

Exporting a Report to HTML

This example renders a report and exports it to HTML — either receiving the HTML string for display in the page, or saving it as a file.

Exporting a Report to HTML

Render the report in Angular and export it directly from code, without opening the viewer.

Exporting a Report to HTML

Render the report in React and export it directly from code, without opening the viewer.

Exporting a Report to HTML

Render the report in Node.js and export it directly from code, without opening the viewer.

Exporting a Report to HTML

Render the report in Vue 3 and export it directly from code, without opening the viewer.

Exporting a Report to PDF

Render the report in JavaScript and export it directly from code, without opening the viewer.

Exporting a Report to PDF

Render the report in Angular and export it directly from code, without opening the viewer.

Exporting a Report to PDF

Render the report in React and export it directly from code, without opening the viewer.

Exporting a Report to PDF

Reports can be rendered and exported to PDF entirely on the server. This example renders a template and writes the PDF to a file.

Exporting a Report to PDF

Render the report in Vue 3 and export it directly from code, without opening the viewer.

Exporting a Report to ZUGFeRD PDF

Render the report in .NET Framework and export it directly from code, without opening the viewer.

Exporting a Report with the Export Dialog

Render the report in Java and export it directly from code, without opening the viewer.

Exporting and Printing a Dashboard from Code

A dashboard can be printed or exported straight to the HTTP response without the viewer.

Exporting and Printing a Dashboard from Code

A dashboard can be printed or exported straight to the HTTP response without the viewer.

Exporting and Printing a Dashboard from Code

A dashboard can be printed or exported straight to the browser without the viewer. This example exports a dashboard to PDF using JavaScript interop.

Exporting and Printing a Dashboard from Code

A dashboard can be printed or exported straight to the browser without the viewer. This example exports a dashboard to PDF using JavaScript interop.

Exporting and Printing a Report from Code

You do not always need the viewer — a report can be printed or exported directly to the HTTP response.

Exporting and Printing a Report from Code

You do not always need the viewer — a report can be printed or exported directly to the HTTP response.

Exporting and Printing a Report from Code

A report can be printed or exported straight to the HTTP response without the viewer.

Exporting Many Files to Single PDF

Render the report in Angular and export it directly from code, without opening the viewer.

Exporting Many Files to Single PDF

Render the report in React and export it directly from code, without opening the viewer.

Exporting Many Files to Single PDF

Render the report in Vue 3 and export it directly from code, without opening the viewer.

Exporting Many Files to Single PDF

Render the report in .NET Framework and export it directly from code, without opening the viewer.

Filling Form Data from Database

Read recipients from MySQL, fill the shared form template, and e-mail each personalized PDF.

Generating PDF from Form Submission

Apply submitted form values to the template in ASP.NET Core and return the completed PDF.

Get a modified Dashboard from the Designer

Embed the dashboard designer in React, load a template, and connect its editing and save actions.

Get a modified Dashboard from the Designer

Embed the dashboard designer in Angular, load a template, and connect its editing and save actions.

Get a modified Dashboard from the Designer

Embed the dashboard designer in Vue 3, load a template, and connect its editing and save actions.

Get a modified Report from the Designer

When the user changes the report in the designer (for example creates a new one), the designer assigns a new report object.

Get a modified Report from the Designer

When the user changes the report in the designer, it assigns a new report object.

Get a modified Report from the Designer

When the user changes the report in the designer, it assigns a new report object.

Globalizing Dashboard

Globalization formats a dashboard's data (numbers, dates, currency) for a chosen culture, set through the globalization manager.

Globalizing Dashboard

Globalization formats a dashboard's data (numbers, dates, currency) for a chosen culture, set through the globalization manager.

Globalizing Dashboard

Globalization formats a dashboard's data (numbers, dates, currency) for a chosen culture, set through the globalization manager.

Globalizing Report

A report can be rendered for a specific culture, formatting numbers, dates and localized text accordingly.

Globalizing Report

A report can be rendered for a specific culture, formatting numbers, dates and localized text accordingly.

Globalizing Report

A report can be rendered for a specific culture, formatting numbers, dates and localized text accordingly.

Globalizing Reports

Globalization lets a single report template present its data in different cultures — number, date and currency formats follow the selected culture.

Globalizing Reports

Globalization lets one report present its data in different cultures — number, date and currency formats follow the selected culture.

Globalizing Reports

Globalization lets one report present its data in different cultures — number, date and currency formats follow the selected culture.

How to Activate the Product

By default Reports.Python runs in trial mode (with a watermark). This example shows how to apply your license key to remove it.

How to Activate the Product

The product license is applied from code before any report is used. This example shows where to set the license key or load it from a file.

How to Activate the Product

The product license is applied from code before any report is used. This example shows where to set the license key or load it from a file.

How to Activate the Product

The product license is applied from code before any report is used. This example shows where to set the license key or load it from a file.

How to Activate the Product

Register the Stimulsoft license when the PHP application starts, before creating any dashboard components.

How to Activate the Product

Register the Stimulsoft license when the Python application starts, before creating any dashboard components.

How to Activate the Product

By default Reports.PHP runs in trial mode (with a watermark). This example shows the several ways to apply your license key to remove it.

How to Activate the Product

By default the product runs in trial mode; applying your license key with StiLicense removes the watermark.

How to Activate the Product

By default the product runs in trial mode; applying your license key with StiLicense removes the watermark.

How to Activate the Product

By default the product runs in trial mode; applying your license key with StiLicense removes the watermark.

Integrating a Form Component

Stimulsoft PDF Forms provides an Angular component for editing and filling forms in the browser, backed by an ASP.NET Core controller.

Integrating into Standalone Angular Component

Connect the PDF Forms component in a standalone Angular component to an ASP.NET Core endpoint.

Integrating the Dashboard Components in ASP.NET App

Integrate the Angular dashboard viewer into a classic ASP.NET MVC application and handle viewer requests in its controller.

Integrating the Dashboards Viewer into an Application

Set up the dashboard viewer in .NET 6.0, load a template, and connect the component to the application.

Integrating the Dashboards Viewer into an Application

Set up the dashboard viewer in .NET 8.0, load a template, and connect the component to the application.

Integrating the Dashboards Viewer into Standalone Angular Component

Set up the dashboard viewer in .NET 6.0, load a template, and connect the component to the application.

Integrating the Dashboards Viewer into Standalone Angular Component

Set up the dashboard viewer in .NET 8.0, load a template, and connect the component to the application.

Integrating the Report Components into a Django framework

This example integrates the Reports.JS viewer and designer into a Django application whose views render the component templates.

Integrating the Report Components into a Flask framework

Reports.JS is a client-side library, so integrating it into a Python framework means serving the pages that host the viewer and designer.

Integrating the Report Components into a native Python application

You do not need a web framework at all — a plain Python HTTP server is enough to host the Reports.JS pages.

Integrating the Report Components into a Tornado framework

This example integrates the Reports.JS viewer and designer into a Tornado application whose handlers render the component templates.

Integrating the Report Viewer into an Application

Set up the report viewer in .NET 6.0, load a template, and connect the component to the application.

Integrating the Report Viewer into an Application

Set up the report viewer in .NET 8.0, load a template, and connect the component to the application.

Integrating the Report Viewer into an Application

Set up the report viewer in .NET 10.0, load a template, and connect the component to the application.

Integrating the Report Viewer into an Application

Set up the report viewer in .NET 6.0, load a template, and connect the component to the application.

Integrating the Report Viewer into an Application

Set up the report viewer in .NET 8.0, load a template, and connect the component to the application.

Integrating the Report Viewer into an Application

Set up the report viewer in .NET 10.0, load a template, and connect the component to the application.

Integrating the Report Viewer into an Application

Set up the report viewer in .NET 6.0, load a template, and connect the component to the application.

Integrating the Report Viewer into an Application

Set up the report viewer in .NET 8.0, load a template, and connect the component to the application.

Integrating the Report Viewer into Standalone Angular Component

Modern Angular applications can be built from standalone components that declare their own dependencies, without a central NgModule.

Integrating the Report Viewer into Standalone Angular Component

Modern Angular applications can be built from standalone components that declare their own dependencies, without a central NgModule.

Loading a Dashboard and Saving a Dashboard

Load a dashboard template on Node.js, render it, and save the prepared document for later use.

Loading a Dashboard from the Server-Side

On Node.js the Stimulsoft engine renders dashboards server-side through the stimulsoft-dashboards-js package.

Loading a Form from File

Load an MRT form from disk, export it with StiPdfExporter, save the PDF, and open the document.

Loading a Form from Resource

Load an embedded MRT form with LoadFromResource, export it to PDF, and open the generated document.

Loading a Form from String

Reconstruct a form from its serialized string, export it to PDF, and open the generated document.

Loading a Report and Rendering it with a JSON Data

On Node.js the Stimulsoft engine runs server-side through the stimulsoft-reports-js package.

Loading a Report and Saving a Rendered Report

Handle the save action in Node.js and store or return the updated report template.

Loading a Report from the Server-Side

A common pattern is to render a report on the Node.js server and send the finished document to a viewer running in the browser.

Loading an Encrypted Form

Open an encrypted MDX form with LoadEncryptedForm and its key, then export the decrypted template to PDF.

Loading and Saving a Report Template

Handle the save action in Server and store or return the updated report template.

Loading and Saving a Report Template

Handle the save action in WebAssembly and store or return the updated report template.

Loading Fields Data from PDF

Accept an uploaded PDF in ASP.NET Core, parse it with StiPdfParser, and convert its fields into application data.

Loading Scripts in Part to Minify Project

Load the report template in Python and pass it to the next viewing, rendering, or export operation.

Loading Scripts in Part to Minify Project

Reports.JS is modular: instead of loading the whole library, you can include only the parts your page needs to keep the download small.

Loading Scripts in Part to Minify Project

Dashboards.JS is modular: instead of loading the whole library, you can include only the parts your page needs to keep the download small.

Loading Scripts in Part to Minify Project

Dashboards.PHP is modular: you can load only the script parts your page needs to keep the download small.

Loading Scripts in Part to Minify Project

Dashboards.Python is modular: you can load only the script parts your page needs to keep the download small.

Loading Scripts in Part to Minify Project

Load the report template in PHP and pass it to the next viewing, rendering, or export operation.

Loading the Report

The foundation of Reports.JS is the StiReport object: you create it, load a template, and render it in the browser.

Localization the Designer

The dashboard designer interface can be shown in different languages by adding localization files. This example adds several and selects one culture.

Localization the Designer

The designer interface can be shown in different languages by adding localization files. This example adds several and selects one culture.

Localizing the Designer

The designer can offer several interface languages and pick a default. This example adds localization files to the menu with different load options.

Localizing the Designer

The designer can offer several interface languages and pick a default. This example adds localization files to the menu with different load options.

Localizing the Designer

The designer can offer several interface languages and pick a default. This example adds localization files to the menu with different load options.

Localizing the Designer

The designer interface can be shown in different languages, with several localization files at once.

Localizing the Designer

The designer interface can be shown in different languages by adding localization files.

Localizing the Designer

The designer interface language is set the same way, by loading a localization file.

Localizing the Designer

The designer interface can be shown in different languages, and several localization files can be offered at once.

Localizing the Designer

The designer interface language is set the same way, by loading a localization file.

Localizing the Designer

The designer interface language is set the same way, by loading a localization file.

Localizing the Designer

Embed the report designer in Python, load a template, and connect its editing and save actions.

Localizing the User Interface

The WPF viewer and designer interface can be shown in different languages by loading localization files.

Localizing the User Interface

The WPF viewer and designer interface can be shown in different languages by loading localization files.

Localizing the User Interface

The WPF viewer and designer interface can be shown in different languages by loading localization files.

Localizing the User Interface

The viewer and designer interface can be shown in different languages by loading localization files.

Localizing the User Interface

The viewer and designer interface can be shown in different languages by loading localization files.

Localizing the User Interface

The viewer and designer interface can be shown in different languages by loading localization files.

Localizing the Viewer

The viewer interface — toolbar tooltips, menus, dialogs — can be shown in any language.

Localizing the Viewer

The viewer interface — toolbar tooltips, menus, dialogs — can be shown in any language.

Localizing the Viewer

The viewer interface — toolbar tooltips, menus, dialogs — can be shown in any language.

Localizing the Viewer

Set up the report viewer in React, load a template, and connect the component to the application.

Localizing the Viewer

The viewer interface — toolbar tooltips, menus, dialogs — can be shown in any language.

Localizing the Viewer

The viewer interface — toolbar tooltips, menus, dialogs — can be shown in any language.

Localizing the Viewer

The viewer interface can be shown in different languages by loading a localization file. This example sets a Portuguese localization.

Localizing the Viewer

The viewer interface — toolbar tooltips, menus, dialogs — can be shown in any language.

Localizing the Viewer

The viewer interface can be shown in different languages by loading a localization file. This example sets a Portuguese localization.

Localizing the Viewer

The viewer interface — toolbar tooltips, menus, dialogs — can be shown in any language.

Localizing the Viewer

The viewer interface — toolbar tooltips, menus, dialogs — can be shown in any language.

Localizing the Viewer

The viewer interface can be shown in different languages by pointing it to a localization file through the component parameter.

Localizing the Viewer

Set up the dashboard viewer in .NET 6.0, load a template, and connect the component to the application.

Localizing the Viewer

Set up the dashboard viewer in .NET 8.0, load a template, and connect the component to the application.

Localizing the Viewer

The viewer interface can be shown in different languages by pointing it to a localization file through the component parameter.

Localizing the Viewer

Set up the dashboard viewer in React, load a template, and connect the component to the application.

Localizing the Viewer

The web viewer interface can be shown in any language by pointing it to a localization file.

Localizing the Viewer

Set up the dashboard viewer in Angular, load a template, and connect the component to the application.

Localizing the Viewer

The web viewer interface can be shown in any language by pointing it to a localization file.

Localizing the Viewer

Set up the dashboard viewer in Vue 3, load a template, and connect the component to the application.

Localizing the Viewer

The web viewer interface can be shown in any language by pointing it to a localization file, chosen in the viewer options.

Managing Report Printing and Exporting

When printing and exporting go through the viewer, you can intercept them on the server to adjust the document or its export settings.

Managing Report Printing and Exporting

When printing and exporting go through the viewer, you can intercept them on the server to adjust the document or its export settings.

Managing Report Printing and Exporting

When printing and exporting go through the viewer, you can intercept them in the page model to adjust the document or its export settings.

Managing Reports with Sub-Reports

A report can include other reports as sub-reports, combining several templates into one document.

Managing Reports with Sub-Reports

Use .NET 6.0 code to manage reports with sub-reports, with the required setup kept alongside the main API calls.

Managing Reports with Sub-Reports

Use .NET 8.0 code to manage reports with sub-reports, with the required setup kept alongside the main API calls.

Merging Several Reports into One

Several rendered reports can be combined into a single document. This example renders two reports and appends their pages into one merged report.

Merging Several Reports into One

Several rendered reports can be combined into a single document under Java.

Opening the Dashboard in the Viewer and Changing it on the Server-Side

Use onOpenedReport in Dashboards.PHP to replace or modify a dashboard before the viewer displays it.

Opening the Report in the Viewer and Changing it on the Server-Side

Handle onOpenedReport in the PHP viewer to modify a report before it reaches the browser.

Opening the Report in the Viewer and Changing it on the Server-Side

Handle onOpenedReport in the Python viewer to modify a report before it reaches the browser.

Parsing Forms Submission Results

Receive a submitted PDF form in a Jakarta Servlet and read its scalar, choice, date, and table fields.

Parsing Forms Submission Results with Spring Boot

Receive a completed PDF form in a Spring Boot controller and read its submitted fields with the Forms API.

Previewing a Report with AutoUpdate in Realtime

A rendered report can be updated live while it is displayed, which is handy for dashboards and monitoring screens.

Printing a Dashboard from Code

Print a dashboard from PHP by configuring the viewer and invoking its print workflow after the dashboard template has been loaded and processed.

Printing a Report from Code

Render the report in .NET 6.0 and start the print workflow with settings supplied by the application.

Printing a Report from Code

Render the report in .NET 8.0 and start the print workflow with settings supplied by the application.

Printing a Report from Code

Render the report in .NET Framework and start the print workflow with settings supplied by the application.

Printing a Report from Code

A report can be rendered and sent to print directly from PHP code. This example loads a report, renders it, and prints it.

Printing the Dashboard from Code

A dashboard can be sent to the printer directly from code after rendering with print().

Printing the Dashboard from Code

A dashboard can be sent to the printer directly from code after rendering with print().

Printing the Dashboard from Code

A dashboard can be sent to the printer directly from code after rendering with print().

Printing the Report

A report can be sent to the printer directly from code, without the viewer. This example renders a report and prints it as soon as it is ready.

Printing the Report from Code

Render the report in Angular and start the print workflow with settings supplied by the application.

Printing the Report from Code

Render the report in React and start the print workflow with settings supplied by the application.

Printing the Report from Code

Render the report in Vue 3 and start the print workflow with settings supplied by the application.

Printing the Report Template from Code

Render the report in Java and start the print workflow with settings supplied by the application.

Printing the Table from Code

A report can be built completely from code, including its data structure and layout, and then printed or shown.

Register JSON Data File and Synchronize Dictionary

A report with an empty data dictionary can be filled from a JSON file, building the data structure automatically.

Register JSON String and Synchronize Dictionary

Data can also be registered from a JSON string you have already fetched, for example from a REST API.

Registering a Data for Dashboard Template

This example registers a dataset for a dashboard template before showing it, so the dashboard is built with data supplied from your application.

Registering a Data for Dashboard Template

A dashboard's data can be supplied from code. This example builds a dataset and registers it with the dashboard before showing it.

Registering a Data for the Dashboard

A dashboard's data can be supplied from the controller instead of being stored in the template.

Registering a Data for the Dashboard

A dashboard's data can be supplied from the controller instead of being stored in the template.

Registering a Data for the Dashboard

Prepare the data in Server, register it in the dashboard dictionary, and render the template with those records.

Registering a Data for the Dashboard

Prepare the data in WebAssembly, register it in the dashboard dictionary, and render the template with those records.

Registering a Data from Code

Data can be registered for the dashboard just before it renders, through the onBeforeRender event.

Registering a Data from Code

Data can be registered for the dashboard just before it renders, through the onBeforeRender event.

Registering a Data from Code

Data can be registered for the report from code just before it renders, using the onBeforeRender event that runs on the client.

Registering a Data from Code

Prepare the data in Python, register it in the report dictionary, and render the template with those records.

Registering a Data from Code when Exporting a Dashboard on the Server-Side

Render the dashboard in PHP and export it directly from code, without opening the viewer.

Registering a Data from Code when Rendering a Report on the Server-Side

When rendering server-side, data can be registered through the onBeforeRender event, which runs in the Node.js engine.

Registering a Fonts Folder

Register the required resource in JavaScript so the report renders consistently in every environment.

Registering a Fonts Folder

On the server you can point the engine to a folder of font files so all of them become available to reports.

Registering a JSON Data for the Dashboard Template

A dashboard's data can be supplied from code as JSON. This example loads a dashboard, clears its design-time data, and registers a JSON dataset.

Registering a JSON Data for the Report Template

Prepare the data in JavaScript, register it in the report dictionary, and render the template with those records.

Registering an XML Data for the Report Template

Prepare the data in JavaScript, register it in the report dictionary, and render the template with those records.

Registering Data from Code

Instead of a database connection, you can pass an in-memory DataSet directly to the report.

Registering Data from Code

Instead of a database connection, you can pass an in-memory DataSet directly to the report.

Registering Data from Code

Instead of a database connection, you can pass an in-memory DataSet directly to the report.

Registering Data from Code

A dashboard's data can be supplied from code: load the dashboard, clear its connections, and register your own dataset with regData.

Registering Data from Code

A dashboard's data can be supplied from code: load the dashboard, clear its connections, and register your own dataset with regData.

Registering Data from Code

A dashboard's data can be supplied from code: load the dashboard, clear its connections, and register your own dataset with regData.

Registering Data when Creating a New Dashboard

When a user creates a new dashboard in the designer, you can automatically register data for it through the onCreateReport event.

Registering Data when Creating a New Dashboard

When a user creates a new dashboard in the designer, you can automatically register data through the onCreateReport event.

Registering Data when Creating a New Report

When a user creates a new report in the designer, you can automatically register data for it through the onCreateReport event.

Registering Data when Creating a New Report

When a user creates a new report in the designer, you can automatically register data for it through the onCreateReport event.

Rendering a Report from Code

A report can be rendered without a viewer, for example to process the result server-side. This example renders the report and inspects the output.

Rendering a Report from Code

A report can be rendered without a viewer, for example to process the result server-side. This example renders the report and inspects the output.

Rendering a Report from Code

A report can be rendered without a viewer, for example to process the result server-side. This example renders the report and inspects the output.

Rendering a Report from Code

Use PHP code to render a report from code, with the required setup kept alongside the main API calls.

Rendering a Report from Code

A report can be rendered from Python code and its result inspected or shown. This example renders a report and reacts when rendering completes.

Rendering a Report from Code on a Button Click

Rendering can be deferred until the user clicks a button, rather than on page load. This example outputs the report scripts on demand.

Rendering a Report from Code on the Server-Side

Reports.PHP can render reports fully on the server using an embedded Node.js engine, with no browser involved.

Rendering a Report from Code on the Server-Side

Reports.Python can render reports fully on the server using an embedded Node.js engine, with no browser involved.

Rendering a Report in the Thread

Rendering a large report can take time, so it is often done on a background thread to keep the interface responsive.

Rendering a Report with SQL from Code on the Server-Side

Prepare the data in PHP, register it in the report dictionary, and render the template with those records.

Rendering and Exporting a Report Asynchronously

The report engine offers async methods so you can compile, render and export without blocking the UI thread, using ordinary async/await.

Rendering and Exporting a Report in the Console App

Report generation does not require a web host — the engine runs anywhere .NET runs, including a console application.

Rendering and Exporting a Report in the Console App

Report generation does not require a web or desktop host at all — the engine runs anywhere .NET runs, including a console application.

Rendering and Exporting a Report in the Console App

Report generation does not require a web or desktop host at all — the engine runs anywhere .NET runs, including a console application.

Running a Report through the REST API (JavaScript)

Run and share a server report from browser JavaScript by working with a report snapshot through REST.

Running the Angular Viewer

The Stimulsoft web viewer can be embedded into an Angular front-end while a Java servlet serves the report data.

Running the Angular Viewer with Jakarta EE

This example is the Jakarta EE variant of the Angular viewer integration.

Running the Angular Viewer with Spring Boot

This example integrates the Angular viewer with a Spring Boot back-end.

Running the Designer

Embed the report designer in Java, load a template, and connect its editing and save actions.

Running the Designer and Viewer with Jakarta Faces

Embed the report designer in Java, load a template, and connect its editing and save actions.

Running the Designer and Viewer with JavaServer Faces

Embed the report designer in Java, load a template, and connect its editing and save actions.

Running the Designer and Viewer with Spring Boot

This example hosts both the Stimulsoft web viewer and the web designer in a single Spring Boot application using server-rendered views.

Running the Designer Jakarta EE

Embed the report designer in Java, load a template, and connect its editing and save actions.

Running the React Viewer

This example embeds the Stimulsoft web viewer into a React front-end backed by a Java servlet.

Running the React Viewer with Jakarta EE

Set up the report viewer in Java, load a template, and connect the component to the application.

Running the React Viewer with Spring Boot

Set up the report viewer in Java, load a template, and connect the component to the application.

Running the Viewer

Set up the report viewer in Java, load a template, and connect the component to the application.

Running the Viewer Jakarta EE

Set up the report viewer in Java, load a template, and connect the component to the application.

Saving a Dashboard Template on the Server-Side

When the user saves in the designer, the dashboard is sent to the server where you decide how to store it, through the onSaveReport event.

Saving a Dashboard Template on the Server-Side

When the user saves in the designer, the dashboard is sent to the server where you decide how to store it, through the onSaveReport event.

Saving a Report Template in the Designer

When you host the web designer you usually want to control where edited templates are stored.

Saving a Report Template in the Designer

When you host the web designer you usually want to control where edited templates are stored.

Saving a Report Template in the Designer

Embed the report designer in ASP.NET Core Razor Pages, load a template, and connect its editing and save actions.

Saving a Report Template on the Server-Side

When the user saves in the designer, the template is sent to the server where you decide how to store it.

Saving a Report Template on the Server-Side

When the user saves in the designer, the template is sent to the server where you decide how to store it.

Saving and Loading a Report in the Designer

This example customizes the designer's save and load behavior, redirecting them through your own handlers and adjusting the designer menu.

Saving the Rendered Report to a File

A rendered report can be saved as a document file (.mdc) so it can be reloaded later without re-rendering.

Sending a Form by Email

Personalize a form for each recipient, export every copy in memory, and send it as a PDF attachment.

Sending a Report by Email

Create the document in memory in .NET 6.0 and send it as an e-mail attachment without leaving a temporary file.

Sending a Report by Email

Create the document in memory in .NET 8.0 and send it as an e-mail attachment without leaving a temporary file.

Sending a Report by Email

Create the document in memory in .NET 10.0 and send it as an e-mail attachment without leaving a temporary file.

Sending a Report by Email

Create the document in memory in .NET 6.0 and send it as an e-mail attachment without leaving a temporary file.

Sending a Report by Email

Create the document in memory in .NET 8.0 and send it as an e-mail attachment without leaving a temporary file.

Sending a Report by Email

Create the document in memory in .NET 10.0 and send it as an e-mail attachment without leaving a temporary file.

Sending a Report by Email

Create the document in memory in .NET 6.0 and send it as an e-mail attachment without leaving a temporary file.

Sending a Report by Email

Create the document in memory in .NET 8.0 and send it as an e-mail attachment without leaving a temporary file.

Sending a Report by Email

Create the document in memory in PHP and send it as an e-mail attachment without leaving a temporary file.

Sending a Report by Email

Create the document in memory in .NET 6.0 and send it as an e-mail attachment without leaving a temporary file.

Sending a Report by Email

Create the document in memory in .NET 8.0 and send it as an e-mail attachment without leaving a temporary file.

Sending a Report by Email

The web viewer can e-mail a rendered report from its toolbar. This example enables the button and handles the request in the page model.

Sending a Report by Email

Create the document in memory in Python and send it as an e-mail attachment without leaving a temporary file.

Sending an Exported Dashboard to the Server-Side

When the user exports a dashboard, the result can be sent back to the server and saved, through the onEndExportReport event.

Sending an Exported Dashboard to the Server-Side

When the user exports a dashboard, the result can be sent back to the server and saved, through the onEndExportReport event.

Sending an Exported Report to the Server-Side

When the user exports a report, the result can be sent back to the server and saved.

Sending an Exported Report to the Server-Side

When the user exports a report, the result can be sent back to the server and saved.

Setting Dashboard Variables on the Server-Side

Dashboard variables can be filled on the server before rendering, through the onPrepareVariables event.

Setting Report Variables on the Server-Side

Load the report template in PHP, assign its variables from application code, and continue with rendering.

Setting Report Variables on the Server-Side

Load the report template in Python, assign its variables from application code, and continue with rendering.

Setting the Variable Value from Code

Report variables can be assigned from code before rendering — for values that come from the application rather than the data.

Show All Workspaces

List the available Stimulsoft Server workspaces through either the .NET API or the REST API.

Showing a Dashboard in the Viewer

The Stimulsoft web viewer displays interactive dashboards in ASP.NET Core MVC just as it displays reports.

Showing a Dashboard in the Viewer

The Stimulsoft web viewer displays interactive dashboards in ASP.NET Core MVC just as it displays reports.

Showing a Dashboard in the Viewer

Stimulsoft Dashboards.WIN shows interactive dashboards in a WinForms application.

Showing a Dashboard in the Viewer

Stimulsoft provides native Blazor components, so a dashboard is shown with the viewer tag.

Showing a Dashboard in the Viewer

Stimulsoft provides native Blazor components, so a dashboard is shown with the viewer tag.

Showing a Dashboard in the Viewer

The Dashboards.PHP viewer is created on the server with the PHP SDK, which outputs the JavaScript viewer into the page.

Showing a Dashboard in the Viewer

Stimulsoft Dashboards.Python is a native Python library that renders dashboards and outputs the JavaScript viewer into your page.

Showing a Dashboard in the Viewer in an HTML template

Place the Dashboards.PHP viewer in an HTML template by rendering its scripts in the head and its markup in the body.

Showing a Dashboard in the Viewer in an HTML template

Set up the dashboard viewer in Python, load a template, and connect the component to the application.

Showing a Dashboard in the Viewer in an HTML template using PHP variables

The viewer's HTML can be captured into PHP variables and echoed wherever you need — handy for templating engines.

Showing a Dashboard in the Viewer using JavaScript

Prepare a dashboard in PHP, then display it in a target element with the generated JavaScript viewer.

Showing a Dashboard in the WPF Viewer

Dashboards.WIN also supports WPF applications. This example shows a dashboard in the WPF viewer — embedded or in a window.

Showing a Progress while Rendering a Report

When rendering takes a while, showing a progress indicator improves the user experience.

Showing a Report as PDF

Instead of downloading, an exported PDF can be shown inline in the browser. This example renders a report and produces a PDF blob for display.

Showing a Report in the Viewer

Set up the report viewer in Wisej.NET, load a template, and connect the component to the application.

Showing a Report in the Viewer

Set up the report viewer in Laravel, load a template, and connect the component to the application.

Showing a Report in the Viewer

This example shows the two basic ways to display a report in a WPF application: in an embedded WPF viewer control, or in a separate viewer window.

Showing a Report in the Viewer

This example shows the two basic ways to display a report in a WPF application: in an embedded WPF viewer control, or in a separate viewer window.

Showing a Report in the Viewer

This example shows the two basic ways to display a report in a WPF application: in an embedded WPF viewer control, or in a separate viewer window.

Showing a Report in the Viewer

Set up the report viewer in .NET 6.0, load a template, and connect the component to the application.

Showing a Report in the Viewer

Set up the report viewer in .NET 8.0, load a template, and connect the component to the application.

Showing a Report in the Viewer

Set up the report viewer in .NET Framework, load a template, and connect the component to the application.

Showing a Report in the Viewer

Stimulsoft provides native Blazor components, so the viewer is used as a Razor tag.

Showing a Report in the Viewer

Stimulsoft provides native Blazor components, so the viewer is used as a Razor tag.

Showing a Report in the Viewer

The Reports.PHP viewer is created on the server with the PHP SDK, which outputs the JavaScript viewer into the page.

Showing a Report in the Viewer

Set up the report viewer in .NET 6.0, load a template, and connect the component to the application.

Showing a Report in the Viewer

Set up the report viewer in .NET 8.0, load a template, and connect the component to the application.

Showing a Report in the Viewer

Stimulsoft Reports.Python is a native Python library that renders reports and outputs the JavaScript viewer into your web page.

Showing a Report in the Viewer

Set up the report viewer in ASP.NET Core Razor Pages, load a template, and connect the component to the application.

Showing a Report in the Viewer in an HTML template

When you build the page yourself, you can output the viewer's scripts and body separately so they fit your HTML layout.

Showing a Report in the Viewer in an HTML template

When you build the page with your own HTML template, the viewer's scripts and body can be emitted separately so they fit your layout.

Showing a Report in the Viewer in an HTML template using PHP variables

Instead of printing directly, the viewer's HTML can be captured into PHP variables and echoed wherever you need — handy for templating engines.

Showing a Report in the Viewer using JavaScript

You can also build the viewer with plain JavaScript on the client and use PHP only as the data/request handler.

Showing a Report in the Viewer without Toolbar

Reports.JS provides ready-made React components in the stimulsoft-reports-js-react package, so you embed the viewer as a JSX element.

Showing a Report in the Viewer without Toolbar

Reports.JS ships ready-made components for Angular and Vue, so the viewer is used as a framework element.

Showing a Report in the Viewer without Toolbar

Reports.JS ships ready-made components for Angular and Vue, so the viewer is used as a framework element.

Showing a Viewer without Toolbar

The viewer can be shown without its toolbar for a clean, read-only preview. This example configures viewer options and passes them to the component.

Showing a Viewer without Toolbar

The viewer can be shown without its toolbar for a clean, read-only preview. This example configures viewer options and passes them to the component.

Showing Interactive Reports

Stimulsoft reports can be interactive — sorting, drill-down, collapsing groups, chart interaction — and it all works in the web viewer out of the box.

Showing Interactive Reports

Stimulsoft reports can be interactive — sorting, drill-down, collapsing groups, chart interaction — and it all works in the web viewer out of the box.

Showing Interactive Reports

Interactive report features — sorting, drill-down, collapsing groups, chart interaction — work in the web viewer without extra code.

Showing the Dashboard Designer Immediately after Running an App

The dashboard designer can be shown as soon as the page loads. This example creates the designer and dashboard on start-up.

Showing the Dashboard Designer in a Required Position

The dashboard designer can be placed into any element on your page rather than filling the window. This example renders it into a specific container.

Showing the Dashboard Designer in iframe

Embed the dashboard designer in an iframe to keep its UI and scripts separate from the host page.

Showing the Dashboard Viewer Immediately after Running an App

Set up the dashboard viewer in JavaScript, load a template, and connect the component to the application.

Showing the Dashboard Viewer in a Required Position

The dashboard viewer can be rendered into any element on the page to fit your layout. This example draws it into a specific container.

Showing the Dashboard Viewer in iframe

Embed the dashboard viewer in an iframe to isolate its scripts and layout from the host page.

Showing the Dashboard Viewer on the Web Page

Set up the dashboard viewer in JavaScript, load a template, and connect the component to the application.

Showing the Designer Immediately after Running an App

Embed the report designer in JavaScript, load a template, and connect its editing and save actions.

Showing the Designer in a Required Position

The designer can be placed into any element on your page rather than filling the window, so it fits into an existing layout.

Showing the Designer in iframe

Embed the report designer in JavaScript, load a template, and connect its editing and save actions.

Showing the Report Viewer in a Required Position

The viewer can be rendered into any element on the page so it fits your layout. This example draws it into a specific container.

Showing the Viewer Immediately after Running an App

Set up the report viewer in JavaScript, load a template, and connect the component to the application.

Showing the Viewer in iframe

The viewer can be hosted inside an iframe to keep its scripts and styles separate from the host page. This example loads a viewer page into an iframe.

Starting SQL adapters from the HTTP server

Reports.JS can connect to SQL databases (MySQL, PostgreSQL, MS SQL and others) through a small Node.js data-adapter service.

Starting SQL adapters from the HTTP server

Dashboards.JS can connect to SQL databases through a small Node.js data-adapter service.

Supply Custom Headers for JSON Database

When a JSON data source is served by a protected backend, you can attach custom HTTP headers to each data request.

Supply Custom Headers for Json Database

When a report loads data from a protected JSON endpoint, you may need to send authentication headers.

Supply Custom Headers for JSON Database

When a JSON data source is served by a protected backend, you can attach custom HTTP headers to each data request.

Supply Custom Headers for Json Database

When a dashboard loads data from a protected JSON endpoint, you can attach authentication headers through the onBeginProcessData event.

Supply Custom Headers for JSON Database

When a JSON data source is served by a protected backend, you can attach custom HTTP headers to each data request.

Supply Custom Headers for Json Database

When a report loads data from a protected JSON endpoint, you may need to send authentication headers.

Supply Custom Headers for Json Database

Attach custom authentication headers while a Node.js dashboard reads data from a protected JSON endpoint.

Supply Custom Headers for JSON Database

When a dashboard loads data from a protected JSON endpoint, authentication headers can be attached in the onBeginProcessData event.

Supply Custom Headers for JSON Database

When a dashboard loads data from a protected JSON endpoint, authentication headers can be attached in the onBeginProcessData event.

Supply Custom Headers for JSON Database

When a dashboard loads data from a protected JSON endpoint, authentication headers can be attached in the onBeginProcessData event.

Testing Memory Usage in EngineV1 and EngineV2

Stimulsoft includes two rendering engines: the classic EngineV1 and the memory-optimized EngineV2.

Updating a JSON Data for the Dashboard Viewer

A dashboard shown in the viewer can be refreshed with new data without reloading the page — useful for live dashboards.

Using a Custom Data Adapter

For a data source that is not built in, you can register a custom data adapter and use it in the web designer.

Using a Custom Data Adapter

You can register a fully custom data source that supplies schema and data from your own code.

Using a Custom Data Adapter

You can register a fully custom data source that supplies schema and data from your own code.

Using a Custom Data Adapter

For a data source Reports.JS does not support natively, you can register a custom database that answers the engine's data commands yourself.

Using a Custom Data Adapter

You can register a fully custom data source that supplies schema and data from your own code.

Using a Custom Data Adapter

For a data source that is not built in, you can register a custom data adapter and use it in the WPF designer.

Using a Custom Data Adapter

For a data source that is not built in, you can register a custom data adapter and use it in the WPF designer.

Using a Custom Data Adapter

For a data source that is not built in, you can register a custom data adapter and use it in the WPF designer.

Using a Custom Data Adapter

Stimulsoft supports many databases out of the box, but you can plug in your own data adapter for a source that is not built in.

Using a Custom Data Adapter

Stimulsoft supports many databases out of the box, but you can plug in your own data adapter for a source that is not built in.

Using a Custom Data Adapter

Stimulsoft supports many databases out of the box, but you can plug in your own data adapter for a source that is not built in.

Using a Custom Data Adapter

For an unsupported data source you can register a custom database that answers the engine's data commands, then use it in the designer.

Using a Custom Data Adapter

For an unsupported data source you can register a custom database that answers the engine's data commands, then use it in the designer.

Using a Custom Data Adapter

For a data source that is not built in, you can register a custom data adapter and use it in the web designer.

Using a Custom Data Adapter

For a data source that is not built in, you can register a custom data adapter and use it in the web designer.

Using a Custom Data Adapter

For an unsupported data source you can register a custom database that answers the engine's data commands, then use it in the designer.

Using a Custom Font

Fonts can also be supplied to the whole engine rather than stored in the report. This example registers a TTF file with the global font collection.

Using a Custom Font

Fonts can also be supplied to the whole engine rather than stored in the report. This example registers a TTF file with the global font collection.

Using a Custom Font

A single custom font file can be added to the engine and used in a report. This example loads one font and embeds it in the exported PDF.

Using a Custom Font

Fonts can also be supplied to the whole engine rather than stored in the report. This example registers a TTF file with the global font collection.

Using a Custom Font

A custom font can be added to the engine and embedded into the exported dashboard. This example loads one font and embeds it in the PDF.

Using a Custom Font

A single custom font file can be registered with the engine and used across the dashboard.

Using a Custom Font

A single custom font file can be registered with the engine and used across the dashboard.

Using a Custom Font

A single custom font file can be registered with the engine and used across the dashboard.

Using a Report Cache Mode

For very large reports, cache mode keeps memory usage low by holding only part of the rendered document in memory at a time.

Using a Report Export Service

A report can be exposed as a web API endpoint that renders and returns a document on demand — a report export service.

Using a Report Export Service

A report can be exposed as a web API endpoint that renders and returns a document on demand — a report export service.

Using API Methods

For finer control you can talk to the viewer directly through its API instead of only reacting to events.

Using API Methods

For finer control you can talk to the viewer directly through its API instead of only reacting to events.

Using API Methods

For finer control you can talk to the viewer directly through its API instead of only reacting to events.

Using API Methods

For finer control you can talk to the viewer directly through its API instead of only reacting to events.

Using API Methods

For finer control you can talk to the viewer directly through its API instead of only reacting to events.

Using API Methods

For finer control you can talk to the viewer directly through its API instead of only reacting to events.

Using API Methods

For finer control you can talk to the viewer directly through its API instead of only reacting to events.

Using API Methods

For finer control you can talk to the viewer directly through its API instead of only reacting to events.

Using API Methods

For finer control you can call the viewer API directly from Angular using a component reference.

Using API Methods

For finer control you can call the viewer API directly from Angular using a component reference.

Using Business Objects in the Report

Web reports can be bound to your application's business objects — collections implementing IEnumerable or ITypedList.

Using Business Objects in the Report

Reports can be bound directly to your application's business objects — collections implementing IEnumerable or ITypedList.

Using Business Objects in the Report

Reports can be bound directly to your application's business objects — collections implementing IEnumerable or ITypedList.

Using Business Objects in the Report

Reports can be bound directly to your application's business objects — collections implementing IEnumerable or ITypedList.

Using Business Objects in the Report

Besides datasets, reports can be bound directly to your application's business objects — collections implementing IEnumerable or ITypedList.

Using business objects in the report

Reports can be bound to your application's business objects. This example registers a business object collection and opens the report in the designer.

Using business objects in the report

Reports can be bound to your application's business objects. This example registers a business object collection and opens the report in the designer.

Using Business Objects in the Report

Register application objects as a data source in .NET 6.0 and make their fields available to the report template.

Using Business Objects in the Report

Reports can be bound directly to your application's business objects. This example registers an object collection and shows it in an Avalonia viewer.

Using Business Objects in the Report

Reports can be bound directly to your application's business objects. This example registers an object collection and shows it in an Avalonia viewer.

Using Business Objects in the Report

Register application objects as a data source in .NET 8.0 and make their fields available to the report template.

Using CDNs for Script Loading

The Dashboards.JS scripts can be loaded from a CDN instead of being hosted with your application.

Using CDNs for Script Loading

The Reports.JS scripts can be loaded from a CDN instead of being hosted with your application, which speeds up delivery and simplifies updates.

Using Dashboard Variables in Code

Dashboard variables can be set from code before rendering, for values that come from the application.

Using Dashboard Variables in Code

Dashboard variables can be set from code before rendering, for values that come from the application.

Using Dashboard Variables in Code

Dashboard variables can be set from code before rendering, for values that come from the application.

Using Designer Events

The designer raises events for the actions users perform — creating, previewing, saving and exiting a report.

Using Designer Events

The React designer raises events for creating, saving, previewing and exiting a report.

Using Designer Events

The designer raises events for creating, saving and previewing a report. This example registers data on new reports and reacts to saves.

Using Designer Events

The designer raises events for creating, saving and previewing a report. This example registers data on new reports and reacts to saves.

Using Designer Events

Stimulsoft for Angular includes not only a viewer but a full report designer.

Using Designer Events

Stimulsoft for Angular includes not only a viewer but a full report designer.

Using Designer Events

Stimulsoft for Angular includes a dashboard designer alongside the viewer. This example hosts both and handles the designer's events.

Using Designer Events

Stimulsoft for Angular includes a dashboard designer alongside the viewer. This example hosts both and handles the designer's events.

Using Designer Events

The dashboard designer raises events for saving and other actions; handling onSaveReport lets you persist the edited dashboard.

Using Designer Events

The dashboard designer raises events for saving and other actions; handling onSaveReport lets you persist the edited dashboard.

Using Designer Events

The dashboard designer raises events for saving and other actions; handling onSaveReport lets you persist the edited dashboard.

Using Events of the Report Render Process

Handle the relevant report event in Java and use its arguments to adjust the application behavior.

Using Linq in Reports

Because a report can be bound to any object collection, you can feed it the result of a LINQ query.

Using Linq in Reports

Because a report can be bound to any object collection, you can feed it the result of a LINQ query.

Using Linq in Reports

Because a report can be bound to any object collection, you can feed it the result of a LINQ query.

Using Linq in Reports

Because a report can be bound to any object collection, you can feed it the result of a LINQ query.

Using Linq in Reports

Because a report can be bound to any object collection, you can feed it a LINQ query.

Using Linq in Reports

Because a report can be bound to any object collection, you can feed it a LINQ query.

Using Parameters in SQL Query

SQL query parameters can be substituted with real values at run time. This example replaces a parameter value just before the data is fetched.

Using Parameters in SQL Query

SQL query parameters can be substituted with real values at run time. This example replaces a parameter value just before the data is fetched.

Using Parameters in SQL Query

SQL query parameters can be substituted with real values at run time. This example replaces a parameter value just before the data is fetched.

Using Parameters in SQL Query

SQL queries can use parameters whose values you set on the server, through the onBeginProcessData event.

Using Parameters in SQL Query

SQL query parameters can be set in the onBeginProcessData event to filter the dashboard data securely.

Using Parameters in SQL Query

SQL queries can use parameters whose values you set on the server. This example supplies a parameter value in the onBeginProcessData event.

Using Parameters in SQL Query

SQL query parameters can be set in the onBeginProcessData event to filter the dashboard data securely.

Using Parameters in SQL Query

SQL query parameters can be set in the onBeginProcessData event to filter the dashboard data securely.

Using Parameters in SQL Query

SQL queries can use parameters whose values you set on the server. This example supplies a parameter value in the onBeginProcessData event.

Using Report Variables in Code

Report variables can be assigned from code before rendering, which is handy for passing application state into a template.

Using Report Variables in Code

Report variables can be assigned from code before rendering, which is handy for passing application state into a template.

Using Report Variables in Code

Report variables can be assigned from code before rendering, which is handy for passing application state into a template.

Using Report Variables in Code

Load the report template in .NET 6.0, assign its variables from application code, and continue with rendering.

Using Report Variables in Code

Load the report template in .NET 8.0, assign its variables from application code, and continue with rendering.

Using Report Variables in Code

Load the report template in .NET Framework, assign its variables from application code, and continue with rendering.

Using Report Variables in Code

Report variables let a report receive values from the application — user input, settings, calculated data.

Using Report Variables in Code

Report variables let a report receive values from the application — user input, settings, calculated data.

Using Report Variables in Code

Report variables let a report receive values from the application — user input, settings, calculated data.

Using Report Variables in Code

Report variables can be set from Blazor, for example from a text box, and the viewer updates to reflect them.

Using Report Variables in Code

Report variables can be set from Blazor, for example from a text box, and the viewer updates to reflect them.

Using Report Variables in Code

Report variables let a web report receive values from the request — user input from a form or query string.

Using Report Variables in Code

Load the report template in .NET 6.0, assign its variables from application code, and continue with rendering.

Using Report Variables in Code

Load the report template in .NET 8.0, assign its variables from application code, and continue with rendering.

Using Report Variables in Code

Report variables let a web report receive values from the request — user input from a form or query string.

Using Report Variables in Code

Load the report template in ASP.NET Core Razor Pages, assign its variables from application code, and continue with rendering.

Using SQL Data Sources

The connection string and SQL query of a report can be changed dynamically from code. This example swaps both when the report requests its data.

Using SQL Data Sources

The connection string and SQL query of a report can be changed dynamically from code. This example swaps both when the report requests its data.

Using SQL Data Sources

The connection string and SQL query of a report can be changed dynamically from code. This example swaps both when the report requests its data.

Using SQL Data Sources

Dashboards can pull data from SQL databases, with the connection handled on the server through the onBeginProcessData event.

Using SQL Data Sources

In a Blazor WebAssembly app the browser cannot reach a database directly, so SQL data is fetched through a server API.

Using SQL Data Sources

Dashboards can pull data from SQL databases through a data-adapter service; the connection is supplied in the onBeginProcessData event.

Using SQL Data Sources

Reports can pull data from SQL databases, with the connection handled on the server through the onBeginProcessData event.

Using SQL Data Sources

Dashboards can pull data from SQL databases through a data-adapter service; the connection is supplied in the onBeginProcessData event.

Using SQL Data Sources

Dashboards can pull data from SQL databases through a data-adapter service; the connection is supplied in the onBeginProcessData event.

Using the Dashboard Theme on the Website

A dashboard carries its own colors and style, which you can read on the server to make the surrounding web page match.

Using the Dashboard Theme on the Website

A dashboard carries its own colors and style, which you can read on the server to make the surrounding web page match.

Using the Form to Select Columns

Use .NET Framework code to use the form to select columns, with the required setup kept alongside the main API calls.

Using the Full-Screen Mode in the Designer

Embed the dashboard designer in JavaScript, load a template, and connect its editing and save actions.

Using the Full-Screen Mode in the Designer

Full-screen mode makes the designer occupy the whole browser window, which is the natural layout for a dedicated report-editing application.

Using the Full-Screen Mode in the Viewer

The web viewer can occupy the whole browser window in full-screen mode, useful for report portals and dashboards.

Using the Full-Screen Mode in the Viewer

Full-screen mode makes the dashboard viewer fill the whole browser window, ideal for dashboard portals. This example enables it.

Using the Full-Screen Mode in the Viewer

Set up the report viewer in JavaScript, load a template, and connect the component to the application.

Using the Full-Screen Mode in the Viewer

The web viewer can occupy the whole browser window in full-screen mode, which is useful for report portals and dashboards.

Using the Full-Screen Mode in the Viewer

The web viewer can occupy the whole browser window in full-screen mode, which is useful for report portals and dashboards.

Using the REST API

Log in to Stimulsoft Server, create a report snapshot, run a template, and export the document through REST.

Using the Right-To-Left Mode in the Viewer

For right-to-left languages such as Arabic or Hebrew, the viewer interface can be mirrored. This example enables RTL mode.

Using the Right-To-Left Mode in the Viewer

For right-to-left languages such as Arabic or Hebrew, the viewer interface can be mirrored. This example enables RTL mode.

Using the Right-To-Left Mode in the Viewer

For right-to-left languages such as Arabic or Hebrew, the viewer interface can be mirrored. This example enables RTL mode.

Using the Right-To-Left Mode in the Viewer

For right-to-left languages such as Arabic or Hebrew, the viewer interface itself can be mirrored. This example enables RTL mode for the viewer.

Using the Right-To-Left Mode in the Viewer

Set up the dashboard viewer in React, load a template, and connect the component to the application.

Using the Right-To-Left Mode in the Viewer

Set up the dashboard viewer in Angular, load a template, and connect the component to the application.

Using the Right-To-Left Mode in the Viewer

Set up the dashboard viewer in Vue 3, load a template, and connect the component to the application.

Using the Same Label for Multiple Fonts

Register the required resource in JavaScript so the report renders consistently in every environment.

Using the two Viewer in the One Project

Because the viewer is just a React component, you can place several instances on one page. This example shows two independent viewers side by side.

Using the two Viewer in the One Project

Because the viewer is a component, you can place several instances on one page. This example shows two independent viewers side by side.

Using the two Viewer in the One Project

Because the viewer is a component, you can place several instances on one page. This example shows two independent viewers side by side.

Using the two Viewer in the One Project

Run two independent dashboard viewers in one React application. Each component receives its own StiReport instance and loads a different dashboard.

Using the two Viewer in the One Project

Run two independent dashboard viewers in one Angular application. Each component receives its own StiReport instance and loads a different dashboard.

Using the two Viewer in the One Project

Run two independent dashboard viewers in one Vue 3 application. Each component receives its own StiReport instance and loads a different dashboard.

Using User Data in Reports

Reports can display arbitrary application data, not only database tables.

Using User Data in Reports

The StiUserData source lets a report pull data from arbitrary application code through an event.

Using User Data in Reports

The StiUserData source lets a report pull data from arbitrary application code through an event.

Using Viewer Events

The viewer raises events for data loading, printing, exporting and switching to the designer.

Using Viewer Events

Set up the report viewer in .NET 6.0, load a template, and connect the component to the application.

Using Viewer Events

Set up the report viewer in .NET 8.0, load a template, and connect the component to the application.

Using Viewer Events

Set up the report viewer in .NET 10.0, load a template, and connect the component to the application.

Using Viewer Events

The React viewer exposes events as component props. This example handles the e-mail event, which fires when the user sends a report from the toolbar.

Using Viewer Events

Set up the report viewer in .NET 6.0, load a template, and connect the component to the application.

Using Viewer Events

Set up the report viewer in .NET 8.0, load a template, and connect the component to the application.

Using Viewer Events

Set up the report viewer in Angular, load a template, and connect the component to the application.

Using Viewer Events

Set up the report viewer in .NET 10.0, load a template, and connect the component to the application.

Using Viewer Events

Set up the report viewer in Vue 3, load a template, and connect the component to the application.

Using Viewer Events

Set up the report viewer in .NET 6.0, load a template, and connect the component to the application.

Using Viewer Events

Set up the report viewer in .NET 8.0, load a template, and connect the component to the application.

Using Viewer Events

The dashboard viewer notifies your application about what the user does — loading, exporting and more. This example handles those events in Angular.

Using Viewer Events

The dashboard viewer notifies your application about what the user does — loading, exporting and more. This example handles those events in Angular.

Using Viewer Events

The dashboard viewer exposes events as component props; here the export event is handled to react when the user exports the dashboard.

Using Viewer Events

The dashboard viewer exposes events as component props; here the export event is handled to react when the user exports the dashboard.

Using Viewer Events

The dashboard viewer exposes events as component props; here the export event is handled to react when the user exports the dashboard.

Using Viewer Parameters

The viewer can be driven from your application through a properties object.

Using Viewer Parameters

The viewer can be driven from your application through a properties object.

Using Viewer Parameters

The viewer can be driven from your application through a properties object.

Using Viewer Parameters

The viewer can be driven from your application through a properties object.

Using Viewer Parameters

The viewer can be driven from your application through a properties object.

Using Viewer Parameters

The viewer can be driven from your application through a properties object.

Using Viewer Parameters

The viewer can be driven from your application through a properties object bound to the component.

Using Viewer Parameters

The viewer can be driven from your application through a properties object bound to the component.

Using Viewer Parameters

The dashboard viewer can be driven from your application through a properties object, for instance to switch the dashboard at run time.

Using Viewer Parameters

The dashboard viewer can be driven from your application through a properties object, for instance to switch the dashboard at run time.

Using with Express

Use Node.js code to use with express, with the required setup kept alongside the main API calls.

Using with Express

Use Node.js code to use with express, with the required setup kept alongside the main API calls.

Viewing Forms and Parsing Submission Results

Display a published form in Angular and parse its submitted field values in ASP.NET Core.

Working with Forms from Code

Create and configure a PDF form in code, then pass it to the web component for display or editing.

Working with onDesign and onExit events

The viewer and designer can be combined into one edit-and-preview workflow using their onDesignReport and onExit events.

Working with onDesign and onExit Events

This example combines the viewer and the designer, switching between them with React state.

Working with onDesign and onExit Events

This example combines the viewer and designer, switching between them with a flag.

Working with onDesign and onExit Events

This example combines the viewer and designer, switching between them with a flag.

Working with onDesign and onExit events

The viewer and designer can be combined into one edit-and-preview workflow using their onDesignReport and onExit events.

Working with onDesign and onExit events

The viewer and designer can be combined into one edit-and-preview workflow using their onDesignReport and onExit events.

Working with onDesign and onExit Events

Combining the viewer and designer with the onDesignReport and onExit events lets users switch from previewing a dashboard to editing it and back.

Working with onDesign and onExit Events

Combining the viewer and designer with the onDesignReport and onExit events lets users switch from previewing a dashboard to editing it and back.

Working with onDesign and onExit events

The viewer and designer can be combined into one edit-and-preview workflow using their onDesignReport and onExit events.

Working with onDesign and onExit Events

Combining the viewer and designer with the onDesignReport and onExit events lets users switch from previewing a dashboard to editing it and back.

Используя этот сайт, вы соглашаетесь на использование файлов Cookie для аналитики и персонализированного контента. Файлы Cookie хранят полезную информацию на вашем компьютере, чтобы помочь нам повысить эффективность и удобство использования. Для получения дополнительной информации, пожалуйста, прочтите Конфиденциальность и Использование Cookie.