# What's New in This Release

This document describes the new features of JReport in this release.

## JReport Enterprise Server

Performance Improvements with the advanced report engine are focused on faster response time and better scalability. Through internal system tuning and minimizing redundancy, JReport now has a smaller footprint with faster response time for on-demand report generation, report delivery, and interactive reporting and analysis.

- Multiple Report Bursting. JReport now supports multiple bursting schema in a report so reports can be burst to multiple schema at the same time plus optionally a non-bursting result. So with one run of the report a complete report with all the data can be produced as well as multiple delivery criteria. In addition, two built-in functions, Boolean isRunBursting() and String currentBurstingSchema(), are provided for bursting. You can find them in the Others category in the Functions panel of the Formula Editor in JReport Designer.

  For details, see Report Bursting in the JReport Designer User's Guide and Scheduling a task containing a bursting report in the JReport Enterprise Server User's Guide.

- Greatly Enhanced Report Delivery Using Page-level Security. Two page-level security properties Groups and Roles are added on the group panel in JReport Designer. You can now decide which data can be viewed by each group of users or each role as well as by each user. In JReport Enterprise Server, when scheduling a report with page-level security to publish it to HTML and/or DHTML format, all pages will be included in the scheduled result. Then when end users view the result, they will only be able to see the data they are privileged to see according to the page-level security setting. They can perform interactive actions on the scheduled DHTML result as on other DHTML results, and the formulas, summaries and other similar data will be recalculated based on the privileged data.

  In addition, for compatibility with versions earlier than V9, a property server.enable.pagelevelsecurity has been added in server.properties in the `<server_install_root>\bin` directory. It allows you to decide whether to use the logic of the previous versions for page-level security for the scheduled HTML and DHTML results.

- JReport Encoding Optimization. Data structures in JReport engine are improved with optimized encoding that results in improved footprint and performance.
- Optimized RMI API. A separate new jar JRSRMI.jar is provided in `<server_install_root>\lib` for RMI API invocation from the client side. JRSRMI.jar is a combination of JREngine.jar and JRESServlets.jar, keeping all necessary classes for RMI environment (not for RMI integration which requires more) and excluding unused classes. This will improve performance and footprint when using the popular RMI interface to JReport.
- Enhanced Default Settings of JReport Connection Pool. The default settings of MaxCount_URL and MaxShare_URL in the JReport connection pool are tuned for improved performance. However, you should still tune the connection pool for your application. For details, see Configuring a connection pool in the JReport Enterprise Server User's Guide.

Usability is improved with a simpler interface and more tools that enhance productivity.

- JReport Web UI Enhancement. The toolbars and menu commands are better organized to improve usability. For details, see JReport Web window elements in the JReport Enterprise Server User's Guide.
- Highlighting Unviewed Version Results. A property web.version.mark_unviewed was added in server.properties in the `<server_install_root>\bin` directory. The property controls whether to highlight unviewed version results. By default, the server does not show color difference between viewed and un-viewed version results.
- Saving Parameter Values for Reuse. When specifying parameter values, two options Use Previously Saved Auto Complete Parameters and Save Current Parameters in Auto Complete List, are provided for saving the specified values for the selected reports as a list and reusing them next time. For details, see Parameters in the JReport Enterprise Server User's Guide. In addition, the maximum number of saved parameter value lists can be specified on the JReport Administration/Console page > Profile > Customize Server Preferences > Advanced tab.
- Support Calendar for Specifying DateTime Parameter Values. When specifying value for parameter of DateTime type in JReport Enterprise Server, a calendar button is provided next to the text input box, which helps you to set a DateTime value more easily.
- Using a Combo Box on Parameter Pages. In all automatically generated parameter pages, the dropdown lists and input boxes have been merged into combo boxes so you don't see both a text field and a dropdown list for each parameter.
- Boolean Parameter Using Checkbox. When viewing a report which contains a Boolean parameter, in the Enter Parameter Value dialog a checkbox is provided for specifying the parameter value. The text after the checkbox is specified as the parameter prompting text when the Boolean parameter is created.
- Support Multiple Parameter Values. The option Allow Multiple Values is added in the creating/editing parameter dialogs, with which you can specify whether to allow multiple values for a parameter. See Enter Values dialog in the JReport Designer User's Guide for how to specify multiple values. JReport also supports multiple parameter values used in a dataset filter and query filter.
- Input Parameter Value Validation. You can type in values when setting parameter values and predefine a criterion when the typed values are out of the predefined value list. There are three choices: the input values are used; the default values are used; a warning message is displayed. For details, see the two options Allow Type-in of Value and When Out of Value Range in Create Parameter dialog in the JReport Designer User's Guide. In addition, JReport also support parameter values validation via user logic. Two methods, public Vector getParamDescs() and public void validateParameter (ServerInfo serverInfo) were added in the Server API, with which you can plug in your own parameter validation logic. JReport Enterprise Server will then validate the input parameter values via the customized logic. For details about their usage, see the JReport Enterprise Server Javadoc located in `<server_install_root>\help\server\en\api`.

