Frequently Asked Questions
In general, parameters are used to filter data in a report at run time - for example, parameters can control the date ranges or other data criteria returned in a report. However, in JReport, parameters can also be directly inserted in a report, referenced by formulas to control object properties, used to link reports, and used to dynamically group or sort data. With JReport, parameters can also be used to control report output format, apply style sheets, etc.
JReport supports several types of parameters:
- system-passed parameters - system-level values passed directly into JReport from another source, such as authorization levels
- user-entered parameters - values entered directly by an end user
- pre-defined bound parameters - users select from a drop-down list of values/criteria to affect report results
- cascading parameters - a series of parameters in which the values available for selection in one parameter are directly effected by the condition selected in the previous parameter; for example, a parameter could prompt the user to select a State and the following parameter would list only the Cities in that State
JReport is different from other solutions in that JReport provides a base feature set that is ready out-of-the-box and allows any of its reporting components to be seamlessly embedded within an application. JReport is a pure thin-client, 100% Java solution that offers a low total cost of ownership by leveraging a customer's existing IT investments. While JReport can operate as a stand-alone reporting solution, the vast majority of Jinfonet customers choose to embed JReport into their application. When discussing JReport's integration with Web applications, it is important to understand a few concepts:
- JReport's APIs (Application Programming Interface) facilitate integration with web applications by providing developers with reporting "building blocks" that can embed desired JReport functionality into an application. These building blocks typically call on JavaBeans to provide reporting functionality.
- JReport's JavaBeans are small Java programs that contain a set of reporting functionality.
- A Servlet is a small program that runs on a server, similar to a JavaBean. A servlet is often used when no end-user interface is necessary. JReport can be deployed as a servlet within an application server.
- A JSP (Java Server Page) is an interface used to deliver information (reports) to an end user. JSPs are easily modified and do not require Java programming experience. JSPs dynamically compile into a servlet and fully interoperate with servlets. JSPs can be viewed through any Web browser.
Click on any of the following for more information:
- Brief description of JReport APIs and Beans
- Diagram of typical JReport embedded environment
- Example of embedded application (screenshots)
Once embedded, JReport enables users to interact with reports directly within their application through a DHTML interface using either JReport Studio or JReport Viewer. These interfaces provide actionable features including dynamic sorting, filtering, and drill-down capabilities. Once reports have been modified or created on an ad hoc basis, they can be saved, shared with others, and scheduled to re-run at any interval in order to refresh the data. They can also be uploaded to JReport Designer if additional editing is needed that the end user is unable to do.
JReport requires NO client-side code. Because JReport deploys in a pure thin-client implementation, users do not need to install any applets or plug-ins. JReport supports HTML report output and can be embedded seamlessly in any Web application. To provide more sophisticated interaction with reports, JReport supports DHTML report output and provides two different viewers, JReport Studio and JReport Viewer. JReport Studio provides a web layout RIA user interface based on AJAX technology with component level navigation. JReport Viewer provides a more traditional page layout view of a report. Both HTML and DHTML reports can be viewed through any supported browser (currently, JReport supports Internet Explorer, Firefox and Chrome). JReport also supports other installation modes to address any report environment requirements.
JReport's flexibility allows users to control their experience in order to view data in a way that is meaningful to them. JReport supports 3 types of drilling within a report:
- Automatic drill-down - JReport automatically rolls up groups, summary data, and other information to enable users to get detailed information from their master report with a single click. Users do not need to link reports or sub-reports to their master report for summary drill-down capabilities.
- User-defined drill-down - Users who want to maintain control over the ability to drill-down on data can define their own drill-down path by specifying reports and sub-reports to drill to.
- JReport Viewer provides an OLAP style cube definition that includes a hierarchy. This allows JReport to understand relationships between fields and automatically drill up and down through the defined hierarchy such as Country, State, County and City.
In addition, using JReport Viewer or JReport Studio, every report is completely actionable. Users can dynamically sort, group, and filter their report from within their application. For examples of JReport's actionable functionality, click on any of the following:
JReport integrates, right out of the box, with several variants of LDAP, Microsoft Active Directory, Lotus Domino, Novell Directory Server and others. JReport provides single sign on capabilities, leveraging its own internal security model that can stand alone or be synchronized with a customer's security scheme via an API layer. In addition, JReport security can be disabled which is useful when JReport is running behind a firewall and can only be accessed by a select group.
JReport's security model involves a two-step process: authentication and authorization. To learn more about this process and for a brief overview of JReport's security capabilities, click here.
JReport offers several security implementation options.
Reports can be scheduled to run at the system level or by an individual end user through their Web interface. Users can choose to schedule reports to run one time or at any recurring interval - hourly, daily, monthly, etc. In addition, users can choose to run reports at a particular time on a particular day of the month, for example, the second Monday of every month at 10:30am. In addition, a very flexible set of built in functions allow automatic parameter setting such as first day of last month and last day of last month so each time the report runs it is filtered to get the correct data automatically.
JReport scheduling also supports running reports based on triggers fired by the application. Triggers can be used to run reports such as when an inventory level reaches a set level an order report is automatically ran.
Scheduled reports can be delivered in any output format - DHTML, HTML, email, PDF, XML, Excel, RTF, CSV, and fax. In addition, reports can be deployed in a "subscription model" - once a report is run, it is saved in a specific location and users are notified with a link to that report for viewing. Report caching is also supported, allowing one report output to be viewed by multiple users.
JReport also supports Cached Report Data (CRD) so just the data for reports such as monthly data or quarterly data can be scheduled then the user can run any reports that they want using that saved data without running a new query to the database. This can allow JReport to be scaled to support many more users if a lot of users often need reports which use the same data.
JReport supports the following report output formats: DHTML, HTML, email, PDF, XML, Excel (with live chart objects and formulas), RTF, CSV, secure FTP, and direct to fax. In addition to scheduling reports for distribution, as discussed above, JReport enables users to interact with their reports and to save and share those modified reports. With DHTML reports, for example, users can dynamically sort, filter, and group data to create a unique report view. This view can be saved as a report result and shared with others so the result data can be viewed and interacted with at any time, by any authorized user. Alternately, the modified view can be saved as a template so that it can be re-run at any time in order to refresh the report view with up-to-the-minute data.
Other report publishing and distribution features include:
- a versioning system with public and private ("my reports") folders to help users easily file and access report results and templates
- report bursting allows a single run of a report to automatically be distributed to multiple levels of a hierarchy
- cached report bursting allows a single view of a report result to be viewed by a user using JReport Viewer based on built in security to filter the data according to their access rights
- a subscription-model in which designated users can be notified via email when a report has run
- notification that a report has successfully or unsuccessfully run for report and system administrators
- support for user-defined alerts that can trigger a report task based upon a designated condition (for example, if an individual sales person's quota is surpassed by more than 10%, an alert can be generated that automatically sends a report on that sales person's activity to the Vice President of Sales)
JReport offers a robust set of APIs and Beans to enable seamless integration into other applications. JReport's APIs facilitate development of applications by providing building blocks that enable robust reporting functionality. JReport APIs and Beans include:
- Server API / Remote Server API
- Client API
- Viewer Bean
- Engine Bean
- Security API
- Designer API / Server Designer API
- Catalog API
- Security API
To learn more about JReport's APIs and Beans, click here.
JReport supports Tag Libraries to allow for easy embedding and customization of embedded functionality. Tag libraries allow actions/functions to be re-used across platforms without requiring custom coding and maintenance. By providing a level of modularization, Java Server Pages (JSP) can be quickly customized, increasing the productivity of web application developers by enabling them to focus on presentation rather than other issues (database connectivity, etc).
The JReport DHTML Tag Library contains two types of tags - Embedded and Component. The Embedded Tag enables a DHTML page to be displayed without a frame. Component Tags allow for customization of DHTML actions and functionality. JReport DHTML Component Tags include: User Bar, Toolbar, Menu Bar, Navigation Bar, TOC, Report Output, Sort Panel and Filter Panel.
JReport is fully tested and performance measured to ensure rich functionality and reliable service for all customers. Using JReport clustering the server can be scaled to support any number of users with both interactive and static reports. Customers such as VISA and Target support many thousands of users with JReport.
JReport can connect to any relational database using JDBC and ODBC connections and data objects (like JDOs - Java Data Objects). JReport also connects to hierarchical data sources like XML and EJBs (Enterprise Java Beans), with support for parallel nodes which allows the hierarchical relationships to be retained (instead of flattening the data source). In other words, the inherent hierarchy of data in an XML data source is retained for grouping data in a report, as opposed to "flattening" data which removes grouping levels. JReport also supports connecting to XML through a web service. As part of its extensibility, JReport also provides the ability to define your own data source.
JReport connects to OLAP databases which support JDBC or ODBC and also provides a customizable UDS (user-defined data source) that enables JReport to access any data source, including OLAP/multi-dimensional data sources.
JReport supports importing ESRI shapefiles as well as supporting XML based spatial definitions using an integrated map editor. Areas on the map can be mapped to data from the data source and colored according to summary values such as coloring total sales by each state.
JReport allows report resources (catalogs, reports and report result versions) to be managed locally or remotely via a Web interface. Whether the Server is local or remote, the same intuitive interface makes resource management easy. Report administration and access permissions are controlled by Server login.
JReport's built-in folder structure for resource management contains two repositories - Public Reports and My Reports. The Public Reports folder contains reports that can be accessed by any end user. The My Reports is personal and can only be accessed by its owner. Resource management includes the ability to:
- schedule reports to run
- run reports on demand in any format
- view versions of report results
- view report properties
JReport provides a range of flexibility and functionality to end users - from running reports to modifying report views with filters and easy ad hoc report creation. End users modify reports by applying filters, sorts, or groups, in order to view the information in a way that is meaningful to them. In addition, JReport provides the ability to create reports on-the-fly via the Web. An intuitive interface makes creating these ad hoc reports as simple as dragging and dropping desired components directly into a report.
There are two types of ad hoc reports in JReport, web layout reports and page layout reports.
- Web layout reports are created from a Business View in a catalog.
Using JReport Studio Wizard the user can easily in a single pass create a multi-component report which is viewed in JReport Studio. JReport Studio provides the user a very high quality Web 2.0 Rich Internet Application (RIA) view of the report with component level navigation commands. For example, a single pass through the wizard can create a tabular style report with a chart and crosstab followed by the detail information in a table.
- Page layout reports are created from a Report Cube or Business Cube in a catalog.
Using JReport Ad Hoc Wizard the user can create a single component report which is viewed in JReport Viewer. JReport Viewer provides the user a page mode view of the report very similar to a printed report. Report Cubes and Business Cubes have the additional capability of providing multiple hierarchies allowing for automatic drill down and drill up for detailed analysis and slicing and dicing data which is especially powerful using a crosstab component.
JReport supports any application server that supports servlet containers. JReport will also integrate with application servers that do not support servlet containers in one of two ways:
- If the application server is Java-based, JReport can reside inside the application server and use APIs to facilitate communication between JReport and the application server.
- If the application server is not Java-based, JReport can be used as a stand-alone server and communicate with the application server through http calls.
Some of the most popular application servers that JReport supports include:
- ATG DAS
- Oracle WebLogic
- Cold Fusion MX
- Oracle Application Server
- Glassfish Application Server
- Websphere Application Server
- Websphere Portal Server
- WebSphere Studio
- All others that provide a standard servlet container
JReport is a 100% Java reporting solution that leverages J2EE industry standards and modular components to deliver a solution that easily embeds into any application. JReport's J2EE architecture means that report development and deployment in diverse environments no longer require costly integration of various resources from different vendors, various data sources, and legacy systems. A single layer that resides on top of existing resources, systems, and data sources, J2EE provides an ideal environment for JReport's robust reporting.
When deploying JReport, the complexities normally associated with enterprise applications - multi-threading, scaling, resource pooling, data source connectivity, communication protocols, interoperability, etc. - are minimized because the J2EE environment provides standardized components to handle those services. In addition, the J2EE environment standardizes the various roles essential to an organization's development and deployment process. Each element of an enterprise solution can then be focused on individually and ultimately assembled into a complete solution by invoking the standard components and services native to J2EE.
While Java-based reporting solutions inherently take advantage of the open-connectivity and functionality of J2EE, not all reporting solutions are created equal. In order to maximize use of the available hardware in a Java environment, JReport has the ability to balance all the available resources, including CPUs, memory, storage space, network bandwidth, etc. Report "bursting", for example, can be implemented in a server cluster or multiple CPU environment by dividing a large report into concurrently running smaller pieces of reports that are later automatically merged into the final report.
Because JReport adheres to J2EE specifications, enterprises are best able to take advantages of their Java IT architecture - JReport can be easily integrated with enterprise applications, information can easily be shared, and reporting functionality is completely scalable to meet enterprise-wide requirements. In addition, through JDBC and ODBC connections, all data sources are accessible for report generation, viewing, and sharing via the Web. In this manner, JReport enables organizations to leverage existing IT investments and to deploy a cost-effective reporting solution that meets enterprise-wide reporting requirements.
To see how JReport can be embedded in a typical 3-tier Java EE environment, click here.