Events Overview
In this article, we will go over each of the currently available events, showcasing how to attach an event listener to each one as well as what information will be sent through the event.
Events List
updateUI
The updateUI
event will be emitted when the state of the viewer changes.
<reporting-angular-viewer
#viewer
[reportSource]="{
report: 'Dashboard.trdx',
parameters: { ReportYear: 2004 }
}"
[serviceUrl]="'https://demos.telerik.com/reporting/api/reports'"
viewMode="interactive"
[keepClientAlive]="true"
(updateUI)="updateUI()">
</reporting-angular-viewer>
import { Component, ViewChild } from '@angular/core';
import { ReportingAngularViewerComponent } from '@progress/telerik-angular-native-report-viewer'
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss']
})
export class AppComponent {
title = 'Native Angular Report Viewer Demo';
@ViewChild('viewer') public viewer!: ReportingAngularViewerComponent;
updateUI() {
console.log("This event handler will be called when the state of the viewer changes.");
};
}
printStarted
The printStarted
event will be emitted when the printing starts.
<reporting-angular-viewer
#viewer
[reportSource]="{
report: 'Dashboard.trdx',
parameters: { ReportYear: 2004 }
}"
[serviceUrl]="'https://demos.telerik.com/reporting/api/reports'"
viewMode="interactive"
[keepClientAlive]="true"
(printStarted)="printStarted()">
</reporting-angular-viewer>
import { Component, ViewChild } from '@angular/core';
import { ReportingAngularViewerComponent } from '@progress/telerik-angular-native-report-viewer'
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss']
})
export class AppComponent {
title = 'Native Angular Report Viewer Demo';
@ViewChild('viewer') public viewer!: ReportingAngularViewerComponent;
printStarted() {
console.log("This event will be emitted when the printing starts.");
};
}
printDocumentReady
The printDocumentReady
event will be emitted after the viewer finishes printing the report.
<reporting-angular-viewer
#viewer
[reportSource]="{
report: 'Dashboard.trdx',
parameters: { ReportYear: 2004 }
}"
[serviceUrl]="'https://demos.telerik.com/reporting/api/reports'"
viewMode="interactive"
[keepClientAlive]="true"
(printDocumentReady)="printDocumentReady()">
</reporting-angular-viewer>
import { Component, ViewChild } from '@angular/core';
import { ReportingAngularViewerComponent } from '@progress/telerik-angular-native-report-viewer'
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss']
})
export class AppComponent {
title = 'Native Angular Report Viewer Demo';
@ViewChild('viewer') public viewer!: ReportingAngularViewerComponent;
printDocumentReady() {
console.log("This event will be emitted after the viewer finishes printing the report.");
};
}
exportStarted
The exportStarted
event will be emitted when an export operation is triggered.
<reporting-angular-viewer
#viewer
[reportSource]="{
report: 'Dashboard.trdx',
parameters: { ReportYear: 2004 }
}"
[serviceUrl]="'https://demos.telerik.com/reporting/api/reports'"
viewMode="interactive"
[keepClientAlive]="true"
(exportStarted)="exportStarted()">
</reporting-angular-viewer>
import { Component, ViewChild } from '@angular/core';
import { ReportingAngularViewerComponent } from '@progress/telerik-angular-native-report-viewer'
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss']
})
export class AppComponent {
title = 'Native Angular Report Viewer Demo';
@ViewChild('viewer') public viewer!: ReportingAngularViewerComponent;
exportStarted() {
console.log("This event will be emitted when an export operation is triggered.");
};
}
exportDocumentReady
The exportDocumentReady
event will be emitted after the viewer finishes exporting the report.
<reporting-angular-viewer
#viewer
[reportSource]="{
report: 'Dashboard.trdx',
parameters: { ReportYear: 2004 }
}"
[serviceUrl]="'https://demos.telerik.com/reporting/api/reports'"
viewMode="interactive"
[keepClientAlive]="true"
(exportDocumentReady)="exportDocumentReady()">
</reporting-angular-viewer>
import { Component, ViewChild } from '@angular/core';
import { ReportingAngularViewerComponent } from '@progress/telerik-angular-native-report-viewer'
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss']
})
export class AppComponent {
title = 'Native Angular Report Viewer Demo';
@ViewChild('viewer') public viewer!: ReportingAngularViewerComponent;
exportDocumentReady() {
console.log("This event will be emitted after the viewer finishes exporting the report.");
};
}
beforeLoadReport
The beforeLoadReport
event will be emitted before the rendering of a report begins.
<reporting-angular-viewer
#viewer
[reportSource]="{
report: 'Dashboard.trdx',
parameters: { ReportYear: 2004 }
}"
[serviceUrl]="'https://demos.telerik.com/reporting/api/reports'"
viewMode="interactive"
[keepClientAlive]="true"
(beforeLoadReport)="beforeLoadReport()">
</reporting-angular-viewer>
import { Component, ViewChild } from '@angular/core';
import { ReportingAngularViewerComponent } from '@progress/telerik-angular-native-report-viewer'
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss']
})
export class AppComponent {
title = 'Native Angular Report Viewer Demo';
@ViewChild('viewer') public viewer!: ReportingAngularViewerComponent;
beforeLoadReport() {
console.log("This event will be emitted before the rendering of a report begins.");
};
}
beginLoadReport
The beginLoadReport
event will be emitted after the rendering of a report begins.
<reporting-angular-viewer
#viewer
[reportSource]="{
report: 'Dashboard.trdx',
parameters: { ReportYear: 2004 }
}"
[serviceUrl]="'https://demos.telerik.com/reporting/api/reports'"
viewMode="interactive"
[keepClientAlive]="true"
(beginLoadReport)="beginLoadReport()">
</reporting-angular-viewer>
import { Component, ViewChild } from '@angular/core';
import { ReportingAngularViewerComponent } from '@progress/telerik-angular-native-report-viewer'
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss']
})
export class AppComponent {
title = 'Native Angular Report Viewer Demo';
@ViewChild('viewer') public viewer!: ReportingAngularViewerComponent;
beginLoadReport() {
console.log("This event will be emitted after the rendering of a report begins.");
};
}
reportLoadProgress
The reportLoadProgress
event will be emitted after each successful Get Document Info
request until the report rendering is complete.
<reporting-angular-viewer
#viewer
[reportSource]="{
report: 'Dashboard.trdx',
parameters: { ReportYear: 2004 }
}"
[serviceUrl]="'https://demos.telerik.com/reporting/api/reports'"
viewMode="interactive"
[keepClientAlive]="true"
(reportLoadProgress)="reportLoadProgress($event)">
</reporting-angular-viewer>
import { Component, ViewChild } from '@angular/core';
import { ReportingAngularViewerComponent } from '@progress/telerik-angular-native-report-viewer'
import { DocumentInfo } from '@progress/telerik-common-report-viewer'
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss']
})
export class AppComponent {
title = 'Native Angular Report Viewer Demo';
@ViewChild('viewer') public viewer!: ReportingAngularViewerComponent;
reportLoadProgress(e: DocumentInfo) {
console.log("The e parameter will contain the current information for the report rendering progress.", e);
console.log("This event will be emitted after each successful Get Document Info request until the report rendering is complete.");
};
}
reportLoadComplete
The reportLoadComplete
event will be emitted after the rendering of a report ends.
<reporting-angular-viewer
#viewer
[reportSource]="{
report: 'Dashboard.trdx',
parameters: { ReportYear: 2004 }
}"
[serviceUrl]="'https://demos.telerik.com/reporting/api/reports'"
viewMode="interactive"
[keepClientAlive]="true"
(reportLoadComplete)="reportLoadComplete($event)">
</reporting-angular-viewer>
import { Component, ViewChild } from '@angular/core';
import { ReportingAngularViewerComponent } from '@progress/telerik-angular-native-report-viewer'
import { DocumentInfo } from '@progress/telerik-common-report-viewer'
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss']
})
export class AppComponent {
title = 'Native Angular Report Viewer Demo';
@ViewChild('viewer') public viewer!: ReportingAngularViewerComponent;
reportLoadComplete(e: DocumentInfo) {
console.log("The document information such as the page count, where it has document map, etc. will ve sent via the e object.", e);
console.log("This event will be emitted after the rendering of a report ends.");
};
}
renderingStopped
The renderingStopped
event will be emitted when report rendering is cancelled.
<reporting-angular-viewer
#viewer
[reportSource]="{
report: 'Dashboard.trdx',
parameters: { ReportYear: 2004 }
}"
[serviceUrl]="'https://demos.telerik.com/reporting/api/reports'"
viewMode="interactive"
[keepClientAlive]="true"
(renderingStopped)="renderingStopped()">
</reporting-angular-viewer>
import { Component, ViewChild } from '@angular/core';
import { ReportingAngularViewerComponent } from '@progress/telerik-angular-native-report-viewer'
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss']
})
export class AppComponent {
title = 'Native Angular Report Viewer Demo';
@ViewChild('viewer') public viewer!: ReportingAngularViewerComponent;
renderingStopped() {
console.log("This event will be emitted when report rendering is cancelled.");
};
}
error
The error
event will be emitted when viewer encounters an error.
<reporting-angular-viewer
#viewer
[reportSource]="{
report: 'Dashboard.trdx',
parameters: { ReportYear: 2004 }
}"
[serviceUrl]="'https://demos.telerik.com/reporting/api/reports'"
viewMode="interactive"
[keepClientAlive]="true"
(error)="error($event)">
</reporting-angular-viewer>
import { Component, ViewChild } from '@angular/core';
import { ReportingAngularViewerComponent } from '@progress/telerik-angular-native-report-viewer'
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss']
})
export class AppComponent {
title = 'Native Angular Report Viewer Demo';
@ViewChild('viewer') public viewer!: ReportingAngularViewerComponent;
error(e: string) {
console.log("This event will be emitted when viewer encounters an error.");
console.log("The error message", e);
};
}
loadedReportChange
The loadedReportChange
event will be emitted when the previewed report is changed or refreshed.
<reporting-angular-viewer
#viewer
[reportSource]="{
report: 'Dashboard.trdx',
parameters: { ReportYear: 2004 }
}"
[serviceUrl]="'https://demos.telerik.com/reporting/api/reports'"
viewMode="interactive"
[keepClientAlive]="true"
(loadedReportChange)="loadedReportChange()">
</reporting-angular-viewer>
import { Component, ViewChild } from '@angular/core';
import { ReportingAngularViewerComponent } from '@progress/telerik-angular-native-report-viewer'
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss']
})
export class AppComponent {
title = 'Native Angular Report Viewer Demo';
@ViewChild('viewer') public viewer!: ReportingAngularViewerComponent;
loadedReportChange() {
console.log("This event will be emitted when the loaded report is changed.");
};
}
pageReady
The pageReady
event will be emitted when the viewer content has been loaded from the template and is ready to display reports or perform any other operations on it.
<reporting-angular-viewer
#viewer
[reportSource]="{
report: 'Dashboard.trdx',
parameters: { ReportYear: 2004 }
}"
[serviceUrl]="'https://demos.telerik.com/reporting/api/reports'"
viewMode="interactive"
[keepClientAlive]="true"
(pageReady)="pageReady($event)">
</reporting-angular-viewer>
import { Component, ViewChild } from '@angular/core';
import { ReportingAngularViewerComponent } from '@progress/telerik-angular-native-report-viewer'
import { PageInfo } from '@progress/telerik-common-report-viewer'
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss']
})
export class AppComponent {
title = 'Native Angular Report Viewer Demo';
@ViewChild('viewer') public viewer!: ReportingAngularViewerComponent;
pageReady(e: PageInfo) {
console.log("The current page information such as the page number, the page content, etc.", e)
console.log("This event will be emitted when the viewer content has been loaded from the template and is ready to display reports or perform any other operations on it.");
};
}
navigateToReport
The navigateToReport
event will be emitted when the viewer navigates to a new report through the Drillthrough/Navigate To Report Action
.
<reporting-angular-viewer
#viewer
[reportSource]="{
report: 'Dashboard.trdx',
parameters: { ReportYear: 2004 }
}"
[serviceUrl]="'https://demos.telerik.com/reporting/api/reports'"
viewMode="interactive"
[keepClientAlive]="true"
(navigateToReport)="navigateToReport($event)">
</reporting-angular-viewer>
import { Component, ViewChild } from '@angular/core';
import { ReportingAngularViewerComponent } from '@progress/telerik-angular-native-report-viewer'
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss']
})
export class AppComponent {
title = 'Native Angular Report Viewer Demo';
@ViewChild('viewer') public viewer!: ReportingAngularViewerComponent;
navigateToReport(e: any) {
console.log("The report source object of the newly loaded report", e)
console.log("This event will be emitted when the viewer navigates to a new report through the Drillthrough/Navigate To Report action.");
};
}
currentPageChanged
The currentPageChanged
event will be emitted when the viewer changes its currently displayed page.
<reporting-angular-viewer
#viewer
[reportSource]="{
report: 'Dashboard.trdx',
parameters: { ReportYear: 2004 }
}"
[serviceUrl]="'https://demos.telerik.com/reporting/api/reports'"
viewMode="interactive"
[keepClientAlive]="true"
(currentPageChanged)="currentPageChanged($event)">
</reporting-angular-viewer>
import { Component, ViewChild } from '@angular/core';
import { ReportingAngularViewerComponent } from '@progress/telerik-angular-native-report-viewer'
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss']
})
export class AppComponent {
title = 'Native Angular Report Viewer Demo';
@ViewChild('viewer') public viewer!: ReportingAngularViewerComponent;
currentPageChanged(e: { page number, reportDocumentId: string }) {
console.log("The page number and document id", e)
console.log("This event will be emitted when the viewer changes its currently displayed page.");
};
}
interactiveActionExecuting
The interactiveActionExecuting
event will be emitted before an interactive action is executed.
<reporting-angular-viewer
#viewer
[reportSource]="{
report: 'Dashboard.trdx',
parameters: { ReportYear: 2004 }
}"
[serviceUrl]="'https://demos.telerik.com/reporting/api/reports'"
viewMode="interactive"
[keepClientAlive]="true"
(interactiveActionExecuting)="interactiveActionExecuting()">
</reporting-angular-viewer>
import { Component, ViewChild } from '@angular/core';
import { ReportingAngularViewerComponent } from '@progress/telerik-angular-native-report-viewer'
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss']
})
export class AppComponent {
title = 'Native Angular Report Viewer Demo';
@ViewChild('viewer') public viewer!: ReportingAngularViewerComponent;
interactiveActionExecuting() {
console.log("This event will be emitted before an interactive action is executed.");
};
}
reportVersionMismatch
The reportVersionMismatch
event will be emitted when there is mismatch between the version of the viewer and the reporting service.
<reporting-angular-viewer
#viewer
[reportSource]="{
report: 'Dashboard.trdx',
parameters: { ReportYear: 2004 }
}"
[serviceUrl]="'https://demos.telerik.com/reporting/api/reports'"
viewMode="interactive"
[keepClientAlive]="true"
(reportVersionMismatch)="reportVersionMismatch()">
</reporting-angular-viewer>
import { Component, ViewChild } from '@angular/core';
import { ReportingAngularViewerComponent } from '@progress/telerik-angular-native-report-viewer'
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss']
})
export class AppComponent {
title = 'Native Angular Report Viewer Demo';
@ViewChild('viewer') public viewer!: ReportingAngularViewerComponent;
reportVersionMismatch() {
console.log("This event will be emitted when there is mismatch between the version of the viewer and the reporting service.");
};
}
parametersLoaded
The parametersLoaded
event will be emitted after the Get Report Parameters
is made.
<reporting-angular-viewer
#viewer
[reportSource]="{
report: 'Dashboard.trdx',
parameters: { ReportYear: 2004 }
}"
[serviceUrl]="'https://demos.telerik.com/reporting/api/reports'"
viewMode="interactive"
[keepClientAlive]="true"
(parametersLoaded)="parametersLoaded($event)">
</reporting-angular-viewer>
import { Component, ViewChild } from '@angular/core';
import { ReportingAngularViewerComponent } from '@progress/telerik-angular-native-report-viewer'
import { ReportParameterInfo } from '@progress/telerik-common-report-viewer'
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss']
})
export class AppComponent {
title = 'Native Angular Report Viewer Demo';
@ViewChild('viewer') public viewer!: ReportingAngularViewerComponent;
parametersLoaded(e: ReportParameterInfo[]) {
console.log("An array of the parameter values is sent via the event object.", e);
console.log("This event will be emitted after the Get Report Parameters request is made.");
};
}