New Functional Features to provide enhanced capabilities in security, report output and more.

- Improved Network Security. Sensitive information is removed from error messages in order to reduce the security exposure. Detailed information about the errors will be placed in the log files.
- New Security API to Determine Ownership between Users, Groups and Roles. Five methods are added in the security API jet.server.api.admin.SecurityAdminService for finding out whether a user belongs to a role or a group, whether a group belongs to a role or another group, and whether a role belongs to another role. For details about the usage of the methods, see the JReport Enterprise Server Javadoc located in `<server_install_root>\help\server\en\api`.
- Specifying Dynamic Parameter Values with Expression. When running a report set in the advanced mode or scheduling to run a report set, if the specified reports in the report set contain parameters of Date, DateTime or Time format, you can now use an expression to set a dynamic date or time as the parameter value. For details, see Parameters in the JReport Enterprise Server User's Guide.
- Dataset Sharing Enhancement with Parameter Support. When multiple reports or components in a report set share the same dataset and the Cache property is true, they can share the cached data. Now JReport also supports sharing the cached data when the dataset has parameters and the parameter values are the same.
- XHTML Supported in JReport's HTML Report Results.
- Excel Export with Columned Format Control. When exporting report result to Excel format, you can now use the option Normal Formatting together with the Columned property of a report to control whether the exported Excel file will be in Columned format or not.
- PDF File Attachment Can be Split by Page. Previously, when sending a report set result to e-mail as a PDF file attachment, users can specify to split the PDF file by file size if the file is too large. Now besides by size, users can choose to split the PDF file by page boundaries via the new Maximum File Page option. For details, see Split PDF in the JReport Enterprise Server User's Guide.
- Improved Publishing Result to FTP. Besides Standard FTP Protocol, four more secure protocol types are also supported. For details, see To FTP in the JReport Enterprise Server User's Guide.
- Tracking Frequencies Report Sets are Accessed. JReport Server Monitor can record how many times a report is accessed since it is first published to JReport Enterprise Server. For details, see Status of all report sets in the JReport Enterprise Server User's Guide.

Standards Support is further enhanced in JReport 9.

- JSR 168 Support to Further Enhance Portlet Usage. Users can run reports as standard portlets to enable dashboard applications. APIs are provided to access the system through SOA for better interoperability.
- NLS Support Enables Multiple Language Localizations.

## JReport Live (Ad hoc reporting and analysis)

