You can hide the component toolbar to show customized user interface or to customize the toolbar icons and element’s appearances using the templates and Report Viewer toolbar customization properties.
In this tutorial, the
Sales Order Detail.rdl
report is used, and it can be downloaded from here. You can add the reports from the Bold Reports® installation location. For more information, refer to Samples and demos.
To hide toolbar items, set the toolbarSettings
property. The following code can be used to remove the parameter option from the toolbar and hide the parameter block.
Similarly, you can show or hide all other toolbar options with the help of toolbarSettings.items
enum.
<bold-reportviewer id="reportViewer_Control"
[reportServiceUrl] = "serviceUrl"
[processingMode] = "Remote"
[reportServerUrl] = "serverUrl"
[reportPath] = "reportPath"
[toolbarSettings] = "toolbarSettings">
</bold-reportviewer>
import { Component, ViewChild } from '@angular/core';
@Component({
selector: 'ej-app',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
public serviceUrl: string;
public reportPath: string;
public serverUrl: string;
public toolbarSettings: any;
constructor() {
this.serviceUrl = 'https://demos.boldreports.com/services/api/ReportApi';
this.reportPath = 'GroupingAgg.rdl';
this.toolbarSettings = {
items: ~ej.ReportViewer.ToolbarItems.Parameters,
}
}
}
The following code sample hides the print options from the toolbar items.
<bold-reportviewer id="reportViewer_Control"
[reportServiceUrl] = "serviceUrl"
[processingMode] = "Remote"
[reportServerUrl] = "serverUrl"
[reportPath] = "reportPath"
[toolbarSettings] = "toolbarSettings">
</bold-reportviewer>
import { Component, ViewChild } from '@angular/core';
@Component({
selector: 'ej-app',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
public serviceUrl: string;
public reportPath: string;
public serverUrl: string;
public toolbarSettings: any;
constructor() {
this.serviceUrl = 'https://demos.boldreports.com/services/api/ReportApi';
this.reportPath = 'GroupingAgg.rdl';
this.toolbarSettings = {
items: ~ej.ReportViewer.ToolbarItems.Print,
}
}
}
To enable stop option in toolbar, set the toolbarSettings.items
property to ej.ReportViewer.ToolbarItems.All
. The following code can be used to enable stop option in toolbar.
<bold-reportviewer id="reportViewer_Control"
[reportServiceUrl] = "serviceUrl"
[processingMode] = "Remote"
[reportServerUrl] = "serverUrl"
[reportPath] = "reportPath"
[toolbarSettings] = "toolbarSettings">
</bold-reportviewer>
import { Component, ViewChild } from '@angular/core';
@Component({
selector: 'ej-app',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
public serviceUrl: string;
public reportPath: string;
public serverUrl: string;
public toolbarSettings: any;
constructor() {
this.serviceUrl = 'https://demos.boldreports.com/services/api/ReportApi';
this.reportPath = 'GroupingAgg.rdl';
this.toolbarSettings = {
items: ej.ReportViewer.ToolbarItems.All,
}
}
}
To enable export setup option in toolbar, set the toolbarSettings.items
property to ej.ReportViewer.ToolbarItems.All
. The following code can be used to enable export setup option in toolbar.
<bold-reportviewer id="reportViewer_Control"
[reportServiceUrl] = "serviceUrl"
[processingMode] = "Remote"
[reportServerUrl] = "serverUrl"
[reportPath] = "reportPath"
[toolbarSettings] = "toolbarSettings">
</bold-reportviewer>
import { Component, ViewChild } from '@angular/core';
@Component({
selector: 'ej-app',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
public serviceUrl: string;
public reportPath: string;
public serverUrl: string;
public toolbarSettings: any;
constructor() {
this.serviceUrl = 'https://demos.boldreports.com/services/api/ReportApi';
this.reportPath = 'GroupingAgg.rdl';
this.toolbarSettings = {
items: ej.ReportViewer.ToolbarItems.All
}
}
}
To enable search text option in toolbar, set the toolbarSettings.items
property to ej.ReportViewer.ToolbarItems.All
. The following code can be used to enable search text option in toolbar.
<bold-reportviewer id="reportViewer_Control"
[reportServiceUrl] = "serviceUrl"
[processingMode] = "Remote"
[reportServerUrl] = "serverUrl"
[reportPath] = "reportPath"
[toolbarSettings] = "toolbarSettings">
</bold-reportviewer>
import { Component, ViewChild } from '@angular/core';
@Component({
selector: 'ej-app',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
public serviceUrl: string;
public reportPath: string;
public serverUrl: string;
public toolbarSettings: any;
constructor() {
this.serviceUrl = 'https://demos.boldreports.com/services/api/ReportApi';
this.reportPath = 'GroupingAgg.rdl';
this.toolbarSettings = {
items: ej.ReportViewer.ToolbarItems.All
}
}
}
To hide the Report Viewer toolbar, set the showToolbar
property to false.
<bold-reportviewer id="reportViewer_Control"
[reportServiceUrl] = "serviceUrl"
[processingMode] = "Remote"
[reportServerUrl] = "serverUrl"
[reportPath] = "reportPath"
[toolbarSettings] = "toolbarSettings">
</bold-reportviewer>
import { Component, ViewChild } from '@angular/core';
@Component({
selector: 'ej-app',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
public serviceUrl: string;
public reportPath: string;
public serverUrl: string;
public toolbarSettings: any;
constructor() {
this.serviceUrl = 'https://demos.boldreports.com/services/api/ReportApi';
this.reportPath = 'GroupingAgg.rdl';
this.toolbarSettings = {
showToolbar: false,
}
}
}
The Report Viewer provides the exportOptions
property to show or hide the default export types available in the component. The following code hides the HTML export type from the default export options.
<bold-reportviewer id="reportViewer_Control"
[reportServiceUrl] = "serviceUrl"
[processingMode] = "Remote"
[reportServerUrl] = "serverUrl"
[reportPath] = "reportPath"
[exportSettings] = "exportSettings">
</bold-reportviewer>
import { Component, ViewChild } from '@angular/core';
@Component({
selector: 'ej-app',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
public serviceUrl: string;
public reportPath: string;
public serverUrl: string;
public exportSettings: any;
constructor() {
this.serviceUrl = 'https://demos.boldreports.com/services/api/ReportApi';
this.reportPath = 'GroupingAgg.rdl';
this.exportSettings = {
exportOptions: ej.ReportViewer.ExportOptions.All & ~ej.ReportViewer.ExportOptions.HTML
}
}
}
To add custom items to the export drop-down available in the Report Viewer toolbar, use the customItems
property and provide the JSON array of collection input with the index
, cssClass
name, and value
properties. Register the exportItemClick
event to handle the custom item actions as given in following code snippet.
<bold-reportviewer id="reportViewer_Control"
[reportServiceUrl] = "serviceUrl"
[processingMode] = "Remote"
[reportServerUrl] = "serverUrl"
[reportPath] = "reportPath"
[exportSettings] = "exportSettings"
(exportItemClick) = "onExportItemClick($event)">
</bold-reportviewer>
import { Component, ViewChild } from '@angular/core';
@Component({
selector: 'ej-app',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
public serviceUrl: string;
public reportPath: string;
public serverUrl: string;
public exportSettings: any;
constructor() {
this.serviceUrl = 'https://demos.boldreports.com/services/api/ReportApi';
this.reportPath = 'GroupingAgg.rdl';
this.exportSettings = {
customItems: [{
index: 2,
cssClass: '',
value: 'Text File'
},
{
index: 4,
cssClass: '',
value: 'DOT'
}]
};
}
//Export click event handler
onExportItemClick(event) {
if (event.value === "Text File") {
//Implement the code to export report as Text
alert("Text File export option clicked");
} else if (event.value === "DOT") {
//Implement the code to export report as DOT
alert("DOT export option clicked");
}
}
}
You can add custom items to Report Viewer toolbar using the toolbarSettings
property. You should register the toolBarItemClick
event to handle the newly added custom items action.
To add a custom item to existing toolbar group use the customItems
property in toolbarSettings
and provide the JSON array of collection input with the groupIndex
, index
, itemType
, cssClass
name, and tooltip
properties as given in following code snippet.
<bold-reportviewer id="reportViewer_Control"
[reportServiceUrl] = "serviceUrl"
[processingMode] = "Remote"
[reportServerUrl] = "serverUrl"
[reportPath] = "reportPath"
[toolbarSettings] = "toolbarSettings"
(toolBarItemClick) = "onToolBarItemClick($event)">
</bold-reportviewer>
import { Component, ViewChild } from '@angular/core';
@Component({
selector: 'ej-app',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
public serviceUrl: string;
public reportPath: string;
public serverUrl: string;
public toolbarSettings: any;
constructor() {
this.serviceUrl = 'https://demos.boldreports.com/services/api/ReportApi';
this.reportPath = 'GroupingAgg.rdl';
this.toolbarSettings = {
showToolbar: true,
items: ~ej.ReportViewer.ToolbarItems.Print,
customItems: [{
groupIndex: 1,
index: 1,
type: 'Default',
cssClass: "e-icon e-mail e-reportviewer-icon",
id: 'E-Mail',
tooltip: {
header: 'E-Mail',
content: 'Send rendered report as mail attachment'
}
}]
}
}
//Toolbar click event handler
onToolBarItemClick(event) {
if (event.value === "CustomItem") {
//Implement the code to CustomItem toolbar option
alert("CustomItem toolbar option Clicked");
}
}
}
To add a new toolbar group and custom items to it, use the customGroups
property in the toolbarSettings
and provide the JSON array of collection input with the groupIndex
and items
properties. The items
should have the itemType
, cssClass
, and tooltip
properties as given in following code snippet.
<bold-reportviewer id="reportViewer_Control"
[reportServiceUrl] = "serviceUrl"
[processingMode] = "Remote"
[reportServerUrl] = "serverUrl"
[reportPath] = "reportPath"
[toolbarSettings] = "toolbarSettings"
(toolBarItemClick) = "onToolBarItemClick($event)">
</bold-reportviewer>
import { Component, ViewChild } from '@angular/core';
@Component({
selector: 'ej-app',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
public serviceUrl: string;
public reportPath: string;
public serverUrl: string;
public toolbarSettings: any;
constructor() {
this.serviceUrl = 'https://demos.boldreports.com/services/api/ReportApi';
this.reportPath = 'GroupingAgg.rdl';
this.toolbarSettings = {
showToolbar: true,
items: ~ej.ReportViewer.ToolbarItems.Print,
customGroups: [{
items: [{
type: 'Default',
cssClass: "e-icon e-mail e-reportviewer-icon CustomGroup",
id: 'CustomGroup',
tooltip: { header: 'CustomGroup', content: 'toolbargroups' }
},
{
type: 'Default',
cssClass: "e-icon e-mail e-reportviewer-icon subCustomGroup",
id: 'subCustomGroup',
tooltip: { header: 'subCustomGroup', content: 'subtoolbargroups' }
}],
groupIndex: 3
}]
}
}
//Toolbar click event handler
onToolBarItemClick(event) {
if (event.value === "CustomGroup") {
//Implement the code to CustomGroup toolbar option
alert("CustomGroup toolbar option clicked");
}
if (event.value === "subCustomGroup") {
//Implement the code to subCustomGroup toolbar option
alert("SubCustomGroup toolbar option clicked");
}
}
}
To hide the one (or) more paper sizes in the page settings use the hidePagePaperSizes
property.
<bold-reportviewer id="reportViewer_Control"
[reportServiceUrl] = "serviceUrl"
[processingMode] = "Remote"
[reportServerUrl] = "serverUrl"
[reportPath] = "reportPath"
[pageSettings] = "pageSettings">
</bold-reportviewer>
import { Component, ViewChild } from '@angular/core';
@Component({
selector: 'ej-app',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
public serviceUrl: string;
public reportPath: string;
public serverUrl: string;
public pageSettings: any;
constructor() {
this.serviceUrl = 'https://demos.boldreports.com/services/api/ReportApi';
this.reportPath = 'GroupingAgg.rdl';
this.pageSettings = {
hidePagePaperSizes: ["A3", "A4", "Letter"]
};
}