Here is a list of differences between the client API Visualize.js (aka Viz.js) and the Repository HTTP API (aka iframe's), which are documented here: https://community.jaspersoft.com/documentation/tibco-jasperreports-server-ultimate-guide/v710/jasperreports-server-apis
This might help you decide which approach is best for you. The Web Services / REST API is not included here as it is normally for different use cases.
Visualize.js | HTTP API | |
---|---|---|
Purpose | Embed specific Reports, Ad Hoc Views and Dashboards | Embed specific sections of the TIBCO JasperReports® Server UI |
Required experience | Some JavaScript is required | No particular knowledge is required |
Implementation | Requires using the JavaScript code from Jaspersoft (the API itself), potentially merging with code from your application | Requires using the corresponding URL from JasperReports® Server in an iframe tag |
Ad Hoc support | Can embed Ad Hoc views (since version 7.1) and Ad Hoc Reports. Cannot embed Ad Hoc designer for now (this is likely to change in future releases) | Can embed anything that's currently included in the JasperReports® Server UI |
Dashboard support | Currently does not support embedding the Dashboard designer directly (this is likely to change in future releases). It can embed an already designed Dashboard though | Can embed anything that's currently included in the JasperReports® Server UI |
UI: list of repo objects | Can be obtained via a Search function (see API reference below) | Can be easily obtained by embedding a repo folder or a search |
UI: look & feel | Completely flexible, as it integrates seamlessly within your web application | Depends on the implementation of themes in JasperReports® Server. Has some limitations |
UI: user interaction | Completely flexible, based on what your developer can implement in JavaScript. Allows to integrate existing behavior from your web application | Does not allow to change how the user interacts with the UI, unless custom code is implemented on JasperReports® Server |
UI: interaction between different elements embedded | Possible, e.g. an embedded Report can control another Report | You can only interact with a Report or a Dashboard through its URL, so you will be limited to passing parameter values and themes |
For the full API reference of Viz.js, see: https://community.jaspersoft.com/documentation/tibco-jasperreports-server-visualizejs-guide/v71/api-reference-visualizejs
And a list of Visualize.js samples on GitHub.
In general, unless there is a specific limitation preventing you from using Viz.js (e.g. no knowledge of JavaScript), we would recommend using that option as it provides greater flexibility and seamless integration with your web application. Plus, TIBCO Jaspersoft is continuing development of new features and improvements for Viz.js, therefore it's only going to get better in new releases. See 5 Reasons to Use Visualize.js Versus a Standard Charting Library for further details.
Log in or register to post comments