Customize Report Viewer in Angular by Loading Its Resources Locally
Environment
Product Version | 13.0.19.222+ |
Product | Progress® Telerik® Reporting |
Project Type | Angular application |
Description
I want to customize the Angular Wrapper Report Viewer's default layout and behavior by loading a custom template, stylesheet, or JS resource.
Prerequisites
Angular requires a folder called assets
to be used for serving custom files, so they could be included in the production build. This is done via the assets
property in the .angular-cli.json
file (or .angular.json
for Angular 6+ applications).
"assets": [
"src/assets",
...
],
Depending on the Angular version, it may be necessary to add the full path for each asset in the
assets
array rather than the whole folder, for example,src/assets/telerikReportViewerTemplate.html
Check out the documentation for this feature here to learn how to use it: Angular workspace configuration.
Important notes
Keep in mind that this will require merging the new changes for each of the local files manually on upgrade.
Solution
The following three scenarios could be applied together (if all resources have to be modified). However, if you intend to modify just one resource, for example, the script file, check only the corresponding section.
Scenario 1
How to load the viewer's JS resource (telerikReportViewer-18.2.24.924.js
) locally?
Example
I would like to change the behavior of the report viewer widget (toolbar, parameters area, document map)
How to
- Copy the script file from
C:\Program Files (x86)\Progress\Telerik Reporting 2024 Q3\Html5\ReportViewer\js\telerikReportViewer-18.2.24.924.js
to assets folder -
In
index.html
load the jQuery library (required for the JS logic) and the local file itself:<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <script src="assets/telerikReportViewer-18.2.24.924.js"></script>
Scenario 2
How to load the viewer's HTML template (telerikReportViewerTemplate-18.2.24.924.html
) locally?
Example
I would like to change the layout of the report viewer widget (hide toolbar buttons, add additional buttons, localize string resources, etc.)
How to
- Copy the template file from
C:\Program Files (x86)\Progress\Telerik Reporting 2024 Q3\Html5\ReportViewer\templates\telerikReportViewerTemplate-18.2.24.924.html
to assets folder -
Load it setting
templateUrl
option of the report viewer like:<tr-viewer #viewer1 [serviceUrl]="'http://localhost:12345/api/reports/'" [templateUrl]="'assets\\telerikReportViewerTemplate-18.2.24.924.html'" [reportSource]="{ report: 'SampleReport.trdp', parameters: {} }" > </tr-viewer>
Scenario 3
How to load the viewer's styles (telerikReportViewer-18.2.24.924.css
) locally?
Example
I would like to change the default styling of the viewer widget.
How to
-
Important: This depends on the template, so make sure that local
telerikReportViewerTemplate-18.2.24.924.html
is used (check Scenario 2). - Copy the stylesheet file from
C:\Program Files (x86)\Progress\Telerik Reporting 2024 Q3\Html5\ReportViewer\styles\telerikReportViewer-18.2.24.924.css
to assets folder -
Open
telerikReportViewerTemplate-18.2.24.924.html
file and change the path to the stylesheet resource from:To:<link href="{service}resources/styles/telerikReportViewer-18.2.24.924.css" rel="stylesheet" />
<link href="assets/telerikReportViewer-18.2.24.924.css" rel="stylesheet" />