- Conditional Formatting Supported. You can now add conditional formats based on calculations to specific fields in a report, and then the format will be applied to values of the field when the specified condition is fulfilled. For details, see Adding conditional formats to fields in the JReport Enterprise Server User's Guide.
- Using Dynamic Resources in Ad Hoc Reports. End users analyzing ad hoc reports can create dynamic resources such as measures and formulas and use them in reports to present the data in the way they desire. For details, see Using dynamic resources in the JReport Enterprise Server User's Guide.
- Parameter Form as a New Web Control. A parameter form can be used to launch other report sets from a report running in DHTML. User can use it as an entry to other report sets. For details, see Using a parameter form to run report sets in the JReport Designer User's Guide. Moreover, when defining a parameter web action to run a report set, you can obtain the report set name from a web control and specify the window in which the report set will be opened. For details, see Parameter - Web Action Builder dialog in the JReport Designer User's Guide.
- Redesigned Report Wizards. They are now presented in a workflow fashion, which makes the report creating process easier.
- Better Default Focusing Rules. When adding and moving a component in ad hoc reports, the component is always focused unless you cancel the focusing, so that you can easily locate the component to make other operations.
- Support Showing and Hiding Save Criteria Dialog. When the template of a report is changed ever since it is opened in JReport Web, for example, when the report has been filtered, sorted, drilled, etc, you can configure whether to ask JReport to prompt you to save the criteria when you save the report by setting the option Pop Up Save Criteria Dialog in the Configure DHTML Profile page.
- Support Filtering Data for All Components. Filtering in JReport Web takes effect not only for banded objects and tables, but also crosstabs and charts now. For details, see Filtering report data in the JReport Enterprise Server User's Guide. Also, the filter dialogs are redesigned in order to make the user interface more intuitive and support complex conditions with multi-level groups. In addition, you can now apply filters to a report while creating it with the report wizard.
- Chart Enhancement. Better control of label font and orientation, flexible axis label and tick marks, and other chart properties.

## JReport Designer

- Map Definitions Can be Imported from ESRI Shapefiles or Defined by Developers. This version now provides interactive map support. With the conditional formatting the appearance of the map and each area can be fully customized and controlled. Also, you can import an .xml file or .shp file to create or format a map, and save the map definition to an .xml file for future use. For details, see Maps in the JReport Designer User's Guide.
- Showing Detailed Structure of Subreport. The option Show real view of subreport in the Options dialog allows you to decide whether or not to show the detailed structure of a subreport in its primary report in design mode, instead of only showing the subreport placeholder and name.
- Support Vertical Group Header in Table. A new option, Use vertical group header to detail panel in table, is added to the Component category of the Options dialog, which helps you to control whether to place the group header in a table vertically with the detail panel. You can also use the property Vertical to Detail Panel on the table group header panel to control the group header alignment in specific table components.
- Sort Properties Alphabetically. Properties for objects in both the Catalog Browser and the Report Inspector are listed alphabetically now for easy searching.
- Putting UDF Implementation in Any Package. In previous versions JReport only supports putting the implementation of UDF (user defined formula) in jet.formula.javaformula, in which case there is no need to provide the package information when importing the class file in formulas. Now you can also put the UDF implementation in your own package, in which case you should write package information in formulas. For more, see User defined formula functions in the JReport Designer User's Guide.
- Improved Publish to JReport Enterprise Server Dialog. Improvements have been made to the Publish to JReport Enterprise Server dialog to make it more intuitive and easy to use. For details, see Publish to JReport Enterprise Server dialog in the JReport Designer User's Guide.
- Classify Parameters into Three Types.
  - Type-in Parameter: Predefine parameter values or allow the user to type new values in manually.
  - Bind with Single Column: Bind a parameter with a DBField. The values of the DBField will be retrieved as the parameter values.
  - Bind with Cascading Columns: Create a group of cascading parameters so as to achieve the function of filtering parameters with parameters in a simple way.

  For details, refer to Create Parameter dialog in the JReport Designer User's Guide.

- Oracle Stored Procedure UDS Enhancement. JReport now supports Oracle stored procedure UDS (User-defined Data Source) without the connection information. In this case, JReport will get the connection information from its data source as the default connection, and the connection can be changed at runtime via datasource.xml, Engine API or Server API in JReport Enterprise Server. For details, see Adding an Oracle stored procedure in the JReport Designer User's Guide.

  In addition, in order to support seamless Oracle stored procedure UDS, the different format of the PARAMETER string is provided, which indicates the value, datatype and index. For details, see The UDS class in the JReport Designer User's Guide.

- BigDecimal Support to Control the SQL Type of Formulas or Summaries.
- Complex Join Conditions Supported in Data Source Pre-joins, Business Cube and Query. For details, see Join Options dialog in the JReport Designer User's Guide.
- Report Designer for Eclipse Plug-in. Allowing report design directly within the Eclipse IDE (Interactive Development Environment).