Welcome to the JReport Server User`s Guide

Welcome to the JReport Server User`s Guide
Welcome to the JReport Server User's Guide
This User's Guide describes JReport Server. JReport Server is a 100% Java report generation and
management tool that can be deployed to any Java EE application server. By leveraging its high
performance report generation engine, JReport scales to meet the most demanding requirements.
Using the report scheduling, distributing and alerting capabilities of the JReport Server, reporting can
be integrated into the workflow of the application.
This guide is written for report administrators or system administrators of Java application that embed
JReport reports into their application.
Other JReport documentation
This guide is one in the complete JReport documentation set. The documentation set includes the
following:
●
Getting Started with JReport
●
JReport Tutorial
●
JReport Designer User's Guide
●
JReport Desktop Viewer User's Guide
●
JReport Server Monitor User's Guide
●
Server API Javadoc
●
Designer and Catalog API Javadoc
What's New in This Release
This document describes the new features of JReport in this release.
JReport 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.
●
●
●
●
●
●
Faster Expanding/Collapsing Actions in Crosstab. Adjusted the default value for the property
Expand Detail Data on crosstabs to improve the performance.
Reduce SQL calls when Interacting with Cascading Parameters. The unnecessary accesses to
the database are reduced when running reports with cascading parameters.
The Remote Dispatcher Is Enhanced. You can now dispatch RMI Server Pages requests in
multiple server environment without modifying any of your code. For details, see Dispatching RMI
Server Pages requests in multiple server environment.
Use Derby as the Default JReport System Database. JReport changed its default system
database from HSQLDB to Apache Derby to provide better performance and support transactions
with higher reliability.
Support Bind Variables in JReport Server System Database. Bind variables are now supported
in most of JReport Server system databases to improve JReport Server performance.
Reduce the Response Time of a Single Event. Further improved the web control feature by
supporting executing combined actions of changing parameter value, sorting, and filtering that is
triggered by one event.
Usability is improved with a simpler interface and more tools that enhance productivity.
●
●
●
●
Redesign the UI of Using the Saved Parameter Values When Specifying Parameter Values
for Running or Scheduling Reports. The new UI is more intuitive and easier to use. For details,
see Parameters.
Add a Separate Control to Enable/Disable JReport Clustering. Now even though your JReport
license key is cluster enabled, if you do not set the property cluster.enabled in the server.properties
file to true for any server in a JReport cluster, the cluster feature will not be activated on this server.
The property control can help improve the performance and reliability of a clustered server when it
works individually.
Add Command Buttons to the Report Set/Task/Version Tables. Now on the JReport Console
page, you can handle reports, tasks, or versions with a quicker access of command buttons.
New UI Standard for JReport. JReport Server, JReport Viewer, JReport Studio and JReport Server
Monitor now use a consistent UI standard. Arrangement has also been taken to the presentation of
tabs and options so as to make the UI clearer and nicer.
New Functional Features to provide enhanced capabilities in security, report output and more.
●
●
●
●
●
●
●
●
Cached Report Data. JReport now supports Cached Report Data (CRD), which is a cached subset of
data fetched from the database according to certain conditions and is used for retrieving data for
reports instead of the database. Cached Report Data provides several benefits, for example, reports
can be run from a specific point in time such as a month end report or quarter end report without
going back to the DBMS to get the original data, users running a report will all see the same view of
the data, thus the data will not change minute by minute based on current DBMS updates. This can
provide a huge performance advantage and reduce the load on the DBMS when multiple users use
the same query for their reports. For details, see Managing cached report data.
Support User Defined Resource Properties. By providing the Custom Field feature, user defined
resource properties are supported. For details, see Working with custom fields.
Use an External Method for Profiling Data. You can now monitor the JReport Server performance
via an external method: JMX MBean API or Web Service API. For details, see Monitoring the server
performance.
Support Global NLS. Now you can create global NLS resources on JReport Server, which can be
shared by all report sets in both JReport Designer and JReport Server to reduce your translation cost.
For details, see Creating global NLS for report sets and NLS Editor in the JReport Designer User's
Guide.
Support Setting Report Set Status. Users/groups/roles which have the Update Status permission
of a report set can now change the status of the report set to specify whether a report set can be
run. The purpose is to allow report sets to temporarily by made not runnable without having to delete
them and republish them to make them available.
Support Distributed Cluster as the New JReport Server Cluster. In this new cluster, distributed
architecture takes the place of master-slave architecture to enable more nodes and balance the
workload of each JReport Server. Distributed storage of data is supported to remove the single point
of failure with the network/shared disk. JReport Server Monitor is also enhanced accordingly. For
details, see Clustering.
Add a New Server Database Branch. The new database branch is called system database. It
holds resources of the global server scope, such as server.properties, global NLS, etc. The original
system or systables database is now addressed as realm database since it is specific to a realm. The
profiling database remains as before. For details about the three databases, see Data dialog.
Support Installation on 64-bit Operating Systems. All JReport installers have been upgraded
and can now work on all 64-bit operating systems as well as on 32-bit OSs.
Standards Support is further enhanced in JReport 10.
●
●
Support Itext 1.5.4. The Itext version JReport supports is now upgraded to 1.5.4.
I18N Support on Server UI. JReport Server now supports the Java I18n standards, so that it can
be adapted to various languages and regions without engineering changes.
JReport Web (ad hoc reporting and analysis)
JReport Web enables reports to be accessed through a web browser via Dynamic HTML, or AJAX. With
JReport Web technology, reports can be modified using dynamic filter, sort, and drill capabilities.
●
Improved Indentation on Nested Groups. When multi-groups are added in a banded object or a
table via the report wizard, by default, the indent of the groups is 0 inch now. However, you can
customize the group indent according to your own requirements by setting the Customize Group
Indent option in the Profile > Configure DHTML Profile panel.
●
●
●
●
●
●
●
●
●
●
Field Format Improvement for Crosstab Drill. Field format now will be kept when drilling in
crosstab.
Enhanced Speed When Opening Reports. Unnecessary calls to the DesignService APIs have been
removed when opening reports in DHTML format, which decreases the number of calls to the
Designer APIs and improves performance.
Categorize Resources in the Field Drop-down List. Now category folders are added to the field
drop-down list of the condition panel so that the resources are easier to pick and duplicate resource
names are avoided in multiple fields.
Redesign the Export Dialog. The new UI is better organized and easier to use. For details, see
Export dialog.
Mark the Resources in Use in the Resource Tree. Resources referenced by the current selected
component are now displayed checked in the resource tree, so that user can easily find out the
resources are being used.
JReport Viewer Dialogs And Menus Are Simplified. When creating a report with the report
wizard, if there is only one cube available in the current catalog, the Data screen is now hidden from
the wizard and this cube will be used to create the report by default. Meanwhile, if there is only one
style available to be applied to any report, all the style related commands, dialog tab and wizard
screen are not displayed now.
Support the Web Action of Linking to a Customized Page. With the new web action
user_popCustomizedPage(), you can get a customized page, which by default shows all the
parameters the current report uses if it has parameters. You can change the parameter values to rerun the report. Meanwhile, you can customize the page to make it display what you need by using
the DHTML API. For details, see the Customized Page dialog.
Support Drill-Up Action and Drill Filter Panel. The drill-up action is now supported on crosstab,
table, and banded object in analytic reporting. In addition, when you perform the drill actions, if any
filters are created, the Drill Filter panel will be displayed, showing the filters. Thus, with the Drill Filter
panel and drill-up action support, you can drill back and forth to change the data scope as required.
For details, see Automatic drilling.
Basic and Advanced Modes of the Filter Dialogs. Filter related dialogs now support two modes:
basic and advanced. The basic mode provides function for creating simple filter conditions that are
connected by ADD and OR operators. The advanced mode enables the building of more complex filter
conditions via the grouping of conditions. Moreover, a filter inspector is provided for listing all the
filters a report set is using. For details, see Filter dialog.
Support Four New Web Controls. These four types of web controls are added: parameter control,
parameter form control, filter control, and navigation control. For their usages, see Applying web
controls.
Studio Reports Solution is aimed at easier and faster report creation and design, faster report
execution, easier customization, and better presentation style using a newer Rich Internet Application
(RIA) Web 2.0 interface. For details, see Studio Reports.
●
Scalable Architecture separates layout intensive tasks (rich client) from data intensive tasks
(server).
●
●
●
●
●
Business Views as Data Sources for Studio Reports. Business views are used as data sources
for studio reports and are created and managed in JReport Designer. A business view is similar to a
report cube except that there is no hierarchical relationship between the data objects in a business
view. For details, see Business views in the JReport Designer User's Guide.
New Ad Hoc Report Wizard Based on AJAX is configurable for both of business and technical
users, facilitates the creation of complex reports with multiple components in a tabular style layout.
The Report Wizard supports new table templates covering all common table structures. It also allows
for easy creation of a report cover page and back page for more formal presentations. For details,
see JReport Studio Wizard.
JReport Studio is the rich internet application (RIA) with robust interactive functions, where you
open and edit studio reports. You can insert components, apply filters, parameters, and CSS styles,
set up links among studio reports, and export and print report results. For details, see Studio Reports.
Open and Edit Studio Reports in JReport Designer. JReport Designer supports downloading
studio reports from JReport Server, opening, creating and editing studio reports, and publishing
studio reports to server. For details, see Working with studio reports in the JReport Designer User's
Guide.
Support Client Side Report Layout in JReport Studio/Wizard. In JReport Studio/Wizard, a new
engine is employed to support client side report layout to improve JReport Server performance and
scalability.
JReport Designer
●
●
●
●
●
●
●
Support Web Service Data Source. JReport now supports web services defined by WSDL 2.0 as
data sources. For details, see Web service data sources in the JReport Designer User's Guide.
Support Refreshing XML Schema. You can now modify the XML schema of an existing XML data
source in the Import XML Schema screen of the XML Connection Wizard. Once you finish modifying
and click the newly added Refresh button in the screen, the new schema information will be reloaded
according to what you have changed.
Table Enhancement. A new table structure is provided so each group, detail and summary field can
be held within its own column. In addition, more operations and functions are supported on tables.
For details, see Creating a table report, Managing columns/rows in a table and Table properties in the
JReport Designer User's Guide.
Catalog Browser Layout Enhancement. Resources in the Catalog Browser are re-organized
according to their relationship to make the resource tree structure clearer.
Customizable Data Sources in Catalog. You can now change the default data source, rename and
delete the data sources in a catalog freely according to your requirement. For details, refer to
Creating a catalog in the JReport Designer User's Guide.
Support Inner Join Type. A property - Explicit Inner Join - is added to JDBC connection in the
Catalog Browser for controlling whether to use Explicit Join notation or Implicit Join notation in the
Where clause for inner joins. On some DBMS system, using explicit join notation improves
performance.
Customize DHTML Display Name for Actions. When customizing the field display names, you can
now further define where the display names will be used in specific component. For details, see
Customizing the field display names in the JReport Designer User's Guide.
●
●
●
●
●
●
●
●
●
●
●
●
●
Define Default View Format When Designing Reports. A property - Default Format for Viewing
Report - is added in the Report Inspector at the report level for predefining the default report view
format. The property works when viewing or directly running the report in JReport Server.
Support More W3C CSS Properties. JReport now supports more W3C CSS 2.1 standard
properties, using which you can build various CSS styles to change the visual presentation of your
reports. Meanwhile, an option - Show warning message when CSS properties are not supported by
JReport - is added in the Options dialog, for controlling whether to show the unsupported CSS
properties when applying CSS styles.
Refresh the Catalog Reference Table by API. You can now use the method public boolean
refreshReference(CrossReferenceConfigure referenceConfigure) in the Catalog API to refresh the
reference table of a catalog. For details, see Refreshing the reference table of a catalog in the
JReport Designer User's Guide.
Download Resources from JReport Server. You can now download the resources managed on
JReport Server to your local and further modify them in JReport Designer. For details, see
Downloading resources from JReport Server in the JReport Designer User's Guide.
Consistently Support Hex for Designer Formula Color Picker. The Designer formula color
picker supports RGB hexadecimal value of colors. It shows the RGB hexadecimal value of the
specified color, or you can enter the RGB hexadecimal value of a color manually.
Customize the Sheet Name for Report in Excel Result. When exporting a report to Excel, you
can now define the sheet name for the report in the exported Excel result file by setting the property
Sheet Name of the report.
Add Postfix Number to Subreport Worksheets in Excel Result. A property - Sheet Name
Postfix - is added on subreport, with which you can define how to add the postfix number to the
sheets in which the subreport will be put when exporting the report to Excel.
Chart Can Be Created Through the Report Wizard Along with the Banded/Crosstab/Table
Using the Same Group and Summary Fields. For details, see Creating a banded report in the
JReport Designer User's Guide.
Reduce the Memory JRMemoryAppeneder Holds. You can now use the method
setUsedMemoryAppender(boolean use) in the Engine Bean to reduce the memory
JRMemoryAppeneder holds. For details, see Reducing the memory JRMemoryAppender holds in the
JReport Designer User's Guide.
Formula Control Enhancement on Properties of Crosstab Fields. Most of the properties for
crosstab fields and labels can now be controlled by formulas. JReport automatically filters formulas
that are not supported for a property.
Format for Aggregate Fields in Crosstab Is Now Unified. Rather than setting the format for
detail, each sub-total and each grand-total a single format can be specified for all values for a
crosstab cell.
Support Importing User Defined Formula Classes via UI. You can now import user defined
formula classes in two ways: using the "import" statement or via dialog. The dialog also enables
editing class alias. By providing different aliases one UDF class can be imported more times. The
imported UDF classes' functions are displayed in the UDF node in the Functions panel of the Formula
Editor. You can perform on UDF functions just like on the other built-in functions. For details, see
User defined formula functions in the JReport Designer User's Guide.
Support Displaying Instance Name. A property Instance Name is added to all the objects in the
Report Inspector to show the instance name for each object.
●
●
●
●
●
●
●
●
●
●
●
●
●
●
Map Enhancement. The Map feature is further improved in several respects: you can now define
the area tips when you import areas from a .shp file in the Select Area Name dialog; in the Reset All
dialog, you can not only reset all the properties for map areas including the labels and summary
fields inside the areas globally, but also choose some specific properties you want to apply global
settings; you can also control whether or not the label for the area will be displayed when the size of
the area is changed to be smaller than the label, by using the option Automatic Filling Labels in the
Map Canvas Setup dialog.
Show the Value Label on the Value Axis in Percent. JReport now provides an option, Show
Percent, in the Format Value(Y)/(Y2) Axis dialog, by controlling which the value label on the value(Y)/
(Y2) axis of a chart can either be displayed as value, or be shown in percent.
Support New Chart Types. Two new chart types, Bullet Chart and Donut Pie Chart, are now
supported in JReport.
Showing/Hiding Table Columns by Constant Level Formula. The property Invisible on table
columns can now be controlled by constant level formulas.
Support Linking Crosstab and Another Report with Conditions. You can now make a specified
field in a crosstab linked with another report with conditions.
Support More Data Source Types for Binding Parameter With Column. When binding a
parameter with a column, you can now select the column in the following data sources: tables and
views, stored procedures, imported SQLs, and user defined data sources. For details, see Creating a
parameter in the JReport Designer User's Guide.
Expanding/Collapsing Data Enhancement in Crosstab. With the Expand Data property on
DBFields and formulas added in to a crosstab as dimensions, you can specify which dimensions'
details can be expanded/collapsed in DHTML format. For details, see Expanding/Collapsing a crosstab
in the JReport Designer User's Guide.
Support Showing/Suppressing Specified Row/Column Subtotals in Crosstabs. In a crosstab,
you can now control which subtotal of rows/columns will be suppressed, and which will be shown, by
using the Suppress Row Subtotal dialog and Suppress Column Subtotal dialog.
Extend Contents in Table Column/Crosstab Field Automatically. When the contents in a table
column/crosstab field needs more space to completely display, you can automatically adjust the
width of the table column/crosstab field according to their contents, by using the property Auto Fit.
Web Control Enhancement. You can now add the value "All" to a list/drop-down list by using the
Insert Fields dialog. Then when All is selected as value of the list/drop-down list at runtime, all filter
actions defined on the list/drop-down list will not take effect, and if you applied some other web
action that needs value from the list/drop-down list, a Null value will be returned.
Link to Multiple Components in a Report. When linking a report with another one, you can
specify multiple components in the target report to be interlinked with the primary report, no matter
they are based on the same dataset or not, and set separate link condition for each component. For
details, see Linking a report to another report in the JReport Designer User's Guide.
Alternating Line Color Control in a Crosstab. A property group Alternating Line Color is added to
crosstab, by using which you can define a specified color for the fields in the same rows or columns
in a crosstab.
New Look and Feel for JReport Designer. Based on JDK 6, JReport Designer applies new look
and feel so as to make you use it more comfortably.
Support Skip First N in Chart. For details, see Setting Order/Select N condition for category/
serries field in the JReport Designer User's Guide.
Resolved/Known Issues in This Release
This document describes the resolved issues and any known issues for JReport Server in this release.
Resolved issues
Item
Case #
Issue
1
54838
All data can now be displayed normally when user runs the report in Text format with
XML data source in parallel.
2
54986
Resolved the java.lang.RuntimeException error when user runs a report on JReport
Server 9 Service Pack 1 Update 1.
3
54969
The Value drop-down list in the Query Filter dialog now can be displayed normally in ad
hoc reporting.
4
55673
The All Value works correctly when the user creates a table report with parameters in
JReport Designer, edits the business cube join and then publishes the report to JReport
Server.
5
55999
JReport Viewer Bean for Swing can now display the summary correctly when using
grouping.
6
56051
When user runs the result version of a report and then exports it to PDF or Excel
format, JReport will not get a JRResponseException error.
7
56217
If user runs a report with date parameters, the date information displayed in the report
page now works according to the date parameter the user set in the Enter Parameter
Values page.
8
56237
Now resources like folders, reports, and catalogs on the JReport Administration page
are kept normally after user makes changes on the Archive tab of the Data page.
9
56302
The exported Excel file now works fine after user exports a report to Excel format.
10
56342
JReport Server now works correctly with multiple connection configurations in the
same catalog.
11
56781
JReport Server can now run a report created as an ad hoc report in any format using
Advanced Run without getting an exception.
12
56907
When user runs a report with style group in DHTML or HTML format, it no longer lays
out the report twice internally after user sets the Style Group property.
13
56924
Enhanced null data checking in data source definitions to avoid java.lang.
NullPointerExcetions.
14
56993
The fonts of exported PDF files now display normally after user exports a report to PDF
format.
15
57112
Now when user sets a schedule task on JReport Server, the multi-selected weekdays
work normally on both standalone and integrated server.
16
57213
The exported Excel file now works after user exports a chart containing only one item
on the series axis.
17
57284
Now after user exports a chart to HTML file, it shows complete tip information when
user moves the mouse pointer over any text in the graph.
18
57284
The chart data marker in the line chart can now be displayed normally on JReport
Viewer page.
19
57284
The exported Excel file containing a chart report now displays normally after user
saves the file and opens it again.
20
57284
The exported Excel file containing a chart report now displays normally when user
opens it with MS Office 2010 version.
21
57586
The API method getParamInfosByValue() can work normally now.
22
57639
Resolved the DSException error in user's report after user loads a datasource.xml file
in JReport Server with an override of a connection with a different name.
Known issues
Compiling formulas in JReport under JDK 6 or higher gets warnings
Since generic type is introduced to JDK 6 or higher version, when compiling formulas in JReport under
JDK 6 or higher, you may come across warning messages as follows:
●
Note: Test.java uses unchecked or unsafe operations.
●
Note: Recompile with -Xlint:unchecked for details.
You may see that the situations are logged as Javac errors. However, the warning messages do not
prevent Javac from creating .class files and reports can still run correctly.
In this case, you can simply ignore the messages and logged errors.
TOC Browser tree doesn't work well for reports with cached report bursting
When end user runs a report which has been defined with some cached report bursting policy in
JReport Viewer, if he opens the TOC Browser, he will be displayed with all the groups the report has
instead of the ones he is supposed to view. In addition, no matter a group is allowed for him or not, he
cannot click the group name from the TOC tree to get corresponding details. JReport will further
enhance the cached report bursting feature in future release to resolve this issue.
Report data get cut off in PDF result
When you export a report to PDF format, if the report contains a large amount of data but its page
mode was specified to be continuous page mode when it was designed in JReport Designer, or its page
size was set to be larger than 200 inches, you will find that in the PDF result some data of the report
are cut off. This is because in one PDF page, the data displayed can no larger than 200 inches.
Derby cannot auto start in cross-computer integration
By default, JReport Server uses the embedded Derby as the system database, and automatically starts
the Derby database server (the start of Derby requires the JDK path). If you build a WAR/EAR on
computer A and then integrate it into an application server on computer B, it is probable that the Derby
database server cannot auto start using the JDK path on computer A. If you want to use Derby in an
integration environment, you'd should update dbconfig.xml when building the WAR/EAR, and remove
the following line from dbconfig.xml:
<auto-start-derbyservice>true</auto-start-derbyservice>
Then JReport will not try to auto start the embedded Derby server, and you need to start it by yourself.
Derby can be started and stopped by using the batch files in <install_root>/derby/bin. There you will
find startNetworkServer.bat/sh and stopNetworkServer.bat/sh.
API change
jet.formula.ParamDesc.value has been set to private now. You can use getDisplayValue(DbValue
paramvalue, java.util.Locale locale) instead.
For example:
ParamDesc desc = new ParamDesc();
... ...
desc.getDisplayValue(desc.getValue(), Locale.getDefault());
JReport Product Overview
JReport is a complete Java reporting solution that provides sophisticated enterprise reporting, ad hoc
reporting, and data analysis. A 100% Java EE architecture and a rich set of APIs allow JReport to be
seamlessly embedded into any application, providing end users with a transparent interface to easily
generate reports, share information, and analyze data. With JReport, any report can be made
interactive, extending the "life" of a report by allowing users to easily sort, group, navigate, and filter
via the Web. This wide range of functionality, including the ability to drill down on data, enables users
to quickly derive value from their business intelligence.
This chapter describes the JReport product in the following sections:
●
Features of JReport
●
JReport product architecture
●
Reporting a problem or requesting a feature
●
Visiting our web pages for more information
Features of JReport
JReport Designer supports report development. JReport Designer provides the following features:
●
Interactive IDE
●
Sophisticated report design
●
Precise, flexible layout
●
Reusable report objects
●
Access any data source
JReport Server supports report generation and management. JReport Server has the following
features:
●
High performance engine
●
Scale to any workload
●
Seamless integration SDK
●
Pure Java EE deployment
●
Scheduling, distribution, alerting & versioning
JReport Web supports information delivery. JReport Web has the following features:
●
Interactive DHTML technology
●
Dynamic sort, filter, drill, pivot, convert
●
Ad hoc reporting
●
Taglib to customize JSPs
●
Flexible output formats: PDF, Excel, XML, RTF, e-mail and more
JReport product architecture
The JReport solution spans a 3-tier architecture.
JReport Designer is a Swing-based Integrated Development Environment (IDE) that enables
sophisticated report design and presentation of critical business data. It provides an intuitive interface,
reusable report components, flexible layout, and a toolset for designing and testing reports. With
JReport Designer, you can build reports using simple drag and drop techniques or by using the Report
Wizard. Data can be accessed from any data source to design and preview reports in order to deliver
information to end users in the most relevant and intuitive manner. Rapid creation and modification of
report templates is accomplished by toggling between design mode and view mode where the report
will be displayed with the actual dataset. Once report design is complete, the template is published to
the JReport Server for generation, delivery, and management.
JReport Server is a 100% Java report generation and management tool. It enables efficient
management, sharing, scheduling, versioning, and delivery of reports and enables reporting to be
integrated into the workflow of any Java application. The high-performance engine can scale to any
workload. Report results can be saved to a versioning system, sent to enterprise/workgroup printers,
or e-mailed. With JReport, reports can be viewed in any modern enterprise format including DHTML,
HTML and standard business documents, such as PDF, Excel, and RTF.
JReport Web enables reports to be accessed through a web browser via Dynamic HTML, or AJAX. With
JReport Web technology, reports can be modified using dynamic filter, sort, and drill capabilities. Using
JReport Web's advanced capabilities, users can drag and drop columns to and from an existing report,
dynamically change chart types, pivot crosstabs, add groups, convert report components or create an
entirely new report.
JReport SDK - All JReport functionality can be accessed through Java APIs using JSP pages, servlets,
or standalone applications.
Reporting a problem or requesting a feature
If you are having trouble running JReport Server or encounter any problems during reporting, take the
following steps.
1. Check whether the system on which JReport Server is running meets the system requirements.
2. Check the JReport FAQ pages for frequently-asked questions and their solutions.
If the problem persists, report it to Jinfonet Support ([email protected]) with the following
information:
1. Describe the precise steps leading to the problem.
2. Run the batch file jrenv.bat in the <install_root>\bin subdirectory. Running this batch file will
generate a file called report.env in the current directory. Send this file to Jinfonet Support. Also,
describe the operating environment, including machine type, CPU, memory, OS, and Java version.
3. If you are running JReport in an integrated Java application server, click the Server Information
button
on the JReport Administration page to list the environment.
4. Send Jinfonet Support the log file with the recorded JReport Server problems.
❍
❍
For a standalone server
Start JReport with the batch file DJRServer.bat (.sh on Unix). Running this batch file will record
the most detailed logging information and write them to the log files in the <install_root>
\logs directory. Try to reproduce the problem, and send the log files along with the other
information.
For an integrated JReport Server
If your JReport Server runs as a servlet inside a Java application server, send the log files
generated by the JReport Engine in the application server. When the JReport Servlet is installed,
a property file is generated which is used to define the class and arguments of the JRServlet.
For example, if you integrated JReport Server into WebLogic, find the WebLogic properties file
located in the installation path of WebLogic. Edit the file to use the option -vDebug -vError. Your
file should then contain the following content:
vError=true
vDebug=true
In addition, you can also directly add the java option -Dlogall=true (or -DvError=true, DvDebug=true) to the java command line within the launch file of the application server.
After restarting your application server, reproduce the problem and send the log files to Support.
5. Send Support the log files recording all of the logging information of engine and server (including
event, error, debugging, access, management, and performance).
❍
Change the configuration to record all logging events by starting the server and accessing the
JReport Administration page through http://localhost:8889.
a. Go to the Configuration > Log panel.
b. Set the trace level of all logs to TRIVIAL, and set the error level of all logs to WARN.
c. After that, reproduce your problem and send Support the log files in <install_root>
\logs. In addition, you can also directly modify the logging configuration file LogConfig.
properties in <install_root>\bin. If you set the server property log.config.update to true
(all server properties are managed within the file server.properties in <install_root>
\bin), any changes to the configuration file will automatically take effect at runtime after
the specified update interval (set by the server property log.config.update.interval).
❍
If your JReport Server runs as a servlet within a Java application server, in the address bar of a
web browser, type in http://<hostname>/jreport/admin, where jreport is the servlet context
path.
6. To reproduce your problem of running reports with JReport Server, we will often need your report,
catalog and data information.
a. Send Support the catalog file (*.cat and *.fml) and the report set file *.cls that you are
having problems with.
b. In order to resolve technical issues that you have reported, we will need to access your
report data so that we can recreate and analyze the problem. Your database may be very
large. However, we will only require access to the data returned by the query of the
troublesome report, and if necessary we will sign a confidentiality agreement with you. To
extract the report data, in the Catalog Browser of JReport Designer, right-click the query that
your report is using, select the menu item Create Cached Query Result. Then, input the
data file name and click the Save button. The query result will then be saved in this file.
Send Support all of the files generated (including the description file).
Visiting our web pages for more information
●
●
●
●
●
●
●
●
●
Products information
http://www.jinfonet.com/products/jreport-suite
Release information
http://www.jinfonet.com/products/whats-new
News center
http://www.jinfonet.com/news/jreport-news-highlights
Demo center
http://www.jinfonet.com/products/jreport-demo
Products download center
http://www.jinfonet.com/downloadjreport/
White papers
http://www.jinfonet.com/products/white-papers
JReport product documentation
http://www.jinfonet.com/kbase.htm
JReport Javadoc
http://www.jinfonet.com/kbase.htm
JReport technical support center
http://www.jinfonet.com/support/
Installing and Uninstalling
This chapter presents how to install JReport Server using a variety of different methods. It covers
issues associated with installing, removing and solving problems encountered during installation.
●
System requirements
●
JReport Server Live license
●
Supported databases
●
Installing using the Installation Wizard
●
Installing silently
●
Installing using the console interface
●
Installing on Unix manually
●
Uninstalling
●
Solving installation problems
●
JReport Server reporthome directory overview
System requirements
The following table displays the basic system requirements for installing JReport Server. Check your
system to make sure that all the requirements are met before installation.
JReport Server System Requirements
Recommended Requirements Minimum Requirements
OS:
Windows, Unix, Linux, z/Linux
Windows, Unix, Linux, z/Linux
CPU:
Intel Dual Core Xeon 2.8GHz
Intel P4 Xeon 3.0GHz
Memory:
3 GB
2 GB
Disk:
1 GB free
1 GB free
JDK:
6 or above
6 or above
Client Requirements Recommended
Internet Explorer 6, Firefox 3, and higher versions, or Google Chrome 5.
You can download a JDK version at http://java.sun.com/javase/downloads/index.jsp.
Notes:
●
●
Jinfonet supports Java VMs released by Sun and IBM to run with JReport Server. You can try using
other Java VMs, but their compatibility cannot be guaranteed. Reports of any problems you find with
other Java VMs are welcome.
If you want to use JReport Server on a z/Linux system, you must download the JDK specially used
for IBM from http://www-03.ibm.com/servers/eserver/zseries/software/java/ and the version should
be at least V6.
JReport Server Live license
The JReport Server Live license controls the real time ad hoc and analysis reporting on JReport Server.
The Live license allows you to utilize all of the following features and functions on JReport Server:
●
●
Create, view, run, edit, export, print, and publish ad hoc Page Layout Reports and Web Layout
Reports (also called Studio Reports). The data sources for these reports are created in JReport
Designer, which requires a JReport Designer Live license.
All actions in JReport Viewer (the browser for opening a DHTML format report) involving report cube/
business cube or changes of report template:
❍
Create new reports or report sets
❍
Delete reports from a report set
❍
Add components and data fields into reports
❍
Remove components from reports
❍
Move and resize components
❍
Edit component properties
❍
Drill
❍
Go to
❍
Change chart type
❍
Rotate tables and crosstabs
❍
Convert between crosstab and chart
❍
Create query filters
❍
Display Resource View panel which shows the data resources for the current open report
See also JReport Designer Live license in the JReport Designer User's Guide for details about the
features the license controls.
Supported databases
JReport supports all of the current mainstream databases as well as most databases which support
ODBC or JDBC drivers. The following table lists the databases and JDBC drivers that have been tested
with JReport. If you are using any of the databases listed below, you are recommended to use the
corresponding driver version with JReport although any driver which the DBMS supplier recommends is
also fine. Also, if you encounter problems when using a database or driver version that is not listed
here, you can contact Jinfonet Support ([email protected]) for help.
Database
Version
Driver File Name
JDBC Driver
Example URL
MS SQL
Server
2005
sqljdbc.jar
com.microsoft.
sqlserver.jdbc.
SQLServerDriver
jdbc:sqlserver://<host>:1433;user=sa;
password=1234;database=test
MS SQL
Server
2000
msbase.jar; msutil.
jar; mssqlserver.jar
com.microsoft.jdbc.
sqlserver.
SQLServerDriver
jdbc:microsoft:sqlserver://<host>:1433
MS SQL
Server
2000
Opta2000.jar
com.inet.tds.TdsDriver jdbc:inetdae7:<host>:1433?
database=test
MS SQL
Server
2000
tds-1.0.3.jar
net.sourceforge.jtds.
jdbc.Driver
jdbc:jtds:sqlserver://<host>:1433/test
Oracle
9i
JDK1.2&1.3:
classes12.zip;
JDK1.4: ojdbc14.jar
oracle.jdbc.driver.
OracleDriver
jdbc:oracle:thin:@<host>:1521:ora9i
Oracle
10.1.0.2.0
(10g)
JDK1.2&1.3:
classes12.zip;
JDK1.4: ojdbc14.jar
oracle.jdbc.driver.
OracleDriver
jdbc:oracle:thin:@<host>:1521:ora9i
Oracle
11.1.0.6.0
(11g)
classes12.jar
oracle.jdbc.
OracleDriver
jdbc:oracle:thin:@<host>:1521:ora11g
DB2
8.1
Db2java.zi; db2jcc.jar com.ibm.db2.jdbc.net.
DB2Driver
DB2
8.1
Db2java.zip
com.ibm.db2.jdbc.app. jdbc:db2:test
DB2Driver
DB2
8.2
Db2jcc.jar;
db2jcc_license_cu.jar
(Linux, Unix and
Windows);
db2jcc_license_cisuz.
jar (Linux, Unixand
Windows, z/OS,
OS/390,z/OS, iSeries
etc)
com.ibm.db2.jcc.
DB2Driver
DB2
8.2
Db2java.zip
com.ibm.db2.jdbc.app. jdbc:db2:test
DB2Driver
redbrick.jar
redbrick.jdbc.
RBWDriver
jdbc:rbw:protocol:<host>:5050/test/
ifxjdbc.jar
com.informix.jdbc.
IfxDriver
jdbc:informix-sqli://<host>:1526/
stores_demo:informixserver=DBSC
PostGre SQL 8.0
postgresql-8.0-310.
jdbc3.jar
org.postgresql.Driver
jdbc:postgresql://<host>:5432/test
MySql
mysql-connector-java- com.mysql.jdbc.Driver
5.0.3-bin.jar
RedBrick
warehouse
Informix
9.30
mysql5.0.18win32
jdbc:db2://<host>/test
jdbc:db2://<host>:50000/test
jdbc:mysql://<host>:3306/test
MySql
mysql 4
mysql-connector-java- com.mysql.jdbc.Driver
3.0.14-production-bin.
jar
jdbc:mysql://<host>:3306/test
MySql
mysqlmysql-connector-java- com.mysql.jdbc.Driver
5.0.2-alpha- 3.1.5-gamma-bin.jar
win
jdbc:mysql://<host>:3306/test
MySql
mysql4.1.12win32
mysql-connector-java- com.mysql.jdbc.Driver
3.1.10-bin.jar
jdbc:mysql://<host>:3306/test
MySql
mysql 5
mysql-connector-java- com.mysql.jdbc.Driver
5.0.4-bin.jar
jdbc:mysql://<host>:3306/test
hsqldb.jar
org.hsqldb.jdbcDriver
jdbc:hsqldb:D:\JReport\Demo\db
\SampleDB
HSQL
Sybase
12.5
jconn2.jar
com.sybase.jdbc2.jdbc. jdbc:sybase:Tds:<host>:5000/master
SybDriver
Sybase
12.5
jconn3d.jar
com.sybase.jdbc3.jdbc. jdbc:sybase:Tds:<host>:5000/master
SybDriver
PostGre SQL 8.0
postgresql-8.0-310.
jdbc2.jar
org.postgresql.Driver
jdbc:postgresql://<host>:5432/test
Cache
Cache 4
CacheDB.jar
com.intersys.jdbc.
CacheDriver
jdbc:Cache://<host>:1972/samples
Derby
10.5.1.1
derby.jar
org.apache.derby.jdbc. jdbc:derby:D:\derby\demo\databases
EmbeddedDriver
\toursdb
Note: If you want to use the DB2 app connection, you need to install the client and configure the net
address first.
Installing using the Installation Wizard
Installing JReport Server with the Installation Wizard is intuitive. You only need to follow the screens
and enter the required information. The Installation Wizard provides two installation types:
●
●
Typical Installation for Standalone Server
Installs JReport Server with the default configuration settings.
Custom Installation for Standalone Server
Installs JReport Server in a standalone environment. If you choose this installation type, you can
configure the server in the Installation Wizard.
This document shows you how to install the server to different systems with the Installation Wizard and
configure the server according to your requirements.
Installing on Windows
To install JReport Server on a Windows platform, take the following steps:
1. Download the JReport Server installation file for Windows SvrSetup.exe from the Jinfonet
download center: http://www.jinfonet.com/downloadjreport/.
2. Run SvrSetup.exe and follow the prompts to install.
During installation, pay attention to the following:
●
●
The installer requires that you choose a Java JDK to complete the installation. You can download the
appropriate JDK from http://java.sun.com or your computer vendors web site.
The Installation Wizard will first find a JVM to get started. If no JVM is found, the JReport installer
will fail to launch. To solve this issue, you can try either way:
❍
❍
Set JAVA_HOME in system environment.
Install JReport Server from a DOS command by specifying the LAX_VM option for the Installation
Wizard as follows:
SvrSetup.exe LAX_VM "C:\jdk1.6.0_17\bin\java.exe"
The JDK path should use absolute path and be quoted by "".
●
●
The installer provides a chance for you to add additional class paths. You can also choose to add
them manually into the setenv.bat in <install_root>\bin after installation.
If you select to install JReport Server in a folder that already contains an existing copy, the installer
will replace the packages and create new batch/script files. Meanwhile, a copy of the old batch/script
files will be kept for your reference. You should use the batch/script files that come with the installer
in order to make sure that all new packages are added to the class path and manually merge any
changes you made into the new version.
Installing on Unix
JReport Server supports Solaris, Linux, HP-Unix, and AIX. In the following process, an X server is
running and Java 1.5 or above is available, otherwise ask your administrator for help. Installing and
running JReport Server requires that an X server has been configured.
1. Download the JReport Server installation file for Unix SvrSetup.bin from the Jinfonet download
center: http://www.jinfonet.com/downloadjreport/.
If you need to transfer the installation file from your download machine to your Unix box, you
should transfer it using FTP in binary mode.
2. Click the executable file SvrSetup.bin to launch the Installation Wizard. Alternatively, you can
open a console window, and change the directory to the location of the SvrSetup.bin file. Following
are examples of the commands that can be used:
$ cd /opt/JReport/Server (or your preferred install location)
To make SvrSetup.bin executable, type the command:
$ chmod +x SvrSetup.bin
Run SvrSetup.bin:
$ ./SvrSetup.bin
The Installation Wizard will first locate a JVM to get started. If no JVM is found, the installer will
fail to launch. To solve this issue, you can try either way:
❍
Set JAVA_HOME in system environment.
❍
Specify a JVM for Installation Wizard with the option LAX_VM as follows:
$ ./SvrSetup.bin LAX_VM "/opt/jdk1.6.0_17/bin/java"
The JDK path should use absolute path and be quoted by "".
3. Once the Installation Wizard has successfully loaded, you can follow the standard prompts to
install JReport Server.
Installing on z/Linux
JReport Server supports Linux on IBM system z. In the following process, an X server is running and a
JDK specially used for IBM is available, otherwise ask your administrator for help. Installing and
running JReport Server requires that an X server has been configured.
1. Download the JReport Server installation file for z/Linux SvrSetup.bin from the Jinfonet download
center: http://www.jinfonet.com/downloadjreport/.
If you need to transfer the installation file from your download machine to your z/Linux box, you
should transfer it using FTP in binary mode.
2. Click the executable file SvrSetup.bin to launch the Installation Wizard. Alternatively, you can
open a console window, and change the directory to the location of the SvrSetup.bin file. Following
are examples of the commands that can be used:
$ cd /opt/JReport/Server (or your preferred install location)
To make SvrSetup.bin executable, type the command:
$ chmod +x SvrSetup.bin
Run SvrSetup.bin:
$ ./SvrSetup.bin
The Installation Wizard will first locate a JVM to get started. If no JVM is found, the installer will
fail to launch. To solve this issue, you can try either way:
❍
Set JAVA_HOME in system environment.
❍
Specify a JVM for Installation Wizard with the option LAX_VM as follows:
$ ./SvrSetup.bin LAX_VM "/opt/ibm-java2-sdk-6.0/bin/java"
The JDK path should use absolute path and be quoted by "".
3. Once the Installation Wizard has successfully loaded, you can follow the standard prompts to
install JReport Server.
Configuring the server
When installing JReport Server using the Installation Wizard, if you choose Custom Installation for
Standalone Server, you can configure the server according to your requirements during the installation.
You can configure the following items:
●
Service
●
Cluster
●
E-mail
●
Cache
❍
Cache Loaded Catalogs
Specifies whether to keep a catalog in memory, or to remove it from memory after a report set is
completed.
Normally, after a report set has been generated, the catalog that is used to generate the report set
will be removed from memory. However, if you specify this option, the catalog will be cached
rather than removed.
Cache Loaded Report Sets
Specifies whether to keep the report sets in memory or remove them from memory after they have
been generated.
●
Performance
Pre-loading the Java classes and fonts which are used by catalogs, report sets and JReport Engine at
startup time will improve performance when these classes are needed at runtime.
❍
❍
❍
❍
Preload Catalog Referred Classes
Pre-loads the Java classes that are used for a catalog.
Preload Report Set Referred Classes
Pre-loads the Java classes that are used for a report set.
Preload Engine Referred Classes
Pre-loads the Java classes that are used by JReport Engine to generate reports.
Preload Fonts
Specifies to load the fonts when JReport Server is started rather than when they are first used.
❍
Maximum Number of Concurrent Report Sets in the Queue
Specifies the maximum number of concurrent report sets in the queue, which must be less than or
equal to the number that the license permits.
●
Advanced
●
Data Source
Installing silently
JReport provides two files for installing JReport Server silently without user participation in the
installation process. It is ServerInstall_typical.properties for the Typical Installation for Standalone
Server type and ServerInstall_custom.properties for the Custom Installation for Standalone Server
type.
Follow the steps below to install JReport Server silently:
1. Download the appropriate file from the Jinfonet website according to your requirement.
2. Some built-in demo report sets (\SampleReports\*.cls) with Derby as the data source (install_root
\db\SampleDB.script) have been provided. At the end of the installation, the installer will
configure the report sets and catalog to the correct data path. This calls some AWT classes that
require GUI support.
So, if you have an X server installed, you should set the Display variable so that this step can be
performed successfully.
$ DISPLAY=hostname(or IP address):0.0
$ export DISPLAY
Note: If you do not have X server or a pure text environment, this step can be ignored.
However, you may find that the demo report sets will not be able to run after you start the
JReport Server due to having the wrong default data source path. In this case, you can use
JReport Designer to publish some working report sets for testing purposes.
3. Run the following command, and JReport Server will be installed in the designated path:
$ ./SvrSetup.bin -i silent -f ServerInstall_typical.properties
Notes:
●
●
When installing JReport Server silently, make sure you do not use overwrite installation, instead,
install the server to a new directory.
When you install the Update or Service Pack silently, edit the property file update.properties in
<install_root>\help\server\en\samples to your own requirements. This file is used to create an
option file (i.e. response file) for the Installation Wizard. It predefines all the information that is
required for the installation.
You can also create a property file and save it as follows:
USER_INSTALL_DIR=/usr/local/JReport/Server
USER_KEY=UID
USER_PASSWORD=Password
Modify the above lines according to your own environment and configurations.
Installing using the console interface
JReport enables you to perform an interactive installation from a command prompt on platforms that
do not have GUI. In this way, you are able to see the installation status and follow the installation
process.
Take the following steps to perform console installation:
1. Download the installation program (SvrSetup.bin for Unix and z/Linux, SvrSetup.exe for Windows)
from the Jinfonet download center: http://www.jinfonet.com/downloadjreport/.
2. Run the following command:
For Unix and z/Linux:
$ chmod +x SvrSetup.bin
$ ./SvrSetup.bin -i console
For Windows:
SvrSetup.exe -i console
3. Make decisions following the installation process.
Installing on Unix manually
In some rare cases, JReport Server may fail to install on Unix directly. In this case, follow the steps
below to install it manually:
1. Install JReport Server on Windows following the steps in Installing on Windows, but don't start it.
2. Prepare a directory on Unix where you will copy the installation, for example /opt/JReport/
Server.
3. Modify javahome and reporthome in the following files to the Unix directories where the Java JDK
is located and the directory you are going to copy the release to. Be sure to modify them carefully.
Any mistake will cause problems starting JReport.
report.ini
servlet.properties
setenv.sh
4. Delete the file server.properties from <install_root>\bin if it exists and remember to reset the
required configuration settings on the JReport Administration page (8889 as the default port) after
launching JReport Server on Unix. The server.properties file is created if you use the custom
format to install.
5. Make a zip or jar archive of the above folders, and then copy it to your Unix system (use binary
format if using FTP).
6. Extract the folder in the destination directory in accordance with the path defined in the property
files.
7. Use the dos2unix command to convert all the .sh files under <install_root>/bin to the format
that can be recognized by Unix. You can execute the command like this:
$ dos2unix *.sh
8. Use the chmod command to set the converted files under <install_root>/bin to have read, write
and execute permission. You can execute the command like this:
$ chmod 777 *.sh
9. Start a shell (Console) and login as root or become the root user by running the su command.
Make JRServer.sh executable and then start JReport Server by running ./JRServer.sh.
Note: If you fail to intall JReport Server on your z/Linux system directly, you can also follow the above
steps to install the server manually.
Uninstalling
Use either of the following methods to remove JReport Server:
●
●
From the Control Panel, open Add or Remove Programs, and then select JReport Server 10 to
uninstall it.
Run uninstaller.exe (uninstaller on Unix) in <install_root>\_uninst.
Note: The uninstaller will remove all the files generated by the installer, while the files that are created
later by the program will be retained. They should be removed manually.
Solving installation problems
This section is trying to help you solve the problems you encounter during the installation.
Where to find log information
If error occurs during the installation, you can check the log information recorded to find out what the
problem is. Where logs are generated depends on when the installation process get stuck:
If the installation is cancelled before you click the Install button on the installation wizard, logs are
created on the desktop for Windows and in the userhome directory for Unix/Linux.
●
If the installation is cancelled after you click the Install button on the installation wizard, logs are
created in the logs folder in the installation root directory.
●
Besides, on a Windows platform, you can choose to specify the log destination that should use absolute
path and log file name when launching the installation wizard:
SvrSetup.exe -D$INSTALL_LOG_NAME$="Install.log" -D$INSTALL_LOG_DESTINATION$="D:\temp"
or
$ ./SvrSetup.bin -D$INSTALL_LOG_NAME$="Install.log" -D$INSTALL_LOG_DESTINATION$="/opt/
temp"
Feel free to send your questions to [email protected]
An issue on Windows Vista
Problem
When running JReport Server's installer on Windows Vista, the installer cannot find the installed JDKs.
Reason
By default Vista's security settings are stricter than Windows 2000, XP, and 2003. The children
processes do not inherit the execution right from their parent process.
Solution
Make the compatibility property of the installer file (.exe) available:
1. Right-click the installer file, and select Properties from the shortcut menu.
2. In the Compatibility mode panel of the Compatibility tab, check the Run this program in
compatibility mode for option, and then select Windows 2000 from the drop-down list.
3. Click OK.
4. Run the installer.
JReport Server reporthome directory overview
This section provides a general view of the directories in the JReport Server installation root, including
what they contain, what they are used for, and how to set their location if possible.
The following is a list of the server reporthome directories:
Directory
Contents
Directory location Configurability
_uninst
Files used for uninstalling the JReport
Server
Fixed.
bin
Command, configuration, and
properties files
Fixed.
db
Demo report sets' database
Fixed.
Demo
Demo report sets used in the tutorial
lessons
Fixed.
dynamicclasses
UDS jar/zip files
The directory location can be specified by
the server.dynamic.class.dir property in
the server.properties file in
<install_root>\bin.
font
TTF font
The directory location can be specified by
-Djreport.server.font.path or by the
server.font.path property in the server.
properties file in <install_root>\bin.
help
Help documents introducing the
function, features and usage of
JReport Server and JReport Designer
together with Tutorial manual.
Fixed.
history
Version files
The directory location can be specified by
the servlet.jrserver.initArgs property in
the servlet.properties file in
<install_root>\bin.
images
Public images for DHTML
Fixed.
jreports
Demo report sets.
Fixed.
When scheduling a task to disk, the
directory refers to the destination root
of the server resource tree.
lib
Library files required by JReport
runtime
Fixed.
logs
Log files
The directory is the default location for
log files.
ntservice
Files for C program and for writing a
Windows NT-service to run JReport
Server
Fixed.
prestart
Reads customized configuration for
launching JReport Console and
Administration pages from the Start
menu.
Fixed.
profiling
Profiling related files
Fixed.
properties
Default location for JReport Server
realm database
The directory location can be specified
using the URL option on the JReport
Administration page > Data > Realm DB
> Configuration tab.
public_html
Standalone web app folder
Fixed.
realm
Realm files
Fixed.
resources
Language packages for specifying
JReport Server UI language.
Fixed.
scratchdir
Output files of compiled JSPs
The directory location can be specified by
the servlet.jspservlet.initArgs property in
the servlet.properties file in
<install_root>\bin.
script_files
Script files for creating and deleting
system database tables
Fixed.
style
CSS style files and style group files
The directory location can be specified by
stylePath in the report.ini file in
<install_root>\bin.
temp
Engine temp files and Server temp
result files
For Engine temp files, the directory
location can be specified by tempPath in
the report.ini file in <install_root>\bin.
Fixed for Server temp result files.
txtdriver
Demo report sets' flat data files
Optional.
Upgrading from a Previous Version
Upgrading a standalone JReport Server and an integrated JReport Server involves different processes
while sharing some common steps. Both updated JReport Servers require converting the report
resources in the old version in order to comply with the new server version.
Upgrading in a standalone environment
JReport Server 10 provides two migration tools in <install_root>\bin folder, which can help you to
convert all the resources on the previous version of JReport Server before version 6.0. Resources the
migration tools cover include the security information (realm, user, group, protection, and ACL), report
resources (catalog and report sets), scheduled tables, completed tables, version and version tables,
and other relevant information (such as fonts, NLS, and style groups).
For versions later than V6.0 (included), the upgrade is performed automatically by JReport Server 10.
You need only install JReport Server 10 into the same directory as the old server version.
Note: When installing the JReport Server 10 into the same directory as the old version, the report level
resources in the old version will be maintained and not be replaced by the report resources of V10.
Upgrading a version between V5.2 Build 590 (included) and V6 (excluded) to
V10
You can make the upgrade using the migration tool MigrationV52.bat (MigrationV52.sh for Unix) that is
available in the <install_root>\bin folder. This tool is used to convert all the resources of the
versions between V5.2 Build 590 (included) and V6 (excluded) to the resources of JReport Server 10. If
you install the new version to the same folder as the old one, the parameter can be omitted.
●
Usage
MigrationV52 [orgReportHome]
Options
●
❍
orgReporthome
The reporthome of the original JReport Server. If this parameter is not provided, the reporthome of
JReport Server 10 will be used as its value.
Case 1: Installing JReport Server 10 to a new folder (recommended)
1. Provided that the old JReport Server is located in C:\JREntServer595. Install JReport Server 10 to
a new folder C:\JReport\ServerV10. DO NOT start the newly installed JReport Server.
2. In the DOS window, switch to <install_root>\bin, and run MigrationV52 C:\JREntServer595.
Case 2: Installing JReport Server 10 to the folder where the old version resides
1. Provided that the old JReport Server is located in C:\JREntServer595. Install JReport Server 10 to
the same location. DO NOT start the newly installed JReport Server.
2. In the DOS window, switch to <install_root>\bin, and run MigrationV52.bat.
Upgrading a version earlier than V5.2 Build 590 (excluded) to V10
You can do the upgrade using the migration tool MigrationBV52.bat (MigrationBV52.sh for Unix) that is
available in the <install_root>\bin folder. This tool is used to convert all the resources of versions
lower than V5.2 Build 590 to the resources of JReport Server 10. If you install the new version to the
same folder as the old one, the parameter can be omitted.
●
Usage
MigrationBV52 [orgReportHome]
Options
●
❍
orgReporthome
The reporthome of the original JReport Server. If the parameter is not provided, the reporthome of
JReport Server 10 will be used as its value.
Case 1: Installing JReport Server 10 to a new folder (recommended)
1. Provided that the old JReport Server is located in C:\JREntServer580. Install JReport Server 10 to
a new folder C:\JReport\ServerV10. DO NOT start the newly installed JReport Server.
2. In the DOS window, switch to <install_root>\bin, and run MigrationBV52 C:\JREntServer580.
Case 2: Installing JReport Server 10 to the folder where the old version resides
1. Provided that the old JReport Server is located in C:\JREntServer580. Install JReport Server 10 to
the same location. DO NOT start the newly installed JReport Server.
2. In the DOS window, switch to <install_root>\bin, and run MigrationBV52.bat.
Upgrading in an integration environment
1. Suppose that you already have a standalone JReport Server 10, whether it is installed directly or
upgraded from a previous version. In this step you need not convert the old version reports.
2. Use the JReport Server 10 to create a self-contained WAR/EAR file. For information on how to
create the WAR/EAR, see Building a WAR/EAR file to include a self-contained JReport Server.
3. Use the Java application server that integrates the previous version of JReport Server to deploy
the new self-contained WAR/EAR and update the old WAR/EAR with the new.
By now, if the previous version of JReport Server is later than V6.0 (included), the integrated
JReport Server has already been upgraded to V10. But if the previous version is earlier than V6.0,
go to step 4 and you need do further upgrade.
4. For a previous version between V5.2 Build 590 (included) and V6 (excluded): in the DOS window,
switch to <reporthome>\bin, and run MigrationV52.bat.
For a previous version earlier than V5.2 Build 590 (excluded): in the DOS window, switch to
<reporthome>\bin, and run MigrationBV52.bat.
Launching
After you have installed JReport Server, you must set up the reporting environment and start it before
you can access it via a web browser. This chapter provides you with detailed information of how to run
JReport Server in different running modes.
The following topics are discussed in this chapter:
●
Setting up the reporting environment
●
Running as a standalone server
●
Running as an OS service
●
Running within an application server
Setting up the reporting environment
Now that you have installed JReport Server, you can start it. However, it is better to first check the
reporting environment to see whether you have published the report sets including the catalog files,
added the necessary class paths, and set up the data sources.
Report set publishment & creation
The separation of the report set file and the data is powerful. It facilitates easy re-use of the report
set's layout. Report set files built with JReport Designer can then be published to JReport Server for
running in the thin-client/server mode. Today, computing is a service-based model in which web based
applications are rapidly replacing monolithic fat-client hosted and maintained software applications.
JReport Server is a high performance server for running report sets on demand or unattended on a
scheduled basis. In this environment, thousands of clients may view, print and generate new report
sets.
JReport Server has its own resource tree with each node mapping to a folder or file in your physical
drive. So when publishing report set files to the server, it is recommended that you check:
●
Whether the report set files reside somewhere in the server machine.
●
Whether the files are mapped in the resource tree.
●
That not only the report set files, but also the catalog files (including the .fml file) exist and are in
the same directory. In addition, one directory can only contain one catalog. However, it can contain
many report set files which use that catalog.
Data sources
You may have your own catalogs and report sets that you developed, and want them to be run and be
distributed by JReport Server. In order to do this, the data sources used by your catalogs must be
correctly set to the runtime environment of JReport Server.
User data source
Append the class path of your user class files to the first item of the class path set in your batch file or
command line that starts JReport Server. If you are using JReport Server embedded in an application
server, add your user class files to the WAR file used to deploy JReport Server.
Additional class paths
If your report sets reference any external classes, you will need to add them to the class path option in
the batch file and command line that starts JReport Server. For example, if your report sets contain
user defined objects (UDO) or user defined formula functions, do not forget to add them to the class
path or to the WAR file.
Running as a standalone server
JReport Server can be started from the web application server contained in the JReport Server
package. This section explains how to start JReport Server as a standalone report server, how to send
commands to the server and how to use the batch files in the <install_root>\bin directory.
●
Starting using launch files
●
Starting using Java
●
Sending commands to JReport Server from Java
●
Running without a GUI
Starting using launch files
After you have installed JReport Server, many batch files are automatically generated in
<install_root>\bin. They are for assisting you with using and maintaining JReport Server. All of
these batch files can be edited to suit different circumstances. However, make sure that you
understand their functions when you want to edit them.
The following are the JReport Server launch files.
browser.bat
This tool detects the default client browser and installation path. It is invoked by launchpad.bat.
CmdSender.bat/CmdSender.sh
This tool is for sending commands to JReport Server. If the option "-s" or "-p" is not used, the JVM
system property "reporthome" must be defined so that CmdSender.bat/CmdSender.sh will use it to get
data from the local machine.
Usage
cmdsender [-s:<server> -p:<port> -u:<user>] -w:<password>
admin|shutdown|localshutdown|(local:on|off)
Options
●
●
●
●
●
●
●
●
-s
The server host name.
-p
The administration port.
-u
The admin user name.
-w
The admin password.
shutdown
Shuts down the server.
localshutdown
Shuts down the local server.
local
The administration tasks are available to local host only.
gc
Run the Java garbage collector.
DBMaintain.bat/DBMaintain.sh
This tool is for administrators to backup and restore JReport Server data. It is invoked by the following
command line:
Usage
DBMaintain -[?|cleanup|B<[systemtables|realmtables|profiling]:<filename>>|R<[systemtables|
realmtables|profiling]:<filename>>]
Options
●
●
●
-?
Displays the usage information and then exits.
-cleanup
Checks integrality of the server data and cleans up the invalid data.
-Bsystemtables:<filename>/-Brealmtables:<filename>/-Bprofiling:<filename>
Backup the data in the database with the related data to a specified file.
For example, for backing up the server data realmtables to file c:\jsback.dat, you can type:
DBMaintain -Brealmtables:c:\jsback.dat
●
●
-B0realmtables:<filename>
Only backup the data in the realm database.
-Rsystemtables:<filename>/-Rrealmtables:<filename>/-Rprofiling:<filename>
Restore the data including the related data outside the database from a specified file.
For example, for restoring server data realmtables from the file c:\jsback.dat, you can type:
DBMaintain -Rrealmtables:c:\jsback.dat
●
-R0realmtables:<filename>
Only restore the data in the realm database.
DJRServer.bat/DJRServer.sh
This tool is used to launch JReport Server with debug and log information. The output log files are in
the <install_root>\logs directory. In case of problems, you may run this batch to reproduce the
problem. Open the files to see the detail information and find out the problem. Send the log files to
[email protected] if you are unable to resolve the problem.
Usage
DJRServer [-?|-p <port>|-ap <adminport>|-realm <realmname>|-l backlog|-m <max>
|-t <timeout>|-s <filename>|-web <directory>|-env|-silent|
|-local|-vDebug|-vError|-jrs.admin.server <host:port>|-cleanup]
Options
●
●
-?
Prints this help message.
-p <port>
The port number to listen on.
●
●
●
●
●
●
●
●
●
●
●
●
●
●
-ap <adminport>
The port number which is used by the administration tools.
-realm <realmname>
Specifies the active realm.
-l <backlog>
The maximum queue length for incoming connections.
-m <max>
The maximum number of connection handlers.
-t <timeout>
The connection timeout in milliseconds.
-s <filename>
The servlet property file name. If this option is not used, the file servlet.properties in <install_root>
\bin will be used as the servlet property file when launching JReport Server.
-web <directory>
The root directory when accessing the server via the web, its default value is <intall_root>
\public_html.
-env
Prints the environment.
-silent
No output is sent to the console.
-local
The administration tasks are available on local host only.
-vDebug
Enables JReport Engine to output messages to a file and sets all log files' trace levels to INFO and
error levels to WARN.
-vError
Enables JReport Engine to output messages to a file and sets all log files' trace levels to OFF and
error levels to ERROR.
-jrs.admin.server <host:port>
The admin server host and RMI port.
-cleanup
Checks integrality of the server data and cleans up the invalid data.
JRServer.bat/JRServer.sh
This tool is used to launch JReport Server in standalone mode without any predefined options.
On Windows, you can start server by double-clicking on JRServer.bat. If you cannot start the server
successfully in this way, the reason will be displayed in the MS-DOS command prompt.
Usage
JRServer [-?|-p <port>|-ap <adminport>|-realm <realmname>|-l backlog|-m <max>
|-t <timeout>|-s <filename>|-web <directory>|-env|-silent|
|-local|-vDebug|-vError|-logall|-jrs.admin.server <host:port>|-cleanup]
Options
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
-?
Prints this help message.
-p <port>
The port number to listen on.
-ap <adminport>
The port number which is used by the administration tools.
-realm <realmname>
Specifies the active realm.
-l <backlog>
The maximum queue length for incoming connections.
-m <max>
The maximum number of connection handlers.
-t <timeout>
The connection timeout in milliseconds.
-s <filename>
The servlet property file name. If this option is not used, the file servlet.properties in <install_root>
\bin will be used as the servlet property file when launching JReport Server.
-web <directory>
The root directory when accessing the server via the web, its default value is <intall_root>
\public_html.
-env
Prints the environment.
-silent
No output to the console.
-local
The administration tasks are available on local host only.
-vDebug
Enables JReport Engine to output messages to a file and sets all log files' trace levels to INFO and
error levels to WARN.
-vError
Enables JReport Engine to output messages to a file and sets all log files' trace levels to OFF and
error levels to ERROR.
-log[:file Name] (deprecated)
Outputs JReport Engine messages to the log file as specified and uses the -vDebug level.
-logall
Sets all loggers' trace level to INFO and error level to WARN.
-jrs.admin.server <host:port>
The admin server host and RMI port.
●
-cleanup
Checks integrality of the server data and cleans up the invalid data.
Notes:
●
●
You may need to set an appropriate -Dfile.encoding option in the file to start JReport Server in order
to view characters correctly.
You may also need to set an appropriate -Dresolution option in the file to start JReport Server in
order to set the system resolution in DPI.
jrenv.bat/jrenv.sh
This tool is for generating the report environment file report.env in the current directory. This file can
help the Jinfonet support staff assist you when you run into problems.
launchpad.bat
This tool is used to launch JReport Server in the standalone mode and open the JReport Server Launch
Pad page.
makewar.bat/makewar.sh
See here.
MigrationBV52.bat/MigrationBV52.sh
This tool is used to convert all the resources from JReport versions which are lower than V5.2 Build 590
to the resources of JReport Server V8. If you install the new version to the same folder as the old one,
the parameter can be omitted.
Usage
MigrationBV52 [orgReportHome]
Options
●
orgReporthome
The reporthome of the original JReport Server. If this parameter is not provided, the value of
"reporthome" of new JReport Server will be used as its value.
MigrationV52.bat/MigrationV52.sh
This tool is used to convert all the resources of which the versions are between V5.2 Build 590
(included) and V6 (not included) to the resources of JReport Server V8. If you install the new version to
the same folder as the old one, the parameter can be omitted.
Usage
MigrationV52 [orgReportHome]
Options
●
orgReporthome
The reporthome of the original JReport Server. If this parameter is not provided, the value of
"reporthome" of new JReport Server will be used as its value.
NJRServer.bat/NJRServer.sh
This tool is used to launch JReport Server without JIT option. If your server often crashes with JIT
option, try this batch file instead of JRServer.bat.
Usage
NJRServer [-?|-p <port>|-ap <adminport>|-realm <realmname>|-l backlog|-m <max>
|-t <timeout>|-s <filename>|-web <directory>|-env|-silent|
|-local|-vDebug|-vError|-logall|-jrs.admin.server <host:port>|-cleanup]
Options
●
●
●
●
●
●
●
●
●
●
●
●
-?
Prints this help message.
-p <port>
The port number to listen on.
-ap <adminport>
The port number which is used by the administration tools.
-realm <realmname>
Specifies the active realm.
-l <backlog>
The maximum queue length for incoming connections.
-m <max>
The maximum number of connection handlers.
-t <timeout>
The connection timeout in milliseconds.
-s <filename>
The servlet property file name. If this option is not used, the file servlet.properties in <install_root>
\bin will be used as the servlet property file when launching JReport Server.
-web <directory>
The root directory when accessing the server via the web, its default value is <intall_root>
\public_html.
-env
Prints the environment.
-silent
No output to the console.
-local
The administration tasks are available on local host only.
●
●
●
●
●
●
-vDebug
Enables JReport Engine to output messages to a file and sets all log files' trace levels to INFO and
error levels to WARN.
-vError
Enables JReport Engine to output messages to a file and sets all log files' trace levels to OFF and
error levels to ERROR.
-log[:file Name] (deprecated)
Outputs JReport Engine messages to the log file as specified and uses the -vDebug level.
-logall
Sets all loggers' trace level to INFO and error level to WARN.
-jrs.admin.server <host:port>
The admin server host and RMI port.
-cleanup
Checks integrality of the server data and cleans up the invalid data.
register.bat
It is invoked by browser.bat.
RMIAuthFileCreator.bat/RMIAuthFileCreator.sh
This tool is used to generate the rmi authentication file. JReport Server uses the authentication file to
secure remote objects. If no argument was provided, an authentication file named "rmi.auth" will be
created in <install_root>\bin, using the userid and install key of JReport Server.
Usage
RMIAuthFileCreator [authFileName [userid key]]
Options
●
●
●
●
?
Shows the usage message.
authFileName
The RMI authentication file name. If only input this argument, the userid and install key of JReport
Server will be used to create the authentication file.
userid
The user ID, which will be used to generate the contents of the authentication file.
key
The key which will be used to generate contents of the authentication file.
rp.bat/rp.sh
This tool is for replacing user ID and license key.
Usage
rp UID Key
rptconv.bat/rptconv.sh
This tool is for converting old report schema to be current with Version 8.
Usage
rptconv "-source=source_path" ["-target=destination_path"] [-r] [-s]
Options
●
●
●
-source
Specify the source path of the reports that are to be converted.
-target
Specify the destination path for the converted reports.
-r
Replace the source report with the converted version.
If this option is set, ["-target=destination_path"] is ignored.
If both "-r" and "-target" are not specified, the converted reports are saved in the same directory as
the source reports and named as "converted_SourceReportName".
●
-s
Convert all the reports in the specified directory, including the reports in all subdirectories.
Examples
●
To convert a single report:
rptconv "-source=C:\JReport\Server\jreports\SampleReports\InvoiceReport.cls" "–
target=C:\temp"
This will convert C:\JReport\Server\jreports\SampleReports\InvoiceReport.cls to C:\temp
\InvoiceReport.cls.
rptconv "-source=C:\JReport\Server\jreports\SampleReports\InvoiceReport.cls" "–
target=C:\temp\1.cls.xml"
This will convert C:\JReport\Server\jreports\SampleReports\InvoiceReport.cls, save the converted
report to C:\temp, and name it as "1.cls.xml" (if license allows).
rptconv "-source=C:\JReport\Server\jreports\SampleReports\InvoiceReport.cls"
This will convert C:\JReport\Server\jreports\SampleReports\InvoiceReport.cls, save the converted
report in the same directory, and name it as "converted_InvoiceReport.cls".
rptconv "-source=C:\JReport\Server\jreports\SampleReports\InvoiceReport.cls" -r
This will overwrite C:\JReport\Server\jreports\SampleReportss\InvoiceReport.cls.
●
To convert all reports (*.cls, *.rpt, *.clx, *.cls.xml) in a directory:
rptconv "-source=C:\JReport\Server\jreports" "–target=C:\temp"
This will convert all the reports in C:\JReport\Server\jreports and save the converted reports to C:
\temp. The converted reports use the same file names as source reports.
rptconv "-source=C:\JReport\Server\jreports" "–target=C:\temp" -s
This will convert all the reports in C:\JReport\Server\jreports and in the subdirectories and save the
converted reports to C:\temp. The converted reports take the same file names and directory
structure as source reports.
rptconv "-source=C:\JReport\Server\jreports" "–target=C:\temp\*.cls" -s
This will convert all the reports in C:\JReport\Server\jreports and in the subdirectories and save the
converted reports to C:\temp. The converted reports take the same directory structure as source
reports and the suffixes of their file names are all changed to ".cls".
rptconv "-source=C:\JReport\Server\jreports" -r -s
This will convert all the reports in C:\JReport\Server\jreports and in the subdirectories. The
converted reports overwrite the source reports.
rptconv "-source=C:\JReport\Server\jreports"
This will convert all the reports in C:\JReport\Server\jreports. All the converted reports are saved in
the same directory and named as "converted_SourceReportName".
●
To convert a type of reports with same suffixes in a directory:
The usage is similar to converting a directory. You can specify the wildcard to filter reports, for
example:
rptconv "-source=C:\JReport\Server\jreports\SampleReports\*.cls" "–target=C:\temp"
This will convert all the reports with the suffix ".cls" in C:\JReport\Server\jreports
\SampleReports and save the converted reports to C:\temp.
Notes:
●
●
There must be one and only one catalog file in the directory where the reports to be converted
reside.
If the reports to be converted contain UDO or UDF, make sure the corresponding classes or jars are
included in the class path of rptconv.bat/rptconv.sh.
startAdministration.bat
This tool is used to launch the JReport Administration page from the Start menu after the server is
started.
startConsole.bat
This tool is used to launch the JReport Console page from the Start menu after the server is started.
stopServer.bat
This tool is used to exit JReport Server from the Start menu.
stopServer.sh
This tool is used to exit JReport Server.
Starting using Java
The class of the standalone server is jet.server.JREntServer. You can start JReport Server with the
following command instead of using the generated batch files:
JAVA -classpath <classpath> -Djava.compiler=NONE -Dreporthome=<install_root> jet.server.
JREntServer [options]
●
●
●
●
●
●
●
-classpath
The class path must include the following packages originally in your <install_root>\lib:
JRESServlets.jar; JREntServer.jar; JREngine.jar; servlet.jar; log4j-1.2.8.jar;
-Djava.compiler=NONE
This is without JIT. This is not a required option. However, if you encounter problems running the
server and you think that they relate to the Java VM, you can try turning off the JIT compiler and
then running again.
-Djreport.url.encoding
Specifies the encoding to encode/decode escape characters in URL strings. If not specified, the
system default encoding will be used. For example: java ... -Djreport.url.encoding=8859-1...
-Dreporthome
This is where JReport Server is installed. It is the Destination Location you specified when you
installed it. This option is required. When you set the reporthome, upon launching, JReport will try to
find the jslc.dat and report.ini files in <install_root>\bin and check whether they are valid. Jslc.dat
is the License control file. Open report.ini, and you will find the configuration information, including
the temp, template and the help path. JReport will use the temp path to export the temporary files
so you should make sure that the temp folder specified in report.ini exists and has space available.
-Dfile.encoding
Specifies the encoding to encode/decode escape characters in the server data. If not specified, the
system default encoding will be used. For example: java ... -Dfile.encoding=8859-1...
-Dresolution
Sets the system resolution in DPI. If not specified, the system default resolution will be used, which
is the resolution of your monitor, for example, -Dresolution=96.
[options]
Option
Description
-?
Print brief help message.
-p port
The port that this server listens on, default is 8888.
-ap adminport
The port number that the remote administration uses, default is 8889.
-l backlog
Maximum length of queue for incoming connection indications.
-m max
Maximum number of connection handlers.
-t timeout
Connection timeout in milliseconds.
-s filename
Servlet property file name.
-realm realmname
Active realm when the server starts up.
The specified realm should exist, otherwise the server will use an existing
realm as the active realm. The server will then record a warning message in
the log file, and set the selected active realm by the server.realm.active
property in the server.properties file.
-web directory
Web application server root directory, default is <intall_root>
\public_html.
-local
Administration on local host only.
-vDebug
Enables JReport Engine to output messages to a file and sets engine log file's
trace level to INFO and error level to WARN.
-vError
Enables JReport Engine to output messages to a file and sets engine log file's
trace level to OFF and error level to ERROR.
-env
Print environment settings when the server starts up.
-silent
Outputs nothing, not even the server start information.
-log[:file Name]
(deprecated)
Outputs JReport Engine messages to the log file as specified and uses the vDebug level.
-logall
Sets all loggers' trace level to INFO and error level to WARN.
-jrs.admin.server
host:port
The admin server host and RMI port.
-cleanup
Checks integrality of the server data and cleans up the invalid data.
Notes:
●
●
For detailed information on how to configure the logging and debugging information, read the
LogConfig.properties file in <install_root>\bin.
Some of the common options will be used in later chapters. In addition, JReport has automatically
generated some batch files for you so that you do not have to write a complicated command line.
You can find these in the <install_root>\bin directory.
Sending commands to JReport Server from Java
After JReport Server has been started as a standalone server, you can send commands to the server to
either shut it down or pop up the user interactive interface for administration. All of these can be done
through the class jet.server.CommandSender. The full command is as follows:
JAVA -classpath <classpath> -Djava.compiler=NONE [-Dreporthome=<install_root>] jet.
server.CommandSender [-s:server -p:port] -w:password [-?]|admin|shutdown|gc|(local:on|
off)
●
●
●
●
●
●
●
●
●
●
●
●
-?
Prints brief help message.
-Djava.compiler=NONE
This is without JIT. This is not a required option. However, if you encounter problems running the
server and you think that they relate to the Java VM, you can try turning off the JIT compiler and
running again.
-Dreporthome
This is where JReport Server is installed. It is the destination location you specified when you
installed it. It is required only if you do not execute the command from the local host on which
JReport Server is running.
-Dpoperror=true
This property is used to control whether to pop up a message to show error information. The default
value is false which indicates that the error message will not be displayed.
-Classpath
The class path must include the following packages originally in your <install_root>\lib:
JRESServlets.jar; JREntServer.jar.
-s:server
Host name on which JReport Server is running.
-p:port
The port JReport Server used for administration. The default value is 8889.
-w:password
Password of the admin user. Example: -w:admin.
admin
A command sent to the server asking to pop up the user interactive interface for administering
JReport Server.
shutdown
A command sent to the server asking it to shut down.
local:on
A command sent to the server asking to only allow the administration commands sent by the local
machine.
local:off
A command sent to the server asking to accept administration commands from anywhere.
●
gc
A command sent to the server asking the JVM to schedule the Java Garbage Collector.
Note: Some of the common options will be used in the later chapters. In addition, JReport has
automatically generated the batch file CmdSender.bat for you so that you do not have to write a
complicated command line.
Running without a GUI
Many environments, such as mainframe machines and dedicated servers, do not support a display,
keyboard, or mouse. JReport Server supports Java headless implementation, in which case you do not
have to install a third-party tool, such as PJA, XWindows, or XVFB, in order to run JReport in a non-GUI
environment.
Using Java headless implementation
JReport Server runs fluently in headless environments. What you need to do is make some simple
configuration changes before starting JReport Server in headless environments.
To launch JReport Server in a headless environment:
1. Add -Djava.awt.headless=true as a JVM parameter before starting JReport Server.
2. Start JReport Server.
Note: If JDK 6 is used, it is not necessary to add the parameter -Djava.awt.headless manually,
because JDK 6 can automatically give a value to the parameter according to the environment the
server will run. For example, if it is headless, the true value will be given.
Using a third-party tool (deprecated)
The method of using a third-party tool is no longer needed but is still available in this release. It may
be removed in the future. The following introduces three ways to run JReport Server on Unix without
GUI.
Running with XVFB
XVFB is an acronym of the Xserver Virtual Frame Buffer. It can provide a virtual Xserver and release
you from the need of a real Xserver. It runs without a head or graphics card. XVFB is freeware and can
be obtained from x.org's X11R6 distribution. Compiling it is supposedly difficult, however, there are
some Solaris binaries on certain sites, including:
●
http://ferret.wrc.noaa.gov/Ferret/FAQ/graphics/Solaris_Xvfb.html
●
ftp.xfree86.org/pub/XFree86/3.3.6/binaries/Solaris
●
ftp.xfree86.org/pub/XFree86/4.0.1/binaries/Solaris
●
ftp.xfree86.org/pub/XFree86/4.0.1/binaries/Solaris-8
●
http://ferret.wrc.noaa.gov/Ferret/FAQ/graphics/Solaris_Xvfb.html
Take the following steps to run JReport Server with XVFB:
1. Install XVFB.
2. To have XVFB start up automatically when a workstation boots, you can add the Virtual Frame
Buffer to the Automatic Startup. That is, write a script /etc/init.d/xvfb as below, and make it
executable.
#!/bin/sh
mode=$1
case "$mode" in
'start')
# start the X Virtual Framebuffer (Xvfb)
if [ -f /usr/X11R6/bin/Xvfb ]; then
echo "***Starting up the Virtual Frame Buffer on Screen 1***"
/usr/X11R6/bin/Xvfb :1 -screen 0 1152x900x8 &
fi
;;
*)
echo " Usage: "
echo " $0 start (start XVFB)"
echo " $0 stop (stop XVFB - not supported)"
exit 1
;;
esac
exit 0
Then create a soft link to /etc/rc2.d/S98xvfb:
ln -s /etc/init.d/xvfb /etc/rc2.d/S98xvfb
If you need not to start XVFB automatically, you can manually start up XVFB:
/usr/X11R6/bin/Xvfb :1 -screen 0 1152x900x8 &
3. Set DISPLAY to screen 1 (assuming that JReport Server is running on machine jaguar).
DISPLAY=jaguar:1.0
export DISPLAY
Then, you can start JReport Server. Logging out the terminal may result in JReport Server shutting
down. To avoid this, you can first start JReport Server in the background using the command nohup:
nohup ./JRServer &. This command will continue running programs specified by you and enables
JReport Server to ignore hangup signals.
Running with PJA toolkit
When there is neither X Window, nor XVFB available, a PJA (Pure Java AWT) Toolkit is supported to run
JReport Server. This is a Java library for drawing graphics developed by eTeks. It supplies a
replacement AWT toolkit and eliminates the requirement of an X display. To use it:
1. Install PJA. The PJA package is not included in our product, go to http://www.eteks.com/pja/en/
to download PJA and install it.
2. Install JReport Server.
3. Assuming that SvrSetup.sh has been used to install JReport Server on a Non-GUI platform, modify
the file JRServer.sh in <install_root>\bin by appending /pja_2.4/lib/pjatools.jar to the
class path, and add the following options.
❍
-Xbootclasspath/a:pja.jar - (changing class path is not enough).
❍
-Dawt.toolkit=com.eteks.awt.PJAToolkit - This enables the changing of AWT Toolkit.
❍
❍
❍
❍
-Djava.awt.graphicsenv=com.eteks.java2d.PJAGraphicsEnvironment - This enables the
changing of the Graphics environment.
-Djava2d.font.usePlatformFont=false - This avoids the class sun.java2d.loops.
RasterOutputManager calling the native method getPlatformFontVar(), which can cause a JVM
crash.
-Djava.awt.fonts=path - With path equal to the directory where the Lucida *.ttf files can be
found. You can add to the path other directories containing True Type Fonts by using a
separator.
Either -Duser.home=dir with dir equal to the directory where the sub directory lib containing
PJA font.properties file can be found, or add lib/font.properties to the user.home system
property.
Below is an example of the modified file JRServer.sh that is used to start up JReport Server:
#!/bin/sh
CLASSPATH=$REPORTHOME/lib/commons-net-ftp-2.0.0.jar:
$REPORTHOME/lib/sac.jar:$REPORTHOME/lib/servlet.jar:
$REPORTHOME/lib/ant.jar:$REPORTHOME/lib/jasper-compiler.jar:
$REPORTHOME/lib/jasper-runtime.jar:$REPORTHOME/lib/JREngine.jar:
$REPORTHOME/lib/JRESServlets.jar:$REPORTHOME/lib/JREntServer.jar:
$REPORTHOME/lib/maintain.jar:$REPORTHOME/lib/mail-1.4.jar:
$REPORTHOME/lib/activation-1.1.jar:$REPORTHOME/lib/JRWebDesign.jar:
$REPORTHOME/lib/itext_1.5.4.jar:$REPORTHOME/lib/poiHSSF_151.jar:
$REPORTHOME/lib/xercesImpl.jar:$REPORTHOME/lib/xml-apis.jar:
$REPORTHOME/lib/hsqldb.jar:$REPORTHOME/lib/tar.jar:
$REPORTHOME/lib/jai_core.jar:$REPORTHOME/lib/jai_codec.jar:
$REPORTHOME/lib/commons-codec-1.2.jar:$REPORTHOME/lib/log4j-1.2.8.jar:
$REPORTHOME/lib/jsch-0.1.30.jar:$REPORTHOME/derby/lib/derby.jar:
$REPORTHOME/derby/lib/derbyclient.jar:$REPORTHOME/derby/lib/derbynet.jar:
$REPORTHOME/derby/lib/derbytools.jar:$JAVAHOME/lib/tools.jar:$ADDCLASSPATH
cd $REPORTHOME/bin
$JAVAHOME/bin/java -Dawt.toolkit=com.eteks.awt.PJAToolkit
-Djava.awt.graphicsenv=com.eteks.java2d.PJAGraphicsEnvironment
-Djava2d.font.usePlatformFont=false
-Djava.awt.fonts=/usr/j2se/jre/lib/fonts:
/JREntServer/font:/usr/openwin/lib/X11/fonts/TrueType
-Dinstall.root=$REPORTHOME/ -Djreport.url.encoding=UTF-8 -Xmx512m
-Dreporthome=$REPORTHOME jet.server.JREntServer "[email protected]"
Notes:
●
●
Printing reports is not supported.
To support multiple encoding, the file charsets.jar in jre\lib should be added to -Xbootclasspath.
Without this Jar file, only the default encoding (iso8859-1) can be applied to JReport. For the
encoding types which are supported by charsets.jar, refer to the website http://java.sun.com/
j2se/1.4.2/docs/guide/intl/encoding.doc.html.
●
If you are using other True Type Fonts instead of the fonts in X11, you should add the location of the
Lucida*.ttf files directory to -Djava.awt.fonts.
Starting from a telnet session with an X server installed
If you are using telnet to start JReport and your Unix has an X server installed, you can directly point
your display to your X server:
$ DISPLAY=hostname(or IP address):0.0
$ export DISPLAY
Then, you can run JReport Server or your application with JReport embedded.
Running as an OS service
JReport Server can be configured as an OS service. This section shows you how to run JReport Server
as a service of Windows XP, Unix and Linux.
●
Running as a Windows Service
●
Running as a service on Unix
●
Running as a service on Linux
Running as a Windows Service
A tool is provided to assist you in installing JReport Server as a Windows Service. This tool JRservice.
exe can be found in <install_root>\bin.
You will get the following information if you run JRservice.exe without any options:
Usage:
JRService -install [-interactive] to install the service
JRService -remove
to remove the service
-interactive to enable JReport Server service
to interact with the desktop
StartServiceCtrlDispatcher being called.
This may take several seconds. Please wait.
●
●
●
JRService -install
Running JRservice.exe with the -install option will install JReport Server as a Windows Service. If you
open the Services item in the Control Panel, you will find a service named JReport Server in the list.
JRService -install -interactive
If you use the -interactive option together with -install, the service installed will be run in interactive
mode. That is, when you start the service, a Command Prompt Window will pop up. However, if you
don't specify this option when you install the service, the Command Prompt Window will not be
displayed on the window when you start the service. After you have installed JReport Server as a
service, you will then be prompted to re-start your computer for the service installation to take effect.
JRService -remove
Running JRservice.exe with -remove option removes the Windows service of JReport Server from
Windows. However, before you run this, you should stop the service.
Configuring JReport Server service
The parameters for the Windows service of JReport Server are read from the file NTService.ini in
<install_root>\bin.
In this file you will find three parameters specified, as shown in the following example:
JavaVM="C:\jdk1.6.0_17\jre\bin\java.exe"
StartArg= "-Dinstall.root=C:\JReport\Server"
-classpath "C:\JReport\Server\lib\JREntServer.jar;
C:\JReport\Server\lib\JREngine.jar;C:\JReport\Server\lib\servlet.jar;C:\TEMP"...
-Djava.compiler=NONE -Dreporthome=C:\JReport\Server jet.server.JREntServer
ShutdownArg= "-Dinstall.root=C:\JReport\Server"
-classpath "C:\JReport\Server\lib\JREntServer.jar;
C:\JReport\Server\lib\JREngine.jar;C:\JReport\Server\lib\servlet.jar;C:\TEMP" ...
-Djava.compiler=NONE
-Dreporthome=C:\JReport\Server jet.server.CommandSender localshutdown
●
●
●
JavaVM
The path of the Java VM.
StartArg
The Java command line for launching JReport Server as an independent web application server. This
will be called when the service is started.
ShutdownArg
The Java command line for shutting down JReport Server. This is called when the service is stopped.
Starting the service
There are two ways to start the JReport Server service.
●
●
After the server has been installed as a service, it is by default configured to start automatically each
time. In other words, without otherwise modifying the Control Panel, the service will start
automatically each time Windows is started.
You can directly start the service through the Services item in the Control Panel. Open the Services
list, find JReport Server on the list, select it and click the Start button.
You can change the options in the file NTService.ini in <install_root>\bin before you start the
service. In the example above, there are no options specified in StartArg. If you would like to set all
error log levels to WARN and trace log levels to INFO, you will need to append -logall at the end, as in
the following example:
...
StartArg= "-Dinstall.root=C:\JReport\Server"
-classpath "C:\JReport\Server\lib\JREntServer.jar;
C:\JReport\Server\lib\JREngine.jar;C:\JReport\Server\lib\servlet.jar;
C:\JReport\Server\lib\log4j-1.2.8.jar;C:\TEMP" -Djava.compiler=NONE
-Dreporthome=C:\JReport\Server jet.server.JREntServer -logall
...
Reference: For more information on the options available, see Starting JReport Server using Java.
Stopping the service
There are three ways for you to stop the JReport Server service:
●
●
●
Open the Control Panel, go to Administrative Tools, double-click the Services item, select
JReport Server, and then click the Stop button if it is not disabled.
Run the batch file CmdSender.bat in <install_root>\bin with the localshutdown argument, for
example: <install_root>\bin\CmdSender.bat localshutdown.
Use the Shut Down the Server button
on the JReport Administration page.
Notes:
●
●
All ODBC data sources used by the JReport Server Service belong to the System DSN. System data
sources can be used by all users on a computer, and are visible to all users on the computer and
system-wide services, such as Microsoft Windows services. User data sources can only be used by
the current user and are visible only to that user. To establish JReport Server as a service, you
should choose System Data Source. That is, define the data source in the System DSN. To do this,
open Data Source (ODBC) in Control Panel, and add the data source used by JReport Server to the
System DSN panel. Also, remove any old ones from the User DSN.
When using NT service to start JReport Server, the mapped disk in path cannot be accessed due to
JVM limitation. You should use UNC path (e.g. \\127.0.0.1\public_write) instead of the mapped disk
it is mapped to (e.g. Z).
Running as a service on Unix
Assuming that JReport Server has been installed to /user/report/jns,
1. Write a script /etc/init.d/jrserver as below, and make it executable.
#!/bin/sh
mode=$1
if [ ! -d /user/report/jns ]
then # JReport not installed
exit 1
fi
case "$mode" in
'start')
if [ -d /user/report/jns ]
then
echo "Starting JReport Server"
/user/report/jns/bin/NJRServer.sh &
fi
;;
'stop')
if [ -d /user/report/jns ]
then
echo "Stopping JReport Server"
/user/report/jns/bin/CmdSender.sh localshutdown &
fi
;;
*)
echo " Usage: "
echo " $0 start (start JReport Server)"
echo " $0 stop (stop JReport Server)"
exit 1
;;
esac
exit 0
2. Create a soft link to /etc/rc2.d/S99jrserver.
ln -s /etc/init.d/jrserver /etc/rc2.d/S99jrserver
3. Create a soft link to /etc/rc0.d/K99jrserver.
ln -s /etc/init.d/jrserver /etc/rc0.d/K99jrserver
Running as a service on Linux
Running JReport Server as an OS service on Linux is more or less the same as with running on Unix.
Here it is assumed that your default start up rc is rc5.
Setting up XVFB
1. Install XVFB.
2. Write a script /etc/init.d/xvfb as below, and make it executable.
#!/bin/sh
mode=$1
case "$mode" in
'start')
echo "start xvfb "
if [ -f /usr/X11R6/bin/Xvfb ]
then
/usr/X11R6/bin/Xvfb :1 -screen 0 1152x900x8 &
fi
;;
*)
echo " Usage: "
echo " $0 start (start XVFB)"
echo " $0 stop (stop XVFB not support)"
exit 1
esac
exit 0
3. Create a soft link to /etc/rc5.d/S97xvfb.
ln -s /etc/init.d/xvfb /etc/rc5.d/S97xvfb
Using rc to run JReport Server as a service
Assuming that JReport Server has been installed to /JReport/Server.
1. Write a script /JReport/Server/bin/JRServer as shown below, and make it executable. Here it is
assumed that JReport Server is running on a machine with IP address 127.0.0.1.
#!/bin/sh
DISPLAY=127.0.0.1:1.0
export DISPLAY
/JReport/Server/bin/JRServer -silent "[email protected]"
2. Write a script /etc/init.d/jrserver as below, and make it executable.
#!/bin/sh
mode=$1
if [ ! -d /JReport/Server ]
then # JReport not installed
exit 1
fi
case "$mode" in
'start')
if [ -d /JReport/Server ]
then
echo "Starting JReport Server"
cd /JReport/Server/bin/;
JRServer -silent &
fi
;;
'stop')
if [ -d /JReport/Server ]
then
echo "Stopping JReport Server"
/JReport/Server/bin/CmdSender localshutdown &
fi
;;
*)
echo " Usage: "
echo " $0 start (start JReport Server)"
echo " $0 stop (stop JReport Server)"
exit 1
;;
esac
exit 0
3. Create a soft link to /etc/rc5.d/S98jrserver.
ln -s /etc/init.d/jrserver /etc/rc5.d/S98jrserver
4. Create a soft link to /etc/rc5.d/K98jrserver.
ln -s /etc/init.d/jrserver /etc/rc5.d/K98jrserver
If all has been carried out successfully, the installation of the service will now have finished. JReport
Server is now ready to run as a daemon process.
Running within an application server
In addition to running as a standalone server and as a service, JReport Server can also run as a servlet
inside a Java application server. Since JReport Server is implemented using servlets and JSPs, it can
work with any servlet-enabled web application server by assembling and deploying JReport Server as a
Web Application Archive (WAR) or Enterprise Application Archive (EAR).
There is a separate chapter about integration with different application servers - Integrating with a
Java Application Server. It provides a general method for creating the deployable archive and detailed
procedures for deploying the archive into some popular application servers.
Basic Concepts
This chapter gives you some basic JReport Server concepts. You can first go through this chapter to
gain a general understanding about JReport Server before you use it. Also, while you are using JReport
Server, if you do not understand any of the basic concepts, you can refer to this chapter to get help.
This chapter discusses the following JReport Server main concepts:
●
Background tasks
●
Interactive reporting
●
Scheduling
●
Resource
●
Version
●
Security
●
Integration
●
JReport Server cluster
Background tasks
JReport Server provides a background running system, which shows the status information of tasks
submitted using the Run, Advanced Run, or Background Run mode. Status information includes: report
name, report set path and name, catalog path and name, running format, time when the task is
started/completed, time elapsed since the task is performed, and the status of the task. It allows you
to view detailed information in a timely fashion.
The records saved in the background running system are cleared under the following conditions:
●
●
●
●
JReport Server is restarted.
The maximum time limit specified for the report set result life has been reached. By default it is
86400 seconds (24 hours).
The maximum time limit specified for the interval between a user logout and login has been reached.
By default it is 300 seconds.
If the number of records exceeds the number specified for the background task list (by default it is
100 records), the latest 100 records will be retained.
Interactive reporting
JReport Server provides you with interactive reporting of DHTML reports. DHTML allows you to control
objects such as images, buttons, text fields, checkboxes, radio buttons, and drop-down lists.
With interactive DHTML output, you can dynamically modify - filter, search, sort and drill - reports to
obtain unique and personal data views. The DHTML toolbar and interactive web objects can be
embedded into reports or JSPs at design time, enabling you to control, customize and navigate report
views. JReport further extends interactive reporting by empowering applications with ad hoc reporting.
You can define report criteria and layout at runtime to generate interactive ad hoc reports.
Related topics:
●
JReport Viewer - Interactive Reports
Scheduling
JReport Server provides a scheduling system which you can customize to suit your requirements. You
can submit a scheduled task from web page and URL or by calling the Server and Client API methods.
However, before you can do this, you must first specify the report set, catalog, task type and its launch
type. In addition, you can also customize notification messages to notify others of whether or not the
task is executed successfully.
User Task
In order to provide the means to run tasks defined outside of JReport on JReport Server, and to just
use JReport Server's schedule function, JReport provides a task named User Task. With this task, you
can implement a customized task with the schedule properties. Also, you can submit the user task from
a web page, or by calling JReport Server API methods.
After creating a class that implements the UserTask interface in the jet.server.api package and adding
the class to the class path, you can then submit the task either from a server web page or by calling
Server API methods. The task can then be run by the server at the scheduled times just as if it were a
report.
Trigger
The scheduling mechanism supports trigger conditions in addition to time conditions. Triggers are
managed by name in JReport Server, so each trigger must have a unique name. After creating a
trigger, you can submit a task that is bound with the trigger, and then fire the trigger to activate the
task at anytime.
Trigger conditions are based on event driven modes. The server does not care whether a customized
condition is ready. It only waits there for trigger firing events. Therefore, you determine whether the
condition is ready before firing a trigger.
Triggers can also work together with time conditions for activating a scheduled task.
Related topics:
●
Scheduling report sets
Resource
JReport Server provides a resource system for managing a group of archive versions that can be
processed or organized.
What is a resource
Generally, a resource refers to report set related material. To be exact, a resource in the JReport
Server reporting system is a conceptual node. There are different types of resources, such as catalogs,
report sets, and report set results. A resource can only hold versions of the same type.
Resource tree
All the resources are organized in a folder-tree structure. JReport Server defines an XML file called
admin.xml, and the resource tree conforms to this file. This file is maintained automatically by JReport
Server.
For example, your company has two departments - Support and Marketing. Each department has its
report sets on their own machine. There are some report set documents that are submitted by the
departments located on the machine where JReport Server runs. Now, suppose you are the
administrator, and you would like to organize these files and folders into the Resource Tree. The
following diagram may help you to figure out the framework on which you should build the resource
tree.
The resource tree consists of the following three layers:
●
●
●
Folder layer: Basic resource tree element that builds the main framework for the resource tree.
There are two built-in folders in the root of the resource tree -- Public Reports and My Reports. A
folder can be mapped to a real file path.
Resource layer: An abstract layer, based on the Folder layer that hosts various types of archive
versions and provides user access to the versions.
Archive layer: A concrete layer, where the archive versions reside for executable report sets, report
catalogs, and report set results, which function as the leaves of the resource tree.
Public Reports and My Reports
There are two built-in folders in the resource tree root - Public Reports and My Reports. You can create
your own folders in either of them. The Public Reports folder and the My Reports folder cannot be
deleted.
The Public Reports folder contains public report set documents and executable report sets, and can be
accessed by everyone. All folders except for the personal folders are public folders.
The My Reports folder is a personal folder. It contains personal report set documents and executable
report sets. Each user has one personal folder, specified by the administrator when the user account is
created. The My Reports folder can only be accessed by its owner, and the user has full control over his/
her personal folder. This folder is the default output location for report sets run by the user.
Report set
A report set is a collection of reports. All reports in one report set may share the same query, dataset,
parameters, NLS and style group properties. Generally, reports in one report set are designed for the
same purpose, or for related purposes. JReport Server supports viewing, running, scheduling and
managing of report sets.
An additional advantage of report sets is that all reports and subreports can share the same dataset
which means that only one query to the DBMS is required to run the reports and all of the subreports.
From a performance perspective, this is very important because if each subreport is a report set, then
each subreport will retrieve the data from the DBMS even though it may be identical to the main report
and other subreports.
The result version and the background run/scheduled/active/completed record are based on report set
level.
When viewing a report set directly, if DHTML is set as the default report view format, the report set
with all its reports will be run. Otherwise, only the default selected report will be run.
When using Advanced Run to run a report set, you can only select one report in the report set to run.
When using scheduling to publish a report set to the versioning system or to disk, the DHTML and
JReport Result formats are based on the report set level, that is, the report set with all selected reports
will be output to a single file. As for the other formats, each selected report will be output to a separate
file but you still have the convenience of scheduling all the reports with a single schedule entry.
Related topics:
●
Managing resources
Version
JReport Server provides a versioning system for controlling the resources contained in the resource
tree. There are three different version types to select from: report set, catalog and result versions.
To understand what the versioning system is, first you have to understand the resource mechanism in
JReport Server. A resource in the JReport reporting system is a conceptual node, which holds a group
of archive versions that can be processed or organized in JReport Server. Information of these versions
is stored in the System DB database that JReport Server uses, while version files are saved in the
directory - <reporthome>\history.
There are three main types of resource nodes in the JReport folder-tree structure - catalogs, report
sets, and report set results. The three pink nodes are shown in the diagram below:
The System DB database stores archive versions in the three types of resource nodes. Thus, JReport
Server refers to different node types to import archive versions into the resource tree for being
processed or organized by you.
What is a version
All the resources in the resource tree are controlled by versions. A version is the fundamental unit of
the resource tree, and your resources might change over time. JReport Server uses a versioning
system to create and manage resources that have changed in content and properties owing to updates
issued upon them.
All the resources in the resource tree have versions. A large portion of resource management tasks are
done by managing resource versions.
Different version types
The versions in JReport Server fall into the following three major categories:
●
●
Report Set Version
The version of a report set file.
Catalog Version
The version of a catalog file.
●
Result Version
The version of a report set result file.
The report set result can be generated and maintained in two places - the resource tree and the builtin version folder.
When you schedule a report set to publish to the versioning system, you can choose an archive
location to generate the report set result. You can generate the report set result in the built-in
version folder, the My Reports folder or the Public Reports folder in the resource tree.
The report set results generated in the resource tree are standalone results and can have their own
versions, while those generated in the built-in version folder can only be bound with their respective
report sets.
Real path of versions
If you check the property of a version, you will find its real path. Remember that version information is
stored to a database, and version files are stored in the directory <reporthome>\history. For the
report set InvoiceReport.cls, the report set version's real path is <reporthome>\history\1
\JReport_System_User894485281\InvoiceReport.cls, which is the actual report set result path on
disk and stored in the server database. That is, when you click the InvoiceReport.cls report set result
resource on the server interface, you are accessing it on the disk, only the path to it is stored in the
database. And this works the same for both the report set version and the catalog version. When
clicking the report set/catalog resource on the server interface, you are accessing a cls/cat file on disk.
Archive policy
JReport Server uses an archive policy to control the resource versions. You can control whether or not
to use multiple versions for a specific resource. Also, you can define the maximum number of versions
that can be listed in the version table.
The archive policy can be applied to a single resource individually, or to many resources in a folder as a
whole.
Related topics:
●
Managing versions
Security
JReport Server provides a security system for setting up and maintaining security on it, allowing you to
protect your resources from inappropriate access by other users.
To help you understand security in detail, the following security features with their concepts are
described below:
Realm
A realm is an abstract security concept, which hosts the resources and authentication entities on
JReport Server. There can be more than one realm on the server and each realm is independent from
others. The resources and authentication entities that reside in different realms are different.
At runtime, only one realm can be active and only the users and resources in the active realm are
accessible. A realm is identified by a unique name, which can contain any characters other than
forward slash (/) and backward slash (\).
The authentication entities consist of user accounts, group accounts and role accounts.
User
To use JReport Server, you must have a user account, which consists of a unique user name and
password. JReport Server verifies your identity when you type your user name and password and then
logs you on. If your user account has been disabled or deleted, JReport Server prevents you from
accessing the services that JReport Server provides, in order to ensure that only valid users have
access.
JReport Server comes with two built-in user accounts, which are admin and guest. The built-in user
accounts cannot be deleted. The admin user account can neither be deleted nor disabled.
Group
The principle group, which represents an organization of user accounts, is available for managing
users. Users or groups can then be added into a group as its child members, and therefore inherit the
resource and folder permissions from the group.
Role
Users must have certain user rights and permissions in order to perform tasks on resources. Roles,
which represent an aggregate of permissions, help you to efficiently assign the appropriate user rights
and permissions to users. Assigning roles to users gives them the user rights and permissions that they
require to perform their jobs with. A role can also be assigned to other groups or roles, and thus
groups or roles can inherit the permissions of other roles.
JReport Server comes with two built-in role accounts, which are administrators and everyone. The builtin role accounts cannot be deleted. The administrator role account can neither be deleted nor disabled.
Permission
Permissions, associated with resources and folders, are the rules that are granted to users to control
their access to resources and folders.
Permissions in JReport Server include:
Permission
Description
Visible
Allows or denies viewing object names in the resource tree or version table, such as
folders, resources, and archive versions.
Read
Allows or denies viewing object properties, versions, and, if it is a folder, folder
contents.
Write
Allows or denies publishing folders and resources, changing the properties (not
including permission settings) of the objects in the resource tree or version table, such
as folders, resources, and archive versions, and modifying version table settings.
Execute
Allows or denies running resources in normal and Advanced mode (report set type
resources only).
Schedule
Allows or denies submitting resources to schedules (report set type resources only).
Delete
Allows or denies deleting objects in the resource tree or version table, such as folders,
resources, and archive versions.
Grant
Allows or denies granting permissions to other users, groups or roles. Users, groups or
roles that have obtained the Grant permission are also endowed with the other seven
permissions - Visible, Read, Write, Delete, Execute, Schedule, and Update Status, and
can grant these seven permissions except the Grant permission itself.
Update
Status
Allows or denies updating report set status, and if it is a folder, the status of report sets
in the folder.
Privilege
Privilege is a mode which manages permissions. It can be used to manage different access permissions
unrelated with nodes. Privilege of JReport Server manages the following two access permissions for
users:
●
●
Publish
The privilege of publishing resources to JReport Server.
Advanced properties
The privilege of viewing advanced information of version properties such as catalog connections and
report set related resources.
Alias
JReport Server organizes files and directories into a Resource Tree. Aliases are used to provide different
"views" of the tree for different users. For example, you may set an alias resource tree (based on the
resource tree) for Tanya, so that she can only see the marketing resource node and can directly enter
into the report set folder she is interested in. An alias is a combination of users and resource nodes.
Related topics:
●
JReport Security System
●
Managing security
Integration
JReport Server can be seamlessly integrated with any other Java application server to meet the
information delivery needs of a single department or an entire enterprise. It contains a rich set of APIs
that allow for seamless integration and is implemented using Java Servlet technology and Java Server
Page (JSP). These servlets and JSP pages enable the user to work with any Java EE compliant
application server that supports a Servlet Container and administer the JReport Server remotely
through a web browser.
Related topics:
●
Integrating with a Java Application Server
JReport Server cluster
A JReport Server cluster is a distributed cluster in which a group of servers work together to provide
cluster-wide shared resources, security, schedules and version services. In a JReport Server cluster, all
clustered servers play exactly the same role and any one can exit from the cluster any time.
The JReport Server cluster provides the following major benefits:
●
●
●
Manageability: All users and resources can be controlled from a clustered server, remotely.
High-Availability: When one server fails to perform, the tasks running on it will be re-allocated to
other servers. If a server has already been fully utilized, the tasks sent to it will be allocated to the
other servers.
Scaleable: You can add or remove servers dynamically according to your needs.
There are many nodes (clustered servers) in a JReport Server cluster.Every clustered server has the
same responsibility. You can set a clustered server to perform a specific role in a JReport Server cluster
by configuring its properties.
Related topics:
●
Clustering
Accessing
You can access JReport Server in either browser/server mode (B/S) or in client/server mode (C/S). In
browser/server mode, you can use a web browser to access JReport Server. In client/server mode, you
can access JReport Server from one of our products: Client API, JReport Desktop Viewer, or the JReport
Viewer Bean. Both JReport Desktop Viewer and JReport Viewer Bean are based on the Client API.
This chapter presents to you two modes in which you can access JReport Server:
●
Accessing in browser/server mode
●
Accessing in client/server mode
●
SSL in standalone JReport Server
Accessing in browser/server mode
This section shows you how to access JReport Server through a web browser such as Internet Explorer,
Firefox, or Chrome.
Starting and logging onto JReport Server
To log onto JReport Server, first start the server via one of the following ways:
●
Double-click the JReport Server 10 shortcut on your desktop.
●
Click Start > All Programs > JReport 10 > Server > Start JReport Server.
●
Run the JRServer.bat/JRServer.sh file located in <install_root>\bin.
●
Run the startup file from a command prompt or shell. For example, assume that JReport Server has
been installed in C:\JReport\Server on Windows or /opt/JReport/Server on Linux, you can type
the following commands:
C:\>cd JReport\Server\bin
C:\JReport\Server\bin>JRServer.bat
$cd /opt/JReport/Server/bin
$./JRServer.sh
Then,
●
To access the JReport Console page:
1. Click Start > All Programs > JReport 10 > Server > JReport Server Console, or open a
web browser and set the URL to http://ip_or_hostname:port (by default, the port for
accessing the JReport Console page is 8888).
2. On the Welcome to JReport User Console page, click the Login Now button.
3. Type your user name and password as assigned by your administrator. For first time users, the
default user name and password are admin.
4. Click OK and the JReport Console page will be displayed.
●
To access the JReport Administration page:
1. Click Start > All Programs > JReport 10 > Server > JReport Server Administration, or
open a web browser and set the URL to http://ip_or_hostname:port (by default, the port for
accessing the JReport Administration page is 8889).
2. Type your user name and password as assigned by the administrator. For first time users, the
default user name and password are admin.
3. Click OK and the JReport Administration page will be displayed.
Tip: If you don't know the IP address of the machine on which the server runs, and if it is the same
machine where you run JReport Server, you can use localhost instead of the IP address. You can also
open a console window such as telnet on the server machine and type hostname, then the name of
the host will be displayed.
Fast launch pad for local users
Local users can also access JReport Server in a fast way with the launch pad, which is a convenient
entry to access the server without having to start it. The launch pad provides some key functions of
JReport Server by setting up the connections to corresponding JReport Server JSPs, which are:
●
Viewing the JReport sample reports
●
Creating new reports
●
Scheduling to run reports by time or event
●
Configuring server profiles to customize the server interface and functionality
●
Managing security principals
●
Visiting the JReport Demo Center
To access the launch pad, click Start > All Programs > JReport 10 > Server > JReport Server
Launch Pad.
Additional login channel for admin users
JReport Server provides a special channel that creates an extra user session for management purposes
if the license limit of the maximum number of concurrent users has been reached. The extra user
session cannot be used to run report sets or submit schedules. It can only be used by admin users for
performing management operations. If your JReport Server license has a bounded limit to the
maximum number of concurrent users, this feature will take effect.
Only one extra valid user session can be created and used within this special channel at any time. If an
extra user session has already been created and it is still valid, your request for login will be prompted
with a confirmation page asking you whether or not to close the existing extra user session. If you
select Yes, a new extra user session will be created for you to perform management operations.
Otherwise, you will not be allowed to log onto JReport Server.
Note: If all normal user sessions have been used up, a request from a client viewer will be denied
permission to log onto JReport Server. Only a normal user session can use a client viewer to log onto
JReport Server, not the extra user session.
Logging off and shutting down JReport Server
To log off JReport Server, click the Logout link on the upper right corner of the JReport Administration/
Console page.
To shut down JReport Server normally:
●
●
In a standalone environment, click the Shut Down the Server button
on the JReport
Administration page, or click Start > All Programs > JReport 10 > Server > Stop JReport
Server.
In an integrated environment, shut down the application server according to the vendor's
instructions.
Also, JReport provides a feature for handling an abnormal system exit that enables the program to
close itself gracefully when the Java virtual machine (JVM) is terminated in response to a user
interrupt, such as typing ^C, or a system-wide event such as user logoff or system shutdown.
Accessing in client/server mode
Besides a web browser, JReport Server supports three other viewers to browse report sets from a
client: JReport Desktop Viewer, JReport Client API and JReport Viewer Bean. Since JReport Desktop
Viewer, JReport Client API, and JReport Viewer Bean are based on the Client API, strictly speaking
there are two viewers: thin-client through a web browser and thick-client using the Client API.
Reference: For details about the usage of JReport Desktop Viewer, Client API and JReport Viewer
Bean, refer to JReport Desktop Viewer User's Guide in <viewer_install_root>\help\userguide if you
have installed it on your machine. Also, you can go to the Jinfonet website and read the online help at
http://www.jinfonet.com/kbase/viewer10/userguide/index.htm.
Accessing via JReport Desktop Viewer
JReport Desktop Viewer is a thick-client way to connect to JReport Server. It is based on the Client API
but with a Swing based GUI. Compared with a web browser, it has better compatibility with JReport
Server, and allows faster access but has more limited functionality. You can view existing report sets in
server either on a remote server or on your local disk. JReport Desktop Viewer also includes task
scheduling functionality. With this you can schedule and view report sets at any time and as often as
you want. Also, you can publish report sets to different formats. Finally, an important feature of
JReport Desktop Viewer is that it enables you to manage report sets such as adding/deleting report
sets and defining their properties. However, it does not support using the JReport Web features such as
sorting and filtering.
1. Download JReport Desktop Viewer for Windows or for Unix from Jinfonet website at http://www.
jinfonet.com/downloadjreport/additional.htm. You need to use JReport Desktop Viewer and
JReport Server of the same version (the same build number).
2. Follow the installation wizard to install JReport Desktop Viewer (by default, it is installed to C:
\JReport\Viewer).
3. Launch JReport Server using the batch file JRServer.bat in <server_install_root>\bin if it is not
already running.
4. After JReport Server is started, launch JReport Desktop Viewer using the batch JRViewer.bat
(JRViewer.sh on Unix) in <viewer_install_root>\bin.
5. In the Connect to JReport Server dialog, enter the host, port number, servlet path, user name and
password of JReport Server. The default servlet path is /jrserver. If you want to connect to
JReport Server with SSL support, check the SSL option. Then, click Connect to complete the
connection.
6. After being authenticated, you will see a resource tree in the Explorer tab of JReport Desktop
Viewer (or alias resource tree if defined), which corresponds to that of JReport Server.
JReport Desktop Viewer contains basic features such as exploring the resource tree, viewing
report sets and scheduling.
Accessing via Client API
The usual method to connect to JReport Server is through a web browser, such as Microsoft Internet
Explorer, Firefox, Google Chrome, or with JReport Desktop Viewer. However, what if you want to
integrate the client viewer into your own applications? The answer is you can. Both JReport Desktop
Viewer and JReport Viewer Bean are based on the Client API. Since the Client API and JReport Viewer
Bean share some functions, you can call methods in either of them. However, JReport Viewer Bean is
most often used in running report sets and exporting report set results to other formats or printers.
Client API has more flexibility including the scheduling feature.
When you install JReport Desktop Viewer, the archive file JREntViewer.jar for Client API is also installed
to <viewer_install_root>\lib at the same time. There are sample code files you can refer to in
<viewer_install_root>\help\samples. For details about using the Client API, refer to JReport
Desktop Viewer User's Guide in <viewer_install_root>\help\userguide.
Accessing via JReport (Client) Viewer Bean
JReport Viewer Bean is also based on Client API. JReport Viewer Bean enables you to connect with
JReport Server to run report sets, view report set results, and export report set results to other formats
(HTML, PDF, XLS, RTF, PostScript, Text, CSV, Applet), e-mail and printer.
For the usage of JReport Viewer Bean, refer to the JReport Desktop Viewer User's Guide in
<viewer_install_root>\help\userguide. You can go to http://www.jinfonet.com/downloadjreport/
additional.htm to download JReport Viewer Bean in which some demo sample code files are included.
SSL in standalone JReport Server
JReport Server supports HTTPS requests in standalone mode. Secure ports for HTTPS requests should
use different ports from non-secure ports for HTTP requests. By default, port 6888 and 6889 are set as
the secure ports separately for accessing JReport Console UI and JReport Administration UI. The URL
for visiting JReport Server via HTTPS schema is like this:
https://IP_address or localhost:6888
SSL support is disabled by default. You need to enable it and configure corresponding settings in order
to use HTTPS schema to visit JReport Server UI. This can be done either on the JReport Administration
page or in the server.properties file located in the <install_root>\bin directory.
To enable SSL function via the administration UI:
1. Log onto the JReport Administration page. The default port is 8889.
2. Click Configuration on the system toolbar, and then select Service from the drop-down menu.
3. Check the Enable Secure Socket Layer Connection option.
4. Make sure that Secure Port and Secure Administration Port use different port numbers from Port
and Administration Port.
5. Specify the other settings about Keystore.
6. Click Save.
7. Restart JReport Server in order for the settings to take effect.
To enable SSL function in the server.properties file:
1. Open the server.properties file located in the <install_root>\bin directory.
2. Set httpserver.ssl.enable to true.mi
3. Set the other properties starting with httpserver.ssl to meet your requirements.
4. Save the server.properties file.
5. Restart JReport Server in order for the settings to take effect.
Notes:
●
●
JReport does not provide a keystore file since Jinfonet is not a trusted certificate authority and just
provides a Keystore File Path option for you to configure the location of your trusted keystore file.
There are many trusted authorities that can provide keystore files. Sun is one of them. Here is an
example of creating a keystore file provided by Sun: http://docs.sun.com/app/docs/doc/819-4674/
gdwpf?l=zh_TW&a=view.
JReport Server Monitor does not support SSL.
Working with Report Sets
After successfully logging onto the JReport Console page using the user name and password assigned
by your administrator via a web browser, you can then perform tasks according to your requirements.
For example, you can view report sets in different formats, run them via URLs, schedule tasks for the
report sets and customize them by setting properties.
This chapter introduces how to view, run, customize and manage report sets in JReport Server as
follows:
●
Running report sets
●
Scheduling report sets
●
Controlling report set versions
●
Setting report set properties
●
Linking report sets and catalogs
●
Using JSPs to print report sets
●
Deleting report sets
Tip: You can customize the JReport Console > Reports page to suit your requirements by setting your
own preferences. To do this, click Tools > Preferences on the task bar of the Reports page, then
specify the settings in the Preferences dialog as required. For example, you can specify the default
viewing format when directly run a report set from this page, set which columns will be shown in the
resource information table, and predefine the properties for each export format which will be applied
when you run or schedule a report set on this page.
Running report sets
To run report sets on JReport Server:
●
●
●
If you just want to view a report set in the browser, on the JReport Console > Reports page, simply
click the name of the report set.
If you want to run the report set in a specified format and save the report set result document, you
can use the Advanced Run mode to get the required report result.
You can also input the URL of a report set directly into the address bar of the web browser to run it.
The following topics describe how to run report sets in detail:
●
Viewing report sets
●
Running report sets in Advanced mode
●
Running report sets via URL
Viewing report sets
To view a specified report set, on the JReport Console > Reports page, browse to the report set, then
do one of the following:
●
Click the name of the report set in the Name column of the Reports page.
●
Select the report set row and click Run > Run on the task bar of the Reports page.
●
Select the report set row, right-click in the row and select Run from the shortcut menu.
●
Put the mouse pointer over the report set row and click the Run button
on the floating toolbar.
Then, the last-time focused report in the report set when the report set is saved in JReport Designer
will be displayed according to its Default Format for Viewing Report property setting. If this property of
the last-time focused report in a report set is set to Server Setting, the viewing format will be
determined by the Default Format for Viewing Report option on the JReport Administration/Console
page > Profile > Customize Server Preferences > General tab. However, if the viewing format of the
last-time focused report in a report set is DHTML, no matter what viewing formats the other reports in
this report set are defined as in JReport Designer, all the reports in the report set will be opened in
DHTML format when you view this report set on JReport Server.
Running report sets in Advanced mode
Apart from simply running a report set to view it in the specified default format, JReport Server also
supports viewing a report set in other formats, and saving the report set result version according to
your requirements.
To run a report set in Advanced mode:
1. On the JReport Console > Reports page, browse to the report set you want to run in Advanced
mode.
2. Do either of the following:
❍
❍
❍
Select the report set row, then on the task bar of the Reports page, click Run > Advanced Run.
Select the report set row, right-click in the row and select Advanced Run from the shortcut
menu.
Put the mouse pointer over the report set row and click the Advanced Run button
floating toolbar.
on the
The Advanced Run dialog is then displayed.
3. In the General tab, select the report in the report set you want to run (only one report in a report
set can be run in Advanced mode at a time). If the report has parameters, specify the parameter
values as required (for details, see General tab - Parameters). Then, specify the other options as
required.
4. In the Format tab, choose a format to view the report result, and set the other settings.
5. In the Archive tab, archive the report set result version according to your requirements.
6. If you want to limit the amount of time that the report is allowed to run, in the Duration tab,
specify a time duration for the task, and ask JReport Server to cancel the task or to notify you or
someone else of the task status via e-mail if the task has not yet finished running when the task
duration is up. For detailed information, see Task-level timeout for advanced run and schedule
tasks.
7. Click Finish to view the report in the format you specified.
See also Advanced Run dialog for details about options in the dialog.
Notes:
●
●
●
If you choose to view the report result in DHTML format, besides the selected report, all the other
reports in the report set will also be run.
When you run a report in Advanced mode in HTML format, the names of page navigation links in the
report, such as First, Previous, Next, and Last, can be localized according to your requirements. For
details, refer to Localizing the page navigation links in HTML report outputs.
By default, the Duration tab is not displayed in the Advanced Run dialog. To make it available, the
Enable Task Duration option on the JReport Administration page > Configuration > Advanced panel
must be checked.
Running report sets via URL
Sometimes, you may want to reach a specific page by typing a full URL in a web browser instead of
clicking hyperlinks from the JReport Console page. This section explains to you how to run report sets
via URL in different ways.
●
Running report sets via URL with protocols or commands
●
Running report sets via URL with authentication parameters
●
Running report sets via URL using the POST method
●
Specifying parameter values using dialog when running report sets via URL
●
Example 1: Accessing report sets via URL using the switching database command at runtime
●
Example 2: Sending a large report set result by e-mail upon finishing
●
Example 3: Running a report in a report set via URL
Related topics:
●
Setting dynamic parameter values when running or scheduling a report set via API
Running report sets via URL with protocols or commands
With the commands below, you can directly type the whole URL in a web browser to access the
destination. The HTTP methods GET and POST are available for almost all of the commands.
●
jrs.get_cat_rpts_new/jrs.get_subnodes
Description: Gets all resource nodes (folder, catalog, report set and result) of a folder.
HTTP Method: GET/POST
URL Format: http://HOST:PORT/jrserver?jrs.cmd=jrs.get_cat_rpts_new&jrs.
path=RESOURCENODE
URL Example: http://localhost:8888/jrserver?jrs.cmd=jrs.get_cat_rpts_new&jrs.path=/
SampleReports
Response: Resource nodes list.
●
jrs. get_node_prop
Description: Gets the properties of a resource node.
HTTP Method: GET/POST
URL Format: http://HOST:PORT/jrserver?jrs.cmd=jrs.get_node_prop&jrs.path=RESOURCENODE
URL Example: http://localhost:8888/jrserver?jrs.cmd=jrs.get_node_prop&jrs.path=/
SampleReports/SampleReports.cat
Response: Resource node properties.
●
jrs.delete_resource
Description: Deletes the resource node from the resource tree.
HTTP Method: GET/POST
URL Format: http://HOST:PORT/jrserver?jrs.cmd=jrs.delete_resource&jrs.path=RESOURCENODE
URL Example: http://localhost:8888/jrserver?jrs.cmd=jrs.delete_resource&jrs.path=/
SampleReports/EmployeeInformation.cls
●
jrs.get_rst_vers
Description: Gets a result version list of a report set.
HTTP Method: GET/POST
URL Format: http://HOST:PORT/jrserver?jrs.cmd=jrs.get_rst_vers&jrs.catalog=CATALOG&jrs.
report=REPORT_SET
URL Example: http://localhost:8888/jrserver?jrs.cmd=jrs.get_rst_vers&jrs.catalog=/
SampleReports/SampleReports.cat&jrs.report=/SampleReports/EmployeeInformation.cls
Response: Result versions list.
●
jrs.get_rpt_vers
Description: Gets a report set version list of a report set.
HTTP Method: GET/POST
URL Format: http://HOST:PORT/jrserver?jrs.cmd=jrs.get_rpt_vers&jrs.report=REPORT_SET
URL Example: http://localhost:8888/jrserver?jrs.cmd=jrs.get_rpt_vers&jrs.report=/
SampleReports/EmployeeInformation.cls
Response: Report set version list.
●
jrs.get_cat_vers
Description: Gets a catalog versions list of a catalog.
HTTP Method: GET/POST
URL Format: http://HOST:PORT/jrserver?jrs.cmd=jrs.get_cat_vers&jrs.catalog=CATALOG
URL Example: http://localhost:8888/jrserver?jrs.cmd=jrs.get_cat_vers&jrs.catalog=/
SampleReports/SampleReports.cat
Response: Catalog versions list.
●
jrs.get_rst_doc_vers
Description: Gets a result versions list of a result document. The result document can be generated
by advanced running or scheduling a report set.
HTTP Method: GET/POST
URL Format: http://HOST:PORT/jrserver?jrs.cmd=jrs.get_rst_doc_vers&jrs.result=RESULT
URL Example: http://localhost:8888/jrserver?jrs.cmd=jrs.get_rst_doc_vers&jrs.result=/
SampleReports/EmployeeInformation
Response: Result versions list.
●
jrs.get_ver_rst_page
Description: Gets a result version of the report set from the version manager.
HTTP Method: GET/POST
URL Format: http://HOST:PORT/jrserver?jrs.cmd=jrs.get_ver_rst_page&jrs.file=FILE_NAME
URL Example: http://localhost:8888/jrserver?jrs.cmd=jrs.get_ver_rst_page&jrs.file=1%
5cJReport_System_User327406359%5cInvoiceReport.rst
Response: The result file from the version manager.
●
jrs.get_ver_rst
Description: Gets an HTML page for viewing a result version of a report set with the ViewerApplet.
HTTP Method: GET/POST
URL Format: http://HOST:PORT/jrserver/REPORT?jrs.cmd=jrs.get_ver_rst&jrs.file=FILE_NAME
URL Example: http://localhost:8888/jrserver/SampleReports/SampleReports.cat/
InvoiceReport.cls?jrs.cmd=jrs.get_ver_rst&jrs.file=1%5cJReport_System_User327406359%
5cInvoiceReport.rst
Response: HTML page for viewing the result file with the ViewerApplet.
●
jrs.get_ondemands
Description: Gets a list of report sets run in background mode.
HTTP Method: GET/POST
URL Format: http://HOST:PORT/jrserver?jrs.cmd=jrs.get_ondemands
URL Example: http://localhost:8888/jrserver?jrs.cmd=jrs.get_ondemands
Response: Background run report set list.
●
jrs.view_ver_rst
Description: Views a result version of a report set.
HTTP Method: GET/POST
URL Format: http://HOST:PORT/jrserver/REPORT?jrs.cmd=jrs.view_ver_rst&jrs.
hist_file=RESULT_VERSION_FILE_NAME&jrs.result_type=RESULT_TYPE&jrs.
applet_type=APPLET_TYPE[&jrs.isjrsapltpg=TRUE/FALSE][&jrs.is_multi_files=TRUE/FALSE]
[&jrs.is_applet_chart=TRUE/FALSE][&jrs.has_hyperlink=TRUE/FALSE][&jrs.
has_page_number=TRUE/FALSE][&jrs.use_table=TRUE/FALSE][&jrs.drilldown=TRUE/FALSE]
[&jrs.relative_font_size=TRUE/FALSE][&jrs.no_margin_html=TRUE/FALSE][&jrs.
web_browser=BROWSER_TYPE][&jrs.no_margin_pdf=TRUE/FALSE][&jrs.is_norm_txt=TRUE/FALSE]
[&jrs.delimiter=DELIMITER][&jrs.udchar_width=NUMBER][&jrs.udchar_height=NUMBER][&jrs.
no_margin_ps=TRUE/FALSE][&jrs.no_margin_rtf=TRUE/FALSE]
URL Example: http://localhost:8888/jrserver/SampleReports/SampleReports.cat/
EmployeeInformation.cls?jrs.cmd=jrs.view_ver_rst&jrs.hist_file=1%
5cJReport_System_User327406359%5cEmployeeInformation.rst&jrs.result_type=1
Notes:
❍
❍
❍
●
RESULT_TYPE:
0 - To Applet
1 - To HTML
2 - To PDF
3 - To TEXT
4 - To Excel
5 - To PostScript
6 - To Rich Text Format
7 - To XML
8 - To DHTML
APPLET_TYPE:
2 - Java Plug-In 1.2 for Windows
3 - Java Plug-In 1.3 for Windows
BROWSER_TYPE:
0 - IE or Chrome
1 - Firefox
jrs.get_rpt_desc_page
Description: Gets an HTML page for entering parameter values and choosing the result type of a
report set.
HTTP Method: GET/POST
URL Format: http://HOST:PORT/jrserver?jrs.cmd=jrs.get_rpt_desc_page&jrs.
catalog=CATALOG&jrs.report=REPORT_SET
URL Example: http://localhost:8888/jrserver?jrs.cmd=jrs.get_rpt_desc_page&jrs.
catalog=/SampleReports/SampleReports.cat&jrs.report=/SampleReports/InvoiceReport.cls
●
jrs.get_rpt_param_page
Description: Gets an HTML page for entering parameter values of a report set.
HTTP Method: GET/POST
URL Format: http://HOST:PORT/jrserver?jrs.cmd=jrs.get_rpt_param_page&jrs.
catalog=CATALOG&jrs.report=REPORT_SET
URL Example: http://localhost:8888/jrserver?jrs.cmd=jrs.get_rpt_param_page&jrs.
catalog=/SampleReports/SampleReports.cat&jrs.report=/SampleReports/InvoiceReport.cls
●
jrs.del_rpt_ver
Description: Deletes a version of a report set.
HTTP Method: GET/POST
URL Format: http://HOST:PORT/jrserver/REPORT?jrs.cmd=jrs.del_rpt_ver&jrs.
version_id=VERSION_ID
URL Example: http://localhost:8888/jrserver/SampleReports/SampleReports.cat/
InvoiceReport.cls?jrs.cmd=jrs.del_rpt_ver&jrs.version_id=103
●
jrs.del_rst_ver
Description: Deletes a result version of a report set.
HTTP Method: GET/POST
URL Format: http://HOST:PORT/jrserver/REPORT?jrs.cmd=jrs.del_rst_ver&jrs.
version_id=VERSION_ID
URL Example: http://localhost:8888/jrserver/SampleReports/SampleReports.cat/
InvoiceReport.cls?jrs.cmd=jrs.del_rst_ver&jrs.version_id=106
●
jrs.del_rstdoc_ver
Description: Deletes a version of a result document.
HTTP Method: GET/POST
URL Format: http://HOST:PORT/jrserver?jrs.result=RESULT&jrs.cmd=jrs.del_rstdoc_ver&jrs.
version_id=VERSION_ID
URL Example: http://localhost:8888/jrserver?jrs.result=/SampleReports/
InvoiceReport&jrs.cmd=jrs.del_rstdoc_ver&jrs.version_id=108
●
jrs.get_ver_param
Description: Gets the parameter file of a report set's result version.
HTTP Method: GET/POST
URL Format: http://HOST:PORT/jrserver/REPORT?jrs.cmd=jrs.get_ver_param&jrs.
version_id=VERSION_ID
URL Example: http://localhost:8888/jrserver/SampleReports/SampleReports.cat/
InvoiceReport.cls?jrs.cmd=jrs.get_ver_param&jrs.version_id=103
●
jrs.web_vw
Description: Runs a report set and views its result in a web browser.
HTTP Method: GET/POST
URL Format: http://HOST:PORT/jrserver/REPORT?jrs.cmd=jrs.web_vw&jrs.
result_type=RESULT_TYPE&jrs.applet_type=APPLET_TYPE[_isMultiple_jrs.param
$NAME=true&jrs.param$NAME=VALUE&jrs.param$NAME=VALUE...][&jrs.isjrsapltpg=TRUE/FALSE]
[&jrs.is_multi_files=TRUE/FALSE][&jrs.is_applet_chart=TRUE/FALSE][&jrs.
has_hyperlink=TRUE/FALSE][&jrs.has_page_number=TRUE/FALSE][&jrs.use_table=TRUE/FALSE]
[&jrs.drilldown=TRUE/FALSE][&jrs.relative_font_size=TRUE/FALSE][&jrs.
no_margin_html=TRUE/FALSE][&jrs.web_browser=BROWSER_TYPE][&jrs.no_margin_pdf=TRUE/
FALSE][&jrs.is_norm_txt=TRUE/FALSE][&jrs.delimiter=DELIMITER][&jrs.
udchar_width=NUMBER][&jrs.udchar_height=NUMBER][&jrs.no_margin_ps=TRUE/FALSE][&jrs.
no_margin_rtf=TRUE/FALSE][&jrs.use_def_db_user=TRUE/FALSE][&jrs.db_user=DB_USER][&jrs.
db_pswd=DB_PASSWORD][&jrs.jdbc_url=JDBC_URL][&jrs.jdbc_driver=JDBC_DRIVER][&jrs.
rpt_language=RPT_LANGUAGE][&jrs.rpt_encoding=RPT_ENCODING][&jrs.wp=DBField='value']
[&jrs.named_wp=ExistedWhereportion][&jrs.report_sheet$RPT_NAME=true]
URL Example: http://localhost:8888/jrserver/SampleReports/SampleReports.cat/
InvoiceReport.cls?jrs.cmd=jrs.web_vw&jrs.result_type=1&jrs.param
$Country=Australia&jrs.param$State=New South Wales&jrs.param$City=Sydney&jrs.
is_multi_files=true&jrs.is_applet_chart=true&jrs.use_def_db_user=false&jrs.
db_user=dba&jrs.db_pswd=123456&jrs.rpt_language=en
Notes:
❍
RESULT_TYPE:
0 - To Applet
1 - To HTML
2
3
4
5
6
7
8
❍
❍
❍
-
To
To
To
To
To
To
To
PDF
TEXT
Excel
PostScript
Rich Text Format
XML
DHTML
APPLET_TYPE:
2 - Java Plug-In 1.2 for Windows
3 - Java Plug-In 1.3 for Windows
BROWSER_TYPE:
0 - IE or Chrome
1 - Firefox
Use jrs.param$NAME=VALUE to set parameter values of the report set. Where, NAME is the
parameter name and VALUE is the URL-encoded parameter value. For Example: jrs.param
$TERMSDAYS=30&jrs.param$PTODAY=May 21, 1998.
While, when specifying values for a multi-value parameter, you need to add _isMultiple_jrs.
param$NAME=true before the parameter values to declear that the parameter supports
multiple values. For example: &_isMultiple_jrs.param$PM=true&jrs.param$PM=3&jrs.
param$PM=16.
❍
If you want to run a specific report, use jrs.report_sheet$RPT_NAME=true to specify a report
in the current report set, where RPT_NAME is the report name of the specific report, not the
display name. For example, jrs.report_sheet$Report2=true.
To get the report name and display name of a report, you can make use of the API methods
getName() and getDisplayName() in the interface jet.server.api.ReportSheetInfo. For the
detailed usages, see JReport Server Javadoc located in <install_root>\help\server\en
\api.
❍
❍
●
If you want to define a new WHERE portion from the URL, you can choose the property jrs.wp.
For example, the report set has a DBField Customer Region, and you want to restrict the field
Customer Region to CA in the URL. You can then set a new WHERE portion such as, "...jrs.
result_type=1&jrs.is_applet_chart=true&jrs.wp=Customers.Region='CA'...".
If you want to set an existing WHERE portion in the URL, you should use the property jrs.
named_wp. For example, to set the existed WHERE portion Region from URL, use "...jrs.
result_type=1&jrs.is_applet_chart=true&jrs.named_wp=Region...". Here Region is the
WHERE portion's name.
jrs.try_vw
Description: Tries to view a report set in a web browser.
HTTP Method: GET/POST
URL Format: http://HOST:PORT/jrserver/REPORT?jrs.cmd=jrs.try_vw&jrs.
result_type=RESULT_TYPE&jrs.applet_type=APPLET_TYPE[&jrs.isjrsapltpg=TRUE/FALSE][&jrs.
is_multi_files=TRUE/FALSE][&jrs.is_applet_chart=TRUE/FALSE][&jrs.has_hyperlink=TRUE/
FALSE][&jrs.has_page_number=TRUE/FALSE][&jrs.use_table=TRUE/FALSE][&jrs.
drilldown=TRUE/FALSE][&jrs.relative_font_size=TRUE/FALSE][&jrs.no_margin_html=TRUE/
FALSE][&jrs.web_browser=BROWSER_TYPE][&jrs.no_margin_pdf=TRUE/FALSE][&jrs.
is_norm_txt=TRUE/FALSE][&jrs.delimiter=DELIMITER][&jrs.udchar_width=NUMBER][&jrs.
udchar_height=NUMBER][&jrs.no_margin_ps=TRUE/FALSE][&jrs.no_margin_rtf=TRUE/FALSE]
[&jrs.use_def_db_user=TRUE/FALSE][&jrs.db_user=DB_USER][&jrs.db_pswd=DB_PASSWORD]
[&jrs.jdbc_url=JDBC_URL][&jrs.jdbc_driver=JDBC_DRIVER][&jrs.rpt_language=RPT_LANGUAGE]
[&jrs.rpt_encoding=RPT_ENCODING][&jrs.wp=DBField='value'][&jrs.
named_wp=ExistedWhereportion][&jrs.report_sheet$RPT_NAME=true]
URL Example: http://localhost:8888/jrserver/SampleReports/SampleReports.cat/
EmployeeInformation.cls?jrs.cmd=jrs.try_vw&jrs.result_type=1
Notes:
❍
❍
❍
●
RESULT_TYPE:
0 - To Applet
1 - To HTML
2 - To PDF
3 - To TEXT
4 - To Excel
5 - To PostScript
6 - To Rich Text Format
7 - To XML
8 - To DHTML
APPLET_TYPE:
2 - Java Plug-In 1.2 for Windows
3 - Java Plug-In 1.3 for Windows
BROWSER_TYPE:
0 - IE or Chrome
1 - Firefox
jrs.get_schedules
Description: Gets the schedules list.
HTTP Method: GET/POST
URL Format: http://HOST:PORT/jrserver?jrs.cmd=jrs.get_schedules
URL Example: http://localhost:8888/jrserver?jrs.cmd=jrs.get_schedules
●
jrs.del_schedule
Description: Deletes a schedule.
HTTP Method: GET/POST
URL Format: http://HOST:PORT/jrserver?jrs.cmd=jrs.del_schedule&jrs.task_id=TASK_ID
URL Example: http://localhost:8888/jrserver?jrs.cmd=jrs.del_schedule&jrs.task_id=200312-11 11:09:16.455
●
jrs.enable_schedule
Description: Enables a schedule.
HTTP Method: GET/POST
URL Format: http://HOST:PORT/jrserver?jrs.cmd=jrs.enable_schedule&jrs.task_id=TASK_ID
URL Example: http://localhost:8888/jrserver?jrs.cmd=jrs.enable_schedule&jrs.
task_id=2003-12-11 11:09:16.455
●
jrs.disable_schedule
Description: Disables a schedule.
HTTP Method: GET/POST
URL Format: http://HOST:PORT/jrserver?jrs.cmd=jrs.disable_schedule&jrs.task_id=TASK_ID
URL Example: http://localhost:8888/jrserver?jrs.cmd=jrs.disable_schedule&jrs.
task_id=2003-12-11 11:09:16.455
●
jrs.get_new_schd_page
Description: Gets an HTML page in order to create a new schedule for the report set with a web
browser.
HTTP Method: GET/POST
URL Format: http://HOST:PORT/jrserver?jrs.cmd=jrs.get_new_schd_page&jrs.
catalog=CATALOG&jrs.report=REPORT_SET
URL Example: http://localhost:8888/jrserver?jrs.cmd=jrs.get_new_schd_page&jrs.
catalog=/SampleReports/SampleReports.cat&jrs.report=/SampleReports/
EmployeeInformation.cls
●
jrs.get_edit_schd_page
Description: Gets an HTML page to edit the schedule with a web browser.
HTTP Method: GET/POST
URL Format: http://HOST:PORT/jrserver?jrs.cmd=jrs.get_edit_schd_page&jrs.
task_id=TASK_ID
URL Example: http://localhost:8888/jrserver?jrs.cmd=jrs.get_edit_schd_page&jrs.
task_id=2003-12-11 11:13:23.02
●
jrs.get_completed
Description: Gets the completed tasks list.
HTTP Method: GET/POST
URL Format: http://HOST:PORT/jrserver?jrs.cmd=jrs.get_completed
URL Example: http://localhost:8888/jrserver?jrs.cmd=jrs.get_completed
●
jrs.del_completed
Description: Deletes a completed task.
HTTP Method: GET/POST
URL Format: http://HOST:PORT/jrserver?jrs.cmd=jrs.del_completed&jrs.id=RECORD_ID
URL Example: http://localhost:8888/jrserver?jrs.cmd=jrs.del_completed&jrs.
id=1071119897006-154848108
●
jrs.del_all_completed
Description: Deletes all completed tasks.
HTTP Method: GET/POST
URL Format: http://HOST:PORT/jrserver?jrs.cmd=jrs.del_all_completed
URL Example: http://localhost:8888/jrserver?jrs.cmd=jrs.del_all_completed
●
jrs.get_active
Description: Gets the active tasks list.
HTTP Method: GET/POST
URL Format: http://HOST:PORT/jrserver?jrs.cmd=jrs.get_active
URL Example: http://localhost:8888/jrserver?jrs.cmd=jrs.get_active
●
jrs.stop_task
Description: Stops an active task.
HTTP Method: GET/POST
URL Format: http://HOST:PORT/jrserver?jrs.cmd=jrs.stop_task&jrs.task_id=TASK_ID
URL Example: http://localhost:8888/jrserver?jrs.cmd=jrs.stop_task&jrs.task_id= 200312-11 11:13:23.02
●
jrs.get_change_password_page
Description: Gets an HTML page in order to change the password with a web browser.
HTTP Method: GET/POST
URL Format: http://HOST:PORT/jrserver?jrs.cmd=jrs.get_change_password_page
URL Example: http://localhost:8888/jrserver?jrs.cmd=jrs.get_change_password_page
●
jrs.change_password
Description: Changes the password for a user.
HTTP Method: POST
Form Action: http://HOST:PORT/jrserver?jrs.cmd=jrs.change_password
Content Type: application/x-www-form-urlencoded
Content: jrs.cmd=jrs.change_password&jrs.uid=admin&jrs.password=CURRENT_PASSWORD&jrs.
new_password=NEW_PASSWORD&jrs.confirm_new_password=NEW_PASSWORD
Content Example: jrs.cmd=jrs.change_password&jrs.uid=admin&jrs.password=ad&jrs.
new_password=1234&jrs.confirm_new_password=1234
●
jrs.get_preference_page
Description: Gets an HTML page in order to change the user preference settings with a web browser.
HTTP Method: GET/POST
URL Format: http://HOST:PORT/jrserver?jrs.cmd=jrs.get_preference_page
URL Example: http://localhost:8888/jrserver?jrs.cmd=jrs.get_preference_page
●
jrs.logout
Description: Logs out from the JRServlet.
HTTP Method: GET/POST
URL Format: http://HOST:PORT/jrserver?jrs.cmd=jrs.logout
URL Example: http://localhost:8888/jrserver?jrs.cmd=jrs.logout
●
jrs.login
Description: Logs into the JRServlet from a login dialog with web browsers or the JRViewer.
HTTP Method: GET/POST
URL Format: http://HOST:PORT/jrserver?jrs.cmd=jrs.login
URL Example: http://localhost:8888/jrserver?jrs.cmd=jrs.login
Tip: When running report sets to the PDF format via URL, you can encrypt the PDF results by using the
encrypting PDF properties.
Running report sets via URL with authentication parameters
Sometimes you are required to give your user name and password before you can run report sets.
Under this circumstance, if you want to avoid the login dialog in the web browser, use either of the
following two parameters:
●
jrs.authorization
Tag of the HTTP query field jrs.authorization.
Description: Loads the JRServlet and avoids the login dialog in web browsers.
Format of the value of the HTTP query field: Base64-encoded (userID:password).
Example:
If the user ID and password are both set as admin, then the value of the HTTP query field is Base64encoded("admin:admin")="YWRtaW46YWRtaW4=", and the URL will be as follows:
http://localhost:8888/jrserver?jrs.cmd=jrs.get_subnodes&jrs.
authorization=YWRtaW46YWRtaW4%3D.
Note: The JRServlet does not check security when an HTTP request has no jrs.cmd in the HTTP
query in the root path of the JRServlet, and also does not accept the jrs.authorization for the
request http://localhost:8888/jrserver?jrs.authorization=YWRtaW46YWRtaW4%3D.
●
jrs.auth_uid and jrs.auth_pwd
Tags of HTTP query field: jrs.auth_uid and jrs.auth_pwd.
Description: Loads the JRServlet and avoids the login dialog in web browsers.
Format of the value of the HTTP query field: jrs.auth_uid=USER_ID, jrs.auth_pwd=PASSWORD.
Example:
If the user ID and password are both set as admin, the URL will be as follows:
http://localhost:8888/jrserver?jrs.path=/SampleReports&jrs.cmd=jrs.get_subnodes&jrs.
auth_uid=admin&jrs.auth_pwd=admin
Note: The JRServlet does not check security when an HTTP request has no jrs.cmd in the HTTP
query in the root path of the JRServlet, and also does not accept the jrs.auth_uid and jrs.
auth_pwd for the request http://localhost:8888/jrserver?jrs.auth_uid=admin&jrs.
auth_pwd=admin.
Running report sets via URL using the POST method
●
In HTML pages
Specify the POST as the method of a form in an HTML page.
●
Using JRClient API or JRViewer Bean
Three methods: usePostAsDefaultMethod(), useGetAsDefaultMethod() and ifUsePostAsDefaultMethod
() can be used in the class jet.client.api.JRClient.
●
In Java program
For example:
URL url = new URL("http://jrserver:8888");
URLConnection uc = url.getConnection();
if (uc instanceof HttpURLConnection) {
HttpURLConnection huc = (HttpURLConnection)uc;
//set use POST method.
huc.setRequestMethod("POST");
huc.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
huc.setDoOutput(true);
//write the HTTP query to the output stream.
OutputStreamWriter writer = new OutputStreamWriter(huc.getOutputStream());
writer.write("jrs.cmd=jrs.get_subnodes");
writer.close();
huc.getHeaderField(0);
//get the response content from the server.
InputStream inStream = uc.getInputStream();
if (inStream != null) {
BufferedReader reader = new BufferedReader(new InputStreamReader(inStream));
String inputLine;
while (null != (inputLine = reader.readLine())) {
System.out.println(inputLine);
}
}
}
Specifying parameter values using dialog when running report sets via URL
When running a report set with parameters via URL, you need to manually enter the parameter values
in the URL string without any mistakes. You may find this painful sometimes because it's not easy to
remember all parameters in a report set. However, JReport provides you with the special JSP tryView.
jsp, which enables to display the Enter Parameter Values dialog to manage parameters.
The display of the parameter dialog requires:
●
The reports have parameters.
●
The URL calls tryView.jsp.
●
No parameter specified in the URL or the parameters provided in the URL fail to include all necessary
parameters.
With the above three conditions fulfilled, the Enter Parameter Values dialog will be displayed right after
you finish the URL in the address bar and make it run. After setting the values and clicking OK in the
dialog, JReport Server will append the values to the URL string for you and execute the URL. However,
if you click Cancel in the dialog, the URL running will be cancelled.
Tip: If you want to specify parameters via dialog when running reports via URL, the most effective way
to display the parameter dialog is that you do not specify parameters at all in the URL.
Example 1: Accessing report sets via URL using the switching database command at
runtime
To access report sets via URL, you can switch the connection in the same database or between
different databases at runtime with the commands listed in the section Running report sets via URLs
with protocols or commands. As a result, if the databases you want to switch between have the same
structure, you will then be free from having to build another similar catalog. You can use the switch
database commands to set the JDBC connection or to change the user name/password in order to
connect to another database.
Switching the connection and user/password in the same database
1. Set the Oracle database named oracle815 connection when designing the report set Report1.cls,
and later switch the connection to the Oracle database named demo at runtime.
The URL for switching the connection:
http://localhost:8888/jrserver/SampleReports/SampleReports.cat/Report1.cls?jrs.
cmd=jrs.try_vw&jrs.result_type=1&jrs.jdbc_url=jdbc:oracle:thin:@host:1521:demo
2. Specify the user ID system/manager to ensure security when designing the report set Report1.cls,
and then switch to the user ID Scott and the password tiger.
The URL for switching the user ID and password:
http://localhost:8888/jrserver/SampleReports/SampleReports.cat/Report1.cls?jrs.
cmd=jrs.try_vw&jrs.result_type=1&jrs.db_user=Scott&jrs.db_pswd=tiger
3. Set the Sybase 12 database named master when designing the report set Report1.cls, and later
switch the connection to the Sybase 12 database named product at runtime.
The URL for switching the connection:
http://localhost:8888/jrserver/SampleReports/SampleReports.cat/Report1.cls?jrs.
cmd=jrs.try_vw&jrs.result_type=1&jrs.jdbc_url=jdbc:sybase:Tds:host:5000/product
4. Set the SQL database named MBA2000 when designing the report set Report1.cls, and later
switch the connection to the SQL database named JTTest at runtime.
The URL for switching the connection:
http://localhost:8888/jrserver/SampleReports/SampleReports.cat/Report1.cls?jrs.
cmd=jrs.try_vw&jrs.result_type=1&jrs.jdbc_url=jdbc:inetdae:host:1433?
database=JTTest&sql7=true
Switching the connection between different databases
1. Set oracle815 connection when designing the report set Report1.cls, and then switch the
connection to Access database with the JDBC-ODBC driver named products at runtime.
The URL for switching the connection:
http://localhost:8888/jrserver/SampleReports/SampleReports.cat/Report1.cls?jrs.
cmd=jrs.try_vw&jrs.result_type=1&jrs.jdbc_driver=sun.jdbc.odbc.JdbcOdbcDriver&jrs.
jdbc_url=jdbc:odbc:products
2. Set oracle815 connection when designing the report set Report1.cls, and then switch the
connection to SQL server database named products at runtime.
The URL for switching the connection:
http://localhost:8888/jrserver/SampleReports/SampleReports.cat/Report1.cls?jrs.
cmd=jrs.try_vw&jrs.result_type=1&jrs.jdbc_driver=com.inet.tds.TdsDriver&jrs.
jdbc_url=jdbc:inetdae:JT_P05:1433?database=products&sql7=true
Example 2: Sending a large report set result by e-mail upon finishing
Here two ways are provided to publish a large report set result via URL: JSP and servlet. Take the
following examples to publish a large report set result by e-mail and to customize the message
displayed in the web browser.
JSP parameter specification
●
jrs.catalog=%2fcatalog path%2fcatalog name
jrs.report=%2freport set path%2freport set name
jrs.timeout_send_email=true/[false]
jrs.report_timeout=number (if timeout >number and jrs.timeout_send_email=true, send mail)
jrs.mailto=mail address
jrs.mailsubject=mail subject
jrs.result_type=1 (HTML) or 2(PDF) or 3(Text) or 4(Excel) or 5(PostScript) or 6(Rich Text) or 7(XML)
jrs.mailcomments=mail content
jrs.mailfrom=mail address of sender
jrs.timeout_sendmail_message=the message which you customize
There are two server JSPs for running a report set:
❍
❍
tryView.jsp
This is the normal method of accessing report sets using URLs. If the report set has parameters
and the parameters provided in the URL fail to include all necessary parameters, the Enter
Parameter Values dialog will be shown for you to specify parameters, otherwise it will directly go to
runReport.jsp. For more, see Specifying parameter values using dialog when running report sets
via URL.
runReport.jsp
The runReport.jsp functions the same as tryView.jsp when the report set has no parameter. When
it has parameters, the report set runs with the default parameters if no parameter is specified, or
else it runs with the parameters specified in the URL.
When you use tryView.jsp to run a report set without a parameter:
http://localhost:8888/jinfonet/tryView.jsp?jrs.cmd=jrs.try_vw&jrs.catalog=%
2fSampleReports%2fSampleReports.cat&jrs.report=%2fSampleReports%2fEmployeeInformation.
cls&jrs.timeout_send_email=true&jrs.report_timeout=5&[email protected]
com&jrs.mailsubject=TaskForTimeoutSendEmail&jrs.result_type=1&jrs.
mailcomments=IFTHEREPORTISFINISHEDTHERESULTWILLBESENT&[email protected]
When you use runReport.jsp to run a report set with parameters:
http://localhost:8888/jinfonet/runReport.jsp?jrs.cmd=jrs.web_vw&jrs.catalog=%
2fSampleReports%2fSampleReports.cat&jrs.report=%2fSampleReports%2fCustomerAnalysis.
cls&jrs.param$P_StartDate=01/01/2006&jrs.param$p_EndDate=12/31/2007&jrs.
timeout_send_email=true&jrs.report_timeout=1&[email protected]&jrs.
mailsubject=AboutTaskForTimeout&jrs.result_type=1
●
Servlet parameter specification
jrs.cmd=jrs.try_vw (when the report set has no parameter)
jrs.cmd=jrs.web_vw (when the report set has parameter)
jrs.timeout_send_email=true/[false]
jrs.report_timeout=number (if timeout >number and jrs.timeout_send_email=true, send mail)
jrs.mailto=mail address
jrs.mailsubject=mail subject
jrs.result_type=1 (HTML) or 2(PDF) or 3(Text) or 4(Excel) or 5(PostScript) or 6(Rich Text) or 7(XML)
jrs.mailcomments=mail content
jrs.mailfrom=mail address of the sender
jrs.timeout_sendmail_message=the message that you can customize
When you use a servlet to run a report set without a parameter:
http://localhost:8888/jrserver/SampleReports/SampleReports.cat/EmployeeInformation.
cls?jrs.cmd=jrs.try_vw&jrs.timeout_send_email=true&jrs.report_timeout=1&jrs.
[email protected]&jrs.mailsubject=AboutTaskForTimeoutSendEmail&jrs.
result_type=1&jrs.mailcomments=COUNTRECORDSPERPAGE
When you use a servlet to run a report set with a parameter:
http://localhost:8888/jrserver/SampleReports/SampleReports.cat/CustomerAnalysis.cls?
jrs.cmd=jrs.web_vw&jrs.param$P_StartDate=01/01/2006&jrs.param
$p_EndDate=12/31/2007&jrs.timeout_send_email=true&jrs.report_timeout=1&jrs.
[email protected]&jrs.mailsubject=TaskForTimeoutEmail&jrs.result_type=1&jrs.
mailcomments=CUSTOMERORDER
●
Customize your message to be displayed in the web browser
You can set a message by setting the parameter jrs.timeout_sendmail_message.
For example, you want to display message as below:
Running <report name> takes more than <Timeout> seconds.
The subject is <mail subject> and has been sent to <mailto> from <mailfrom>
It is a file whose type is <type>.
Then you can set the parameter in URL:
jrs.timeout_sendmail_message=Running {6} takes more than {0} seconds.<p>The subject is {2}
and has been sent to {1} from {5}.<p>It is a file whose type is {3}.
Where
{0} - The report set timeout
{1} - mail to
{2} - mail subject
{3} - result type
{4} - mail comment
{5} - mail from
{6} - Catalog name/report set
<p> - an Enter key
Example
http://localhost:8888/jrserver/SampleReports/SampleReports.cat/CustomerAnalysis.cls?
jrs.cmd=jrs.web_vw&jrs.param$P_StartDate=01/01/2006&jrs.param
$p_EndDate=12/31/2007&jrs.timeout_send_email=true&jrs.report_timeout=1&jrs.
[email protected]&jrs.mailsubject=AboutTaskForTimeoutSendEmail&jrs.
result_type=1&jrs.mailcomments=CustomerAnalysis&[email protected]&jrs.
timeout_sendmail_message=...
This {6} is a large report set whose runtime is over {0} seconds.<p>The report is sent to {1} from
{5}.<p>The subject of the mail is {2}.<p>Its type is {3}.
Note: You should type the sign " ' " twice if you use it in the message.
Example 3: Running a report in a report set via URL
You can use the following command to specify a specific report in the current report set:
jrs.report_sheet$RPT_NAME=true
Where, RPT_NAME is the report name of the specific report, not the display name.
To get the report name and display name of a report, you can make use of the API methods getName()
and getDisplayName() in the interface jet.server.api.ReportSheetInfo. For the detailed usages, see
JReport Server Javadoc located in <install_root>\help\server\en\api.
The URL for running a report Applet within the report set MultimediaObjects.cls is as below:
http://localhost:8888/jinfonet/tryView.jsp?jrs.cmd=jrs.try_vw&jrs.catalog=%
2fSampleReports%2fSampleReports.cat&jrs.report=%2fSampleReports%2fMultimediaObjects.
cls&jrs.result_type=8&jrs.report_sheet$Report1=true
Or
http://localhost:8888/jrserver/SampleReports/SampleReports.cat/MultimediaObjects.cls?
jrs.cmd=jrs.try_vw&jrs.result_type=8&jrs.report_sheet$Report1=true
Scheduling report sets
JReport Server can run report sets at a specified time or periodically by scheduling tasks for report
sets. The scheduled tasks will be recorded by the server according to their different executing status.
Pick a topic from the following for details about how to schedule tasks in JReport Server:
●
Scheduling report sets with dialog
●
Scheduling report sets via URL
●
Scheduling a task containing a bursting report
●
Scheduling a customized task using User Task
●
Recording scheduled tasks
●
Viewing scheduled report set results
●
Importing and exporting scheduled tasks
●
Adding TaskListener
Notes:
●
●
When you schedule to publish the report in a report set to DHTML format, if the report is linked to
another report, in the DHTML result, the link will no longer be supported, and if you schedule to
publish the report to several formats and DHTML format is included at the same time, the link will not
be available in the other format outputs either.
When you schedule to publish the report in a report set to HTML format, the names of page
navigation links in reports in the report set, such as First, Previous, Next, and Last, can be localized
according to your requirements. For details, refer to Localizing the page navigation links in HTML
report outputs.
Scheduling report sets with dialog
You can schedule tasks for a specified report set with dialog as follows:
1. On the JReport Console > Reports page, browse to the report set you want to schedule to run.
2. Do either of the following:
❍
Select the report set row, then on the task bar of the Reports page, click Run > Schedule.
❍
Select the report set row, right-click in the row and select Schedule from the shortcut menu.
❍
Put the mouse pointer over the report set row and click the Schedule button
toolbar.
on the floating
The Schedule dialog is then displayed.
3. In the General tab, select the reports you want to run from the report set. You can choose
multiple normal reports or one bursting report at a time (for scheduling a bursting report, see
Scheduling a task containing a bursting report). If the selected reports have parameters, specify
the parameter values as required (for details, see General tab - Parameters). Then, specify the
other options as required.
4. In the Publish tab, specify the type of the task.
Six task types are provided by JReport Server: publishing to version, publishing to disk, publishing
to e-mail, publishing to printer, publishing to fax and publishing to FTP. Choose the type you want
to publish, and then set the settings for the specified type.
5. In the Conditions tab, specify the time for when the task is to be performed in the Time sub tab,
and select or create a trigger to bind with the task in the Trigger sub tab.
6. In the Notification tab, specify to notify someone via e-mail of when the task is finished and
whether it is successful or unsuccessful.
7. In the Duration tab, specify a time duration for the task, and ask JReport Server to cancel the task
or to notify you or someone else of the task status via e-mail if the task has not yet finished
running when the task duration is up. For detailed information, see Task-level timeout for
advanced run and schedule tasks.
Note: By default, the Duration tab is not displayed in the Schedule dialog. To make it
available, the Enable Task Duration option on the JReport Administration page >
Configuration > Advanced panel must be checked.
8. Click Finish, and JReport Server will then perform the task.
See also Schedule dialog for details about the task types and settings in each tab.
The following are some specific scheduling examples:
●
Example 1: Publishing a report set to the versioning system
●
Example 2: Publishing a report set to the file system
●
Example 3: Publishing a report set to e-mail
●
Example 4: Publishing a report set to printer
●
Example 5: Publishing a report set to fax
●
Example 6: Publishing a report set to an FTP site
Example 1: Publishing a report set to the versioning system
In this example, a task is set up and will be performed immediately. The generated result is asked to
be kept for 30 days.
1. On the JReport Console > Reports page, select the report set row, right-click in the row and select
Schedule from the shortcut menu to display the Schedule dialog.
2. In the General tab,
a. Specify a name for the task in the Schedule Name text box.
b. Assign a priority to the task from the Priority drop-down list.
c. In the Enter Parameters panel, select the reports you want to run from the report set.
d. If the selected reports have parameters, specify the parameter values as required.
e. Expand the Report Set Info panel, click Select Another Catalog to specify another catalog
for the report set if required.
f. Select the report set version and catalog version from the corresponding drop-down lists.
g. Expand the Advanced panel, if the report set has a style group, check the Enable Style
Group checkbox and choose the style group.
h. Check the Enable Converting Encoding option if required and specify the encoding before
and after converting from the corresponding drop-down lists.
i. Enter a name for the task in the Name of the schedule field.
j. Define the encoding for the report set by selecting from the drop-down list.
k. Check Use the default DB user and password defined in catalog.
l. Check the Add TaskListener to be Invoked option, and input the class name (for details,
see Adding TaskListener).
m. Check the Enable Auto Recover Task option to specify auto recovering settings.
3. In the Publish tab,
a. Click the To Version sub tab, then check Publish to Versioning System.
b. Select the required formats and set the format settings.
c. Check the Built-in Version Folder option in Archive Location to save the report set result
version in the built-in version folder.
d. Set 0 for the Maximum Number of Versions.
e. Check the Result Auto-delete option and define the result to expire in 30 days.
4. In the Conditions tab, select the Time sub tab, define the time zone from the Time Zone dropdown list, then from the Time Type drop-down list, choose Run this task immediately.
5. If you want to notify someone of when the task is finished by sending an e-mail, go to the
Notification tab and then set the settings.
6. If you want to specify a timeout for the task, specify the settings in the Duration tab as required.
7. Click Finish to have the task performed.
Then, click My Tasks on the system toolbar. While the task is being performed, you can see a record
of it in the Running tab. On completion it will be put into the Completed tab.
Notes:
●
When publishing a report set to XML format, if you want to use the URL to get the .xsd file, follow
the steps below:
1. Put the existing XML schema file in <intall_root>\public_html.
2. Input http://IP address:8888/name of the existing XML schema file.
●
There is another way to publish the report set result to version. If you have set the property server.
version.from.temp to true in the server.properties file in <install_root>\bin, or selected the option
Enable "Publish to Versioning System" for Background Tasks View on the JReport Administration page
> Configuration > Advanced panel, you will get the link Publish to Version System on the system
toolbar of the JReport Console page. Click the link to publish the result to version.
Example 2: Publishing a report set to the file system
In this example, you will learn how to set up a task to publish the report set result in various file
formats to the file system repeatedly at the start of each month.
1. Take steps 1 and 2 as in Example 1.
2. In the Publish tab of the Schedule dialog, click the To Disk sub tab, select the required format,
specify the result location, and set the format settings according to your requirements.
3. In the Conditions tab,
a. In the Time sub tab, define the time zone from the Time Zone drop-down list, then from the
Time Type drop-down list, choose Run this task periodically.
b. In the Duration box, specify a time period for when the task will be performed.
c. Select Monthly from the Date drop-down list and keep the default to run the first day of
every 1 month.
d. Keep the Time settings as default.
e. If you also want to set an event which needs to occur before running the report set, select a
trigger to bind with the task from the Select a trigger to bind drop-down list in the Trigger
sub tab, then specify the trigger logic with time condition.
For detailed information about the logic between the trigger condition and the time condition,
see Trigger tab.
4. If you want to notify someone of when the task is finished by sending an e-mail, go to the
Notification tab and set the settings.
5. If you want to specify a timeout for when the scheduled report set will be allowed to run, specify
the settings in the Duration tab as required.
6. Click Finish to have the task performed.
Then, click My Tasks on the system toolbar, you will see that the scheduled task has been recorded in
the Scheduled tab. Since you have not specified the duration Run until a time for this task, it will not
stop being performed until you delete or disable it from the Scheduled tab.
Notes:
●
●
●
When you specify to publish the report set result to the server resource tree, if the specified folder
has a real path, the result will be put to the real path. Otherwise it will be put to the default disk
location where server resources are.
If you specify to publish the report set result to a non-existent folder on disk, JReport Server will
automatically create it.
If you use a fixed name to perform the task periodically, only the most recently generated report set
result will be kept. In order to keep the report set result generated every time, you should use the
dynamic result file name. Similarly, you are able to input the dynamic directory path to avoid report
set management difficulties, since when a fixed directory path is specified, too many results may be
generated in one directory. For more information, see Appendix 5: Dynamic names.
Example 3: Publishing a report set to e-mail
In this example, you will learn how to set up a task to publish the report set result to e-mail.
1. Take steps 1 and 2 as in Example 1.
2. In the Publish tab of the Schedule dialog, click the To E-mail sub tab, then from the Mail To list,
select to whom the report set result will be sent. If required, click the Edit button to edit the
specified e-mail.
If you want to create another e-mail, click the New button, then fill in every field, select the
format in which you want to export the report set result and set the settings according to your
requirements. When you choose to specify a report set result as an attachment to e-mail, you
need to specify a file name for the attachment. For details about settings of creating a new e-mail,
refer to Schedule dialog - To E-mail.
3. In the Conditions tab, select the Time sub tab, define the time zone from the Time Zone dropdown list, then from the Time Type drop-down list, choose Run this task immediately.
4. If you want to notify someone of when the task is finished by sending an e-mail, go to the
Notification tab and set the settings.
5. If you want to specify a timeout for the task, specify the settings in the Duration tab as required.
6. Click Finish to have the task performed.
Then, click My Tasks on the system toolbar. When the task is being performed, you can see a record
of it in the Running tab and on completion it will be put into the Completed tab.
Example 4: Publishing a report set to printer
In this example, you will learn how to set up a task to publish the report set result to a printer.
1. Take steps 1 and 2 as in Example 1.
2. In the Publish tab of the Schedule dialog,
a. Select the To Printer sub tab and then check Publish to Printer.
b. Select a JDK print method for the report set result in the Select Print Method field.
c. Type a name with the path of the printer in the Printer field.
3. In the Conditions tab, select the Time sub tab, define the time zone from the Time Zone dropdown list, then from the Time Type drop-down list of the Time tab, choose Run this task
immediately.
4. If you want to notify someone of when the task is finished by sending an e-mail, go to the
Notification tab and set the settings.
5. If you want to specify a timeout for the task, specify the settings in the Duration tab as required.
6. Click Finish to have the task performed.
Then, click My Tasks on the system toolbar. When the task is being performed, you can see a record
of it in the Running tab and on completion it will be put into the Completed tab.
Note: When there is no printer connected with JReport Server, and you schedule to publish a report
set to a printer, the server may crash or throw an exception.
Example 5: Publishing a report set to fax
In this example, you will learn how to set up a task to publish the report set result to fax. Before you
can fax the report set result, you must first have your modem configured. Otherwise a warning
message will be displayed when you try to export to fax.
1. Take steps 1 and 2 as in Example 1.
2. In the Publish tab of the Schedule dialog, click the To Fax sub tab, check the Publish to Fax
option and then fill in every field and set the settings according to your requirements.
3. In the Conditions tab, select the Time sub tab, define the time zone from the Time Zone dropdown list, then from the Time Type drop-down list, choose Run this task immediately.
4. If you want to notify someone of when the task is finished by sending an e-mail, go to the
Notification tab and set the settings.
5. If you want to specify a timeout for the task, specify the settings in the Duration tab as required.
6. Click Finish to have the task performed.
Then, click My Tasks on the system toolbar. When the task is being performed, you can see a record
of it in the Running tab and on completion it will be put into the Completed tab.
Example 6: Publishing a report set to an FTP site
In this example, you will learn how to set up a task to publish the report set result to an FTP site.
1. Take steps 1 and 2 as in Example 1.
2. In the Publish tab of the Schedule dialog,
a. Click the To FTP sub tab, then click the New button to set up a new FTP site or click the Edit
button to edit a specified FTP site in the FTP To list.
b. Fill in every field, select the format in which you want to send the report set results and then
set the settings according to your requirements.
3. In the Conditions tab, select the Time sub tab, define the time zone from the Time Zone dropdown list, then from the Time Type drop-down list, choose Run this task immediately.
4. If you want to notify someone of when the task is finished by sending an e-mail, go to the
Notification tab and set the settings.
5. If you want to specify a timeout for the task, specify the settings in the Duration tab as required.
6. Click Finish to have the task performed.
Then, click My Tasks on the system toolbar. When the task is being performed, you can see a record
of it in the Running tab and on completion it will be put into the Completed tab.
Note: Dynamic result name for FTP task is currently not supported.
Scheduling report sets via URL
A schedule contains two kinds of properties. The first is about time information and the second is about
task information (for detailed information about each property, see Appendix 7: Properties - scheduling
report sets via URL).
When report sets are scheduled via URL in a web browser, the method jrs.submit_schedule is called.
The following is a description of this method.
●
●
●
●
Constant: jet.cs.util.APIConst.CMD_SUBMIT_SCHEDULE
Description: Submits a scheduled task to JReport Server. If the report set has no parameters then
it directly run the URL. If the report set has parameters and no parameter specified in the URL or the
parameters provided in the URL fail to include all necessary parameters, the server then returns the
parameter dialog for entering parameter values.
HTTP Method: GET/POST.
Response: Returns the task ID to JRClient API, and returns the scheduled tasks page to web
browsers.
Specifying parameter values using dialog when scheduling report sets via URL
When scheduling reports in a report set via URL, if the reports contain parameters, you need to
manually enter the parameters in the URL string without any mistakes. You may find this painful
sometimes because it's not easy to remember all parameters in a report set. However, JReport
provides you with the special command jrs.submit_schedule, which enables to display the Enter
Parameter Values dialog to manage parameters.
The display of the parameter dialog requires:
●
The reports have parameters.
●
The URL contains the command jrs.submit_schedule.
●
No parameter specified in the URL or the parameters provided in the URL fail to include all necessary
parameters.
With the above three conditions fulfilled, the Enter Parameter Values dialog will be displayed right after
you finish the URL in the address bar and make it run. After setting the values and clicking OK in the
dialog, JReport Server will append the values to the URL string for you and execute the URL. However,
if you click Cancel in the dialog, the URL running will be cancelled.
Tip: If you want to specify parameters via dialog when scheduling reports via URL, the most effective
way to display the parameter dialog is that you do not specify parameters at all in the URL.
URL examples
The following are some specific examples on how to schedule a report set via URL. The report set
CustomerAnalysis.cls that uses the catalog /SampleReports/SampleReports.cat is used in these
examples.
Publishing to the versioning system immediately
To publish the report set to the versioning system immediately, the URL used for this task could be as
below:
●
●
To RST
http://localhost:8888/jrserver?jrs.cmd=jrs.submit_schedule&jrs.catalog=%
2fSampleReports%2fSampleReports.cat&jrs.task_class=jet.server.schedule.jrtasks.
PublishRptTask&jrs.launch_type=0&jrs.param$P_StartDate=01/01/2006&jrs.param
$p_EndDate=12/31/2007&jrs.uid=admin&jrs.to_version=true&jrs.to_version_rst=true&jrs.
report=CustomerAnalysis.cls
To PDF
http://localhost:8888/jinfonet/submitSchedPage.jsp?jrs.cmd=jrs.submit_schedule&jrs.
catalog=%2fSampleReports%2fSampleReports.cat&jrs.task_class=jet.server.schedule.
jrtasks.PublishRptTask&jrs.launch_type=0&jrs.param$P_StartDate=01/01/2006&jrs.param
$p_EndDate=12/31/2007&jrs.uid=admin&jrs.to_version_pdf=true&jrs.to_version=true&jrs.
report=CustomerAnalysis.cls
If you want to publish the report set to other formats, you can refer to the examples above, but you
will need to modify the parameter jrs.to_version_pdf=true to suit the particular format that the report
set will be published to. For example, if you want to publish the report set to Excel, you will need to
change the parameter to jrs.to_version_excel=true.
Publishing to the versioning system periodically
To publish the report set to the versioning system periodically, the URL used for this task could be as
below:
http://localhost:8888/jrserver?jrs.cmd=jrs.submit_schedule&jrs.catalog=%2fSampleReports%
2fSampleReports.cat&jrs.hour2=5&jrs.task_class=jet.server.schedule.jrtasks.
PublishRptTask&jrs.to_version=true&jrs.to_version_html=true&jrs.is_between=true&jrs.
is_weekday=false&jrs.launch_type=8&jrs.min2=0&jrs.is_pm=false&jrs.hour=9&jrs.
is_pm2=true&jrs.param$P_StartDate=01/01/2006&jrs.param$p_EndDate=12/31/2007&jrs.
uid=admin&jrs.hours=1&jrs.is_hourly=true&jrs.at_min=0&jrs.days_id=0&jrs.day=1&jrs.
timezone=CTT&jrs.min=0&jrs.expire_days=30&jrs.report=%2fSampleReports%
2fCustomerAnalysis.cls&jrs.rpt_language=en&jrs.report_sheet$Report=true&jrs.
schedule_name=periodicalTask
Publishing to the versioning system at a specific time
To publish the report set to the versioning system at 12:00:00 CST, December 1, 2008, the URL used
for this task could be as below:
http://localhost:8888/jrserver?jrs.cmd=jrs.submit_schedule&jrs.catalog=%2fSampleReports%
2fSampleReports.cat&jrs.task_class=jet.server.schedule.jrtasks.PublishRptTask&jrs.
to_version=true&jrs.to_version_rst=true&jrs.launch_type=1&jrs.param
$P_StartDate=01/01/2006&jrs.param$p_EndDate=12/31/2007&jrs.uid=admin&jrs.exe_day=1&jrs.
exe_month=12&jrs.exe_hour=12&jrs.exe_min=00&jrs.exe_year=2008&jrs.expire_days=30&jrs.
report=%2fSampleReports%2fCustomerAnalysis.cls&jrs.report_sheet$Report=true&jrs.
schedule_name=atTimeTask
Publishing to the versioning system immediately and notifying others of success or failure
To publish the report set to the versioning system immediately, and notify the user support1, support2,
and support3 of success or failure, the URL used for this task could be as below:
http://localhost:8888/jrserver?jrs.cmd=jrs.submit_schedule&jrs.catalog=%2fSampleReports%
2fSampleReports.cat&jrs.task_class=jet.server.schedule.jrtasks.PublishRptTask&jrs.
launch_type=0&jrs.param$P_StartDate=01/01/2006&jrs.param$p_EndDate=12/31/2007&jrs.
uid=admin&jrs.expire_days=30&jrs.report=%2fSampleReports%2fCustomerAnalysis.cls&jrs.
to_version=true&jrs.to_version_rst=true&jrs.success_notify=true&jrs.
fail_notify=true&jrs.notification_emails=To%[email protected]%0D%0ACc%3A
[email protected]%0D%0ABcc%[email protected]%0D%0A
Publishing to the file system immediately
To publish the report set to the file system immediately, the URL used for this task could be as below:
●
●
To RST
http://localhost:8888/jinfonet/submitSchedPage.jsp?jrs.cmd=jrs.submit_schedule&jrs.
catalog=%2fSampleReports%2fSampleReports.cat&jrs.task_class=jet.server.schedule.
jrtasks.PublishRptTask&jrs.launch_type=0&jrs.param$P_StartDate=01/01/2006&jrs.param
$p_EndDate=12/31/2007&jrs.uid=admin&jrs.to_disk_rst_path_type=1&jrs.rst_dir=C:\&jrs.
to_disk=true&jrs.to_rst=true&jrs.rst=CustomerAnalysis.rst&jrs.report=%2fSampleReports%
2fCustomerAnalysis.cls&
To PDF
http://localhost:8888/jrserver?jrs.cmd=jrs.submit_schedule&jrs.catalog=%
2fSampleReports%2fSampleReports.cat&jrs.task_class=jet.server.schedule.jrtasks.
PublishRptTask&jrs.launch_type=0&jrs.param$P_StartDate=01/01/2006&jrs.param
$p_EndDate=12/31/2007&jrs.uid=admin&jrs.to_disk_pdf_path_type=1&jrs.pdf_dir=C:\&jrs.
to_disk=true&jrs.to_pdf=true&jrs.pdf=CustomerAnalysis.pdf&jrs.report=%2fSampleReports%
2fCustomerAnalysis.cls&
Note: If you want to publish a report set to a disk path, for example, jrs.rst_dir=C:\, you can do the
same as the example described above. If you want to publish a report set to a resource tree, for
example, jrs.rst_dir=%2fSampleReports, you can omit this parameter &jrs.to_disk_pdf_path_type=1 in
the above example and replace jrs.pdf_dir=C:\ with jrs.rst_dir=%2fSampleReports. Here
SampleReports is the resource path.
Publishing to e-mail immediately
To publish the report set to e-mail immediately, the URL used for this task could be as below:
http://localhost:8888/jinfonet/submitSchedPage.jsp?jrs.cmd=jrs.submit_schedule&jrs.
catalog=/SampleReports/SampleReports.cat&jrs.report=/SampleReports/CustomerAnalysis.
cls&jrs.task_class=jet.server.schedule.jrtasks.PublishRptTask&jrs.to_mail=true&jrs.
jrmail0=jrs.mailto%[email protected]%26jrs.mailsubject%3dreport&jrs.
launch_type=0&jrs.param$P_StartDate=01/01/2006&jrs.param$p_EndDate=12/31/2007&jrs.
uid=admin&jrs.rpt_language=en
Publishing to printer immediately
To publish the report set to a printer immediately, the URL used for this task could be as below:
http://localhost:8888/jrserver?jrs.cmd=jrs.submit_schedule&jrs.catalog=%2fSampleReports%
2fSampleReports.cat&jrs.task_class=jet.server.schedule.jrtasks.PublishRptTask&jrs.
launch_type=0&jrs.to_printer=true&jrs.report=%2fSampleReports%2fCustomerAnalysis.
cls&jrs.param$P_StartDate=01/01/2006&jrs.param$p_EndDate=12/31/2007&jrs.rpt_language=en
Publishing to fax immediately
To publish the report set to a fax immediately, the URL used for this task could be as below:
http://localhost:8888/jinfonet/submitSchedPage.jsp?jrs.cmd=jrs.submit_schedule&jrs.
catalog=%2fSampleReports%2fSampleReports.cat&jrs.report=%2fSampleReports%
2fCustomerAnalysis.cls&jrs.task_class=jet.server.schedule.jrtasks.PublishRptTask&jrs.
launch_type=0&jrs.param$P_StartDate=01/01/2006&jrs.param$p_EndDate=12/31/2007&jrs.
uid=admin&jrs.to_fax=true&jrs.to_fax_is_include_cover=false&jrs.
to_fax_to_fax_number=888888
Publishing to FTP immediately
To publish the report set to an FTP site immediately, the URL used for this task could be as below:
http://localhost:8888/jrserver?jrs.cmd=jrs.submit_schedule&jrs.catalog=%2fSampleReports%
2fSampleReports.cat&jrs.report=%2fSampleReports%2fCustomerAnalysis.cls&jrs.
task_class=jet.server.schedule.jrtasks.PublishRptTask&jrs.launch_type=0&jrs.param
$P_StartDate=01/01/2006&jrs.param$p_EndDate=12/31/2007&jrs.uid=admin&jrs.
to_FTP=true&jrs.ftp0=jrs.ftpHost%3d192.168.0.0%26jrs.ftpPort%3d21%26jrs.ftpUn%3dftpuser%
26jrs.ftpPsd%3d1234%26jrs.ftpLoc%3d%2ftest%26jrs.ftpPdf%3dtrue
Related topics:
●
Setting dynamic parameter values when running or scheduling a report set via API
Scheduling a task containing a bursting report
In a large enterprise reporting deployment, it is important to handle both large amounts of data as well
as a large number of users. Report bursting enables running a report once and distributing the report
results to multiple recipients who each will receive a subset of the report results.
Bursting reports can be distributed to e-mail or FTP addresses, to disk, to the JReport versioning
system, or to the security system members such as users, groups, and roles.
End users can submit a schedule task which contains only one bursting report to JReport Server. When
a bursting task is activated, it will create a main bursting task and some sub bursting tasks. The
system will guarantee bursting tasks compete with normal tasks for system resources. The bursting
tasks can be given lower priority if desired (set queue.policy to 1).
●
●
Main bursting task: It is responsible for getting/splitting data and distributing work to the sub
tasks. There can be only one main bursting task for a sub bursting task.
Sub bursting task: It is responsible for generating the report result according to split data and
sending the result to the address of the bursting recipient.
For details about what is a bursting report and how to design a bursting report, see Report Bursting in
the JReport Designer User's Guide.
On JReport Server, direct running and advanced running actions support normal reports but not
bursting reports. A report set containing only bursting reports cannot be run directly, it must be
scheduled.
Scheduling supports both types of reports excluding the combination of the two types: for normal
reports, multiple reports can be scheduled at a time; however for bursting reports, only one can be
scheduled. For a scheduled bursting task, seven kinds of result file formats are supported: HTML, PDF,
Excel, Text, RTF, XML, and PostScript. In addition, when scheduling to run a bursting report, you can
make it generate not only the bursting result by applying bursting schemas but also the non-bursting
result based on whole data without data splitting.
Scheduling a bursting report to generate bursting result
Though a bursting report may have one or more bursting schemas, you need apply one or more of
them in order to get a bursting result. To do this, select a bursting report and schemas, and then
specify required parameter values in the General tab of the Schedule dialog. Then a tab named
Bursting Result is displayed in the Publish tab and only the corresponding sub tabs are available that
are defined in the selected bursting schemas' recipients in JReport Designer. For example, a bursting
report has three bursting schemas: Schema 1 defines recipient E-mail and Disk, Schema 2 defines
recipient FTP, and Schema 3 defines recipient JReport Server Version. If Schema 1 and Schema 3 are
selected, only To E-mail, To Disk, and To Version sub tabs will be shown in the Bursting Result tab of
the Publish tab for the bursting result.
The following list tells which tab will be displayed in the Publish > Bursting Result tab of the Schedule
dialog for which recipient address specified in bursting schema.
Recipient
Sub tab in the Publish tab
E-mail
To E-mail
FTP
To FTP
Disk
To Disk
JReport Server Version
To Version
JReport Server User/Group/Role - User E-mail To E-mail
JReport Server User/Group/Role - User
Private Folder
To Version
When scheduling a bursting report, specifying the destination is suppressed in the Publish tab since the
recipient addresses have been included in the bursting schema. However, you are allowed to give a file
name to the subset of report result instead of using the default name.
Default name for bursting result files
Sometimes you may not want to specify a file name for each bursting result when defining recipients.
The bursting system will give it a name as generated by the system.
The default name format is: ReportName + "_" + BurstingKey + suffix (result format type). When
there are multiple bursting key columns, connect each one by the character "_".
Converting to String
When a bursting key is of one of the following data types, it will be converted into String so as to make
a valid result file name:
●
●
●
Integer, Float, Character: Same as Java, these data types are transferred to string directly.
Date and Time: All data and time formats will be transferred to a date format: yyyy-MM-dd hh:mm:
ss.
Currency: Currency will be transferred to the number without the currency mark ($ or others).
Name length
In the JReport Server resource system, the resource name only supports up to 64-character length. If
a bursting result file name is longer than that, the system will trim it down automatically.
In order to avoid using the same name in the same path, an index will be appended to the result name,
for example: report1_USA_Maryland1.pdf, report1_USA_Maryland2.pdf.
Notes:
●
All bursting sub results will apply the security information of the bursting task submitter.
●
When running a report set containing both normal and bursting reports:
For direct running:
When running it to DHTML format, only the normal reports are opened.
When running it to other formats, if the default focused report is a normal report, it will be run
directly; otherwise if the default focused report is a bursting report which cannot be run, a warning
message will be displayed asking the end user to select a normal report to run using advanced run.
For advanced running:
It is allowed to only choose among the normal reports.
Scheduling a bursting report to generate non-bursting result
Besides generating bursting result for a bursting report, you can also generate non-bursting result for
the report without applying any bursting definition, which is based on full data without data splitting.
To generate non-bursting result, select the Non-bursting result option in the General tab of the
Schedule dialog. Then a tab named Non-bursting Result appears in the Publish tab, and all these sub
tabs - To Version, To Disk, To E-mail, To Printer, To Fax, and To FTP - are available in this tab for the
non-bursting result.
Scheduling a customized task using User Task
In order to meet the requested requirement to run tasks defined outside of JReport on JReport Server,
and to just use JReport Server's schedule function, JReport has provided a task named User Task. With
this task, you can implement a customized task with the schedule properties. You can also submit the
user task from a web page, or by calling the JReport Server API methods.
To schedule a customized task using User Task:
1. Create a task class that implements the UserTask interface and add the path of the class file to
the class path. You can find the interface in the jet.server.api package available in <install_root>
\help\server\en\api. JReport provides a demo class APIDemoDynamicExportTask.java in
<install_root>\help\server\en\samples for your reference.
2. Create a task properties file defining the formats of exporting the task. For example, the content
of the properties file is:
jrs.rst=result_rtf
jrs.pdf=true
jrs.text=true
jrs.excel=true
jrs.ps=true
jrs.html=result_html
3. Submit the task either from a server web page or by calling Server API methods. The task can
then be run by the server.
❍
To submit the customized task from a server web page:
a. On the JReport Console > Reports page, browse to the desired report set, put the mouse
pointer over the report set row and click the Schedule button
The Schedule dialog is then displayed.
on the floating toolbar.
b. Specify the settings in the General, Publish, Conditions, and Duration tabs as required.
Here the Publish tab settings should be switched to those of User Task by clicking the link
on the right bottom of the tab. Then, the name of the task class file you have defined that
implements the UserTask interface and the task properties that define the export formats
must be provided. You can either input the task properties manually or import them from
the task properties file that you have created.
c. Upon finishing, click Finish to submit the task.
❍
To submit the customized task by API methods:
a. Set the user task class name to the property value of APIConst.TAG_TASK_CLASS.
b. Define the user task properties with the property APIConst.TAG_USER_TASK_PROP with
the formats as follows: jrs.user_task_prop= jrs.rst=result_rtf&jrs.pdf=true&jrs.
text=true&jrs.excel=true&jrs.ps=true&jrs.html=result_html. Since the jrs.user_task_prop
is used to transfer multiple user task properties, the values set to this property must be
formatted to be separated with "&" character.
c. Set a display name for the class with the property APIConst.
TAG_USER_TASK_DISPLAY_NAME.
d. Except for the above properties, define the other schedule properties as you do with a
default task, see APIDemoPublishRpt.java in <install_root>\help\server\en\samples
for reference. Then following the API demo you can submit a customized task on the server.
Click My Tasks on the system toolbar. When the task is being performed, you can see a record of it in
the Running tab and on completion it will be put into the Completed tab.
Note: You can either schedule to use the Default Task or the User Task at one time. If you specify to
schedule a report set as a default task, you will not be able to schedule it as a user task, and vice versa.
Recording scheduled tasks
JReport Server records every scheduled task. Click My Tasks on the system toolbar of the JReport
Console page, then the following tabs will be displayed: Scheduled, Running, and Completed. The tasks
are recorded in different tables according to their executing status. A task is placed in the Scheduled
table as soon as it is submitted by the user. It will go to the Running table when it is running, and
when it is finished by JReport Server, it will then go to the Completed table.
Related topics:
●
Managing tasks
Viewing scheduled report set results
When a scheduled task is finished, you can view the results of the scheduled report set as required. To
view the results, first of all you need to know the corresponding results' location. To get the location
information:
1. On the JReport Console page, click My Tasks on the system toolbar, then click the Completed
tab, where all the successfully scheduled tasks are recorded.
2. Locate the task in the tab and click the name of the task in the Schedule Name column.
3. In the Result Details table, the location information of the scheduled results are available in the
Details column.
Viewing results scheduled to version
To view report set results that are scheduled to version, you can choose whether to view via the
JReport Console page or via URL.
Viewing via the JReport Console page
One way to view results that are scheduled to version on the JReport Console page is via the scheduled
task records. To do this:
1. Click My Tasks on the system toolbar, then click the Completed tab.
2. In the tab, locate the right task and click the name of the task in the Schedule Name column.
3. In the Result Details table, the links to different result formats are available for viewing in the To
Version row.
And another way to achieve the same purpose is via the server resource tree which to some extent
varies with the archive location type specified in the Publish > To Version tab:
●
If the archive location has been set to Built-in Version Folder:
1. On the JReport Console > Reports page, browse to the row that the original report set is in.
2. Do either of the following:
■
Select the report set row and click Tools > Version on the task bar of the Reports page.
■
Select the report set row, right-click in the row and select Version from the shortcut menu.
■
Put the mouse pointer over the report set row and click the Version button
toolbar.
on the floating
3. In the Report Set Result Versions tab, the scheduled results of different format types are listed
in the Result column. Click the format links or action buttons to view the results.
●
If the archive location has been set to My Reports Folder or Public Reports Folder, which requires
providing a path and a name for the scheduled result in the server resource tree:
1. On the JReport Console > Reports page, browse to the row that the result is in.
2. Put the mouse pointer over the result row and click the Version button
on the floating
toolbar (or you can use one of the other two methods shown in the above procedure to display
the version table).
3. In the Result Versions tab, the scheduled results of different format types are listed in the Result
column. Click the format links or action buttons to view the results.
Tip: The unviewed version results are highlighted in bold. You can cancel the highlighting by setting
the property web.version.mark_unviewed to false in the server.properties file in <install_root>\bin.
Viewing via URL
For the report set results that are scheduled to version, you can also view them via URL. One important
thing in the URL method is that you need to know the file name of the result that you want to view. To
get this information, you can take the steps explained at the beginning of the document.
Using command jrs.view_ver_rst
See the example:
http://localhost:8888/jrserver/SampleReports/SampleReports.cat/EmployeeInformation.cls?
jrs.cmd=jrs.view_ver_rst&
jrs.hist_file=1%5cJReport_System_User327406359%5cEmployeeInformation.rst&jrs.
result_type=1.
See details about the usage of the command jrs.view_ver_rst.
Using viewVersion.jsp
For example:
http://localhost:8888/jinfonet/viewVersion.jsp?jrs.cmd=jrs.view_ver_def&jrs.
rst_version=2&jrs.ver_suff=.html&
jrs.report=%2fSampleReports%2fEmployeeInformation.cls&type=rstfile&jrs.path=%
2fSampleReports%2fEmployeeInformation.cls
Notes:
●
To view RSD version results using JSP, you should use dhtml.jsp instead of viewVersion.jsp. For
example:
http://localhost:8888/dhtmljsp/dhtml.jsp?jrs.rst_version=10&jrs.report=/SampleReports/
Banded_Link.cls&type=rstfile&jrs.path=/SampleReports/Banded_Link.cls
●
When viewing a scheduled DHTML report result with cached report bursting via URL, you should add
jrs.is_pls_result=true in the URL, for example: http://localhost:8888/dhtmljsp/dhtml.jsp?
jrs.rst_version=1&jrs.is_pls_result=true&jrs.report=/SampleReports/PLS.
cls&type=drstfile&jrs.path=/SampleReports/PLS.cls
Viewing results scheduled to disk
When scheduling a report set to disk,
●
If you choose Publish to Server Disk Path, you are required to provide a disk file path and file name
with correct format type as the suffix for each report in the report set. After scheduling succeeds, you
can find the corresponding result files available at the specified location on the computer where
JReport Server is installed.
●
If you choose Publish to Server Resource Tree, you are required to provide a path following the
server resource tree and file name with correct format type as the suffix for each report in the report
set. For example,
❍
To follow the My Reports folder path, start with "/USERFOLDERPATH/admin/".
Example: /USERFOLDERPATH/admin/report1.pdf
❍
To follow the Public Reports folder, start with "/".
Example: /SampleReports/report2.html.
If the specified folder which is the parent folder of the result file has a real path, the generated result
file will be saved to the real path; if the folder doesn't have a real path, the generated result will be
saved to <server_install_root>/jreports/, which is the mapped disk path of the root node "/" in
the specified path.
Viewing results scheduled to e-mail/printer/fax/FTP
When a report set is scheduled to e-mail, printer, fax, or FTP, you can view the scheduled results if the
specified addresses or locations are available to you.
Importing and exporting scheduled tasks
In JReport Server, you can export a scheduled task to a script file which will then be saved on your own
disk as a script file. In addition, you can import a script file from the disk file to generate a scheduled
task.
To export a scheduled task to a script file and save it in the disk:
1. On the JReport Console page, click My Tasks on the system toolbar.
2. In the Scheduled tab, select the rows that one or more scheduled tasks are in.
3. Click Tools > Export to Script on the task bar of the My Tasks page (if only one task is selected,
you can also right-click in the task row and select Export to Script from the shortcut menu, or
put the mouse pointer over the task row and click the Export to Script button
toolbar), then modify the script text in the Edit Script box as required.
on the floating
4. Click OK to export the specified scheduled task to a script file.
5. Specify the directory and name for this script file in the File download dialog.
To import a script file from your disk:
1. On the JReport Console page, click My Tasks on the system toolbar, then select the Scheduled
tab.
2. Click New Schedule on the task bar of the My Tasks page.
3. In the New Schedule dialog, check the option Import Script to Create Schedule.
4. Click the Browse button to select a script file from your disk file, then click OK to import the
specified script file and modify the script text in the Edit Script box as required.
5. Click OK to generate a scheduled task.
Note: If you just updated from an older version of JReport Server, there may be some old scripts
saved in your server. In order to use these old scripts, you can click the Import old script from
server link in the Import Script page to select an old script to import it to generate a scheduled task.
To use this link, you must logon JReport Server as an administrator role.
Adding TaskListener
When viewing or scheduling a report set, JReport Server enables you to call your Java application
before or after the process.
In JReport Server, a TaskListener interface has been provided in the package jet.server.api for
receiving task events before or after running. You can specify one Java class to implement this
interface for a task event. When the event of this task occurs, the corresponding methods in the
listener will be invoked. The interface contains two methods: beforeRun and afterRun, enabling you to
set your Java application call before or after the process of viewing a report set or setting up a
schedule. Your applications will return true or false. For true, JReport Server will go on running. While
for false, JReport Server will stop there.
Below is an example illustrating how to add TaskListener when setting up a schedule on a report set.
1. Develop your Java class to implement the interface. Here TestTaskListener.java is used, which is
available in <install_root>\help\server\en\samples.
2. Compile TestTaskListener.java to generate the class file.
3. Edit the batch file setenv.bat in <install_root>\bin, which is used to start JReport Server.
Assuming that TestTaskListener has been saved in c:\JReport\Server\tasklistener, add the
path of the class file (c:\JReport\Server\tasklistener) to the ADDCLASSPATH variable in
setenv.bat.
4. Start JReport Server and set up a schedule on a report set, check Add TaskListerner to be
Invoked in the General tab of the Schedule dialog, then input the class name. In this example,
input TastListener, and then submit the task.
5. In this example, the class returns True.
Print out the task and schedule properties before and after running the task. You will then get task
and schedule information in the command window before and after the task is run.
You can also define properties of your own and transmit them through ServerInfo. To do this, use
APIConst.TAG_USERDEFINED_PROPERTY_PREFIX as the prefix for the properties.
For example, if you want to transmit the properties host_name, host_ip and hosp_protocol, you will
need to insert the properties, before calling the method runTask, into the properties named prop, as
follows:
prop.put(APIConst. TAG_USERDEFINED_PROPERTY_PREFIX+"host_name", "host");
prop.put(APIConst. TAG_USERDEFINED_PROPERTY_PREFIX+"host_ip", "127.0.0.1");
prop.put(APIConst. TAG_USERDEFINED_PROPERTY_PREFIX+"host_protocol"+ "TCP/IP");
You can get the value of the properties listed above through the server info object, serverInfo, in the
method beforeRun or afterRun of the TaskListener class. See the example below:
host_name=serverInfo.getTaskProperties().get(APIConst.TAG_USERDEFINED_
PROPERTY_PREFIX+"host_name");
host_ip=serverInfo.getTaskProperties().get(APIConst.TAG_USERDEFINED_
PROPERTY_PREFIX+"host_ip");
host_protocol=serverInfo.getTaskProperties().get(APIConst.TAG_USERDEFINED_
PROPERTY_PREFIX+"host_protocol");
Note: All properties without the prefix APIConst.TAG_USERDEFINED_PROPERTY_PREFIX will be denied
and discarded by JReport Server.
Controlling report set versions
A new report set version is created when you publish a report set from outside of JReport Server, and
then make the old and the new share one common resource node.
The report set versions are recorded in the version table of the report set, from which you can view the
information about version date, version number, and edit the version properties or delete any
unwanted version.
For detailed information about controlling report set versions, refer to Managing versions.
Setting report set properties
The properties of a report set, such as the resource node name of the report set, the linked catalog, its
archive policy and the user permissions on it (if the report set locates in the Public Reports folder), can
be set according to your requirements.
To set the properties for a report set:
1. On the JReport Console > Reports page, browse to the report set, then do either of the following:
❍
Select the report set row and click Tools > Properties on the task bar of the Reports page.
❍
Select the report set row, right-click in the row and select Properties from the shortcut menu.
❍
Put the mouse pointer over the report set row and click the Properties button
floating toolbar.
2. In the Properties dialog, specify the settings as required.
3. When done, click OK to accept the changes.
on the
Linking report sets and catalogs
A report set can be linked with a catalog in JReport. The benefits of a linked catalog compared to a
copied catalog are:
●
●
●
There is no need to also copy the wanted catalog to the destination directory when saving the report
set to a different location.
When the report set and its linked catalog are not in the same directory, the report set can still run
with the catalog.
When the linked catalog is updated, the report set using the catalog can run with the updated
version. However, the copied catalog cannot be updated if its original catalog is updated since they
are two independent versions.
When directly running a report set, the linked catalog has higher priority than the catalog specified in
the same folder as the report set (without linked catalog, the report set will run within the selected
catalog in the same folder). As for Advanced Run and Schedule, the default selected catalog is the
linked catalog if there is one, however, you can change it by the provided option Select Another
Catalog.
Setting linked catalog
Linked catalog can be set at server level, folder level, and report set level as follows:
To set linked catalog at server level (this can only be done by administrators):
●
1. Go to the JReport Administration page, click Configuration on the system toolbar and select
Advanced from the drop-down menu.
2. In the Advanced panel, check Enable Linked Catalog, then click the Select Another Catalog
link to specify the catalog which will be used as the linked catalog at server level.
3. Click Save to save the change.
4. Restart JReport Server to make the settings take effect.
●
To set linked catalog at folder/report set level, go to the Properties dialog of the folder/report set,
check Enable Linked Catalog, then specify the linked catalog as required.
❍
❍
Use Specified - If checked, you can specify a linked catalog which can be any catalog in the
server resource tree to the folder/report set.
Use Inherited - If a linked catalog has been specified on the parent level of the folder/report set,
you can use the parent-level linked catalog as the linked catalog of the folder/report set. For the
My Reports and Public Reports folders, the parent level is the server level; for the other folders or
report sets, the parent level is the parent folder.
Notes:
●
If a schedule task has been submitted and then the linked catalog in use is modified, the task will
still use the previous catalog until the task information is updated.
●
When running a report set in JReport Viewer, you can also save the original catalog as a linked
catalog when saving the DHTML report set.
Using JSPs to print report sets
JReport Server provides the following demo JSPs which enable you to print a report set without any
view in the client side, and they are contained in the zip file printDemo.jsp.zip in <install_root>\help
\server\en\samples.
●
●
printDemo.jsp
Provides frames to load printCustomerlist.jsp and printReport.jsp.
printCustomerlist.jsp
Shows how to set parameters for printing the demo report set CustomerAnalysis.cls by using the
ViewerApplet. This JSP calls printReport.jsp. If you want to print the other report sets, you can follow
this JSP file as an example to write your own JSP. In your own JSP, you should modify the values of
"cat" and "rptName".
String cat = "/SampleReports/SampleReports.cat"; //request.getParameter(APIConst.
TAG_CATALOG);
String rptName = "/SampleReports/CustomerAnalysis.cls"; //request.getParameter
(APIConst.TAG_REPORT);
●
printReport.jsp
Shows how to print report sets by using the ViewerApplet. The example JSP printCustomerlist.jsp
calls this JSP.
Before running the JSPs, you should unzip and copy them to <intall_root>\public_html\jinfonet.
Then, start JReport Server and access printDemo.jsp using the URL http://localhost:8888/
jinfonet/printDemo.jsp. The following page appears:
PrintInCurrentFrame
Set to call printReport.jsp and load applet of JReport Viewer Frame.
PrintInHiddenFrame
Set to call printReport.jsp without loading applet of JReport Viewer Frame.
Reset
Reset the previous options.
View
View this report set.
Interactive
If checked, you could specify the print setup in the Print dialog.
Background
If checked, the print job will run in the background.
UseJDK11
If checked, you will use instance PrintJob of JDK11 to print the report set.
Wait
If checked, you have to wait until the print job is finished.
SeparateLargePage
If checked, the large page will be separated into several pages automatically.
NotifyComplete
This parameter is used with the parameter wait. After the print job is finished, a box will pop up to note
you, and you could do any other work instead of keep on waiting.
Printer
Specify the printer to implement the print job.
Deleting report sets
To delete a report set from JReport Server:
1. On the JReport Console > Reports page, browse to the report set you want to delete.
2. Do either of the following:
❍
❍
Select the report set row, right-click in the row and select Delete from the shortcut menu.
Put the mouse pointer over the report set row and click the Delete button
toolbar.
on the floating
3. A message dialog will then be displayed for your confirmation. Click OK to delete the specified
report set or Cancel to cancel the deletion of the report set.
JReport Viewer - Interactive Reports
(Dynamic HTML Reports)
With JReport Server, you can obtain report results in different formats, such as HTML, PDF, and Excel.
For the HTML format, there are two viewing modes - pure HTML or Dynamic HTML. JReport Viewer
provides a dynamic report view at the client side. You can change options which enable the results to
be displayed to your requirements.
Interactive information empowers you to slice and dice your business data, to dynamically change your
view of data, and to analyze the data to glean useful business information. In short, interactive
information enables you to customize your view of business information. With JReport, any report can
be made interactive, extending the "life" of the report by allowing you to easily sort, navigate, and filter
data via JReport Viewer. This wide range of functionality, including the ability to drill down on data,
enables you to quickly derive value from your business intelligence data.
JReport Viewer provides support for many features, such as Filter, Sort, Drill-to, Drill-down, Drill-up,
Navigation (TOC), Search, and save the results. JReport Viewer also supports a web design feature,
allowing you to create reports using report oriented data structures, save your report, and even save
your custom modifications to existing reports.
This chapter covers the following topics to help you better understand how JReport Viewer makes
reports interactive and how you will benefit:
●
JReport Viewer window elements
●
Viewing report sets in JReport Viewer
●
General operations
●
Ad hoc reporting
●
DHTML based reporting
●
Analytic reporting
●
Applying a style
●
Working with reports via URL
●
Tuning JReport Viewer performance
JReport Viewer window elements
The main page of JReport Viewer consists of the user information bar, menus, toolbar, report set bar,
Toolbox, Resource View panel, TOC Browser, and report area. The options for browsing or controlling a
DHTML report are as follows:
Toolbar/
Menu
File
Button
Tool Name
Description
New Report
Creates a new report to the
current report set based on
an existing business/report
cube.
New Report Set Creates a new report set
containing a report based on
an existing business/report
cube.
Open
Opens the Open Report
dialog for you to open/close
reports in current report set.
Rename Report Opens the Rename Current
Report dialog to give the
open report a new name.
Edit
Close Report
Closes the current report if
there is more than one report
open in the report set; or
prompts you to close the
report set if only one report
is open.
Delete Report
Deletes the current report if
there is more than one report
open in the report set. This
command is disabled when
the last page of the current
report does not display if
Format Page On Demand in
the Configure DHTML Profile
> Properties > Advanced tab
is selected.
Save
Saves the report set as a
report set version.
Save As
Saves a copy of the report
set.
Export
Exports the report result to
disk or version in various
formats.
Page Setup
Shows the Page Properties
dialog for you to specify the
page layout settings for the
report result.
Printable
Version
Shows the Printable Version
dialog for you to print the
current report result to a PDF/
HTML file.
Exit
Closes the current report set.
Undo
Undoes the last operation.
View
Redo
Reverses the operation of
Undo.
Search
Shows the Search dialog for
you to find specific text.
Toolbar
Shows or hides toolbars.
User
Shows or hides the User
Information Bar Information Bar, which
displays the user name,
catalog name and report set
name.
Insert
Toolbox
Shows or hides the Toolbox
panel which allows you to
insert a component into the
report.
Resource View
Shows or hides the Resource
View panel, with which you
can add cube elements to
your report and create
dynamic resources to use
them in your report.
TOC Browser
Shows or hides the TOC
Browser, with which you can
navigate the report data.
Editing Marks
Shows or hides editing marks
(dashed outlines for objects
and report body). If the
option is unselected, the
editing mark will not be
shown when a report object
receives focus, and report
objects cannot be moved or
resized.
Turn To
Provides a submenu for you
to turn the report pages.
Refresh
Runs the report using
previously provided
parameters. The Refresh
operation fetches the data
again.
Zoom
Shows the Zoom dialog for
you to set a zoom ratio for
the report page.
Options
Shows the Options dialog for
you to set the skin and unit
for JReport web, and to
customize toolbars.
Show Grids
Shows grids in the report
area.
Snap to Grids
Snaps an object to grids
when you move it by
dragging and dropping in the
report area. If this option is
enabled, aligning objects will
be made easier. To
temporarily override the
setting, press the ALT key as
you move an object.
Label
Inserts a label into the report.
Image
Inserts an image into the
report.
Report
Banded Object
Inserts a banded object into
the report.
Table
Inserts a table into the report.
Crosstab
Inserts a crosstab into the
report.
Chart
Inserts a chart into the
report.
Parameter
Control
Inserts a parameter control
into the report.
Parameter
Form Control
Inserts a parameter form
control into the report.
Filter Control
Inserts a filter control into
the report.
Navigation
Control
Inserts a navigation control
into the report.
Special Fields
Inserts special fields into the
report.
Query Filter
Applies a filter to the
business/report cube used by
certain component.
Filter
Filters the report records
according to the filter criteria
you specify.
Sort
Sorts the report records or
groups in ascending or
descending order on the
fields you select.
To Chart
Converts a crosstab into a
chart.
To Crosstab
Converts a chart into a
crosstab.
Rotate Table
Rotates a table to switch its
appearance between the
horizontal and vertical layout
modes.
Rotate Crosstab Rotates a crosstab to
exchange the columns and
rows in the crosstab in order
to create a different view of
the crosstab.
Help
Merge
Merges selected tabular cells
into one.
Split
Splits a tabular cell into the
specified number of rows and
columns.
Max Records
Allows you to specify the
maximum number of records
retrieved by all components
in the report set.
Use Dynamic
Formula in
Property
Allows you to apply dynamic
formulas to control object
properties.
Style
Allows you to apply a style to
the report.
User's Guide
Opens JReport Viewer User's
Guide.
Standard
Toolbar
View Toolbar
Analysis
Toolbar
Jinfonet
Software Home
Page
Connects to Jinfonet
Software Home Page.
Technical
Support
Accesses Jinfonet Technical
Support.
About JReport
Web
Shows product information
about JReport Web.
New
Creates a new report based
on an existing business/
report cube.
Open
Brings out the Open Report
dialog for you to open/close
reports in current report set.
Save
Saves the report set as a
report set version.
Save As
Saves a copy of the report
set.
Export
Exports the report result to
disk or version in various
formats.
Printable
Version
Shows the Printable Version
dialog for you to print the
current report result to a PDF/
HTML file.
Undo
Undoes the last operation.
Redo
Reverses the operation of
Undo.
Delete
Deletes the selected object.
Toolbox
Shows the Toolbox panel for
you to insert a component
into the report. Click it again
to hide the Toolbox.
Resource View
Shows the Resource View
panel, with which you can
add cube elements to your
report and create dynamic
resources to use them in
your report. Click it again to
hide the Resource View panel.
Filter
Shows the Filter dialog, with
which you can filter the
report records according to
the filter criteria you specify.
Sort
Shows the Sort dialog, with
which you can sort the report
records or groups in
ascending or descending
order on the fields you select.
Search
Shows the Search dialog for
you to find specific text.
Zoom
Enables you to enlarge or
reduce the size of the report.
Rotate
Rotates a crosstab or rotates
a table.
Font format
buttons
Page
navigation
buttons
Go To dropdown list
Chart Type
Lists all available chart types
for you to change the type of
a selected chart.
Style
Allows you to apply a style to
the report.
Font Face, Font
Size
Changes the face and size of
the selected font. Available
only when a label or field is
selected.
Bold, Italic,
Underlined
Makes the selected font in
bold, italic or underlined
style. Available only when a
label or field is selected.
Left, Center,
Right
Makes the selected font left,
center or right aligned.
Available only when a label
or field is selected.
Max Records
Allows you to specify the
number of records retrieved
by all components in the
report set.
Page Number
Displays the current page
number. You can also input a
page number in the page box
and press Enter on the
keyboard to go to that page.
First
Goes to the first page of the
current report.
Previous
Goes to the previous page.
Next
Goes to the next page.
End
Goes to the last page.
Go To
Goes to the selected report
or to the selected report
level.
If a report set contains
several reports, you can use
this list to switch among the
reports. Or, after you
perform some going or
drilling actions on a report,
the structure of the report
will be displayed in the list in
a hierarchical view, with
which you can return to any
level of the report easily.
More
Commands
When the JReport Viewer
window is not maximized in
Interactive View mode, the
button will be displayed on
the toolbar, by clicking which
you can get all the other
toolbar commands the small
window hasn't enough space
for.
Shortcut Menu
Filter
Provides submenu items for
filtering the data in a banded
object/table or removing the
filtering.
Sort
Provides submenu items for
sorting records on the
selected field in ascending/
descending order, or
removing the sorting.
Drill Down
Drills data to a lower
dimension according to
predefined hierarchies.
Drill To
Enables you to obtain a
different view of data by
switching among dimensions.
Drill to By Value Allows you to filter data
based on dimensions while
also obtaining a more
detailed view of the data.
Drill Up
Drills data to a higher
dimension according to
predefined hierarchies.
Go To
Goes to any group to show
its record information.
Go Up
Goes up one group level to
show the records of a higherlevel group.
Go Down
Goes down one group level
to show the records of a child
group.
Go to Detail
Goes to the details of a
group.
Conditional
Formatting
Enables you to add
conditional format to the
currently selected field.
Search
Shows the Search dialog for
you to search the report
result for some text.
Query Filter
Applies a filter to the
business/report cube used by
the specified data component.
Refresh
Re-fetches data of the
specified data component.
Properties
Shows a dialog for you to
define the object's properties.
Notes:
●
●
To simplify the toolbars, when you run a report set in JReport Viewer, only some basic toolbar
commands are displayed by default. To access more report and analysis commands, click the
Interactive View link on the toolbar. However, when you create a new report in JReport Viewer,
you will be shown the full menu and toolbar commands.
The shortcut menu contents vary with the objects you right-click. The above table only lists some
typical shortcut menu items. The following sections will guide you to use the shortcut menu for any
object you may right-click.
Viewing report sets in JReport Viewer
You can view report sets in JReport Viewer either from the user interface or from URLs. Furthermore,
you can simultaneously open multiple DHTML report sets in respective windows or frames.
●
Viewing from the user interface
●
Viewing by typing URLs
●
Opening multiple report sets in one session
Viewing from the user interface
To view a report set in JReport Viewer from the user interface, follow the steps below:
1. Start JReport Server and log onto the JReport Console page.
2. Click Reports on the system toolbar, then browse to the folder that contains your report set.
3. Use one of the following three methods to display the Advanced Run dialog:
❍
❍
❍
Select the report set row, then on the task bar of the Reports page, click Run > Advanced Run.
Select the report set row, right-click in the row and select Advanced Run from the shortcut
menu.
Put the mouse pointer over the report set row, then click the Advanced Run button
floating toolbar.
on the
4. In the General tab, select any report in the report set, specify parameter values if any, then click
the Format tab, select DHTML from the Select Format drop-down list and click Finish.
5. The report set processing page appears, on which you can choose to cancel the running of the
report set, or to make the report set run in background mode. Click Cancel on this page if you
decide to cancel, Background if you want the report set to run in background mode, or just wait
for processing to complete for viewing and interacting with the report set.
Notes:
●
●
If you can make sure that the viewing format of the last-time focused report in a report set is
DHTML, you can also click the report set name directly to run it in JReport Viewer. Then if the report
set contains parameters, a dialog will prompt you to assign values to the parameters.
When you cancel a report set from running, you can choose whether to cancel the running query
used by the report set in the database at the same time by configuring the JdbcDriversConfig.
properties file. For details, refer to Canceling running query.
Running a DHTML report set in background mode
When you run a report set in DHTML format, if the report set contains a large amount of data, you
need to wait several minutes before the report set results are displayed, and during this period, you
have to remain on the report set processing page, or choose to cancel the run. Now JReport enables
you to switch running report sets to background mode.
To make a report set running in DHTML to run in background mode, on the report set processing page,
click the Background button.
You can also specify to run DHTML report sets automatically in background mode after certain time by
setting preferences. To do this:
1. On the JReport Administration page, click Profile on the system toolbar and then select
Configure DHTML Profile from the drop-down menu. Or on the JReport Console page, click
Profile on the system toolbar, then click Configure DHTML Profile on the task bar of the Profile
page.
2. Click the Properties > Advanced tab.
3. Check Background Mode Timeout and specify the time allowed for a DHTML report set to run in
foreground mode.
4. Save the settings, then when a report set runs in DHTML format and the results have not yet been
generated after the specified time, it will be automatically switched to run in background mode.
Report sets running in background mode are listed in the Background Tasks table of the My Tasks
page, which shows detailed running information of the report sets, such as report set path and name,
catalog path and name, running format, time when the task is started/completed, and so on. Also, you
can control the status of the report sets running in background mode according to your requirements.
For example, you can choose to delete, stop, or restart tasks (for details, see Managing tasks in the
task tables).
When a report set completes running in background, you can open it from the Background Tasks table,
and once the report set is opened, the task will automatically be removed from the table.
Viewing by typing URLs
You can use DHTML servlet or JSPs to run a DHTML report set.
Using DHTML servlet
You can call the servlet jrdhtml via URLs to run a report set to the DHTML format. For example:
●
http://localhost:8888/jrdhtml/SampleReports/SampleReports.cat/EmployeeInformation.
cls?
●
http://localhost:8888/jrdhtml/SampleReports/SampleReports.cat/EmployeeInformation.
cls?jrs.catalog=/SampleReports/SampleReports.cat&jrs.path=/SampleReports.cat/
EmployeeInformation.cls
Using JSPs
You can use three JSPs to run a report set to the DHTML format. They are two Server JSPs, tryView.jsp
and runReport.jsp, and a DHTML JSP dhtml.jsp.
The image below illustrates the relationship between these JSPs that are used to run the DHTML report
sets:
tryView.jsp
This is the normal method of accessing report sets using URLs. If the report set has parameters and
the parameters provided in the URL fail to include all necessary parameters, the Enter Parameter
Values dialog will be shown for you to specify parameters, otherwise it will directly go to runReport.jsp.
Then it will be redirected to dhtml.jsp when result type is set to the DHTML format, or else will run to
the specified format if the result type is set to other format.
The following is an example of running a report set to the DHTML format using tryView.jsp:
http://localhost:8888/jinfonet/tryView.jsp?jrs.cmd=jrs.try_vw&jrs.report=%
2fSampleReports%2fEmployeeInformation.cls&jrs.catalog=%2fSampleReports%2fSampleReports.
cat&jrs.result_type=8
runReport.jsp
The runReport.jsp functions the same as tryView.jsp when the report set has no parameter. When it
has parameters, the report set runs with the default parameters if no parameter is specified, or else it
runs with the parameters specified in the URL.
To run a report set to the DHTML format using runReport.jsp, specify the DHTML format as the result
type. See the following example:
http://localhost:8888/jinfonet/runReport.jsp?jrs.cmd=jrs.web_vw&jrs.report=%
2fSampleReports%2fEmployeeInformation.cls&jrs.catalog=%2fSampleReports%2fSampleReports.
cat&jrs.result_type=8
dhtml.jsp
If you want to include the DHTML JSPs into your own application without other server JSPs, you can
use this method. However, you must specify the report parameter values in the URL if there are
parameters used by the report set. For example:
http://localhost:8888/dhtmljsp/dhtml.jsp?jrs.catalog=%2fSampleReports%2fSampleReports.
cat&jrs.report=%2fSampleReports%2fEmployeeInformation.cls
Tip: When you run a report set in DHTML using URL, if you want JReport to automatically refresh the
report data at certain intervals, you can set the URL as follows:
http://localhost:8888/dhtmljsp/dhtml.jsp?jrs.report=/USERFOLDERPATH/admin/AutoRefresh/
autorefresh.cls&jrs.catalog=/USERFOLDERPATH/admin/AutoRefresh/testauto.cat&jrs.
auto_refresh_data=true&jrs.auto_refresh_data_time=10
Opening multiple report sets in one session
You can open multiple report sets in JReport Viewer in one session. This means that each time you run
a DHTML report set, it will open in a new window. Also, when working in the embedded mode, you can
assign frames to the report sets, so that more than one DHTML report set can be viewed in one window
at the same time.
In order to illustrate how to view multiple frames in one window, a demo has been provided for you.
Follow the steps below:
1. Go to <install_root>\help\server\en\samples to find MultipleReports.zip.
2. Extract MutipleReports.zip to <intall_root>\public_html and a folder named MultipleReports
will be added in <intall_root>\public_html.
3. Access JReport Server using http://localhost:8888/MultipleReports/test.jsp.
General operations
After having opened a report set in JReport Viewer, you can do the following general operations:
●
Managing reports
A report set can include one or more reports. The Go To drop-down list on the toolbar panel or the
tabs across the top of the report lists the display names of all the open reports in the current report
set. Clicking the display name of an inactive report will make it active. You can manage reports in a
report set easily as follows:
❍
Opening and closing a report
In a report set, a report can be shown or not. To close (hide) the active report, click Menu > File
> Close Report. If there are one or more reports open other than the active report, the close
action will hide the active report; in the case that the active report is the only report open, the
close action will prompt you whether or not to close the report set.
To open (show) a hidden report, click Menu > File > Open (or the Open button
on the
Standard toolbar) to display the Open Report dialog, in which the reports open in the current
report set are marked with a check symbol. Check the reports you want to open, uncheck the ones
you want to close, and then click OK.
❍
❍
Renaming a report
To rename a report, first activate the report, then click Menu > File > Rename Report. In the
Rename Current Report dialog, specify a new display name for the report.
Deleting a report
To delete a report, first activate the report, then click Menu > File > Delete. The only report open
cannot be deleted.
Note: A JReport Server Live license is required in order to delete reports. If you do not have a
Live license please contact your Jinfonet Software account manager to obtain a license.
Tip: If the administrator has specified to switch reports using tabs in the DHTML preferences page, you
can easily activate a report in a report set by clicking the tab representing the report on the report tab
bar, and closing, renaming and deleting a report can also be accomplished by right-clicking the report
tab and choosing the corresponding command from the shortcut menu.
●
Turning the report pages
a report includes more than one page, to turn between the report pages, you can
●
Click the First Page button
Page button
, Previous Page button
, Next Page button
, or Last
on the View toolbar.
●
Input a number into the page box
and press Enter to go to that page.
●
Click Menu > View > Turn To and then click the corresponding command on the submenu.
●
Use the scroll bar or mouse wheel to scroll up/down the report.
●
Refreshing the report result
fetch the data of the current report again, you can click Menu > View > Refresh.
●
Undoing/redoing actions
u can undo or redo some actions by clicking Menu > Edit > Undo or Redo (or the Undo button
do button
or
on the Standard toolbar).
●
Configuring JReport Viewer features
e JReport Administration page provides default settings for you to use JReport Viewer features, and
ntrols whether the settings on the JReport Console page can be configured. A user playing the
dministrator" role may change the settings in the JReport Administration page so as to enable or disable
me features. Then you can configure JReport Viewer preferences on the JReport Console page, that is,
u can decide whether or not to enable the features which have been enabled on the JReport
ministration page. After you have made changes to JReport Viewer settings on the JReport Console page
d saved them, JReport Viewer features available for you will be consistent with your new settings on the
eport Console page. For details, see Configure DHTML Profile.
●
Setting JReport Viewer options
eport Viewer allows you to set the skin and customize toolbars. To do this:
1. Click Menu > View > Options (or right-click anywhere on the toolbar area and select Options
from the shortcut menu).
2. In the Option tab, set the skin of JReport Viewer user interface.
3. In the Customize tab,
❍
To modify a toolbar, select it in the Current Toolbar box, remove those unnecessary items from the
Selected Tools box, and add required tools from the Available Tools box. Click
order of the tools on the toolbar.
❍
❍
or
to adjust the
To add a toolbar, click
to show the New Toolbar Name dialog, then specify the toolbar name,
click OK to return to the Options dialog, and set the tools for the new toolbar.
To delete a toolbar, select it and click
.
4. To load the default settings, including the skin, and the three built-in toolbars, namely Standard,
View, and Analysis, click the Restore Defaults button.
5. Click OK to apply the settings.
Tip: To close a toolbar, right-click anywhere on the toolbar area, then on the shortcut menu, select the
item corresponding to the toolbar name. You can also do this to open an invisible toolbar, such as a
newly-created one. The open/close toolbar operation can also be achieved by clicking the
corresponding item on the Toolbar submenu of the View menu.
●
Showing/hiding user information
e User Information bar shows the current user name, catalog path and name, and report set path and
me. You can click Menu > View > User Information Bar to show or hide the bar.
Tip: Administrators can make this bar open by default. To do this, log onto the JReport Administration
page, click Profile on the system toolbar and select Configure DHTML Profile from the drop-down
menu. Go to the Properties > Default tab, and then check the User Information Bar option.
●
Showing/hiding editing marks
JReport Viewer, you can use editing marks (dashed outlines of objects) for purposes such as aligning,
ving and resizing. By default, the editing marks are shown only when you create a new blank report in
eport Viewer. You can click Menu > View > Editing Marks to switch the status of the editing marks as
quired.
●
Tuning report page magnification
on the View
u can zoom in or out the report page by selecting a magnification from the Zoom list
olbar. You can also click Menu > View > Zoom to show the Zoom dialog, and then specify the
gnification.
Asking for help
any time, you can click Menu > Help > User's Guide to open the index page of JReport Viewer User's
ide. Furthermore, you can click the Help button in any dialog to show the help about the dialog. You can
o use the Help menu to open the User's Guide and access Jinfonet Software website for more information.
●
Setting up the page
set up the report page, click Menu > File > Page Setup. In the Page Properties dialog, specify the page
pe, the orientation, and the margins as required.
●
●
Printing the report result
u can print the report result to a PDF/HTML file. To do this, click Menu > File > Printable Version (or
e Printable Version button
on the Standard toolbar). In the Printable Version dialog, specify the
tings as required and then click OK. The PDF/HTML result file will be opened in an associated program
h which you can print the result to a printer.
●
Exiting the report set
you want to close the current report set and release the resources, just click Menu > File > Exit (or the
it button
which is always on the upper right corner of the JReport Viewer window, or the close
tton of the browser window). Closing the only report open will also prompt you whether or not to close
e report set. In case that you have modified the report set without saving it, JReport Viewer will prompt
u to save the report set. If you have changed the sort and/or filter criteria, you can check Sort and/or
er in this dialog to save these changes with the report set. Click Yes to save the report set and close the
port set.
Ad hoc reporting
Ad hoc reporting allows a business analyst or end user to create a new report, add new objects to an
existing report, modify report objects, and save the report set or report result. These tasks are
performed in the JReport Server environment and do not require use of JReport Designer.
This section describes the following ad hoc reporting tasks:
●
Creating a report
●
Adding report objects
●
Applying web controls
●
Making simple modifications to report objects
●
Saving the report set
●
Exporting the report result
Creating a report
In JReport Viewer, you can create a new report based on a predefined business/report cube to the
current report set. You can also create a new report set containing one report and then add reports to
it. However, the reports created on business/report cubes in JReport Viewer cannot be edited in
JReport Designer any further.
To create a report:
1. In a JReport Viewer window, click Menu > File > New Report (or the New Report button
on the Standard toolbar) to display the New Report dialog.
If you click Menu > File > New Report Set, the New Report Set dialog will appear for you to
create a report set with the first report in it.
2. Specify the title of the report as required in the Report Title text box.
3. In the Choose Report Layout box, select the required layout with which you want to create the
report.
4. Click OK to create the report.
❍
❍
If Blank is selected as the layout, a report which is blank will be created. You can then use the
Toolbox and the Resource View panels to add objects and cube elements to the report.
If you select the layout as Banded, Table, Chart, or Crosstab, the corresponding report wizard
will then be displayed. Specify the settings according to your requirements.
Also, on the JReport Console > Reports page, you can directly create a new report set (containing a
report) in a folder into which one or more catalogs containing some business/report cubes have been
published. To do this:
1. Open the folder and select the catalog for the new report set from the Catalog drop-down list.
2. On the task bar of the Reports page, click New Report.
3. In the Select Report Type dialog, check the option Page Layout Report and click Ok.
4. In the New Report Set dialog, create the report set containing a report as required.
Notes:
●
●
●
A JReport Server Live license is required in order to use this feature. If you do not have a Live
license please contact your Jinfonet Software account manager to obtain a license.
Before you can create a report in JReport Viewer, you need to first make sure that the catalog
corresponding to the current report set contains one or more business/report cubes and that the Popup Blocker is not enabled on your web browser.
You may want to place a hyperlink directly in your application to create a new report. To do this,
simply create a URL to your JReport Server and provide the catalog and user name; for example,
http://localhost:8888/dhtmljsp/newreport.jsp?FromServer=true&jrs.catalog=%
2fSampleReports%2fSampleReports.cat will create a new report using the embedded sample report
catalog.
The following topics show in detail how to create a report from particular layouts:
●
Creating a banded report
●
Creating a table report
●
Creating a chart report
●
Creating a crosstab report
Creating a banded report
A banded object is a kind of component that can present grouped data and detailed data, and is
composed of several banded panels with which you can easily organize data fields and other elements.
To create a banded report, follow the steps below:
1. Take steps 1 and 2 in Creating a report.
2. Select Banded as the layout and click OK to display the Banded Wizard.
3. In the Data screen, select the business/report cube in the current catalog, on which the banded
object will be built.
4. In the Display screen, add the required fields from the Resources box to be displayed in the
banded object. Modify the display name of any added field if necessary.
5. In the Group screen, add the dimension objects
as the grouping criteria, then specify the
sorting direction of each group in the Sort column.
6. To add summaries, go to the Summary screen. Select the group to which the summary will be
applied, then add a measure object
as the summary field.
7. In the Query Filter screen, specify the filter you want to apply to the business/report cube.
8. In the Style screen, apply a style to the banded object.
9. Click Finish to create the report.
See also Banded Wizard for details about options in the wizard.
Note: If there is only one cube in the current catalog, this cube will be used to create the report by
default, and the Data screen will be hidden from the wizard. This is the same case when there is only
one style available to be applied to the report.
Creating a table report
Tables give you great control over how to present data, including placing fields, grouping them, and
sorting them. A table is composed of row and columns, and each contains several cells. With such a
structure a table is a good way to show any two-dimensional dataset.
To create a table report, follow the steps below:
1. Take steps 1 and 2 in Creating a report.
2. Select Table as the layout and click OK to display the Table Wizard.
3. In the Data screen, select the business/report cube in the current catalog, on which the table will
be built.
4. In the Display screen, add the required fields from the Resources box to be displayed in the table.
Modify the display name of any added field if necessary.
5. In the Group screen, add the dimension objects
as the grouping criteria, then specify the
sorting direction of each group in the Sort column.
6. To add summaries, go to the Summary screen. Select the group to which the summary will be
applied, then add a measure object
as the summary field.
7. In the Query Filter screen, specify the filter you want to apply to the business/report cube.
8. In the Style screen, apply a style to the table.
9. Click Finish to create the report.
See also Table Wizard for details about options in the wizard.
Note: If there is only one cube in the current catalog, this cube will be used to create the report by
default, and the Data screen will be hidden from the wizard. This is the same case when there is only
one style available to be applied to the report.
Creating a chart report
A chart organizes and graphically presents data in a way that makes it easy for end users to see
comparisons, trends, and patterns in data. It represents the report data in a visually straightforward
form. A chart is based on the chart platform. On the platform, the chart paper, the legend, and labels
make up the chart. You can create a chart that contains only simple DBFields, or a complicated chart
that contains DBFields, groups, summaries, and even formulas. Normally, DBFields, summaries, and
formulas in a report are represented in a chart using chart data markers, and groups are used to
produce category names and data series names. DBFields can also be used as category names.
For details about the chart types JReport supports, see Chart types in the JReport Designer User's
Guide.
For how charts present data, see How data is represented in a chart in the JReport Designer User's
Guide.
For the elements that compose a chart, see Chart elements in the JReport Designer User's Guide.
To create a chart report, follow the steps below:
1. Take steps 1 and 2 in Creating a report.
2. Select Chart as the layout and click OK to display the Chart Wizard.
3. In the Data screen, select the business/report cube in the current catalog, on which the chart will
be built.
4. In the Type screen, specify the chart type as required.
A default chart type exists in the Chart Type Groups box. To replace it with another one, select a
chart type from the Chart Type box. The thumbnails of the subtypes in this type will then be
displayed in the Subtype box. Select the required subtype to replace the default chart type.
If you want to create a combo chart, click <Add Combo Type> of Primary Axis or Secondary Axis
in the Chart Type Groups box, and an additional subtype will be added. To replace the additional
subtype, select it, then specify the required type and subtype respectively in the Chart Type and
Sub Type boxes.
To add more subtypes, repeat the procedures. To remove a subtype, select it and click
.
5. In the Display screen, select a dimension object
in the Resources box and add it to the
Category or Series box, the data of which will be displayed on the corresponding axis. Select a
subtype in the Show Values box, then add a measure object
as the data of the subtype (you
can add more than one measure object to a subtype). Each added subtype shall have at least one
measure object.
6. If you want to define the sort order and Select N condition on the category/series axis of the
chart, click the Order/Select N button below the Category/Series box, then define the condition
in the Order/Select N dialog as required.
a. In the Order box of the dialog, specify in which order values on the category/series axis will
be sorted.
b. In the Select N box, specify the Select N condition to All, Top or Bottom. If All is selected, all
category/series values will be shown in the chart; if Top or Bottom is selected, the text field
next to it will be enabled and you can specify an integer here, which means that the first or
last N category/series values will be shown in the chart.
c. Check the Based On checkbox and specify values for the two drop-down lists that follow
according to your requirement.
If Based On is unchecked, the order of the first or last N category/series values will be based
on what you specify in the Order box of the dialog; if you check it, the order will be based on
values of the summary field and the sort direction you specify in the drop-down lists next to
the Based On checkbox.
d. If you have selected Top or Bottom from the Select N drop-down list, you can check the
Other checkbox and the type a character string in the next text field, so that the category/
series values beyond the first or last N range will be merged into the group with the name as
that character string.
e. Click OK to accept the settings and return to the Chart Wizard.
7. In the Query Filter screen, specify the filter you want to apply to the business/report cube.
8. In the Style screen, apply a style to the chart.
9. Click Finish to create the report.
See also Chart Wizard for details about options in the wizard.
Note: If there is only one cube in the current catalog, this cube will be used to create the report by
default, and the Data screen will be hidden from the wizard. This is the same case when there is only
one style available to be applied to the report.
Creating a crosstab report
A crosstab summarizes data and presents the summaries in a compact row and column format.
To create a crosstab report, follow the steps below:
1. Take steps 1 and 2 in Creating a report.
2. Select Crosstab as the layout and click OK to display the Crosstab Wizard.
3. In the Data screen, select the business/report cube in the current catalog, on which the crosstab
will be built.
4. In the Display screen, select a dimension object
and click
or
to add it to the Columns
or Rows box as a group field. Select a measure object
and click
to add it to the
Summaries box as an aggregate field. Repeat this to add more group/aggregate fields.
5. In the Display Name column, edit the display names of the added group fields or aggregate fields
if required. These will label the rows, columns and summaries when the report is displayed. By
default these are blank and no labels will be created.
6. In the Sort column, specify the sorting manner for the group fields.
7. If you want to remove any group/aggregate field, select it and click
group/aggregate fields, select a group/aggregate field and click
. To adjust the order of the
or
.
8. In the Query Filter screen, specify the filter you want to apply to the business/report cube.
9. In the Style screen, apply a style to the crosstab.
10. Click Finish to create the report.
See also Crosstab Wizard for details about options in the wizard.
Note: If there is only one cube in the current catalog, this cube will be used to create the report by
default, and the Data screen will be hidden from the wizard. This is the same case when there is only
one style available to be applied to the report.
Adding report objects
For a newly-created or an existing report, if the corresponding catalog contains business/report cubes,
then you can add labels, images, banded objects, tables, crosstabs, charts, special fields and web
controls to the report.
Object placement
Objects can be placed within banded objects, tables, tabulars, as well as onto an empty area of a
report. The following table lists the report areas that are valid targets for the various objects, listed on
the left.
Report Layout Area
Page
Header/
Footer
Report
Header/
Footer
Report
Body
Banded
Detail
Banded
Page
Header/
Footer
Banded
Header/
Footer
Banded
Group
Header/
Footer
Table
Cell
Tabular
Cell
Banded
object
Y
N
Y
Y
Y
Y
Y
N
Y
Chart
Y
Y
Y
Y
Y
Y
Y
N
Y
Crosstab
Y
Y
Y
Y
Y
Y
Y
N
Y
Table
Y
Y
Y
Y
Y
Y
Y
N
Y
Dimension
object
Y
Y
Y
Y
Y
Y
Y
Y
Y
Detail
information
object
Y
Y
Y
Y
Y
Y
Y
Y
Y
Measure
object
N
N
Y
N
N
Y
Y
N
N
Formula
Y
Y
Y
Y
Y
Y
Y
Y
Y
Label
Y
N
Y
Y
Y
Y
Y
Y
Y
Special field
Y
N
Y
Y
Y
Y
Y
Y
Y
Image
Y
N
Y
Y
Y
Y
Y
Y
Y
Web control
Y
Y
Y
Y
Y
Y
Y
N
Y
Object
To add an object into a report:
1. Click Menu > Insert, then click the command corresponding to the object you want to add.
2. Point to the destination where you want the object to be added, and then click the mouse button.
❍
❍
❍
❍
If you specify to add a label, a label will be inserted there. Edit the text of the label and format it
according to your requirements.
If you specify to add an image, the Insert Image dialog will be displayed. Specify the source of
the image as required (for details, see Insert Image dialog).
If you specify to add a banded object, table, crosstab, or chart, the corresponding report wizard
will be displayed. Specify the settings in the wizard according to your requirements (for details,
see the specific topic in Creating a report).
If you specify to add a special field, the special field will be inserted there (for details about the
usage of each special field, see Special fields in the JReport Designer User's Guide).
❍
❍
If you specify to add a parameter control, parameter form control, or filter control, the
corresponding insert control dialog will be displayed. For how to specify the settings in the dialog
and the usage of the web control, see Applying web controls.
If you specify to add a navigation control, a navigation control will be inserted there. For the
usage of the navigation control, see Applying web controls.
Alternatively, you can also use the Toolbox panel to add objects other than special fields into a report
by dragging them from the panel to the destination. However, in order to use the Toolbox panel to add
components, you should make sure that this ad hoc feature is enabled in the specified DHTML feature
profile. This setting can only be made by administrators.
Note: A JReport Server Live license is required in order to use this feature. If you do not have a Live
license please contact your Jinfonet Software account manager to obtain a license.
Applying web controls
In JReport Viewer, these four types of web controls can be applied: parameter control, parameter form
control, filter control, and navigation control. This section describes each of the web controls and how
to use them.
Note: A JReport Server Live license is required in order to use this feature. If you do not have a Live
license please contact your Jinfonet Software account manager to obtain a license.
Using parameter control to specify a parameter to a report
A parameter control is a web control that is bound with a parameter used by the current report. By
specifying values to the parameter in a parameter control, you can pass the parameter values to
JReport and run the report with the specified values.
Parameter controls do not support inserting cascading parameters. If you want to do this, use
parameter form controls instead.
To insert a parameter control and use it to specify a parameter to a report:
1. Do either of the following:
❍
❍
Click Menu > Insert > Parameter Control, then point to the destination where you want to
add the parameter control and click the mouse button.
Drag Parameter Control from the Toolbox panel to the destination in the report.
The Insert Parameter Control dialog is displayed.
2. Select the parameter you would like to add to the parameter control, then click OK.
3. A parameter control will be added into the report. There are the following ways to specify
parameter values according to the appearance of the parameter control which varies with the type
and properties of the selected parameter:
❍
Typing in the parameter values if the text field is editable.
❍
Selecting a parameter value from a drop-down list.
❍
Using the calendar button
Time, or DateTime type.
to specify a value using the calendar if the parameter is of Date,
❍
Selecting or unselecting the checkbox to specify a Yes/No value.
❍
Using the button
to specify multiple values for the parameter in the Enter Values dialog.
4. Once the value in the parameter control changes, the report will rerun with the new parameter
value.
Note: If the specified parameter is no longer used in the report, the parameter control will become
invalid.
Using parameter form control to run report sets
A parameter form control is a web control that is bound with the parameters used by the current report
set or other report sets. By specifying values to the parameters in a parameter form control, you can
make the report sets run with the specified parameter values.
To insert a parameter form control and use it to run report set:
1. Do either of the following:
❍
❍
Click Menu > Insert > Parameter Form Control, then point to the destination where you
want to add the parameter form control and click the mouse button.
Drag Parameter Form Control from the Toolbox panel to the destination in the report.
The Insert Parameter Form Control dialog is displayed.
2. Specify the target report sets to run using the parameter form control.
❍
❍
To run the current report set, select Current Report, then specify the parameters used to run
the report set from the Select Parameters box.
To run other report sets, select Others, then select the report sets you want to run. All the
parameters used by the selected report sets are displayed in the Parameter Information box. If
all the selected report sets contain no parameters, you cannot finish the dialog.
3. Specify whether to include the Submit button in the parameter form control. If Submit is included,
it is used to submit the parameter values you specified in the parameter form control. If Submit is
not included, once you change the values of a parameter in the parameter form control, the new
values will be applied automatically.
4. Click OK in the dialog to save the changes.
The parameter form control is now inserted in the report. It lists the selected parameters for the
current report set or lists all parameters used by the specified report sets.
5. In the parameter form control, specify values of the listed parameters.
6. Click the Submit button if present to run the current report set or the specified report sets. If
there is no Submit button, the change of values in the parameter form control will trigger report
set rerunning.
Note: If you save or publish a report set containing a parameter form control to another directory, the
report sets that you bind the parameter form control with will not be saved or published along with the
report set.
Using filter control to filter report data
A filter control is used to filter one or more data components, which refer to tables, banded objects,
charts, and crosstabs, in a report using the same data source. A filter control can do filtering based on
one field.
To insert a filter control and use it to filter report data:
1. Do either of the following:
❍
❍
Click Menu > Insert > Filter Control, then point to the destination where you want to add the
filter control and click the mouse button.
Drag Filter Control from the Toolbox panel to the destination in the report.
The Insert Filter Control dialog is displayed.
2. Specify the field on which the filter control is based on, then click OK.
3. The filter control is inserted in the report. It lists all values of the specified field. You can select
one or more values to apply.
4. By default the filter control applies to all the data components in the report that are using the
same data source as the filter control's field. You can specify the exact components to be applied.
To do this, right-click the filter control's title bar, select Properties. Then in the displayed dialog,
select the desired components from the Apply To drop-down list.
After inserting filter controls in the report, you can also insert a navigation control for undoing/redoing
the value selection in the filter controls. For details about the usage of navigation control, see Using
navigation control to undo/redo value selection in filter controls.
Managing a filter control
After right-clicking the title bar of a filter control, these options are available for managing the filter
control.
●
●
Properties
Opens the Filter Control Properties dialog for editing the properties of the filter control.
Search
Displays the quick search toolbar right above the filter control which enables you to search values in
the filter control. You can also click the button
quick search toolbar.
on the title bar of the filter control to launch the
The following are details about the usage of the quick search toolbar:
❍
❍
❍
Text field
Type in the text you want to search for in the text field and the matched text will be highlighted
among the field values.
X
Closes the quick search toolbar. You can also click outside of the quick search toolbar to achieve
this.
Lists the advanced options.
■
■
■
❍
Highlight All
Specifies whether to highlight all matched text.
Match Case
Specifies whether to search for text that meets the case of the typed text.
Match Whole Word
Specifies whether to search for text that matches a whole word and ignore partial word matches.
Highlights the next matched text.
❍
●
Highlights the previous matched text.
Clear
Cancels the selection of values in the filter control. You can also use the button
cancel the selection. This operation can be undone/redone.
●
●
●
on the title bar to
Sort
Sorts the values in the filter control in the ascending or descending order.
Delete
Removes the filter control from the report and the filter you created with the filter control will be
removed from the report too. You can also use the close button on the title bar to remove the filter
control.
Hide
Hides the filter control.
Cascading relationship between filter controls
When there are filter controls that apply to the same data components, and when these controls' fields
have cascading relationship, the cascading relationship will be revealed when you select values in the
controls.
For example, there is a filter control based on the field Country, a filter control on City, and another on
State. The first two share one table while the third shares nothing with the other two. In this case,
Country and City values will show cascading relationship, but State values will not participate. You
select USA in the Country filter control, the values in the City filter control will change as follows if the
control has scroll bar: the cities belong to USA are displayed in the upper area of the filter control, and
the other cities are put in the lower area and grayed out. For the case that the City filter control has no
scroll bar: all the values remain their positions and the values not belonging to USA are grayed out. In
both cases all the values are selectable. But the State values remain as before, since the selection of
them will not affect the data components that the Country and City filter controls control.
Using navigation control to undo/redo value selection in filter controls
A navigation control can be considered as an accessorial control for filter controls and is used to deal
with the value selection operations in all the filter controls in the same report.
To insert a navigation control into a report, do either of the following:
●
●
Click Menu > Insert > Navigation Control, then point to the destination where you want to add
the navigation control and click the mouse button.
Drag Navigation Control from the Toolbox panel to the destination in the report.
A navigation control is a combination of three buttons:
●
●
Back
Goes back to the previous value selection status and refreshes the report data accordingly.
Clear
Removes all the value selection histories and all the filter conditions based on the selections, and
refreshes the report data accordingly.
●
Forward
Goes forward to the next value selection status and refreshes the report data accordingly.
Making simple modifications to report objects
By virtue of JReport Viewer's powerful ad hoc functions, you can make simple modifications to report
objects at runtime while viewing the report in DHTML.
Note: Except for showing/hiding objects, a JReport Server Live license is required in order to use all
the other features introduced in this article. If you do not have a Live license please contact your
Jinfonet Software account manager to obtain a license.
Moving an object
A table, banded object, chart, crosstab, tabular, or image, can be easily moved to a new position. What
you need to do is click anywhere in the object, then drag the icon
appearing at its upper left corner
to the destination. After JReport Viewer has finished processing, the object will be redrawn in the new
location.
For other objects, select it and move it to the new position.
Notes:
●
●
Before you can move any object in a report, you need to first make sure that the JReport Viewer
window is in the Interactive View mode.
For reports designed in JReport Designer, only the objects whose Position property value is absolute,
and the DBFields or labels which have been defined as a cube element can be moved in JReport
Viewer.
Resizing an object
To resize an object, click anywhere in the object, when the icon
appears at its upper left corner,
click the icon to select the object, then you will see that it is surrounded by a rectangle with three
resizing handles. Point to a handle, when the mouse pointer turns to a double-headed arrow, you can
drag the handle to resize the object.
To resize a panel in a banded object, select it and drag the resizing handle to the desired position.
To adjust the width/height of a column/row in a table, point to the right/lower boundary of the column/
row, when the mouse pointer becomes a horizontal/vertical double-headed arrow, drag the handle and
the width/height of the column/row will change. This will also resize all cells in the column or row.
For a crosstab, you can resize its rows and columns the same as you do with a table.
For a tabular, point to the boundary between two cells and the mouse pointer will become a doubleheaded arrow, you can then drag the boundary to adjust the size of the related cells.
To change the width and height of a field, click any value of this field to select it, then drag the right or
lower resizing handle on its borders to a new position, and the width or height of the field will change.
You can also do this for any label.
Notes:
●
When resizing table rows:
❍
❍
If you resize the table header, only the height of the header will be changed. However, when you
resize any row except the header, the height of all rows in the table will be changed at the same
time.
If there are some groups in a table and the height of one group row is changed, the other group
rows will not be resized.
When resizing crosstab columns/rows:
●
❍
If you resize the horizontal/vertical header of a crosstab, other rows/columns will not be affected.
❍
If you resize the total column/row of a crosstab, other columns/rows will not be affected.
Hiding/showing an object
To hide a table, banded object, chart, crosstab, or tabular, click on the object, when the icon
appears at its upper left corner, right-click on the icon and then select Hide from the shortcut menu.
For other objects such as text boxes, drop-down lists, fields, and labels, right-click it and then select
Hide to hide it.
To show a hidden object, right-click the object containing it, then on the shortcut menu, select the
object name from the Show submenu.
Splitting and merging cells in a tabular
Adjacent cells in a tabular which can form a rectangle may be merged into one cell.
To merge adjacent cells, select them one by one while holding the Ctrl key, then click Menu > Report
> Merge, and these cells will be merged into one cell.
To split a cell:
1. Select the cell and click Menu > Report > Split.
2. In the Split dialog, specify the number of rows and columns.
3. Click OK and the cell will be split.
Modifying object properties
JReport Viewer allows you to modify object properties with the corresponding properties dialog.
●
●
●
To format the properties of any object in a report, right-click on the object and select Properties
from the shortcut menu. If it is a table, crosstab, chart, banded object, or tabular, click anywhere on
it, when the icon
appears at its upper left corner, right-click on the icon and click Properties on
the shortcut menu. In the corresponding properties dialog, specify the settings as required. For a
table, you can also right-click any field or cell in it and select Table from the shortcut menu to show
the Table Properties dialog.
You can right-click a group header/footer panel in a banded object, and then select Group to show
the Group Properties dialog in order to define the group properties.
If you want to format the properties of the report, right-click the blank part of the report, select
Report from the shortcut menu, then in the Report Properties dialog, configure the properties as
required.
●
To set up report page properties, click Menu > File > Page Setup, then in the Page Properties
dialog, specify the settings according to your requirements.
Tip: If you just want to modify the text related properties for a field or label, for example, you want to
change the text alignment or make the text bold, you can achieve it by simply selecting the field or
label, then clicking the corresponding buttons on the toolbar.
For detailed explanation about options in the properties dialogs, refer to the specific topics in JReport
Viewer dialogs.
Deleting an object
An object can be removed from the report if it is no longer required. However, objects that are in a
subreport cannot be deleted.
●
●
To delete a table, banded object, chart, crosstab, tabular, or image, click on the object, when the
icon
appears at its upper left corner, right-click on the icon and select Delete from the shortcut
menu, or you can drag the icon outside the report page. Then, a message box will prompt, asking for
your confirmation. Click OK in the message box so as to remove the component.
For a field, you can drag any value of the field outside the report page to remove it. You can also
drag any label outside the report page to remove it. Right-clicking and then selecting Delete is
another way to achieve this.
Saving the report set
You can save your report set in a JReport Viewer window. To do this, click Menu > File > Save (or the
on the Standard toolbar). The Save Report Template dialog appears. The Sort and
Save button
Filter options in this dialog signify whether or not to include the sort and filter criteria when saving.
Specify the options as required, then click OK, and the report set will be saved as a report set version.
If the report set is newly created and has not yet been saved, the Save As dialog will be displayed.
1. In the Report Set Name box, enter the name of the report set as required. Select a file format
from the format drop-down list.
2. From the Folder drop-down list, specify where the report set will be saved: Public Reports or My
Reports.
3. From the Directory drop-down list, further specify the directory in which the report set will be
saved.
4. Optionally, input some text in the Description box as a description for the report set.
5. Click the Advanced button to set the advanced settings for the report set if required.
a. From the Catalog drop-down list, select the catalog for the report set.
b. Specify the relationship between the saved report set and the catalog used to run it
(activated only when Select Catalog Linked Model is checked in the Profile > Configure
DHTML Profile > Properties > Advanced tab):
■
■
Set Original Catalog as Linked Catalog into Saved Report Set
If checked, the saved report set will be linked with the catalog and the saved report set will
run with the catalog no matter whether the two are in the same directory. If later the
catalog is updated, the saved report set will run with the latest version of the catalog.
Set Catalog Copy to Public Reports/My Reports
If checked, the catalog will be copied to the directory where the report set is saved and the
saved report set will run with the copied catalog.
c. If you want to save the report set together with the sort and filter criteria, check Save Sort
Criteria and Save Filter Criteria correspondingly. With the criteria saved, JReport Viewer
will automatically apply them to the report set the next time it is opened.
6. Click OK to save the report set.
To save a copy of a report set, click Menu > File > Save As (or the Save As button
Standard toolbar) to show the Save As dialog, and then do as above.
on the
Notes:
●
●
●
You will not be able to save the report set to some locations if you do not have the required
permissions. You need to have Write access to the directory.
If one of the reports in a report set contains subreports, when you save the report set, changes you
have made on the subreports will not be saved along with the primary report.
To find a newly saved report set version, browse to select the row that the report set is in on the
JReport Console > Reports page, click Tools > Version on the task bar, and then click the Report
Set Versions tab.
Exporting the report result
When you are satisfied with the result of the active report, you may want to export it as a result
version or as a local file to other formats.
The following topics describe exporting report results in detail:
●
Exporting the result from a JReport Viewer window
●
Exporting the result by using a JavaScript function
●
Customizing buttons for one-step exporting
●
Controlling user access to different export formats
●
Customizing warning messages
Note: If the report you are going to export is linked to another report, in the exported results, the link
will no longer be available.
Exporting the result from a JReport Viewer window
You can export the report result from a JReport Viewer window to other formats by taking the following steps:
1. Click Menu > File > Export (or the Export button
dialog.
on the Standard toolbar) to display the Export
2. From the Select Report Result Format drop-down list, select the format in which to export the result:
HTML, PDF, Excel, Text, RTF, XML, PostScript, or DHTML Result.
3. Specify the destination of the result:
❍
❍
❍
Save to Version System: The result will be saved as a result version in JReport Server's versioning
system.
Save to File System: The web browser will prompt you to save the result file to a specified folder. If
selected, you need to provide a name for the result file in the File Name field.
View Report Result: The result will be directly opened in the web browser if the format is supported
by a plug-in of the web browser; otherwise it will prompt you to save the result file.
4. In the File Name field, specify the name of the exported result file.
5. To specify the additional setting of the selected format, click More Options.
6. From the Style Group drop-down list, select the style group you want to apply to the exported report
result. If No Style is selected, the style group property predefined for the specified export format in
JReport Designer will be applied to export the report result to that format.
7. Set the other properties for the selected format as required (for details about properties of each format,
see Export dialog).
8. Click OK to confirm.
Exporting the result by using a JavaScript function
JReport Server provides you with a JavaScript function which allows you to open the report result or
export it in a specified format. You can find this function in the file API.js in <server_install_root>
\public_html\javascript\dhtml, as shown below:
function user_oneStepExport(type, options)
The following explains this function's two arguments, type and options, in detail.
type - Specifies the export format.
●
HTML = 0
●
PDF = 2
●
PS = 3
●
RTF = 4
●
TEXT = 5
●
EXCEL = 6
●
XML = 7
options - Specifies the values of the options of each format. It is a string array whose member is of
the format "key=value". The options and their usage are listed as follows:
Description
Available Value
Default
Value
to_ver
Specifies whether or not to save the result to
version.
true, false
false
to_open
Specifies whether or not to export and open the
result file.
true, false
false
to_local
Specifies whether or not to save the result to a
local file.
true, false
false
browser
Specifies the web browser type.
0 - IE or Chrome
0
Key
HTML
1 - Firefox
imagetype
Specifies the type of the images in the result file.
0 - Decided by JReport
0
1 - GIF
2 - JPG
overflow
Specifies the overflow type.
0 - VISIBLE
0
1 - HIDDEN
2 - VERFLOWCOUNT
resolution
Specifies the HTML resolution.
Any integer between 1 and
4294967296
96
title
Specifies the title for the HTML file.
Any string
""
applet
Specifies whether or not to export chart in Java
applet format.
true, false
true
css
Specifies whether or not to embed the cascading
style sheet in the exported HTML files.
true, false
false
multi
Specifies whether or not to generate an HTML file
for each page of the report result.
true, false
false
hyperlink
Specifies whether or not to contain hyperlinks in
the HTML file.
true, false
false
pagenumber
Specifies whether or not to contain page numbers
in the HTML file.
true, false
false
drilldown
Specifies whether or not to include the drilled-down true, false
file in the exported HTML file.
false
no_margin
Specifies whether or not to remove the original
margins.
true, false
false
absolute
Specifies whether or not to make the font size fixed true, false
in the web browser.
false
to_ver
Specifies whether or not to save the result to
version.
true, false
false
to_open
Specifies whether or not to export and open the
result file.
true, false
false
to_local
Specifies whether or not to save the result to a
local file.
true, false
false
no_margin
Specifies whether or not to remove the margin.
true, false
false
simulate
Specifies whether or not the mode is to be
Simulated Printing Mode.
true, false
true
standard
Specifies whether or not to set the mode as
Standard Mode.
true, false
false
content
Specifies whether or not to contain the TOC in the
exported PDF file.
true, false
false
drilldown
Specifies whether or not to include the drilled-down true, false
file in the exported PDF file.
false
encrypt
Specifies whether or not to encrypt the report
result.
true, false
false
compress
Specifies whether or not to compress the images in
the report.
true, false
false
ratio
Specifies the percentage with which to compress
the images in the report.
Any integer between 1 to 100
20
compatibility
Specifies the encryption compatibility.
0 - Acrobat 3.0 and later
1
PDF
1 - Acrobat 5.0 and later
doc_psw
Specifies the password for opening the PDF file
when encrypt=true.
Any string
""
permi_pasw
Specifies the password for printing and editing the
PDF file when encrypt=true.
Any string
""
printing
Specifies the PDF printing mode.
0 - Prevents users from
printing the file
0
4 - Allows low resolutionprinting
2052 - Allows high-resolution
printing
changes
Defines which editing actions are allowed in the
PDF file.
0 - Prevents users from
making any changes to the file
0
1024 - Allows inserting,
deleting, and rotating pages
256 - Allows users to fill in
form fields and adding digital
signatures.
32 - Aallows users to fill in
form fields and add digital
signatures and comments
40 - Allows users to do
anything except extracting
pages
2108 - Allows all
enable_copy
Specifies whether or not to allow users to copy the
file contents.
true, false
false
enable_access
Specifies whether or not to let visually impaired
users read the document with window readers.
true, false
true
to_ver
Specifies whether or not to save the result to
version.
true, false
false
to_open
Specifies whether or not to export and open the
result file.
true, false
false
to_local
Specifies whether or not to save the result to a
local file.
true, false
false
no_margin
Specifies whether or not to remove the margins in
the PS file.
true, false
false
to_version
Specifies whether or not to save the result to
version.
true, false
false
to_open
Specifies whether or not to export and open the
result file.
true, false
false
to_local
Specifies whether or not to save the result to a
local file.
true, false
false
rtf_flow
Specifies whether or not to apply a flow layout
when exporting the report to RTF.
true, false
false
no_margin
Specifies whether or not to remove the margins in
the RTF file.
true, false
false
to_ver
Specifies whether or not to save the result to
version.
true, false
false
to_open
Specifies whether or not to export and open the
result file.
true, false
false
to_local
Specifies whether or not to save the result to a
local file.
true, false
false
repeat
Specifies whether or not to replace a field value of
a record with that of its previous record if the field
value is null.
true, false
false
compress
Specifies whether or not to compress the clearance
between columns.
true, false
false
win_linebreak
Specifies whether or not to use Windows end-ofline characters.
true, false
true
normal
Specifies whether or not to generate the report
result to a standard text file.
true, false
true
PostScript
RTF
Text
quote_mark
Specifies whether or not to mark the fields in the
exported file with quotation marks.
true, false
false
head_foot
Specifies whether or not to contain all headers and
footers in the report.
true, false
true
delimiter
Specifies the delimiter.
Any single character
width
Specifies the user-defined character width.
An integer
height
Specifies the user-defined character height.
An integer
to_ver
Specifies whether or not to save the result to
version.
true, false
false
to_open
Specifies whether or not to export and open the
result file.
true, false
false
to_local
Specifies whether or not to save the result to a
local file.
true, false
false
wrap
Specifies the word-wrap setting.
0 - All Keep Existing
0
Excel
1 - All Disabled
2 - All Enabled
new_layout
Specifies whether or not to use the new layout
mode.
true, false
true
shapes
Specifies whether or not to include the shapes in
the exported file.
true, false
false
excel_2000
Specifies whether or not to export the result in
Excel 2000 format.
true, false
false
advanced
Specifies whether or not to apply the advanced
options.
true, false
false
header
Specifies the page header text.
Any string
footer
Specifies the page footer text.
Any string
gridline
Specifies whether or not to print gridlines when
printing the exported Excel file.
true, false
false
to_ver
Specifies whether or not to save the result to
version.
true, false
false
to_open
Specifies whether or not to export and open the
result file.
true, false
false
to_local
Specifies whether or not to save the result to a
local file.
true, false
false
only_data
Specifies whether or not to only contain the
database column information in the exported XML
file.
true, false
false
schema
Specifies the name of an existing schema file with
its full path with which to generate the XML file.
An existing schema file with its
full path.
XML
Notes:
●
●
The three options to_ver, to_open, and to_local are mutually exclusive, that is, only one of them
should be true, and the rest false. If you set two or three of them to true, JReport will only accept
the first true and treat the rest as false. If you set all three to false, JReport will consider to_open as
true.
In the string array options, the members are separated by commas (","). You can arrange the
members in any order, and omit those keys where you want to use the default value. For example,
you can define a variable html_options:
var html_options = ["imagetype=1", "resolution=120", "hyperlink=true",
"no_margin=false", "title=hello world"];
Then, you can use user_oneStepExport(0, html_options) to obtain a URL for exporting the report
result in HTML format.
●
JReport also provides the function user_downloadReport(type, options) whose usage is similar to
user_oneStepExport.
Customizing buttons for one-step exporting
Seven buttons are provided for one-step exporting. They are Export to PDF, Export to Excel, Export to
RTF, Export to HTML, Export to Text, Export to PS, and Export to XML. By default, the buttons are
invisible on the toolbar area. You have to add them to the toolbar area by modifying the index.jsp file
in <install_root>\public_html\dhtmljsp.
Use the following two API functions to control the buttons:
public void customizeToolbar(String SessionId, String RptSetId, String toolbarname, int[] buttonId);
●
●
public void customizeToolbar(String SessionId, String RptSetId, String toolbarname, int[] buttonId,
boolean isVisible);
Explanation of these parameters:
●
SessionId - session ID, which can be retrieved by DHTMLUtil.getSessionID(request).
●
RptSetId - report set ID, which can be retrieved by obDHTMLUtil.getRptSetId(request).
●
toolbarname - toolbar name, such as "Standard", "Analysis", "View", or user-defined ones.
●
buttonId[] - toolbar button ID. It is an integer array, so you need define an integer array variant.
For example: int[] mybuttonid ={DHTMLConstant.TOOLBAR_EXPORTTOPDF, DHTMLConstant.
TOOLBAR_EXPORTTOXLS, TMLConstant.BTN_EXPORT_TO_RTF}
The array elements available for one-step exporting are:
●
❍
DHTMLConstant.TOOLBAR_EXPORTTOPDF
❍
DHTMLConstant.TOOLBAR_EXPORTTOXLS
❍
DHTMLConstant.TOOLBAR_EXPORTTORTF
❍
DHTMLConstant.TOOLBAR_EXPORTTOHTML
❍
DHTMLConstant.TOOLBAR_EXPORTTOTEXT
❍
DHTMLConstant.TOOLBAR_EXPORTTOPS
❍
DHTMLConstant.TOOLBAR_EXPORTTOXML
isVisible - whether or not to show the buttons defined with buttonID[]. true -- show, false -- hide.
This parameter can be absent, and then the value is true.
For example, if you want to add the Export to HTML button to the Export toolbar, then:
1. Open the file index.jsp.
2. Add the code
int[] temparray = {DHTMLConstant.TOOLBAR_EXPORTTOHTML};
dhtmlConfig.customizeToolbar(SessionID, RptSetId, "Export", temparray, true);
before
//<!-- Tool Bar -->
if(dhtmlConfig.isFeatureEnabled(SessionID, RptSetId, DHTMLConstant.
FEATURE_TOOLBAR)){
3. Start JReport Server.
4. Run a report set in the DHTML format, and you will see a new button Export to HTML is displayed
on the Export toolbar.
To add more than one button to the toolbar area, for example, adding Export to HTML and Export to
PDF buttons to the Export toolbar:
1. Open the file index.jsp.
2. Add the code
int[] temparray = {DHTMLConstant.TOOLBAR_EXPORTTOHTML, DHTMLConstant.
TOOLBAR_EXPORTTOPDF};
dhtmlConfig.customizeToolbar(SessionID, RptSetId, "Export", temparray, true);
before
//<!-- Tool Bar -->
if(dhtmlConfig.isFeatureEnabled(SessionID, RptSetId, DHTMLConstant.
FEATURE_TOOLBAR)){
3. Start JReport Server.
4. Run a report set in the DHTML format, and you will see the buttons Export to HTML and Export to
PDF are displayed on the Export toolbar.
5. Click the added button on the toolbar of the report page, the report will be exported to the
corresponding format, using the default values of the format options.
Controlling user access to different export formats
JReport introduces an access control ability which can restrict different users to export report result to
different formats.
How to realize the access control ability
You can restrict the report result formats for users by passing values to a variable. That is the global
variable enableTypes in both customize_panel.jsp and save_result.jsp files in <install_root>
\public_html\dhtmljsp folder. The value of enableTypes should be Integer, and JReport gives you the
following integers to represent the corresponding report result types:
Report Result
Format
Int. Value
HTML
0
PDF
1
Excel
2
Text
3
RTF
4
XML
5
PostScript
6
You can specify a value or an array to enableTypes using the integers in the above table. Or you can
also use the integers which are not mentioned above, but if you do so, the Int. values will be ignored,
and do not function. That is to say, if you pass the array {1,2,5,9,-2} to enableTypes, 9 and -2 will be
ignored and {1,2,5} will work, so PDF, EXCEL, XML formats can be in use.
Example
Assume that there are two users, user1 and user2. When user1 logs on, run a DHTML report set, he
can only export the report result as PDF and HTML formats. While user2 can export the report result as
RTF and XML formats when logging on. To realize it, you can use the following codes in
customize_panel.jsp or save_result.jsp file:
int[] enableTypes=null;
String UserName=null;
UserName=DHTMLUtil.getUserName(request);
if(UserName.equalsIgnoreCase("user1"))
enableTypes=new int[]{1,0};
if(UserName.equalsIgnoreCase("user2"))
enableTypes=new int[]{4,5};
Customizing warning messages
You can customize the warning messages when exporting the report result to XML through JReport
Viewer. With this function, you can specify what you want to show as a warning message. The custom
warning messages are supported across web browsers.
To customize the warning messages, you need to customize the jsp files using either of the following
two methods:
Method 1
1. Open the save_result.jsp file in the <install_root>\public_html\dhtmljsp folder with your
favorite editor.
2. Specify the value of customMsgForXML in the save_result.jsp to whatever you want. The value
cannot be "" or null.
3. Run a report set in JReport Viewer, click Menu > File > Export to display the Export dialog.
4. Select XML from the Select Report Result Format drop-down list, and if necessary, modify other
properties as required, then click OK.
5. A warning message shows as you have defined.
Method 2
You can also export the report result via the Export panel instead of clicking Menu > File > Export. By
default, the panel is hidden. So, the following is another way to create custom warning messages:
1. Open the customize_panel.jsp file in the <install_root>\public_html\dhtmljsp folder with your
favorite editor.
2. Set the class of panelDIV to visibleMargin to show the Export panel on web browser.
3. Specify the value of customMsgForXML in customize_panel.jsp.
4. Run a report set in JReport Viewer, and the Export panel together with the report set shows.
5. Select XML from the Select Report Result Format drop-down list, and if necessary, modify other
properties as required, then click OK.
6. A warning message shows as you have defined.
For example, using method2, when you need to export the report result as XML, and if you want to
show "This is IE Browser" while browser is IE, you need to set panelDIV in customize_panel.jsp file to
visibleMargin as follows:
<div id="<%=DHTMLConstant.DHTML_PREFIX%>panelDIV" class="visibleMargin">
And then customize CustomMsgForXML in the same jsp file as follows:
String browserName=request.getHeader("User-Agent");
String customMsgForXML ="This is "+browserName;
Access JReport Server via IE, run a report set in JReport Viewer, select XML from the Select Report
Result Format drop-down list in the Export panel, and click OK. Then a pop-up box will show you "This
is IE Browser".
DHTML based reporting
DHTML based reporting enables enterprise-wide information delivery. With JReport Viewer,
organizations can harness the power of the Internet, giving users across the enterprise the ability to
access and generate reports from their own web browsers.
The DHTML based reporting function of JReport empowers you to perform the following operations:
●
Filtering report data
●
Sorting report data
●
Searching for text in a report
Filtering report data
In JReport Viewer, data is cached in a data buffer. You can set a series of conditions and apply them to a DHTML
server to filter the data buffer and reproduce the report result.
There are these methods you can use to set the filter conditions: using the Filter dialog, using filter controls,
using the shortcut menu, and using labels.
Using the Filter dialog
To set the filtering conditions using the Filter dialog:
1. Click Menu > Report > Filter, or the Filter button
on the Analysis toolbar to show the Filter dialog.
2. Select the component on which the filtering will be based from the Apply to drop-down list.
3. Define the filter as required.
There are the basic and advanced modes of the dialog for you to define either simple or complex filter
expressions.
❍
To define a filter using simple expressions:
a. Make sure the dialog is in the basic mode.
b. From the field drop-down list, select the field on which the filter will be based.
c. From the operator drop-down list, set the operator with which to compose the filter expression.
d. Type the values of how to filter the field in the value text box, or select one or more values from the
drop-down list.
e. If you want to add another condition line, from the logic operator drop-down list,
■
■
To add a condition line of the AND relationship with the current line, select AND, then define the
expression as required.
To add a condition line of the OR relationship with the current line, select OR, then define the
expression as required.
Repeat this to add more filter expressions if required. To delete a condition line, click
❍
on its left.
To define a filter using complex expressions:
a. Switch the dialog to the advanced mode.
b. From the field drop-down list, select the field on which the filter will be based.
c. From the operator drop-down list, set the operator with which to compose the filter expression.
d. Type the values of how to filter the field in the value text box, or select one or more values from the
drop-down list.
e. To add another condition line, click the Add Condition button and define the expression as required.
Then, click the logic button until you get the required logic to specify the relationship between the
two filter expressions. The logic can be AND, OR, AND NOT, or OR NOT.
f. Repeat the above steps to add more filter expressions if necessary.
To group some conditions, select them and click the Group button, then the selected conditions will
be added in one group and work as one line of filter expression. Conditions and groups together can
be further grouped. To take any condition or group in a group out, select it and click Ungroup. It is
the equivalent of adding parenthesis in a logic expression.
To adjust the priority of a condition line or a group, select it and click the Up or Down button.
To delete a condition line or a group, select it and click the Delete button.
4. Click OK to make the filter take effect and return to the report.
Using filter controls
A filter control is a web control used to filter one or more data containers, which refer to tables, banded objects,
charts, and crosstabs, in a report using the same data source. A filter control can do filtering based on one field.
For details, see Using filter control to filter report data.
Using the shortcut menu
You can also use filter-related commands on the shortcut menu to filter the data in a banded object or table. To
do this, point to any value of the field by which you want to filter data, then right-click to show the shortcut
menu. You will see the Filter item which provides a submenu containing the following commands:
●
●
Remove Filter
This command is enabled after you have applied filtering on the field to the banded object or table. Clicking this
item will remove all filters on this field.
Top N
Shows the Top N dialog with which you can filter data to display records that meet the Top N condition.
For example, if you input 3 in the Top N dialog for a certain field, then only the records with the field value
equal to one of the first three field values will be displayed.
●
Bottom N
Shows the Bottom N dialog with which you can filter data to display records that meet the Bottom N condition.
For example, if you input 3 in the Bottom N dialog for a certain field, then only the records with the field value
equal to one of the last three field values will be displayed.
●
●
Field values
"Field values" is not the name for a command on the Filter submenu, but represents some items which are the
values of the field you have right-clicked. Selecting any field value listed here will make the banded object or
table only display records with the field value equal to the selected one.
More
This command is enabled if the Filter submenu cannot list all field values. When it is enabled, clicking it will
show the Select Values dialog. You can select one value in this dialog and apply the setting, after which the
banded object or table will only display records with the field value equal to that value.
Using labels
You can also use a label to control the filter condition in a banded object or table. This feature needs to be
enabled at report design time.
1. In JReport Designer, select a label in a banded object/table, and then set its Filterable property to true.
2. Set the field by which you want to filter records as the value of the label's Bind Column property.
3. Save the report set and publish it to JReport Server.
4. Run the report set in JReport Viewer, and you can find that a button
is beside the label. Click it to show
the Filter list, which contains All, Top N, Bottom N, Custom Filter, the field values, and More (if there are too
many distinct values for the field), then click the corresponding item to filter the records.
After applying a filter on the field decided by the Bind Column property, the button
will be affixed with a
check mark, and you can still click it to show the Filter list, in which the All item can help you remove the
filters on the field.
Notes:
●
●
●
You can also filter records by using the shortcut menu for a label in the same way as for a field value, provided
you have set its Bind Column property value to a field.
When using the shortcut menu for a field value or label to filter, all the items (Remove Filter, Top N, Bottom N,
and More) will be showed by default. If you want to disable some of the items, you should set the field's Filter
Options property when designing the report set in JReport Designer. For details, see Setting filter options for a
field in the JReport Designer User's Guide.
For filtering the data using shortcut menu or labels, you may notice that the corresponding filter expressions
will appear in the Filter dialog if you open this dialog.
●
JReport allows you to define the display names for fields to be shown in the Filter dialog. For detailed
information, see Customizing the field display names in the JReport Designer User's Guide.
Sorting report data
You can sort the records in a banded object or table, and the groups in a certain group level of the
banded object or table if you have defined one or more group levels. If you want the data of other
types of cube elements to be sorted, you should put the cube element into a banded object or table
and make the data of the cube element inherit from the banded object or table.
●
●
Sorting records: Changing the order of records in the whole banded object or table, or in each
group if there exists one or more group levels. The sorting scope is the whole banded object or table.
Sorting groups at a group level: Changing the order of groups at the specified group level, that
is, the groups will be sorted by value of the first record in each group on the related field. The sorting
scope is the group level.
You can achieve the above by using the Sort dialog, shortcut menu, or labels.
Using the Sort dialog
To set the sort conditions in the Sort dialog:
1. Click Menu > Report > Sort (or the Sort button
Sort dialog.
on the Analysis toolbar) to bring up the
2. From the Sort in Scope drop-down list, select a banded object/table or a group field on which the
sort condition will be based.
3. From the field drop-down list, select the field on which to sort the data, then set the sort order to
Ascending or Descending.
4. If you select a banded object/table in Step 2, you can click
to add a new row of sorting
condition if required. Click
or
to move a row up or down so as to set the sorting priority,
to delete the corresponding sorting condition if it is unwanted.
If what you select in the Sort in Scope drop-down list is a group field, then only one sort condition
can be composed.
To retrieve the opening status of this dialog, click the Reset button.
5. Click OK to accept the settings and to reload the result.
Using the shortcut menu
To sort data on a certain field using shortcut menu:
1. Point to any value of a detail field or group field by which to sort the data in the banded object/
table, and then right-click.
2. Choose the command Sort > Ascending or Sort > Descending from the shortcut menu.
If what you right-click in Step 1 is a detail field value, the sorting will affect the order of detail
records in the banded object or table; if it is a group field value, the order of groups in the group
level represented by the group field will be rearranged.
To remove the sort condition on a field, click Sort > No Sort.
Using labels
You can use a label to control the sorting order for a certain field. This feature needs to be enabled at
report design time.
1. In JReport Designer, select a label in a banded object/table, and then set the Sortable property of
the label to true.
2. Set the field by which you want to sort records as the value of the label's Bind Column property.
3. Save the report set and publish it to JReport Server.
4. Run the report set in JReport Viewer, and you can click
beside the label to sort the data. This
button will change after you have clicked it, and you can further click it to switch the sorting
direction among ascending, descending, and no sort.
Notes:
●
●
●
You cannot sort the data by a global type formula.
You can also conduct sorting by using the shortcut menu for a label in the same way as for a field
value, provided you have set its Bind Column property.
For sorting the data using shortcut menu or labels, you may notice that the corresponding sort
expressions will appear in the Sort dialog if you open this dialog.
●
●
●
●
If you use the shortcut menu to sort the report data by a field and then sort by another field, the
later sort condition will replace the former one.
JReport allows you to define display names for fields to be showed in the Sort dialog. For detailed
information, see Customizing the field display names in the JReport Designer User's Guide.
You can right-click an object in a banded object and select the Reset item from the shortcut menu to
reproduce the data of the banded object using the data cached in the data buffer. This will clear all
sort and filter conditions except for those predefined in JReport Designer.
Administrators can customize the buffer size for sorting of each report in the Configuration page of
JReport Server so as to improve performance.
Searching for text in a report
You can use the Search dialog to find text in the values of a certain field or in the whole report content.
on the Standard
To show this dialog, click Menu > Edit > Search, click the Search button
toolbar, or right-click a field value or label (or object such as text box) and click Search on the
shortcut menu.
●
To find text in the values of a particular field:
1. Make sure the Search in Whole Report option in the Search dialog is NOT checked.
2. Select the field from the Select Field drop-down list.
3. Set the range with which to search for the value from the Value Range drop-down list.
4. Select the field value you want to search for from the Value drop-down list.
Note: If All is selected in the Value Range drop-down list, the only item in the Value dropdown list will be All and you cannot change the value, in which case, when you submit the
search, JReport will search for all the values of the selected field.
●
Specify whether or not to match case, whether or not to match whole word, whether or not to
highlight all the matching values and the searching direction.
●
Click the Search button.
●
To find text in the report content:
1. In the Search dialog, check the Search in Whole Report checkbox.
2. Type the string you want to search for in the Value box.
3. Set the other options such as the searching direction.
4. Click the Search button.
Notes:
●
●
●
●
Finding text in the values of a particular field is not supported on crosstabs and charts.
If you check Highlight All in the Search dialog, to clear the highlighting in the search result, uncheck
the option and submit the search again, or refresh the report.
If you have not selected the Search in Whole Report option, you will not be able to search special
fields for strings.
JReport allows you to define display names for fields to be shown in the Search dialog. For detailed
information, see Customizing the field display names in the JReport Designer User's Guide.
Analytic reporting
JReport Viewer provides you with a convenient and powerful tool to analyze your business information.
By providing secure web access to business data and making the data interactive, JReport Viewer
facilitates data analysis.
JReport Viewer enhances the utility of production reports by making them interactive - allowing you to
define your view of data to make it more useful. Through a user-friendly web GUI, report contents can
be easily navigated, drilled, and viewed in detail.
JReport Viewer uses the Resource View panel to provide a business-oriented view of databases. This
view shields end users from having to understand database connectivity and SQL syntax while allowing
IT professionals to maintain control of business data and to ensure its integrity. Using the Resource
View panel, JReport Viewer dynamically builds SQL statements to retrieve data and automatically
generate multidimensional data cubes. These cubes contain the underlying data structure which makes
data analysis possible.
The following topics describe the analytic reporting features:
●
An introduction to business/report cubes
●
Applying filters to business/report cubes
●
Using cube elements
●
Using dynamic resources
●
Drilling through the report data
●
Manipulating data components
●
Adding conditional formats to fields
●
Converting between components
●
Navigating through the report data
Note: A component created in JReport Designer is based on a dataset, while that created in JReport
Viewer is based on a business/report cube. For the former, if you want to do analytic actions in JReport
Viewer, such as adding a cube element, converting the component type, drilling it, or changing chart
definition, JReport Viewer will need to convert its fields to cube elements (for details, see Converting
query-based components to report cube-based in the JReport Designer User's Guide). When conversion
conditions are fulfilled, when you perform analytic actions in JReport Viewer, you will be prompted with
the Convert Data Fields dialog to confirm the conversion. However, if the report property Automatic
Cube Initialization has been set to true when the report is designed in JReport Designer, the data fields
will be automatically converted to cube elements when the report is opened in JReport Viewer.
An introduction to business/report cubes
A business/report cube, which is needed for creating multidimensional data cubes, contains database
connections and relationships between cube elements. The business/report cube shields report end
users from having to understand the physical structure of a data source, and enables them to build
reports and analyze data based on a set of cube elements they can understand. It also enables IT
professionals to maintain control of the business data and ensure its integrity, while presenting end
users with an intuitive view of the underlying data structures.
To make use of a business/report cube, you need to first define it at report design time in JReport
Designer. For additional information, see Using business/report cubes in the JReport Designer User's
Guide.
A business/report cube may contain category objects and cube elements (dimension objects, measure
objects, and detail information objects). You can insert these cube elements or remove them to change
the report result when you view reports in DHTML format.
●
●
Category objects
Category objects contain a collection of cube elements. A business/report cube may contain more
than one category. In the Resource View panel, the icon
indicates that an object is a category.
Categories are only for categorizing cube elements, and they cannot be inserted into a report. The
category is often used for indicating the name of the underlying DBMS table.
Dimension objects
Dimension objects are cube elements that will become the basis for analysis in a report. They
characteristically return text or date values. In the Resource View panel, the icon
indicates that
an object is a dimension object. A dimension object can be inserted wherever a group field can be
inserted into. It can be inserted as a column or row field in a crosstab, or as a group field or detail
field in a banded object or a table, or displayed as category/series field in a chart.
●
Measure objects
Measure objects are numeric cube elements that are calculated dynamically at run time. The icon
indicates that an object is a measure object. A measure object can be inserted wherever a summary
can be inserted. For instance, it can be inserted into the group header or footer panel in a table or
banded object, or into a crosstab as an aggregate field. A measure object can also be used as a
detail field in a banded object or table although it will display the same aggregate value for every
detail line. JReport Viewer will calculate the summary values based on the group level the measure
object has been inserted into.
●
Detail Information objects
indicates that an object is a
Detail Information objects provide additional information. The icon
detail information object. It can be inserted wherever a DBField can be inserted. For example, you
can insert a detail information object into a table or banded object as a detail field.
Applying filters to business/report cubes
When creating reports in JReport Viewer, you can choose to apply some filter to the specified business/
report cube to narrow down the data scope of the business/report cube. Filters for business/report
cubes are defined into two categories in JReport Viewer: predefined filters and user defined filters. As
the name suggests, predefined filters are defined on business/report cubes in advance in JReport
Designer (for details, refer to Defining and applying predefined filters in the JReport Designer User's
Guide), and user defined filters are created on business/report cubes while they are used in JReport
Viewer.
Filters can be applied to business/report cubes in JReport Viewer in the following ways:
Applying a filter to a business/report cube while creating a report
1. In a JReport Viewer window, click Menu > File > New Report to display the New Report dialog.
2. Specify the title of the report as required in the Report Title text box.
3. In the Choose Report Layout box, select the layout as Banded, Crosstab, Table or Chart and
then click OK.
4. In the corresponding report wizard, select the required business/report cube for the report, and
the fields you want to display in the report.
5. Click the Query Filter screen.
All the predefined filters of the selected business/report cube are listed in the Query Filter dropdown list. Choose the one you want to apply. If you want to further edit the filter, click the Edit
button and then redefine the filter as required. The edited filter will then be saved as a user
defined filter to the business/report cube.
If you prefer to define a filter on your own, select User Defined from the Query Filter drop-down
list, then define the filter according to your requirements.
There are the basic and advanced modes of the screen for you to define either simple or complex
filter expressions. See Filtering report data for details about how to define a filter.
6. Click Finish in the report wizard and the specified filter will be applied to the business/report
cube, so that your report will get data that meets the filter condition only.
Applying a filter to a business/report cube while inserting a data component
1. In a JReport Viewer window, do either of the following:
❍
❍
Click Menu > Insert > Banded Object/Table/Crosstab/Chart, point to the destination, and
then click the mouse button.
Drag Banded Object, Table, Crosstab, or Chart from the Toolbox panel to the destination.
2. In the corresponding report wizard, select the required business/report cube for the component,
and the fields you want to display in the component.
3. In the Query Filter screen, specify the filter you want to apply to the business/report cube from
the Query Filter drop-down list, or define a filter according to your requirement.
4. Click Finish to create the component and the specified filter will be applied to the business/report
cube.
Applying a filter to a business/report cube after a report is built
1. Select the component in a report which was created on a business/report cube by clicking
anywhere in it, and then clicking the icon
at the upper left corner of the component.
2. Click Menu > Report > Query Filter, or right-click the component and select Query Filter from
the shortcut menu to display the Query Filter dialog.
3. From the Query Filter drop-down list, select the filter you want to apply to the business/report
cube used by the component, or define a filter according to your requirement.
4. Click OK to apply the filter to the business/report cube.
Notes:
●
●
●
A JReport Server Live license is required in order to use this feature. If you do not have a Live
license please contact your Jinfonet Software account manager to obtain a license.
Business/report cube filters are defined on the component level in JReport Viewer, which means each
time you create a component, you can apply a filter to the business/report cube it applies to and it
will not affect other components based on the same business/report cube.
In JReport Viewer, you cannot edit the predefined filters that have been created on a business/report
cube at the Designer side. You can just edit the condition based on a predefined filter and then the
edited filter will be saved as a user defined filter.
Using cube elements
After a report set has been built and published to JReport Server, you can open it in JReport Viewer and use the Resource View
panel to analyze data of any report in the report set by dragging cube elements from the panel to the component (banded object,
table or crosstab) in the report, provided that the data objects used by the component can be converted to corresponding cube
elements (see the note in Analytic reporting for details).
Tip: To display the Resource View panel, click Menu > View > Resource View or the Resource View button
on the View
toolbar. You can use the search bar at the top of the panel to search for any desired resource in a fast and convenient way.
The following examples show how to analyze reports using cube elements. These examples are based on the WorldWideSalesRC
report cube in Data Source 1 of the SampleReports catalog. The report cube contains thirteen dimension objects (City, Country,
Customer Name, Region, State, Territory, Sales Month, Sales Quarter, Sales Year, Category, Product ID, Product Name, and Product
Type), eleven detail information objects (Address 1, Country, Customer Name, CustomerCityStateZip, Phone, Cost, Discount, Order
Date, Quantity, Total, and Unite Price), and three measure objects (Total Cost, Total Quantity, and Total Sales). Total calculates the
value of the formula ("Unit Price" * Quantity - "Unit Price" * Quantity * Discount/100), Total Sales defines an aggregate function
Sum on the formula Total, Total Cost is Sum on Cost, and Total Quantity is Sum on Quantity.
●
Example 1: Analyzing a banded report
●
Example 2: Analyzing a crosstab report
●
Example 3: Analyzing a table report
Example 1: Analyzing a banded report
1. In JReport Viewer, design a banded report titled Sales in China on WorldWideSalesRC, which shows the fields Product ID,
Country, Product Name, Unit Price, Quantity, and Discount, and applies the ClassicBlue style.
First, we will apply a filter to the banded object to narrow down data scope.
2. Click the Filter button
on the Analysis toolbar. In the Filter dialog, define the filter as COUNTRY = 'China'.
We want to further sort the banded object by Product Name ascending.
3. Right-click any of the Product Name values and select Sort > Ascending from the shortcut menu.
4. As the banded header panel holds no data, we can hide it by right-clicking it and selecting Hide from the shortcut menu.
Now the report shows as follows:
Next, we will add the Total field to the banded object and group by the City field.
5. Click the Resource View button
shown in the panel.
on the View toolbar, then resources of the report cube the banded object uses will be
6. From the Resource View panel, drag the detail information object Total in the Orders Detail category to the detail panel of the
banded object.
7. Drag the dimension object City in the Customers category to the banded page header panel, when a blue line appears, release
the mouse button.
8. Finally, drag the measure object Total Sales in the Orders Detail category to the group footer panel.
9. We can now analyze the data in various ways. For example, if we want to see the sales by category instead of city, right-click
on any of the City fields and select Drill To > Category from the shortcut menu, then we can see the same report with an
entirely different view of the data.
Example 2: Analyzing a crosstab report
1. Design a crosstab report on WorldWideSalesRC showing product sales information with Product Type (ascending) as the column
field, Category (ascending) as the row field, and Total Cost as the aggregate field. Apply the ClassicBlue style to the crosstab.
First, we want to replace the product type information with region information, and display the total sales of each product category
in each region.
2. Remove Product Type from the crosstab by pointing to the header Product Type (Decaf or Regular), then dragging it outside
the report page. A message box will prompt you whether or not to remove the field. Click OK to confirm, and we can see that
the crosstab no longer contains the Product Type information.
3. Click the Resource View button
in the panel.
on the View toolbar, then resources of the report cube the crosstab uses will be shown
4. Drag the dimension object Region in the Customers category from the Resource View panel to the crosstab until a blue line
appears indicating the group level of the dimension.
5. Drag the measure object Total Sales in the Orders Detail category to the aggregate area of the crosstab.
Now the total sales of each product category in each region is displayed.
6. Then we would like to see the territory information for the EMEA region. Click in the EMEA header and we will drill down to the
next lower level based on the hierarchy defined in the report cube which in this case is Territory.
Using the same way, we can further drill down to the country, then the city levels which have been defined in the hierarchy to
get detailed sales information in each city. For more details about drilling, refer to Automatic drilling.
Example 3: Analyzing a table report
For a table, you can analyze its data in the same way as for a banded object. Furthermore, JReport Viewer provides some analysis
methods specific for tables.
1. Design a table report on WorldWideSalesRC, which shows the fields Product Type, Country, Product Name, Unit Price, Quantity
and Discount, and applies the ClassicBlue style.
2. Add a filter COUNTRY = 'China' AND PRODUCT TYPE = 'Decaf' to the table (see Example 1 for details on filtering). The table
displays as follows:
For a table, we can insert a column (or row for horizontal table) at a specific position. So next, we will insert the dimension object
City into the table.
3. Click the Resource View button
the panel.
on the View toolbar, then resources of the report cube the table uses will be shown in
4. Drag City in the Customers category from the Resource View panel to the boundary between the first column (Product Type)
and the second column (Country) in the table until a blue line appears.
The report result will be regenerated.
Note: When you add a column to a table, if the width of the table exceeds the defined page size, you will be prompted
whether to allow JReport to adjust the page size automatically so as to place the column. Click Yes in the message box to
have the page size adjusted, or No to make the columns in the table compressed. Also, If you do not want to display the
message in future, check Don't prompt the message again in the message box, or uncheck Always Prompt Whether
to Adjust Page Size Automatically in the Profile > Configure DHTML Profile > Properties > Default Properties tab. If
you choose not to show the message box again, when the table width exceeds the defined page size, JReport will always
adjust the page size automatically.
Next, we want to show the total information and remove the product name information. This can be done with a single drag-anddrop.
5. Drag the detail information object Total in the Orders Detail category to the header Product Name until the label Product Name
is highlighted in a blue background.
Now, the total value for each record will be generated.
As a table column can contain more than one field, next, we will add the measure object Total Sales to the Total column.
6. Drag Total Sales from the Resource View panel to any value in the Total column.
The report result will be regenerated.
Here 182,298.76 is the sum of all total values. In this way, the title for the added field will not be automatically created.
At last, we want to change the order of the Total and Discount columns in the table.
7. Drag the label Total to the right of the Discount column, when a blue line appears along the right boundary of the Discount
column, release the mouse button.
We can see that order of the columns changes.
Notes:
●
●
●
A JReport Server Live license is required in order to use this feature. If you do not have a Live license please contact your
Jinfonet Software account manager to obtain a license.
When you are using a report cube, the records will be fetched based on the query which contains the report cube in JReport
Designer; while for a business cube, there is no predefined query and you will fetch records from the data source using dynamic
SQL.
To use the Resource View panel so as to add cube elements to the report, you should make sure that this ad hoc feature is
enabled in the specified DHTML feature profile. This setting can only be made by administrators.
Using dynamic resources
When you drag cube elements from the Resource View panel to analyze data of a report, sometimes you may find that the cube elements that
have been predefined in the business/report cube cannot meet your requirements, in which case, you can create some dynamic resources and use
them in the report to get the desired data. Then when you save the report set which contains the report, the dynamic resources will be saved
along with the report as its resources. Dynamic resources in JReport Viewer include formulas and measures.
Creating and using dynamic formulas
You should have some knowledge of the formula syntax before you can successfully compose a formula with no errors. To learn the formula
syntax, refer to Formula syntax in the JReport Designer User's Guide.
To create a dynamic formula:
1. In the Resource View panel, expand the Dynamic Resources > Formulas node, then click <Add Formula…> to display the Formula
Editor window.
2. Enter a name for the formula in Formula Name text field.
3. Compose the formula by selecting the required fields, functions and operators from the Fields, Functions and Operators panels. You can also
write the formula by yourself in the editing panel.
For details about the functions and operators, refer to Built-in functions and Operators in the JReport Designer User's Guide.
4. Click the Check button
to check whether or not the syntax of your formula is correct.
5. When done, click the OK button to create the formula.
Once a dynamic formula has been created, you can then drag it from the Resource View panel to the desired position in the report as a detail
information object for data analyzing. The formulas can also be used to control object properties if you are an advanced user and provided that
the Use Dynamic Formula in Property is checked on the Report menu.
Also, if you want to further edit an existing formula or remove any formula that is not required, right-click the formula and then click the
corresponding command on the shortcut menu. However, if the formula has been used in the report or referenced by another formula, it cannot
be deleted.
Creating and using dynamic measure objects
In JReport Viewer, you can also create dynamic measure objects by mapping them to the available resources which include dimension objects,
detail information objects in the current business/report cube and the dynamic formulas that have been created in the report.
To create a dynamic measure object:
1. In the Resource View panel, expand the Dynamic Resources > Measures node, then click <Add Measure…>. The Add Measure dialog is
then displayed.
2. In the Measure Name text field, specify the display name of the measure.
3. Click the chooser button
mapped.
next to the Mapping Name text field to specify the mapping name of the field to which the measure object is
4. From the Aggregate drop-down list, specify the aggregate function for the measure object.
5. When done, click OK to create the measure object.
You can also create a dynamic measure object on a dynamic formula. To do this:
1. In the Resource View panel, right-click the formula in the Dynamic Resources > Formulas node, then select Create Measure from the
shortcut menu.
2. In the Add Measure dialog, specify the display name of the measure object and the aggregate function as required.
3. When done, click OK.
Once a dynamic measure object has been created, you can then drag it from the Resource View panel to the desired position in the report so as
the get the desired data. And if you want to edit any dynamic measure object or delete it, right-click the measure object and click Edit or Delete
on the shortcut menu (a measure object that has been used in the report cannot be deleted).
Notes:
●
●
●
A JReport Server Live license is required in order to use this feature. If you do not have a Live license please contact your Jinfonet Software
account manager to obtain a license.
Currently, global variables and user defined formula (UDF) functions are not supported in dynamic formulas, and you can only save a dynamic
formula with no errors into a report.
When formulas reference display names or mapping names, the names should not contain any of below characters if the names are not quoted
by double-quotation marks "":
"~", "`", "!", "@", "#", "$", "%", "^", "&", "*", "(", ")", "-", "+", "=", "{", "}", "[", "]", "|", "\\", ":", ";", "\", " ' ", "<", ",", ">", ".", "?", "/"
Examples:
●
●
❍
Expression @Customer#; will cause a syntax error. But @"Customer#" is ok.
❍
If a field has the display name Category.Measure, when adding it to a formula, quote it as "Category.Measure" or "Category"."Measure".
Dynamic resources are report level resources, which means they are only available to the report for which they are created.
Now in JReport, the display names of objects in a category in a business/report cube cannot be duplicated. When you choose to create a
dynamic formula/measure object on an object which was created in a previous version and it has the same display name as another object, you
will be prompted with a message asking you to give a new name for the object in JReport Designer first.
Drilling through the report data
In a DHTML report, you can choose to show certain groups of records according to your requirements,
and switch among the groups to see the data you want. Moreover, you can define some methods to
view specific data.
This section presents three kinds of drilling in JReport Viewer. They are:
●
Automatic drilling
●
User defined drilling
●
Going
Automatic drilling
Automatic drilling enables you to switch from the current dimension to another dimension by using
system-defined commands on the shortcut menu, and it is divided into four kinds:
●
●
●
●
Drill-to
It enables you to obtain a different view of data by switching among dimensions.
Drill-to-by-value
It enables you to filter data based on a drill-to action so as to obtain a more detailed view of the data.
Drill-down
It enables you to drill data to lower dimensions according to predefined hierarchies.
Drill-up
It enables you to drill data to higher dimensions according to predefined hierarchies.
Drilling actions are performed on crosstabs, and grouped tables and banded objects, whose data are
based on business/report cube or if on query, data fields of which can be converted to corresponding
cube elements (see the note in Analytic reporting for details). After drilling, the new component can be
analyzed in the same way as the original one.
Assume you have created a crosstab report on the report cube WorldWideSalesRC in Data Source 1 of
the SampleReports catalog showing product sales information with Region as the column field, Sales
Year as the row field, and Total Sales as the summary field, and applied the default style to the
crosstab. The crosstab shows as follows:
We will now take the crosstab as an instance to illustrate the automatic drilling functions.
Drill-to
1. Right-click any value of Region, APAC for example, and choose Drill To from the shortcut menu.
The list of dimensions available for Drill To will appear on the submenu.
2. Click Product Type on the submenu, then in the regenerated result, we can see that Sales Year
remains the dimension for rows and Product Type becomes the dimension for columns.
3. Repeat Steps 1 and 2 to drill the data to other dimensions. Row field can also be drilled freely.
4. To go back to the original report, right-click any value of Product Type, choose Drill To > Region
from the shortcut menu.
Drill-to-by-value
1. Go back to the original report in the above example.
2. Right-click the value APAC of the Region dimension, and point to Drill to By Value on the
shortcut menu. A submenu for the command is displayed, which lists the same items as those of
Drill To.
3. Click Product Type too and the result will be regenerated.
We can see that the result is different from that of drill-to. This is because that, for the drill-to-byvalue action, the dimension of columns changes to Product Type by the Region value APAC. That
is, on the basis of the drill-to action, a filtering action where Region = APAC is further performed,
and thus the result of drill-to-by-value is generated.
In addition, when a drill-to-by-value action is performed, the Drill Filter panel will be displayed on
the left of the JReport Viewer window, which shows the dimension and the value the filter is based
on.
4. To go back to the original report, first delete the drill filter in the Drill Filter panel by clicking X
next to the dimension name, then right-click any value of Region and click Drill To > Region
from the shortcut menu.
Drill-down
Drill-down actions are based on predefined business/report cube hierarchies. The report cube
WorldWideSalesRC contains a hierarchy Geography, which allows you to drill a dimension
(corresponding to a high level) down to the one-level-lower dimension.
1. Go back to the original report in the above example, right-click the value APAC, on the shortcut
menu, point to Drill Down, and we can see that Territory is listed as the submenu item.
2. Click Territory to see the result. It displays the data about territories in the Asia Pacific region.
3. The one-level-lower dimension for Territory defined in the hierarchy is Country. Now click Asia
directly and JReport will also drill it down to Country.
After these two drill-down actions, we can see two filters are added in the Drill Filter panel, Region
= APAC and Territory = Asia.
This is because, when you perform a drill-down action, a filter will be created based on the value
you click on. In this example, we first click on the APAC region, so JReport drills this region onelevel down to display territories in APAC, and thus the filter Region = APAC is created. If you want
all data in the one-level-lower dimension to be displayed when you drill down a dimension, you
can remove the corresponding filter from the Drill Filter panel.
Drill-up
Drill-up actions allow you to drill a dimension (corresponding to a low level) up to the one-level-higher
dimension.
1. Based on the report result after drill-down, right-click any value of Country, China for example, on
the shortcut menu, point to Drill Up, and we can see that Territory is listed as the submenu item.
2. Click Territory to see the result. The dimension is drilled one level up. Territory is now the
dimension for columns.
3. The one-level-higher dimension for Territory defined in the hierarchy is Region. Now click the drillup arrow of any territory directly and JReport will drill it up to Region.
Notes:
●
●
●
●
A JReport Server Live license is required in order to use this feature. If you do not have a Live
license please contact your Jinfonet Software account manager to obtain a license.
For banded object and table, you can right-click its group header/footer to show the shortcut menu
so as to use the automatic drilling functions, you can also right-click field values in the group header/
footer to achieve this.
For dimension objects that not used as group fields in a banded object or table, automatic drilling
doesn't take effect.
JReport allows you to define display names for items to be shown on the drill-related menu items.
For detailed information, see Customizing the field display names in the JReport Designer User's
Guide.
User defined drilling
Besides automatic drilling, JReport provides you with custom drilling functions including support for
linking to another report and for linking to a detail report, making the analysis of a report more diverse
and useful.
Linking to another report
A link to another report can be bound to a field, a label, an image, or a map area in JReport Designer.
This is useful for viewing some information related to the current report, especially with viewing a
report for comparison.
To use a link in JReport Viewer:
1. Develop a report set in which a report contains an object which is linked to another report in
JReport Designer.
2. Publish the report set to JReport Server.
3. Run the report set in DHTML format with JReport Viewer.
4. Click the trigger object in the report, or right-click the object and then select Link Report from
the shortcut menu.
5. The linked report will then be shown.
Linking to a detail report
In most cases, your reports will be related to each other, instead of being isolated. Each report may
have a particular emphasis on one or more aspects. In some circumstances, you may want to set up
certain relationships among your reports so that you can browse from one report to another through
the relationship "channels" that you create.
Such an inter-report relationship network can be achieved by setting up "Anchor" and "Filter"
conditions between two reports. You can use one report to hold comprehensive report data, and
another to show detailed information on a specific topic.
JReport reports can be joined together to compose a master/detail report group. Normally, a master
report holds more comprehensive data, while detail reports hold related detail information. A detail
report can be the master report of another report. In this way, by setting up more and more pairs of
master/detail reports, many reports can be joined together, and a report chain is formed.
To use master/detail reports in JReport Viewer:
1. Develop the report sets with master/detail relationship in JReport Designer.
2. Publish the report sets to JReport Server.
3. Run the report set which contains the master report in DHTML format on JReport Server.
4. Click the trigger object in the master report, or right-click the object and then select Detail
Report from the shortcut menu.
5. You may be prompted to provide encoding and DB security information before the report result is
produced. Click OK if you want to run a detail report using the same encoding and DB security
settings as that of the master report.
6. The detail report will show only the records in conformity to the anchor and filter conditions.
Notes:
●
●
●
In JReport Designer, you may find that the user defined drilling feature can provide more functions,
such as assigning values to parameters of the link report or detail report automatically and passing
style information to the link report. For detailed information, see Linking reports in the JReport
Designer User's Guide.
To make the detail report show only the records related to a trigger field value in the master report,
you should specify the Target Frame option as Same Frame when you set up the master/detail
relationship in JReport Designer. If you select Server Setting, you should further make sure that the
Pop Up New Window for Links option has not been checked in the Profile > Configure DHTML Profile
> Properties > Default tab. Otherwise, the detail report will be opened in a new web browser window
with no relationship to the master report.
A "link path", which tracks the linking (user defined drilling) actions, will be displayed in the Go To
drop-down list on the navigation bar after you have drilled to the link report or detail report if it is
opened in the current window. Clicking an item in the list will switch to the corresponding report.
Going
In a DHTML report, you can select to show certain groups of records in a banded object according to your requirements. You can also
switch among the groups to see the data you want. This action is called going, which divides into go-to, go-up, go-down, and go-todetail, as indicated in the diagram.
●
●
●
●
Go-to
The go-to action allows you to switch the data presented in a banded object from any group to any other group.
Go-up
Go-up means to jump up one group level to show the records of a particular group.
Go-down
Go-down means to jump down one group level to show the records of a particular group.
Go-to-detail
Go-to-detail allows you to concentrate on the details of a group.
Going actions are available only for banded objects that contain groups, and fields in which have not been converted to cube elements
of a report cube. Going actions do not apply to banded objects created in JReport Viewer. After a going action has been performed, the
data presented in the banded object will be re-loaded from the data buffer, showing only the records in the selected group, and the new
report created by going can also be viewed, printed, and exported to other format in the same way as the original report. In addition, a
"going path", which tracks the going action, will be displayed in the Go To drop-down list on the navigation bar, with which you can
easily return to the original report.
The following describes the use of the going actions based on Banded_Link.cls in the SampleReports folder of Public Reports, which
contains a banded report.
Go-to
1. Run Banded_Link.cls.
2. Point to the region APAC, right-click and select Go To > APAC > Vietnam from the shortcut menu.
Then only the data about Vietnam is displayed.
3. To return to the original status, right-click any value and then click Go To > ROOT on the shortcut menu; or from the Go To dropdown list on the navigation bar, select Product Sales by Country.
You may notice that the result is not dependent on what you right-clicked, in other words, you can right-click any field value in the
banded object or even the blank part of a group header/footer panel or detail panel, in order to perform a go-to action.
Go-up
For a go-up action, you need to right-click a group header/footer panel or any object in the panel, at the same time, you should make
sure that this group level is lower than some other group levels.
1. Undo the go-up action in the above example.
2. Point to any country, for example China, right-click and select Go Up > LATAM from the shortcut menu.
Then only the data about LATAM is displayed.
At Step 2, you may find that items listed on the Go Up submenu are regions of the Region group level which is one level higher than the
current group level - Country. That is, the go-up action allows you to focus your attention on the groups of a higher level than what you
right-click.
Go-down
For a go-down action, you need to right-click a group header/footer panel or any object in the panel, at the same time, you should
make sure that this group level is higher than some other group levels.
1. Undo the go-up action in the above example.
2. Point to APAC, right-click and select Go Down > Singapore from the shortcut menu.
Then data about Singapore is displayed.
At Step 2, you may find that items listed on the Go Down submenu are countries of the Region group level which is one level higher
than the group level of Country, and only countries in the Asia Pacific (APAC) region are displayed. That is, the go-down action allows
you to focus your attention on the groups of a lower level than what you right-click, and only those lower-level groups which are related
with the higher-level group value you right-click will be concerned.
Go-to-detail
If a banded object contains group information, then a field, label, image or map in a group header/footer panel of the banded object
can be used to obtain information of that group, and a chart in a banded object also has the similar function. The go-to-detail action
should be predefined at report design time. You can refer to Obtaining detailed information from a banded object in the JReport
Designer User's Guide for more information.
1. Undo the go-down action in the above example.
2. Point to LATAM, right-click and select Go to Detail from the shortcut menu. Then only the data about this region is displayed.
Note: A JReport Server Live license is required in order to use this feature. If you do not have a Live license please contact your
Jinfonet Software account manager to obtain a license.
Manipulating data components
You can manipulate data components, which refer to crosstabs, tables, banded objects and charts, in
JReport Viewer as shown below. However, most of the manipulations require selecting the component
first. To select a component, click anywhere in the component, when the icon
appears at its upper
left corner, click the icon.
Note: When manipulating data components, a JReport Server Live license is required in order to use
the features involving report cube/business cube or changes of report template. If you do not have a
Live license please contact your Jinfonet Software account manager to obtain a license.
Setting the number of records retrieved by data components
You can set the number of records that can be retrieved by all data components in all reports of a
report set. To do this, select a value to your liking (All or first 50 to name a few) from the Max Records
on the Analysis toolbar. You can also directly input a positive
combo box
integer here and press Enter to retrieve the corresponding records. Alternatively, you can click Menu
> Report > Max Records to show the Max Records dialog, and then achieve the same goal. If you are
making a lot of changes to the report, it may be faster to limit the number of records to 1 page while
you make the changes then change it back to All to view the final result.
Manipulating a crosstab
●
●
Changing the dimension index in a crosstab
The dimension index in a crosstab can be modified, namely, you can move a dimension to a higher or
lower level. This operation can be performed on crosstab's containing two or more dimensions. To do
this, you can simply drag a dimension object (row/column header) to the required destination till a
blue line appears. You can also drag a column header to a row level and vice versa.
Rotating a crosstab
Columns and rows in a crosstab can be exchanged. This operation is called rotating a crosstab.
To rotate a crosstab, first select it, and then do one of the following:
●
●
❍
Click Menu > Report > Rotate Crosstab.
❍
Click the Rotate button
❍
Right-click the icon
on the Analysis toolbar.
of the crosstab and select Rotate from the shortcut menu.
Expanding/Collapsing a crosstab
For a crosstab, if it has more than one row/column group level, you can specify whether or not to
enable the crosstab to be expanded in JReport Viewer, and set the default expanding/collapsing state
of groups in outer levels. For details, see Expanding/Collapsing a crosstab in the JReport Designer
User's Guide.
Adjusting the width of crosstab fields according to the contents
When the contents in the field of a crosstab need more space to completely display, you can adjust
the width of the field according to its contents. To achieve it, first select the field, then right-click on
it and select Auto Fit from the shortcut menu.
Manipulating a table
●
Adjusting order of columns in a table
The order of columns in a table can be easily adjusted. To do this, drag a column header to the left
or right boundary of another column header, when a blue line appears along the column boundary,
release the mouse button, and you will see the order change.
The above description is for a vertical table. With regard to a horizontal table, you can do the same
actions on its row headers.
●
●
●
●
●
●
●
Adjusting grouping order in a table
A table may contain several group levels. The order of the group levels can also be adjusted. To do
this, drag a group field value to the required position until a blue line appears.
Hiding/Deleting table columns
A table column (for a horizontal table, the "column" corresponds to a field row) can be hidden or
removed. To do this, select the cell of the column in the table header and right-click, then select
Hide Column or Remove Column from the shortcut menu, and the column will be hidden or
removed from the table.
Showing table columns
of the
You can specify which columns will be shown in a table. To do this, right-click the icon
table, then on the shortcut menu, check the names of the columns you want to show from the Show
Column sub menu.
Adjusting the width of table columns according to contents
When the contents in cells of a table column need more space to completely display, you can adjust
the width of the table column according to the contents. To do this, right-click the cell of the column
in the table header, then select Auto Fit from the shortcut menu.
Changing group direction
You can make the group headers that are placed horizontally in a table to be displayed vertically. To
do this, right-click the group header row and select Vertical to Detail from the shortcut menu. In
addition, if the first column of a table is group column, you can specify to place the group column
horizontally in a table. To do this, right-click the cell of the group column in the table header, and
select Horizontal to Detail from the shortcut menu.
Rotating a table
You can rotate a table to switch its appearance between the horizontal and vertical layout modes by
doing one of the following:
❍
Click Menu> Report > Rotate Table.
❍
Click the Rotate button
❍
Right-click the icon
on the Analysis toolbar.
of the table and select Rotate from the shortcut menu.
Inserting table columns
You can insert a new column in a table and it could be a common column, detail column, summary
column, or group column.
❍
To insert a common column into a table:
1. Right-click any cell in the table header, or right-click the icon
of the table.
2. On the shortcut menu, click Insert > Common Column.
❍
To insert a detail or summary column into a table:
1. Right-click any cell in the table header, or right-click the icon
of the table, then select
Insert > Detail Column/Summary Column from the shortcut menu.
2. In the corresponding insert column dialog, specify the resource you want to use for the new
column, then click OK.
❍
To insert a group column into a table:
1. Right-click any cell in the table header, or right-click the icon
Insert > Group Column from the shortcut menu.
of the table, then select
2. In the Insert Group Column dialog, select the dimension object you want to use for the new
group column from the Resources panel and click
to add it as the group by field, then
specify the sorting direction of the group in the Sort column.
3. Specify the positions of the group by fields: Group Above, Group Left Above, or Group Left.
4. Repeat the above steps to add more groups if required.
5. Click OK to insert the columns.
The next time when you open the Insert Group Column dialog to add more group columns, all
the added group by fields will be listed in the dialog. You can choose to remove or edit them if
required.
Note: If you right-click any cell in the table header and use its shortcut menu to insert a
common, detail or summary column, the column will be inserted before the column in which the
cell you click on is, however, if you use the table shortcut menu to insert the column,
❍
❍
●
If it is a common column, the column will be inserted as the last column in the table.
If it is a detail/summary column, the column will be inserted after the last detail/summary
column, or as the last column in the table when there is no detail/summary column.
Converting table columns
You can convert a group column into a detail column, and vice versa.
❍
❍
To convert a group column into a detail column, select the cell of the group column in the table
header, right-click and select Convert to Detail from the shortcut menu, then the conversion is
done.
To convert a detail column into a group column:
1. Select the cell of the detail column you want to convert in the table header, right-click and
select Convert to Group from the shortcut menu.
2. In the Select Group Position dialog, specify the position for the newly converted group by field.
3. Click OK to save the changes.
●
Aggregating on a detail column
You can summarize the data in a detail column if required. To do this:
1. Select the cell of the detail column in the table header, right-click it and select Aggregate On
from the shortcut menu.
2. In the Aggregate On dialog, specify a function from the Function drop-down list to summarize
the field in the detail column.
3. When done, click OK.
■
■
If the table has groups, the aggregation will be created for each group in every group level
and the whole table at the same time.
If the table has no groups, the aggregation will be created based on the whole table.
When you finish aggregating on a detail column, you will find a dynamic measure object is created
which is given a default name Function_DetailFieldName in the Dynamic Resource > Measures list in
the Resources View panel and you can use it again in the current report if required.
Note: If a table is created in JReport Designer, you can add, convert columns in the table, or
aggregate on its detail columns in JReport Viewer only when data fields used by the table can be
converted to corresponding cube elements. See the note in Analytic reporting for details.
Manipulating a banded object
●
●
●
Hiding/Showing a panel in a banded object
of the banded
A panel in a banded object can be hidden or shown. To do this, right-click the icon
object, then on the shortcut menu, click the item which indicates the panel name from the Show sub
menu. For a panel which is shown, the item is with a check mark, and vice versa. This operation is
also applicable for hiding/showing a row in a table.
Hiding/Showing DBFields and labels in a banded object
The DBFields and their corresponding labels in a banded object can be hidden or shown. To do this,
right-click the icon
of the banded object, then on the shortcut menu, click the fields and labels you
want to show from the Show Field sub menu. For a field or label that is shown, it will be marked with
a check mark, and vise verse.
Expanding/Collapsing a group panel in a banded object
Group panels in a banded object can also be expanded or collapsed. For details, see Managing the
data of a banded object in the JReport Designer User's Guide.
Manipulating a chart
●
Modifying the definition of a chart
You can modify the definition of a chart, including the chart type, data display, and style. To do this:
1. Right-click the icon
of the chart or any part of the chart other than the legend and label to
show a shortcut menu, and then select Format Chart from the shortcut menu to display the
Chart Definition dialog.
Note: In the event that the chart is built in JReport Designer, the Format Chart command
will be available only when JReport Viewer can convert data fields used by the chart to
corresponding cube elements. See the note in Analytic reporting for details.
●
In the Chart Type tab of the Chart Definition dialog, specify the type for the chart.
●
In the Display tab, change the dimension and measure object used by the chart.
●
In the Style tab, modify the style for the chart as required. If there is only one style available, this
style will be applied to the chart by default and the Style tab will be hidden from the dialog.
Upon finishing, click OK to apply the modifications.
●
For details about how to modify the chart definition with the Chart Definition dialog, see
Creating a chart report.
In addition, if you only want to change the chart type, no matter whether the chart is originally
created in JReport Designer or JReport Viewer, you can achieve it by doing one of the following:
❍
❍
●
Right-click the chart and on the shortcut menu, select the required type from the Chart Type
submenu, which lists all the chart types and subtypes (the current one and the inapplicable
subtypes are grayed out).
Select the chart, click the Chat Type button
suitable subtype from the drop-down menu.
on the Analysis toolbar, and then select a
Formatting chart elements
The elements (platform, paper, legend and label) in a chart can be formatted to suit your
requirement.
❍
❍
To format the platform/paper of a chart, right-click the icon
or any part of the chart except for
the legend and label and select Format Platform/Format Paper from the shortcut menu. In the
displayed format dialog, specify the settings as required. For details about the settings, refer to
Format Platform dialog and Format Paper dialog.
To format the legend/label of a chart, right-click the legend/label and select Format Legend/
Format Label from the shortcut menu. In the displayed format dialog, set the properties
according to your requirement. For details about the properties, see Format Legend dialog and
Format Label dialog.
Adding conditional formats to fields
You can add some conditional formats to a field, which refer to the DBField, parameter field, formula field,
summary field, and the special field Page Number or User Name, then when the specified condition is fulfilled, the
defined format will be applied to the field values for highlighting.
To add conditional formats to a field,
1. Right-click the field and select Conditional Formatting from the shortcut menu to access the Conditional
Formatting dialog.
2. Click the button
to open the Edit Conditions dialog to define the condition as required.
There are the basic and advanced modes of the dialog for you to define either simple or complex condition
expressions. See Filtering report data for details about how to define a condition.
3. When done, click OK to save the condition.
The newly added condition will then be displayed and highlighted in the Condition box in the Conditional
Formatting dialog.
4. In the Format box, set the format which will be applied to values of the field when the specified condition is
fulfilled, for example, the font face, font size, font color, etc.
5. Repeat the above steps to add more conditions and define the format for each condition as required.
To edit a condition, select the condition in the Condition box, then click
edit the condition expressions as required.
. In the Edit Conditions dialog,
To remove a condition and the corresponding format, select the condition in the Condition box and click
.
To adjust the priority of a condition, select the condition in the Condition box and then click
or
6. Click OK to apply the conditional formats to the field.
See also Conditional Formatting dialog and Edit Conditions dialog for details about options in the dialogs.
.
Converting between components
Converting between components enables you to view and analyze data from different aspects with
different focuses. In JReport Viewer, you can convert a crosstab into a chart and vice versa, however, if
a crosstab/chart is designed in JReport Designer, to enable the conversion, you need to make sure that
data objects used by the crosstab/chart can be converted to corresponding cube elements (see the
note in Analytic reporting for details).
Note: A JReport Server Live license is required in order to use this feature. If you do not have a Live
license please contact your Jinfonet Software account manager to obtain a license.
Converting a crosstab into a chart
To convert a crosstab into a chart:
1. Click anywhere in the crosstab, when the icon
select the crosstab, then do any of following:
❍
Right-click the icon
❍
Click Menu > Report > To Chart.
appears at its upper left corner, click the icon to
and select To Chart from the shortcut menu.
2. The Convert Data Fields dialog may appear for your confirmation on converting data fields of the
crosstab to cube elements of a business/report cube. Click OK to confirm, and the To Chart dialog
will be displayed.
3. In the Chart Type tab, specify a suitable type for the chart. With a certain type specified, you can
further define the chart as a combo chart by clicking <Add Combo Type> in the Chart Type
Groups box.
4. In the Display tab, the Resources box lists all the cube elements used in the selected crosstab
including dimension and measure objects. The chart can only be defined based on the cube
elements listed. Add a dimension object
to the Series box, and measure objects
from the Resources box to the Category box, and so
to the Show Values box respectively.
5. In the Style tab, set the style for the chart as required.
If the crosstab is in a table or banded object, by default, the chart converted from the crosstab will
take on the style of the table or banded object. If you want to apply another style to the chart,
uncheck the Inherit Style option and choose the desired style in the Style box. However, when
there is only one style available, this style will be applied to the chart by default and the Style tab
will be hidden from the dialog.
6. Click the OK button to finish the conversion.
Converting a chart into a crosstab
To convert a chart into a crosstab:
1. Click anywhere in the chart, when the icon
appears at its upper left corner, click the icon to
select the chart, then do any of following:
❍
❍
Right-click the icon
or any part of the chart except for the legend and label, then click To
Crosstab on the shortcut menu.
Click Menu > Report > To Crosstab.
2. The Convert Data Fields dialog may appear for your confirmation on converting data fields of the
chart to cube elements of a business/report cube. Click OK to confirm, and the To Crosstab dialog
will be displayed.
3. In the Display tab, select a dimension object
in the Resources box and click
to add it as a
and click
to add it as an
group field to the Columns or Rows box; select a measure object
aggregate field to the Aggregates box. Repeat these to add more aggregate fields.
In the Display Name column, you can edit the display name of a group field or aggregate field,
and the Sort columns allow you to specify a sorting manner on a group field.
If you want to remove any group/aggregate field, select it and click
.
To adjust the order of group/aggregate fields, select a group/aggregate field and click
or
.
4. In the Style tab, apply a style to the crosstab as required.
If the chart is in a table or banded object, by default, the crosstab converted from the chart will
take on the style of the table or banded object. If you want to apply another style to the crosstab,
uncheck the Inherit Style option and choose the desired style in the Style box. However, when
there is only one style available, this style will be applied to the crosstab by default and the Style
tab will be hidden from the dialog.
5. Click OK to finish the conversion.
Navigating through the report data
You can use the TOC Browser to navigate through a report. To show the TOC Browser, click Menu >
View > TOC Browser.
In the TOC Browser, expand the Report node, select a component or a node with the group value that
you want to browse to. The page that contains the component or the matching data will then be shown.
The table of contents on the TOC Browser is organized into a tree structure. The root node represents
the report that you are currently viewing. The component names indicate components in the report.
The group values show hierarchical groups.
TOC in JReport Designer
Just like a report, the format of the TOC is designed in JReport Designer. In the root node in the Report
Inspector of JReport Designer, there is an object named TOC. You can modify its properties to
customize your TOC style.
TOC Anchor
Besides the groups, you can also add your own nodes to the TOC Browser. Most components in JReport
Designer hold a property called TOC Anchor which holds a Boolean value. If the TOC Anchor property
value is true, a node for this object will then be added to the TOC tree. When you click such a node,
JReport Viewer will turn to the page that contains this component. Some objects, such as group panels,
summaries, subreports, and cube elements hold a true value for the TOC Anchor property by default,
which means that by default they will appear in the TOC Browser. Moreover, you can type a string or
even a formula as the Anchor Display Value property for a component holding a true TOC Anchor
property, so that your input for that object can be displayed in the TOC Browser instead of the default
value.
Applying a style
A style can be applied to a report in order to change its appearance and characteristics. You can create
and set up your own styles in JReport Designer. When you publish your report sets to JReport Server,
you can include these custom styles with the published reports. When you run the report set, the style
feature will be enabled and you can select a style to apply to the report. After applying a style, the
banded objects, crosstabs, charts, and tables in the report will take a uniform appearance.
By default, the style feature is enabled in JReport Viewer. In order to apply a style to a report, click
Menu > Report > Style and select the required one from the submenu, or select the required style
from the style drop-down list
on the toolbar. You can also right-click a
table, crosstab, chart, or banded object in the report and select Apply Style from the shortcut menu to
select the required style in the Apply Style dialog. However, if there is only one style available to the
report, this style will be applied to the report by default, in which case, you will find that all these style
related commands are hidden.
Reference: See also the chapter Styles in the JReport Designer User's Guide for more information
about how to work with styles at report design time.
Working with reports via URL
Besides working on interfaces, most of the JReport Viewer operations such as filter, sort, search, save and so on, can also
be accomplished via URL. When using URLs to access JReport Viewer, you should follow the specifications described in this
section.
The URL in DHTML is:
http://localhost:8888/dhtml?sessionid=XXXXXXX&rptsetid=XXXXXXX&rptname=XXXXXXX&op=...
●
●
●
●
●
●
●
●
http
The web service protocol.
localhost
The host address.
8888
The port.
dhtml?sessionid=XXXXXXX&rptsetid=XXXXXXX&rptname=XXXXXXX&
The path.
?
URL separator.
=
URL separator.
&
URL separator.
op
The key of operation in DHTML.
There are some methods in the file API.js located in <intall_root>\public_html\javascript\dhtml. These methods are
the tools you can use to generate URLs. The result of each of these functions will be a URL.
Parameter
Key
Description
Value
Download Report
Operation
code
op
51
Export
report type
ty
2/3/4/5/6/7 means PDF/PostScript/RTF/TEXT/EXCEL/XML respectively.
Example
op=51&ty=2
Note
Prototype
●
The order begins with 2.
●
A file of HTML type cannot be downloaded.
function user_downloadReport(type)
Exit
Prototype
function user_exit (popwin)
Navigate Page
Operation
code
op
24
Page number pn
op=24&pn=2
Example
1...n
Note
The page number begins with 1 and is less than total page number.
Prototype
function
function
function
function
user_firstPage()
user_lastPage()
user_nextPage()
user_prevPage()
One Step Filter
Operation
code
op
25
The column
name
col
Mapping the name of a column in JReport.
Operator of
filter
condition
operator
eq/gt/geq/lt/leq/neq, means "equal to/greater than or equal to/greater than/less than/less than or equal to/unequal
to" respectively.
The column
value
value
Logic of
filter
condition
logic
AND/OR/END, means "and/or/end" respectively.
Instance
name of the
column
comp
component instance name
Example
op=25&col=CusID&operator=eq&value=1&logic=OR&col=CusName&operator=0&value=ZhangKe&logic=2&comp=convert_sectionObject
Note
The value is case-sensitive.
Prototype
function user_oneStepfilter(columns, operators, values, logics, instanceName)
One Step Search
Operation
code
op
128
The column
name
column
Mapping the name of a column in JReport.
The column
value
value
the value to search for
Whether or
not to
search
content only
isContent
true/false
Whether or
isMatchCase
not to match
case
true/false
The search
direction
true/false
isUp
Whether or
isWholeWord
true/false
not to match
whole word
op=128&column=CusID&value=1&isContent=true&isMatchCase=false&isUp=false&isWholeWord=false
Example
Prototype
function user_oneStepSearch(value, isContent, colName, isUp, matchcase, isWholeWord)
One Step Sort
Operation
code
op
12
The column
name
col
Mapping the name of a column in JReport.
The column
sort order
ord
true/false
Instance
name of the
column
comp
component instance name
Example
op=12&col=CusID&ord=true&col=CusName&ord=false&comp=convert_sectionObject
Note
The value is case-sensitive.
Prototype
function user_oneStepSort(columns, sorts, instanceName)
Open Report
JSP page
/dhtmljsp/dhtml.jsp
Action
jrs.cmd
Report name jrs.report
jrs.try_vw
path/name
Catalog path jrs.catalog
Result type
Example
Note
jrs.result_type
int
http://localhost:8888/dhtmljsp/dhtml.jsp?jrs.report=%2fSampleReports%2fEmployeeInformation.cls
=&jrs.cmdjrs.try_vw&jrs.catalog=%2fSampleReports%2fSampleReports.cat
●
The path delimiter is "/". If you encounter problems, you can replace it with "%2f".
●
The version number can be none, as with the example.
Open RSD File
JSP page
/dhtmljsp/dhtml.jsp
Result path
jrs.path
path/name
Result name
jrs.result
path/name
Result
version
number
jrs.rst_version
Example
http://localhost:8888/dhtmljsp/dhtml.jsp?jrs.resource_path=/USERFOLDERPATH/admin/test&jrs.file=1980996366.rsd
Note
int
●
The path delimiter is "/". If you encounter problems, you can replace it with "%2f".
●
The version number cannot be none.
Redo
Operation
code
op
85
Example
op=85
Prototype
function user_redo()
Refresh
Operation
code
op
83
Example
op=83
Prototype
function user_refresh()
Reset
Operation
code
op
76
Example
op=76
Prototype
function user_reset()
Save Report
Operation
code
op
82
Example
op=82
Prototype
function user_saveRpt()
Search Next
Operation
code
op
Example
op=34
34
Show Export to Dialog
Prototype
function user_showSaveResultDialog()
Show Help
Dialog ID
Example
HELP_OP
182
http://localhost:8888/dhtmljsp/help.jsp?sessionid=XXXXXXX&rptsetid=XXXXXXX&rptname=XXXXXXX&HELP_OP=XXX
Note
The URL gets the body of a window, you should put it as xxx in
window.open("xxx", ..)
Prototype
function user_showHelp(helpId)
Show Panel or Dialog
Prototype
function
function
function
function
function
function
function
function
function
function
function
function
function
user_showUserPanel()
user_showTOC()
user_showDHTMLView()
user_showToolbox()
user_showSortDialog()
user_showFilterDialog()
user_showNewRptDialog()
user_showOpenRptDialog()
user_showSaveAsDialog()
user_showPageSetupDialog()
user_showSaveResultDialog()
user_showPageSetupDialog()
user_showPrintDialog()
Undo
Operation
code
op
Example
op=84
Prototype
function user_undo()
84
Zoom
Operation
code
op
50
Proportion
val
op=50&val=250
0~400
Example
Note
val must be an integer between 0 and 400
Prototype
function user_zoom(value)
Tuning JReport Viewer performance
JReport provides you with methods for adjusting DHTML performance. You can limit the number of
DHTML reports open simultaneously by setting the DHTML preferences on the JReport Administration
page. Furthermore, you can modify a property file to control the Action Task Manager, which can
improve DHTML service performance.
Limiting the number of simultaneously open reports
Whether or not an open DHTML report interacts with the server, it holds many resources. As a result,
opening many reports will decrease server performance. Thus, JReport allows the administrators to
specify the maximum number of DHTML reports that can be open at the same time so as to prevent
large numbers of DHTML reports from being open simultaneously and to improve the server
performance.
To set the maximum number of DHTML reports that can be open at the same time:
1. On the JReport Administration page, click Profile on the system toolbar and then select
Configure DHTML Profile from the drop-down menu.
2. Click the Properties > Advanced tab.
3. Check the Maximum Number of Open Reports option and type the number to your
requirement in the text box.
4. Click OK upon finishing.
If the number of open reports exceeds the limit, an error page will be displayed prompting you to close
one before opening a new one.
Note: The Maximum Number of Open Reports option works together with the maximum number of
concurrent reports allowed by your product license. Of these two values, whichever is smaller will be
used as the real maximum number of open reports allowed. For example, if the value of the Maximum
Number of Open Reports option is 10, and the number that the license allows is 20, 10 will be used as
the maximum number of DHTML reports that can be opened simultaneously; however, 10 non-DHTML
reports may use the remaining licenses.
Action Task Manager
Some DHTML operations require a large amount of memory and CPU processing power. The Action
Task Manager improves DHTML service performance by preventing a large number of actions from
being run simultaneously.
The Action Task Manager coordinates DHTML actions through two fixed-size tables:
●
●
Concurrent Processing Table - This registers the requests that are currently being processed by
the DHTML service.
Waiting Requests Queue - This registers the requests that are waiting for being processed by the
DHTML service.
Note: Only certain operations that consume considerable hardware resources need to be prevented
from being run at the same time. You can define which kind of requests need to be queued before
being processed.
When a new DHTML request reaches the server, it will be processed according to the following flow:
1. The DHTML service determines whether the requested operation is a restricted action. If it is, the
Action Task Manager will take over the request. Otherwise, it will be processed directly, without
being managed by the Action Task Manager.
2. If the Concurrent Processing Table is full, the restricted request will be assigned to the Waiting
Requests Queue. If the queue is full, the DHTML service will refuse the request and return a
warning message.
3. After the request has been processed, it will be de-registered from the Concurrent Processing
table. The DHTML service will then automatically continue to process the requests in the Waiting
Requests Queue.
By using the property file dhtml.properties provided in JReport Viewer, you can balance the server load
by adjusting table sizes and specify which kind of requests are managed by the Action Task Manager.
dhtml.properties
The dhtml.properties file is located at <install_root>\bin. It allows you to control three major
options for the Action Task Manager:
●
Specifying the size of the Concurrent Processing Table
Use queue.actions.max.concurrent=[integer] to set the maximum number of requests that can
be processed simultaneously. The value of this property can be equal to or larger than 0. Use 0
(default) to disable the request queue feature.
●
Specifying the size of the Waiting Requests Queue table
Use queue.actions.max.pending=[integer] to set the maximum number of to-be-handled
requests that the queue can contain. The value of this property can be equal to or larger than 0. 0
means no requests will be stored in the queue. A request will either be handled by the DHTML service
or be rejected when the maximum limit of the Concurrent Processing table has been reached.
●
Specifying the actions that can be applied for the DHTML Request Queue feature
These are listed below:
queue.actions.init=false
queue.actions.undo=true
queue.actions.redo=true
queue.actions.drill=true
queue.actions.drillup=true
queue.actions.refresh=false
queue.actions.filter=true
queue.actions.sort=true
queue.actions.search=true
queue.actions.finishNewReport=true
#
#
#
#
#
#
#
#
#
#
Action:
Action:
Action:
Action:
Action:
Action:
Action:
Action:
Action:
Action:
DHTML report initialization
Undo
Redo
Drilling
Drilling up
Refreshing
Filtering
Sorting
Searching
Finishing creating a new report
These properties will only work when the queue feature has been enabled by setting queue.max.
concurrent.actions>0.
True - The action will be handled by the Action Task Manager.
False - The action will not be handled by the Action Task Manager, but be directly processed by the
DHTML service without being queued.
Studio Reports
JReport provides the studio reporting solution for faster and simpler design and creation of reports
using a web browser.
Studio reports are viewed using a new interactive viewer called JReport Studio. JReport Studio provides
a much nicer end user experience with many powerful features for interfacing with a report such as
changing parameters without re-running the report. In addition, JReport Studio still supports exporting
the report to all supported output formats.
The data sources that can be used to create studio reports are business views that are resources built
on top of queries. Business views are created and managed in JReport Designer (for details, see
Business views in the JReport Designer User's Guide). In JReport Server, studio reports are created via
the JReport Studio Wizard using a browser and are opened and edited via JReport Studio.
Using JReport Studio Wizard, it is easy to create complex reports with multiple components in a tabular
style layout. Studio reports also allow for company logo and titles to be placed on the top of the page
for more formal presentation.
A studio report template contains only one report and uses .wls as the file suffix. Studio reports are
stored in the JReport Server resource system and follow the server resource and version management
rules such as archive policy and permission setting.
JReport Designer supports creating, opening, and editing of studio reports (for details, see Working
with studio reports in the JReport Designer User's Guide). JReport Designer also allows for studio
reports created on JReport Server to be downloaded to Designer and further edited.
This chapter covers the following topics to help you better interact with studio reports
●
Why studio reports and when to choose them
●
Components supported in studio reports
●
JReport Studio window elements
●
Creating studio reports via wizard
●
Editing studio reports in JReport Studio
●
Running studio reports on server
Notes:
●
●
A JReport Server Live license is required in order to use this feature. If you do not have a Live
license please contact your Jinfonet Software account manager to obtain a license.
JReport Studio Wizard and JReport Studio support Internet Explorer 8, Firefox 3.5, and higher
versions, or Google Chrome 5.
Why studio reports and when to choose them
JReport Studio displays studio reports (which are also called web layout reports) that are aimed at
easier and faster report creation and design, faster report execution, easier customization, and better
presentation style using a newer Rich Internet Application (RIA) Web 2.0 interface. Studio reports also
support agile development techniques such as continuous integration by allowing report templates to
be updated by both JReport Studio and JReport Designer.
●
●
●
●
●
●
●
Fewer functions
Studio reports (.wls) support a subset of functions of JReport page layout report sets (.cls). The basic
and essential functions not only guarantee a good report presentation, but also make the report
design experience easier for a new user of JReport.
Single report solution
Only one report in a studio report speeds up the report running process as compared to a multiplereport report set.
Tabular style layout
The creation of a page layout report set using the Standard Report Wizard can only create one data
component (table, crosstab, chart, or banded object) using the wizard. The JReport Studio Wizard
provides a tabular style layout in which you can place a table, crosstab or chart in each tabular cell
so as to achieve a holistic layout with multiple components from the very beginning.
Predefined report templates
Studio reports allow you to choose a starting template so you can predefine the template to include
standard features such as company logo, company name, privacy notices or any standard items and
styles you want your users to start with.
Fast report rendering
At runtime, JReport Studio provides much higher performance when viewed from a browser
compared to viewing a report set using JReport Viewer. Using JReport Viewer, all of the user action
requests must be sent to JReport Server which renders the new page on the server and updates the
browser view. Using JReport Studio, many of the actions which require only a change in rendering
the view are done locally on the client in the browser. By using JReport Studio, JReport Engine is
structured so that as much of the processing as possible is completed on the client side allowing
much higher salability for JReport Server allowing the server to handle more simultaneous users.
Oriented toward presentation rather than analysis
Unlike page layout reports, studio reports do not support slicing and dicing data since the data source
for studio reports has been designed with no hierarchical relationship between the data objects.
Create studio reports if you do not want to analyze report data such as drilling down and drilling up,
but look forward to an excellent Web 2.0 presentation.
Creation and edition in both JReport Server and Designer
Studio reports created using the JReport Studio Wizard can be downloaded from JReport Server and
edited in JReport Designer and studio reports can be created in JReport Designer and published to
server just like .cls reports. However, page layout reports created using the Standard Report Wizard
can only be edited in the server. Designer can view these reports but not modify them and publish
them.
Also, JReport Designer can be used to create studio reports which can be run in JReport Studio on
the server and saved as a template to use in JReport Studio. JReport Designer cannot directly create
the temple but can create the report and then using JReport Studio, save the report as a template (.
wslt).
●
Standard banded objects not supported
Page layout reports support standard banded objects which are not supported by studio reports.
Components supported in studio reports
Components are the objects that you can place in a report. JReport provides a full set of components
that allow you to present and control the report data and presentation in a wide variety of ways.
Studio reports support the following report components:
●
●
●
●
●
●
●
●
●
●
●
Labels
A label is an object that contains a string. It is typically a brief description used to identify a field or
other value nearby.
Images
An image is a digital representation of a picture. The following image types are suppported in studio
reports: .gif, .jpg, and .png.
DBFields
DBFields, or database fields, are fields directly from columns in the database or other data source
such as XML or Java objects.
Formulas
Formulas are calculated from DBFields, other formulas, summaries, and parameters, so they can
present information which is not available directly from the database fields.
Summaries
A summary is a special kind of formula. A summary generates a count, average, sum, standard
deviation or other transformation of a set of data values. A summary applies to a defined group of
data. Summaries are required to provide the data values for charts as well as totals for table reports.
Parameters
A parameter in JReport is a variable whose value is determined at runtime. The runtime parameters
help you dynamically control your report results such as filtering data.
Special fields
Special fields are defined by JReport and allow you to easily obtain system information and reportrelated data and add it to your report. All special fields are supported to insert into studio reports in
JReport Designer. However, due to the characteristics of JReport Studio, only these can be rendered
and edited in JReport Studio: User Name, Modified Date, and Modified Time.
Web controls
Web controls are report components designed to be similar to the kinds of controls found on web
pages. Currently, the following four web controls are supported in studio reports: parameter control,
parameter form control, filter control, and navigation control.
Multimedia objects
Multimedia objects include Flash, Real Media, and Windows Media objects.
Tabular
A tabular is a component designed to lay out other components. There is one and only one tabular in
a studio report.
Tables
A table gives you great control over how to present data, including placing fields, grouping them, and
sorting them. It is composed of rows and columns, and each contains several cells. With such a
structure a table is a good way to show any two-dimensional dataset.
●
●
Crosstabs
A crosstab summarizes data and presents the summaries in a compact row and column format.
Charts
A chart organizes and graphically presents data in a way that makes it easy for end users to see
comparisons, trends, and patterns in data. It represents the report data in a visually straightforward
form.
Currently, these types of chart are supported in studio reports:
❍
Clustered Bar 2-D
❍
Stacked Bar 2-D
❍
100% Stacked Bar 2-D
❍
Clustered Bench 2-D
❍
Stacked Bench 2-D
❍
100% Stacked Bench 2-D
❍
Line 2-D
❍
Stacked Line 2-D
❍
100% Stacked Line 2-D
❍
Area 2-D
❍
Stacked Area 2-D
❍
100% Stacked Area 2-D
❍
Clustered Pie
❍
Clustered Donut
❍
Gauge Dial 2-D
❍
Bullet 2-D
For details about each type, see Chart types in the JReport Designer User's Guide.
For how charts present data, see How data is represented in a chart in the JReport Designer User's
Guide.
For the elements that compose a chart, see Chart elements in the JReport Designer User's Guide.
Tip: In JReport, the components that can be bound with a data source are also referred to as data
components. These components include tables, crosstabs and charts.
JReport Studio window elements
The main page of JReport Studio consists of the user information bar, menus, toolbar, left panels and
report area. The options for browsing or controlling a studio report are as follows:
Toolbar/Menu
File
Edit
View
Insert
Button
Tool Name
Description
New Report
Creates a new studio report based on
an existing business view.
Open
Opens a report.
Save
Saves the changes of the current
studio report.
Save As
Saves a copy of the studio report or the
report template in the current studio
report to server resources.
Export
Exports the report result to disk or
version in various formats.
Page Setup
Configures the report page settings.
Print
Prints the report result to a PDF/HTML
file.
Exit
Closes the current studio report and
exits JReport Studio releasing all of the
resources.
Undo
Undoes the last operation.
Redo
Reverses the operation of Undo.
Delete
Deletes the selected object.
Wizard
Opens the component wizard for you to
edit the selected table, crosstab or
chart.
Filter
Filters the report records according to
the filter criteria you specify.
To Chart
Converts a crosstab into a chart.
To Crosstab
Converts a chart into a crosstab.
Rotate Crosstab
Rotates a crosstab to exchange the
axes on the crosstab in order to create
a different view of the crosstab.
Report Body
Properties
Defines properties of the report body.
Unhide Components
Shows the hidden components you
specify.
Style
Applies a style to the selected
components or the whole report.
Editing Marks
Shows or hides editing marks (dashed
outlines for objects and report body). If
the option is unselected, the editing
mark will not be shown when a report
object receives focus, and report
objects cannot be moved or resized.
Refresh
Runs the report using previously
provided parameters. The Refresh
operation fetches the data again.
Table
Inserts a table into the report.
Format
Help
Standard Toolbar
Crosstab
Inserts a crosstab into the report.
Chart
Inserts a chart into the report.
Parameter Control
Inserts a parameter control into the
report.
Parameter Form
Control
Inserts a parameter form control into
the report.
Filter Control
Inserts a filter control into the report.
Navigation Control
Inserts a navigation control into the
report.
Label
Inserts a label into the report.
Image
Inserts an image into the report.
Multimedia Object
Inserts a multimedia object into the
report.
Font
Specifies the font format of the
selected text. Available only when a
label or field is selected.
Merge
Merges the selected tabular cells into
one.
Split
Splits the selected tabular cell into the
specified number of rows and columns.
User's Guide
Opens the JReport Studio User's Guide.
JReport Home Page
Connects to JReport Home Page.
Technical Support
Accesses Jinfonet Technical Support.
About JReport Web
Shows product information about
JReport Web.
New Report
Creates a new report based on an
existing business view.
Open
Opens a report.
Save
Saves the changes of the current
studio report.
Save As
Saves a copy of the studio report or the
report template in the current studio
report to server resources.
Export
Exports the report result to disk or
version in various formats.
Page Setup
Configures the report page settings.
Print
Prints the current report result to a
PDF/HTML file.
Refresh
Runs the report using previously
provided parameters. The Refresh
operation fetches the data again.
Undo
Undoes the last operation.
Redo
Reverses the operation of Undo.
Filter
Filters the report records according to
the filter criteria you specify.
Delete
Deletes the selected object.
Rotate Crosstab
Rotates a crosstab to exchange the
axes on the crosstab in order to create
a different view of the crosstab.
Quick Format
Toolbar
Context Toolbar for
Table
Swap Chart Groups
Specifies whether to switch data
between the category and series axes,
or between the category and value
axes of a chart if there is no field on
the series axes.
Font
Specifies the font format of the
selected text. Available only when a
label or field is selected.
Background Color
Changes the background color of the
selected text. Available only when a
label or field is selected.
Align
Makes the selected text left, center or
right aligned. Available only when a
label or field is selected.
Merge
Merges the selected tabular cells into
one.
Split
Splits the selected tabular cell into the
specified number of rows and columns.
Table Wizard
Opens the Table Wizard for you to edit
the table.
Show/Hide Detail
Hides or shows the detail columns you
specify.
Add/Remove Group
Specifies whether to add or remove the
selected field as a group.
Show/Hide Summary Specifies whether to show or hide the
selected summary field.
Context Toolbar for
Crosstab
Context Toolbar for
Chart
Panel
Hide
Hides the selected column.
Aggregate On
Creates a new summary directly based
on the field bound with the table detail
column.
Crosstab Wizard
Opens the Crosstab Wizard for you to
edit the crosstab.
Rotate Crosstab
Rotates a crosstab to exchange the
axes on the crosstab in order to create
a different view of the crosstab.
Chart Wizard
Opens the Chart Wizard for you to edit
the chart.
Swap Chart Groups
Specifies whether to switch data
between the category and series axes,
or between the category and value
axes if there is no field on the series
axes.
Chart Type
Lists all available chart types for you to
change the type of the chart.
Chart Options
Lists more options for you to specify
the layout of the chart.
Parameters
Lists all the parameters used by the
current report. It is available when the
current report uses parameters.
Resources
Lists all the available resources.
Components
Lists all the available components.
Filter
Specifies the criteria to filter the data
field. You can also remove or change
existing filters.
Go to Filter
After you perform the go-to-by-value
action, the panel is displayed showing
the filter created by the action.
Shortcut Menu
Show
Shows the selected fields.
Apply Style
Applies a style to the selected
component.
Delete
Deletes the selected object.
Hide
Hides the selected object.
Properties
Defines properties of the selected
object.
Filter
Provides submenu items for filtering
the data in the selected component or
remove existing filters.
Sort
Provides submenu items for sorting
records on the selected field in
ascending/descending order, or remove
the sort.
Go to Detail
Goes to the detailed information of the
selected summary.
Edit Detail Table
Edits the detail table to define the
detail fields of the summary.
Edit Link
Links the selected object to a report,
URL or E-mail.
Conditional
Formatting
Adds some conditional formatting to
the currently selected field.
Go To
Goes to any group to show its record
information.
Go to By Value
Goes to any group with the current
group value as a filter to show its
record information.
Note: The shortcut menu contents vary with the objects you right-click. The above table only lists
some typical shortcut menu items. The following sections will guide you to use the shortcut menu for
any object you may right-click.
Creating studio reports via wizard
On the JReport Console > Reports page, you can directly create a new studio report in a folder into
which a catalog containing one or more business views have been published.
To create a studio report:
1. Open the folder and select the catalog for the new studio report from the Catalog drop-down list,
then click New Report on the task bar of the Reports page.
2. In the Select Report Type dialog, check the option Web Layout Report and click OK. The JReport
Studio Wizard is then displayed.
3. In the Page screen, choose a template for the report. Template1 allows for your company logo and
report title to be added. Template2 allows for more such as company name and title and report
sub title. Use
to load your company logo. You can set the font properties for company titles
. Click the Page Setup link to set the page properties. If you are an
and report titles using
administrator with the privilege of publishing resources, you can also create a new template
according to your requirement.
4. In the Layout screen, select the required layout with which you want to create the report. Then, in
the edit layout area, select a tabular cell and select the component you want to display in the cell.
Click the Align drop-down list to set the component to the left, center or right of the cell. Repeat
this to add component to the other cells.
If required, you can split the selected cell horizontally or vertically by clicking the Horizontal Split
or Vertical Split button, merge adjacent cells by selecting them and clicking Merge. You can also
resize the tabular cells by dragging the cell border.
5. In the Bind Data screen, define the specified components. You can use the Back and Next buttons
to switch between the components.
❍
For Table component:
a. Specify a title for the table in the Table Title field, and if necessary, click
font properties for the title.
to set the
b. From the Data Source drop-down list, select the business view in the current catalog, on
which the table will be built. Click the Filter button to add some filter conditions to the
business view to narrow down data displayed in the table if required.
c. Select the required table type: Group Left, Group Above, Group Left Above, or Summary
Table.
d. In the Display tab, add the required fields from the Resources box to be displayed in the
table. Specify the label of any added field as required.
e. In the Group tab, add the group objects
as the grouping criteria, then specify the
sorting order of each group in the Sort column.
f. To add summaries, go to the Summary tab. Select the group to which the summary will be
applied, then add an aggregation object
❍
as the summary field.
For Chart component:
a. Specify a title for the chart in the Chart Title field, and if necessary, click
font properties for the title.
to set the
b. From the Data Source drop-down list, select the business view in the current catalog, on
which the chart will be built. Click the Filter button to add some filter conditions to the
business view to narrow down data displayed in the chart if required.
c. To create a single chart, in the Primary Axis box, select the required chart type from the
chart type drop-down list.
above the Primary Axis box and an additional chart type
To create a combo chart, click
will be added. You can replace the additional chart type by selecting the required one from
the chart type drop-down list. Repeat this to add more chart types. Check the Secondary
Axis checkbox if you want to have the secondary axis (Y2) and define the chart types on
the axis as required. To delete a type, select it and click
.
d. Select a group object
in the Resources box and add it to the Category or Series text
field, the data of which will be displayed on the corresponding axis.
e. In the Primary Axis or Secondary Axis box, select a chart type and add an aggregation
as the data of the type (you can add more than one aggregation object to a
object
type). Each added chart type needs to have at least one aggregation object.
f. If you want to define some sort order and Select N condition on the category/series field,
click
above the Category/Series text field.
g. In the Category/Series Options dialog, specify in which order values of the category/series
field will be sorted in the Category/Series Order box.
h. In the Category/Series Selection box, specify the Select condition to All, Top N or Bottom
N. If All is selected, all category/series values will be shown in the chart; if Top N or Bottom
N is selected, the text field next to it will be enabled and you can specify an integer here,
which means that the first or last N category/series values will be shown in the chart.
i. Check the Based On checkbox and specify values for the two drop-down lists that follow
according to your requirement.
If Based On is unchecked, the order of the first or last N category/series values will be
based on what you specify in the Category/Series Order box of the dialog; if you check it,
the order will be based on values of the summary field and the sort direction you specify in
the drop-down lists next to Based On.
j. If you have selected Top N or Bottom N from the Select drop-down list, you can check the
Remaining Categories/Series In checkbox and then type a character string in the text
field, so that the category/series values beyond the first or last N range will be merged into
the group with the name as that character string.
k. If necessary, you can check Skip First, and then input a number M in the text field to the
right, then the first M category/series values will be skipped and the Select N condition will
begin with M+1. The skipped values will be merged into the Remaining Categories/Series
group.
l. Click OK to accept the settings.
❍
For Crosstab component:
a. Specify a title for the crosstab in the Crosstab Title field, and if necessary, click
set the font properties for the title.
to
b. From the Data Source drop-down list, select the business view in the current catalog, on
which the crosstab will be built. Click the Filter button to add some filter conditions to the
business view to narrow down data displayed in the crosstab if required.
c. From the Resources box, select a group object
and click
or
to add it to the
Columns or Rows box as a group field. Then, in the Label column, edit the display name of
the group object if required. This will label the row/column when the report is displayed. By
default the Label column is blank and no label will be created for the row/column. In the
Sort column, specify the sorting manner for the group field.
d. Select an aggregation object
or a detail object
and click
to add it to the
Summaries box as an aggregate field. If a detail object is added, specify the aggregate
function for it in the Aggregation column. In the Label column, edit the display name of the
aggregate field as required.
e. Repeat this to add more group/aggregate fields. If you want to remove any field, select it
and click
. To adjust the order of the fields, select a field and click
or
.
6. In the Style screen, apply a style to the report.
7. Click Save to save the report to the server resource tree. For details, see Saving the report.
8. Click Run to open the report in JReport Studio.
See also JReport Studio Wizard for details about options in the wizard.
Predefining report templates
Studio reports allow you to choose a starting template. If you are an administrator with the privilege of
publishing resources, you can predefine the template to include standard features such as company
logo, company name, privacy notices or any standard items and styles you want your users to start
with.
To create a template:
1. In the Page screen of the JReport Studio Wizard, select a template from the Templates box.
2. Specify the display names for report title, sub title and company title in their text field, modify
their font properties by clicking
Then click the Save button.
, and load the company logo by clicking
if required.
3. In the Save As dialog, choose the file type of Studio Report Template(*.wsld), and specify a
new name for the wsld file in the file name text field or select an existing wsld file from the
template box to overwrite the template according to Publish privilege.
4. When done, click Save, and the new template will then be added into the templates directory on
your server.
Administrators with the Publish privilege can also save report template after a report is opened in
JReport studio. To do this, click Menu > File > Save As (or the Save As button
toolbar), and then follow steps 3 and 4 above.
on the Standard
The saved report templates will be automatically loaded onto the Page screen of the JReport Studio
Wizard for use.
Editing studio reports in JReport Studio
JReport Studio is the web oriented page where you view and edit studio reports. When a report is
opened in JReport Studio, by default it is in the view mode which provides only viewing-oriented
functions. If you want to edit the report, click the Edit Mode link on the toolbar to enter the edit mode.
Pick a task from the following:
●
General operations in reports
●
Inserting components
●
Making simple modifications to components
●
Manipulating data components
●
Binding links to components
●
Using dynamic resources
●
Going through the report data
●
Applying filters
●
Using web controls
●
Adding conditional formats to fields
●
Applying parameters
●
Sorting report data
●
Applying CSS styles
●
Saving the report
●
Exporting/Printing the report result
General operations in reports
You can perform the following general operations in JReport Studio:
●
Opening another studio report
Click Menu > File > Open (or the Open button
on the Standard toolbar) to display the Select a
Report dialog, in which the studio reports in the same folder as the current open report are listed.
Select the studio report you want to open from the default folder or from another folder, and then
click OK.
●
●
Exiting JReport Studio
If you want to close the current studio report and release the resources, just click Menu > File >
Exit (or the button X on the far right of the toolbar). Do not use the close button on the browser
window as that may not release the resources used by the report.
Undoing/Redoing actions
You can undo or redo some actions. To do this, click Menu > Edit > Undo or Redo (or the Undo
button
●
●
●
●
or Redo button
on the Standard toolbar).
Navigating component data via scroll bar
For tables, crosstabs and charts, you can use the scroll bar to navigate their data if the tabular cell
can not display all data of the component.
Turning component pages
In JReport Studio, if a table or a crosstab contains more than one page, a navigation bar specific for
the component will be available right below the component. You can use the navigation bar to view
the desired pages: click a number or input a number in the text box.
Showing/Hiding editing marks
You can use editing marks (dashed outlines of objects) for purposes such as aligning, moving and
resizing. The editing marks are shown by default. To switch the status of the editing marks, click
Menu > View > Editing Marks.
Asking for help
At any time, you can click Menu > Help > User's Guide to open the index page of JReport Studio
User's Guide. Furthermore, you can click the Help button in any dialog to show the help document
about the dialog. You can also use the Help menu to access Jinfonet Software website for more
information.
Inserting components
You can insert components into a studio report via the Insert menu or via the Components panel on the
left of the JReport Studio window.
The following table lists the report areas that are valid targets for the various components.
Report Layout Area
Component
Page Header/
Footer
Report
Body
Tabular
Cell
Table Cell
Chart
Y
Y
Y
N
Crosstab
Y
Y
Y
N
Table
Y
Y
Y
N
Group object
Y
Y
Y
Y
Detail object
Y
Y
Y
Y
Aggregation
object
N
Y
N
Y
Formula
Y
Y
Y
Y
Label
Y
Y
Y
Y
Image
Y
Y
Y
N
Multimedia object Y
Y
Y
N
Web control
Y
Y
N
Y
The following shows inserting a specific component in detail:
Insert a label
To insert a label into a report, locate the place in the report where you want to insert the label, then
click Menu > Insert > Label, or drag Label from the Components panel to the destination. The label
will then be inserted in the specified location.
Inserting an image
1. Locate the place in the report where you want to insert the image.
2. Click Menu > Insert > Image, or drag Image from the Components panel to the destination.
The Insert Image dialog is displayed.
3. Specify the image you want to insert.
❍
❍
❍
To use an image in the local file system, select Local File, then click Browse to find the image.
To use an image on a website, select Web URL, then input the image URL or paste the URL in
the Image URL text field.
To use an image in the image library of the JReport Studio, select Library, then select the
image in the My Images box.
4. Click OK to insert the image.
Inserting a table
1. Locate the place in the report where you want to insert the table.
2. Click Menu > Insert > Table, or drag Table from the Components panel to the destination. The
Insert Table dialog is displayed.
3. Specify a title for the table in the Table Title text field, and if required, click
properties for the title.
to set the font
4. From the Data Source drop-down list, select the business view in the current catalog, on which the
table will be built, and if required, click the Filter button to add some filter conditions to the
business view to narrow down data displayed in the table.
5. Select the required table type: Group Above, Group Left, Group Left Above, or Summary Table.
6. In the Display tab, add the required fields from the Resources box to be displayed in the table.
Specify the display name of any added field in the Label column if necessary.
7. In the Group tab, add the group objects
as the grouping criteria, then specify the sorting
manner of each group in the Sort column. To adjust the order of the groups, select a group and
click
or
.
8. To add summaries, go to the Summary tab. Select the group to which the summary will be
applied, then add an aggregation object
as the summary field.
9. Click OK to insert the table.
For details about the options in the dialog, see Insert Table dialog.
Inserting a crosstab
1. Locate the place in the report where you want to insert the crosstab.
2. Click Menu > Insert > Crosstab, or drag Crosstab from the Components panel to the
destination. The Insert Crosstab dialog is displayed.
3. Specify a title for the crosstab in the Crosstab Title text field, and if required, click
font properties for the title.
to set the
4. From the Data Source drop-down list, select the business view in the current catalog, on which the
crosstab will be built, and if required, click the Filter button to add some filter conditions to the
business view to narrow down data displayed in the crosstab.
5. From the Resources box, select a group object
and click
or
to add it to the Columns
or Rows box as a group field. Select an aggregation object
or a detail object
and click
to add it to the Summaries box as an aggregate field. Repeat this to add more group/aggregate
fields.
6. In the label column, edit the display names of the added group fields or aggregate fields if
required. These will label the rows, columns and aggregate fields when the report is displayed. By
default these are blank and no labels will be created.
7. In the Sort column, specify the sorting manner for the group fields.
8. In the Aggregation column, specify the aggregate functions for the detail objects.
9. If you want to remove any field, select it and click
field and click
or
. To adjust the order of the fields, select a
.
10. Click OK to insert the crosstab.
For details about the options in the dialog, see Insert Crosstab dialog.
Inserting a chart
1. Locate the place in the report where you want to insert the chart.
2. Click Menu > Insert > Chart, or drag Chart from the Components panel to the destination. The
Insert Chart dialog is displayed.
3. Specify a title for the chart in the Chart Title text field, and if required, click
properties for the title.
to set the font
4. From the Data Source drop-down list, select the business view in the current catalog, on which the
chart will be built, and if required, click the Filter button to add some filter conditions to the
business view to narrow down data displayed in the chart.
5. Select a group object
in the Resources box and add it to the Category or Series box, the data
of which will be displayed on the corresponding axis.
6. To create a combo chart, click
to add the required combo type to Primary Axis and Secondary
Axis respectively. The Secondary Axis option is grayed out in default. Check the Secondary Axis
checkbox if required. A default chart type has been added to the primary axis. To add more types,
repeat the procedures. Then add an aggregation object
as the data of the chart type (you can
add more than one aggregation object to a chart). Each added chart type needs to have at least
one aggregation object.
7. To change any type listed in the box, select it, then choose your required chart type from the dropdown list. To delete a type, select it and click
.
8. Click OK to insert the chart.
For details about the options in the dialog, see Insert Chart dialog.
Inserting a multimedia object
1. Locate the place in the report where you want to insert the multimedia object.
2. Click Menu > Insert > Multimedia Object, or drag Multimedia Object from the Components
panel to the destination. The Insert Multimedia dialog is displayed.
3. Choose from the three multimedia object types: Flash, Real Media file, or Windows Media File.
4. In the File Name/URL text field, specify the full path of the multimedia object you want to insert or
use the Browse button to find it if it is on your local disk. Or you can provide a URL for loading it
from a website.
5. The Plug-in page text field provides a default URL from which to download the player to play the
inserted multimedia object on a web page.
6. In the Properties box, specify the properties for the multimedia object as required.
7. Click OK to insert the multimedia object.
For details about the options in the dialog, see Insert Multimedia dialog.
Inserting a web control
You can insert the following web controls into a studio report: parameter control, parameter form
control, filter control, and navigation control. For details, see Using web controls.
Making simple modifications to components
This section introduces the general actions that you can perform on the report components.
Resizing a component and its elements
To resize a component, click anywhere in the component, then you will see it is surrounded by a
rectangle with resizing handles. Point to a handle, when the mouse pointer turns to a double-headed
arrow, you can drag the handle to resize the component.
To adjust the width of a column in a table, point to the right boundary of the column, when the mouse
pointer becomes a double-headed arrow, drag the handle to resize the column.
To adjust the row height in a table, point to the lower boundary of a row, when the mouse pointer
becomes a double-headed arrow, drag the handle to resize the row height. Then all the other rows of
the same role will be resized too. For example, if a detail row is resized, all rows in the detail area will
be resized. If a group row is resized, all rows of the group will be resized, while the other groups' rows
keep unchanged.
To resize the column or row in a crosstab, drag the right or lower boundary. Then all the columns or
rows of the same role will change too.
For a tabular, point to the boundary between two cells and the mouse pointer will become a doubleheaded arrow, you can then drag the boundary to adjust the size of the related cells.
Hiding/showing a component
To hide a component, click on the component, when the icon
appears at its upper left corner, rightclick on the icon and then select Hide from the shortcut menu.
To show the hidden components, click Menu > Edit > Unhide Components and then select the
desired components to show from the drop-down list. Another way to show the component after hiding
is Undo.
Editing a component
●
●
●
To edit a label, click in the text and update the content. You can also use the Quick Formats toolbar
to format the font, border, alignment, and background color of a label.
To edit a table, crosstab, or chart, use the corresponding component wizard on the shortcut menu.
For details, see Manipulating data components.
To edit an image or a multimedia, click on the component, when the icon
appears at its upper left
corner, right-click on the icon and click Edit on the shortcut menu and then modify the settings in
the displayed dialog.
For a tabular, you can edit it as follows:
●
❍
Merging tabular cells
Adjacent cells in a tabular which form a rectangle can be merged into one cell.
To merge adjacent cells, select them one by one while holding the Ctrl key, then click Menu >
Format > Merge or click
❍
on the toolbar, and these cells will be merged into one cell.
Splitting a tabular cell
To split a tabular cell, select the cell and click Menu > Format > Split or click
on the
toolbar, then in the Split Cell dialog, specify the number of rows and columns and click OK.
Modifying component properties
JReport Studio allows you to modify object properties with the corresponding properties dialog.
●
●
To format the properties of any object in a report, right-click the object and then select Properties
from the shortcut menu. In the corresponding properties dialog, specify the settings as required.
If you want to format the properties of the report, click Menu > Edit > Report Body, then in the
Report Body Properties dialog, configure the properties as required.
For detailed explanation about options in the properties dialogs, refer to the specific topics in JReport
Studio dialogs.
Deleting a component
A component can be removed from the report if it is no longer required. To delete a component, click
on the component, when the icon
appears at its upper left corner, right-click on the icon and select
Delete from the shortcut menu. Then, a message will prompt, asking for your confirmation. Click OK
in the message box so as to remove the component.
Note: In a studio report, there must be one and only one tabular, so you cannot either insert another
tabular or delete the current tabular.
Manipulating data components
You can manipulate data components, which refer to tables, crosstabs, and charts, in JReport Studio as
shown below. Note that, most of the manipulations require selecting the component first. To select a
component, click anywhere in the component, when the icon
appears at its upper left corner, click
the icon.
Manipulating a table
●
●
●
Adjusting order of columns in a table
The order of columns in a table can be easily adjusted. To do this, first select a column by clicking on
the column header, then drag it to the left or right boundary of another column, when a highlighted
line appears along the column boundary, release the mouse button, and you will see the order
changes.
Adjusting the width of table columns according to contents
When the contents in cells of a table column need more space to completely display, you can adjust
the width of the table column according to the contents. To do this, select the column by clicking on
the column header, then right-click the column and select Auto Fit from the shortcut menu.
Changing the table definition
1. Select the table and do one of the following to display the Table Wizard:
■
Click Menu > Edit > Wizard.
■
Click the Table Wizard button
■
Right-click the icon
on the Context toolbar.
of the table and select Table Wizard from the shortcut menu.
2. In the Table Title text field, edit the title of the table. You can click
size, and style of the title.
to customize the font,
3. If required, click the Filter button to apply some filter conditions to narrow down data displayed
in the table.
4. In the Display tab, add or change the fields displayed in the table.
5. In the Group tab, modify the grouping criteria of the table.
6. Upon finishing, click OK to apply the modifications.
●
Aggregating on a detail column
You can summarize the data in a detail column. To do this:
1. Right-click the detail field and select Aggregate On from the shortcut menu. Or you can click
the column header to select the column, then on the Context toolbar, click the Aggregate On
button
.
2. In the Aggregate On dialog, specify a function from the Function drop-down list to summarize
the field in the detail column.
3. When done, click OK.
■
■
If the table has groups, the aggregation will be created for each group in every group level
and for the whole table at the same time.
If the table has no groups, the aggregation will be created based on the whole table.
When you finish aggregating on a detail column, you will find a dynamic aggregation is created which
is given a default name Function_DetailFieldName in the Dynamic Resource > Aggregations list in the
Resources panel and you can use it again in the current report if required.
●
Adding/Removing groups in a table
You can add more groups into a table or remove the groups that are not required from a table.
❍
To add a group into a table:
Select the table, then on the Context toolbar, click the Add/Remove Group button
and you
will get a drop-down list of fields in the business view that can be used as group by fields. From the
list you can select the field you would like to add into the table as a group. If there is no existing
group in the table, the added group will be placed at the left-above position. If the table already
contains groups, the new group will be added as the highest level group and follow the same
position pattern as the closest existing group.
❍
To remove a group from a table:
Click the group column header to select the column, right-click and select Delete from the shortcut
menu, then click Yes in the message dialog to confirm the removal. Or you can use the Add/
Remove Group button
on the Context toolbar of the table: unselect the group you want to
remove from the drop-down list, then click Yes in the message dialog.
Showing/Hiding detail columns
●
To show/hide a detail column, select the table, then on the Context toolbar, click the Show/Hide
Detail button
column.
. From the drop-down list, select/unselect the field name to show/hide its detail
You can also hide a detail column by first clicking its column header to select it and then clicking the
Hide button
shortcut menu.
on the Context toolbar, or right-clicking the column and selecting Hide from the
Showing/Hiding summaries
●
To show/hide a summary from a table, first select the table and then do either of the following:
❍
❍
On the Context toolbar, click the Show/Hide Summary button
select/unselect the summary field name to show/hide it.
. From the drop-down list,
Right-click the icon
of the table, then on the shortcut menu, select/unselect the summary field
name from the Show/Hide Summary sub menu to show/hide it.
Manipulating a crosstab
●
Changing the crosstab definition
1. Select the crosstab and then do one of the following to display the Crosstab Wizard:
■
Click Menu > Edit > Wizard.
■
Click the Crosstab Wizard button
■
Right-click the icon
on the Context toolbar.
of the crosstab and select Crosstab Wizard from the shortcut menu.
2. In the Crosstab Title text field, edit the title of the crosstab. You can click
the font, size, and style of the title.
to customize
3. If required, click the Filter button to apply some filter conditions to narrow down data displayed
in the crosstab.
4. Change the fields and summaries used by the crosstab.
5. Upon finishing, click OK to apply the modifications.
Converting a crosstab into a chart
●
1. Select the chart and then do either of the following to display the To Chart dialog:
■
Click Menu > Edit > To Chart.
■
Right-click the icon
of the crosstab and select To Chart from the shortcut menu.
2. In the Title text field, input a title for the chart. You can click
and style of the title.
to customize the font, size,
3. The Resources box lists all the view elements used in the selected crosstab including group and
aggregation objects. The chart can only be defined based on the view elements listed. Add a
group object
from the Resources box to the Category box, and so to the Series box, and
aggregation objects
to the Show Values box respectively.
4. Click the OK button to finish the conversion.
●
Rotating a crosstab
Columns and rows in a crosstab can be exchanged. This operation is called rotating a crosstab.
To rotate a crosstab, first select it, and then do one of the following:
●
❍
Click Menu > Edit > Rotate Crosstab.
❍
Click the Rotate Crosstab button
❍
Right-click the icon
of the crosstab and select Rotate Crosstab from the shortcut menu.
Adjusting the width of crosstab fields according to the contents
When the contents in the field of a crosstab need more space to completely display, you can adjust
the width of the field according to its contents. To achieve it, right-click the field and select Auto Fit
from the shortcut menu.
Manipulating a chart
●
on the Context toolbar.
Changing the chart definition
1. Select the chart and then do one of the following to display the Chart Wizard:
■
Click Menu > Edit > Wizard.
■
Click the Chart Wizard button
■
on the Context toolbar.
Right-click the icon
of the chart or any part of the chart other than the legend and label,
then select Chart Wizard from the shortcut menu.
2. In the Chart Title text field, edit the title of the chart. You can click
size, and style of the title.
to customize the font,
3. If required, click the Filter button to apply some filter conditions to narrow down data displayed
in the chart.
4. Change the group and aggregation objects used by the chart.
5. Upon finishing, click OK to apply the modifications.
●
●
●
Formatting chart elements
You can format the chart platform, paper, legend, X and Y axes, wall, floor, and gridlines using the
corresponding format command on the shortcut menu of a chart. For details about the element
properties, refer to the specific format dialog in JReport Studio dialogs.
Sorting category/series labels
You can sort the labels on the category or series axes of a chart in either descending or ascending
alphabetical order. To do this, right-click the chart, then on the shortcut menu, select the required
order from the Sort Category or Sort Series submenu.
Swapping chart groups
You can switch data between the category and series axes, or between the category and value axes
of a chart if no field on the series axes.
To swap the chart groups, first select the chart, then do either of the following:
❍
❍
●
Click the Swap Chart Groups button
on the Context toolbar.
Right-click the icon
of the chart or any part of the chart other than the legend and label and
select Swap Chart Groups from the shortcut menu.
Converting a chart into a crosstab
1. Select the chart and then do either of the following to display the To Crosstab dialog:
■
■
Click Menu > Edit > To Crosstab.
Right-click the icon
of the chart or any part of the chart except for the legend and label and
click To Crosstab on the shortcut menu.
2. In the Title text field, input a title for the crosstab. You can click
size, and style of the title.
3. Select a group object
in the Resources box and click
or
to customize the font,
to add it as a group field to
and click
to add it as an
the Columns or Rows box; select an aggregation object
aggregate field to the Summaries box. Repeat these to add more aggregate fields.
In the Label column, you can edit the label of a group field or aggregate field, and the Sort
column allows you to specify a sorting manner on a group field.
If you want to remove any group/aggregate field, select it and click
.
To adjust the order of group/aggregate fields, select a group/aggregate field and click
or
4. Click OK to finish the conversion.
●
Changing chart type
Select the chart, then on the Context toolbar, click the Chart Type button
down menu, select the desired chart type and its subtype.
●
. From the drop-
Changing legend position in a chart
Chart legend can be placed at the top, bottom, left or right position in a chart. To change the legend
position, select the chart, then on the Context toolbar, click the Chart Options button
the drop-down menu, go to the Legend submenu and select the desired position.
●
. From
Showing/Hiding labels on the X/Y axis
Select the chart, then on the Context toolbar, click the Chart Options button
. From the dropdown menu, go to the Label submenu, then select/unselect the desired labels to show/hide them.
●
Showing/Hiding X/Y gridlines
Select the chart, then on the Context toolbar, click the Chart Options button
. From the dropdown menu, go to the Gridlines submenu, then select/unselect the desired gridlines to show/hide
them.
When gridlines are shown, it is better to also have the wall shown so as to make the background
gridlines more intuitive. To show the wall, follow the steps above, then on the Gridlines submenu,
select Wall.
.
Binding links to components
You can bind links to labels, images, DBFields, formula fields, parameter fields, and multimedia objects.
To bind a link to a component:
1. Right-click the component and select Edit Link on the shortcut menu. The Edit Link dialog
appears.
2. Specify the link type to which the component will be linked by selecting the desired type and then
set the related options for the type.
❍
❍
❍
Link to Report
If you create a link to a report, when viewing the result, you can view another report by clicking
the component.
Link to URL
Enter the URL in the Hyperlink box if you want to create a link to a web page, then specify
whether to open the URL in a new window.
Link to E-mail
Enter the E-mail address in the Hyperlink box.
3. When done, click OK to close this dialog.
See also Edit Link dialog for additional information about options in the dialog.
Linking a report to another report
A report can be linked to another report, after which the trigger object in the primary report can be
clicked in order to jump to the linked report to obtain information about the trigger object. In JReport
Studio, it is very simple to set up the link relationship between two reports.
1. Create a new studio report which will be used as the primary report.
2. In the report, select an object to be the trigger for loading the linked report.
3. Right-click the trigger object, click Edit Link on the shortcut menu. Link to Report is selected by
default in the Edit Link dialog.
4. Click the Browse button to specify the target studio report you want as the linked report.
5. The Target Report Parameters section lists the parameters of the linked report. You can assign
fields of the primary report to the parameters. Then, when running the linked report from the link,
the field values of the primary report will be assigned to the parameters automatically.
6. In the Target Component section, click
be interlinked with the primary report.
to specify which components in the linked report will
7. In the Conditions section, specify the link relationship for each target component.
a. Select a component in the Target Component box, and then set link condition for it in the
Conditions section.
b. Click
to add a condition row.
c. Select a field/formula from the drop-down list in the Main column.
d. Choose an operator from the drop-down list in the OP column. The operator can be "=",
"<>", "<", ">", "<=", ">=", or "IN".
e. Specify the field/formula of the linked report from the drop-down list in the Target column.
All fields in the linked report of the same value type as the selected main report field will be
available.
f. If necessary, you can specify more link conditions by specifying the main report field, the
operator, and the corresponding field in the linked report. Note that the relationship among
these link conditions is AND, which means that JReport will fetch linked report data which
meets all of the conditions.
g. Repeat the above steps to set link conditions for other target components.
8. Specifies whether to have the linked report loaded in a new window.
9. Click OK to apply the settings.
Then, when the primary report is opened in HTML, PDF or Excel format, when you click the trigger
object in the primary report, you will find that the linked report is displayed according to the specified
link conditions. To go back to the original report, click
on the toolbar. Click
next to
and you
will get a drop-down list which lists the original report and the linked targets you have just visited
within the link chain. The item checked on the drop-down list is the currently opened page. Select an
unchecked item and you will be directed to that target.
Notes:
●
●
When linking reports, you need to avoid link loops. For example, if you have linked report A to report
B, then you cannot link report B back to report A again.
The condition specified in the Conditions section is used for setting up the searching criteria between
the two linked reports. That is, the pages containing the data that meet the condition in the linked
report will be displayed after you click the link.
Using dynamic resources
When you add fields to a report, sometimes you may find that the view elements that have been predefined in the business view cannot meet your
requirements, in which case, you can create some dynamic resources and use them in the report to get the desired data. Then when you save the report,
the dynamic resources will be saved along with the report as its resources.
Dynamic resources that can be used in studio reports include formulas and aggregations.
Creating and using dynamic formulas
You should have some knowledge of the formula syntax before you can successfully compose a formula with no errors. To learn the formula syntax, refer to
Formula syntax in the JReport Designer User's Guide.
To create a dynamic formula:
1. In the Resources panel in the JReport Studio Wizard or in the report/component wizard, expand the Dynamic Resource > Formulas node, then click
<Add Formula…> to display the Formula Editor.
2. Enter a name for the formula in the Formula Name text field.
3. Compose the formula by selecting the required fields, functions and operators from the Fields, Functions and Operators panels. You can also write the
formula by yourself in the editing panel.
For details about the functions and operators, refer to Built-in functions and Operators in the JReport Designer User's Guide.
4. Click the Check button
to check whether or not the syntax of your formula is correct.
5. When done, click the OK button to create the formula.
Notes:
●
You can only save a formula with no errors into a report.
●
Currently, global variables are not supported in dynamic formulas.
●
When formulas reference display names or mapping names, the names should not contain any of the following characters if the names are not quoted by
double-quotation marks "":
"~", "`", "!", "@", "#", "$", "%", "^", "&", "*", "(", ")", "-", "+", "=", "{", "}", "[", "]", "|", "\\", ":", ";", "\", " ' ", "<", ",", ">", ".", "?", "/"
Examples:
❍
Expression @Customer#; will cause a syntax error. But @"Customer#" is ok.
❍
If a field has the display name Category.Aggregation, when adding it to a formula, quote it as "Category.Aggregation" or "Category"."Aggregation".
Once a dynamic formula has been created, you can then drag it from the Resources panel to the desired position in the report as a detail object, or use it
when working with the report/component wizard.
Also, if you want to further edit an existing dynamic formula or remove any formula that is not required, right-click the formula and then click the
corresponding command on the shortcut menu.
Creating and using dynamic aggregations
In JReport Studio, you can also create dynamic aggregations by mapping them to the available resources such as group objects, detail objects in the current
business view and the dynamic formulas that have been created in the report.
To create a dynamic aggregation:
1. In the Resources panel in the JReport Studio Wizard or in report/component wizard, expand the Dynamic Resource > Aggregations node, then click
<Add Aggregation…>. The Add Aggregation dialog is then displayed.
2. Click the chooser button
next to the Resource Name text field to specify the field on which the dynamic aggregation is based.
3. From the Aggregate drop-down list, specify the aggregate function.
4. In the Aggregation Name text field, specify the display name of the dynamic aggregation.
5. When done, click OK to create the dynamic aggregation.
Once a dynamic aggregation is created, you can then drag it from the Resources panel to the desired position in the report to see the desired data, or use it
when working with the report/component wizard. And if you want to edit any dynamic aggregation or delete it, right-click the aggregation and click Edit or
Delete on the shortcut menu.
Going through the report data
In a studio report, you can choose to show certain groups of records according to your requirements,
and switch among the groups to see the data you want.
This section presents two kinds of going in studio reports. They are:
●
Automatic going
●
Going to detail
Automatic going
Automatic going enables you to switch from the current group to another group by using systemdefined commands on the shortcut menu, and it is divided into two kinds:
●
●
Go-to
It enables you to obtain a different view of data by switching among groups.
Go-to-by-value
It enables you to filter data based on a go-to action so as to obtain a more detailed view of the data.
Automatic going actions are performed on tables and crosstabs. After a going action has been
performed, the data presented in the component will be re-loaded from the data buffer, showing only
the records in the selected group, and the new report created by going can also be viewed, printed,
and exported to other format in the same way as the original report.
Assume you have created a crosstab report on the business view WorldWideSalesBV in Data Source 1
of the SampleReports catalog showing product sales information with Product Type (ascending) as the
column field, Category (ascending) as the row field, and Total Sales as the summary field, and applied
the default style to the crosstab. The crosstab shows as follows:
We will now take the crosstab as an instance to illustrate the automatic going functions.
Go-to
1. Right-click any value of Product Type, Decaf for example, and choose Go To from the shortcut
menu. The list of groups available for Go To will appear on the submenu.
2. Click Region on the submenu, then in the regenerated result, we can see that Category remains
the group for rows and Region becomes the group for columns.
3. To return to the original status, right-click any value and then click Go To > Product Type on the
shortcut menu.
Go-to-by-value
1. Go back to the original report in the above example.
2. Right-click the value Decaf of the Product Type group, and point to Go to By Value on the
shortcut menu. A submenu for the command is displayed, which lists the same items as those of
Go To.
3. Click Region too and the result will be regenerated.
We can see that the result is different from that of go-to. This is because that, for the go-to-byvalue action, the group of columns changes to Region by the Product Type value Decaf. That is, on
the basis of the go-to action, a filtering action where Product Type = Decaf is further performed,
and thus the result of go-to-by-value is generated.
In addition, when a go-to-by-value action is performed, the Go to Filter panel will be displayed on
the left of the JReport Studio window, which shows the group and the value the filter is based on.
4. To go back to the original report, first delete the filter in the Go to Filter panel, then right-click any
value of Region, choose Go To from the shortcut menu, and click Product Type on the submenu.
Note: If the table type is Group Above, you can right-click its group header to show the shortcut menu
so as to use the automatic going function. For other table types, you have to right-click the group
name in group column to perform automatic going.
Going to detail
Go-to-detail action is performed on the summary of the tables, crosstabs and charts. First define a
table and make it contain the information you would like to view about the summary values. Suppose
that the summary is total sales in different countries. Then when you perform go-to-detail action on the
value of total sales in France, you will get the table displaying the fields you defined and having applied
the filter condition Country=France. When you go to detail of the total sales in another country, the
table will display the data of that country.
To define the detail table for a summary and perform the go-to-detail action on it:
1. Right-click any summary value and select Edit Detail Table from the shortcut menu.
2. In the Edit Detail Table dialog, add the fields you want to display in the detail table of the
summary.
3. Click OK.
4. Right-click a summary value of which you would like to view the detailed information, then click
Go to Detail on the shortcut menu. The detail table for the summary value will then be displayed,
which shows the fields you have defined.
5. To go back to the original report, click
on the toolbar.
Applying filters
You can apply filters to business views and data components such as tables, crosstabs and charts of a studio
report so as to narrow down the data displayed in the studio report.
Applying filters to business views
When creating studio reports, you can choose to apply some filter to the specified business view to narrow
down the data scope of the data component using the business view.
In JReport Studio, filters for business views are defined into two categories: predefined filters and user defined
filters. As the name suggests, predefined filters are defined in advance when creating or editing the business
views in JReport Designer (for details, refer to Creating predefined filters in the JReport Designer User's
Guide), and user defined filters are created on business views while they are used.
Filters can be applied to a business view in the report wizard or component wizards.
1. In the Bind Data page of the JReport Studio Wizard or in a component wizard, select the business view
that you are going to add filters to from the Data Source drop-down list, and then click the Filter button
on the right. The Query Filter dialog is displayed.
2. The dialog has the basic and advanced modes for you to define a filter using either simple expressions or
complex expressions.
When it is in the advanced mode, you can also choose to apply a predefined filter of the specified
business view from the Query Filter drop-down list. If you prefer to define a filter on your own, select
User Defined from the drop-down list, and then define the filter according to your requirements. You can
also edit a predefined filter if required and save it as a user defined filter to the business view.
❍
To define a filter using simple expressions:
a. Make sure the dialog is in the basic mode.
b. Select the field on which the filter will be based from the field drop-down list.
c. From the operator drop-down list, set the operator with which to compose the filter expression.
d. Type the values of how to filter the field in the value text box, or select one or more values from
the drop-down list.
e. If you want to add another condition line, from the logic operator drop-down list,
■
■
To add a condition line of the AND relationship with the current line, select AND, then define the
expression as required.
To add a condition line of the OR relationship with the current line, select OR, then define the
expression as required.
Repeat this to add more filter expressions if required. To delete a condition line, click
❍
on its left.
To define a filter using complex expressions:
a. Switch the dialog to the advanced mode.
b. Click the Add Condition button to add a condition line.
c. From the field drop-down list, select the field on which the filter will be based.
d. From the operator drop-down list, set the operator with which to compose the filter expression.
e. Type the values of how to filter the field in the value text box, or select one or more values from
the drop-down list.
f. To add another condition line, click the Add Condition button and define the expression as
required. Then click the logic button until you get the required logic to specify the relationship
between the two filter expressions. The logic can be AND, OR, AND NOT, or OR NOT.
g. Repeat the above steps to add more filter expressions if necessary.
To group some conditions, select them and click the Group button, then the selected conditions
will be added in one group and work as one line of filter expression. Conditions and groups
together can be further grouped. To take any condition or group in a group out, select it and click
Ungroup. It is the equivalent of adding parenthesis in a logic expression.
To adjust the priority of a condition line or a group, select it and click the Up or Down button.
To delete a condition line or a group, select it and click the Delete button.
3. After you finish the report wizard or component wizard, the specified filter will be applied to the business
view, so that your report will get data that meets the filter condition only.
Note: Query filters take effect on the component level, which means each time you create a component, you
can apply a filter to the business view the component uses and it will not affect other components based on
the same business view.
Filtering report data
There are the following ways you can take in order to filter components in a studio report: using the Filter
dialog, using the Filter panel, using the Filter web control, or via shortcut menu.
Using the Filter dialog
When using the Filter dialog to filter report data, you can only make the filter applied to a specific data
component in the current studio report.
To filter report data using the Filter dialog:
1. Click Menu > Edit > Filter, or the Filter button
displayed.
on the Standard toolbar. The Filter dialog is
2. From the Apply to drop-down list, select the component in the studio report to which you want to apply
the filter.
3. Define the filter using either simple expressions or complex expressions.
4. When done, click OK to apply the filter.
The Filter dialog provides an entry to all the filters used in the current studio report except query filters. You
can click the Inspector button to view the detailed filter information.
Using the Filter panel
The Filter panel on the left of JReport Studio is used to filter data components in the current report that are
using the same business view. To do this:
1. Add group and detail resources into the Filter panel by clicking + on the panel title bar. Each added group/
detail and its values are housed in a separate box. Group and detail objects can be selected from the
business views used by current report.
2. Select the values you would like to filter the report data. The selected values applies a filter condition to
all the data components in the current report that are using the same business view, regardless whether
the data components contain the fields holding those values.
You can make use of the Ctrl or Shift key to do multiple selection.
The value selection applies a filter condition and the logic is as follows:
●
For one value selection:
Selected_Field=Selected_Value
For example, Country=USA
●
For multiple selection:
(Selected_Field1=Selected_Value1 or Selected_Field1=Selected_Value2) and
(Selected_Field2=Selected_Value3 or Selected_Field2=Selected_Value4)...
For example, (Country=USA or Country=China) and (Year=2008 or Year=2009)
The following shows more about working with the Filter panel:
●
You can use the buttons on the bottom of the Filter panel to deal with the value selection in the panel.
❍
❍
❍
●
Back
Goes back to the previous value selection status and refreshes the report data accordingly.
Clear
Removes all the value selection histories and all the filter conditions based on the selections, and refreshes
the report data accordingly.
Forward
Goes forward to the next value selection status and refreshes the report data accordingly.
After right-clicking a group/detail name title bar, these options are available for managing the group/detail
object.
❍
Search
Displays the quick search toolbar right above the group/detail box which enables you to search values in
the group/detail object. You can also use the button
quick search toolbar.
on the group/detail name title bar to launch the
The following are details about the usage of the quick search toolbar:
■
■
■
Text field
Type in the text you want to search for in the text field and the matched text will be highlighted among
the group/detail values.
X
Closes the quick search toolbar.
Lists the advanced options.
■
■
■
Highlight All
Specifies whether to highlight all matched text.
Match Case
Specifies whether to search for text that meets the case of the typed text.
Match Whole Word
Specifies whether to search for text that matches a whole word as the typed text.
■
■
❍
Highlights the next matched text.
Highlights the previous matched text.
Clear
Cancels the selection of a value in the group/detail object. You can also use the button
detail name title bar to achieve this.
❍
❍
❍
on the group/
Clear All
Cancels the selection of all values in all the group and detail objects.
Sort
Sorts the values in the group/detail object in the ascending or descending order.
Delete
Removes the group/detail object from the Filter panel. You can also click X on the group/detail name title
bar to remove it.
Note: The filters created via the Filter panel cannot be seen when studio reports are opened in JReport
Designer.
Cascading relationship among filter controls
The Filter panel can be regarded as a collection of special filter controls which apply to all data components
using the same data source. While common filter controls can choose the data components they apply, still
under the circumstance of using the same data source.
When there are filter controls, including the special ones in the Filter panel, that apply to the same data
components, and when these controls' fields have cascading relationship, the cascading relationship will be
revealed when you select values in the controls.
For example, there is a filter control based on the field Country, a filter control on City, and another on State.
The first two share one table while the third shares nothing with the other two. In this case, Country and City
values will show cascading relationship, but State values will not participate. You select USA in the Country
filter control, the values in the City filter control will change as follows if the control has scrollbar: the cities
belong to USA are displayed in the upper area of the filter control, and the other cities are put in the lower
area and grayed out. For the case that the City filter control has no scrollbar: all the values remain their
positions and the values not belonging to USA are grayed out. In both cases all the values are selectable. But
the State values remain as before, since the selection of them will not affect the data components that the
Country and City filter controls control.
Using filter controls
You can also use the Filter web control to filter one or more data components that use the same data source in
a studio report. A filter control can do filtering based on one field. For details, see Using filter control to filter
report data.
Using the shortcut menu
You can also use filter-related commands on the shortcut menu to filter the data in a table. To do this, point to
any value of the field by which you want to filter data, then right-click to show the shortcut menu. You will see
the Filter item which provides a submenu containing the following commands:
●
Remove Filter
This command is enabled after you have applied filtering on the field. Clicking this item will remove all filters
on this field.
●
First N
Shows the First N item with which you can filter data to display records that meet the First N condition. You
can select a number from the submenu or enter a positive integer into the text box on the submenu to
specify the First N condition.
For example, if you select 5 from the First N submenu for a certain field, then only the records with the field
value equal to one of the first five field values will be displayed.
●
Last N
Shows the Last N item with which you can filter data to display records that meet the Last N condition. You
can select a number from the submenu or enter a positive integer into the text box on the submenu to
specify the Last N condition.
For example, if you select 5 from the Last N submenu for a certain field, then only the records with the field
value equal to one of the last five field values will be displayed.
●
●
Field values
"Field values" is not the name for a command on the Filter submenu, but represents some items which are
the values of the field you have right-clicked. Selecting any field value listed here will make the table only
display records with the field value equal to the selected one.
More
This command is enabled if the Filter submenu cannot list all field values. When it is enabled, clicking it will
show the Select Values dialog. You can select one value in this dialog, then the table will only display records
with the field value equal to the selected one.
Using web controls
In JReport Studio, these four types of web controls can be applied: parameter control, parameter form
control, filter control, and navigation control.
This section describes each of the web controls and how to use them.
Using parameter control to specify a parameter to a report
A parameter control is a web control that is bound with a parameter used by the current report. By
specifying values to the parameter in a parameter control, you can pass the parameter values to
JReport and run the report with the specified values.
Parameter controls do not support inserting cascading parameters. If you want to do this, use
parameter form controls instead.
To insert a parameter control and use it to specify a parameter to a report:
1. Do either of the following:
❍
❍
Click Menu > Insert > Parameter Control, then point to the destination where you want to
add the parameter control and click the mouse button.
Drag Parameter Control from the Components panel to the destination in the report.
The Insert Parameter Control dialog is displayed.
2. Select the parameter you would like to add to the parameter control, then click OK.
3. A parameter control will be added into the report. There are the following ways to specify
parameter values according to the appearance of the parameter control which varies with the type
and properties of the selected parameter:
❍
Typing in the parameter values if the text field is editable.
❍
Selecting a parameter value from a drop-down list.
❍
Using the calendar button
Time, or DateTime type.
to specify a value using the calendar if the parameter is of Date,
❍
Selecting or unselecting the checkbox to specify a Yes/No value.
❍
Using the button
to specify multiple values for the parameter in the Enter Values dialog.
4. Once the value in the parameter control changes, the report will rerun with the new parameter
value.
Note: If the specified parameter is no longer used in the report, the parameter control will become
invalid.
Using parameter form control to run reports
A parameter form control is a web control that is bound with the parameters used by the current report
or other reports. By specifying values to the parameters in a parameter form control, you can make the
reports run with the specified parameter values.
To insert a parameter form control and use it to run reports:
1. Do either of the following:
❍
❍
Click Menu > Insert > Parameter Form Control, then point to the destination where you
want to add the parameter form control and click the mouse button.
Drag Parameter Form Control from the Components panel to the destination in the report.
The Insert Parameter Form Control dialog is displayed.
2. Specify the target reports to run using the parameter form control.
❍
To run the current report, select Current Report, then specify the parameters used to run the
report from the Select Parameters box.
❍
To run other reports, select Others, then select the reports you want to run. All the parameters
used by the selected reports are displayed in the Parameter Information box. If all the selected
reports contain no parameters, you cannot finish the dialog.
3. Specify whether to include the Submit button in the parameter form control. If Submit is included,
it is used to submit the parameter values you specified in the parameter form control. If Submit is
not included, once you change the values of a parameter in the parameter form control, the new
values will be applied automatically.
4. Click OK in the dialog to save the changes.
The parameter form control is now inserted in the report. It lists the selected parameters for the
current report or lists all parameters used by the specified reports.
5. In the parameter form control, specify values of the listed parameters.
6. Click the Submit button if present to run the current report or the specified reports. If there is no
Submit button, the change of values in the parameter form control will trigger report rerunning.
Note: If you save or publish a report containing a parameter form control to another directory, the
reports that you bind the parameter form control with will not be saved or published along with the
report.
Using filter control to filter report data
A filter control is used to filter one or more data components, which refer to tables, charts, and
crosstabs, in a report using the same data source. A filter control can do filtering based on one field.
To insert a filter control and use it to filter report data:
1. Do either of the following:
❍
❍
Click Menu > Insert > Filter Control, then point to the destination where you want to add the
filter control and click the mouse button.
Drag Filter Control from the Components panel to the destination in the report.
The Insert Filter Control dialog is displayed.
2. Specify the field on which the filter control is based on, then click OK.
3. The filter control is inserted in the report. It lists all values of the specified field. You can select
one or more values to apply.
4. By default the filter control applies to all the data components in the report that are using the
same data source as the filter control's field. You can specify the exact components to be applied.
To do this, right-click the filter control's title bar, select Properties. Then in the displayed dialog,
select the desired components from the Apply To drop-down list.
After inserting filter controls in the report, you can also insert a navigation control for undoing/redoing
the value selection in the filter controls. For details about the usage of navigation control, see Using
navigation control to undo/redo value selection in filter controls.
Managing a filter control
After right-clicking
at the upper left corner of a filter control, these options are available for
managing the filter control.
●
Search
Displays the quick search toolbar right above the filter control which enables you to search values in
the filter control. You can also click the button
quick search toolbar.
on the title bar of the filter control to launch the
The following are details about the usage of the quick search toolbar:
❍
❍
❍
Text field
Type in the text you want to search for in the text field and the matched text will be highlighted
among the field values.
X
Closes the quick search toolbar. You can also click outside of the quick search toolbar to achieve
this.
Lists the advanced options.
■
■
■
❍
Highlight All
Specifies whether to highlight all matched text.
Match Case
Specifies whether to search for text that meets the case of the typed text.
Match Whole Word
Specifies whether to search for text that matches a whole word and ignore partial word matches.
Highlights the next matched text.
❍
●
Highlights the previous matched text.
Clear
Cancels the selection of values in the filter control. You can also use the button
cancel the selection. This operation can be undone/redone.
●
●
●
●
on the title bar to
Sort
Sorts the values in the filter control in the ascending or descending order.
Hide
Hides the filter control.
Delete
Removes the filter control from the report and the filter you created with the filter control will be
removed from the report too. You can also use the X button on the title bar.
Properties
Opens the Filter Control Properties dialog for editing the properties of the filter control.
Cascading relationship between filter controls
When there are filter controls that apply to the same data components, and when these controls' fields
have cascading relationship, the cascading relationship will be revealed when you select values in the
controls.
For example, there is a filter control based on the field Country, a filter control on City, and another on
State. The first two share one table while the third shares nothing with the other two. In this case,
Country and City values will show cascading relationship, but State values will not participate. You
select USA in the Country filter control, the values in the City filter control will change as follows if the
control has scroll bar: the cities belong to USA are displayed in the upper area of the filter control, and
the other cities are put in the lower area and grayed out. For the case that the City filter control has no
scroll bar: all the values remain their positions and the values not belonging to USA are grayed out. In
both cases all the values are selectable. But the State values remain as before, since the selection of
them will not affect the data components that the Country and City filter controls control.
Using navigation control to undo/redo value selection in filter controls
A navigation control can be considered as an accessorial control for filter controls and used to deal with
the value selection operations in all the filter controls in the same report.
To insert a navigation control into a report, do either of the following:
●
●
Click Menu > Insert > Navigation Control, then point to the destination where you want to add
the navigation control and click the mouse button.
Drag Navigation Control from the Components panel to the destination in the report.
A navigation control is a combination of three buttons:
●
●
Back
Goes back to the previous value selection status and refreshes the report data accordingly.
Clear
Removes all the value selection histories and all the filter conditions based on the selections, and
refreshes the report data accordingly.
●
Forward
Goes forward to the next value selection status and refreshes the report data accordingly.
Adding conditional formats to fields
You can add some conditional formats to a field in tables or crosstabs, which refer to the DBField,
parameter field, formula field, and summary field, then when the specified condition is fulfilled, the
defined format will be applied to the field values for highlighting.
To add conditional formats to a field:
1. Right-click the field and select Conditional Formatting from the shortcut menu to access the
Conditional Formatting dialog.
2. Click the button
to open the Edit Conditions dialog to define a condition using either simple
expressions or complex expressions according to your requirements.
3. The newly added condition will then be displayed and highlighted in the Condition box in the
Conditional Formatting dialog.
4. In the Format box, set the format which will be applied to values of the field when the specified
condition is fulfilled, for example, the font face, font size, font color, etc.
5. Repeat the above steps to add more conditions and define the format for each condition as
required.
To edit a condition, select the condition in the Condition box, then click
dialog, edit the expressions as required.
. In the Edit Conditions
To remove a condition and the corresponding format, select the condition in the Condition box and
click
.
To adjust the priority of a condition, select the condition in the Condition box and then click
.
6. Click OK to apply the conditional formats to the field.
See also Conditional Formatting dialog and Edit Conditions dialog for details about options in the
dialogs.
or
Applying parameters
When running a studio report with parameters, a dialog is displayed for you to specify parameter
values. After the report is opened in JReport Studio, you can change the parameter values using the
following ways.
Using the Parameters panel
The Parameters panel is available when the current studio report uses parameters. It lists all the
parameters used by the current report. You can specify values to the parameters in the Parameter
panel and then click Apply to make the report run with the specified parameter values.
Using parameter controls
You can insert a parameter control and bind it with a parameter used by the current report. By
specifying values to the parameter in the parameter control, you can pass the parameter values to
JReport and run the report with the specified values. For details, see Using parameter control to specify
a parameter to a report.
Using parameter form controls
You can insert a parameter form control, make it run the current report, bind it with one or more
parameters used by the report. By specifying values to the parameters in the parameter form control,
you can make the report run with the specified parameter values. For details, see Using parameter
form control to run reports.
Sorting report data
You can sort the records or groups at a certain group level in a table, crosstab or chart.
●
●
Sorting records: Changing the order of records in the whole table, crosstab or chart, or in each
group if there are.
Sorting groups at a group level: Changing the order of groups at the specified group level, that
is, the groups will be sorted by value of the group field.
To sort data on a certain field using shortcut menu:
1. Point to any value of a detail field or group field by which to sort the data in a table, crosstab or
chart, and then right-click.
2. Choose the command Sort > Ascending or Sort > Descending from the shortcut menu.
If what you right-click in Step 1 is a detail field value, the sorting will affect the order of detail
records in the table, crosstab or chart; if it is a group field value, the order of groups in the group
level represented by the group field will be rearranged.
To remove the sort condition on a field, click Sort > No Sort from the shortcut menu.
Note: If you use the shortcut menu to sort the report data by a field and then sort by another field, the
later sort condition will replace the former one.
Applying CSS styles
CSS styles can be applied to studio reports formatting their appearance and characteristics. You can
create and set up your own CSS styles in JReport Designer or any other CSS editor. When you publish
your catalogs to JReport Server, you can include these custom styles with the catalogs.
Styles can be applied to a table, crosstab, or chart, or to the multiple selections of these components,
or to the whole report. The last style always takes effect when more than one style is applied to the
same object.
Applying a style to a report
When a style is applied to the whole report, all components in the report will take a uniform
appearance. You can apply a style in one of the following ways:
●
●
Specify a style in the Style page of JReport Studio Wizard.
In JReport Studio, click the blank area outside of the report field, then select a style from the Report
Style list on the Edit menu.
Applying a style to a component
You can apply a style to a table, crosstab, or chart by selecting the component in JReport Studio and
then doing one of the following:
●
Select a style from the Report Style list on the Edit menu.
●
Right-click and then select a style from the Apply Style list on the shortcut menu.
Applying a style to multiple components
You can apply a style to multiple selections of tables, crosstabs, and charts by selecting the
components and then selecting a style from the Report Style list on the Edit menu.
Reference: See also the chapter Styles in the JReport Designer User's Guide for more information
about CSS styles.
Saving the report
To save the changes you made to the current report, click Menu > File > Save (or the Save button
Standard toolbar).
If the report is newly created and has not yet been saved, the Save As dialog will be displayed.
on the
1. In the Save in section, browse to the folder where you want to save the studio report in the server resource
tree. You can use the
button to return to the parent folder.
2. In the File Name box, enter the name of the report or use the default name. The default file type is studio
report.
3. Click the Advanced button to set the advanced settings for the report if required.
a. From the Status drop-down list, specify a status for the report.
b. From the Catalog drop-down list, select the catalog for the report.
c. Specify the relationship between the saved report and the catalog used to run it:
■
■
Set Original Catalog as Linked Catalog into Saved Report
If checked, the saved report will be linked with the catalog and will run with the catalog no matter
whether the two are in the same directory. If later the catalog is updated, the saved report will run
with the latest version of the catalog.
Set Catalog Copy to Target Folder
If checked, the catalog will be copied to the directory where the report is saved and the saved report
will run with the copied catalog.
d. Optionally, input comments in the Description box as a description for the report.
4. Click Save to save the report.
To save a copy of a report, click Menu > File > Save As (or the Save As button
show the Save As dialog, and then do as above.
on the Standard toolbar) to
To find a newly saved studio report version, browse to select the row that the studio report is in on the JReport
Console > Reports page, click Tools > Version on the task bar, and then click the Studio Report Versions tab.
Note: You will not be able to save the report to some locations if you do not have the required permissions. You
need to have Write access to the directory.
Exporting/Printing the report result
When you finish editing a studio report, you may want to export it to other formats or have it printed.
Exporting the report result
You can export the report result as a result version or as a local file in these formats: HTML, PDF, Text, Excel,
RTF, XML, and PostScript.
1. Click Menu > File > Export (or the Export button
dialog.
on the Standard toolbar) to display the Export
2. From the Select Report Result Format drop-down list, select a format in which to export the result.
3. Specify the destination of the result:
❍
❍
❍
View Report Result: The result will be directly opened in the web browser if the format is supported
by a plug-in of the web browser; otherwise it will prompt you to save the result file.
Save to File System: The web browser will prompt you to save the result file to a specified folder. If
selected, you need to provide a name for the result file in the File Name field.
Save to Version System: The result will be saved as a result version in JReport Server's versioning
system.
4. Expand More Options to set the options for the selected format. For details about settings of each
format, see Export dialog.
5. Click OK to confirm.
Printing the report result
You can print the report result to a PDF/HTML file.
To print the result of a studio report:
1. Click Menu > File > Print (or the Print button
on the Standard toolbar) to display the Print dialog.
2. In the General tab, specify the printer properties, the page range and copies you want to print.
3. In the Appearance tab, specify the appearance of the printed report as required.
4. Click OK. The PDF/HTML result file will be opened in an associated program with which you can print the
result to a printer.
See also Print dialog for additional information about options in the dialog.
Running studio reports on server
Just like normal report sets, studio reports can run using the following ways. However, there are some
differences, which are listed as follows:
●
●
●
Directly running
A studio report cannot run in DHTML or Applet format. If the Default Format for Viewing Report
property of a studio report is set to DHTML or Applet, the studio report will run in JReport Studio by
default.
Advanced running
A studio report cannot run in DHTML or Applet format, however, one more format is provided when
you run a studio report in Advanced mode: Studio, by choosing which you can run the studio report
in JReport Studio.
Scheduled running
The results of a studio report cannot be published to JReport Result or DHTML formats, but one more
format is provided: Studio Result, which is a static studio report result marked as WST file.
You can refer to the following topics for reference about running and scheduling a studio report:
●
Running report sets
●
Scheduling report sets
Besides running a studio report, you can manage its properties, results, versions, and tasks the same
way as with normal report sets, and publish studio reports either to a local or remote server. Studio
reports also support being inspected by JReport Server Monitor. For details about how to perform those
operations, refer to the corresponding topics in this guide.
Opening studio reports in JReport Studio via URL
JReport provides parameters for developer users to run studio reports via URL. All the parameters are
encapsulated as JSON (JavaScript Object Notation) objects. Therefore, it will help if you obtain some
knowledge on JSON to understand the syntax more clearly. When composing the URL, you need to use
URL encoding to avoid errors.
The following lists the parameters for running studio reports via a URL:
●
jrd_report={
"name":"xxx", // The full path of the studio report.
"ver":"-1", // Optional: The report version. -1 means the latest
version.
}
●
jrd_catalog={
"name":"xxx", // The full path of the catalog that the studio report
uses.
"ver":"-1", // Optional: The catalog version. -1 means the latest
version.
}
●
jrd_param$={
"p1":"v1", // p1 is parameter name, and v1 is p1's value.
"p2":["v1","v2","v3"] // For multiple values
}
●
jrd_userinfo={ // Optional.
"user":"xxx", // User name
"country":"us", // The locale representing the region part for
running reports, following locale naming specification
"language":"en", // The locale representing the language part for
running reports, following locale naming specification
"encoding":"UTF-8", // The encoding for running reports
"resolution":"96" // The resolution for displaying reports
}
●
jrd_datasources=[
// Optional.
// The following types of external data sources are supported: 0 - JDBC data source,
// 2 - Java DataSource object, 3 - Connection object, 4 - ResultSet object.
// One or multiple data sources can be included at a time.
{
// JDBC data source
"ds":"Data Source 1", // Data source name
"uid":"xxx", // DB user name
"pwd":"xxx", // DB user password
"type":"0", // Indicates the data source type.
"url":"xxx", // JDBC URL. For example, "url":"jdbc:oracle:
thin:@127.0.0.1:1521:ora8i".
"driver":"xxx" // JDBC driver. For example, "driver":"oracle.
jdbc.driver.OracleDriver".
},
{
// Java DataSource object/Connection object/ResultSet object.
// Users should define request or session attribute, then the
attribute
// key is the one defined in the request.
// For example, write user.jsp as follows:
//
// String key = "Rst";
// java.sql.ResultSet rst = null;
// rst = // get result set object from user own business logic
// request.setAttribute("Rst", rst);
//
// Then the key would be that "key":"Rst".
// The above example is based on ResultSet object. It also
applies to the other two types.
//
"ds":"Data Source 2", // Data source name
"type":"2/3/4", // Indicates the data source type.
"key":"xxx" // Request attribute object name, included in
request or session
}
]
Here is an example of the complete URL without URL encoding to make it easier to read:
http://localhost:8888/webreport/studio/entry/run.jsp?jrd_report={"name":"/SampleReports/
studioreport.wls","ver":"-1"}
&jrd_catalog={"name":"/SampleReports/SampleReports.cat","ver":"-1"}&jrd_param$=
{"P_Coutry":"USA"}
&jrd_datasources=[{"ds":"Data Source
1","uid":"xxx","pwd":"xxx","type":"0","url":"xxx","driver":"xxx"},
{"ds":"Data Source 2","type":"2","key":"xxx"}]
If you use absolute resource path, you need add the property "real":"true" for the path. For
example,
jrd_report={"name":"C:\JReport\Server\jreports\SampleReports\studioreport.wls","ver":"1","real":"true"}
&jrd_catalog={"name":"C:\JReport\Server\jreports\SampleReports\SampleReports.
cat","ver":"-1","real":"true"}
Running studio reports to other formats via URL
To run a studio report to other formats than to JReport Studio, you can make use of jrs commands and
jrs.result_type which is used to specify the type:
jrs.result_type=1 (HTML) or 2(PDF) or 3(Text) or 4(Excel) or 5(PostScript) or 6(Rich Text) or 7(XML)
For example, to run a studio report to PDF:
http://localhost:8888/jinfonet/runReport.jsp?jrs.cmd=jrs.web_vw&jrs.report=%2fSampleReports%
2fProducts.wls
&jrs.catalog=%2fSampleReports%2fSampleReports.cat&jrs.result_type=2
Integrating with a Java Application Server
JReport Server is implemented using Java Servlet technology and Java Server Pages (JSP). These
servlets and JSP pages enable you to work with any Java EE compliant application server and
administer JReport Server remotely through a web browser.
In order to deploy to an application server, you first have to create a Web Application Archive (WAR)
file or an Enterprise Application Archive (EAR) file to include a JReport Server, and then use the
application server deployment tools to deploy the WAR/EAR file.
This chapter covers the following:
●
Seamless integrated security solution
●
Building a WAR/EAR file to include a self-contained JReport Server
●
Deploying JReport Server to a Java application server
●
Integrating remote JReport Server
Note: JReport Web and JReport Studio slather dynamic classes, so you probably encounter
"OutOfMemoryError: PermGen space" problem when working with them after integration. To solve the
problem, you need to add -XX:MaxPermSize=256m to JVM or set the number to a bigger one according
to your case.
Seamless integrated security solution
As a reporting server, JReport Server protects information via authentication and authorization
processes. Furthermore, JReport allows a web application to embed this reporting solution in it
seamlessly not only on UI but also with the Java EE technology. In this way, the seamless integrated
security solution becomes one of the key solutions of JReport Server.
There are all kinds of scenarios on using JReport solution. However, they can all be categorized into the
following two types according to the location of the JReport Server instance.
JReport Server instance is located in the same JVM as the web application
In this scenario, the application includes JReport Server JAR files into the same JVM, and it also
includes JReport built-in servlets and JSPs which handle DHTML and other reporting services, for
example, scheduling report sets.
Description of the illustration
In this scenario, the client (HTTP client) most of time will send a request to the portal, JSP or Servlet of
the web application, and the web application can either call the public Server API to the server instance
directly to run a report set and output a report set result to file system, or it can re-direct the request
to the JReport services provided by the JReport JSPs and Servlets, for example the DHTML JSP and
Servlet. JReport JSPs/Servlets will first make sure the request is authenticated and authorized. After
which, it will call the internal API method against the JReport Server Instance in the same JVM to fulfill
the requirement and return suitable information to the client via JSPs or internally generated output
steam.
In the illustration above, you can see that the HTTP client can send a request directly to the application
JSP/Servlets or JReport JSPs/Servlets. Before a response is made by the JReport JSP and Servlet, an
Auth Check is performed to authenticate the session and then authorize the action. Normally, the builtin authenticator and authorization instance of JReport Server (Instance) is called to perform these
checking actions. However, if the application wants to control the process, the web application
developer can set up the configuration to ensure that the customized authenticator and authorization
instance is used instead.
Pay attention to the RED box: External Authorized instance. This Java class implements JReport jet.
server.api.http.HttpExternalAuthorized to provide the authenticated user ID from the session. If this
Instance returns a user ID, JReport will pass it to its authenticator to check if it is valid. If the user ID
is valid for JReport, JReport will qualify the session of the request, and will not ask for a login again. If
this external authorized instance does not return a user ID, JReport will respond the request by asking
for a login.
The other RED box - Authenticator and Authorizer instance, can be provided by implementing two other
interfaces:
jet.server.api.custom.security.AuthenticationProvider and jet.server.api.custom.security.
AuthorizationProvider.
The AuthenticationProvider is used to authenticate the user ID, including whether or not the user ID is
valid. The AuthorizationProvider is used to check the privileges of the user against the action that the
user requests.
During the auth check process, if the external authorized instance returns a user ID of the session,
JReport auth check will continue to send the user ID to the AuthenticatorProvider to check if it is valid
or not. If the user is valid, the auth check will qualify the session of the request, and then continue to
check if the action is valid for the user by asking the AuthorizationProvider instance.
In general, there is an authentication callback via the implemented interface of External Authorized.
Two security check providers can be implemented to seamlessly integrate JReport security into the
application.
JReport Server instance is located in a different JVM from the web
application
From the web application itself, the architecture is not changed. However, the way that it uses the
JReport solution is different since the JReport Server Instance is outside of the Web application server.
Inside of the Web Application, the instance is RMI server being called by the web application server or
JReport built-in JSP/Servlets for the RMI solution.
Building a WAR/EAR file to include a self-contained JReport
Server
There are two ways of creating a WAR or EAR to include a self-contained JReport Server:
●
●
Create a WAR/EAR file using the provided tool makewar.bat/makewar.sh after you have installed a
JReport Server. If you are not familiar with JReport Server, it is better to use this way.
Create a WAR manually. The method is no longer needed but is still available in this release in case
you would like to take it.
The self-contained JReport Server is based on a library. The library contains all class packages required
by the JReport Server runtime, such as jrenv.jar, JRESServlets.jar, JREngine.jar, and JRWebDesign.jar.
In the library, jrenv.jar contains the entire JReport runtime environment, and is the key to the selfcontained integration solution. With the self-contained solution, you do not have to specify the JReport
Server installation root as the reporthome.
When you create a JReport Server WAR/EAR file using the provided tool, the jrenv.jar package will be
automatically put into the WAR/EAR, and will be extracted to the specified reporthome when initializing
JReport Server.
The following is the structure of the jrenv.jar package:
jrenv.jar
workspace/ -- This is the root folder.
bin/ -- This folder contains the license file jslc.dat and configuration files, such as
LogConfig.properties and redirect.properties.
lib/ -- This folder contains jar files needed by applets, such as view12.jar and chart.jar.
template/ -- This folder contains template files.
profiling/report/ -- This folder contains profiling report set files.
jreports/ -- This folder contains demo report sets or pre-published report sets.
db/ -- This folder contains demo database for demo report sets.
help/ -- This folder contains help documents.
The bin/, lib/, and template/ folders are necessary for the JReport runtime, while the profiling/,
jreports/, db/ and help/ folders are optional.
Note: There is a parameter in self-contained WAR/EAR - autoDetectServletPath. It is used to
dynamically detect and modify servlet path based on context path of self-contained WAR/EAR when
deploying the WAR/EAR to a J2EE application server. This property is enabled by default, and the actual
servlet path will be concatenating "context path" with "default servlet path" set in server.properties. If
you do not want this way, you can disable the feature using either of the following ways:
●
●
Before making your WAR/EAR, set the parameter autoDetectServletPath to false in makewar.xml
which is located in <install_root>\bin.
If the WAR/EAR has already been built, go to web.xml, set this parameter autoDetectServletPath to
false.
The following are topics covered in the section:
●
Building a JReport Server WAR/EAR by tool
●
Building a JReport Server WAR manually (deprecated)
●
Four ways of integrating JReport Server
Building a JReport Server WAR/EAR by tool
A tool based on the Apache Ant project is provided by JReport Server to build JReport Server WAR/EAR
files which contain the full JReport Server runtime environment. The WAR/EAR files can be deployed to
any Java EE compliant application server without having to specify a JReport Server installation root as
the reporthome.
You can use the default settings to generate a JReport Server WAR/EAR, or you can customize the
reporthome and data source for JReport Server before generating the WAR/EAR using the provided tool.
●
Creating a JReport Server WAR/EAR
●
Specifying reporthome for JReport Server in a Java EE environment
●
Specifying a data source for JReport Server in a Java EE environment
Creating a JReport Server WAR/EAR
JReport Server provides a tool for building a WAR or EAR file. The tool is makewar.bat/makewar.sh,
and makewar.xml in <install_root>\bin.
makewar.xml
This file can be used to specify the following:
●
Targets specified to build the WAR/EAR file. They start with the tag <target name="xxx"...>. You
can modify the target names. By default, the main targets in the makewar.xml are as follows:
❍
Making the server runtime environment
❍
Making the WAR file for normal or remote integration
❍
Making the EAR file
Temp directories.
●
❍
❍
●
The temp directory used to save the temp files when building the WAR/EAR. By default, it is
<install_root>\bin\distribute\temp.
The directory which is used to store the generated WAR/EAR file. By default, it is <install_root>
\bin\distribute.
The deployment descriptors, such as web.xml and application.xml. The configuration information,
such as the database connection information for the WAR/EAR file is stored in these files.
makewar.bat/makewar.sh
The batch/script file used to build a JReport Server WAR/EAR according to the target specified in
makewar.xml.
Usage
makewar.bat/makewar.sh [Target Name] [-Dpredeploy=ReportFolder] [-Dreporthome=XXX] [Djrs.remote.host=XXX] [-Djrs.remote.rmiport=XXX] [-Djrs.rmi.auth_file=XXX]
Options
●
●
Target Name
The following targets can be performed:
❍
buildWar - Specifies to build the JReport Server WAR. It is the default target.
❍
buildEar - Specifies to build the JReport Server EAR.
❍
buildRemoteWar - Specifies to build the JReport Server WAR for remote integration.
-Dpredeploy=ReportFolder
Allows you to deploy the report sets and catalogs under ReportFolder to the WAR/EAR file.
●
●
●
●
-Dreporthome
Specifies the reporthome that will be set into web.xml in the WAR/EAR. If this argument is not set,
reporthome will be decided when the WAR/EAR is loaded by the application server and the location
will be %user.home%/.jreport/default. This argument takes effect only when the target name is
buildWar, buildEar, or buildWar4WS.
-Djrs.remote.host
Specifies the server's RMI host when building a WAR for remote integration. This argument takes
effect only when the target name is buildRemoteWar.
-Djrs.remote.rmiport
Specifies the server's RMI port when building a WAR for remote integration. This argument takes
effect only when the target name is buildRemoteWar.
-Djrs.rmi.auth_file
Specifies the RMI auth file with the absolute file path when building a WAR for remote integration.
This argument takes effect only when the target name is buildRemoteWar.
Examples
●
Builds the JReport Server WAR file which is defined by makewar.xml (the default target). The
generated WAR file is saved to the default directory <install_root>\bin\distribute.
makewar.bat
●
Builds the JReport Server WAR file, and saves the generated WAR file jreport.war to the specified
reporthome.
makewar.bat buildWar -Dreporthome=C:\JReport
●
Builds the JReport Server EAR file, and saves the generated EAR file jreport.ear to the default
directory <install_root>\bin\distribute.
makewar.bat buildEar
●
Builds the JReport Server WAR file, and deploys the report sets and catalogs in C:\myReport to the
WAR file. The generated WAR file jreport.war will be saved in the default directory <install_root>
\bin\distribute.
makewar.bat buildWar -Dpredeploy=c:\myReport
●
Builds the JReport Server WAR file as defined by makewar.xml for remote integration. The generated
WAR file is saved to the default directory <install_root>\bin\distribute.
makewar.bat buildRemoteWar -Djrs.remote.host=127.0.0.1 -Djrs.remote.rmiport=1129 Djrs.rmi.auth_file=C:\JReport\Server\bin\rmi.auth
Specifying reporthome for JReport Server in a Java EE environment
JReport Server requires a reporthome as its working space to hold the entire JReport runtime
environment, including the server properties, configuration files and resources. The package jrenv.jar
that contains the entire JReport runtime environment will be extracted to the specified reporthome
when initializing JReport Server. The reporthome can be any location on the disk where JReport Server
has read and write privileges.
You do not have to specify a reporthome for JReport Server since it will create a default reporthome
location <user.home>/.jreport/default.
However, JReport Server enables you to customize the reporthome location before creating the JReport
Server WAR/EAR using the provided tool. You can either specify reporthome directly or specify the
implementation of the jet.server.api.http.CustomizedServerEnv interface.
Note: Make sure that the reporthome for the integrated JReport Server is different from that of the
standalone JReport Server.
Interface CustomizedServerEnv
The jet.server.api.http.CustomizedServerEnv interface can be used for specifying the JReport Server
reporthome and for setting the server properties in a Java EE environment. It contains two methods:
●
String getReportHome()
●
Properties getServerProperties()
If you specify the implementation of this interface, JReport Server will obtain not only reporthome but
also server properties.
Three ways of specifying reporthome
There are three ways of specifying reporthome directly or the implementation of the jet.server.api.http.
CustomizedServerEnv interface:
●
By JVM -D parameter.
Set the JVM option -Dreporthome before starting the application server, for example:
-Dreporthome=/home/jreport
●
Invoking the method jet.server.api.http.HttpUtil.initEnv(Properties props).
For example:
Properties props = new Properties();
props.setProperty("reporthome", "/home/test/JReport");
HttpUti.initEnv(props);
●
Using ejb-jar.xml/web.xml.
The following introduces several methods of specifying reporthome or implementation of
CustomizedServerEnv:
●
Using the default reporthome
●
Specifying reporthome directly in web.xml or ejb-jar.xml
●
Using the default implementations of jet.server.api.http.CustomizedServerEnv
●
Using a customized implementation of jet.server.api.http.CustomizedServerEnv
Using the default reporthome
If you do not specify a reporthome, the self-contained JReport Server will create a default working
folder. The default working folder is <user.home>/.jreport/default, where <user.home> is the system
property user.home retrieved from Java VM. The JReport Server has the Read and Write privileges in
this directory. Different OSs have different real paths for <user.home>. For example,
For Windows: C:\Documents and Settings\username
For Unix/Linux: /home/username
Notes:
●
●
●
user.home is a system property of the Java VM (-Duser.home=xxx). So you can also specify different
folders for this JVM option.
If JReport Server is running on Windows as a service, the username is the user who installed the
service or the specified logon user for the service.
If JReport Server is running as a Unix/Linux Daemon, you can specify the JVM system property Duser.home in the script file that starts JReport Server.
Specifying reporthome directly in web.xml or ejb-jar.xml
It is recommended that you use the <env-entry></env-entry> tags to specify the reporthome directly
in the target "web.xml.norpthome" in the makewar.xml file or in ejb-jar.xml. Also, in the target "web.
xml.filter", you can specify the reporthome using the <context-param></context-param> tags.
Specifying the reporthome for WAR
You can use one of the two methods listed below to specify the reporthome for WAR:
●
In the makewar.xml file, use the <env-entry></env-entry> tags to specify the reporthome in the
target "web.xml.norpthome", and then uncommented the setting. For example:
<env-entry-name>jreport.rpthome</env-entry-name>
<env-entry-value>/home/jreport</env-entry-value>
<env-entry-type>java.lang.String</env-entry-type>
This is the recommended way to set reporthome since the <env-entry></env-entry> tags are also
supported in ejb-jar.xml (if you call the Server API in your EJB).
●
In the makewar.xml file, use the <context-param></context-param> tags to specify the
reporthome in the target "web.xml.filter", for example:
<context-param>
<param-name>reporthome</param-name>
<param-value>/home/jreport</param-value>
</context-param>
Specifying the reporthome for EAR
The same methods can be used to specify the reporthome of building the EAR file as of building the
WAR file. However, because you can wrap WAR and EJB in the EAR file, you should ensure that you put
the reporthome information either in the target "web.xml.norpthome" in the makewar.xml file (for the
web module) or in ejb-jar.xml (for the EJB module).
In ejb-jar.xml, use the <env-entry></env-entry> tags to specify the reporthome. For example,
<env-entry>
<env-entry-name>jreport.rpthome</env-entry-name>
<env-entry-value>/home/jreport</env-entry-value>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry>
Using the default implementations of jet.server.api.http.CustomizedServerEnv
The self-contained JReport Server provides two implementations of CustomizedServerEnv. They are jet.
server.DefaultServerEnv and jet.server.MultipleInstanceServerEnv.
jet.server.DefaultServerEnv
If you use this implementation, you will not need to specify it in the target "web.xml" in the makewar.
xml or in ejb-jar.xml, since it can find the customized reporthome from the <context-param></
context-param> tags of the target "web.xml" or the <env-entry></env-entry> tags of web.xml or ejbjar.xml.
jet.server.MultipleInstanceServerEnv
This implementation is extended from DefaultServerEnv. It enables finding the reporthome not only
from <context-param></context-param> or <env-entry></env-entry> tags, but also from an
external file <user.home>/.jreportrc. However, this implementation has three main limitations. They
are:
●
●
This implementation must be clearly specified with the <env-entry></env-entry> tags in the target
"web.xml" in the makewar.xml or in ejb-jar.xml, as follows:
<env-entry>
<env-entry-name>jreport.servenv</env-entry-name>
<env-entry-value>jet.server.MultipleInstanceServerEnv</env-entry-value>
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>
The JReport Server must be initialized with JRServerContextListener from a Web module.
Since in cases of deploying multiple JReport Server instances in one Java EE application server
without touching the WAR, such as extracting the WAR, setting reporthome and rebuilding the WAR,
JReport Server has to use ServletContext to generate an ID for every instance. JReport Server
retrieves javax.servlet.context.tempdir from ServletContext by invoking the getAttribute(String)
method, and then uses this value to generate the instance ID.
For detailed information, see Java Servlet Specification Version 2.3/2.4 SRV.3.7.1 Temporary
Working Directories.
●
The <user.home>/.jreportrc file must be created by JReport Server. You can only edit the file to
change the reporthome after the JReport Server initialization.
Since the instance ID is generated based on a hash code retrieved from javax.servlet.context.
tempdir, it cannot be pre-assigned, and is therefore impossible for you to create the <user.home>/.
jreportrc file. However, once the file has been created, you can edit it to change the reporthome for
each instance. The RC file can hold multiple records. The record format should be as follows:
jreport.rpthome.<instanceID>=the-instance-report-home
The instanceID is created by JReport Server during its first initializing. It is a string of HEX encoded
hash value. For example:
jreport.rpthome.12345678=/home/user1/.jreport/instance.12345678
jreport.rpthome.12345abc=/home/user1/.jreport/instance.12345abc
If JReport Server cannot get the reporthome from CustomizedServerEnv, it will create a default
reporthome in <user.home>/.jreport/default.
The following is an example of specifying reporthomes when deploying multiple server instances using
jet.server.MultipleInstanceServerEnv:
Example: Specifying reporthomes when deploying multiple server instances
JReport Server provides an internally implemented class of the jet.server.api.http.
CustomizedServerEnv interface - jet.server.MultipleInstanceServerEnv which supports multiple JReport
Server instances in one Java EE application server. The reporthome of each instance can be assigned
by the class automatically. To do this, follow the steps below:
1. In the file makewar.xml, use the <env-entry></env-entry> tags to specify jet.server.
MultipleInstanceServerEnv in the target "web.xml". For example:
<env-entry>
<env-entry-name>jreport.servenv</env-entry-name>
<env-entry-value>jet.server.MultipleInstanceServerEnv</env-entry-value>
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>
2. Since different JReport instances cannot access the same JReport Server system database at the
same time, you will need to create a dbconfig.xml file to store the connection information, and put
it in jrenv.jar in workspace\bin (you can find the jrenv.jar file after extracting jreport.war) for
each JReport Server WAR/EAR.
For detailed information about modifying the dbconfig.xml, see Configuring the server database.
3. When the JReport Server WAR/EAR has been deployed, JReport will create a file .jreportrc in
<user.home>, and each JReport instance will read its reporthome from this file. This file must be
created by JReport Server, however, you can edit it in order to change the reporthome after it has
been created.
Using a customized implementation of jet.server.api.http.CustomizedServerEnv
You can implement the interface and add your class to the generated WAR/EAR file, then use the <enventry></env-entry> tags to specify your implemented class in the target "web.xml" in the makewar.
xml file or in ejb-jar.xml.
The following is an example of specifying a customized implementation of CustomizedServerEnv in the
target web.xml in the makewar.xml file or in ejb-jar.xml using the <env-entry></env-entry> tags.
Here the customized implementation of CustomizedServerEnv is named my.JReportServerEnv.
<!-- JReport Server calls my.JReportServerEnv to obtain reporthome
and server properties.-->
<env-entry>
<env-entry-name>jreport.servenv</env-entry-name> <!-- must be jreport.servenv-->
<env-entry-value>my.JReportServerEnv</env-entry-value> <!-- your class name -->
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>
Notes:
●
●
JReport Server will retrieve the reporthome and properties from your implemented class when the
WAR/EAR file has been deployed.
The properties returned from getServerProperties() can be the properties listed in server.properties
file in the directory <install_root>\bin, JVM System properties, or self-defined ones.
Specifying a data source for JReport Server in a Java EE environment
See Configuring the server database when integrating with an application server for detailed
information.
Building a JReport Server WAR manually (deprecated)
This section introduces a method that has been used in earlier versions. If using this method, you will have to
specify the JReport Server installation root as the reporthome unless you make the WAR be a self-contained
solution.
This section takes creating a WAR file on Unix for example. The instruction is applicable to both Unix and
Windows platforms. However, the paths for Windows should use the Windows format, for example, C:\JReport
\Server, while paths for Unix should use the Unix format, for example, /opt/JReport/Server.
It is assumed that JReport Server has been installed to /opt/JReport/Server.
Take the following steps to build a JReport Server WAR manually:
1. Create a new directory jreport in the JReport Server installation root: /opt/JReport/Server/jreport.
2. Create a sub directory WEB-INF in jreport: /opt/JReport/Server/jreport/WEB-INF.
3. Create a web.xml file in the WEB-INF directory as follows:
<?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems,
Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<listener>
<listener-class>jet.server.servlets.JRServerContextListener</listener-class>
</listener>
<servlet>
<servlet-name>jrserver</servlet-name>
<servlet-class>jet.server.servlets.JRServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>sendfile</servlet-name>
<servlet-class>jet.server.servlets.SendFileServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>dhtml</servlet-name>
<servlet-class>jet.web.dhtml.DHTMLlet</servlet-class>
</servlet>
<servlet>
<servlet-name>help</servlet-name>
<servlet-class>jet.web.dhtml.JHelplet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>jrserver</servlet-name>
<url-pattern>/jrserver/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>sendfile</servlet-name>
<url-pattern>/sendfile/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>dhtml</servlet-name>
<url-pattern>/dhtml/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>help</servlet-name>
<url-pattern>/help/*</url-pattern>
</servlet-mapping>
</web-app>
4. Create a directory lib in the jreport/WEB-INF directory:
mkdir lib
5. Create a directory pages in the jreport/WEB-INF/lib directory:
mkdir lib/pages
6. Copy all of the files in /opt/JReport/Server/lib/pages to the jreport/WEB-INF/lib/pages directory:
cp /opt/JReport/Server/lib/pages/* lib/pages
7. Create a jar file to include the resources folder which is located in /opt/JReport/Server and name it
languages.jar. For example, run the following command:
jar -cvf languages.jar resources
Then put the languages.jar in /opt/JReport/Server/lib.
8. Copy the following jar files from /opt/JReport/Server/lib to the jreport/WEB-INF/lib directory:
commons-codec-1.2.jar, jai_codec.jar, jai_core.jar, JREngine.jar, JRESServlets.jar, JRWebDesign.jar,
languages.jar, log4j-1.2.8.jar, sac.jar, tar.jar, xercesImpl.jar, xml-apis.jar.
If you want to export reports to the following formats, you should copy the corresponding jar to the
jreport/WEB-INF/lib directory:
❍
To e-mail or use the e-mail Notification function, copy activation-1.1.jar and mail-1.4.jar.
❍
To FTP, copy commons-net-ftp-2.0.0.jar.
❍
To PDF and DHTML, copy itext_1.5.4.jar.
❍
To Excel, copy poiHSSF_151.jar.
9. Copy the index.htm file and the admin, dhtmljsp, images, javascript, jinfonet, skin, and style folders from /
opt/JReport/Server/public_html to the /opt/JReport/Server/jreport directory:
cp -r /opt/JReport/Server/public_html/* /opt/JReport/Server/jreport
Notes:
❍
❍
The jsp files within the admin folder are used by the JReport Administration pages. Those within the
dhtmljsp folder are used when viewing reports in the DHTML format.
If you copy index.htm and these folders mentioned above to a sub folder in /opt/JReport/Server/
jreport, for example, /opt/JReport/Server/jreport/sub, to view reports in DHTML format, you need:
■
Modify the server.properties file:
web.skin.dir=/jreport/sub/skin
■
Uncomment the following lines in dhtml.jsp in the dhtmljsp folder and make it adapt to the environment
as follows:
dhtmlConfig.setDHTMLContextPath(SessionID,"http://localhost:8080/jreport/sub");
dhtmlConfig.setDHTMLJspUrl(SessionID,"/jreport/sub/dhtmljsp/");
dhtmlConfig.setDHTMLServletUrl(SessionID, RptSetId, "/jreport/dhtml");
■
In the step 10, edit the index.htm file like this:
<FRAME name="ind" src="/jreport/sub/jinfonet/index.jsp" frameborder="0">
Then go to step 11.
10. Edit the index.htm file and add the context path /jreport to the src tag. Note that the path separator
character is the Unix style "/" when referencing JSP. The result should be as follows:
<FRAME name="ind" src="/jreport/jinfonet/index.jsp" frameborder="0">
11. Using the following command to create a WAR file named jreport.war:
jar -cvf jreport.war index.htm admin dhtmljsp images javascript jinfonet skin style WEB-INF
Note: The jar utility is in the Java home bin directory. If it is not on your path you must call jar with the
entire path, for example, /opt/jdk1.6.0_17/bin/jar.exe.
To make the WAR be a self-contained solution
To make the WAR include a self-contained JReport Server, except for the above procedure, you need create jrenv.
jar and then put it in the jreport/WEB-INF/lib directory before creating the WAR.
Use either way to create the jrenv.jar:
●
●
By the makewar.bat/makewar.sh tool
For example: run the command makewar jrenv.jar
Creating manually
Make sure all necessary contents are included and then use a proper tool to package them into a jar file.
See also Building a WAR/EAR file to include a self-contained JReport Server for details about the structure of the
jrenv.jar.
Four ways of integrating JReport Server
You can either create a JReport Server WAR/EAR, or create your WAR/EAR and embed a self-contained
JReport Server inside it. The following are four ways of building a WAR/EAR file in order to include a
self-contained JReport Server:
●
Integrating by building a JReport Server WAR
●
Integrating by building a JReport Server EAR
●
Integrating by building a user WAR and embedding a self-contained JReport Server
●
Integrating by building a user EAR and embedding a self-contained JReport Server
Integrating by building a JReport Server WAR
The self-contained JReport Server can be deployed as a single WAR file. After specifying the reporthome and
configuring the database information, you can build the WAR file using the tool makewar.bat/makewar.sh in
<install_root>\bin. To generate the WAR file, execute the command with the buildWar parameter. For
example:
makewar.bat/makewar.sh buildWar
Structure of the JReport Server WAR
For example, here you can create a JReport Server WAR file named jreport.war. The structure of the JReport
Server WAR is as below:
jreport.war
WEB-INF/
web.xml
lib/ -- This folder contains all resources in the JReport Server library.
admin/ -- This folder contains JSP files for the JReport Administration page.
jinfonet/ -- This folder contains JSP files for the JReport Console page.
dhtmljsp/ --This folder contains JSP files for viewing DHTML reports.
WEB-INF/web.xml
The following is the default content in the web.xml file of the JReport Server WAR:
<?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems,
Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<listener>
<listener-class>jet.server.servlets.JRServerContextListener</listener-class>
</listener>
<servlet>
<servlet-name>jrserver</servlet-name>
<servlet-class>jet.server.servlets.JRServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>sendfile</servlet-name>
<servlet-class>jet.server.servlets.SendFileServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>dhtml</servlet-name>
<servlet-class>jet.web.dhtml.DHTMLlet</servlet-class>
</servlet>
<servlet>
<servlet-name>help</servlet-name>
<servlet-class>jet.web.dhtml.JHelplet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>jrserver</servlet-name>
<url-pattern>/jrserver/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>sendfile</servlet-name>
<url-pattern>/sendfile/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>dhtml</servlet-name>
<url-pattern>/dhtml/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>help</servlet-name>
<url-pattern>/help/*</url-pattern>
</servlet-mapping>
</web-app>
Integrating by building a JReport Server EAR
The self-contained JReport Server can be deployed as a single EAR file. After specifying the reporthome
and configuring the database information, you can build the EAR file using the tool makewar.bat/
makewar.sh in <install_root>\bin. To generate the EAR file, execute the command with the buildEar
parameter, for example:
makewar.bat/makewar.sh buildEar
Structure of the JReport Server EAR
For example, here you can create a JReport Server EAR file named jreport.ear. The structure of the
JReport Server EAR is as below:
jreport.ear
META-INF/application.xml
jreport-lib/ -- This folder contains all resources in the JReport Server library.
jreport.war
META-INF/MANIFEST.MF
WEB-INF/web.xml
admin/
jinfonet/
dhtmljsp/
META-INF/application.xml
Following the Java EE standard, you should configure the META-INF/application.xml file before
deploying the EAR:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE application PUBLIC "-//Sun Microsystems, Inc.//DTD J2EE Application 1.3//EN"
"http://java.sun.com/dtd/application_1_3.dtd">
<application>
<display-name>Self-contained JReport Server</display-name>
<module id="JReportWebModule">
<web>
<web-uri>jreport.war</web-uri>
<context-root>jreport</context-root>
</web>
</module>
</application>
META-INF/MANIFEST.MF of Web module
Since the JReport Server library is included in jreport-lib of the EAR layer, you must specify Class-Path
in the META-INF/MANIFEST.MF file. The contents below should be included in the MANIFEST.MF file:
Class-Path: jreport-lib/jrenv.jar jreport-lib/JRESServlets.jar jreport-lib/JREngine.
jar ...
Class-Path is a list of all packages in the JReport Server library. Each package name should start with
the prefix jreport-lib/, and you should use a blank space to separate package names.
WEB-INF/web.xml of Web module
The contents in the web.xml of the JReport Server EAR are the same as the contents in web.xml of the
JReport Server WAR. See the section Integrating by building a JReport Server WAR for details.
Integrating by building a user WAR and embedding a self-contained JReport Server
You can embed a self-contained JReport Server into your WAR.
Structure of the user WAR
For example, here you can create a WAR named MyApp.war, and then embed a self-contained JReport
Server inside it. The structure of your WAR may be as follows:
MyApp.war
WEB-INF/
web.xml
lib/ -- This folder contains all resources in the JReport Server library and your other jar
files.
classes/ -- This folder contains your servlet classes.
../../asset/images/
jsp/
If you put the JReport WAR related JSPs to a sub folder, for example, jreport, and this time the
structure of your WAR may be as follows:
MyApp.war
WEB-INF/
web.xml
lib/ -- This folder contains all resources in the JReport Server library and your other jar
files.
classes/ -- This folder contains your servlet classes.
../../asset/images/
jreport/
admin/
dhtmljsp/
jinfonet/
...
To run JReport reports, you must do the following configurations:
●
Add the following entry into web.xml:
<context-param>
<param-name>autoDetectServletPath</param-name>
<param-value>false</param-value>
</context-param>
WEB-INF/web.xml in the user WAR
You should add listener into the web.xml as follows:
<listener>
<listener-class>jet.server.servlets.JRServerContextListener</listener-class>
</listener>
Integrating by building a user EAR and embedding a self-contained JReport Server
You can embed a self-contained JReport Server into your EAR in order to use JReport Server from EJB.
Structure of the user EAR
For example, here you can create an EAR named MyApp.ear and then embed a self-contained JReport
Server inside it. In the EAR, there is an EJB module used for initializing JReport Server. The structure of
your EAR may be as follows:
MyEAR.ear
META-INF/application.xml
jreport-lib/ -- This folder contains all resources in the JReport Server library
MyEjb.jar
META-INF/
MANIFEST.MF
ejb-jar.xml
com/
META-INF/application.xml
Following the Java EE standard, you should configure the META-INF/application.xml file before
deploying your EAR:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE application PUBLIC "-//Sun Microsystems, Inc.//DTD J2EE Application 1.3//EN"
"http://java.sun.com/dtd/application_1_3.dtd">
<application>
<display-name>EJB with Embedded JReport Server</display-name>
<module id="MyEJBModule">
<ejb>MyEjb.jar</ejb>
</module>
</application>
META-INF/MANIFEST.MF of EJB module
Since the JReport Server library is included in the jreport-lib folder of the EAR layer, you must specify
Class-Path in the META-INF/MANIFEST.MF file. The contents below should be included in the MANIFEST.
MF file:
Class-Path: jreport-lib/jrenv.jar jreport-lib/JRESServlets.jar jreport-lib/JREngine.
jar ...
Class-Path is a list of all packages in the JReport Server library. Each package name should start with
the prefix jreport-lib/, and you should use a blank space to separate package names.
META-INF/ejb-jar.xml
If you do not want to set the reporthome for the embedded self-contained JReport Server, but instead
want to use JReport's default settings, there is no requirement for configuring the ejb-jar.xml.
However, if you want to control the reporthome of the JReport Server, or specify a JNDI data source for
JReport Server to use, you should first configure the ejb-jar.xml file using the <env-entry></enventry> tags.
Here is an example:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN"
"http://java.sun.com/dtd/ejb-jar_2_0.dtd">
<ejb-jar id="ejb-jar_ID">
<display-name>MyEJB</display-name>
<enterprise-beans>
<session id="JReportEJB">
<ejb-name>JRptServer</ejb-name>
<home>demo.JRptServerHome</home>
<remote>demo.JRptServer</remote>
<ejb-class>demo.JRptServerBean</ejb-class>
<session-type>Stateless</session-type>
<!-- Specify JReport reporthome directly
<env-entry>
<env-entry-name>jreport.rpthome</env-entry-name>
<env-entry-value>/home/jreport</env-entry-value>
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>
-->
<!-- JReport callback my CustomizedServerEnv -->
<env-entry>
<env-entry-name>jreport.servenv</env-entry-name>
<env-entry-value>demo.JReportServerEnv</env-entry-value>
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>
<transaction-type>Bean</transaction-type>
</session>
</enterprise-beans>
</ejb-jar>
Deploying JReport Server to a Java application server
After you have created a WAR/EAR file that includes a self-contained JReport Server, you can deploy
the WAR/EAR to an application server following the deploying instructions of the application server.
This section provides examples of deploying JReport Server to several leading Java EE application
servers. The instructions are applicable to Unix, z/Linux and Windows platforms. However, the paths
for Windows should use the Windows format, for example, C:\JReport\Server, while paths for Unix
and z/Linux should use the Unix and z/Linux format, for example, /opt/JReport/Server.
Before going on to the next sections, you should already have reviewed Building a WAR/EAR file to
include a self-contained JReport Server.
The following examples are based on the Unix platform with one exception of Sun Application Server on
Windows:
●
Deploying to IBM WebSphere 7
●
Deploying to WebLogic 11g Release 1 (10.3.2)
●
Deploying to Tomcat 6
●
Deploying to JBoss 5.0.1
●
Deploying to OC4J 10g R3 (10.1.3.5.0)
●
Deploying to Sun Java™ System Application Server Platform Edition 8.2
●
Deploying to GlassFish V3
Note: It is supported if you change the location of the two folders, skin and dhtmljsp, which are in the
\public_html directory in the application server side. What is need is creating a file jrserver.properties
in the \WEB-INF directory and then adding the following two properties and providing the correct paths
(the context root is excluded):
web.skin.dir
web.dhtml_jsp_path
Deploying to IBM WebSphere 7
The example directory paths listed below are based on Solaris or Linux (referred to as Unix). The
instructions are applicable to both Unix and Windows installations; however, the format of the paths for
Windows would use the Windows format, i.e. C:\JReport\Server instead of /opt/JReport/Server.
It is assumed that:
●
●
WebSphere 7 is installed in the /opt/IBM/WebSphere7/AppServer directory.
The JReport Server WAR file jreport.war is located in the /opt/JReport/Server/bin/distribute
directory. To create the WAR file, refer to the instructions in Building a WAR/EAR file to include a selfcontained JReport Server.
To deploy JReport Server to IBM WebSphere:
1. Start IBM WebSphere. Use the shell script /opt/IBM/WebSphere7/AppServer/bin/startServer.
sh <servername> to start the server. The default server name is server1.
2. Access the WebSphere Administrative Console by using the URL: https://hostname:9046/ibm/
console, where the hostname is host name or IP address, and 9046 is the port number.
3. The login requires user name and password.
4. After successfully log in, expand the Applications node, select Application Types and then
Websphere enterprise applications.
5. Click Install.
6. Click Browse to select the jreport.war file, and then click Next.
7. Keep clicking Next until you see the requirement for specifying context root.
8. In the Context Root field, type a context path such as /jreport/, then click Next.
9. Click Finish on the Summary page. The installing process may take several minutes, wait until the
process is completed.
10. Click Save.
11. Select jreport.war and then click Start to start JReport Server.
12. Access JReport Server using the following URL:
http://<hostname>:9446/jreport/jrserver
http://<hostname>:9446/jreport/admin/index.jsp
http://<hostname>:9446/jreport/jinfonet/index.jsp
Troubleshooting
If you run into problems when using JReport Server in IBM WebSphere, send the log files of JReport
Server to [email protected] The following procedure illustrates how to generate the log files:
1. Type -Dlogall=true in the Generic JVM arguments field. Go to Application servers > server1 >
Process Definition > Java Virtual Machine to access this field.
2. Restart the application server, and try to reproduce the problem. After reproducing the problem,
send [email protected] the log files in reporthome/logs.
The WebSphere log files may also help to identify the problem. The most useful one is in /opt/
IBM/WebSphere7/AppServer/profiles/AppSrv01/logs/server1/SystemErr.log.
Deploying to WebLogic 11g Release 1 (10.3.2)
The example directory paths listed below are based on Solaris or Linux (referred to as Unix). The
instructions are applicable to both Unix and Windows installations; however, the format of the paths for
Windows would use the Windows format, i.e. C:\JReport\Server instead of /opt/JReport/Server.
It is assumed that:
●
●
WebLogic 11g Release 1 (10.3.2) is installed in the /opt/bea directory. This is referred to as
BEA_HOME in the WebLogic documentation.
The JReport Server WAR file jreport.war is located in the /opt/JReport/Server/bin/distribute
directory. To create the WAR file refer to the instructions in Building a WAR/EAR file to include a selfcontained JReport Server.
To deploy JReport Server to BEA WebLogic:
1. If you have not already created a WebLogic Domain for JReport Server you must create one
before starting the integration.
2. Start WebLogic by running startWeblogic.sh in /opt/bea/user_projects/domains/domain_name/
bin.
3. Access the WebLogic Administrative Console by using URL http://hostname:7001/console/,
where the hostname is host name or IP address, and 7001 is the port number.
4. After your successful login, in the Domain Structure panel on the left, click Deployments node.
5. In the Summary of Deployments panel, click Install.
6. In the Install Application Assistant panel, click the upload your file(s) link.
7. In the Deployment Archive section, click Browse to select the jreport.war file in C:\JReport
\Server\bin\distribute, and then click Next.
8. Keep clicking Next until the Finish button is enabled, and then click Finish.
9. Start JReport Server and then access it using the following URL:
http://localhost:7001/jreport/
Troubleshooting
If you run into problems when using JReport Server in BEA WebLogic, send the log files of JReport
Server to [email protected] The following procedure illustrates how to generate the log files:
1. Add -Dlogall=true on the same line as -Dreporthome in the startWebLogic.sh shell script.
2. Restart the application server, and then try to reproduce the problem. After reproducing the
problem, send [email protected] the log files in reporthome/logs.
The WebLogic log file may also help to identify the problem. It is /opt/bea/user_projects/
domains/domain_name/logs.
Deploying to Tomcat 6
The example directory paths listed below are based on Solaris or Linux (referred to as Unix). The
instructions are applicable to both Unix and Windows installations; however, the format of the paths for
Windows would use the Windows format, i.e. C:\JReport\Server instead of /opt/JReport/Server.
It is assumed that:
●
●
Tomcat 6 is installed in the /opt/apache-tomcat-6 directory.
The JReport Server WAR file jreport.war is located in the /opt/JReport/Server/bin/distribute
directory. To create the WAR file refer to the instructions in Building a WAR/EAR file to include a selfcontained JReport Server.
To deploy JReport Server to Tomcat 6:
1. Ensure that Tomcat is shut down.
2. Copy the Web Application Archive jreport.war to /opt/apache-tomcat-6/webapps.
3. Start Tomcat by running the startup.sh script.
4. Access JReport Server using the following URLs:
http://localhost:8080/jreport/jrserver
http://localhost:8080/jreport/admin/index.jsp
http://localhost:8080/jreport/jinfonet/index.jsp
Troubleshooting
If you run into problems when using JReport Server in Tomcat, send the log files of JReport Server to
[email protected] The following procedure illustrates how to generate the log files:
1. Modify the catalina.sh file in /opt/apache-tomcat-6/bin.
In the file catalina.sh, add -Dlogall=true after the reporthome definition:
"$JAVA" $JAVA_OPTS \-classpath "$JBOSS_CLASSPATH"
-Dreporthome=/opt/JReport/Server\-Dlogall=true\
org.jboss.Main "[email protected]"
2. After editing catalina.sh, start Tomcat.
3. To get the information about the JReport Server environment, you can access http://
localhost:8080/jreport/admin/info.jsp?cmd=info.
4. Save the output to a file.
5. After reproducing the problem, send [email protected] the log files in reporthome/logs.
The Tomcat log files may also help to identify the problem. The most useful one is /opt/apachetomcat-6/logs/catalina.out.
Deploying to JBoss 5.0.1
The example directory paths listed below are based on Solaris or Linux (referred to as Unix). The
instructions are applicable to both Unix and Windows installations; however, the format of the paths for
Windows would use the Windows format, i.e. C:\JReport\Server instead of /opt/JReport/Server.
It is assumed that:
●
●
JBoss 5.0.1 is installed in the /opt/jboss directory.
The JReport Server WAR file jreport.war is located in the /opt/JReport/Server/bin/distribute
directory. To create the WAR file refer to the instructions in Building a WAR/EAR file to include a selfcontained JReport Server.
To deploy JReport Server to JBoss 5.0.1:
1. Ensure that JBoss is shut down by running the script /opt/jboss/bin/shutdown.sh -S.
2. Remove the two files xercesImpl.jar and xml-apis.jar from jreport.war since they conflict with
JBoss. They are located in jreport.war\WEB-INF\lib.
3. Copy jreport.war to /opt/jboss/server/default/deploy.
4. Start JBoss by running the run.sh script.
5. Access JReport Server using the following URLs:
http://localhost:8080/jreport/jrserver
http://localhost:8080/jreport/admin/index.jsp
http://localhost:8080/jreport/jinfonet/index.jsp
Troubleshooting
If you run into problems when using JReport Server in JBoss, send the log files of JReport Server to
[email protected] The following procedure illustrates how to generate the log files:
1. Modify the file run.sh in /opt/jboss/bin.
In the file run.sh, add -Dlogall=true after the reporthome definition:
"$JAVA" $JAVA_OPTS \
-classpath "$JBOSS_CLASSPATH" -Dreporthome=/opt/JReport/Server \
-Dlogall=true \
org.jboss.Main "[email protected]"
2. After editing run.sh, start JBoss using the modified file.
3. After reproducing the problem, send [email protected] the log files in reporthome/logs.
The JBoss log files may also help to identify the problem. The most useful one is /opt/jboss/
server/default/log/server.log.
Deploying to OC4J 10g R3 (10.1.3.5.0)
It is assumed that the JReport Server WAR file jreport.war is located in the /opt/JReport/Server/bin/
distribute directory. To create the WAR file refer to the instructions in Building a WAR/EAR file to
include a self-contained JReport Server.
To deploy JReport Server to OC4J 10g R3 (10.1.3.5.0):
1. Start OC4J.
2. On the Applications tab, click Deploy.
3. In the Archive Location section, click Browse to select the jreport.war file in /opt/JReport/
Server/bin/distribute. Then click Next.
4. Type JRServer in the Application Name field, and type a context path such as /jreport in the
Context Root field. Then click Next.
5. Click Deploy to deploy the WAR.
6. Access JReport Server using the following URLs:
http://localhost:port/jreport/jrserver
http://localhost:port/jreport/admin/index.jsp
http://localhost:port/jreport/jinfonet/index.jsp
Troubleshooting
If you run into problems when using JReport Server in the Oracle oc4j Application Server, send the log
files of JReport Server to [email protected] The following procedure illustrates how to generate
the log files:
1. Type -Dlogall=true in oc4j.cmd located in /oc4jhome/bin.
2. Restart OC4J, and then try to reproduce the problem.
3. After reproducing the problem, send [email protected] the log files in reporthome/logs.
Deploying to Sun Java™ System Application Server Platform Edition 8.2
The example directory paths listed below are based on Windows. The instructions are applicable to both
Unix and Windows installations; however, the format of the paths for Unix would use the Unix format, i.
e. /opt/JReport/Server instead of C:\JReport\Server.
It is assumed that:
●
●
Sun Java™ System Application Server Platform Edition 8.2 is installed in the C:\Sun\AppServer
directory.
It is assumed that the JReport Server WAR file jreport.war is located in the C:\JReport\Server\bin
\distribute directory. To create the WAR file refer to the instructions in Building a WAR/EAR file to
include a self-contained JReport Server.
To deploy JReport Server to Sun Java™ System Application Server Platform Edition 8.2:
1. Upgrade Sun Application Server's Derby jars by using the lib folder in C:\JReport\Server\derby
to replace the lib folder in C:\Sun\AppServer\derby.
2. Modify server.policy in C:\Sun\AppServer\domains\domain1\config as follows:
Change
permission java.util.PropertyPermission "*", "read";
to:
permission java.util.PropertyPermission "*", "read,write";
Then add below lines:
// Added by Jinfonet
grant codeBase " file:c:/- " {
permission java.security.AllPermission;
};
grant {
permission java.io.FilePermission " c:/- " , " read,write,execute,delete " ;
};
3. Upgrade the ant in C:\Sun\AppServer\lib to ant-1.7.1.
4. Update the file domain.xml in C:\Sun\AppServer\domains\domain1\config by adding ${path.
separator}${com.sun.aas.antLib}/ant-launcher.jar right after "ant.jar".
5. Start the Sun Application Server by selecting Start > Programs > Sun Microsystems >
Application Server PE > Start Default Server.
6. Launch the Admin Console by selecting Start > Programs > Sun Microsystems > Application
Server PE > Admin Console.
7. In the left console tree, expand the Applications node, then click Web Applications.
8. In the Web Applications page, click Deploy.
9. Click Choose File to select the WAR file jreport.war. Then click Next.
10. Use the default settings and click OK. You will find a new application jreport is listed.
11. Access JReport Server using the following URLs:
http://<hostname>:8080/jreport/jrserver
http://<hostname>:8080/jreport/jinfonet/index.jsp
http://<hostname>:8080/jreport/admin/index.jsp
Troubleshooting
If you run into some problems when using the Sun Application Server, send the log files of JReport
Server to [email protected] The following procedure illustrates how to generate the log files:
1. Start the Sun Application Server, and then launch the Admin Console.
2. In the console tree, click Application Server.
3. Go to the JVM Settings tab, and then click JVM Options.
4. In the JVM Option field, click Add JVM Option, and then type -Dlogall=true.
5. Click Save to save your changes.
6. Restart Sun Application Server and try to reproduce the problem.
7. After reproducing the problem, send [email protected] the log files in reporthome/logs.
Deploying to GlassFish V3
The example directory paths listed below are based on Solaris or Linux (referred to as Unix). The
instructions are applicable to both Unix and Windows installations; however, the format of the paths for
Windows would use the Windows format, i.e. C:\JReport\Server instead of /opt/JReport/Server.
It is assumed that the JReport Server WAR file jreport.war is located in the /opt/JReport/Server/bin/
distribute directory. To create the WAR file refer to the instructions in Building a WAR/EAR file to
include a self-contained JReport Server.
To deploy JReport Server to GlassFish V3:
1. Start the GlassFish in the default domain1 and then launch the Admin Console.
2. Click the Deployment node on the left.
3. Click Deploy on the displayed page.
4. Click Choose File to select the WAR file jreport.war.
5. Leave Application Name and Context Root as jreport and jreport. Then click OK.
6. Expand the Deployment node on the left and you will see a new node named jreport. Click jreport
and then on the displayed page click Save.
7. In the console tree, click Configuration. Go to the JVM Settings tab, and then click JVM Options.
In the JVM Options section, click Add JVM Option, and then type -Djava.awt.headless=true.
Click Save to save your changes.
You need not add this JVM option if you are using Windows.
8. Restart GlassFish, and then start the application jreport.
9. Access JReport Server using the following URLs:
http://<hostname>:8080/jreport
http://<hostname>:8080/jreport/admin/index.jsp
http://<hostname>:8080/jreport/jinfonet/index.jsp
Troubleshooting
If you run into some problems when using the GlassFish V3, send the log files of JReport Server to
[email protected] The following procedure illustrates how to generate the log files:
1. Start the GlassFish in the default domain1 and then launch the Admin Console.
2. In the console tree, click Configuration.
3. Go to the JVM Settings tab, and then click JVM Options.
4. In the JVM Options section, click Add JVM Option, and then type -Dlogall=true. Click Save to
save your changes.
5. Restart GlassFish and try to reproduce the problem.
6. After reproducing the problem, send [email protected] the log files in reporthome/logs.
The GlassFish log file may also help to identify the problem. It is /opt/glassfish/domains/domain1/
logs/server.log.
Integrating remote JReport Server
Normally, JReport servlets are only integrated with other applications on the same machine. However,
you can now implement JReport Remote Server API in your JSPs, and integrate the JSPs with the
application server to call JReport Server, which is running on a different machine.
Notes:
●
In a remote integration environment, the options for publishing resources are hidden since they are
not supported by JReport JSPs. If you want to publish report sets or catalogs to JReport Server, use
one of the following ways:
❍
❍
❍
●
●
●
Access the JReport Server (not the remote server) Administration page with 8889 as the default
port to perform publish work.
Copy the report set or catalog files to the computer where JReport Server (not the remote server)
is located, and then call the RMI API to publish them.
Publish the report set or catalog files from JReport Designer to the JReport Server.
In a remote integration environment, running report sets to the Applet format is not supported.
In a remote integration environment, the two tabs Monitor and Data are hidden on JReport
Administration page since they are not supported.
You can change the location of the two folders, skin and dhtmljsp, in the \public_html directory in
the application server side. What is required is to create a file jrserver.properties in the \WEB-INF
directory and then add the following two properties and provide the correct paths (the context root is
excluded):
web.skin.dir
web.dhtml_jsp_path
See the following cases:
●
Integrating remote JReport Server with IBM WebSphere 7 by a WAR file
●
Integrating remote JReport Server with WebLogic 11g Release 1 (10.3.2) by a WAR file
Related Topics:
●
Overall Remote Server APIs & unified JSPs
Integrating remote JReport Server with IBM WebSphere 7 by a WAR file
Here is an example illustrating the case of using JSPs based on Remote Server APIs to integrate with
IBM WebSphere 7.
It is assumed that:
●
WebSphere 7 is installed in C:\WebSphere in computer A.
●
JReport Server is installed in C:\JReport\Server in computer B. The computer IP is 127.0.0.1.
Take the following steps to integrate remote JReport Server with IBM WebSphere:
1. Generate a WAR file.
2. Configure JReport Server.
3. Deploy the WAR file.
Below show the details for each step:
Generating the WAR file
1. In computer B, use the tool makewar.bat to build the JReport Server WAR file as defined by
makewar.xml for remote integration. Both makewar.bat and makewar.xml are located in C:
\JReport\Server\bin. Run the following commands in DOS window and the generated WAR file
remote.war will be saved to the directory C:\JReport\Server\bin\distribute.
makewar.bat buildRemoteWar -Djrs.remote.host=127.0.0.1 -Djrs.remote.rmiport=1129 Djrs.rmi.auth_file=C:\JReport\Server\bin\rmi.auth
2. Copy the rmi.auth file from C:\JReport\Server\bin in computer B to C:\JReport\Server\bin in
computer A.
Configuring JReport Server
1. Make sure JReport Server has been started once in order that the server.properties file is
generated.
2. Change server.properties file in C:\JReport\Server\bin as follows:
server.rmiserver.enable=true
server.rmiadminservice.enable=true (This is required only when you have included the admin
JSP pages from C:\JReport\Server\bin\public_html\admin and are going to use the
administration service.)
Deploying the WAR file
1. In computer A, start IBM WebSphere.
2. In computer B, access the WebSphere Administrative Console by using the URL: https://
hostname:9046/ibm/console, where the hostname is computer A's host name or IP address, and
9046 is the port number.
3. After successfully log in, expand the Applications node, select Application Types and then
Websphere enterprise applications.
4. Click Install.
5. Click Browse to select the remote.war file, and then click Next.
6. Keep clicking Next until you see the requirement for specifying context root.
7. In the Context Root field, type a context path such as /remote/, then click Next.
8. Click Finish on the Summary page. The installing process may take several minutes, wait until the
process is completed.
9. Click Save.
10. Select remote.war and then click Start.
11. Access JReport Server using the following URL:
http://hostname:9446/remote/jinfonet/default.jsp
Here the hostname is computer A's host name or IP address.
Integrating remote JReport Server with WebLogic 11g Release 1 (10.3.2) by
a WAR file
Here is an example illustrating the case of using JSPs based on Remote Server APIs to integrate with
WebLogic 11g Release 1 (10.3.2).
It is assumed that:
●
WebLogic is installed in C:\bea in computer A.
●
JReport Server is installed in C:\JReport\Server in computer B. The computer IP is 127.0.0.1.
Take the following steps to integrate remote JReport Server with WebLogic:
1. Generate a WAR file.
2. Configure JReport Server.
3. Deploy the WAR file.
Below show the details of each step:
Generating a WAR file
1. In computer B, use the tool makewar.bat to build the JReport Server WAR file as defined by
makewar.xml for remote integration. Both makewar.bat and makewar.xml are located in C:
\JReport\Server\bin. Run the following commands in DOS window and the generated WAR file
remote.war will be saved to the directory C:\JReport\Server\bin\distribute.
makewar.bat buildRemoteWar -Djrs.remote.host=127.0.0.1 -Djrs.remote.rmiport=1129 Djrs.rmi.auth_file=C:\JReport\Server\bin\rmi.auth
2. Copy the rmi.auth file from C:\JReport\Server\bin in computer B to C:\JReport\Server\bin in
computer A.
Configuring JReport Server
1. Make sure JReport Server has been started once in order that the server.properties file is
generated.
2. Change server.properties file in C:\JReport\Server\bin as follows:
server.rmiserver.enable=true
server.rmiadminservice.enable=true (This is required only when you have included the admin
JSP pages from C:\JReport\Server\bin\public_html\admin and are going to use the
administration service.)
Deploying the WAR file
1. If you have not already created a WebLogic Domain for JReport Server you must create one
before starting the integration.
2. In computer A, start WebLogic by running startWeblogic.sh in C:\bea\user_projects\domains
\domain_name\bin.
3. In computer B, access the WebLogic Administrative Console by using URL http://hostname:7001/
console/, where the hostname is computer A's host name or IP address, and 7001 is the port
number.
4. After your successful login, in the Domain Structure panel on the left, click Deployments node.
5. In the Summary of Deployments panel, click Install.
6. In the Install Application Assistant panel, click the upload your file(s) link.
7. In the Deployment Archive section, click Browse to select the remote.war file in C:\JReport
\Server\bin\distribute, and then click Next.
8. Keep clicking Next until the Finish button is enabled, and then click Finish.
9. Start JReport Server in computer B. Then go to computer A and access JReport Server using the
following URL:
http://localhost:7001/remote/
Clustering
A JReport Server cluster is a distributed cluster in which a group of servers work together to provide
cluster-wide shared resources, security, schedules and version services. In a JReport Server cluster, all
clustered servers play exactly the same role. You can add a new server to the existing cluster or shut
down a server from the cluster any time.
This chapter shows you the infrastructure of the JReport Server cluster, what features it owns, how to
set it up, and how to manage it.
The following topics are covered:
●
Cluster overview
●
JReport Server cluster main features
●
Setting up and starting a JReport Server cluster
●
Managing JReport Server clusters
●
Dispatching RMI Server Pages requests in multiple server environment
Cluster overview
There are many nodes (clustered servers) that play the same role in a JReport Server cluster. The following is a diagram
of the JReport Server cluster infrastructure:
Every clustered server in this distributed cluster has the same responsibility. You can set each clustered server in a
JReport Server cluster by configuring its properties. The following list shows all the tasks each clustered server in the
server cluster can complete.
Business tasks
Run
Report
Sets
Clustered
Server
Submit
Scheduled
Tasks
Y
Related topics:
●
JReport Server cluster
Y
Administrative tasks
LoadBalancing
Y
Failover
Y
LoadBalancing
Administration
Security
Administration
Resource
Administration
Y
Y
Y
JReport Server cluster main features
This section describes the main features of the JReport Server cluster. Some of these features are also
available through the API. With these features in mind, you will be better able to understand JReport
Server clusters and easily use them.
Administering security and resources
In a distributed cluster, you can accomplish all administrative tasks from any single node.
After logging onto the cluster from a clustered server as an administrator, certain security
administrative tasks can be performed:
●
Create, remove and edit users, groups, realms, protections and ACLs.
●
Edit resource nodes and sub resource nodes. Add reachable virtual resource nodes.
●
Customize the default page appearance for users.
Load balancing
As for scheduled tasks in a cluster environment, JReport Server provides a load balancing mechanism
which enables the server to work more effectively.
Every clustered server has a scheduler, and among the schedulers those with a lease are active
schedulers. When the time of a scheduled task arrives, active schedulers compete and the winner gets
to trigger the schedule. When dispatching tasks, the server which has the active scheduler will select a
server according to load balancing algorithm and allocate the task to it.
Here are the benefits of deploying load balancing in a JReport Server cluster.
●
Automatically allocates tasks to suitable servers according to their current load and performance.
●
Makes sure that all of the servers in the cluster are fully utilized.
●
Automatically re-balances the network load when one server is added or removed.
Cluster Scheduler Lease
By default, in a JReport Server cluster all nodes of the cluster compete to become the active scheduler
when the time of a scheduled task arrives. If the scheduled task has been bound with a trigger, then
the node who gets the trigger becomes the active scheduler. The active scheduler for the task will then
determine the server that will be asked to run the scheduled report based on load balancing. The
Cluster Scheduler Lease option allows you to limit the number of servers competing for each scheduled
report by setting a Cluster Scheduler Lease Active Count. As long as the count is less than the total
number of nodes in the cluster, only the nodes holding a lease will compete to become the scheduler
for the report that is ready to run. Depending on the number of scheduled reports you have, you may
find that setting the Lease Active Count to 1 or 2 will provide more overall throughput on the system so
the other nodes never have to be concerned about scheduled tasks.
There are two additional parameters that can be set:
●
●
Cluster Scheduler Lease Valid Time will set the amount of time that the lease holder will continue to
compete for scheduled tasks to run. The default value is 300 seconds.
Cluster Schedule Lease Check Interval will set the amount of time between when other non-lease
nodes will check to see if a lease is available to pick up. The default value is 30 seconds, i.e. every 30
seconds all the other nodes will check to see if one of the lease semaphores is available to take. The
number of semaphores is set by the Cluster Scheduler Lease Active Count.
Load detection
There is a JReport Server residing in each node of a JReport Server cluster. The main factor that affects
load balancing is the number of concurrent report sets that are running on every JReport Server. In
order to avoid heavy load, every member server in the cluster has been enabled to send the number of
concurrently running report sets on it to the other cluster nodes.
Built-in load balancing algorithms
JReport Server cluster supports several algorithms for load balancing clustered servers. Configurable
algorithms for load balancing clustered servers are:
●
●
●
Least Current Report Sets (Min-load) (loadbalance.type=0)
The server that has the active scheduler will select the server which has the least number of
currently running report sets. If the local server is one of the qualified servers, it will be given higher
priority.
Round Robin (loadbalance.type=1)
The server that has the active scheduler will select each server in sequence one by one until each has
been allocated a report set to run then will repeat the cycle. This is the default setting.
Least Weighted Current Report Sets (Weighted Min-load)(loadbalance.type=2)
The server that has the active scheduler will select the server that has the least Weighted current
report sets. If the local server is one of the qualified servers, it will be given higher priority.
Number of currently running report sets
Weighted current report sets=
Performance Weight
Performance weight is a positive floating point number that you set to each server in a cluster on any
clustered server. Use Admin Console > Cluster > Weight panel and measure the performance of a
typical report on each node of the cluster. The higher performance weight you set to a clustered
server, the higher chance it may get selected by the server that holds the active scheduler during
load balancing. See Configuring performance weight for how to set performance weight and how this
algorithm works.
If you do not set performance weight, by default the algorithm will work the same as Round Robin
(loadbalance.type=1).
●
Random (loadbalance.type=3)
The server that holds the active scheduler will select the server randomly.
Failover
You can check the status of the clustered servers on JReport Server Monitor and notice the failure of
any member server. If a member server is down, JReport cluster will remove it from the active
clustered server list.
Member server failure
Effect on load balancing
When JReport cluster detects a failed member server, it will remove the member server from the active
server list and will not schedule reporting tasks to that server any more. Load balancing will proceed on
the remaining active servers.
Effect on incomplete tasks
When JReport cluster detects a failed clustered server, it will check the shared table for the list of
incomplete tasks and will then reassign all incomplete tasks to other active servers using the load
balancer.
Effect on completed tasks
JReport supports only report set level recovery but not session level recovery. Once a report task is
completed, it will be written to temporary storage for redirection to the requester. Failure after that will
not be recovered.
Notifying of server down
If you have enabled the notifying of server down feature, when a member server crashes or is
disconnected with the cluster, JReport cluster will send a notification e-mail to a specified address.
Distributed storage
In pure distributed cluster the resource files are no longer stored in a central place. They might be
stored on any node in the cluster. You can set how many copies would be made in the cluster. Then if
you need to access the files from another node, JReport cluster will copy them to the node from where
it is stored. As a result, you can access your required files from anywhere in the cluster. If the copy
number is 0, then it means every node of the cluster will get a copy.
Here are the resources that can be stored on any single node of the cluster:
●
●
●
●
Temp Directory
When viewing report sets from any server in a JReport Server cluster, some temporary files will be
generated. All temporary files are saved in the temp directory.
History Directory
When publishing report sets to the versioning system from any server in a JReport Server cluster, all
the result files are saved in the history directory.
Realm Directory
On each clustered server, the realm related files are saved in the realm directory.
CRD result files
On each clustered server, the CRD result files are stored in the cached CRD result folder.
Setting up and starting a JReport Server cluster
This section introduces the steps for setting up a JReport Server cluster and starting it. Here, it is
assumed that you already have a general idea about the infrastructure of JReport Server clusters and
know the functions of the clustered servers. If this isn't the case, see Cluster overview and JReport
Server cluster.
Following are steps and examples for how to set up and start a JReport Server cluster:
●
JReport Server cluster license
●
Preparation
●
Setting up and configuring a JReport Server cluster
●
Starting a JReport Server cluster
●
Example 1: Setting up a simple JReport Server cluster
●
Example 2: Setting up a JReport Server cluster for a production environment
JReport Server cluster license
JReport Server cluster uses a license which is different from the other licenses you use for JReport
Server. When installing JReport Server to run in a JReport Server cluster, you should use the special
license key only for JReport Server cluster. Contact JReport Sales to obtain the special license key for
the cluster.
Preparation
To set up a JReport Server cluster, you must determine the following factors:
●
What is a JReport cluster?
JReport cluster is based on JGroups and is a distributed cluster. All clustered servers in JReport
cluster play the same role. You can add a new server to the existing cluster or shut down a server
from the cluster any time.
●
How many servers will be included in the cluster?
The maximum number of servers is unlimited as long as you install JReport Server with the license
key for cluster. Based on your expected load and protection from system failures you can create 2 or
more nodes for your cluster. Often with multi-cpu and multi-core systems you will get better overall
throughput having several nodes on a single server. Only by testing in your environment will you be
able to find the number of nodes to give you the highest performance. Too few and resources will be
under utilized and too many will cause thrashing and lower throughput.
●
Whether to use the distributed storage feature in the cluster?
In a distributed cluster the files may be stored on any node in the cluster. You can set how many
copies will be made in the cluster and if you need to access the files from another node, JReport
cluster will copy them to this node from the node it is stored on. As a result, you can access your
required files from anywhere in the cluster. If the copy number is 0, then it means every node of the
cluster will get a copy.
The tradeoff is overall system performance versus individual user performance when a user requests
a report result. If you set Number of Copies to 0, the system will copy every resource file to every
node, slowing overall throughput considerably. However, setting Number of Copies to 1 will keep a
single copy just on the node where it was created which provides maximum system throughput but
when a user requests a resource which is not on his node he then needs to wait for it to be copied
before he can view it. If the node goes down though then the resource is unreachable. A setting of 2
is the default which allows for failover if a node goes down but just does a single copy.
●
Whether to use the default Derby DBMS or use your own DBMS?
JReport includes the Apache Derby DBMS for the server data such as resources and users, groups
and roles and a lot of other information. By default each installed node creates it's own database in
<install_root>/derby. In order to use a JReport cluster, all nodes must use the same database.
Select one of the nodes to manage the Derby DBMS and ensure that all the other nodes point to this
same instance. For an example, review the sample configuration Case 1.
Another option to consider is using your own DBMS for the server database. If you already have a
reliable DBMS which is already being backed up and provides the reliability you need such as MySQL
or Oracle we recommend you change the system DBMS to use your own managed DBMS rather than
maintain a separate one for JReport. For information on how to configure JReport to use a different
system DBMS, refer to Configure the server database.
Setting up and configuring a JReport Server cluster
Before setting up a JReport Server cluster, first you need to make the time difference between the
target computers that will join the cluster as small as possible (the time difference between the target
computers should be within one minute), and make sure all servers in the cluster will be set up on the
same architecture and operating system.
A JReport Server cluster can be set up either during the JReport Server installation or after the servers
have been installed using the appropriate license key for cluster.
Creating a JReport Server cluster during installation
It is recommended that you create a JReport Server cluster during the installation of servers. This is
the easiest way for you to set up a cluster.
To create a JReport Server cluster during installation:
1. Run the JReport Server installation file to install JReport Server with the Installation Wizard.
2. Specifies your User ID. In the License Key text field, use the cluster enabled license key.
3. When choosing the installation type, choose Custom Installation for Standalone Server. Then
specify the installation directory for JReport Server.
4. In the Service tab of the Configuration panel, check the Network Address At option and type in
the IP address of the server.
5. In the Cluster tab, specify a cluster name in the Cluster Name text field. You can either make the
server join an existing cluster or specify a new cluster name to build another cluster.
6. Uncheck the Disable Cluster option.
7. Check the Cluster Scheduler Lease option to enable lease for the cluster, then set the active
count, valid time and check interval for the cluster scheduler lease. If you don't enable the lease
option, all clustered servers in the cluster will compete for a chance to trigger scheduled tasks
which could lower overall system throughput. Read main features for additional information.
8. Specify values for Cluster Storage History Number of Copies, Cluster Storage Realm Number of
Copies and Cluster Storage CRD Result Number of Copies. If you are using shared disk resources
for any of these directories you should set the value to 1. The default value is 2 which means
make one copy plus the original. This allows any one node to go down and the system will still be
able to find all resources. If you want to allow 2 simultaneous failures, set the number of copies to
3.
9. Set the Properties, Realm, Resource, History, and Temporary Directories if necessary. If they are
not specified, default directories will be used.
10. Type the IP address or host name of the server in the Server's RMI Host text field, and type the
port number in the Server's RMI Port text field.
11. In the Data Source tab, configure the System DB and Realm DB to make sure they point to the
database that the server will use.
12. Go on with the installation steps to complete the installation.
13. Install another server you want to join the cluster and repeat the above steps to configure its
cluster settings. Since JReport Cluster uses only one server DBMS, you need to make the system
database and realm database in the URL text field point to the same DBMS as the previous server.
This requires that you replace localhost with the IP address of the first cluster node that you
installed: jdbc:derby://localhost:1527/systemtables;create=true; jdbc:derby://
localhost:1527/realmtable.defaultRealm;create=true.
Creating a JReport Server cluster after installation
After the servers have been installed using the appropriate license key for cluster, you can configure
the clustered servers either by using the JReport Administration page or the server.properties and
dbconfig.xml files.
Using the JReport Administration page
1. Start up the server that hasn't been enabled for cluster.
2. Log onto the JReport Administration page, and click Cluster > Configuration on the system
toolbar.
3. In the Cluster Name text field, specify a name for the cluster. You can either make the server join
an existing cluster or specify a new cluster name to build another cluster.
4. Check the Enable Cluster option.
5. Click Save to enable the cluster.
6. A cluster member ID will be generated automatically for the server. But if you need to modify it,
go to server.properties file located in <install_root>\bin and set the property cluster.member.
id.
7. Go to the JReport Administration > Data page, configure the databases to make sure they point to
the database that the server will use. For details, see Configuring the server database.
8. Restart the server you have enabled with cluster, then log onto the JReport Administration page,
go to the Cluster > Configuration panel.
9. To enable lease for the cluster, check the Cluster Scheduler Lease option and set the active
count, valid time and check interval of the cluster scheduler lease respectively.
10. Specify values for Cluster Storage History Number of Copies, Cluster Storage Realm Number of
Copies and Cluster Storage CRD Result Number of Copies.
11. Set the Properties, Realm, Resource, History, and Temporary Directories if necessary. If they are
not specified, default directories will be used.
12. In the Server's RMI Host text field, type the RMI IP address or host name of the clustered server.
13. In the Server's RMI Port text field, type the RMI port number of the clustered server.
14. Shut down the server.
15. Start up another server you want to join the cluster and repeat the above steps to configure its
cluster settings.
See also Cluster dialog for details about the cluster configuration options.
Using the server.properties and dbconfig.xml files
To set up a JReport Server cluster using the server.properties and dbconfig.xml files, you need to
modify the server.properties file on each JReport Server. The process uses the following procedures:
1. In the server.properties file located in <install_root>\bin of each server, set the property
cluster.enabled=true.
2. Modify cluster.name in any server's server.properties file to specify the cluster name. If not
specified, it will take jreport-cluster as the default name.
3. In the server.properties file of each clustered server, modify the properties file as follows:
❍
❍
❍
cluster.member.id=(integer)
Specifies the member ID of the local server. The value of this property should be an integer no
less than 1.
server.rmi.host=localhost IP address
Specifies the RMI IP address or host name of the local server.
server.rmi.port=1129
Specifies the RMI port number of the local server.
4. Specify the paths of the directories on the physical disk, such as properties directory, realm
directory, resource root, history directory, and temporary files directory. The directories on each
clustered server should point to a different physical disk.
Add the following properties to the server.properties file:
❍
❍
❍
❍
❍
resource.share.temp.dir=
Specifies the directories for storing temporary files.
resource.share.hist.dir=
Specifies the directories for storing all versions of report set results in the cluster.
resource.share.realm.dir=
Specifies the directories of the realm files.
resource.share.properties.dir=
Specifies the directories of the properties files.
resource.root=
Specifies the directories of the JReport demo report sets.
5. Modify dbconfig.xml in each server's <install_root>\bin, and make sure that the system
database and realm database all server nodes use point to the same DBMS. For details, see
Configuring the server database.
Notes:
●
●
In JReport cluster, you can no longer use HSQLDB as the server's system database.
If you set up a JReport cluster on one computer, you need to make sure that the settings of HTTP
Port, Administration Port, and Server's RMI Port on each cluster node be different from those on any
other nodes.
●
●
It is strongly recommended that you do not change the auto generated cluster member ID in a
JReport cluster, because distributed storage uses the member ID to recognize on which node the
physical files are stored.
Properties such as cluster.name, cluster.member.id, resource.share.properties.dir, resource.share.
realm.dir, resource.root, resource.share.hist.dir, resource.share.temp.dir, server.rmi.host, server.rmi.
port, cluster.enable, log.config.filename, log.config.update, and log.config.update.interval that
created in the server.properties file and their corresponding UI options on the JReport Administration
page need to be configured respectively for each cluster node. However, properties that are now
saved in the database should be configured for all the server nodes in the cluster. These properties
are:
❍
❍
All properties in the mailconfig.properties file in <install_root>\bin.
❍
All properties in the clusterWeight.properties file in the system database.
❍
●
●
●
●
The following properties listed before in the server.properties file: cluster.
enable_notify_server_down, cluster.notify_server_down_address, cluster.scheduler.lease.
active_count, cluster.scheduler.lease.check_interval, cluster.scheduler.lease.enabled, cluster.
scheduler.lease.valid_time, cluster.storage.crd_result.copy_number, cluster.storage.history.
copy_number, cluster.storage.realm.copy_number, loadbalance.custom_class, loadbalance.type,
server.autocache.enabled, server.autocache.expired.time, server.autocache.max.disk.usage,
server.autocache.never.expire, server.completed.max_count, server.crd.memory.usage, server.
realm.active, server.security, server.version.from.temp.
All properties in the LDAP configuration XML file LDAPProperties.xml in <install_root>
\properties.
No sub folders should be created under the realm directory because it may create a realm when
server is started.
To use the old result files in <reporthome>\history, install the new JReport Server to the same
directory with a new license key, overriding the existing program files.
In order to fax report results successfully in a cluster, you need to configure the fax settings for each
clustered server respectively.
If the content of the resource root directory jreports is removed, the Public Reports folder in the
resource tree will be empty.
Starting a JReport Server cluster
To start a JReport Server cluster, start the servers you have configured for the cluster one by one. If
you are using the default Derby DBMS, be sure to start Derby first by running startNetworkServer.bat/
sh in the <install_root>/derby/bin directory on the server containing the server DBMS.
The servers in a cluster can also be shut down at any time, and by using the Server API, you can set
whether to notify somebody via e-mail when a server in a cluster is down. To do this:
1. Start a clustered server by using JReport Server API.
2. Call jet.server.api.admin.ClusterAdminService.
3. In this method, set the value of the parameter setEnableNotifyServerDown(boolean enable) to
true if you want the cluster to send a notification mail when a server is down. Then set the
parameter notifyServerDownAddress to specify an e-mail address to which the notification mail
will be sent.
Notes:
●
●
●
If you are using multiple IP address on a clustered server, you need to add -Djgroups.
bind_addr=IP address at which JReport cluster can work properly to its JRServer.bat file located in
<install_root>\bin to make sure the server can be started successfully.
If you have two JReport clusters with the same cluster name in a network segment, although the
two clusters are pointing to different databases, only the one started earlier can work successfully.
The parameter setEnableNotifyServerDown(boolean enable) only applies to a JReport Server cluster
environment, since at least one running server is required for sending the e-mail when the other
servers are down.
Example 1: Setting up a simple JReport Server cluster
This example demonstrates how to configure a simple JReport Server cluster by modifying the
configuration options on the JReport Administration page on each JReport Server.
Example description:
●
Set up a simple JReport Server cluster using the JReport Administration page. Assume that JReport
Server Monitor has been installed on your computer.
●
The cluster consists of two copies of JReport Server on one computer.
●
The cluster uses one server DBMS.
●
The cluster uses shared directories for resources so no resource copies are required.
Take the following steps to set up the cluster:
1. Install the two JReport Servers respectively to C:\JReport\Server1 and C:\JReport\Server2
using the cluster enabled license key.
2. Launch the JReport Server installed to C:\JReport\Server2.
3. Log onto the JReport Administration page of Server2, click Configuration > Service on the
system toolbar, then set Port and Administration Port respectively to 8886 and 8887 to make
them different from those of Server1. You may use any port numbers which are available on your
system.
4. Click Cluster > Configuration on the system toolbar.
5. In the Configuration panel, specify a cluster name and check the Enable Cluster option, then
click Save to enable the cluster.
6. Restart the JReport Server installed to C:\JReport\Server2.
7. Log onto the JReport Administration page of Server2 using the administration port 8887 set in
Step 3 (http://localhost:8887), go to the Cluster > Configuration panel, check the Cluster
Scheduler Lease option to enable lease for the cluster, then set the active count, valid time and
check interval for the cluster scheduler lease.
8. Change the Cluster Storage History, Realm and CRD Result Number of Copies to 1. We will just
use one resource directory.
9. Change the Properties, Realm, Resource, History Directories to C:\JReport\Server1. Leave the
Temp directory as the default.
10. Type the IP address or host name of Server2 in the Server's RMI Host text field, and type the port
number in the Server's RMI Port text field.
The port is the RMI port of the clustered server. The default port number is 1129. If there are two
or more JReport Servers started on one machine, the RMI port number of each clustered server
must be changed to a unique one, in order to avoid port conflicts.
In this example, the port number is changed to 1130, since the other server will use the default
port number 1129.
11. Click Save to accept all the changes, then shut down the server.
12. Edit C:\JReport\Server2\bin\dbconfig.xml and remove the lines with auto-start-derbyservice. We
only want Server1 to start the server DBMS since we will always use the Server1 database.
13. Launch the JReport Server installed to C:\JReport\Server1, log onto the JReport Administration
page (http://localhost:8889), then click Cluster > Configuration on the system toolbar.
14. Use the same cluster name as Server2, thus making Server1 join the existing cluster. Check the
Enable Cluster option, then click Save to enable the cluster.
15. Restart the JReport Server installed to C:\JReport\Server1.
16. Go to the Cluster > Configuration panel, change the Cluster Storage History, Realm and CRD
Result Number of Copies to 1.
17. Configure its Server's RMI Host and Server's RMI Port. Remember to keep Server's RMI Port to its
default value 1129.
18. Upon finish, click Save to accept all settings and shut down Server1.
19. Copy rmi.auth in C:\JReport\Server1\bin to C:\JReport\Server2\bin. This allows RMI to be
authorized between the two systems.
20. Edit server.properties in C:\JReport\Server2\bin and remove cluster.member.id. It will be
recreated when you restart Server2 with a unique number.
21. Start the server Derby DBMS service by double-clicking the startNetworkServer.bat file in C:
\JReport\Server1\derby\bin.
22. Restart Server1 and Server2. It doesn't matter which one you started first.
23. Start JReport Server Monitor and check the cluster on the JReport Monitor page.
24. Access the JReport Console page of the first server using port 8888 as an administrator, and then
submit a scheduled task. In the Scheduled tab, you will see the newly scheduled task.
25. Log onto the JReport Administration page of the second server and create a new user Tom in the
Security > User panel. Access the JReport Console page of the second server using port 8886 as
Tom, and then submit another scheduled task.
Notes:
●
Publishing to disk is not supported when you schedule to run a report in JReport cluster.
●
You can only view scheduled tasks that you have submitted.
●
●
From the JReport Console page of the clustered servers, you can only view completed tasks that you
have submitted.
If there are more than two clustered servers in the cluster, then after you shut down one server, all
the scheduled tasks running on this server will be run on other servers.
Example 2: Setting up a JReport Server cluster for a production environment
This example demonstrates how to set up a JReport Server cluster on Unix/Linux by configuring the
cluster UI on each JReport Server. There will be three computers in the cluster. They are node1 (IP
address: 192.168.0.1), node2 (IP address: 192.168.0.2) and node3 (IP address: 192.168.0.3). All
JReport Servers in the cluster use Apache Derby as the server system database.
Take the following steps to set up the cluster:
1. Make the time difference between the target computers be within one minute.
2. Install JReport Server on each of the three nodes in directories /home/JReport/Server1, /home/
JReport/Server2 and /home/JReport/Server3 respectively using the appropriate license key for
the cluster, and install JReport Server Monitor on one of the nodes.
3. Launch the JReport Server installed to /home/JReport/Server1 on node1. Log onto the JReport
Administration page, and click Cluster > Configuration on the system toolbar. In the
Configuration panel, specify a cluster name and check the Enable Cluster option, then click Save
to enable the cluster.
4. Restart the JReport Server on node1, and go to the JReport Administration page > Cluster >
Configuration panel.
5. Check the Cluster Scheduler Lease option to enable scheduler leases for the cluster, then set
the active count, valid time and check interval for the cluster scheduler lease respectively. The
defaults of 2 active schedules with a time of 300 seconds and check interval of 30 seconds are a
good starting point.
6. Keep the cluster storage history, realm and CRD result number of copies to 2. This means that
each resource will be copied to 2 of the 3 servers so there will be no single point of failure for the
resources.
7. The default properties for realm, resource, history and temporary file directories are OK.
8. In the Server's RMI Host text field, type the IP address or host name of Server1 as 192.168.0.1.
Type the port number in the Server's RMI Port text field as 1129.
9. Click Save to accept all the changes.
10. Go to the Data > System DB panel of Server1, in the Configuration tab, copy the URL in the URL
text field to a temporary file, and go to the Realm DB panel to copy the URL using the same way.
In order to use a JReport server cluster, all nodes in the cluster must use the same database. In
this case, all three nodes will use the database server1 uses. The ensures that all servers in the
cluster share a single DBMS instance.
11. Shut down the server.
12. Launch the JReport Server installed to /home/JReport/Server2 on node2. Log onto the JReport
Administration page, and click Cluster > Configuration on the system toolbar. In the
Configuration panel, use the same cluster name as Server1, thus making Server2 join the existing
cluster. Check the Enable Cluster option, then click Save to enable the cluster.
13. Restart the JReport Server on node2. Go to the JReport Administration page > Data > System DB/
Realm DB, make the system database and realm database in the URL text field the same as those
of node1.
14. Go to the Cluster > Configuration panel.
15. Similarly, keep the cluster storage history, realm and CRD result number of copies to 2.
16. The default properties for realm, resource, history and temporary file directories are OK.
17. In the Server's RMI Host text field, type the IP address or host name of Server2 as 192.168.0.2.
Type the port number in the Server's RMI Port text field as 1129.
18. Click Save to accept all the changes, then shut down the server.
19. Launch the JReport Server installed to /home/JReport/Server3 on node3. Just like what we did
with node2, enable cluster and make node3 join the existing cluster too.
20. Restart the JReport Server on node3. Go to the JReport Administration page > Data > System DB/
Realm DB, make the system database and realm database in the URL text field the same as those
of node1.
21. Go to the Cluster > Configuration panel.
22. Just as we did with node2, keep the cluster storage history, realm and CRD result number of
copies to 2. The default properties for realm, resource, history and temporary file directories are
OK.
23. In the Server's RMI Host text field, type the IP address or host name of Server3 as 192.168.0.3.
Type the port number in the Server's RMI Port text field as 1129.
24. Click Save to accept all the changes, then shut down the server.
25. Start the server Derby DBMS service by running the startNetworkServer.sh file in /home/JReport/
Server1/derby/bin.
26. Launch the server on node1. In the Command Prompt window, you will see the following
information:
JReport Server is ready for service.
27. Similarly, launch the server on node2 and node3.
28. Start JReport Server Monitor and go to the JReport Monitor page to track the cluster.
Managing JReport Server clusters
The JReport Server Cluster page allows you to enable a cluster and configure and evaluate the
performance weight of the servers in the cluster. On this page, you can:
●
Enable and set up a cluster.
●
Configure the clustered servers.
●
Set the shared parameters of the clustered servers.
●
Evaluate the performance weight of the clustered servers.
On the JReport Administration page, you can also administer the servers in a cluster. In this section,
JReport Server cluster administration is described in the following topics:
●
Configuring performance weight
●
Balancing the server load
●
Monitoring clustered servers
Configuring performance weight
If you have chosen the Least Weighted Current Report Sets (Weighted Min-load) algorithm for load
balancing, you will have to configure a performance weight for each clustered server in the cluster. The
higher performance weight you set to a clustered server, the higher chance it may get selected by the
server that has the active scheduler during load balancing.
To configure performance weight:
1. Start a clustered server in the cluster, on its JReport Administration page, click Cluster > Weight
to show the Weight panel.
2. Specify a weight value for each clustered server manually. Performance weight is a positive float
number.
3. Click OK to save the weight values.
4. If you want to test each clustered server's performance weight value at current time, specify a
catalog and a report that will be used for the testing in the Catalog and Report text fields and then
click the Test button.
The following are two examples for how Least Weighted Current Report Sets algorithm works:
Example 1 - when there are free servers:
Active Servers
ServerA ServerB
ServerC
Comments
Is local server
TRUE
FALSE
FALSE
Maximum concurrent report
sets
8
Unlimited
5
Number of currently running
report sets
6
6
5
Performance weight
10
10
10
Weighted current report sets
0.6
0.6
0.5
Is free
TRUE
TRUE
FALSE
Candidate servers
YES
YES
Select from free servers
Candidate servers
YES
YES
Select servers which have the least
Weighted current report sets
Selected server
YES
Calculation
Current < MaxConcurrent, or
MaxConcurrent is unlimited
Local server has higher priority
Example 2 - when there are no free servers:
Active Servers
ServerA ServerB
ServerC
Is local server
TRUE
FALSE
FALSE
Maximum concurrent report
sets
10
10
10
Number of currently running
report sets
10
10
10
Performance weight
4
5
8
Calculation
Comments
Weighted current report sets
2.5
2
1.25
Is free
FALSE
FALSE
FALSE
Current < MaxConcurrent, or
MaxConcurrent is unlimited
Candidate servers
YES
YES
YES
Selects from all servers when all
servers are full
Candidate servers
YES
Select servers which have the least
Weighted current report sets
Selected server
YES
Select ServerC
Balancing the server load
In a cluster environment, JReport Server provides a load balancing mechanism which enables the
server to work more effectively.
Load balancing process
1. When the time of a scheduled task arrives, active schedulers compete and the winner gets to
trigger the schedule.
2. The server that has the active scheduler selects a server in the cluster according to the load
balancing algorithm specified which can either be a built-in one or a customized one, and then
sends the task to the selected server.
Tip: You can also directly specify a server in a cluster to perform a scheduled task instead of using load
balancing. To do this, first make sure that the Identify Server Preference option is enabled in the Profile
dialog (Profile > Customize Server Preferences > Advanced > Identify Server Preference), and
then use the Specify a preferred server to run the task option in the General tab of the Schedule dialog
to specify a server manually.
Customized load balancing algorithm based on API
You can write your own load balancing algorithm based on the API included in JReport Server. Note
that if you create a load balancing algorithm with the API, it will take effect in place of other built-in
load balance algorithms you have set.
A demo DemoLoadBalancer.java has been provided to illustrate how to customize load balancing using
APIs. You can find it in <install_root>\help\server\en\samples.
Assuming that you have several clustered servers.
Take the following steps:
1. Compile DemoLoadBalancer.java to generate the class file as follows (when compiling
DemoLoadBalancer.java, you need to add JRESServlets.jar to the class path):
javac -classpath <install_root>\lib\JRESServlets.jar DemoLoadBalancer.java
2. Add DemoLoadBalancer.class to the class path of setenv.bat in the ADDCLASSPATH variable.
3. Add the parameter -Dloadbalance.custom_class=DemoLoadBalancer to the server's startup file
JRServer.bat which locates in <install_root>\bin. For example:
"%JAVAHOME%\bin\java.exe" -Dloadbalance.custom_class=DemoLoadBalancer "-Dinstall.
root=%REPORTHOME%" ...
4. Launch JRServer.bat, the customized loadbalancer DemoLoadBalancer will then be applied.
5. Submit some tasks for running. You will now find that these tasks are allocated to the clustered
servers based on the DemoLoadBalancer code.
Reference: For more details, see the jet.server.api.cluster.LoadBalancer interface in JReport Server
Javadoc located in <install_root>\help\server\en\api\jet\server\api\cluster.
Notes:
●
●
You can choose the load balancing type by setting the API method setLoadBalanceType() at jet.
server.api.admin.ClusterAdminService. For example, setting the API method as setLoadBalanceType
(0), setLoadBalanceType(1), setLoadBalanceType(2), and setLoadBalanceType(3) means respectively
the algorithm Least Current Report Sets (Min-load), Round Robin, Least Weighted Current Report
Sets (Weighted Min-load) and Random will be chosen.
For the load balancing algorithms: the server that holds the active scheduler selects from the servers
with the number of concurrently running report sets less than maximum number first. However, if all
servers are full, it will select from all of them.
Monitoring clustered servers
JReport Server Monitor is a standalone web-based application used for monitoring the overall
performance of JReport Server. JReport Server Monitor should be used together with JReport Server.
JReport Server Monitor contains the following main features:
●
Inspects the status of JReport Server.
●
Shows server performance statistics in Graph/Text mode.
●
Maintains JReport Server.
●
Creates profiling reports: performance reports and statistics reports.
Before you can use JReport Server Monitor to monitor servers in a cluster, the following steps must be
taken:
1. Download and install JReport Server Monitor.
2. Modify the server.properties file in <monitor_install_root>\bin to configure the IP address and
port information of one clustered server.
3. Copy rmi.auth from <server_install_root>\bin of the clustered server whose IP address and
port information you modified in the last step to <monitor_install_root>\bin, or remove rmi.
auth from <server_install_root>\bin of this clustered server.
4. Start JReport Server.
5. Launch MonitorServer.bat in <monitor_install_root>\bin to start JReport Server Monitor.
6. Access JReport Server Monitor using http://monitorhost:monitorport (default 8848), or by
clicking the Monitor link on the JReport Administration page.
Note: The Monitor link will not be displayed on the JReport Administration page when the web.monitor.
link.enable property in the server.properties file in <server_install_root>\bin is set to false. You can
specify the monitor port by setting monitor.jmx.htmladaptor.port in server.properties.
Related topics:
●
Monitoring JReport Server
Dispatching RMI Server Pages requests in multiple server environment
You can dispatch RMI Server Pages requests in multiple server environment, which includes JReport clustered and non-clustered server
environment.
Sample solution: dispatch RMI Server Pages requests in clustered server environment
This sample solution is to visit Server Pages JSPs remotely from WebSphere 7 to JReport Clustered Server. See the below diagram for
the structure:
You should be able to set up a similar service with any Java EE server by following the same procedure based on your preferred
application server documentation.
This demo dispatcher dispatches requests from different sessions to different JReport Servers according to Round-Robin algorithm. The
dispatcher has the Fail Over function, which will periodically check whether there is any unavailable server in the cluster. No request will
be dispatched to the unavailable server until the server is checked to be available again.
In general, the solution can be categorized into the following major steps:
1. Set up the server cluster.
2. Generate a WAR file containing Server Pages RMI JSP and dispatcher for WebSphere.
3. Deploy the WAR file to WebSphere.
4. Configure a clustered JReport Server.
In the following sections, we will explain clearly the exact operations you are expected to make in each of the main steps.
Setting up the server cluster
In this example we will set up two into the cluster using the Round-Robin algorithm.
192.168.0.1
192.168.0.2
Refer to Setting up and configuring a JReport Server cluster for the specific steps of setting up JReport Server in a cluster.
Generating a WAR file containing Server Pages RMI JSP and dispatcher for WebSphere
1. Build a JReport Server WAR file as defined by makewar.xml for remote integration. The generated WAR file is saved to the default
directory <install_root>\bin\distribute.
makewar.bat buildRemoteWar -Djrs.remote.host=192.168.0.1 -Djrs.remote.rmiport=1129 -Djrs.rmi.auth_file=C:
\JReport\Server\bin\rmi.auth
2. Compile the dispatcher DemoRemoteDispatcher.java stored in <server_install_root>\help\server\en\samples with
<server_install_root>\lib\JRESServlets.jar and <server_install_root>\lib\servlet.jar. The class file
DemoRemoteDispatcher.class and some other class files will be generated.
3. In the WAR file, drag the class files generated in step 2 to the classes\demodispatch folder, assuming that this folder has already
been created in the WAR file.
Deploying the WAR file to WebSphere
1. Start IBM WebSphere 7.
2. Open Administrative Console. You can open Administrative Console by using the Start Menu, or by using the URL: http://
hostname:9060/ibm/console, where hostname is host name or IP address, and 9060 is the port number.
3. After successfully logging in, expand the Applications node, and then click Install New Application.
4. Click Browse to select your .war file. In the Context root field, type a context path such as /servlet/ ("/servlet" is also ok). Click
Next.
5. Do not check any option in this page, and then click Next.
6. Type RMI_Server Pages in the Application name field. DO NOT check the Precompile JavaServer Pages files option. Click Next.
7. Do not make any changes in the next two pages.
8. Click Finish in the Summary page. The installing process may take several minutes, wait until the process is completed.
9. After the installation process is completed, click Save directly to the master configuration. Then in the Save directly to the
master configuration dialog, click Save.
10. This step is to configure the dispatcher and cluster server. Go to WebSphere Admin Control to add some properties for this
dispatcher. Expand Servers, go through Server Types > WebSphere application Servers > server1 > Process definition (in
the Server Infrastructure table > Java and Process Management) > Java Virtual Machine > Custom Properties (in the Additional
Properties table).
Click the New button to add properties for our demo dispatcher com.jinfonet.dispatcher.configFile and jrs.remote.dispatcher.
Note that the dispatcher DemoRemoteDispatcher.java will read the clustered server information in the hostport.properties file
like below:
rmiserver=192.168.0.1:1129
rmiserver=192.168.0.2:1130
...
11. If you have set up JReport Server in a cluster, you can append their host and port information to the above text file.
12. Click the Save link in the Messages table and click Save button to save the changes, and then restart WebSphere 7.
Configuring the JReport Server cluster
1. Make sure JReport Server has been started once in order that the server.properties file is generated.
2. Change server.properties file in <server_install_root>\bin as follows:
server.rmiserver.enable=true
server.rmiadminservice.enable=true
Then you can start JReport Server and access your Server Pages with a URL such as:
http://hostname:9080/remote/jinfonet/submitSchedPage.jsp?jrs.cmd=jrs.submit_schedule&jrs.catalog=/SampleReports/
SampleReports.cat&jrs.task_class=jet.server.schedule.jrtasks.PublishRptTask&jrs.launch_type=0&jrs.
to_version_pdf=true&jrs.to_version=true&jrs.report=/cheping/CustomerAnalysis.cls&jrs.auth_uid=admin&jrs.
auth_pwd=admin
JReport Security System
In JReport Server, there are two types of security mechanisms. One is to deal with report security, and
the other is to manage user permissions on JReport Server. This chapter discusses these two
mechanisms respectively.
●
Report security system
●
Server security system
Report security system
This section demonstrates the control of access to reports and to different subsets of data by means of
defining report security. In general, report security can be classified into three groups: cached report
bursting, record level and column level. After applying report security, an end user will only see what
he or she is allowed to see.
The following topics explain the report security at each level in detail:
●
Cached report bursting
●
Record-level security and column-level security
Cached report bursting
Security in a report is a kind of privileged control. JReport supports cached report bursting which
creates a security mechanism for controlling access to the report. By defining which groups of data are
available to which users, groups, or roles, report results are created for each user, role and group.
When a user accesses the report result, JReport checks the user, group and role of the user and
merges the groups of data in the report the user is authorized to see and displays it to the user.
Cached report bursting is implemented with these security properties on the group panel: Cascade,
Grant, Groups, and Roles. The feature enables different users to view different data groups according
to their access privileges. It also applies to nested groups.
Cached report bursting operates 2 different ways depending on the output format selected and if the
report is ran on-demand or scheduled.
●
●
Scheduled DHTML and HTML reports will create a report result with the report data for all possible
users. This allows the report to run with a single query to the DBMS to create the report for all users
in one pass. It is similar to report bursting, however, report bursting does not support DHTML and it
makes a separate physical report result for each user and the administrator needs to manually
restrict access to the results. When a user views the report result using cached report bursting,
JReport Server will use the security identifier of the user to restrict access to the data in the report to
the specific groups the security identifier is allowed to view. The end result is the same as the
bursting report in that the user sees only his data, the advantage to the administrator is there is only
one version result to manage.
On-Demand and schedule non-DHTML and non HTML reports build a separate data result for each
request containing only the data the security identifier allows. In this way, it is similar to a report
using Record-level Security; however, the setup mechanism is different.
For detailed descriptions about setting up cached report bursting in reports, see Setting up a cached
report bursting policy for a report in the JReport Designer User's Guide.
This section focuses on how to view and schedule a report that has cached report bursting with JReport
Server.
●
Viewing a report with cached report bursting
●
Scheduling a report with cached report bursting
●
Example: e-mailing billing reports
Viewing a report with cached report bursting
Since the control of report access is not possible without a user ID, the significance of this function is
only apparent after reports have been published to JReport Server and users access it using their
JReport User ID (security identifier).
When a client views a report with cached report bursting in JReport Server, the corresponding groups
will be displayed according to the security identifier. You can also advanced run reports with cached
report bursting in different formats, including DHTML, HTML, PDF, TEXT, Excel, PS, XML and Rich Text
Format (this feature does not support the RST and Applet formats).
To view a report with cached report bursting in JReport Server, the report must first be published to
the server from JReport Designer. For example, if in JReport Designer, the security for a report that is
grouped by the Customer_Region field has been set as follows:
●
The user ID admin has the privilege to view the CA and MN groups of the report.
●
The user ID jennifer has the privilege to view the BC group of the report.
Then,
1. Access the JReport Console page via a web browser with the user ID admin.
2. Browse to the report set that you are going to view.
3. Click the report set name, and you will then be able to view the CA and MN groups of the report.
4. If you log onto JReport Server with the user ID jennifer, you will then only be able to view the BC
group.
Note: When designing the report in JReport Designer, if the Cascade property is set to be false, the
specified group will only display its group header and footer.
Scheduling a report with cached report bursting
You can schedule a report with cached report bursting as a normal report. However, there are some
differences between the formats in which the report is to be published.
Scheduling to HTML/DHTML to version
When you schedule a task to publish a report with cached report bursting to the HTML and/or DHTML
formats to the versioning system, the scheduled result depends on the mode which is controlled by the
property server.enable.cachedreportbursting in server.properties in <install_root>\bin:
●
When server.enable.cachedreportbursting=true which is the default, the scheduled result
includes full data. Then when end users view the result, they will see only the data they are
privileged to see according to the cached report bursting setting in the report. 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.
Note: If the report is cached report bursting and RLS/CLS mixed, then when other users other
than the user who did the scheduling view the scheduled HTML or DHTML result, a blank page is
displayed.
●
When server.enable.cachedreportbursting=false, the scheduled result only contains the data
that the user who did the scheduling is allowed to see. This is primarily for compatibility with pre-8.2
versions of JReport.
Scheduling to e-mail
When you schedule a report with cached report bursting to publish it to e-mail, there is a slight
difference. JReport Server supports a multiple mail feature which enables sending the data results
directly to each user who is authorized to view the report.
Assuming that the catalog and report set containing the report have been published to JReport Server,
and two users admin and jennifer both have the permission to view the report. The following procedure
shows how to schedule a task on a report with cached report bursting to be published to e-mail.
1. Access the JReport Console page with user ID admin or jennifer.
2. Browse to the row that the report set is in, put the mouse pointer over the report set row and click
the Schedule button
on the floating toolbar.
3. In the General tab, select the report with cached report bursting.
4. In the Publish tab, switch to the To E-mail sub tab and then check This report has Cached
Report Bursting. E-mail the report to each specified user.
5. Type the subject and select the result format, then click Finish.
JReport Server will get the e-mail addresses from the user accounts, and then send the report result to
admin and jennifer, with the contents in accord with their access right to the report.
Note: Before publishing to e-mail, make sure you have input the e-mail addresses of the users when
configuring JReport Server. To do this:
1. Access the JReport Administration page, click Security on the system toolbar, and then select
User from the drop-down menu.
2. In the User panel, choose the user name that you want to edit in the User ID column, and then
click it. You can then type in the e-mail address of the user.
Scheduling to other formats
When scheduling a report with cached report bursting to other formats, the scheduled result only
contains the report data that the user who does the schedule is allowed to see.
Example: E-mailing billing reports
Sometimes, sending pertinent report data to corresponding mail recipients is required. JReport Server
allows you to send a scheduled report result to the e-mail addresses accordingly, based on the cached
report bursting settings of the report and the user information stored in JReport Server (e.g. e-mail
address information). Therefore, each recipient will only be able to view certain parts of the report
data. However, using e-mail information of server users is not reliable, since a user ID that is
appropriate for the report doesn't always exist in JReport Server. In cases like this, the mails will not
be sent successfully. The best way to resolve this is to use an external e-mail information source by
implementing the UserMailList and UserMailListFactory API that JReport provides.
JReport provides two interfaces for you to retrieve user and e-mail information from a customized
source:
●
●
jet.server.api.UserMailListFactory
Used to get the UserMailList instance implemented by the user.
jet.server.api.UserMailList
Used to get e-mail information from a customized source.
You can implement multiple classes of interface UserMailList. Each of them may refer to a particular
report. By using the getInstance() method in the jet.server.api.UserMailListFactory interface, you can
get one implementation of the UserMailList. For more information on these two interfaces, see JReport
Server API Documentation.
The following is a simple example:
1. Here, there is a Customers table with customer names and their e-mail addresses, as illustrated
below. You can design a report using this table and others. Then apply cached report bursting for
this report, so that later in the server side, you can schedule the report and send pertinent data to
different recipients saved in this Customers table.
2. In JReport Designer, design a report and set cached report bursting for it. In this case, group the
report data by Customer Name, and then grant a formula FPageLevel to it. The content of the
formula FPageLevel is as below:
@"Customer Name";
This means that only the records of the specified group will be shown at runtime when you enter
with different IDs -- Customer Name, in this example.
3. Then in the server side, implement the two interfaces to import the e-mail lists saved in the
Customers table. Specifically, implement the jet.server.api.UserMailListFactory interface. The
getInstance() method should be implemented in this interface to get an instance of jet.server.api.
UserMailList. Take the following implementation as a reference, where the implementing class
name of the UserMailList interface is formatted as "UserMailList_" + report + "_Impl", such as
"UserMailList_InvoiceReport_cls_Impl".
import jet.server.api.*;
import jet.cs.util.*;
public class DemoUserMailListFactoryImpl implements UserMailListFactory {
public UserMailList getInstance(ServerInfo serverInfo) {
if (serverInfo == null) {
return null;
}
String rpt = null;
try {
rpt = serverInfo.getTaskProperties().getProperty(APIConst.TAG_REPORT);
} catch (RptServerException e) {
e.printStackTrace();
return null;
}
rpt = rpt.substring(rpt.lastIndexOf("/") + 1);
rpt = rpt.replace('.', '_');
rpt = rpt.replace(' ', '_');
String clsName = "UserMailList_" + rpt + "_Impl";
try {
UserMailList mailList = (UserMailList)Class.forName(clsName).newInstance();
return mailList;
} catch (InstantiationException e1) {
e1.printStackTrace();
} catch (IllegalAccessException e1) {
e1.printStackTrace();
} catch (ClassNotFoundException e1) {
e1.printStackTrace();
}
return null;
}
}
4. Then implement the jet.server.api.UserMailList interface, which gets the user and e-mail
information from the customized data source. The following implementation gets the e-mail list
from the Customers table, which contains Customer Name and Customer E-mail columns.
import jet.server.api.*;
import java.util.*;
import java.sql.*;
public class UserMailList_InvoiceReport_cls_Impl implements UserMailList {
public static Hashtable userEmails = new Hashtable();
private String curRealmName = "defaultRealm";
public UserMailList_InvoiceReport_cls_Impl()
{
loadData();
}
private void loadData ()
{
try{
String jdbcDriver = "sun.jdbc.odbc.JdbcOdbcDriver";
DriverManager.registerDriver((Driver)Class.forName(jdbcDriver).newInstance());
Connection conn = DriverManager.getConnection("jdbc:odbc:jinfonet4");
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("select * from Customers");
String userName = null;
String userEmail = null;
while(rs.next()){
userName = rs.getString("Customer Name");
userEmail = rs.getString("Customer Email");
if (userEmail != null) {
userEmails.put(userName, userEmail);
}
}
}catch(Exception e){
e.printStackTrace();
}
}
public java.util.Enumeration getAllMailAddresses(String realmName){
if (realmName.equals(curRealmName)) {
return userEmails.elements();
}else{
return null;
}
}
public java.util.Enumeration getGroupMailAddresses
(String realmName, String groupName) {
if (realmName.equals(curRealmName) && userEmails.containsKey(groupName)) {
Vector groupEmails = new Vector();
groupEmails.addElement(userEmails.get(groupName));
return groupEmails.elements() ;
}else{
return null;
}
}
public java.util.Enumeration getRoleMailAddresses
(String realmName, String roleName) {
if (realmName.equals(curRealmName) && userEmails.containsKey(roleName)) {
Vector roleEmails = new Vector();
roleEmails.addElement(userEmails.get(roleName));
return roleEmails.elements() ;
}else{
return null;
}
}
public java.lang.String getMailAddress(String realmName, String userName) {
if (realmName.equals(curRealmName) && userEmails.containsKey(userName)) {
return (String)userEmails.get(userName);
}else{
return null;
}
}
}
5. Register the above classes to JReport Server before the server is started.
a. Add the parameter -Dcom.jinfonet.mailListFactory=UserMailListFactoryImplName to the
command line/batch file that starts JReport Server, where UserMailListFactoryImplName
indicates the implementation of the jet.server.api.UserMailListFactory interface.
In this case, the parameter should be -Dcom.jinfonet.
mailListFactory=DemoUserMailListFactoryImpl.
b. Add the path of the implementation classes to the class path of the command line/batch file.
6. Start JReport Server and then publish the report and catalog.
7. Schedule the report, publish to e-mail, check the option This report has Cached Report
Bursting. E-mail the report to each specified user. Provide the necessary information and
then submit the schedule.
The report will be processed and sent to the corresponding recipients with pertinent report data.
Record-level security and column-level security
The record-level security (RLS) and column-level security (CLS) of JReport Designer allow you to
control user access to different subsets of data and ensure that people only see what they are
supposed to see: record-level security allows you to define which records are to be revealed to any
given user, while column-level security allows you to define which report column is revealed to any
given user. This enables you to provide different users with accordingly different, but appropriate
contents. No matter to whom you need to provide information, a plant manager or thousands of
customers, JReport Designer allows you to control access to information according to your
requirements.
JReport Designer have two types of the security policies, one is a security policy based on a data
source connection (connection-scope security policy), and the other is a security policy based on a
single report (report-scope security policy).
●
●
Connection-scope security
You can build connection-scope security policies: where each security policy refers to a data source
connection in the catalog. If you want to implement the same security policy in a group of reports,
you can simply apply an existing security policy to the report, without having to repeatedly build
security information for each report. Both RLS and CLS can be connection-scope security.
Report-scope security
Additionally, record-level security can be of report scope, based on the security information file. That
is, you can use the security information file to set the security policies for a report. Report-scope
security policy doesn't support column-level security.
Record-level security can be applied simultaneously to both connection and report scopes. However, if
a report-scope security policy has already been applied to a report, it will override a connection-scope
security policy applied to the report. That is, report-scope security policies have a higher priority than
connection-scope security policies.
Running reports with record-level/column-level security
After setting up the security policy for a report in JReport Designer, you can then publish it to JReport
Server as normal. Then, when you log onto the server as different users, you will find that the security
settings are applied to the report. That is, different users will only see the data they are supposed to
see.
Note: The report designer defined users and roles may not be recognized by JReport Server. If your
security policies contain such users/roles, create these users and roles respectively in JReport Server,
and then in JReport Designer, synchronize the security information with JReport Server using the Merge
option.
See also Record-level and column-level security in the JReport Designer User's Guide for details about
how to set up record-level/column-level security policies and apply them to reports in JReport Designer.
Server security system
JReport Server supports two types of security mechanism. One is the default applied security of setting
permissions for users, groups and roles. The other is role based security in which permissions are
defined on roles only, and users and groups are mapped to roles.
The JReport Server security system is implemented based on a whole set of Security APIs, with which
you can customize your own implementation. JReport Server also provides two sets of implementations
for you to directly adopt. One is an implementation based on a database that makes the built-in
security system. The other is an LDAP implementation to be used when JReport Server can directly
access an LDAP server.
Accessing data by direct API implementation may result in many time-consuming IO operations. As a
result, the performance of the server security system may be lowered. In order to promote
performance, a cache system is added between the security service and the Security API. The cache
system is used to store security objects including users, groups, roles and ACLs for the security system.
The following is a diagram of the JReport Server security system structure:
Go through the following topics for details about the server security system:
●
Built-in security system
●
Role based security
●
Security cache system
●
Customized implementation of the Security API
●
Single sign-on
●
Using an LDAP server's security system
Built-in security system
JReport Server provides a built-in security system for you to set up and maintain security on it and
protect resources from inappropriate access by users.
The below diagram illustrates the built-in security structure in JReport Server:
And the below diagram illustrates the inherited relationship among User, Group and Role.
JReport Server offers these security features:
●
Realm
Realm is an abstract security concept, which hosts the resources and authentication entities on
JReport Server. There can be more than one realm on the server and each realm is independent from
others. The resources and authentication entities that reside in different realms are different.
At runtime, only one realm can be active and only the users and resources in the active realm are
accessible. A realm is identified by a unique name, which can contain any characters other than
forward slash (/) and backward slash (\).
The authentication entities consist of user accounts, group accounts and role accounts.
●
User
To use JReport Server, you must have a user account, which consists of a unique user name and
password. JReport Server verifies your identity when you type in your user name and password, and
then logs you on. If your user account has been disabled or deleted, JReport Server prevents you
from accessing the web services that it provides, in order to ensure that only valid users have access.
JReport Server comes with two built-in user accounts, admin and guest. The built-in user accounts
cannot be deleted. The Admin user account can neither be deleted nor disabled.
●
●
●
Group
The principle group, which represents an organization of user accounts, is available for managing
users. Users or groups can be added into a group as its child members, and therefore inherit the
resource and folder permissions from the group.
Role
Users must have certain user rights and permissions in order to perform tasks on resources. Roles,
which represent an aggregate of permissions, help you to efficiently assign the appropriate user
rights and permissions to users. Assigning roles to users gives the users all of the user rights and
permissions of the roles to perform their jobs with. A role can also be assigned to other groups or
roles, and thus groups or roles can inherit the permissions of other roles. JReport Server comes with
two built-in role accounts, administrators and everyone. The built-in role accounts cannot be deleted.
The administrator role account can neither be deleted nor disabled.
Permission
Permissions, associated with resources and folders, are the rules that are granted to users to control
their access to the resources and folders.
Permissions in JReport Server include:
●
●
Permission
Description
Visible
Allows or denies viewing object names in the resource tree or version table, such as
folders, resources, and archive versions.
Read
Allows or denies viewing object properties, versions, and, if it is a folder, folder
content.
Write
Allows or denies publishing folders and resources, changing the properties (not
including permission settings) of the objects in the resource tree or version table,
such as folders, resources, and archive versions, and modifying version table settings.
Delete
Allows or denies deleting objects in the resource tree or version table, such as
folders, resources, and archive versions.
Execute
Allows or denies running resources in normal and Advanced mode (report set type
resources only).
Schedule
Allows or denies submitting resources to schedules (report set type resources only).
Grant
Allows or denies granting permissions to other users, groups or roles. Users, groups
or roles that have obtained the Grant permission are also endowed with the other
seven permissions - Visible, Read, Write, Delete, Execute, Schedule, and Update
Status, and can grant these seven permissions except the Grant permission itself.
Update
Status
Allows or denies updating report set status, and if it is a folder, the status of report
sets in the folder.
Privilege
Privilege is a mode for managing permissions. It can be used to manage different access permissions
unrelated with nodes. JReport Server offers two types of privileges for users: Publish and Advanced
Properties. Users that are granted the Publish privilege will be able to publish resources to JReport
Server, while users that have the privilege of Advanced Properties are allowed to view advanced
information of version properties such as catalog connections and report set related resources.
Alias
JReport Server organizes file and directories into a Resource Tree. Aliases are used to provide
different "views" of a tree for different users to enter the Resource Tree. For example, you may set
an alias resource tree (based on the resource tree) for Tanya, so that she can only see the market
resource node and thus can directly walk into the report set file she is interested in. In summary, an
alias is a combination of users and resource nodes.
To manage JReport Server's built-in security, you must be a member of the administrator role in order
to access the JReport Administration page.
Related topics:
●
Managing security
Role based security
In addition to the security system based on users, groups and roles, JReport Server also supports a
role based security system in which permissions are defined on roles only, and users and groups are
mapped to roles.
To switch to the role based security system, you can use either of the following two methods:
●
Check the Role Based Authorization option on the JReport Administration page > Configuration >
Advanced panel.
By default, the option is unchecked and the security mechanism of setting permissions for users,
groups and roles is applied. If the option is checked, the Permission Setting UI Displays option will be
hidden automatically, since it is used to control UI display and is of no use in the role based security
environment.
●
In the server.properties file, set server.rolebased.authorization to true.
In this case, the following three properties will not take effect since they control UI display of setting
user/group/role permissions:
server.ui.set_permissions.group
server.ui.set_permissions.role
server.ui.set_permissions.user
If the role based security system is used, in both the JReport Administration page (port 8889 by
default) and Console page (port 8888 by default), when you set permissions of a resource node, there
are only roles displayed. Role only based security is similar to Java EE security where the developer
assigns roles and during deployment users and groups can be mapped to the roles so if you are already
using Java EE security, this would be the best method.
Security cache system
The security cache system temporarily stores security objects such as users, roles, groups and ACLs.
ACL, short for Access Control List, is the core object of the security authorization system, and is in
charge of storing and checking principal permissions. When JReport Server requires information from
the security system, it can fetch it from the cache for better performance.
The cache system caches not only security objects for the built-in security system, but also those
implemented by the Security API from the external security system. It caches security information in
the security data. If the security service needs security information, it will fetch it from the security
data. However, if the security data cannot find the information, it will request it from the Security API,
and then cache it in the cache system. When the security information is modified in the security
system, the Security API is invoked directly in order to modify the security data.
Note: There is a special interface SecurityListener in the cache system, through which the cache is
noted to update the cached information. It is recommended that you invoke it when you access the
external security system, so as to synchronize security data between the cache system and the
external security system.
The following focuses on the configuration and synchronization of the security cache system:
●
Configuration of the security cache system
●
Synchronization of the security cache system
Configuration of the security cache system
The security cache system enables you to define the maximum number of users, roles, groups and ACL objects that
can be cached. There are three ways in which you can customize the security cache system as explained below:
Configuring by editing the server.properties file
Edit the following four properties:
●
●
●
●
server.security.user.cache.size
This should be an integer value. Its value indicates the maximum number of user objects that the security cache
can store. The default value is 1000.
server.security.role.cache.size
This should be an integer value. Its value indicates the maximum number of role objects that the security cache
can store. The default value is 50.
server.security.group.cache.size
This should be an integer value. Its value indicates the maximum number of group objects that the security
cache can store. The default value is 50.
server.security.protection.cache.size
This should be an integer value. Its value indicates the maximum number of ACL objects that the security cache
can store. The default value is 100.
For instance,
●
If server.security.user.cache.size=1000, the cache can then store at most 1000 user objects.
●
If server.security.role.cache.size=100, the cache can then store 100 role objects.
●
If server.security.group.cache.size=100, the cache can then store 100 group objects.
●
If server.security.protection.cache.size=100, the cache can then store 100 ACL objects.
Configuring from the JReport Administration page
You must be a member of the administrator role in order to access the JReport Administration page.
1. Log onto the JReport Administration page, click Configuration on the system toolbar, and then select Cache
from the drop-down menu.
2. In the Cache panel, switch to the Security Cache tab, four options are provided for specifying the cache size:
❍
❍
❍
❍
User Cache Size
The maximum number of user objects that the security cache can store. Should be an integer value.
Role Cache Size
The maximum number of role objects that the security cache can store. Should be an integer value.
Group Cache Size
The maximum number of group objects that the security cache can store. Should be an integer value.
Protection Cache Size
The maximum number of ACL objects that the security cache can store. Should be an integer value.
3. When done, click Save to apply the settings.
Configuring using the API method
Invoke the following methods in the API class jet.server.api.admin.cfg.ConfigurationAdvanced:
/**
* Set the security user cache's size
* Setting the size of the cache to zero or negative means closing the security user cache.
* @param size
*/
public void setSecurityUserCacheSize(int size);
/**
* Get the size of the security user cache
* @return the size of the security user cache
*/
public int getSecurityUserCacheSize();
/**
* Set the size of the security role cache
* Setting the size of the cache to zero or negative means closing the security role cache
* @param size
*/
public void setSecurityRoleCacheSize(int size);
/**
* Get the size of the security role cache
* @return the size of the security role cache
*/
public int getSecurityRoleCacheSize();
/**
* Set the size of the security group cache
* Setting the size of the cache to zero or negative means closing the security group cache
* @param size
*/
public void setSecurityGroupCacheSize(int size);
/**
* Get the size of the security group cache
* @return the size of the security group cache
*/
public int getSecurityGroupCacheSize();
/**
* Set the size of the security protection cache
* Setting the size of the cache to zero or negative means closing the security protection cache
* @param size<
*/
public void setSecurityProtectionCacheSize(int size);
/**
* Get the size of the security protection cache
* @return the size of the security protection cache
*/
public int getSecurityProectionCacheSize();
Synchronization of the security cache system
A synchronization system has been provided for synchronizing JReport Server's security system with
your external security systems. When the security cache system receives a security information
modification event, it will then fetch the security information from the API and update the cached
information.
The following is a diagram of the synchronization system mechanism:
There are two ways to invoke the synchronization system. The first is to modify the security
information on our Server web UI (red line), and the second is to modify the external security system
(blue line).
Customized implementation of the Security API
JReport Server provides a set of Security APIs which you can implement in order to build your preferred security
system. This section discusses the basic rules and implementation of the Security API.
Partial Implementation of the Security API
The Security API can meet various requirements for seamlessly integrating the JReport security system into an existing
external security system.
By implementing all interfaces, you provide full functions to the JReport Server security system. However, if you do not
want to provide a complete security system to your JReport Server, but only to use part of the functions available, you
can achieve this by implementing the interfaces that meet your requirements.
Here are some examples:
Example 1
Requirements: You only want to customize authentication and authorization.
The following interfaces are required to be implemented:
●
AuthenticationProvider
●
AuthorizationProvider
Example 2
Requirements: You want to customize authentication and users, while the JReport Server maintains other functions of
the security system.
The following interfaces are required to be implemented:
●
AuthenticationProvider
●
UserProvider
Example 3
Requirements: For CLS/RLS scenario, you must provide user/role information.
The following interfaces are required to be implemented:
●
AuthenticationProvider
●
UserProvider
●
RoleProvider
●
RoleUserRelationProvider
Implementing the Security API using an .xml file
You can specify a customized implementation of the Security API in a .xml file. The JReport Server loads classes
according to this file.
The file is customizedAPI.xml in <install_root>\bin. Specify the content in the .xml file as below:
<?xml version="1.0" encoding="UTF-8"?>
<jreport-customized-api>
<security>
<authentication-provider>com.customer.security.AuthenticationProviderImpl</authentication-provider>
<authorization-provider>com.customer.security.AuthorizationProviderImpl</authorization-provider>
<user>
<provider>com.customer.security.user.UserProviderImpl</provider>
<permission-provider>com.customer.security.user.UserPermissionProviderImpl</permission-provider>
<privilege-provider>com.customer.security.user.UserPrivilegeProviderImpl</privilege-provider>
</user>
<group>
<provider>com.customer.security.group.GroupProviderImpl</provider>
<permission-provider>com.customer.security.group.GroupPermissionProviderImpl</permission-provider>
<privilege-provider>com.customer.security.group.GroupPrivilegeProviderImpl</privilege-provider>
</group>
<role>
<provider>com.customer.security.role.RoleProviderImpl</provider>
<permission-provider>com.customer.security.role.RolePermissionProviderImpl</permission-provider>
<privilege-provider>com.customer.security.role.RolePrivilegeProviderImpl</privilege-provider>
</role>
<relation>
<role-group>com.customer.security.relation.RoleGroupRelationProviderImpl</role-group>
<role-user>com.customer.security.relation.RoleUserRelationProviderImpl</role-user>
<group-user>com.customer.security.relation.GroupUserRelationProviderImpl</group-user>
</relation>
</security>
</jreport-customized-api>
Rules for applying customized Security API
The following are rules for applying customized Security API:
●
AuthenticationProvider is a core interface and must be implemented. It is first loaded when JReport Server loads a
customized Security API.
There are dependency relationships among some interfaces:
●
Interfaces PermissionProvider and PrivilegeProvider depend on the corresponding principal interface provider. For
example, the prerequisite for applying a customized UserPermissionProvider is that a customized UserProvider has
been applied.
Interface RelationProvider depends on both the corresponding principal interfaces. For example, the prerequisite for
applying a customized GroupUserRelationProvider is that a customized UserProvider and GroupProvider have been
applied.
●
If you partly implement the Security API, the JReport Server will automatically provide implementation of some
missed but required interfaces, in order to build an integrated security system. Below are the rules:
❍
❍
●
If customized implementations of Providers have not been applied, the JReport Server will apply built-in
implementations of these Providers, including: AuthorizationProvider, UserProvider, GroupProvider, RoleProvider,
GroupUserRelationProvider, RoleGroupRelationProvider, and RoleUserRelationProvider.
If you have applied a PermissionProvider or PrivilegeProvider, but not applied an AuthorizationProvider, the JReport
Server will apply the built-in implementation of the AuthorizationProvider.
If you have applied an AuthorizationProvider, but not applied a PermissionProvider or PrivilegeProvider, for example,
UserPermissionProvider or UserPrivilegeProvider, the JReport Server will not apply the built-in implementation of the
PermissionProvider or PrivilegeProvider.
Notes:
●
For details about the Security APIs, see the jet.server.api.custom.security package in JReport Server Javadoc in
<install_root>\help\server\en\api.
Demo references available in <install_root>\help\server\en\samples:
●
❍
❍
●
●
DemoAuthenticationProvider.java
Demo for implementation of the jet.server.api.custom.security.AuthenticationProvider interface.
DemoAuthorizationProvider.java
Demo for implementation of the jet.server.api.custom.security.AuthorizationProvider interface.
In V8, two new methods addSecurityListener() and isEnableEdit() are added into the API jet.server.api.custom.
security.AuthenticationProvider. If you have upgraded your JReport Server from V7 to a higher version, and have
applied customized implementation of AuthenticationProvider in V7, you need implement the new methods in the API.
JReport Server provides the ability to use customized user authentication scheme by the implementation of the two
interfaces jet.server.api.custom.security.AuthenticationProvider and jet.server.api.custom.security.
AuthorizationProvider. In addition, the way of implementing the deprecated Security API interface jet.server.
userman.UserAuthenticator is also supported and you can refer to the following demos for reference, which are
located in <install_root>\help\server\en\samples:
❍
❍
If you want to use JReport Server as a servlet in your system, see Demo1UserAuthenticator.java.
If you want to use your user data, you need load your data in the structural method. See Demo2UserAuthenticator.
java, Demo2Realm.java, Demo2User.java and demo2data.txt for reference.
Single sign-on
When JReport Server is integrated into your system, it will implement a security check. If your system
also checks security, you will have to pass through authentication twice. To deal with this problem,
JReport Server provides Single Sign-On APIs for you to pass login information from your external
security system to the JReport Server security system in order to avoid a second login requirement by
JReport Server after you have logged into your external system. You can either disable the JReport
Server security check or customize security for JReport Server by implementing the interface - jet.
server.api.http.HttpExternalAuthorized.
Interface ExternalAuthorized
The interface jet.server.api.ExternalAuthorized maintains externally authorized user sessions. It has
the following methods:
●
●
●
getExternalAuthorizedUser
Gets and returns the externally authorized user ID. The user ID should be a valid user ID of the
report server. Null will be returned if the authorized user info cannot be obtained from the userInfo
object.
askInvalidate
Asks whether to invalidate an externally authorized user session (i.e. the session has expired). The
report server calls this method before the session is invalidated. The server does not call this method
if a user logs out.
notifyLogout
Notifies an external authorized user session logout. The report server calls this method after user
logout.
Interface HttpExternalAuthorized
The interface jet.server.api.http.HttpExternalAuthorized extends jet.server.api.ExternalAuthorized. By
this interface, the report server gets the user ID that is authorized by an external authenticator. It has
the following methods:
●
●
getExternalAuthorizedUser
Gets the externally authorized user ID. Returns null if the authorized user info cannot be obtained
from the HttpServletRequest object. The user ID should be a valid user ID of the report server.
handleUnAuthenticatedRequest
Handles unauthenticated requests. The report server calls this method before sending the HTTP
unauthorized response (HTTP 401) to the client. This method allows you to send your response to the
client to handle an unauthenticated request. If this method returns true, the report server will send
the HTTP unauthorized response (HTTP 401) to the client. Otherwise the report server does nothing.
Implementation
For implementation in an integration environment, the following steps are required:
1. Write your HttpExternalAuthorized implementation.
2. Compile Java classes. Compiling requires the library JRESServlets.jar, which can be found in WEBINF\lib directory.
3. Create a folder classes in the WEB-INF folder and then add the authentication classes in the
classes folder.
4. Define the system property jrs.httpExternalAuthorized with your implementation by -D parameter.
For example, assuming that the implementation of this interface is com.mycorp.
HttpExternalAuthorizedImpl.class:
-Djrs.httpExternalAuthorized=com.mycorp.HttpExternalAuthorizedImpl
Demos
The following demo programs are provided to illustrate the implementation of the
HttpExternalAuthorized interface. These demos are available in <install_root>\help\server\en
\samples.
●
●
●
CustomHttpExternalAuthorized.java
Demo for implementation of HttpExternalAuthorized.
CustomServlet.java
Demo to set implementation of HttpExternalAuthorized into the report server.
customViewReport.jsp.zip
The following demos are contained in the zip:
❍
❍
❍
❍
customNoAuth.jsp
Demo to set implementation of HttpExternalAuthorized into the report server. No external
authorized user name is submitted in this demo.
customParamAuth.jsp
Demo to set implementation of HttpExternalAuthorized into the report server. External authorized
user name is submitted by parameter in this demo.
customSessionAuth.jsp
Demo to set implementation of HttpExternalAuthorized into the report server. External authorized
user name is submitted by http session in this demo.
customViewReport.jsp
Demo to work together with customNoAuth.jsp, customParamAuth.jsp and customSessionAuth.jsp
to view a report.
Using an LDAP server's security system
The server security system can run two modes in which you can use an LDAP server's security system.
The first is importing mode. In this mode, if you want to use the LDAP feature, you will have to import
the security information from an LDAP server. The second is non-importing mode. With this mode,
JReport Server can access an LDAP server and obtain LDAP security information directly without having
to import it.
Below is a diagram which illustrates these two working modes:
JReport Server can access an LDAP server using the LDAP implementation of the Security API (blue
line), and import security information from an LDAP server into the built-in security system (red line).
To use an LDAP server's security system, you should first enable JReport Server to adapt to a directory
server by configuring the settings in the Server tab (accessed by selecting Configuration > LDAP on
the JReport Administration page), making sure that the Enable LDAP Support option has been checked.
Notes:
●
●
Make sure that the Directory Manager DN is a user with prior LDAP Server permission, and who can
retrieve other LDAP users.
Make sure that the users and groups you want to query and import into JReport Server belong to the
organization you typed into the Distinguished Name field.
Pick a topic from the following to get more:
●
Examples of LDAP server configuration
●
SSL support in LDAP system
●
Limitations of LDAP support
●
Using LDAP server security information by importing
●
Using LDAP server security information via the LDAP implementation of the Security API
Examples of LDAP server configuration
Six directory servers are currently supported. These are:
●
Novell Directory Server
●
Microsoft Site Server
●
iPlanet Directory Server
●
Active Directory Advanced Server
●
Lotus Domino Server
●
OpenLDAP Directory Server
If you need access to a different directory server, contact your JReport Sales Representative. New
servers are frequently being added.
The following sections provide examples of settings which enable JReport Server to adapt to these
directory servers. They are as follows:
●
Example 1: Configuration for adapting to a Novell Directory Server
●
Example 2: Configuration for adapting to a Microsoft Site Server
●
Example 3: Configuration for adapting to an iPlanet Directory Server
●
Example 4: Configuration for adapting to the Active Directory Advanced Server
●
Example 5: Configuration for adapting to a Lotus Domino Server on NT
●
Example 6: Configuration for adapting to an OpenLDAP Directory Server
Example 1: Configuration for adapting to a Novell Directory Server
If you want to get all users and groups from the orgunit organizational unit, you should follow the steps
below to configure your Server tab on the JReport Administration page > Configuration > LDAP panel:
1. Select Novell Directory Server from the Select LDAP Server drop-down list, and then click Load
Settings. The settings of the Novell Directory Server will then be loaded.
2. Check the Enable LDAP Support checkbox, and input the following information:
❍
LDAP URL: ldap://IP address or host name of your Novell Directory Server (for example:
ldap://127.0.0.1)
❍
LDAP Server Port: 389
❍
Root Entry: o=the name of the root (for example: o=myorg)
❍
Directory Manager DN: cn=user name of the directory manager,o=context (for example:
cn=admin,o=context)
❍
Password: the password of the Directory Manager (for example: 1234)
❍
Encryption Type: None
❍
Import LDAP Groups to: Group
❍
User Schema
■
■
❍
Distinguished Name:ou=the name of the organization unit where you want to perform a
search for users (for example: ou=orgunit)
Filter: (&(cn=the filter criteria that you want to set )(objectclass=person)) (for example: (&
(cn=*)(objectclass=person)))
Group Schema
■
■
■
Distinguished Name: ou=the name of the organization unit that you want to perform a search
for groups (for example: ou=orgunit)
Filter: (&(cn=the filter criteria that you want to set )(objectclass=groupofuniquenames)) (for
example: (&(cn=*)(objectclass=groupofuniquenames)) )
Admin Group: The name of the group you want to add to the Admin group (for example:
develop)
3. You can test the connection settings by clicking the Test Connection button, get the query result
of the users specified in the option Filter by clicking the Query User button, and get the query
result of groups specified in the option Filter by clicking the Query Group button.
4. Click Save to save all settings.
Example 2: Configuration for adapting to a Microsoft Site Server
Follow the steps below to configure your Server tab on the JReport Administration page > Configuration
> LDAP panel. You can get all users from the members organizational unit and all groups from the
groups organizational unit.
1. Select Microsoft Site Server from the Select LDAP Server drop-down list, and then click Load
Settings. The settings of the Microsoft Site Server will be loaded.
2. Make sure that the Enable LDAP Support checkbox is selected, and input the following
information:
❍
LDAP URL: ldap://IP address or host name of your Microsoft site Server (for example:
ldap://127.0.0.1)
❍
LDAP Server Port: 1003
❍
Root Entry: o=test
❍
Directory Manager DN: cn=administrator,ou=members,o=test
❍
Password: test
❍
Encryption Type: None
❍
Import LDAP Groups to: Group
3. You can test connection settings by clicking the Test Connection button, get the query result of
users specified in the option Filter by clicking the Query User button, and get the query result of
groups specified in the option Filter by clicking the Query Group button.
4. Click Save to save all settings in this tab.
Example 3: Configuration for adapting to an iPlanet Directory Server
Follow the steps below to configure your Server tab on the JReport Administration page > Configuration
> LDAP panel. You can get all users in the people organizational unit and all groups in the groups
organizational unit.
1. Select iPlanet Directory Server from the Select LDAP Server drop-down list, and then click Load
Settings. The settings of iPlanet Directory Server will then be loaded.
2. Make sure that the Enable LDAP Support checkbox is selected, and input the following
information:
❍
LDAP URL: ldap://IP address of your iPlanet Directory Server
❍
LDAP Server Port: 389
❍
Root Entry: dc=mailbj,dc=jinfonet,dc=com
❍
Directory Manager DN: cn=directory manager
❍
Password: jinfonet
❍
Encryption Type: None
❍
Import LDAP Groups to: Group
3. You can test the connection settings by clicking the Test Connection button, get the query result
of users specified in the option Filter by clicking the Query User button, and get the query result
of groups specified in the option Filter by clicking the Group Query button.
4. Click Save to save all the settings in this tab.
Example 4: Configuration for adapting to the Active Directory Advanced Server
Follow the steps below to configure your Server tab on the JReport Administration page > Configuration
> LDAP panel. You can get all users and groups from the myorg organizational unit.
1. Select Win2000 Active Directory from the Select LDAP Server drop-down list, and then click
Load Settings. The settings are then cleared and you can input your information.
2. Make sure that the Enable LDAP Support checkbox is selected, and input the following
information:
❍
LDAP URL: ldap://IP address of your Windows 2000 Advanced Server
❍
LDAP Server Port: 389
❍
Root Entry: DC=testad,DC=local
❍
Directory Manager DN: CN=administrator,CN=Users,DC=testad,DC=local
❍
Password: 1234
❍
Encryption Type: None
❍
Import LDAP Groups to: Group
❍
User Schema
❍
■
User Attribute Name: cn
■
User Common Name: userPrincipalName
■
User Password: userPassword
■
Distinguished Name: ou=myorg
■
Filter: (&(cn=*)(objectclass=person))
Group Schema
■
Group Common Name: cn
■
Group Member Type: member
■
Distinguished Name: ou=myorg
■
Filter: (&(cn=*)(objectclass=group))
3. You can test the connection settings by clicking the Test Connection button, get the query result
of users specified in the option Filter by clicking the Query User button, and get the query result
of groups specified in the option Filter by clicking the Group Query button.
4. Click Save to save all settings in this tab.
Example 5: Configuration for adapting to a Lotus Domino Server on NT
By following the steps below to configure your Server tab on the JReport Administration page >
Configuration > LDAP panel, you can get all users and groups from the developer organization unit.
1. Select Lotus Domino on NT from the Select LDAP Server drop-down list, and then click Load
Settings. The settings are then cleared and you can input your information.
2. Make sure that the Enable LDAP Support checkbox is selected, and input the following
information:
❍
LDAP URL: ldap://IP address of your Lotus Domino Server
❍
LDAP Server Port: 389
❍
Root Entry:
❍
Directory Manager DN: cn=admin,o=jtotal
❍
Password: 123456
❍
Encryption Type: None
❍
Import LDAP Groups to: Group
❍
User Schema
❍
■
User Attribute Name: uid
■
User Common Name: cn
■
User Password: userPassword
■
Distinguished Name: ou=developer, o=jtotal
■
Filter: (&(cn=*)(objectclass=person))
Group Schema
■
Group Common Name: cn
■
Group Member Type: member
■
Distinguished Name:
■
Filter: (&(cn=*)(objectclass=groupofnames))
3. You can test the connection settings by clicking the Test Connection button, get the query result
of users specified in the option Filter by clicking the button Query User, and get the query result
of groups specified in the option Filter by clicking the Query Group button.
4. Click Save to save all settings in this tab.
Example 6: Configuration for adapting to an OpenLDAP Directory Server
By following the steps below to configure your Server tab on the JReport Administration page >
Configuration > LDAP panel, you can get all users and groups from the developer organization unit.
1. Select OpenLDAP Directory Server from the Select LDAP Server drop-down list, and then click
Load Settings. The settings are then cleared and you can input your information.
2. Make sure that the Enable LDAP Support checkbox is selected, and input the following
information:
❍
LDAP URL: ldap://IP address of your OpenLDAP Directory Server (for example:
ldap://127.0.0.1)
❍
LDAP Server Port: 389
❍
Root Entry: dc=openldap, dc=ldaptest
❍
Directory Manager DN: cn=Manager,dc=openldap,dc=ldaptest
❍
Password: 123456789
❍
Encryption Type: None
❍
Import LDAP Groups to: Group
❍
User Schema
■
User Attribute Name: uid
■
User Common Name: cn
■
User Password: userPassword
■
❍
Distinguished Name: ou=members
Filter: (&(uid=*)(objectclass=person))
Group Schema
■
Group Common Name: cn
■
Group Member Type: uniqueMember
■
Distinguished Name: ou=groups
■
Filter: (&(cn=*)(objectclass=groupofuniquenames))
■
Admin Group:
3. You can test the connection settings by clicking the Test Connection button, get the query result
of users specified in the option Filter by clicking the Query User button, and get the query result
of groups specified in the option Filter by clicking the Query Group button.
4. Click Save to save all settings in this tab.
SSL support in LDAP system
JReport Server's LDAP system supports SSL when connecting to an LDAP server for obtaining security
information.
Solving the wrong connection port type problem
JReport implements a method in the security system to solve the wrong connection port type problem.
The wrong connection port type problem in SSL protocol
If you use an SSL socket to connect to a server on a port that is not using SSL, or if you use a plain
socket to connect to a server's SSL socket, your program will hang. This is a characteristic of the SSL
protocol.
Method to avoid the wrong connection port type problem
Use a main thread to create a child thread for connecting to the LDAP server. The main thread can wait
on the child thread for a period of time-- the socket timeout time (This time can be set by users). If the
child thread creates an LDAP connection successfully, it will notify the main thread, and the program
will continue to run. However, if the child thread hangs due to using the wrong port type, the main
thread will only need to wait until the socket timeout time has been reached and can continue to run.
A Parameter setting in the method
There is an important parameter in this method: the socket timeout time. Since the connection time
varies with the user's network environment, it is better to set it in LDAPProperties.xml: modify the
element env-socketTime's value before the server is started. Its default value is 10, which means that
the socket timeout time is 10 seconds. You can modify this value according to your network
environment.
About SSL certificate store in JReport Server
Since JNDI uses the default SSL provider, the certificates will be checked by JSSE's default
TrustManager: X509TrustManager. If the TrustManager does not accept them, JReport Server will store
the SSL certificates into another key store file. This file is placed in <install_root>\properties
\LDAPKeyStore.keystore. The password to access the file is jinfonet. You can also use -D parameters
to specify another file and password. For instance, if you want to add the certificates into: C:\certs
\certs.keystore, and use the password test, you should add the following parameters to JReport
Server's startup file:
"-Djavax.net.ssl.trustStore= C:\certs\certs.keystore"
"-Djavax.net.ssl.trustStorePassword=test"
Note: The LDAP service provider uses JSSE for its SSL support. JSSE is available as part of Java 2
SDK, v1.4. As for earlier versions of the Java platform, you can turn to http://java.sun.com/products/
jsse for information. To use JSSE on a platform earlier than Java 2 SDK, v1.4, first install JSSE, and
then configure a JSSE provider either by updating the JAVA_HOME/lib/security/java.security file with
the provider or by adding the provider programmatically. Here JAVA_HOME refers to the directory
where the Java Runtime (JRE) software has been installed. Detailed steps can be found in the JSSE
Reference Guide.
Limitations of LDAP support
In the LDAP page, sessions are used to remember passwords and the status of the remember password
checkbox. Due to this, when the session exceeds the time limit, there are some limitations:
●
●
If the Load Settings button is clicked, and the session has expired, the user must log onto JReport
Server again. After that, the retained password will be lost.
If the session expires due to idling, when logging back onto JReport Server again, the retained
password will be lost.
Using LDAP server security information by importing
LDAP (Lightweight Directory Access Protocol) is a lightweight client-server protocol for accessing
directory services. With LDAP support, JReport Server enables you to import users/groups from
directory servers.
To import LDAP security server information, on the JReport Administration page, click Configuration >
LDAP > Import. In the Import tab, you can use LDAP users and groups in JReport Server by
importing them. In addition, in order to have the most current security information, you can
synchronize the security information from your local server with that of the LDAP server. To do this, on
the JReport Administration page, click Configuration > LDAP > Synchronize, where you can
predefine a role map for the imported LDAP users.
However, if you have checked Enable Auto-Import of Users from LDAP Server, users will automatically
be imported into JReport Server when they log in for the first time. The Enable LDAP Support and
Enable Auto-Import of Users from LDAP Server options in the Configuration > LDAP > Server tab work
together. The former determines whether an imported LDAP user can be used in JReport Server, and
the latter determines whether LDAP users can be imported automatically, as shown in the following
table:
=Checked;
=Unchecked
Enable
LDAP
Support
Local User
Enable
AutoImport of
Users
from
LDAP
Server
Can
be
used
YES
YES
YES
YES
Imported
LDAP User
YES
YES
NO
NO
NoneImported
LDAP User
YES
NO
NO
NO
Using LDAP server security information via the LDAP implementation of the Security API
JReport Server can access an LDAP server directly using the LDAP Security API implementation. To achieve
this, you will need to turn on the LDAP security providers. There are three approaches to achieve this:
●
Configuring on the JReport Administration page
You must be a member of the administrators role in order to access the JReport Administration page. To
use the LDAP security providers, on the JReport Administration page, click Configuration > LDAP >
Server, then check Enable Direct Authentication to LDAP Server.
●
Configuring by API method
Invoke the following two methods in the interface ConfigurationLDAPServer:
/**
* Specifies whether or not the Server security system uses the LDAP providers.
* @return Returns true if using none imported LDAP support, otherwise returns false.
*/
public boolean isEnableNoneImportedLDAPSupport();
/**
* Specifies whether or not the Server security system uses none imported LDAP support.
* @param isEnableNoneImportedLDAPSupport Set this parameter to true if the Server
security system uses none imported LDAP support, otherwise set it to false.
*/
public void setEnableNoneImportedLDAPSupport (boolean isEnableNoneImportedLDAPSupport);
●
Editing the LDAP XML configuration file
Specify the following property in the LDAP XML configuration file:
<env-enableNoneImportedLDAPSupport>true</env-enableNoneImportedLDAPSupport>.
If the value is true, JReport Server security system will then use the LDAP providers. The default value of
this property is false.
Note: In order to use LDAP providers, a valid admin user is required to manage the JReport Server. The
following are rules for checking whether or not a user is an admin user:
●
●
Whether or not the user is a member of the LDAP admin group. The LDAP admin group is a configuration
option in the LDAP configuration XML file.
Whether or not the user is a member of the administrators role. The user can be granted the role by a
role map.
A user that meets one of these two rules is regarded as an admin user, and is thus allowed to access the
JReport Administration page.
Troubleshooting LDAP configuration
If you encountered any problems during LDAP configuration, refer to the following for help.
LDAP configuration failure resulting in re-login failure as an admin user
An admin user may fail to carry out LDAP configuration properly, and thus then cannot log onto the
JReport Administration page to manage the server. If this happens, you should follow the below steps:
1. Modify the property in the LDAP configuration XML file LDAPProperties.xml in <install_root>
\properties as below to turn off the Enable Direct Authentication to LDAP Server option:
<env-enableNoneImportedLDAPSupport>false</env-enableNoneImportedLDAPSupport>
2. Restart JReport Server and log in as a built-in security admin user to correct the LDAP configuration.
Warning messages in the advent of incorrect LDAP configuration
Apart from the notes offered on the JReport Administration page > Configuration > LDAP panel, prompt
warning information is also provided in order to cope with incorrect LDAP configuration. The server system
will prompt warning messages in the following cases:
●
If you do not fill in the Admin Group field or specify an admin group.
●
If the admin group specified does not hold a user.
●
If the admin group specified does not exist in the LDAP server.
Configuring
Once JReport Server has been installed and you have prepared the reporting environment, you can
then start it. However, you may find that JReport's default port number conflicts with an existing one in
your computer, or that you need to generate log files for analyzing a problem. In these cases, you will
need to configure your server. Before or while running the server, you can configure it according to
your systems.
The configuration work can be performed in two ways: via the JReport Server UI or via configuration
files. Some server UI options and properties in the configuration files are mapped and both function the
same way. For these types of settings, you can take either way to do the configuration. Appendix 4:
Mapping list of server UI options and properties details which server UI option are mapped to which
properties in the configuration files.
This chapter focuses on the following topics:
●
Configuration files
●
Performing administrative configuration work on UI
●
Configuring the server database
●
Configuring another connection as a substitute for the catalog connection
●
Configuring connection pool
●
Configuring logs
●
Changing the server context path
Configuration files
The following table lists the files provided for configuration purpose and the corresponding server UIs
they are mapped to if applicable:
File
Description
Mapped Server UI
Related Document
<install_root>\bin\classes.properties Apply old version Security API
(UserAuthenticator)
-
-
<install_root>\bin
\ConnectionPoolConfig.properties
Engine connection pool
configuration
-
Configuring a connection pool
<install_root>\bin\datasource.xml
Connection mapping
configuration
-
Configuring the datasource.
xml file
<install_root>\bin\dbconfig.xml
Server DB configuration
JReport Administration
page > Data > System
DB/Realm DB/Profiling
DB > Configuration
Configuring the server
database in the dbconfig.xml
file
<install_root>\bin\dhtml.properties
Configuration for the Action
Task Manager
-
Action Task Manager > dhtml.
properties
<install_root>\bin\faxconfig.
properties
Configuration for sending fax
JReport Administration
page > Configuration >
Export > Fax
-
<install_root>\bin\jdbcdrivers.
properties
Configure the JDBC drivers that can be auto loaded
-
<install_root>\bin
\JdbcDriversConfig.properties
JDBC capability description
-
Configuring JdbcDriversConfig.
properties
<install_root>\bin\LogConfig.
properties
Configuration for log
JReport Administration
page > Configuration >
Log
Configuring logs
<install_root>\bin\mailconfig.
properties
Configuration for sending emails
JReport Administration
page > Configuration >
Export > E-mail
-
<install_root>\bin\server.list
Record relevant information
about the clustered servers,
including server name, server
IP address, server RMI port,
and server backup priority.
-
-
<install_root>\bin\server.properties
Comprehensive configuration
JReport Administration/
Console page
Appendix 1: Properties server.properties file
<install_root>\properties
\LDAPProperties.xml
Configuration for LDAP support
JReport Administration
page > Configuration >
LDAP > Server
-
Related topics:
●
Appendix 4: Mapping list of server UI options and properties
Performing administrative configuration work on UI
JReport Server UI can be accessed remotely from a client machine through a web browser such as
Internet Explorer. The JReport Administration page is available to administrators only. To perform
administrative configuration work as an administrator, first log onto the JReport Administration page.
On the JReport Administration page, these tabs are entry to different-purposed configuration panels:
●
Configuration - A comprehensive place for server configuration containing further-divided categories.
●
Security - Where you manage user accounts and permissions.
●
Profile - Where you define some initial settings for users' profiles.
●
Cluster - Where you configure and manage a JReport Server cluster.
●
Triggers - Where you create and manage triggers.
●
Data - Where you manage the server data.
●
Cached Data - Where you create and manage report data caches.
Configuring the server database
There are three databases in JReport Server: system, realm, and profiling. The system database holds
resources of the global server scope, such as server.properties, global NLS, etc. The realm database
holds information of folders, nodes, versions, the security system, and the completed table. The
profiling database holds server runtime related information. The realm database is necessary in order
to run JReport Server. For best performance, you may want to configure the realm and profiling
databases separately, depending on your environment.
When you install JReport Server, a dbconfig.xml file is automatically created in the directory
<install_root>\bin. The database configuration information is stored in this configuration file. You
can configure your database by using the dbconfig.xml file.
JReport Server provides multiple database support, allowing you to configure your own database to
store the server data.
This section presents the ways of configuring a server database for JReport Server in two different
environments. Also, you can specify a table space in the database configuration for JReport Server to
create tables in it.
●
Configuring the server database in a standalone environment
●
Configuring the server database when integrating with an application server
●
Creating tables in a specified table space
●
Schema support
●
Configuring JdbcDriversConfig.properties
Notes:
●
●
If you are using MySQL, make sure it is of version 5 or above.
If your server database uses DB2 and the charset is DBK, there will be the exception of encoding not
supported.
Related topics:
●
Managing server data
Configuring the server database in a standalone environment
When JReport Server is running in a standalone environment, you can configure the database for it
remotely on the JReport Administration page. Also, since the server database configuration information
is stored in the dbconfig.xml file in the directory <install_root>\bin, you can also configure the
server database in this file.
The following presents the two ways of configuring the server database in a standalone environment:
Configuring on the JReport Administration page
1. Log onto the JReport Administration page, click Data on the system toolbar and then select
System DB, Realm DB, or Profiling DB from the drop-down menu according to your
requirement.
Note: The Profiling DB option is not shown by default on the drop-down menu. In order to
make it shown, you should set the server.profiling.enable property to true in the server.
properties file in the <install_root>\bin directory.
2. Select a realm if it is the Realm DB or Profiling DB panel.
3. In the Configuration tab, select a DBDriver from the Driver drop-down list and provide the driver
class path information in the Driver Class Location field.
Note: For the Access, HSQLDB and Derby databases, you do not need to specify the Driver
Class Location. For all other databases, you will have to provide the driver class path
information unless it has already been added to the class path of setenv.bat (setenv.sh on
Unix) file during installation or by editing the setenv.bat file.
4. Type a valid URL that can be used to establish a connection to the database. The valid format of
the URL should be provided by the DBDriver vendor.
5. Provide the user ID and password.
6. To test the connection, click Test. To update the database configuration and to apply the settings,
click Update and then restart the server to finalize the function.
Configuring in the dbconfig.xml file
In dbconfig.xml, you can configure the server database using one of two methods. One is to specify the
URL, driver, user and password individually. This method of configuration can be modified through the
JReport Administration page. For example:
<database name="systemtables/realmtables/profile">
<url>...</url>
<driver>...</driver>
<user>...</user>
<password>...</password>
</database>
Note: The <user> and <password> information is encrypted. The <user> and <password> tags will
be replaced by the <encrypt-sign> tag after JReport Server's startup as follows:
<encrypt-sign>enDkq7srM9cHhoUwzYXJ3NvcDIYk</encrypt-sign>
If you want to change user or password, delete the <encrypt-sign> tag and add the <user> and
<password> tags in the dbconfig.xml file.
The other is to use the <datasource> tag. For example:
<database name="systemtables/realmtables/profile">
<datasource>
jdbc://user:[email protected]:odbc:jreport-realmtables#driver=sun.jdbc.odbc.JdbcOdbcDriver
</datasource>
</database>
Here are two examples for your reference:
●
●
The following example is for Oracle. Modify the dbconfig.xml file as follows:
<?xml version="1.0" encoding="UTF-8"?>
<dbconfig>
<workspace name="defaultRealm">
<database name="realmtables">
<user>test</user>
<url>
jdbc:oracle:thin:@dbhost:1521:ora9i
</url>
<password>1234</password>
<driver classpath="D:\DBDriver\Oracle\oracle9i\ojdbc14.jar">
oracle.jdbc.driver.OracleDriver
</driver>
</database>
</workspace>
</dbconfig>
The following example is for a DataDirect driver. Modify the dbconfig.xml file as follows:
<?xml version="1.0" encoding="UTF-8"?>
<dbconfig>
<workspace name="defaultRealm">
<database name="realmtables">
<user>test</user>
<url>
jdbc:datadirect:sqlserver://dbhost:1433;DatabaseName=realmdb
</url>
<password>1234</password>
<driver classpath="D:\DBDriver\connectjdbc\lib\base.jar;
D:\DBDriver\connectjdbc\lib\util.jar;
D:\DBDriver\connectjdbc\lib\sqlserver.jar">
com.ddtek.jdbc.sqlserver.SQLServerDriver
</driver>
<dbtype>Microsoft SQLServer</dbtype>
</database>
</workspace>
</dbconfig>
Note: Usually, JReport Server automatically creates database tables the first time it is started. The
database information that JReport Server uses is defined in the dbconfig.xml file. However, if the user
ID defined in this file does not have the permission to create tables in the database, JReport Server will
fail to complete the operation. In this case, you will need another user, such as the database
administrator (who holds the relevant permissions), to create a set of empty tables in the user's
schema using the provided SQL files. These SQL files can be found in <install_root>\script_files.
Configuring the server database when integrating with an application server
JReport Server supports connecting an RDBMS to access its system data via JDBC. The JDBC
configuration information is stored in the file dbconfig.xml in <install_root>\bin. You can create a
database connection according to this configuration file. Also, with the Java EE Data Source Support
feature, in a Java EE environment, JReport Server can get the predefined javax.sql.DataSource by JNDI
APIs.
Here, the term dsInfo is used to indicate where JReport Server can obtain the JDBC connection
information. It is a key-value pair. The name and value for dsInfo are defined as below:
●
The name should be: jreport.datasource.<dbname>, where, <dbname> is JReport Server's inner
database name. It must be systemtables, realmtables, or profile. For example, the dsInfo name is
jreport.datasource.realmtables.
The value should be in the form of a URL. There are three protocols supported by JReport Server:
●
❍
file:///absolute_path_of_config_file
For example: file:///JReport/Server/bin/dbconfig.xml
❍
jdbc://[<jdbc-user:jdbc-password>@]<jdbc-url>[#<attribute-name=attribute-value>,]
For example: jdbc://user:[email protected]:odbc:jreport-realmtables#driver=sun.jdbc.odbc.
JdbcOdbcDriver
❍
jndi://[<jdbc-user:jdbc-passoword>@]datasource_name[#<attribute-name=attributevalue>,]
For example: jndi://jdbc/jreport-realmtables
The dsInfo can be specified in several places or levels, such as VM properties, ejb-jar.xml, web.xml and
<install_root>\bin\dbconfig.xml. The sequence to load the information is:
VM system environment > ejb-jar.xml (EAR mode) > web.xml (WAR mode) > dbconfig.xml.
Notes:
●
●
●
The jreport.ear file that JReport Server creates does not specify any Java EE information. By default
it will load from the dbconfig.xml file.
There is a limitation in WebSphere. JReport Server's dsInfo can be configured to the WEB-INF/web.
xml with JNDI name but not RESOURCE name. JBoss works fine for either one.
Do not use reporthome, @ or # in the JNDI name or Resource name.
The following shows specifying the dsInfo in web.xml, ejb-jar.xml, and dbconfig.xml respectively:
Specifying data source in web.xml (for the WAR mode)
When integrating the JReport Server in a WAR package, you can specify the dsInfo in the WEB-INF/web.
xml file using the <env-entry></env-entry> or <context-param></context-param> tags. However,
the use of the <env-entry></env-entry> tags is the recommended way since the tags are also
supported in ejb-jar.xml (if you call the Server API in your EJB).
The following is an example of specifying the dsInfo in WEB-INF/web.xml using the <env-entry></enventry> tags:
<web-app>
...
<env-entry>
<env-entry-name>jreport.datasource.realmtables</env-entry-name>
<env-entry-value>jndi://resource-name</env-entry-value>
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>
</web-app>
The following is an example of specifying the dsInfo in WEB-INF/web.xml using the <context-param></
context-param> tags:
<web-app>
<context-param>
<param-name>jreport.datasource.realmtables</param-name>
<param-value>jndi://datasource_name_which_is_predefined</param-value>
</context-param>
...
</web-app>
Specifying data source in ejb-jar.xml or web.xml (for the EAR mode)
When the JReport Server is used with APIs by EJBs, you can specify the dsInfo either in the file ejb-jar.
xml in /META-INF or web.xml in /WEB-INF.
For information about specifying a data source in the web.xml file, see section Specifying data source in
web.xml (for the WAR mode).
Note: If the dsInfo is stored in a Web module, you should add the JReport Server context listener to
the WEB-INF/web.xml file. Here is an example:
<web-app>
<listener>
<listener-class>
jet.server.servlets.JRServerContextListener
</listnener-class>
</listener>
...
</web-app>
You can specify the dsInfo in the META-INF/ejb-jar.xml file using the <env-entry></env-entry> tags.
For example, here is an EJB named firstEJB which creates the JReport Server instance. You can add the
<env-entry></env-entry> tags to the EJB's configuration file - META-INF/ejb-jar.xml as follows:
<ejb-jar>
<enterprise-beans>
<session>
<ejb-name>firstEJB</ejb-name>
...
<env-entry>
<env-entry-name>jreport.datasource.realmtables</env-entry-name>
<env-entry-value>jndi://resource_name</env-entry-value>
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>
</session>
...
</enterprise-beans>
...
</ejb-jar>
Specifying data source in dbconfig.xml
By default, JReport Server assumes that jreport.datasource.realmtables=file:///${rpthome}/bin/
dbconfig.xml. You can specify either a JDBC or JNDI data source using the <datasource></
datasource> tags in the dbconfig.xml file.
For details about configuring the JDBC data source, see Configuring the server database in a
standalone environment.
The following is an example of specifying the JNDI data source:
<?xml version="1.0" encoding="UTF-8"?>
<dbconfig>
<workspace name="defaultRealm">
<database name="realmtables">
<datasource>jndi://datasource-name</datasource>
</database>
</workspace>
</dbconfig>
Creating tables in a specified table space
JReport Server supports creating tables in a user-specified table space in a database that supports
table spaces, such as DB2 and Oracle. A key-value pair tablespace is provided to specify a table space
into which JReport Server will create database tables. This key-value pair is then passed to JReport
Server through the JDBC configuration. JReport Server retrieves the table space information from the
JDBC (data source) configuration, and then creates tables in the specified table space.
Tablespace can be configured either in the dbconfig.xml file by using the <tablespace></tablespace>
tags, or in dsInfo by adding the attribute tablespace=table_space_name.
In dbconfig.xml
Add the <tablespace></tablespace> tags in the dbconfig.xml file as follows:
...
<database name="realmtables">
<driver classpath="...">jdbc_driver_name</driver>
<url>jdbc_url</url>
<user>jdbc_user</user>
<password>jdbc_password</password>
<tablespace>table_space_name</tablespace>
</database>
...
In dsInfo
Since the dsInfo supports JNDI and JDBC protocols, you can add the attribute
tablespace=table_space_name in the JNDI or JDBC statement.
●
jdbc://[<jdbc-user>:<jdbc-password>@]<jdbc-url>[#<attribute-name=attribute-value>,]
For example:
jdbc://user:[email protected]:odbc:jreport-realmtables#driver=sun.jdbc.odbc.
JdbcOdbcDriver,tablespace=myTablespace
●
jndi://[<jdbc-user>:<jdbc-password>@]<datasource-name>[#<attri-name=attri-value>,]
For example:
jndi://jdbc/jreport-realmtables#tablespace=myTablespace
Schema support
JReport Server supports DBMS schemas in order to work well with DBMSs that are currently supported
by JReport Server and that support schemas. Those DBMSs include Oracle, DB2, SQL Server, and
Sybase. You can specify schema information either in the dbconfig.xml file using the <schema></
schema> tags, or in dsInfo by adding the attribute schema=schema_name.
Note: For Sybase, the schema name must use capital letters, for example, ABCDE.
In dbconfig.xml
Add the <schema></schema> tags in the dbconfig.xml file as follows:
...
<database name="realmtables">
<driver classpath="...">jdbc_driver_name</driver>
<url>jdbc_url</url>
<user>jdbc_user</user>
<password>jdbc_password</password>
<schema>schema_name</schema>
</database>
...
In dsInfo
Since the dsInfo supports JNDI and JDBC protocols, you can add the attribute
schema=schema_name in the JNDI or JDBC statement. The JNDI approach is only available when
deploying JReport Server into a Java Application Server, not when it is running in standalone mode.
●
jdbc://[<jdbc-user>:<jdbc-password>@]<jdbc-url>[#<attribute-name=attribute-value>,]
For example:
jdbc://user:[email protected]:odbc:jreport-realmtables#driver=sun.jdbc.odbc.
JdbcOdbcDriver,schema=db2admin
●
jndi://[<jdbc-user>:<jdbc-password>@]<datasource-name>[#<attri-name=attri-value>,]
For example:
jndi://jdbc/jreport-realmtables#schema=db2admin
Configuring JdbcDriversConfig.properties
This document describes how to configure the file JdbcDriversConfig.properties in the <install_root>
\bin directory for better performance.
Limiting the size of the fetch data buffer
If you are using a database which supports the JDBC method Statement.setFetchSize(), you can
request the database retrieve a specified number of rows in each read instead of all rows which
minimizes memory usage which can improve performance. It can also avoid Java heap out of memory
errors when doing large queries. JReport provides a property setFetchSize in the JdbcDriversConfig.
properties file for you to do this.
The following is an example of setting the setFetchSize property in the JdbcDriversConfig.properties file
and detailed description of each property:
DriverName_D1 = MySQL-AB JDBC Driver
Vendor_D1 = MySql.com
Version_D1 = 3.0.8-stable ( $Date: 2003/05/19 00:57:19 $, $Revision: 1.27.2.18 $ )
setFetchSize_D1 = 5000
DriverName_[Name]
Database driver name that should be used to establish a connection. You can use connection.
getMetaData().getDriverName() to obtain the value.
Vendor_[Name]
The vendor of current JDBC driver. It is a string value.
Version_[Name]
The version of current JDBC driver. You can use connection.getMetaData().getDriverVersion() to obtain
the value.
setFetchSize_[Name]
The number of rows retrieved in each buffer from the database. It is an Integer value that should be
larger than 0 and less than or equal to getMaxRows(). The default value is different according to the
driver in use. You can refer to your own database driver specification.
_[Name]
It is a user-defined name used to mark a group of driver settings different from the other groups.
Specifying where to implement the maximum query run time and number of records
In the JdbcDriversConfig.properties file, you can also specify where the properties, Maximum Rows and
Maximum Duration will be implemented, on JReport side or on the database side. For details about
usage of these two properties, see Limiting the query run time and number of records in the Queries
chapter of the JReport Designer User's Guide.
The following is an example of setting the two properties:
DriverName_D2 = Oracle JDBC driver
Vendor_D2 = Oracle
Version_D2 = 9.2.0.3.0
supportMaxRowPushDown_D2 = true
supportMaxDurPushDown_D2 = true
DriverName_[Name]
Database driver name that should be used to establish a connection. You can use connection.
getMetaData().getDriverName() to obtain the value.
Vendor_[Name]
The vendor of current JDBC driver. It is a string value.
Version_[Name]
The version of current JDBC driver. You can use connection.getMetaData().getDriverVersion() to obtain
the value.
SupportMaxRowPushDown_[Name]
Specifies where the property Maximum Rows will be implemented, on JReport side or on the database
side. By default, it is set to true, which means the property will take effect on the database side. If it is
set to false, the property will take effect on JReport side.
SupportMaxDurPushDown_[Name]
Specifies where the property Maximum Duration will be implemented, on JReport side or on the
database side. By default, it is set to true, which means the property will take effect on the database
side. If it is set to false, the property will take effect on JReport side.
_[Name]
It is a user-defined name used to mark a group of driver settings different from the other groups.
Canceling running query
If your JDBC driver support the Cancel Running Query feature and you want JReport to cancel the
running query used by a report in the database when you cancel the running task of the report, for
example, when you click the Cancel button on the report processing page of JReport Viewer, or when
you choose to stop a report running in background mode, configure the file JdbcDriversConfig.
properties as follows:
1. Add the JDBC driver you use into JdbcDriversConfig.properties if it is not listed there.
2. In the file JdbcDriversConfig.properties there is a line:
#supportCancelQueryStatement_D5=true
Remove the sign # and use your driver number instead of D5 to activate the feature.
3. Restart your JReport Server, then the next time, when you choose to cancel a running task, the
query used by the report set will also be cancelled in the database, provided that the DBMS
supports this action.
Notes:
●
●
●
After you modified the JdbcDriversConfig.properties file, you need start the server to load the
changes.
If there are more than one group with the same group marking name, the last group will be adopted.
If the sign # is seen before "DriverName" of a group, or if setFetchSize is given a negative value, the
whole group will be disabled.
Configuring another connection as a substitute for the catalog
connection
Normally, after a report set has been created, it is fixed to a specific catalog connection. With the Java
EE Data Source Support feature, you can change to another runtime JDBC or JNDI data source to run
report sets. This allows you to control the catalog data source connections in JReport Server to connect
dynamically to your production data sources.
This section focuses on the following:
●
Configuring the datasource.xml file
●
The connection priority
●
Reloading connection information from datasource.xml
●
Integrating JReport Server with your Java application server
●
Example 1: Using JNDI data source connections of WebLogic Server
●
Example 2: Using JNDI data source connections of JBoss server
Configuring the datasource.xml file
In order to enable you to conveniently set different connections in JReport Server, a configuration file,
datasource.xml, is provided with which you can define the connection to use at runtime by setting up
connection mapping information such as the JDBC driver, URL, or JNDI data source name, user and
password, depending on the data source your application uses.
The datasource.xml file is located in the <install_root>\bin directory. Change this file according to
the data source you want to use. Two types of connections are supported by JReport Server. They are
JNDI data source connection and JDBC connection.
The content of the datasource.xml file is as follows:
<?xml version="1.0" encoding="UTF-8"?>
<datasource-mapping>
<datasource>
<catalog-connection-name>Connection1</catalog-connection-name>
<connection-type>JNDI</connection-type>
<jndi-datasource>Sample</jndi-datasource>
</datasource>
<datasource>
<catalog-connection-name>Connection2</catalog-connection-name>
<connection-type>JDBC</connection-type>
<driver>sun.jdbc.odbc.JdbcOdbcDriver</driver>
<url>jdbc:odbc:jinfonet</url>
<user>Username</user>
<password>Password</password>
</datasource>
</datasource-mapping>
Note: The <user> and <password> information is encrypted. The <user> and <password> tags will
be replaced by the <encrypt-sign> tag after JReport Server's startup as follows:
<encrypt-sign>enDkq7srM9cHhoUwzYXJ3NvcDIYk</encrypt-sign>
If you want to change user or password, delete the <encrypt-sign> tag and add the <user> and
<password> tags in the datasource.xml file.
Element descriptions
●
●
●
catalog-connection-name
Specifies the name of the catalog connection that you want to substitute. Note that this is the
connection name that you can see in JReport Catalog Browser. A unique connection name in a
catalog is suggested.
connection-type
Specifies the connection type, which can be either JNDI or JDBC.
jndi-datasource
If you are using a JNDI data source, specify the JNDI data source name you defined in your Java
application server which you want to use as the substitute connection.
●
driver & url
If you are using a JDBC data source, specify the JDBC Driver and URL in these two attributes.
Notes:
●
●
There can be multiple <datasource></datasource> tags. Each pair will map one of the connections
in your catalog. You can define mapping connections for multiple connections for more than one
catalog. The catalog connection name should be unique in the datasource.xml file, otherwise the
latter <datasource> information will overwrite the previous ones.
You can choose whether to provide database user and password information for the JNDI connection,
using the <user> and <password> tags. If the user and password information is provided in this file,
it will be used to set up the connection regardless of the settings defined in your application server.
Otherwise, the settings defined in your application server will be used. Specially, for WebLogic users,
you should provide user name and password for WebLogic console instead of the database.
The connection priority
If you are using a catalog connection, datasource.xml, and at the same time, you have set new
connection information via the Server API/URL ((jrs.jdbc_driver, jrs.jdbc_url, jrs.db_user, jrs.
db_pswd), the priority of these three is as follows:
Server API > datasource.xml > catalog connection
This means that if the approach with higher priority fails to get the connection, the one with the next
lower priority will be used.
Reloading connection information from datasource.xml
After you have made changes to the datasource.xml file, you need to reload it in JReport Server. This
file can be reloaded using the following ways:
●
●
●
Call jet.server.api.admin.ConnectionInfoProviderService.reloadFile().
Log onto the JReport Administration page, go to Configuration > Connection panel, and then click
the Reload button.
Restart JReport Server.
Integrating JReport Server with your Java application server
After updating the datasource.xml file, you can integrate JReport Server with your application server.
If you are using a WAR file, make sure that the datasource.xml file is included in the WAR file. Before
making the JReport Server WAR file, in makewar.xml in the <install_root>\bin directory, add
<include name="datasource.xml" /> into the <zipfileset dir="${installroot}/bin"
prefix="workspace/bin"> section. Before you deploy the WAR file to a web server, make sure that
the datasource.xml file is included in the jreport.war/WEB-INF/lib/jrenv.jar/workspace/bin
directory.
If you are integrating JReport Server to an application using a non-JReport WAR file, usually you need
to specify the -Dreporthome parameter in the application server so that the application server can
locate and load the resources it needs. Since the datasource.xml already exists in the bin directory, you
do not need to do anything special for this file.
Example 1: Using JNDI data source connections of WebLogic Server
Using WebLogic as an example, take the following steps:
1. Start WebLogic server, navigate to <YourProjectName> > Services > JDBC > Connection Pools. In
the Configuration tab, make sure that the connection you are going to use is there and correctly
set up.
2. Browse to <YourProjectName> > Services > JDBC > Data Sources. In the Configuration tab,
create a data source using the JNDI name MyJNDISample. Select the correct connection from the
Pool Name drop-down list.
3. Open datasource.xml in the <install_root>\bin directory and add:
<datasource-mapping>
<datasource>
<catalog-connection-name>ConnectionName</catalog-connection-name>
<connection-type>JNDI</connection-type>
<jndi-datasource>MyJNDISample</jndi-datasource>
<user>youruserid</user>
<password>yourpassword</password>
</datasource>
</datasource-mapping>
4. Build the JReport Server WAR file using the makewar utility in the <install_root>\bin directory.
5. Deploy JReport Server to WebLogic.
6. Run the report set that uses this connection.
Example 2: Using JNDI data source connections of JBoss server
Using JBoss as an example, in this Example, DB2 is used, and JBoss is installed to D:\jboss-4.0.1,
take the following steps:
1. Copy the DB2 driver to D:\jboss-4.0.1\server\default\lib.
2. Create a db2-ds.xml file in D:\jboss-4.0.1\server\default\deploy, and add the following
content:
<?xml version="1.0" encoding="UTF-8"?>
<datasources>
<local-tx-datasource>
<jndi-name>DB2DataSource</jndi-name>
<connection-url>jdbc:db2://dbs-b/sample</connection-url>
<driver-class>COM.ibm.db2.jdbc.net.DB2Driver</driver-class>
<user-name>db2admin</user-name>
<password>db2admin</password>
<min-pool-size>0</min-pool-size>
<metadata>
<type-mapping>DB2</type-mapping>
</metadata>
</local-tx-datasource>
</datasources>
3. Modify datasource.xml in <install_root>\bin. Make sure that the following are included:
<datasource-mapping>
<datasource>
<catalog-connection-name>ConnectionName</catalog-connection-name>
<connection-type>JNDI</connection-type>
<jndi-datasource>java:/DB2DataSource</jndi-datasource>
</datasource>
</datasource-mapping>
4. Build the JReport Server WAR file using the makewar.bat utility in the <install_root>\bin
directory.
5. Deploy JReport Server to JBoss.
6. Run the report set that uses this connection.
Configuring connection pool
If you have used SQL or other similar tools to connect to a database and act on data, you probably
know that getting the connection and logging in is the part that takes the most time. A program can
spend several seconds every time it needs to establish a connection. To improve performance, JReport
Server supports caching a connection, so that it can be used each time the same user accesses the
same table. Cached connections are kept in the connection pool and can be used and re-used as
required. Therefore, JReport Server is freed from having to create the connection to the database,
leading to a considerable saving of time.
If you want to improve the performance of JReport Server, you can configure a connection pool using
the ConnectionPoolConfig.properties file in the directory <install_root>\bin. The following is an
example of the ConnectionPoolConfig.properties file and detailed description of each property in the file:
# jdbcpool configure information
URL1=jdbc:odbc:Jinfonet
Expire_URL1=0
IdleExpire_URL1=1
MaxCount_URL1=0
MaxShare_URL1=0
Attempt_URL1=1
Interval_URL1=0
URL
JDBC URL that can establish a connection to your database.
Expire_URL
You can define how long in seconds it takes for an active connection to expire. The value for this
property by default is "0", which means that the active connection will not expire.
IdleExpire_URL
You can define how long a free connection can be idle before it is closed. The connection will not be
released until the defined time has reached its limit. The value for this property by default is "1", which
means that the connection will be released after 1 second. If the value is "0", the connection will be
closed right after it starts idling.
MaxCount_URL
The maximum number of connections based on the URL. The value for this property by default is "50".
Once the number of the connections reaches the maximum, a new connection will be blocked until a
free connection becomes available. Generally speaking, the fewer the connections, the better the
performance of JReport Server. If the value is set to "0", it means that there will be no limit on the
number of the connections.
MaxShare_URL
The maximum number of requests in one connection that can be executed simultaneously. Once the
number of the requests reaches the maximum, a new connection will be created to connect to the
database. The value for this property by default is "1", which means that one request in one connection
can be executed simultaneously. The smaller the number of requests, the better the performance of
JReport Server. If the value is set to "0", it means that there will be no limit to the maximum number
of requests sharing one connection and that all the requests in one connection can be executed
simultaneously.
Since the property MaxShare_URL* and MaxCount_URL* are incompatible, you should make a balance
between these two properties to achieve the best performance of JReport Server.
Attempt_URL
This property has a close relation to the property MaxCount_URL*. Once the number of the connections
reaches the maximum, a new connection will be blocked until a free connection becomes available. To
make the maximum use of the available connections in the pool, the property Attempt_URL* allows
you to set how many times the engine will try to establish a new connection. The default value for this
property is "1", which means that the engine will only try once to create a new connection.
Interval_URL
The interval the engine will wait for between attempts to create a new connection if a previous try has
failed. The default value for this property is "0", which means that the engine will start the next
attempt immediately. The unit of the property value is milliseconds.
Notes:
●
●
You are forced to give a value to the property URL in order to establish a connection to the database.
For the other six properties which configure the URL, it is not necessary to set their property values
(the default values will be used).
getConnectionPool.jsp is still available for customers who have updated JReport Server from earlier
versions. It is now deprecated in the current version. getConnectionPool.jsp is used for viewing
connection information and for deleting unused connection information. You can gain access to it
using the URL http://localhost:8889/admin/getConnectionPool.jsp.
Configuring logs
JReport provides a robust, flexible and configurable logging system, which is based on log4j version
1.2.8. JReport also supports versions of log4j version 1.2.8 to 1.3alpha7.
The logging system is used for obtaining meaningful and helpful JReport logging information in a
convenient way. It is easy to configure and manage. The following are the significant benefits of the
JReport logging system:
●
●
●
It is compatible with your application which is based on log4j.
It can be configured to output the logging information of different modules separately or to output
them all together.
It supports setting the trace and error type level separately.
Configuring logs
Log configuration tasks can be achieved in three ways. They are:
●
Using the JReport Administration page > Configuration > Log panel.
●
Using the LogConfig.properties file located in <install_root>\bin directory.
●
Using command options.
In comparison with earlier versions, the command options used for log configuration have undergone
a considerable change. The following are descriptions of these options:
Options
Description
-vDebug
Enables JReport Engine to output messages to a file and sets engine log file's
trace level to INFO and error level to WARN.
-vError
Enables JReport Engine to output messages to a file and sets engine log file's
trace level to OFF and error level to ERROR.
-logall
Sets all loggers' trace level to INFO and error level to WARN.
-log[:file Name]
Outputs JReport Engine messages to the file as specified and uses the -vDebug
level.
Note: Any settings made using the command options will override the trace and error type level
settings in the LogConfig.properties file.
Logging information using the trace and error type
The JReport logging system enables you to trace both normal and abnormal situations by using the
trace and error type. Trace is used for logging something expected or regular, such as tracing a
program workflow, logging runtime information and associated elements. Error is used for logging
something unexpected or irregular. For example, when a URL is unreachable, a file does not exist, or a
table cannot be found in a data source.
Trace type is divided into four levels, and is ordered according to the amount of information logged,
from the least to the most. These levels are OFF, OUTLINE, INFO, and TRIVIAL. Similarly, error type is
also divided into four levels, and is ordered according to the amount of information logged, from the
least to the most. These levels are OFF, FATAL, ERROR, and WARN. For detailed information about the
eight levels, see Log panel.
If you want the least amount of information to be logged, you can set trace level to OFF and error level
to ERROR. If you want the most amount of information to be logged, you can set trace level to TRIVIAL
and error level to WARN. Setting these to the highest level could affect system performance as well as
disk usage.
Customizing log file location
You can customize where to output logs in your local disk instead of using the default directory
<install_root>\logs.
By default, different log categories are output to different rolling files. For example, the Engine log is
output to Engine.log in the <install_root>\logs directory. If you want to customize the location of
the Engine log file, take the following steps:
1. Open the LogConfig.properties file located in the <install_root>\bin directory.
2. Modify the parameter log4j.appender.EngineRollingFile.File. Set its value to an absolute path with
a log file name, for example: C:\logs\Engine.log (on Windows) or /logs/Engine.log (on Linux/
Unix).
3. Save the LogConfig.properties file.
4. Restart JReport Server.
Configuration settings - effect on performance
The following are configuration properties which have an effect on server performance:
●
●
●
If the showTitle property is set to true in the LogConfig.properties file, the log file size will increase.
However, the effect on performance is negligible.
The levels of trace and error affect the amount of logging output. The higher the level, the more the
output. The settings for error level will have a negligible affect on performance but a high level for
trace may affect performance.
The use of the following conversion characters in ConversionPattern property results in the slow
generation of caller class or location information: %C, %F, %L and %M. Their use should be avoided
unless execution speed is not an issue. For information about the ConversionPattern property, see
comments in the LogConfig.properties file, which is located in the <install_root>\bin directory.
Changing the server context path
In some circumstances you may want to change the server context path for accessing JReport Server
console and running JReport report sets. This section introduces how to do this in a standalone or an
integrated environment.
Changing standalone server context path
JReport has the following URL configuration for accessing JReport Server console and running JReport
report sets in a standalone environment:
http://<hostname>:8888/jrserver
http://<hostname>:8888/jinfonet/index.jsp
http://<hostname>:8888/dhtmljsp/...
You may want to change the server context path as follows:
http://<hostname>:8888/jrp/jrserver
http://<hostname>:8888/jrp/jinfonet/index.jsp
http://<hostname>:8888/jrp/dhtmljsp/...
To do this:
1. Copy all contents in <install_root>\public_html to <install_root>\public_html\jrp.
2. Modify the following property values in server.properties in <install>\bin directory by adding "/
jrp":
web.design_servlet_path=/jrp/webreporting
web.dhtml_jsp_path=/jrp/dhtmljsp
web.dhtml_servlet_entry_path=/jrp/jrdhtml
web.dhtml_servlet_path=/jrp/dhtml
web.help_servlet_path=/jrp/help
web.jreport_servlet_path=/jrp/jrserver
web.skin.dir=/jrp/skin
3. Modify the value of jsp_path in redirect.properties in <install>\bin directory by adding "/jrp":
jsp_path=/jrp/jinfonet/
4. Modify mapping.properties in <install>\bin directory by adding "/jrp":
#
#
#
#
#
#
Map servlets to paths
Properties beginning with a . are extension properties, all other
properties are path properties
Format:
path or extension = servlet name
/jrp/jrserver=jrserver
/servlet/sendfile=sendfile
/jrp/dhtml=dhtml
/jrp/jrdhtml=jrdhtml
/jrp/help=help
.jsp=jspservlet
5. Start the server and access the server by the URLs:
http://localhost:8888/jrp/jrserver
http://localhost:8888/jrp/jinfonet/index.jsp
Run a report set in the DHTML format by the URL:
http://localhost:8888/jrp/dhtmljsp/dhtml.jsp?jrs.catalog=%2fSampleReports%
2fSampleReports.cat
&jrs.report=%2fSampleReports%2fEmployeeInformation.cls
Changing integrated server context path
Supposing that all server resources are deployed to the context root folder jreport\ after deploying
JReport Server to an application server.
You can use the following URLs for accessing JReport Server service console and running JReport report
sets in the integrated environment:
http://<hostname>:port/jreport/jinfonet/index.jsp
http://<hostname>:port/jreport/dhtmljsp/...
You may want to change the server context path as follows:
http://<hostname>:port/jreport/myjsp/jinfonet/index.jsp
http://<hostname>:port/jreport/myjsp/dhtmljsp/...
To do this:
1. Move index.htm and the following folders from jreport\ to jreport\myjsp\:
admin
dhtmljsp
images
javascript
jinfonet
skin
style
2. Create a file jrserver.properties in the \WEB-INF directory, add the skin and dhtmljsp properties
and provide the correct paths (the context root is excluded):
web.skin.dir=/myjsp/skin
web.dhtml_jsp_path=/myjsp/dhtmljsp
3. Access the server by the URL: http://<hostname>:port/jreport/myjsp/jinfonet/index.jsp
Run a report set in the DHTML format by the URL:
http://<hostname>:port/jreport/myjsp/dhtmljsp/dhtml.jsp?jrs.catalog=%
2fSampleReports%2fSampleReports.cat
&jrs.report=%2fSampleReports%2fEmployeeInformation.cls
Managing
The administration task in JReport Server consists of six major parts. They are management of
resources, versions, security, tasks, server data and cached report data. This chapter discusses these
task types in detail. After going through these topics, you will be able to manage your JReport Server
more effectively.
●
Managing resources
●
Managing versions
●
Managing security
●
Managing tasks
●
Managing server data
●
Managing cached report data
Managing resources
Resources on JReport Server are organized into a tree structure called the Resource Tree. Only the
resources that are organized in the resource tree can be accessed and queried by a client.
You can perform basic resource tasks, such as publishing, deleting, getting resources from a real path,
and more advanced tasks, such as changing resource and folder properties. Moreover, you can also
manage the versions and secure your resources. Detailed information is available in sections Managing versions and Managing security.
Note: Catalogs are by default not displayed in the server resource tree on the JReport Console page.
In order to perform operations on catalogs published from outside of JReport Server on the JReport
Console page, you need to enable them to be displayed first by setting the web.page.option.
show_catalog property to true in the server.properties file.
This section includes the following topics:
●
Publishing resources
●
Converting reports of earlier versions into current version
●
Updating a catalog's cube/business view permission
●
Getting and using resources from a real path
●
Customizing TTF font location for reports
●
Working with custom fields
●
Changing resource and folder properties
●
Deleting resources
Publishing resources
Before you can perform any tasks on JReport Server, you first need to have your resources (catalogs, report sets, studio reports and folders)
published and organized.
There are three ways of publishing resources:
●
Publishing resources from JReport Designer
●
Publishing resources from a local computer
●
Publishing resources from a remote computer
Note: After resources have been delivered to JReport Server, you may find that the publish time shown on the server UI is different from the
client time. That is because the publish time takes the server time instead of the client time.
Publishing resources from JReport Designer
You can directly publish your report sets or catalogs from JReport Designer to JReport Server. For detailed information, see the topic
Publishing resources remotely in the JReport Designer User's Guide.
Publishing resources from a local computer
You can publish three types of resources from a local computer. They are report sets, catalogs, and folders.
To publish resources from a local computer:
1. Do either of the following to access the Publish to Local Server dialog:
❍
❍
For administrators, on the JReport Administration page, click Reports on the system toolbar and select Reports from the drop-down
menu. In the Reports panel, browse to the folder where you want to publish the resources, then click the To Local Server link.
For end users, on the JReport Console > Reports page, browse to the folder in which to publish the resources, then on the task bar of
the Reports page, click Publish > To Local Server.
The Publish to Local Server dialog is then displayed.
2. Select a type from the Resource Type drop-down list. Make sure that the resources exist in the resource real path.
3. Specify properties for the to-be-published resources as required.
❍
If the Report Set or Studio Report resource type is selected:
1. In the From File text field, specify the report set you want to publish with its full path.
2. In the Resource Node Name field, specify a name for the report set. This name is required and is used as the display name of the
resource node in the server resource tree.
3. Type a brief description to describe the report set in the Resource Description field.
4. From the Status drop-down list, select the status of the report set.
5. Specify values of the custom fields for the report set if there are custom fields.
6. Click the Browse button to specify a font directory for the resources.
7. Click the Browse button to specify a style directory for the resources.
❍
If the Catalog resource type is selected:
1. In the From File text field, specify the catalog you want to publish with its full path.
2. In the Resource Node Name field, specify a name for the catalog. This name is required and is used as the display name of the
resource node in the server resource tree.
3. Type a brief description to describe the catalog in the Resource Description field.
4. Specify values of the custom fields for the catalog if there are custom fields.
❍
If the Folder resource type is selected:
1. In the Resource Node Name field, specify a name for the folder. This name is required and is used as the display name of the
resource node in the server resource tree.
2. Type a brief description to describe the folder in the Resource Description field.
3. To enable getting resources from a real path, check the Enable Resources from Real Paths option, and then type a path in the
Resource Real Path box.
4. Specify values of the custom fields for the folder if there are custom fields.
❍
If the Folder with Contents resource type is selected:
1. Click the Browse button next to the From Folder text field to specify the folder where the resources you want to publish are
saved.
2. In the Resource Node Name field, specify a name for the folder. This name is required and is used as the display name of the
resource node in the server resource tree.
3. Type a brief description to describe the folder in the Resource Description field.
4. To enable getting resources from a real path, check the Enable Resources from Real Paths option, and then type a path in the
Resource Real Path box.
5. Specify values of the custom fields for the folder if there are custom fields.
6. Click the Browse button to specify a font directory for the resources.
7. Click the Browse button to specify a style directory for the resources.
8. If you want to use Advanced Publish, click the Advanced Publish button. All sub folders and report sets contained within the
specified folder will then be displayed. Check the resources you want to publish and specify the properties for each resource as
required.
❍
If the Catalogs, Report Sets, Studio Reports, and Folders in Folder or Catalogs, Report Sets, Studio Reports in Folder
resource type is selected:
1. Click the Browse button next to the From Folder text field to specify the folder where the resources you want to publish are
saved.
2. Click the Browse button to specify a font directory for the resources.
3. Click the Browse button to specify a style directory for the resources.
4. If you want to use Advanced Publish, click the Advanced Publish button. All resources contained within the specified folder will
then be displayed. Check the resources you want to publish and specify the properties for each resource as required.
4. If the resources you specify to publish contain reports created in earlier versions, check Automatically Convert Old Report Schemas,
the reports will then be automatically converted into current version JReport report sets when publishing finishes.
5. To apply an archive policy to the resources that you are publishing, check the Apply Archive Policy option, then specify the archive
policy as required: Archive as New Version or Replace Old Version.
Note that a folder by itself does not have versions; the archive policy specified for a folder applies to the folder contents.
6. If the resources are to be published to the Public Reports folder, click the Set Permissions link to specify user permissions to them
according to your requirement. Permissions that can be specified to a user or role include: Visible, Read, Write, Execute, Schedule,
Delete, and Grant.
7. Click OK to start publishing the resources.
Note: The Publish to Local Server option is always available to administrators on the JReport Console page. For end users, the option is
displayed only when he/she has the privilege of publishing resources and has logged onto JReport Server from a local browser.
Publishing resources from a remote computer
You can publish three types of resources from a remote computer. They are report sets, catalogs, and folders. Before they can be published
you must create a zip file or tar file containing the resources to publish. If you want to publish resources from a remote machine to the
server, use Publish to Remote Server.
To publish resources from a remote computer:
1. Do either of the following to access the Publish to Remote Server dialog:
❍
❍
For administrators, on the JReport Administration page, click Reports on the system toolbar and select Reports from the drop-down
menu. In the Reports panel, browse to the folder where you want to publish the resources, then click the To Remote Server link.
For end users, on the JReport Console > Reports page, browse to the folder in which to publish the resources, then on the task bar of
the Reports page, click Publish > To Remote Server.
The Publish to Remote Server dialog is then displayed.
2. Click the Browse button to specify the zipped file which contains the resources you want to publish.
3. Specify where the resources will be published.
❍
If you want to publish the resources directly to the current open folder in the server resource tree, check the Publish files and
folders in the zipped file to /XXX checkbox.
❍
If you want to create a new folder in the current open folder in the server resource tree to locate the resources,
1. Make sure the Publish files and folders in the zipped file to /XXX checkbox is not selected.
2. In the Resource Node Name box, specify the name for the folder. The name will then be used as the display name of the resource
node in the server resource tree.
3. Type a brief description to describe the folder in the Resource Description box.
4. Specify values of the custom fields for the folder if there are custom fields.
5. To enable getting resources from a real path, check the Enable Resources from Real Paths option, and then type a path in the
Resource Real Path box.
4. If the resources you specify to publish contain reports created in earlier versions, check Automatically Convert Old Report Schemas,
the reports will then be automatically converted into current version JReport report sets when publishing finishes.
5. To apply an archive policy to the resources, check the Apply Archive Policy option, then specify the archive policy as required: Archive
as New Version or Replace Old Version.
6. To enable user permissions on the resources, click the Set Permissions link and set the permissions according to your requirements
(the Set Permissions link is available only when the resources are to be published to the Public Reports folder). Permissions that can be
specified for a user or role include: Visible, Read, Write, Delete, Execute, Schedule, and Grant.
7. If you want to use Advanced Publish, click the Advanced Publish button. All sub folders and report sets contained within the zip file will
then be displayed. Check the resources you want to publish and specify the properties for each resource as required.
8. Click OK to start publishing the resources.
Note: When publishing resources from a remote computer, the process is similar to that for a local publish. However, there are differences.
They are:
●
●
Local Publish publishes resources from the machine where the server runs, while a Remote Publish publishes resources from a client
machine using a web browser to the machine where the server runs.
The resource type of Remote Publish can ONLY be a compressed file. You should compress the report set and catalog files in advance, and
if special fonts are used in the report sets, add the corresponding font files into the compressed file as well. There are two approaches to
building a compressed file.
❍
You can compress the resources manually using a third-party tool, such as Winzip and gzip.
❍
You can use jar.exe that the JSDK provides to build a compressed jar file directly. Use the command as follows:
%JAVAHOME%\bin\jar.exe -cvfM %DEST_JAR_FILE% %SOURCE_RESOURCES%
Parameter
Description
%JAVAHOME%
The Java SDK install root.
%DEST_JAR_FILE%
The destination file path and file name. The .jar file will be generated to the path you specify here, using
the file name you provide.
%SOURCE_RESOURCES%
The source file path and file name. Note that specifying a path for this parameter will cause the generated
jar file to contain the same path information. For example, when you extract a jar file compressed using
myReports\*.* for this parameter, the files will be extracted to a folder called myReports. JReport Server
is not able to import a compressed file which contains the path information, so do not specify a path for this
parameter.
To generate a jar file containing no path information, switch to the source folder, and then carry out the compression. For example,
C:\myReports>C:\jdk1.6.0_17\bin\jar -cvfM c:\temp\aa.jar.
The jar file will be generated to c:\temp, as aa.jar, compressing all the files in c:\myReports, and containing no path information.
Always use this method if the folder you are compressing contains report sets with Chinese, Korean, or Japanese names.
Converting reports of earlier versions into current version
If your JReport product has been upgraded from a version earlier than V10, when running reports of
the earlier version, you may encounter decreased performance due to the JReport Engine having to
first convert the earlier version report into a current version report set before running the report. In
order to enhance performance, JReport Server allows administrators to permanently convert reports of
earlier versions in the server resource tree to adapt to the current version.
Report converting applies to reports of all previous server versions.
Converting via the Administration UI
The converting UI is available to administrators only. It is used to convert all old reports in the My
Reports folder or Public Reports folder. The converted report sets are stored in the same directory.
To convert reports of earlier versions into current version:
1. On the JReport Administration page, click Reports on the system toolbar, then select Converting
from the drop-down menu.
2. Specify the folders which contain the reports you want to convert.
3. Specify how to save the converted reports.
❍
❍
Replace the Old Repors
Specifies to replace the old reports with the converted report sets.
Save as Ad Hoc Report Versions
Specifies to save the converted report sets as new report set versions in the resource tree.
4. When done, click OK to start converting.
Converting using tool
You can also use rptconv.bat/rptconv.sh located in the <install_root>\bin directory to convert a
report and a type of reports or all reports in a directory.
Updating a catalog's cube/business view permission
When a catalog is published to JReport Server, you can update the catalog's report cube, business cube
and/or business view permission settings by uploading the updated authorization file from JReport
Designer without re-publishing the catalog. To do this:
1. First you should have set report cube, business cube, or business view permissions in the catalog
using JReport Designer. In this case, when you save the catalog, the permission settings are also
saved and they are saved in an authorization file in the same folder as the catalog file. The catalog
and authorization files have the same file name but different suffixes, for example, if the catalog
file is called test.cat, the authorization file is called test.auth. The authorization file is loaded by
the cube/business view authorize manager of its catalog during runtime.
2. If the catalog is not modified, you can only update the authorization file to update the permission
settings either using JReport Designer or by hand.
3. After you have updated the authorization file in JReport Designer, upload it to JReport Server from
the JReport Administration page if you are an administrator:
a. Click Reports on the system toolbar and select Reports from the drop-down menu.
b. In the Reports panel, browse to the row the catalog is in, then click the Cube Security
button
in the Control column.
c. In the Cube Security dialog, first select a catalog version, and then select the updated
authorization file using the Browse button.
d. Click OK to apply the settings.
The updated authorization file will be uploaded to JReport Server and replace the old file. Then the
server will invoke the method of the cube/business view authorize manager to reload all the permission
settings, and the permission settings will take effect right after reloading.
Getting and using resources from a real path
Not only can you use the published resources described in section Publishing resources, but also those
resources obtained from a real path. The difference between real path resources and published
resources lies in the way of managing them. Published resources are managed in JReport Server
totally. Real path resources are managed in both the server and OS system. In the server, when
accessing a resource node which is linked with a real path, the local resources in the real path are
loaded to the node and displayed together with other server resources (including the published
resources) in the node. You cannot delete the real path resources directly from the server UI, but can
only achieve it by removing the resources from the local disk.
To use real path resources, you should specify a real path for a virtual folder. You can then add or
remove resources into or from JReport Server by adding or removing them into or from the real path.
Also, if you do not want to publish resources to the server by using the publish feature, you can set a
real path instead.
The following example uses the resources in the folder /SampleReports obtained from the real path:
1. On the JReport Administration page, click Configuration on the system toolbar, then select
Advanced from the drop-down menu.
2. In the Advanced panel, check the Enable Resources from Real Paths option, save the changes
and then restart the server.
3. Open the Properties dialog of the folder /SampleReports, check Enable Resources from Real
Paths, specify a real path for the demo virtual folder as C:\JReport\Server\reportbak, then
click OK to save the changes.
4. In the Windows directory C:\JReport\Server\reportbak, create three sub directories report1,
report2, and report3, and then copy some report sets and catalogs into them.
5. On starting JReport Server, click the virtual folder /SampleReports. You will then see the three
sub folders: report1, report2, and report3 within it, including their report sets and catalogs.
Now end users can perform operations on the real path resources, including running, advanced
running, scheduling, viewing versions and setting properties.
Notes:
●
You cannot publish resources from real path.
●
You cannot use a real path resource as an archive location.
●
●
The relationships of folder real paths do not need to be consistent with that of the resource tree
folders. That is, they are independent of each other. For example, in the resource tree, the folder
ABC, whose real path is C:\FolderABC, has a sub folder DEF. The real path of DEF need not
necessarily be a folder in C:\FolderABC. It can be any folder.
After using the real path resources, under certain special conditions some invalid nodes will be
generated in the server databases. In order to delete the invalid nodes, administrators can perform
the corresponding option on the JReport Administration page to clear unused nodes from the internal
JReport Server database. For details, see Clearing unused nodes from the system database.
Setting a default real path for the Public Reports folder before the server starts
JReport Server enables setting a default real path for the Public Reports folder without having to log
onto the server. There are two ways to achieve this goal: setting the real path during or after
installation.
●
Setting during installation
1. When installing JReport Server using the Installation Wizard, select the installation type Custom
Installation for Standalone Server.
The Configuration screen is then available for you to configure the server properties.
2. In the screen, select Advanced from the left panel.
3. Check the Enable Resources from Real Paths option, and then type in a path in the Public
Reports Real Path text field or specify a path using the Browse button.
4. Upon completion of the installation, an install.server.properties file will be created in the
<install_root>\bin directory. When the server starts, it retrieves the file contents, and then
sets the real path for the Public Reports folder. Note that the file is deleted after the server has
loaded the file contents.
●
Setting after installation
If you want to set a default real path for the Public Reports folder after installation, you can create an
install.server.properties file in the <install_root>\bin directory manually. Specify the content in
the file as follows:
server.publicReportsRealPath=D:\JReport
Customizing TTF font location for reports
The default font path in JReport Server is <install_root>\font. You can set the font path to a
different location by using the following three ways. These are in an order from higher to lower priority:
●
Use the -D parameter to set the system properties key jreport.server.font.path
●
Use the API HttpUtil.initEnv() to set the properties key server.font.path
●
Add a property server.font.path in the server.properties file and set a full path to it.
Notes:
●
The value specified by -D is not stored into the server.properties file.
●
The value specified using API is stored into the server.properties file.
Working with custom fields
Custom fields are user defined fields which can be used as resource properties, the same as Type,
Description, Last Modified, etc.
After a custom field is created and enabled by administrators, it will be available in the resource
information table on both the JReport Administration > Reports panel and the JReport Console >
Reports page. End users can define its value by setting properties.
Creating and enabling custom fields
To create a custom field:
1. On the JReport Administration page, click Configuration on the system toolbar, then select
Custom Field from the drop-down menu.
2. In the Custom Field panel, click New Custom Field on the task bar.
3. In the New Custom Field dialog, provide a name and description for the custom field.
4. To enable the custom field, check the Enabled option.
5. Click OK to create the custom field.
Editing custom fields
To edit a custom field:
1. In the Custom Field panel, select the row where the custom field is in, then click Edit >
Properties on the task bar.
2. In the displayed dialog, modify the name and description for the custom field, and change its
status if required.
3. Click OK to accept the changes.
Deleting custom fields
Administrators can delete the custom fields that are not required at any time. To do this:
1. In the Custom Field panel, select the row where the custom field is. You can select multiple
custom fields.
2. Click Edit > Delete on the task bar.
3. Click OK in the warning message to confirm the deletion.
Setting value to custom fields
When you publish resources to JReport Server, either locally/remotely or from JReport Designer, if
there are custom fields enabled, they will be displayed in the publishing dialog and you can specify the
value of the custom fields for each resource according to your requirements. Also, the custom field
values can be defined by setting resource properties.
Hiding custom fields
By default, all the enabled custom fields will be displayed in the resource information table on both the
JReport Administration > Reports panel and the JReport Console > Reports page. If you want to hide a
custom field from being shown in this table, follow the steps below:
For administrators:
1. Click Profile on the system toolbar of the JReport Administration page, then select Customize
Server Preferences from the drop-down menu.
2. In the General tab, in the Columns Shown in Reports List section, unselect the checkbox in front of
the corresponding custom field.
3. Click OK to accept the setting.
For end users:
End users can hide a custom field on the JReport Console page > Profile > Customize Server
Preferences > General tab as shown in the above method, and besides have a second choice:
1. On the JReport Console > Reports page, click Tools > Preferences on the task bar.
2. In the General tab of the Preferences dialog, unselect the checkbox in front of the corresponding
custom field, then click OK.
Changing resource and folder properties
To change the properties of a resource or folder:
●
For administrators, on the JReport Administration page, click Reports on the system toolbar and
select Reports from the drop-down menu. In the Reports panel, browse to the row that the resource
or folder is in and click the Properties button
change the settings as required.
●
in the Control column. In the Properties dialog,
For end users, on the JReport Console > Reports page, browse to the row that the resource or folder
is in and do either of the following:
❍
Select the row and click Tools > Properties on the task bar of the Reports page.
❍
Select the row, right-click in the row and select Properties from the shortcut menu.
❍
Put the mouse pointer over the row and click the Properties button
on the floating toolbar.
Then, in the Properties dialog, change the settings as required.
See also the following documents for details about the property settings:
●
Catalog Properties dialog
●
Folder Properties dialog
●
Result Properties dialog
●
Report Set Properties dialog
Assigning permissions
Permissions, associated with resources and folders, are the rules granted to users which control their
access to resources and folders.
After you have set permissions for a parent folder, any new resources and sub folders created in that
folder will inherit the same permissions. If you do not want them to inherit these permissions, you can
enable their user permissions and set their permissions separately. Resources and folders will inherit
permissions from their parent folder if their user permissions are not enabled.
To set, view, change, or remove resource/folder permissions:
●
For administrators, in the Properties dialog, click the Set Permissions link, then in the Set
Permissions dialog,
❍
❍
To set up or change permissions for a role, user or group, check Enable Setting Permissions,
select the user, group, or role in the Role Permissions, User Permissions, or Group Permissions
table, and then check or uncheck each permission as required. If the user, group or role is not
listed in the corresponding table, click the Add button to add it and then assign the permissions
accordingly.
To remove resource/folder permissions for all users, groups and roles, uncheck the Enable
Setting Permissions option.
For end users, in the Permissions tab of the Properties dialog,
●
❍
❍
To set up or change permissions for a role, user or group, first check Enable Setting
Permissions, then select the role/user/group in the Selected box and check or uncheck the
required permissions. If the role/user/group is not listed in the Selected box, select the
corresponding radio button below the Available box, add the role/user/group to the Selected box
and then assign the permissions accordingly.
To remove resource/folder permissions for all users, groups and roles, uncheck the Enable
Setting Permissions option.
Notes:
●
●
●
●
●
●
Security permissions do not apply to the built-in version folders, the My Reports folder, and their
contents.
To complete a task, you may require more than one permission. For example, to view the properties
of a report set, you must have both the Visible and Read permissions.
Some permissions depend on other permissions in order to work, such as Write, Execute, and
Schedule. Allowing anyone of these will also allow the Read permission.
Some special permissions, such as Execute and Schedule, only apply to the report set type resource.
Only members in the administrator role can assign the Grant permission to other users or groups or
roles.
Users that are given the Grant permission can grant permissions to other users in the same group.
Deleting resources
To delete a resource or folder:
●
For administrators, on the JReport Administration page, click Reports on the system toolbar and
select Reports from the drop-down menu. In the Reports panel, browse to the row that the resource
or folder is in, then click the Delete button
●
in the Control column.
For end users, on the JReport Console > Reports page, browse to the row that the resource or folder
is in, then do either of the following:
❍
Select the row, right-click in the row and select Delete from the shortcut menu.
❍
Put the mouse pointer over the row and click the Delete button
on the floating toolbar.
Notes:
●
●
The Public Reports folder and My Reports folder cannot be deleted.
Deleting a resource or folder removes the resource or folder from disk. The deleted resources and
folders cannot be retrieved. Any relevant versions belonging to the resource will also be deleted.
Managing versions
Your resources might change over time. JReport Server uses a versioning system to create and
manage resources that have changed in content and properties owing to updates made to them.
All the resources in the server resource tree: report set resources, catalog resources and report set
result resources, are controlled by versions. A great proportion of resource management tasks are
carried out by managing resource versions.
In addition, JReport Server uses an archive policy to control the resource versions. You can control
whether or not to use multiple versions for a specific resource. Also, you can define the maximum
number of versions that can be listed in the version table. The archive policy can be applied to a single
resource individually, or to many resources in a folder as a whole.
This section shows how to manage resource versions as follows:
●
Creating versions
●
Browsing versions
●
Applying an archive policy
●
Deleting versions
●
Advanced version topics
Creating versions
Generally, report set result versions are created when an end user runs a report set in Advanced Run
or Schedule mode. However, to create a new version for a report set or catalog, you have to publish a
report set or catalog respectively from outside of JReport Server, and then make the old and the new
share one common resource node.
Creating report set/catalog versions
The method for creating versions for report set and catalog are the same:
1. Access the publish dialog using either of the following ways:
❍
❍
For administrators, on the JReport Administration page, click Reports on the system toolbar
and select Reports from the drop-down menu. In the Reports panel, open the folder that
contains the report set/catalog for which you want to create a new version, then click the To
Local Server or To Remote Server link.
For end users, on the JReport Console > Reports page, open the folder that contains the report
set/catalog for which you want to create a new version, then on the task bar of the Reports
page, click Publish > To Local Server or Publish > To Remote Server.
2. In the corresponding publish dialog,
❍
❍
If publishing to local server, select Report Set or Studio Report/Catalog from the Resource
Type drop-down list, then fill in the path and name of the to-be-published report set/catalog in
the From File text field.
If publishing to remote server, specify the path and name of the zipped file which includes the
report set/catalog you want to publish in the From Zipped File text field.
3. In the Resource Node Name box, type the name of the resource node for where you want to
create the new version to. The name you provide must be exactly the same as the original
resource node name.
4. Apply an archive policy to the report set/catalog version.
5. Fill in other relevant information as required.
6. Click OK to publish the report set/catalog (for details about publishing resources from a local or
remote computer, see Publishing resources).
The report set/catalog will then be added to the server resource tree, and serve as a version of the
report set/catalog.
Note: Catalogs are by default not displayed in the server resource tree on the JReport Console page.
In order to perform operations on catalogs published from outside of JReport Server on the JReport
Console page, you need to enable them to be displayed first by setting the web.page.option.
show_catalog property to true in the server.properties file.
Creating report set result versions
A report set result version can only be created by advanced running the report set or by scheduling the
report set to publish it to the versioning system on the JReport Console page.
●
When advanced running a report set, in the Archive tab of the Advanced Run dialog:
1. Specify where to save the result version by setting the Archive Location option.
■
■
To generate the report set result version in the built-in folder, select Built-in Version Folder.
To generate report set result version in a standalone resource node in the resource tree,
select The My Reports folder or The Public Reports folder, and then provide the path and
resource name information in the corresponding box.
2. Apply an archive policy to the version as required and submit the task.
Then, when the report set finishes running, a report set result version will be generated to the
location specified.
●
When scheduling a report set to publish it to the versioning system, in the Publish > To Version tab
of the Schedule dialog:
1. Specify where to save the result version by setting the Archive Location option.
■
■
To generate the report set result version in the built-in folder, select Built-in Version Folder.
To generate report set result version in a standalone resource node in the resource tree,
select The My Reports folder or The Public Reports folder, and then provide the path and
resource name information in the corresponding box.
2. Apply an archive policy to the version as required and submit the task.
Then, when the schedule task is finished, a report set result version will be generated to the location
specified.
Notes:
●
●
●
●
The resource path and name refers to the resource path and name in the resource tree. For
instance, /foldername/filename.
For The Public Reports folder option, the first slash mark (/) refers to the Public Reports folder in the
resource tree, and the folder name (foldername) refers to an existing folder in the resource tree.
For The My Reports folder option, the first slash mark (/) refers to the My Reports folder in the
resource tree, and the folder name (foldername) refers to an existing folder in the resource tree.
When generating report set result versions in an existing standalone resource node in the resource
tree, for example, creating a new version for a resource node, you should make sure to provide the
path and name of the existing resource for The Public Reports folder or The My Reports folder option.
Browsing versions
To view the version information of a resource:
●
For administrators, on the JReport Administration page, click Reports on the system toolbar and
select Reports from the drop-down menu. In the Reports panel, browse to the resource, then click
the Version button
●
in the Control column.
For end users, on the JReport Console > Reports page, browse to the resource, then do either of the
following:
❍
Select the resource row and click Tools > Version on the task bar of the Reports page.
❍
Select the resource row, right-click in the row and select Version from the shortcut menu.
❍
Put the mouse pointer over the resource row and click the Version command button
floating toolbar.
on the
The versions that a resource hosts are organized in the version table.
Version table
Relevant information about the versions that a resource hosts, such as the version date, version
number, is collected and represented in a table, called the version table.
The version table is composed of the following columns:
●
●
●
Catalog Versions Table
Column
Description
Version Date
The date and time of when the version was generated.
Version Number
The serial ID that identifies a version in the version table.
Report Set Versions Table
Column
Description
Version Date
The date and time of when the version was generated.
NLS Editor
Administrators can edit NLS for a specified report set version by clicking the
corresponding link.
Version Number
The serial ID that identifies a version in the version table.
Report Set Result Versions Table
Column
Description
Result
The output file formats. You can click the links to view the output files.
Version Date
The date and time of when the version was generated.
Parameter File
The parameter file name. You can click the underlined file name to view the
parameters.
Creator
The ID of the user who created the version.
Version Number
The serial ID that identifies a version in the version table.
You can perform operations such as sorting/viewing properties, and output files/parameters in the
version table.
Tip: Some columns in the tables are not shown by default. To have them displayed, locate the table,
click Tools > Preferences on the task bar, check the corresponding items in the Preferences dialog,
then click OK to save the settings.
Applying an archive policy
JReport Server uses an archive policy to control resource versions. The archive policy can be applied to
a single resource individually or to many resources in a folder as a whole. It can also be applied when
you run (Advanced Mode) or schedule a report set.
The archive policy includes settings for controlling the use of multiple versions for a specified resource,
and the maximum version amount that will be listed in the version table:
●
●
Archive as New Version
Specifies whether to use multiple versions for the specified resource. Available only for resources in
the resource tree.
Maximum Number of Versions
Specifies the maximum number of versions that will be listed in the version table of the resource. By
default the number of versions is unlimited.
If there is no archive policy specified for a resource, the resource will inherit the archive policy from its
parent object. If afterwards you then specify an archive policy for the resource, the new policy will
override the one inherited from the parent object.
Applying an archive policy to resources in the resource tree
To apply an archive policy to a resource in the resource tree, refer to the table below:
If you
want to
Apply
archive
policy to a
folder
Then do
1. Access the Properties dialog for the folder (for how to
access the dialog, see Changing resource and folder
properties).
2. In the dialog, set the Apply Archive Policy option as
required, then click OK.
Apply
archive
policy to a
resource
1. Access the Properties dialog for the resource.
2. In the Properties dialog, set the Apply Archive Policy
option as required, then click OK.
Result
The archive policy will be
applied to all of the
folder content.
Note: This does not
include resources that
already have individually
applied archive policies.
The archive policy is
applied to the resource,
overriding its inherited
archive policy.
Note: If you leave the
Apply Archive Policy
option unchecked, the
resource will inherit the
archive policy from its
parent object, for
example, the folder it
resides in.
Apply
archive
policy when
running a
task in
Advanced
mode
1. On the JReport Console > Reports page, browse to the
resource you want to run.
Apply
archive
policy when
scheduling
a task
1. On the JReport Console > Reports page, browse to the
resource you want to schedule.
2. Put the mouse pointer over the resource row and click
The archive policy will be
applied to a result type
resource.
Note: If you leave the
on the floating toolbar. Apply Archive Policy
option unchecked, the
3. In the Archive tab, check the Auto Archive Properties resource will use its old
option.
archive policy or inherit
the archive policy from
4. Finish the other relevant information, making sure that
its parent object, for
Archive Location is set to the resource tree folder.
example, the folder it
resides in.
5. Set the Apply Archive Policy option as required, and
then click Finish.
the Advanced Run button
2. Put the mouse pointer over the resource row and click
the Schedule button
on the floating toolbar.
3. In the Publish tab, click the To Version sub tab, then
check the Publish to Versioning System option.
4. Finish the other relevant information, making sure that
Archive Location is set to the resource tree folder.
5. Set the Apply Archive Policy option as required, then
click Finish.
The archive policy is
applied to a result type
resource.
Note: If you leave the
Apply Archive Policy
option unchecked, the
resource will use its old
archive policy or inherit
the archive policy from
its parent object, for
example, the folder it
resides in.
Applying an archive policy to the built-in version table
The above table applies to the resource in the resource tree only. The versions in the built-in version
folder are controlled by its own archive policy.
To apply an archive policy to the built-in version table, refer to the table below:
If you
want to
Then do
Apply
archive
policy to a
built-in
version table
1. Access the version table for the resource (report set type) (for how to access the
table, see Browsing versions).
Apply
archive
policy when
running a
task in
Advanced
mode
1. On the JReport Console > Reports page, browse to the resource you want to run.
2. In the Report Set Result Versions tab, check the Maximum Number of Versions
option, specify the versions to be saved as required, then click OK.
2. Put the mouse pointer over the resource row and click the Advanced Run button
on the floating toolbar.
3. In the Archive tab, check the Auto Archive Properties option.
4. Finish the other relevant information, making sure that Archive Location is set to
the Built-in Version Folder.
5. Set the Apply Archive Policy option as required, then click Finish.
Apply
archive
policy when
scheduling
a task
1. On the JReport Console > Reports page, browse to the resource you want to
schedule.
2. Put the mouse pointer over the resource row and click the Schedule button
on the floating toolbar.
3. In the Publish tab, click the To Version sub tab, then check the Publish to
Versioning System option.
4. Finish the other relevant information, making sure that Archive Location is set to
Built-in Version Folder.
5. Set the Apply Archive Policy option as required, then click Finish.
Deleting versions
After creating versions, periodically you may want to delete some expired or unused versions. You can
choose to remove these versions manually or configure JReport Server to delete them automatically.
When removing the versions using the user interface, the archive versions stored on disk are also
physically deleted.
Deleting manually
To delete some versions of a resource manually, first open the version table of the resource (for how to
access the table, see Browsing versions), then:
●
For administrators, in the version table, check the checkbox ahead of the versions that you want to
remove and then click the Delete link.
For end users, in the version table, find the version you want to remove, then:
●
❍
Select the version row and click Edit > Delete on the task bar.
❍
Select the version row, right-click in the row and click Delete on the shortcut menu.
❍
Put the mouse pointer over the version row and click the Delete button
.
After receiving "The version has been deleted" message, view the version information again. You will
find that the version you selected has now been removed from the version table.
Deleting automatically
There are two approaches to automatically deleting versions:
●
Apply Archive Policy
The Apply Archive Policy controls the number of versions that will be recorded in the version table of
a resource.
When creating a resource version, you can specify the maximum number that will be saved. If the
number of versions exceeds the specified number, the oldest version will automatically be removed
from the version list.
For example, if you specify Maximum Number of Versions as 5, when the sixth version is created, the
first version will automatically be removed.
●
Result Auto-delete
Result Auto-delete controls the duration of versions. It is only applicable to report set result versions.
When creating a report set result version, you can specify a certain period of time to keep the
version. The version will automatically be removed from the version list after the number of days or
the specified date.
For example, if you specify "Result Expires in 30 days", it will be automatically removed 30 days after
its creation.
Advanced version topics
The following sections cover advanced version topics for administrators and developers. It will give you
an understanding of version structure in depth.
●
Version resource structure in the server database
●
Storage of versions on disk
●
Topics for developers
Version resource structure in the server database
Information about versions, folders, nodes, the security system, the completed table, and server
runtime performance are all stored in the default database Derby. Also, since JReport Server provides
multiple database support, you can configure your own database to store server data. For production
systems it is recommended to use the same DBMS as your database application so the server data will
be backed up with the rest of the application.
This section discusses how view resources were stored in the server database - Derby.
To open the Derby database, use Apache toolkit ij. ij is Derby's interactive JDBC scripting tool. It is a
simple utility for running scripts or interactive queries against a Derby database. ij is a Java application
that you start from a command window such as an MS-DOS Command Window or the Unix shell. ij
provides several non-SQL commands for ease in accessing a variety of JDBC features for testing.
To open the defaultRealm.* files:
1. Start ij.bat in <server_install_root>\derby\bin.
2. Connect to database. To connect to a Derby database, you need to perform a valid database
connection URL. ij automatically loads the appropriate driver based on the syntax of the URL. The
following example shows how to connect defaultRealm by using the Connect command and the
client driver:
D:>java org.apache.derby.tools.ij
ij version 10.5
ij> connect 'jdbc:derby://localhost:1527/defaultRealm';
ij>
3. After connected to the database successfully, ij allows the execution of Derby SQL statements
interactively or via scripts.
Note: All statements must be terminated with a semicolon.
Example 1: Finding result version information from the database
Execute the command SELECT * FROM RESULTVERSION_2 WHERE CREATOR='admin'; to
retrieve result versions which were created by the user 'admin'.
Example 2: Finding catalog version information from the database
Execute the command SELECT * FROM CATALOGVERSION_2; to fetch all catalog versions.
4. For more information about Derby and ij, please visit Apache website http://db.apache.org/
derby/.
Note: Don't delete, update or insert data into the database. It is recommended that all modifications to
the database be done from JReport Server instead of in the ij. Otherwise, it may result in JReport
Server crashing if invalid data is found.
Storage of versions on disk
A working directory <reporthome>\history has been defined for use by the system database. Rather
than store all the actual resources in the DBMS, the DBMS stores only pointers to the actual files.
JReport Server uses this folder to store all of the parameter information and version files. By default,
JReport Server creates 100 folders in its history folder (<reporthome>\history), and each of these
folders can contain a further 3000 subfolders. These subfolders however cannot hold any further
subfolders.
First, JReport Server puts the history information, such as archive versions and parameter files in folder
1. When the amount of subfolders in folder 1 reaches the maximum subfolder amount, it starts to put
files in folder 2. When folder 2 is filled up, folder 3 will be used, then folder 4, folder 5, and so on, until
all 100 folders have been filled up.
When all the 100 folders have been filled up with subfolders, JReport Server will then create another
100 folders, named 101 to 200, and will continue to store the history information in these folders,
starting from folder 101. When the second 100 folders are full, another 100 folders will be created, and
so on.
Changing the storage folder
JReport Server provides a server.properties file for you to configure the server. If you want to specify a
folder other than <reporthome>\history to store the version files, you can set the folder for the
resource.share.hist.dir property in this file.
The following describes the process of changing the storage folder:
1. After installing and starting JReport Server, the server.properties file is generated in the
<install_root>\bin folder. You can then set the folder that your server data is to be stored in, in
the resource.share.hist.dir property as resource.share.hist.dir=D:\ServerData.
2. Delete the properties, profiling and history sub folders from the <install_root> folder.
3. Restart JReport Server. The demo report sets/catalogs in the <reporthome>\jreports directory
will now be stored in the specified ServerData folder.
4. After the above procedures have been performed, all parameter information and version files
created will be stored in the specified ServerData folder.
Topics for developers
Other than implementation from the JReport Server UI, advanced users are also allowed to manage versions
using the JReport Server API and RMI API.
The JReport Server API and RMI API is a set of Java programming interfaces that run report sets, explore
report resources, and provide access control for report servers. It is mainly used for writing servlets, JSPs
and Java applications with report server features. You can find documentation that describes the usage of
the JReport Server API in the section JReport Server APIs and Remote APIs.
Program examples to show how to publish a report set to the versioning system, how to run a report set,
and how to publish a catalog/report set can be found in the <install_root>\help\server\en\samples
folder.
Applying an archive policy
You may find that whenever you create catalog/report set template versions, or report set result versions,
an archive policy is applied. The archive policy is a series of settings for controlling whether or not to use
multiple versions for a specific resource, for specifying the maximum version amount and archive location,
and for controlling whether or not to auto-delete versions after a certain period of time.
Archive policy parameters
Parameters
Values
Description
APIConst.
TAG_ENABLE_ARCHIVE_POLICY
true
Whether or
not to apply a
new archive
policy.
APIConst.TAG_AUTO_ARCHIVE
true
/false
/false
APIConst.
TAG_ARCHIVE_LOCATION
Parameters
Values
Description
Whether or
not to autoarchive the
viewed result.
0
Built-in
version folder
is used as the
result
archiving
location.
1
The My
Reports folder
is used as the
result
archiving
location.
APICONST.
TAG_ARCHIVE_MY_DESTINATION
Sub folder name in
the My Reports
folder for this user.
For example, /
rtp100, which
means to output the
file to /
USERFOLDERPATH/
<userid>/rtp100.
2
The Public
Reports folder
is used as the
result
archiving
location.
APICONST.
TAG_ARCHIVE_PUBLIC_DESTINATION
APIConst.
TAG_REPLACE_OLD_VERSION
true
APIConst.
TAG_ARCHIVE_NEW_VERSION
true
APICONST.
TAG_NEED_MAXVERSION
0 or N
The number
of versions to
keep for this
report set
result.
APICONST.TAG_NEED_EXPIRE
true
Whether or
not to auto
delete this
version.
/false
/false
/false
APIConst.TAG_EXPIRE_METHOD
0
1
Sub folder name in
the Public Reports
folder for all the
users. For
example, /
ActimizeTest/rtp100
Whether or
not to replace
the previous
version.
Whether or
not to archive
the next
version as a
new version.
Version
expires after
a number of
days.
APIConst.DAY_EXPIRE
Number
The number of days
until a version
expires.
APIConst.TAG_EXPIRE_YEAR
Number
The year of
expiration.
APIConst.TAG_EXPIRE_MONTH
Number
The month of
expiration.
APIConst.TAG_EXPIRE_DATE
Number
The date of
expiration.
Version
expires after
a certain
date.
Scheduling report set results to the versioning system
You can use the Java class HttpRptServer with the following methods to schedule report set results to the
versioning system: runTask(), and submitScheduledTask().
There is a Hashtable argument for these two methods, which includes the parameters used for running
tasks. Here are some parameters that you will need when specifying your Hashtable for scheduling to
version:
Parameters
Values
Description
APICONST.
TAG_TO_VERSION
true
Whether or not
to schedule to
the versioning
system.
/false
Parameters
Values
Description
APICONST.
TAG_TO_VERSION_EXCEL
true
APICONST.
TAG_TO_VERSION_HTML
true
APICONST.
TAG_TO_VERSION_PDF
true
APICONST.
TAG_TO_VERSION_PS
true
APICONST.
TAG_TO_VERSION_RSD
true
APICONST.
TAG_TO_VERSION_RST
true
APICONST.
TAG_TO_VERSION_RTF
true
APICONST.
TAG_TO_VERSION_TXT
true
APICONST.
TAG_TO_VERSION_XML
true
/false
/false
/false
/false
/false
/false
/false
/false
/false
Whether or not
to schedule to
an Excel
version.
Whether or not
to schedule to
an HTML
version.
Whether or not
to schedule to
a PDF version.
Whether or not
to schedule to
a PostScript
version.
Whether or not
to schedule to
a DHTML
result version.
Whether or not
to schedule to
an rst version.
Whether or not
to schedule to
an rtf version.
Whether or not
to schedule to
a TEXT
version.
Whether or not
to schedule to
an XML
version.
Obtaining version information
You will be able to fetch version records with the following function calls:
1. Get the resource manager from the HttpRptServer:
public ResourceManager getResourceManager()
2. Then use the following methods to obtain a version:
❍
❍
❍
❍
Report template version
getReportVersions(java.lang.String userID,java.lang.String rptName)
Report Set Result version
getResultVersion(java.lang.String userID, java.lang.String rptName, int versionNumber)
Catalog version
getCatalogVersions(java.lang.String userID, java.lang.String catName)
Result version
getResultDocVersions(java.lang.String userID, java.lang.String resultDocName)
Note: userID is only used for checking privilege in this method, and not for filtering the submitter.
Managing security
JReport Server provides a security system which allows you to set up and maintain security on the
server and protect your resources from inappropriate access by users.
This section focuses on accomplishing security management in JReport Server by means of setting up
roles, users, and assigning certain permissions.
You can find other information related to server security in the sections Security and Server security
system.
This section covers the following topics:
●
Managing realms
●
Managing user accounts
●
Managing groups
●
Managing roles
●
Managing privileges
●
Managing aliases
Managing realms
To manage realms, you must be a member of the administrator role in order to access the JReport Administration page.
Then, on the JReport Administration page, click Security on the system toolbar and go to the Realm panel, where you
can manage the realms as required.
The following topics detail how to manage a realm:
Creating a new realm
1. Click the Create a New Realm link.
2. In the New Realm dialog, type a name for the realm, and select an authentication mode as the scheme.
Basic Authentication uses the base64 encryption method as defined by RFC 1945. Digest Authentication uses the
MD5 encryption method as defined by RFC 2069. Basic Authentication is lower security but is usually what is used on
intranets. Digest Authentication provides much higher security and is usually used with SSL in a highly secure
environment.
3. When done, click OK, and the realm will then be added to the realm list table.
When a new realm is created, it is assigned with built-in users, groups, and the default resource tree. Remember to
activate the correct realm before allowing clients to visit.
Activating a realm
The realm must be activated before its content, such as resources, users, groups, and roles, and it can then be accessed
by the client users. There can be only one active realm at any time.
To activate a realm:
1. On the JReport Administration page, click Configuration on the system toolbar, and then click Service from the
drop-down menu.
2. Select the realm you want to activate from the Active Realm drop-down list.
3. Click Save to apply the settings.
4. Restart JReport Server so that the changes can take effect.
Managing the users, groups and roles in an inactive realm
Users, groups and roles are only available when the realm they belong to is active. However, users, groups and roles in
an inactive realm can still be managed by users in the administrator role.
To manage users, groups and roles in an inactive realm:
1. Click the Select link in the Control column of the realm list table to select the realm you want to manage.
All realms in JReport Server are listed in the realm list table. The State column shows the status of the realms. An
active realm is marked as Active Realm. A selected realm is marked as Selected Realm. If the realm is both active
and selected, it is marked as Active Realm.
2. Click Security and then User, Group or Role to manage the selected realm.
Information about users, groups and roles in the selected realm is listed in the User, Group, and Role panels.
Deleting a realm
If you find a realm is no longer required, you can delete it by clicking the corresponding Delete link in the Control column
of the realm list table.
Managing user accounts
To manage user accounts, you must be a member of the administrator role in order to access the JReport Administration
page. Then, on the JReport Administration page, click Security on the system toolbar and go to the User panel, where you
can manage the user accounts as required.
The following topics describe how to manage a user account.
Creating a new user account
1. In the Security > Realm panel, select a realm to which you want to add the user.
2. In the Security > User panel, click the Create a New User link.
3. In the New User dialog, provide the information for the user as required.
4. Click OK, and the user will then be added to the user account table.
Modifying a user account
1. In the Security > Realm panel, select the realm in which the user is.
2. In the Security > User panel, click the name of the user.
3. In the Edit User dialog, edit the user information as required.
4. When done, click OK to accept the changes.
Adding roles to a user
A user can be assigned more than one role. A user that holds multiple roles has all the privileges that these roles have.
To add roles to a user:
1. In the Security > Realm panel, select the realm in which the user is.
2. In the Security > User panel, click the role(s) link of the user.
3. In the displayed page, click the Add Roles link.
4. In the role table, check the roles that you want to add to the user, then click the Add button.
5. Click Security > User to return to the user list.
Adding a user to groups
A user can be assigned to more than one group. A user that belongs to multiple groups has all the privileges that these
groups have.
To add a user to some groups:
1. In the Security > Realm panel, select the realm in which the user is.
2. In the Security > User panel, click the group(s) link of the user.
3. In the displayed page, click the Add Groups link.
4. In the group table, check the groups that you want to add the user to, then click the Add button.
5. Click Security > User to return to the user list.
Removing roles/groups from a user
If you want to remove certain roles a user holds, or some groups a user belongs to from a user, follow the steps below:
1. In the Security > Realm panel, select the realm in which the user is.
2. In the Security > User panel, click the role(s)/group(s) link of the user.
3. In the roles/groups table of the user, check the roles/groups you want to remove, then click the Remove button.
Once a role or group is removed from a user, the user will no longer have the privileges the role or group has.
Auditing a specific user
You can have the server to audit a user, and the resulting information will be written into the log files.
To audit a user:
1. In the Security > Realm panel, select the realm in which the user is.
2. In the Security > User panel, click the Auditing link of the user.
3. In the Auditing dialog, specify the events which you want to have audited for this user.
4. When done, click OK to accept the changes.
Changing the password of a user
1. In the Security > Realm panel, select the realm in which the user is.
2. In the Security > User panel, click the Change Password link of the user.
3. In the Change Password dialog, specify the password of the current logged in user.
4. Specify the new password for the user and confirm it by entering it a second time.
5. When done, click OK to accept the changes.
Setting user preferences
1. In the Security > Realm panel, select the realm in which the user is.
2. In the Security > User panel, click the Preferences link of the user.
3. In the Preferences dialog, specifies the server preferences and DHTML preferences for the user accordingly.
4. When done, click OK to accept the changes.
Deleting a user account
If you find a user account is no longer required, you can delete it by clicking the corresponding Delete link in the Control
column of the user account table. However, the built-in user accounts, such as admin and guest, and users that hold roles
other than the everyone role, or that belong to any group, cannot be deleted. A user cannot delete himself from the user list
either.
Managing groups
To manage groups, you must be a member of the administrator role in order to access the JReport Administration page.
Then, on the JReport Administration page, click Security on the system toolbar and go to the Group panel, where you
can manage the groups as required.
The following topics explain how to manage a group.
Creating a new group
1. In the Security > Realm panel, select a realm to which you want to add the group.
2. In the Security > Group panel, click the Create a New Group link.
3. In the New Group dialog, specify the settings for the new group.
4. When done, click OK, and the new group will then be added into the group list table.
5. Click Security > Group to return to the group list table.
Modifying a group
1. In the Security > Realm panel, select the realm in which the group is.
2. In the Security > Group panel, click the name of the group.
3. In the Edit Group dialog, edit the group information as required.
4. When done, click OK to accept the changes.
Editing members of a group
You can edit members of a group, such as adding a new member, or removing a member from the group.
To edit the members in a group:
1. In the Security > Realm panel, select the realm in which the group is.
2. In the Security > Group panel, browse to the specific group, and then click the member(s) link.
3. Edit the members of the group as follows:
❍
❍
To remove a member from the group, check the member and then click the Remove button.
To add a member to the group, click the Add Members link, check the new member, and then click the Add
button.
Notes:
●
A group can have more than one child member and parent member.
●
A parent member cannot be added to the current group as its child member.
Deleting a group
If you find a group is no longer required, you can delete it by clicking the corresponding Delete link in the Control column
of the group list table. However, groups that are not empty, having child members or parent members, cannot be deleted.
Managing roles
To manage roles, you must be a member of the administrator role in order to access the JReport Administration page. Then,
on the JReport Administration page, click Security on the system toolbar and go to the Role panel, where you can manage
the roles as required.
The following topics describe how to manage a role.
Creating a new role
1. In the Security > Realm panel, select a realm to which you want to create the role.
2. In the Security > Role panel, click the Create a New Role link.
3. In the New Role dialog, specify the settings for the role.
4. Click OK, and the new role will then be added to the role list table.
Modifying a role
1. In the Security > Realm panel, select the realm in which the role is.
2. In the Security > Role panel, click the name of the role.
3. In the Edit Role dialog, edit the role information as required.
4. When done, click OK to accept the changes.
Editing members of a role
You can edit the members of a role, such as adding a new user or role, or removing a member from the role.
To edit the members in a role:
1. In the Security > Realm panel, select the realm in which the role is.
2. In the Security > Role panel, browse to the specific role, and then click the member(s) link.
3. Edit the members of the role as follows:
❍
To remove a member from the role, check the member and then click the Remove button.
❍
To add a member to the role, click the Add Members link, check the new member, and then click the Add button.
Notes:
●
A role can have more than one child group, child role and parent role.
●
●
A parent role cannot be added to the current role as its child.
Some members cannot be removed from the role they belong to, such as admin in the administrator role and guest in the
everyone role. A user cannot remove himself from the administrators role.
Deleting a role
If you find a role is no longer required, you can delete it by clicking the corresponding Delete link in the Control column of the
role list table. However, the built-in roles, such as administrators and everyone, and roles that are not empty, cannot be
deleted.
Managing privileges
JReport Server offers two types of privileges for users, groups, and roles: Publish and Advanced Properties. Users that are
granted the Publish privilege will be able to publish resources to JReport Server, while users that have the privilege of
Advanced Properties are allowed to view advanced information of version properties such as catalog connections and report
set related resources.
To manage privileges, you must be a member of the administrator role in order to access the JReport Administration page.
Then on the JReport Administration page, click Security on the system toolbar and select Realm from the drop-down
menu. Select the realm in which the role/group/user is. Then click Security on the system toolbar and select Privilege
from the drop-down menu. You can then grant and remove role/group/user privileges in the panel.
Granting role/group/user privileges in the Privilege panel
●
●
For roles/groups/users that already have privileges
Roles/groups/users that already have privileges are listed in the Role Privileges/Group Privileges/User Privileges table. To
assign privileges to them, you just need to check the checkbox below the type of privilege you want to grant. Then click
Save to apply the changes.
For roles/groups/users that have had neither of the privileges
1. In the Privilege panel, click the Add button. The Privilege dialog will then appear.
2. To assign privileges to a role/group/user, select the Role Privileges/Group Privileges/User Privileges tab accordingly.
3. Choose the specific role/group/user from the list by selecting the checkbox before its name.
4. Check the checkbox below the type of privilege you want to grant.
5. Click the OK button to apply the changes. The role/group/user that has been granted new privileges will be added
into the Role Privileges/Group Privileges/User Privileges table.
Removing privileges from a role/group/user in the Privilege panel
To remove privileges from a role/group/user, you can choose either of the following two methods:
●
●
To remove a privilege from a role/group/user, uncheck the checkbox below the privilege, and then click Save to apply
the changes.
To remove all privileges from a role/group/user, first select the role/group/user, and then click the Remove button. By
doing this, the role/group/user will be deleted from the Role Privileges/Group Privileges/User Privileges table.
Granting and removing role/group/user privileges in the Role/Group/User panel
1. In the Security > Realm panel, select the realm in which the role/group/user is.
2. In the Security > Role/Group/User panel, click the underlined role/group/user name.
3. In the Edit Role/Edit Group/Edit User dialog, check or uncheck the Publish or Advanced Properties privileges.
4. Click the OK button to apply the changes.
Managing aliases
JReport Server organizes its files and directories into a Resource Tree. Aliases are used to provide certain "views" of the
tree, and allow different users to have different views. For example, you can set an alias resource tree (based on the
resource tree) for Mary in Sales, which enables her to only see the Sales resource node, allowing her direct access to
the report set files she is interested in. An alias is a combination of users and the resource node.
However, in order to manage aliases, you must be a member of the administrator role in order to access the JReport
Administration page.
Setting an alias resource tree for a role, group, or user
1. Log onto the JReport Administration page.
2. Click Security on the system toolbar and select Realm from the drop-down menu.
3. Select the realm in which the role, group, or user is.
4. Click Security on the system toolbar and select Alias from the drop-down menu.
5. Set an alias resource tree for a role/group/user, click the corresponding set alias link.
6. Select a role/group/user, and then click the Next button to open the Set Alias dialog.
7. Click the New button to create a new alias node in the root node.
8. In the Alias Name field, replace the default name newAlias with a name for the alias.
9. Click the Browse button to specify a destination resource from the server resource tree that is to be associated
with the new alias node. If you do not want the alias node to be shown in the alias resource tree, check the Hide
This Alias option.
10. Click the OK button to complete the creation of the new alias node.
11. Use the following steps to create further alias nodes:
a. Select the node in which you want to create a new alias node.
b. Click New to create.
c. In the Alias Name field, replace the default name newAlias with a name for the alias.
d. Click the Browse button to specify a destination resource from the server resource tree that is to be
associated with the new alias node.
e. If you do not want the alias node to be shown in the alias resource tree, check Hide This Alias.
f. Click the OK button to complete the creation of the new alias node.
12. After you have finished with the alias resource tree, click the Close button to exit the dialog.
You will now see that the just set role/group/user is listed in the corresponding alias list in the Alias panel.
Viewing the alias resource tree of a role, group, or user
1. In the Security > Realm panel, select the realm in which the role, group, or user is.
2. In the alias list of the Security > Alias panel, select the underlined name of the role/group/user you want to view.
3. The Set Alias dialog will then be opened for you to view the alias resource tree information of the role/group/user.
Editing the alias resource tree of a role, group, or user
1. In the Security > Realm panel, select the realm in which the role, group, or user is.
2. In the alias list of the Security > Alias panel, select the underlined name of the role/group/user you want to edit.
3. The Set Alias dialog will then be displayed for you to edit the alias resource tree of the role/group/user. You can
edit by hiding/unhiding an alias node, creating a new alias node, or removing an existing alias node.
❍
To hide/unhide an alias node:
a. Select the alias node in the alias resource tree.
b. Check/uncheck the Hide This Alias option, and then click OK.
❍
To create a new alias node:
a. Select the alias node in which you want to create a new alias node.
b. Click New.
c. In the Alias Name field, replace the default name with a name.
d. Click the Browse button to search for the destination resource from the Server resource tree that is to be
associated with the alias node.
e. Click OK to create the alias node.
❍
To remove an existing alias node:
a. Select the alias node from the alias resource tree.
b. Click Remove to remove the alias node.
Notes:
●
An alias tree is based on the resource nodes (not virtual resource nodes) of the resource tree.
●
By default, the alias resource tree root for each user refers to the resource tree root.
●
When an alias tree is activated for a user, all resource access is then controlled by the alias resource tree.
Managing tasks
Usually, a task is a set of operations you perform on JReport Server to achieve a goal, such as
publishing a folder, deleting a resource, and viewing resource properties. However, the tasks that the
JReport Server manages are those associated with report-running issues, the report-running tasks.
JReport Server allows you to quickly view a report set result (Run), view a report set result using
selected options and parameters (Advanced Run), and schedule a report set to run unattended at a
specific time or periodically (Schedule). These are the fundamental modes that JReport Server uses to
perform its report-running tasks.
You can view the status of these report-running tasks, such as scheduled tasks that are waiting to be
performed by JReport Server, the tasks that are currently being performed, and the tasks that have
already been performed.
This section describes the following:
●
Accessing the task information tables
●
Managing tasks in the task tables
●
Task-level timeout for advanced run and schedule tasks
Accessing the task information tables
JReport Server collects task information and manages it in a set of tables.
Tasks that are scheduled
●
❍
❍
❍
Scheduled table
Shows the status information of scheduled tasks that are waiting to be performed, such as task ID,
whether the task is enabled, previous running time, and next running time.
Running table
Shows the status information of tasks that are currently being performed, such as task ID, time
when the task was started, and engine status.
Completed table
Shows the status information of tasks that have already been performed, such as task ID, time
when the task was completed, whether or not the task was successfully performed, result files, and
error messages.
Tasks that are performed in the Run, Advanced Run or Background Run mode
●
❍
Background Tasks table
Shows the status information of the tasks submitted using the Run, Advanced Run, or Background
Run mode, such as report name, report set path and name, catalog path and name, running
format, time when the task was started/completed, time elapsed since the task was performed,
and the status of the task.
To access a specific table, on the JReport Console page, click My Tasks on the system toolbar, then
click the corresponding tab. The following shows the columns that are displayed in each table in detail.
Tip: Some columns in the tables are not shown by default. To have them displayed, switch to the
table, click Tools > Preferences on the task bar of the My Tasks page, check the corresponding items
in the Preferences dialog, then click OK to save the settings.
Scheduled table
The Scheduled table consists of the following columns:
Column
Description
Schedule Name
The name of the schedule task.
Task ID
The internal ID for this task, which is a unique time stamp.
Report Set
The report set path, name and its status.
Reports
The name of the reports in the report set that are included in this task.
Next Run Time
The next scheduled time for when this task is to be performed.
Last Run Time
The last scheduled time this task was performed.
Task Type
The type of task, such as Versioning System, File System, E-mail, or Printer.
Is Enabled
Shows whether this task is enabled. Can be Enabled or Disabled.
Is Successful
Shows whether or not the last running of this task was successfully performed.
The value true means that the last running was performed successfully and false
means the task failed. If the column is empty, the task has not been run before.
Catalog
The catalog path and name that the report set belongs to.
Launch Type
The way in which this task is executed, such as Repeatedly or One Time.
Requester
The user who submitted this task.
Running table
The Running table consists of the following columns:
Column
Description
Schedule Name
The name of the scheduled task.
Task ID
The internal ID for this task (a unique time stamp).
Report Set
The report set path and name.
Reports
The name of the reports in the report set that are included in this task.
Start Time
The time when this task was started.
Task Type
The type of the task, such as Versioning System, File System, E-mail, or Printer.
Catalog
The catalog path and name that the report set belongs to.
Launch Type
The way in which this task is executed, such as Repeatedly, One Time, or Instant.
Requester
The user who submitted this task.
Parameter File
The parameter file name. You can click the underlined file name to view the
parameter values.
Parameters
The list of parameter values according to the size specified.
To specify the size, click Preferences on the task bar, then in the Preferences
dialog, set a value for the Parameter Display Size option as required.
Engine Status
The current status of the JReport engine, such as record fetching, grouping,
memory paging, and engine initializing.
Completed table
The Completed table consists of the following columns:
Column
Description
Schedule Name
The name of the scheduled task.
Task ID
The internal ID for this task (a unique time stamp).
Is Successful
Shows whether this task was successfully performed. The value true means that
the task was performed successfully and false that the task failed.
Report Set
The report set path and name.
Reports
The name of the reports in the report set that are included in this task.
Completed Time
The time when this task was completed.
Task Type
The type of task, such as Versioning System, File System, E-mail, or Printer.
Catalog
The catalog path and name that the report set belongs to.
Launch Type
The way in which this task is executed, such as Repeatedly, One Time, or Instant.
Requester
The user who submitted this task.
Parameter File
The parameter file name. You can click the underlined file name to view the
parameter values.
Parameters
The list of parameter values according to the size specified.
To specify the size, click Preferences on the task bar, then in the Preferences
dialog, set a value for the Parameter Display Size option as required.
Engine Status
The status of JReport Engine when the task was completed, such as record
fetching, grouping, memory paging, and engine initializing. When a task fails to
perform, here you can see the status of the engine at the time of the error.
Error Message
The error message for when the task failed to complete the task.
Result Files
The report set result file names and links to the report set result files.
Background Tasks table
The Background Tasks table consists of the following columns:
Column
Description
Reports
The name of the reports in the report set that are included in this task.
Result
The result in the format in which the report ran.
Report Set
The path and name of the report set that the reports belong to.
Start Time
The time when this task was started.
Finish Time
The time when this task was completed.
Status
The status of the task.
Catalog
The path and name of the catalog that the report set belongs to.
Elapse Time
The time elapsed since the start of this task.
Catalog Version
Number
The version number of the catalog that the report set belongs to.
Report Set Version
Number
The version number of the report set.
Parameters
The parameters of the report set.
Cancelled
Shows whether the task is cancelled or not.
Managing tasks in the task tables
You can manage tasks in the task tables according to your requirements. For example, you can run a
scheduled task at once, or stop a running task from running.
Performing common tasks
Some task management operations are common to the task tables.
If you want to
Then do
Select a task
Click in the row that the task is in.
Select multiple tasks
Select the rows that the tasks are in while holding the Ctrl button.
Remove a task
●
●
●
Select the row the task is in and click Edit > Delete on the task
bar of the My Tasks page.
Select the row the task is in, right-click in the row and select
Delete from the shortcut menu.
Put the mouse pointer over the row the task is in and click the
Delete button
on the floating toolbar.
Managing tasks in the Scheduled table
If you want to
Then do
Create a new scheduled task
Click New Schedule on the task bar of the My Tasks page, then in
the New Schedule dialog, specify how to create the task: by selecting
a report set or by importing a script file.
Run a task at once
●
●
●
Select the row the task is in and click Run on the task bar of the
My Tasks page.
Select the row the task is in, right-click in the row and select Run
from the shortcut menu.
Put the mouse pointer over the row the task is in and click the
Run button
Duplicate a task
●
●
●
on the floating toolbar.
Select the row the task is in and click Edit > Copy on the task
bar of the My Tasks page.
Select the row the task is in, right-click in the row and select
Copy from the shortcut menu.
Put the mouse pointer over the row the task is in and click the
Copy button
on the floating toolbar.
Enable a task
●
●
●
Select the row the task is in and click Edit > Enable on the task
bar of the My Tasks page.
Select the row the task is in, right-click in the row and select
Enable from the shortcut menu.
Put the mouse pointer over the row that the task is in and click
the Enable button
Disable a task
●
●
●
on the floating toolbar.
Select the row the task is in and click Edit > Disable on the task
bar of the My Tasks page.
Select the row the task is in, right-click in the row and select
Disable from the shortcut menu.
Put the mouse pointer over the row the task is in and click the
on the floating toolbar.
Disable button
The disabled task will not be performed until you enable it again.
Export a scheduled task to a
script on disk
See Importing and exporting scheduled tasks for details.
Import a scheduled task from
a script saved on disk
See Importing and exporting scheduled tasks for details.
Notes:
●
●
You can perform the Run action on a disabled scheduled task.
When copying a disabled scheduled task or exporting it to script, the disabled state will not be
included since it is not a property of the task.
Managing tasks in the Running table
If you want to
Stop a task from running
Then do
●
●
●
Select the row the task is in and click Stop on the task bar of the
My Tasks page.
Select the row the task is in, right-click in the row and select
Stop from the shortcut menu.
Put the mouse pointer over the row the task is in and click the
Stop button
on the floating toolbar.
Note: When you stop a bursting task from running, some sub tasks
in the bursting task may have already been finished, so some results
may have been sent to some recipients.
View parameter information
Refer to the Parameters column of the Running table.
Managing tasks in the Completed table
If you want to
Then do
View detailed task running
information
●
●
●
●
Click the schedule name of the task.
Select the row the task is in and click Edit > Details on the task
bar of the My Tasks page.
Select the row the task is in, right-click in the row and select
Details from the shortcut menu.
Put the mouse pointer over the row the task is in and click the
Details button
View parameter information
on the floating toolbar.
Refer to the Parameters column of the Completed table.
Managing tasks in the Background Tasks table
If you want to
Stop a task submitted using
Background Run mode from
running
Then do
●
●
●
Select the row the task is in and click Edit > Stop on the task
bar of the My Tasks page.
Select the row the task is in, right-click in the row and select
Stop from the shortcut menu.
Put the mouse pointer over the row the task is in and click the
Stop button
Restart a stopped task
●
●
●
Select the row the task is in and click Edit > Restart on the task
bar of the My Tasks page.
Select the row the task is in, right-click in the row and select
Restart from the shortcut menu.
Put the mouse pointer over the row the task is in and click the
Restart button
View parameter information
on the floating toolbar.
on the floating toolbar.
Refer to the Parameters column of the Background Tasks table.
Task-level timeout for advanced run and schedule tasks
A task-level timeout mechanism is introduced in order to avoid the never-finished running tasks
consuming server resources and thus decreasing the server performance. With the mechanism, you
can specify a time duration for a task, and ask JReport Server to cancel the task or to notify you or
someone else of the task status via e-mail if the task has not yet finished running when the task
duration is up. To do this:
1. Do either of the following to enable the task-level timeout mechanism.
❍
❍
In the server.properties file, set the task.duration.en able property to true.
On the JReport Administration page, click Configuration on the system toolbar, select
Advanced, and then check the Enable Task Duration option.
2. Set task duration check frequency. By default, JReport Server checks task duration every 30
seconds. The period value can be reset either by the task.duration.che ck_cycle property in the
server.properties file or by the Status Refresh Interval option in the Configuration > Advanced
panel on the JReport Administration page. Note that the value must be an integer greater than 0.
Since task duration check frequency affects server performance, it is recommended that you set
the value according to your system environment.
3. Restart JReport Server if you have modified the Advanced panel.
4. Use the Duration tab in the Advanced Run and Schedule dialogs to specify task duration.
a. In the Timeout text box, specify the time limit for when the task can run before notifying of
the timeout or canceling the task.
b. If you want to notify someone of the task status if the task has not yet finished running when
the task duration is up, check Notify by e-mail after the specified time and specify the
mail address in the Mail To text box.
c. If you want JReport Server to cancel the task when the task duration is up but the task is not
finished yet, check Cancel the task after the specified time.
d. Click Finish to submit the task.
Then, when the specified task duration is up but the task has not finished running,
For an Advanced Run task,
●
❍
❍
If you have specified to have server cancel the task when the task duration is up, the task will be
cancelled automatically, however a record for the task will be still remained in the Background
Tasks table of the My Tasks page, shown with a sign of cancellation.
In the Duration tab, if you haven't checked the option Cancel the task after the specified time, the
task will be switched to run in background mode when the task duration is up, in which case, you
can choose to cancel the task manually. To do this, in the Background Tasks table,
■
Select the task row and click Edit > Delete on the task bar of the My Tasks page.
■
Select the task row, right-click in the row and select Delete from the shortcut menu.
■
Put the mouse pointer over the task row and click the Delete button
on the floating toolbar.
For a Schedule task,
●
❍
❍
If you have specified to have server cancel the task when the task duration is up, the task will be
cancelled automatically, and a task completed record will be added in the Completed table of the
My Tasks page, with the Is Successful status shown as No.
In the Duration tab, if you haven't checked the option Cancel the task after the specified time, the
task will still be listed in the Running table of the My Tasks page when the task duration is up.
Then, if you want to cancel the task manually, in the Running table,
■
Select the task row and click Stop on the task bar of the My Tasks page.
■
Select the task row, right-click in the task row and select Stop from the shortcut menu.
■
Put the mouse pointer over the task row and click the Stop button
on the floating toolbar.
Notes:
●
●
JReport Server may not cancel a task right after the specified task duration is up due to check
frequency.
It is recommended that the task duration is set to about five times of the required time for finishing
running the task.
Managing server data
During its running process, JReport Server keeps track of server information and stores it to its own
database for the purpose of running various managing and monitoring tasks, such as managing the
resources on the server, monitoring the task running status, and collecting server running statistics.
The server database includes system, realm, and profiling. The system database holds resources of the
global server scope, such as server.properties, global NLS, etc. The realm database holds information
of folders, nodes, versions, the security system, and the completed table. The profiling database holds
server runtime related information. You can refer to Configuring the server database for details about
how to configure the databases.
JReport provides completed SQL files to create tables for all databases supported. They reside in
<install_root>\script_files.
This section covers the following topics:
●
Initializing the database system as a non-admin database user
●
Checking server data integrity
●
Backing up/restoring server data
●
Archiving and restoring server data
●
Viewing the summary information of archive files
●
Clearing unused nodes from the realm database
Initializing the database system as a non-admin database user
The database initialization system allows you to use a non-admin database user for JReport Server.
However, the database initialization has to be divided into three phases:
1. The database administrator creates new database tables using script files.
2. The non-admin database user starts JReport Server. In this phase, the old version's database
tables will be updated if they exist. If the server has updated the old version's table data, you will
be able to see a record of it in the debug file.
3. The database administrator deletes the old version' tables in the database using script files.
Script files
JReport Server supports these different databases: Apache Derby, HSQLDB, MySQL, Microsoft SQL
Server, IBM DB2, Oracle, Sybase, and Informix.
The script files are stored in <install_root>\script_files. There are three types of script files:
Script files used for creating new database tables
The following files are used to create new database tables, and are stored in <install_root>
\script_files\create_new_tables:
●
db2_c.txt - Creates new tables for DB2 database.
●
derby_c.txt - Creates new tables for Derby database.
●
hsqldb_c.txt - Creates new tables for HSQLDB database.
●
informix_c.txt - Creates new tables for Informix database.
●
mysql_c.txt - Creates new tables for MySQL database.
●
oracle_c.txt - Creates new tables for Oracle database.
●
sqlserver_c.txt - Creates new tables for Microsoft SQL Server database.
●
sybase_c.txt - Creates new tables for Sybase database.
Script files used for deleting the old version' tables
The following files are used to delete the old version' tables, and are stored in <install_root>
\script_files\delete_old_tables:
●
db2_do.txt - Deletes old version tables for DB2 database.
●
derby_do.txt - Deletes old version tables for Derby database.
●
hsqldb_do.txt - Deletes old version tables for HSQLDB database.
●
informix_do.txt - Deletes old version tables for Informix database.
●
mysql_do.txt - Deletes old version tables for MySQL database.
●
oracle_do.txt - Deletes old version tables for Oracle database.
●
sqlserver_do.txt - Deletes old version tables for Microsoft SQL Server database.
●
sybase_do.txt - Deletes old version tables for Sybase database.
Script files used for deleting the current version' tables
The following files are used to delete the current version' tables, and are stored in <install_root>
\script_files\delete_current_tables:
●
db2_dc.txt - Deletes current version tables for DB2 database.
●
derby_dc.txt - Deletes current version tables for Derby database.
●
hsqldb_dc.txt - Deletes current version tables for HSQLDB database.
●
informix_dc.txt - Deletes current version tables for Informix database.
●
mysql_dc.txt - Deletes current version tables for MySQL database.
●
oracle_dc.txt - Deletes current version tables for Oracle database.
●
sqlserver_dc.txt - Deletes current version tables for Microsoft SQL Server database.
●
sybase_dc.txt - Deletes current version tables for Sybase database.
Checking server data integrity
In abnormal circumstances, server data may not be saved correctly or completely in the databases.
JReport Server allows you to check the integrity of server data.
The integrity check mainly examines two aspects of the realm database:
●
●
Integrality and consistency among tables - checking records among the tables to see whether they
are complete and consistent.
Integrality and consistency between realm database and the external files - checking to see whether
the records in the tables match the related external files.
If any inconsistent or incomplete server data is found, it will be removed from the realm database since
it is unused. The same process also applies to files.
To check server data integrity, do one of the following:
●
Launch JReport Server on the command line, using parameter -cleanup.
C:\JReport\Server\bin>JRServer -cleanup
●
Open the batch file used to start JReport Server, add -Dcheck.realmtables=true to the line that
starts JReport Server:
"%JAVAHOME%\bin\java.exe" -Dcheck.realmtables=true "-Dinstall.root= <install_root>" ...
Note: The integrity check checks only the realm database.
Backing up/restoring server data
Backing up server data
The server data backup process inspects all of the tables in the database, collecting and then exporting
all table data to a ZipEntry. For certain tables, such as the catalog version table, report set version
table, and report set result version table, the data also includes relational real files from the history
directory. All server data is compressed to a single Zip file, and all table data and every relational real
file is stored as a ZipEntry in this single file.
You have two alternatives for exporting the server data: through the server user interface or through
command line.
Exporting the server data through the server user interface
1. On the JReport Administration page, click Data on the system toolbar and then select System DB/
Realm DB/Profiling DB from the drop-down menu.
2. Select a realm if it is the Realm DB or Profiling DB panel.
3. Click the Backup tab, type the file path and name in the Backup System DB/Realm DB/Profiling
DB field (or use the Browse button to specify the file path), and then click Backup. Note that the
file extension should be included.
Exporting the server data through the command line on Windows or on Unix/Linux
A tool is provided to backup the server data. It is DBMaintain.bat/DBMaintian.sh in <install_root>
\bin. It has two parameters:
●
-Bsystemtables/-Brealmtables/-Bprofiling: Backup the data with the server data in a JReport cluster.
●
-B0realmtables: Only backup the data in the database.
To export the server data from the command line on Windows or on Unix/Linux:
1. In a DOS window, switch to the <install_root>\bin folder.
2. Use the DBMaintain command (DBMaintain.sh on Unix/Linux) and -Bsystemtables/-Brealmtables/Bprofiling or -B0realmtables parameter. For example:
C:\JReport\Server\bin>DBMaintain -Brealmtables:C:\TEMP\cmd_b_realmtables.dat Bprofiling:C:\TEMP\cmd_b_profiling.dat
Restoring server data
The server data restore process picks up all table data from the backup file and inserts it into the
corresponding table in the database. You can only restore server data using the DBMaintain tool with
the -Rsystemtables/-Rrealmtables/-Rprofiling or -R0realmtables parameter.
To import server data using the command line:
1. In the DOS window, switch to the <install_root>\bin folder.
2. Use the DBMaintain command and -Rsystemtables/-Rrealmtables/-Rprofiling or -R0realmtables
parameter, for example:
C:\JReport\Server\bin>DBMaintain -Rrealmtables:C:\TEMP\cmd_b_realmtables.dat Rprofiling:C:\TEMP\cmd_b_profiling.dat
Backup/restoration limitations
The backup/restore feature does not support cross-platform operation. The backup and restore
operations must be done on the same operating system. For example, if you backup the server data to
a zip file on a Windows platform, you will then not be able to restore it on a Unix system.
Notes:
●
●
●
●
On the JReport Administration page, the Profiling DB option is not shown by default on the Data dropdown menu. To make it shown, you need to set the server.profiling.enable property to true in the
server.properties file in the <install_root>\bin directory.
When running DBMaintain.bat/DBMaintian.sh, error may occur if the backup zip file is too large,
which is caused by JVM limitation. You can try the -B0realmtables and -R0realmtables options to
backup and restore data separately.
When backing up server data in cluster environment, it is recommended that you back up the data
on every cluster node to make sure no files get lost on any node after they are restored. Also, the
system DB and realm DB should better be backed up together. Since the external data cannot be
backed up once just on one single cluster node, to avoid redundant data backup, you need to
manually back up the external files on every cluster node after backing up the system DB and realm
DB on any of the cluster nodes.
When restoring server data in cluster environment, first make sure all the cluster nodes are shut
down, and then restore the data on each cluster node.
Archiving and restoring server data
You can archive and restore server data in the realm and profiling databases.
Archiving server data
Along with the running of the server, the sizes of the result version table (DB: realm) and TaskContext
table (DB: profiling) grow larger. JReport Server allows you to archive data to a single backup file. You
can then retrieve the data from the backup file at a later date.
To archive the server data:
1. On the JReport Administration page, click Data on the system toolbar and then select Realm DB/
Profiling DB from the drop-down menu.
Note: The Profiling DB option is not shown by default on the drop-down menu. To make it
shown, set the server.profiling.enable property to true in the server.properties file in the
<install_root>\bin directory.
2. Select a realm from the Select Realm drop-down list.
3. Switch to the Archive tab.
4. Specify a date in the Move to Archive Data Before field, and then type or use the Browse button
to specify the file path and name.
If you don't want to backup the archived server data, leave this field blank. The server data will
then be removed from the database.
5. Click Archive. Server data prior to the date specified will be archived and saved to the backup file
using the name specified.
Restoring the archived server data
You can restore server data that has been archived from a backup file. You can only restore it using the
server user interface.
To restore the archived server data:
1. On the JReport Administration page, click Data on the system toolbar and then select Realm DB/
Profiling DB from the drop-down menu.
2. Select a realm from the Select Realm drop-down list.
3. Switch to the Archive tab.
4. Type or use the Browse button to provide the archive file name and location in the Restore from
archive field, and then click Restore.
Viewing the summary information of archive files
After archiving or backing up files, you can view the results. The summary information includes
Archive, Date, Type, Version, Realm, Database and Scope.
To view the summary information of a specified file:
1. On the JReport Administration page, click Data on the system toolbar and then select Realm DB/
Profiling DB from the drop-down menu.
Note: The Profiling DB option is not shown by default on the drop-down menu. To make it
shown, set the server.profiling.enable property to true in the server.properties file in the
<install_root>\bin directory.
2. Select a realm from the Select Realm drop-down list.
3. Switch to the Summary tab.
4. Type or use the Browse button to specify an archive file name and location in the Archive field,
and then click Summary.
Clearing unused nodes from the realm database
Making operations on real path resources may generate unused nodes from the realmdatabase. The
generated unused nodes can be cleared through the JReport Administration page.
How unused nodes are generated
When resources, such as folders, catalogs, and report sets, have been published using a real path in
order to allow dynamic updating there is a possibility to produce invalid nodes. After running a report
set and saving the result to the versioning system or scheduling report sets which are saved in the
versioning system, either of the following conditions will generate invalid nodes:
●
Cancel or change the real path setting.
●
Publish a resource to replace an existing real path resource.
How to clear invalid nodes
To clear unused nodes:
1. On the JReport Administration page, click Data on the system toolbar and then select Realm DB
from the drop-down menu.
2. Click the Realm DB Check tab.
3. Click the Check button. All invalid resource nodes will then be listed.
4. Check the checkbox on the header of the first column to specify whether you want to select all or
unselect all. Otherwise, you can check the corresponding checkbox to select the invalid nodes that
you want to delete.
5. Click Delete button to delete all selected nodes.
Managing cached report data
Cached report data (CRD) is a cached subset of data fetched from the database according to certain
conditions and is used for retrieving data for reports instead of the database. This provides several
benefits.
●
●
●
●
Reports can be run from a specific point in time such as a month end report or quarter end report
without going back to the DBMS to get the original data.
Many users can run reports from data created from a single query thus not having the reporting
users impacting production DBMS users.
Users running a report will all see the same view of the data, thus the data will not change minute
by minute based on current DBMS updates.
Caching report data can be scheduled for any time frame to simulate real time on-demand reporting
for many users while not slowing down the production DBMS.
Cached report data can be created for query resources such as queries, stored procedures, imported
SQLs, user defined data sources, hierarchical data sources, and parameters whose type is Bind with
Single Column or Bind with Cascading Columns.
There are two types of cached report data in JReport Server: auto CRD and scheduled CRD. For details
about each type, see the specific topics below.
Auto CRD
When running a report set, if there is no scheduled CRD created for the query that the report set is
using directly or indirectly (for example, the report is created based on a report cube and the report
cube is built from a query), data will be fetched from the data source, and at the same time the fetched
data is cached and becomes an auto CRD.
Auto CRDs will only be available within one server running life cycle, which means that once the server
closes or restarts, they will be removed and a new cycle of auto CRD generation will begin.
Auto CRDs are disabled for generation by default. You can enable them and configure the maximum
hard disk space for auto CRDs and how long an auto CRD is stored. For details, see Automatic Cache
section in the Cache Configuration dialog.
Use of auto CRD
When there are auto CRDs generated in a query, the report running request based on the query will
first search for the auto CRD that contains all the data required by the report, if it finds one, the
located CRD will retrieve data to the report, but if JReport cannot find one, data is fetched from the
data source and cached to be another auto CRD.
How many auto CRDs can be held in a query within one server running session is decided by the
maximum hard disk space configured in the Cache Configuration dialog.
Scheduled CRD
Scheduled CRDs can be created and managed by server administrators. A query resource can have
zero or one scheduled CRD.
Via JReport scheduling mechanism, administrators are able to define when a scheduled CRD for a query
will be created and how it will be updated according to time. Scheduled CRDs have no version, once
they are updated, only the latest are kept in the query.
When a query resource contains parameters, its scheduled CRD can only represent the data of one
parameter scenario, therefore if you want more than one CRD for the query resource, you can create
more query resources or simply make some copies of the catalog and then create a CRD for each
query. In this way you can have more parameter scenarios.
Scheduling a CRD task
Administrators can schedule to have a data cache created for a query resource and updated at a
specific time or periodically. When scheduling a CRD task, more than one query resource can be
selected at a time and a CRD can be created for each query and all of the scheduled CRDs will be
applied the same creation and updating policy.
1. On the JReport Administration page, click Cached Data on the system toolbar and then select
Cached Report Data from the drop-down menu.
2. In the Cached Report Data panel, click New Cache on the task bar.
3. In the New Cache dialog for selecting queries, click
next to the Select a Folder text field.
4. In the Select Folder dialog, browse to the folder containing the required catalog and click OK.
5. From the Select a Catalog drop-down list, select the required catalog in the specified folder.
6. Click
beside the Select Queries box.
7. In the Select Queries dialog, select the query resources you want to create data caches for from
the resource tree. Then click OK.
8. Click OK in the New Cache dialog for selecting queries and you are then redirected to the New
Cache dialog for scheduling.
9. In the General tab, you can specify values to the parameters of the query resources listed in the
Select Query drop-down list. If no values are provided, the default values will be applied. The
query resource names will be used as the new CRD names.
10. Specify the other settings in the tab if needed.
11. In the Conditions tab, specify the time for when the task is to be performed in the Time sub tab,
and select or create a trigger to bind with the task in the Trigger sub tab. The setting in the
Conditions tab decides when the CRDs will be created and when they will be updated.
12. In the Notification tab, specify to notify someone via e-mail when the task is finished and whether
it is successful or unsuccessful.
13. In the Duration tab, specify the time duration for the task, and ask JReport Server to cancel the
task or to notify you or someone else of the task status via e-mail if the task has not yet finished
running when the task duration is up. For detailed information, see Task-level timeout for
advanced run and schedule tasks.
14. Click Finish, and JReport Server will then perform the task at the requested times.
See also New Cache dialog for scheduling for details about options in the dialog.
Use of scheduled CRDs
A scheduled CRD has four statuses. Whether reports running based on the same query as the CRD can
fetch data from the CRD is determined by the CRD's status.
●
●
●
●
Not ready
CRD is not initiated yet. The reports will try to get data from the data source directly.
Initiating
CRD is preparing its data for the first time, but still not ready. The reports will wait for the CRD to be
ready and then fetch data from the ready CRD.
Ready
CRD is prepared and ready to use. All reports based on the same query will fetch data from the CRD.
Updating
CRD is updating itself at a scheduled point. All reports based on the same query will use the ready
CRD before the update happens. Once the update is finished, the reports running later will get data
from the updated CRD.
After a scheduled CRD is created, all reports based on the same query as the CRD will automatically
use the CRD for retrieving data.
Since a scheduled CRD freezes parameters in the query, if a report uses a scheduled CRD and its query
contains parameters, only parameters used in the report are prompted for specifying values, the query
parameters will be disabled for specifying or changing. In JReport, a parameter may depend on another
parameter, if the latter is frozen, the former will be frozen too.
Editing scheduled CRDs
The generated scheduled CRDs are displayed in the Cached Report Data table, which consists of the
following columns:
Column
Description
Name
The name of the scheduled CRD.
Path
The path of the scheduled CRD in the server resource tree.
Catalog Name
The catalog that the scheduled CRD belongs to.
Data Source
The data source that the scheduled CRD belongs to.
Data Type
The type of the query resource that the scheduled CRD is based on.
Last Modified
The last time when the scheduled CRD was modified.
You can further edit the scheduling information of the CRDs if required. To do this, select the row
where the CRD you want to edit is located, then click Edit > Properties on the task bar; or right-click
in the row and select Properties from the shortcut menu. If parameters or schedule policy is changed,
they will only take effect after next CRD updating, before that, all reports using the CRD will still get
the old data.
In addition, if you find any of the scheduled CRD is no longer required, you can remove it. To do this,
select the row where the CRD is, then clicking Edit > Delete on the task bar; or right-click in the row
and select Delete from the shortcut menu.
Viewing and managing scheduled CRD tasks
CRD tasks that are waiting to be performed are listed in the Scheduled table, which consists of the
following columns (to access the table, click Cached Data on the system toolbar and then select
Scheduled from the drop-down menu):
Column
Description
Name
The name of the scheduled CRD.
Path
The path of the scheduled CRD in the server resource tree.
Catalog Name
The catalog that the scheduled CRD belongs to.
Data Source
The data source that the scheduled CRD belongs to.
Data Type
The type of the query resource that the scheduled CRD is based on.
Last Modified
The latest time when the task was modified.
Next Run Time
The next scheduled time this task is to be performed.
Last Run Time
The last scheduled time this task was performed.
Is Successful
Shows whether or not the last running of this task was successfully performed.
The value true means that the last running was performed successfully and false
means the task failed. If the column is empty, the task has not been run before.
CRD tasks that are currently being performed are listed in the Running table, which consists of the
following columns (to access the table, click Cached Data on the system toolbar and then select
Running from the drop-down menu):
Column
Description
Name
The name of the scheduled CRD.
Path
The path of the scheduled CRD in the server resource tree.
Catalog Name
The catalog that the scheduled CRD belongs to.
Data Source
The data source that the scheduled CRD belongs to.
Data Type
The type of the query resource that the scheduled CRD is based on.
Start Time
The time when this task was started.
Parameters
The parameters of the query.
CRD tasks that have already been performed are listed in the Completed table, which consists of the
following columns (to access the table, click Cached Data on the system toolbar and then select
Completed from the drop-down menu). You can remove the record of a completed CRD task from the
table if required. To do this, select the row where the record is located and then click Delete, or rightclick in the row and select Delete from the shortcut menu.
Column
Description
Name
The name of the scheduled CRD.
Path
The path of the scheduled CRD in the server resource tree.
Catalog Name
The catalog that the scheduled CRD belongs to.
Data Source
The data source that the scheduled CRD belongs to.
Data Type
The type of the query resource that the scheduled CRD is based on.
Is Successful
Shows whether this task was successfully performed. The value true means that
the task was performed successfully and false that the task failed.
Completed Time
The time when this task was completed.
Parameters
The parameters of the query.
Notes:
●
●
Some columns are not shown by default. To have them displayed, focus on the required table, click
Preferences above the table, check the corresponding items in the Preferences dialog, and then
click OK to apply the settings.
Scheduled CRD tasks share the total number of users defined in the license and share task priority
with report tasks.
Recovering of scheduled CRDs
Scheduled CRDs will be recovered after the server crashes and then restarts. The data before the crash
will be maintained.
If a CRD is updating when the crash happens, after server restarts, the CRD will continue with the
update.
Scheduled CRD synchronization with catalog republish
After a catalog is republished, how the existing scheduled CRDs based on the old query resources in
the catalog will be updated depends on the following conditions:
●
If no query resource is modified, the existing CRDs will be automatically applicable to the new
catalog.
If a query resource is modified, the scheduled CRD based on the old query will behave as follows:
●
❍
❍
Before the next schedule time, the CRD will be disabled for retrieving data to reports.
When it is the next schedule time, data is fetched from the new query to generate an updated
scheduled CRD:
■
■
■
If new parameters are added in the new query, default values will be used until an administrator
specifies values to them.
If old parameters are deleted from the new query, the parameter values previously specified in
the CRD will be removed.
If parameters are changed and the previously specified values do not match the type, error
messages will be given in the server error log and the CRD is disabled for service.
CRD memory usage configuration
Administrators can configure the maximum CRD memory in the Cache Configuration dialog, which is
applicable for both types of CRDs. The value should be at least 4 MB and not more than 80% of the
JVM current maximum heap size. The number of MBs must be configured in whole numbers. The cache
is used to improve performance when multiple users are running reports using the same CRD. Any size
CRD can be accessed with even the smallest cache size; however, the larger the cache size the faster
performance will be when multiple users run reports using the cache but a large cache size may lower
performance for users who do not use the CRD. All CRDs share the same cache area.
National Language Support
JReport products implement a National Language Support (NLS) feature, with which you can run
JReport Server/JReport Viewer or report sets in different language environments.
This chapter is split into two topics:
●
NLS at application level
●
NLS at report set level
Related topics:
●
Appendix 6: Language and Region name list for National Language Support
NLS at application level
In JReport Server, a folder "resources" is added in the installation root directory for holding language
packages. Each language package contains all the UI text and messages available in JReport Server,
including JReport Viewer and JReport Studio, and specifies the UI text in a specific language. When a
language package is applied, the UI will be displayed in the language specified in the language
package. When there are more than one language packages, you can select the one you are familiar
with for your own convenience as the JReport Server environment language. For example, if you are a
German you may be glad to apply the German language package.
Moreover, when creating a WAR/EAR file to include a JReport Server, the languages.jar which packs all
language resources in the <server_install_root>\resources directory will be generated and
included for the multiple language support. The languages.jar makes sure the server UI text is
displayed correctly after deploying the WAR/EAR to other application servers.
Manually adding a language package
Currently JReport provides only the English language packages: en and en-us. However, JReport
accepts user-customized language packages and can recognize and load them if they are correctly
specified, though it may be a big task.
In each language package, there are three property files which together contain all UI text and
messages in JReport Server, JReport Viewer, and JReport Studio:
●
●
●
common.properties
This property file stores UI text and messages referred by all JReport Server, JReport Viewer, and
JReport Studio in the specific language.
dhtml.properties
This property file stores UI text and messages referred by JReport Viewer and JReport Studio in the
specific language.
server.properties
This property file stores UI text and messages referred by JReport Server in the specific language.
The structure of a language package which is stored in the <server_install_root>\resources\server
\languages directory follows:
\LanguageName
\properties
common.properties
dhtml.properties
server.properties
To add a language package, follow the steps below:
1. Browse to the <server_install_root>\resources\server\languages directory.
2. Create a folder named fr. The folder name should keep to the naming criterion.
3. Copy the properties folder in the existing <server_install_root>\resources\server\languages
\en directory to the \fr folder.
4. Modify the three property files: common.properties, dhtml.properties, and server.properties in the
\fr folder. Translate all the text and messages after "=" in these files to French.
5. Save these property files with UTF-8 encoding.
6. Convert the contents in the three property files into Unicode using native2ascii.exe in the
<jdk_install_root>\bin directory by running the following line in the Command Console:
C:\jdk1.6.0_17\bin>native2ascii -encoding utf-8 common.properties >newcommon.
properties
C:\jdk1.6.0_17\bin>native2ascii -encoding utf-8 dhtml.properties >newdhtml.
properties
C:\jdk1.6.0_17\bin>native2ascii -encoding utf-8 server.properties >newserver.
properties
Note: When you convert your property files to the same directory as the original ones you
need give them new names instead of replacing the original in order to avoid problems.
7. Rename the original property files, you may want to modify them more at a later time.
8. Change the names of the generated property files back to the same names as the original
property files: newcommon.properties to common.properties, newdhtml.properties to dhtml.
properties, and newserver.properties to server.properties.
9. Restart JReport Server.
Naming criterion for language package folders
* FolderName(language)
* FolderName(language-country)
* FolderName(language-country-variant)
The folder name should be lower-case codes.
The language argument is a valid ISO Language Code. These codes are the lower-case two-letter codes
as defined by ISO-639. You can find a full list of these codes at a number of sites, for example: http://
www.ics.uci.edu/pub/ietf/http/related/iso639.txt.
The country argument is a valid ISO Country Code. These codes are the lower-case two-letter codes as
defined by ISO-3166. You can find a full list of these codes at a number of sites, for example: http://
www.chemie.fu-berlin.de/diverse/doc/ISO_3166.html.
The variant argument is a vendor or browser-specific code. For example, use win for Windows, mac for
Macintosh, and posix for POSIX. Where there are two variants, separate them with an underscore, and
put the more important one first.
Specifying the application language
Once the application language is set, it takes effect in the whole JReport Server, including JReport
Viewer and JReport Studio. There are two ways of setting the application language:
Specifying by UI option
●
There is an option Specify Default Language for you to switch the application language. The available
language list depends on the language packages in <server_install_root>\resources\server
\languages.
To specify the application language:
❍
❍
For administrators, on the JReport Administration page, click Profile on the system toolbar, select
Customize Server Preferences from the drop-down menu, then click the Advanced tab and set
the default application language for all users.
For end users, on the JReport Console page, click Profile on the system toolbar, then click
Customize Server Preferences on the task bar of the Profile page, select the Advanced tab and
set an application language for themselves.
Specifying by URL parameter
●
End users can control the application language by the parameter jrs.language when accessing the
JReport Console page or JReport Viewer UI via URLs. The format of the URL is as follows:
http://IP_Address:port/context/pagename?parameter=value&jrs.language=Language_Name
The value of jrs.language should be the same as the language package folder name in the
<server_install_root>\resources\server\languages directory and be lower-case letters.
The following are two examples:
❍
URL for accessing the JReport Console page:
http://127.0.0.1:8888/jinfonet/index.jsp?jrs.language=zh-cn
❍
URL for opening a report set in the DHTML format in JReport Viewer UI:
http://127.0.0.1:8888/dhtmljsp/dhtml.jsp?jrs.cmd=jrs.try_vw&jrs.report=/
SampleReports/EmployeeInformation.cls&jrs.catalog=/SampleReports/SampleReports.
cat&jrs.cat_version=1&jrs.path=/SampleReports/EmployeeInformation.cls&jrs.
result_type=8&jrs.language=zh-cn
Note: The specified application language by URL parameter has higher priority than that specified by
UI option; however, it takes effect only in the current user session.
NLS at report set level
If the NLS feature is enabled for a report set when it is designed in JReport Designer, it will also be
available after the report set has been published to JReport Server (for detailed information about how
to use the NLS feature in JReport Designer, see National Language Support in the JReport Designer
User's Guide). Then, when the report set is run in the client/server scenario, different clients can select
different languages for the rendering of the report set. Also, JReport provides you with the NLS Editor
on JReport Server, with which you can edit NLS for any report set the same as the report designer does
in JReport Designer, and what's more, you can create global NLS resources that can be shared by all
report sets to reduce the translation cost.
The following topics show how to use the NLS feature in JReport Server:
●
Creating global NLS for report sets
●
Editing local NLS for report sets
●
Running NLS report sets
●
Localizing page navigation links in HTML report outputs
Creating global NLS for report sets
The global NLS is similar to the local NLS feature. Local NLS is the NLS resource used for a particular report set, while global NLS is the
NLS resource that can be used for all report sets in any catalog in both JReport Server and JReport Designer. With global NLS, you can
share the NLS information between all report sets and reduce your translation cost. Note that this feature is provided to administrators
only.
To create global NLS on JReport Server:
1. Start JReport Server and log onto the JReport Administration page.
2. Click Reports on the system toolbar and select Global NLS from the drop-down menu.
3. Click the Add button
above the Language box. The Select Language Source dialog is then displayed.
4. Specify where to add the required languages.
❍
❍
Languages Supported by JReport
Adds languages from the languages that JReport supports.
NLS Resource File
Adds languages from an external NLS resource file which has been defined with some language information.
NLS resource files should follow the naming rule: NLS_[language]_[region A2]_[User Defined].properties. Refer to Appendix 5:
Language and region name list for National Language Support for language and region A2 codes.
5. Click OK in the Select Language Source dialog. Then,
❍
❍
If Languages Supported by JReport is checked in the dialog, the Add Language dialog will be displayed. Select the required
languages and click OK to add them.
If NLS Resource File is checked in the dialog, the File Upload dialog will be displayed. Browse to the local folder where the NLS
resource file is located, select the file and then click Open.
The specified languages are now displayed in the Language box in the Global NLS dialog.
6. Select a language from the Language box to edit global NLS for it.
7. In the Display tab, click the Add button
to add a new row of display. Select the type of the display from the Type drop-down
list, specify the key in the Key column, then give the corresponding target language text in the Translation column. Click
add more rows and specify the key and translation according to your requirements.
to
8. In the Font tab, click the Add button
to add a new row of font. In the Key column, choose from the drop-down lists the font
face and font size of the key, in the Font Face column, choose from the drop-down list the font face for the target language, then
in the Font Size column, choose from the drop-down list the font size for the target language or check to use relative font size.
Click
to add more rows and specify the font information according to your requirements.
9. Repeat the above steps to define global NLS for the other languages as required.
10. When done, click OK to accept the settings.
See also the Global NLS dialog for detailed explanation about options in the dialog.
Editing local NLS for report sets
JReport allows you to edit NLS for each report set on the Administration page of JReport Server as the report designer
would with the NLS Editor in JReport Designer. With the NLS Editor, you can translate a report set into different languages
from the original one. Note that this feature is provided to administrators only.
To edit NLS for a report set on JReport Server:
1. Start JReport Server and log onto the JReport Administration page.
2. In the resource tree, browse to the report set you want to edit.
3. Select the row that the report set is in, then click the NLS Editor button
dialog appears.
4. Specify a report set and catalog version as required.
5. Click the Add button
above the Language box.
in the Control column. The NLS Editor
6. In the Add Language dialog, select the languages in which you want the report set to display, then click OK to confirm
and go back to the NLS Editor dialog.
7. The selected languages are now listed in Language box of the NLS Editor dialog. Select a target language from the box
to edit NLS for it.
8. In the Display tab, click
, then in the Add Display dialog, where all the display text in the report set are listed, add
the display text you want to translate and click OK. Then, enter all the corresponding target language text in the
Translate column. If you have defined global NLS for the target language, you can also click Fetch from Global NLS
to fetch the corresponding display information. If required, click Add to Global NLS to add the display information
you specify for the report set to the global NLS library of the target language.
9. Switch to the Format tab, click
, then in the Add Format dialog, where all the formats used in objects of the report
are listed, add the formats you want to customize and click OK. Then, provide the corresponding format in the Format
column for the target language.
10. Click the Font tab, click
, then in the Add Font dialog, where all the fonts used in objects of the report set are
listed, add the fonts you want to customize and click OK. Then, give the font face and font size you want for the target
language in the Font Face and Font Size columns. If you have defined global NLS for the target language, you can also
click Fetch from Global NLS to fetch the corresponding font information. If required, click Add to Global NLS to add
the font information you specify for the report set to the global NLS library of the target language.
11. Select another language and edit NLS for it as shown above.
12. Click OK to accept the settings.
See also the NLS Editor dialog for detailed explanation about options in the dialog.
Notes:
●
●
You can also edit NLS for a specific report set version. To do this, on the JReport Administration page, access the version
table of the report set, then click the NLS Editor link for the report set version.
When you switch among different languages by choosing languages from the Language box, you may find that the text
in the Translate column become unreadable. To resolve this problem, you can add -Djreport.url.encoding=UTF-8 to
the batch file that starts the server and then restart it. This changes the encoding to Unicode which supports all
languages.
Running NLS report sets
When you have NLS edited for a report set on the JReport Administration page, or have an NLS report
set published to the server from JReport Designer, you can then run the report set in the specified
languages. However, before doing this, you need to first make sure that the NLS feature is already
enabled for the report set by the administrator.
To enable NLS for a report set:
1. On the JReport Administration page, click Reports on the system toolbar and select Reports from
the drop-down menu.
2. In the Reports panel, browse to the report set, then click its Properties button
column.
in the Control
3. In the Properties dialog, check the National Language Support option, then click OK to confirm.
Previewing NLS report sets
To preview a NLS report set in a specified language, follow the steps below:
1. On JReport Console page, Click Profile on the system toolbar, then click Customize Server
Preferences on the task bar of the Profile page.
2. Select the Advanced tab, check Specify Default Language and choose the language from the
Language drop-down list.
3. Click OK to save the changes.
4. Click Reports on the system toolbar to switch to the Reports page.
5. Browse to the report set you want to preview and click its name. The report result will then be
displayed in the language you have specified.
Running NLS report sets in Advanced mode
To run a NLS report set in a specified language in Advanced mode, follow the steps below:
1. On the JReport Console > Reports page, browse to the report set you want to run, put the mouse
pointer over the report set row and click the Advanced Run button
on the floating toolbar.
2. In the Format tab, select the Enable NLS checkbox, choose the language from the Using
Language drop-down list, then select the corresponding encoding from the Encoding drop-down
list.
3. Finish the other related options and click Finish to run the report set. The report result will then
be run in the selected language.
Scheduling NLS report sets
To schedule a NLS report set, follow the steps below:
1. On the JReport Console > Reports page, browse to the report set you want to run, put the mouse
pointer over the report set row and click the Schedule button
on the floating toolbar.
2. In the General tab, select the Enable NLS checkbox, then choose the language from the Using
Language drop-down list, select the corresponding encoding from the Encoding drop-down list.
3. Finish the other related options and click Finish to perform the task. The report result will then be
run in the selected language.
Localizing page navigation links in HTML report outputs
When you schedule to publish a report set to HTML format, or run it in Advanced mode in HTML format, you can
localize the names of page navigation links in the HTML report outputs, such as First, Previous, Next, and Last,
according to your requirements.
The localizing process is divided into three steps:
1. Create a property file for the desired language.
2. Enable the language for the report set.
3. Apply the localized link names to HTML report outputs.
The following explain the steps in detail:
Creating the property file
To localize the page navigation link names in HTML report outputs, a property file must be created first for the desired
language. To do this:
1. Create the sub directories in <server_install_root>\resources as follows: <server_install_root>
\resources\report\languages\[language-locale]\properties. For example, C:\JReport\Server\resources
\report\languages\zh-cn\properties.
For detailed information about the abbreviation for each language and locale, see Appendix 6: Language and
region name list for National Language Support.
2. Create a report.properties file in the properties directory.
3. Open the property file and copy the following contents to it:
# The following is the report properties file format that can localize the link names in HTML.
4000101=First
4000102=Prev
4000103=Next
4000104=Last
4000105=Back
4000106=Refresh
[email protected]; of @TotalPageNumber;
4. Translate the text after = to the language specified by the folder name.
Note: For the line "[email protected]; of @TotalPageNumber;", you just need to translate
"of" to the desired language. In the HTML outputs, @CurrentPageNumber will be replaced by the current
page number, and @TotalPageNumber by the report total page number.
5. Save the property file with UTF-8 encoding.
6. Copy the property file to the <jdk_install_root>\bin directory.
Note: You can just add the <jdk_install_root>\bin directory to your PATH instead of copying the file.
7. Convert the contents in the property file into Unicode using native2ascii.exe in <jdk_install_root>\bin by
running the following command:
C:\jdk1.6.0_17\bin>native2ascii -encoding utf-8 report.properties > newreport.properties
Note: When you convert your property file to the same directory as the original one, you need to give it a
new name instead of replacing the original in order to avoid problems.
8. Delete report.properties in <server_install_root>\resources\report\languages\[language-locale]
\properties and copy newreport.properties in <jdk_install_root>\bin to it, then rename the property file
back to report.properties.
Enabling the language for the report set
When the property file is ready, the next step is to enable the language defined in the file for the required report set.
1. Start JReport Server and log onto the JReport Administration page.
2. Browse to the row that the report set is in, then click the NLS Editor button
in the Control column.
3. In the NLS Editor dialog, specify a report set and catalog version as required.
4. Click the button
and click OK.
above the Language box, then in the Add Language dialog, choose the specified language
5. Click OK in the NLS Editor dialog to confirm the settings.
6. Browse to the row that the report set is in again and click the Properties button
in the Control column.
7. In the Properties dialog, check the National Language Support option, then click OK to confirm.
Now the language will have been enabled for the report set.
Applying the localized link names to HTML report outputs
To apply the localized link names to HTML outputs of the specified report set, follow the steps below:
1. Log onto the JReport Console page and browse to the report set.
2. Put the mouse pointer over the report set row and click the Advanced Run button
on the floating toolbar.
or Schedule button
3. In the Format/General tab of the Advanced Run/Schedule dialog, check Enable NLS and select the specified
language from the Using Language drop-down list.
4. Specify the other settings and finish the task. Then in the generated HTML outputs, you can see that the page
navigation links are displayed in the language you defined for the property file.
Tuning Performance
Many variables affect the performance of JReport Server. For example, the hardware and software
environment that it runs in. You may or may not have any influence in this regard, but you are able to
carry out performance tuning to make JReport Server efficient, reliable, and fast.
The following lists the factors that help with the server performance:
●
●
●
●
●
●
●
●
●
●
Use Connection Pooling either by using JNDI and the connection pool of the application server or
JReport connection pooling using ConnectionPoolConfig.properties. See Configuring connection pool.
For best performance and reliability you should change the JReport Server DBMS from Derby (the
internal Java DBMS) to your standard production DBMS or other DBMS you are familiar with. Derby is
included for out of the box ease of use but is not recommended for production use. See Configuring
the server database on the JReport Administration page.
Limiting the number of actively running reports can avoid momentary system overload. Setting the
property performance.max.reports to a limited number in server.properties in the <install_root>
\bin directory can smooth out performance and provide higher overall throughput. The best number
depends entirely on your environment so needs to be configured after testing which setting provides
the highest throughput in your environment.
When using an application server, you can achieve a similar result to performance.max.reports by
limiting the total number of active threads for JReport. You can assume a report consumes around 5
threads on average so setting the number of active threads to 50 is similar to setting performance.
max.reports=10 but may provide better overall throughput since it is has finer granularity to control
CPU utilization.
Cache catalogs, report sets, and JReport web images by configuring the Configuration > Cache panel
on the JReport Administration page. This is effective when the same catalogs, templates and images
are used frequently but may harm performance when many different catalogs, templates and images
are used and the requested resource is not in the cache. In this case, it slows performance checking
the cache and wastes memory.
Preloads catalogs and report sets by configuring the Configuration > Performance panel on the
JReport Administration page. This will improve the performance the first time the report or catalog is
used.
Set log trace level and error level to record less information. In production servers trace level should
be OFF and error level should be ERROR unless you are searching for specific issues such as
monitoring the SQL statements sent to the DBMS.
Convert reports from earlier versions into current version.
Set task-level timeout for advanced run and scheduled tasks. This will ensure that users do not run
extremely long jobs accidentally.
Modify the JVM heap size. Again this needs some testing on your system to determine the best
overall throughput. On 32-bit systems the maximum size is 2GB; however, on 64-bit systems the
maximum size is extremely large. The heap usage can be monitored by tools such as the JDK
jconsole application. Set a starting heap size just under your normal average usage (Use -Xms in
JRServer.sh/bat) and set the maximum heap (Use -Xmx) to the maximum that you want the heap to
grow. JReport can use additional heap to improve performance of queries and sorting and reducing
the number of garbage collections (GC) which use CPU time. However, using too much memory for
Java heap can impact performance of other applications.
●
●
●
●
●
●
●
●
●
●
Set queue.policy=1, 2 or 3 in server.properties in the <install_root>\bin directory to turn on
using priorities so on demand reports will be higher than scheduled reports. By using the different
policies, you can dynamically adjust priorities so reports increase their priority the longer they wait in
the queue. A third high priority queue can also be enabled for on demand reports which need to run
immediately.
Configure dhtml.properties to queue DHTML actions to ensure JReport Viewer features do not take
too many system resources and impact other functions.
Set engine.single_thread=true or false in server.properties. Depending on your environment and
JDK, some systems run faster with a single threaded engine than with a multi-threaded engine. This
needs to be tested in your environment to determine which setting provides the highest throughput.
Set the maximum number of user handlers to the optimal size by setting the httpserver.max.
handlers property in the server.properties file. This is the number of threads which are waiting to
handle user requests. Setting this larger than needed wastes resources; however, setting it too small
will mean that some users will not be able to access reporting until someone else exits.
Adjust the engine's utilization of the CPU in accordance with your own requirements, by setting the
Engine Priority property to a higher or lower priority on the JReport Administration page >
Configuration > Advanced panel.
Select the two options View Incomplete Pages and Format Page on Demand on the JReport
Administration/Console page > Profile > Configure DHTML Profile > Properties > Advanced tab for
faster viewing of the first page of large reports in DHTML format. The disadvantage is that to see the
actual number of pages, calculate complete report totals and create the TOC, the user has to
manually select the last page of the report.
Be sure performance.exe_gc=false as the default in the server.properties file. This allows the JDK to
schedule garbage collections as needed rather than at specific times.
Minimize the usage of Word Wrap to columns which really require it. Word Wrap requires that we preformat the data in memory to determine its size then wrap the field as necessary then continue to
format it. If fields never are large enough to wrap, especially objects like labels, it is a lot of
overhead.
True Type Fonts (TTF) provide better throughput by reducing font substitution and scaling time.
Changing all the fonts to use TTF fonts improves the quality of the output as well as the performance
when a mixture of operating system is used such as report design on Windows and production on
Unix.
Use binary versions of .cls and .cat, not the xml versions when you publish report sets to JReport
Server. This saves processing time and I/O time when converting the files to Java classes.
Monitoring
JReport Server Monitor, which is a standalone web-based application used to monitor the overall
performance of JReport Server, allows you to inspect the status of JReport Server, including the status
of the servers in the cluster, the status of different reports, the status of on-line users and so on.
JReport Server Monitor is able to generate and display the performance chart of JReport Server
according to its statistics. Thus you can view the performance of JReport Server in the form of Line
Chart Graph and Text. You can also use JReport Server Monitor to maintain JReport Server, such as
shutting down servers, stopping waiting/running tasks, logging out a valid user session and so on. By
creating profiling reports using JReport Server Monitor, you can inspect server performance in a certain
period of time.
To access JReport Server Monitor:
1. Launch MonitorServer.bat in <monitor_install_root>\bin.
2. Click Monitor on the system toolbar of the JReport Administration page.
The following topics detail how to use the Server Monitor:
●
Monitoring the server status
●
Monitoring the server performance
Monitoring the server status
JReport Server Monitor allows you to inspect the status of JReport Server. You can list the servers and
their status from a cluster. You can also list the reports by drilling down into the servers, for example,
running reports, waiting reports, finished reports, and failed reports. Tracking further down, you can
even view the status of these reports. However, JReport Server Monitor is not able to monitor the
information of a report that is running in DHTML format.
The following topics explain what JReport Server Monitor can do:
●
Showing the status of servers in a cluster
●
Monitoring the status of reports
●
Monitoring the status of online users
●
Monitoring the status of the database connection pool
Showing the status of servers in a cluster
By accessing the home page of JReport Server Monitor, you can see the status of each server in a
cluster, including the cluster member ID, host IP, port, and its status.
The Status table of the servers includes:
Column Heading
Description
Cluster Member ID
The ID of the server as a cluster member.
Host
The host IP address of the server.
Port
The RMI port number of the server.
Status
The status of the server. Can be either Active or Inactive.
●
Active - The server has been started and is ready for service.
●
Inactive - The server is inactive and cannot be available for service.
Monitoring the status of reports
Expand any server node in the left panel of the JReport Server Monitor home page, and then click
Reports, you can see the status of the reports. You can select to view the status of different reports
from the drop-down list. There are five types of report status: all reports, running reports, waiting
reports, finished reports, and failed reports.
Status of all reports
The status table of all reports includes:
Column Heading
Description
Report
The full path name of the report.
User ID
The ID of the user who submitted the report.
Submit Time
The time when the task was last submitted.
Pages
The total number of pages the last submitted report has.
Number of Runs
The total number of report runs since it is first published to JReport Server.
Status
The status of the submitted report.
Status of the running reports
The status table of the running reports includes:
Column Heading
Description
Action
Stops the report from running and makes it a failed report.
Task ID
The internal ID for this report.
Report
The full path name of the report.
User ID
The ID of the user who submitted the report.
Task Status
For running reports, can be one of the following:
●
Running - The task is currently being processed.
●
Initializing Engine - The task is currently in the initializing engine stage.
●
Loading Report - The task is currently in the loading report stage.
●
Exporting - The task is currently in the exporting stage.
●
Exiting Engine - The task is currently in the exiting engine stage.
Task Type
The task type.
Start Time
The time when the task was started.
Elapsed Time
The elapsed time since the task was started.
Submit Time
The time when the task was submitted.
Run Host
The name of the host on which the task is performed.
Run Port
The port number of the host on which the task is performed.
Catalog
The catalog that the report belongs to.
Status of the waiting reports
The status table of the waiting reports includes:
Column Heading
Description
Action
Stops the report from running and makes it a failed report.
Task ID
The internal ID for this report.
Report
The full path name of the report.
User ID
The ID of the user who submitted the report.
Task Status
For waiting reports, can be one of the following:
●
●
●
Submitted - The task has been submitted successfully.
Unlaunch - The task is currently in the unlaunch queue waiting to be
processed.
Task Queue - The task is currently in the task thread queue waiting to be
processed.
Task Type
The task type.
Submit Time
The time when the task was submitted.
Catalog
The catalog that the report belongs to.
Status of the finished reports
The status table of the finished reports includes:
Column Heading
Description
Task ID
The internal ID for this report.
Report
The full path name of the report.
User ID
The ID of the user who submitted the report.
Task Status
Completed.
The task has been processed successfully, and has accomplished all the
requirements.
Task Type
The task type. Can be Schedule or On-demand.
Run Host
The name of the host on which the task is performed.
Run Port
The port number of the host on which the task is performed.
Catalog
The catalog that the report belongs to.
Result Files
The path of the result files.
Report Pages
The total page number of the report.
Reason
The reason why the task failed. Can be an exception or a meaningful description.
Submit Time
The time when the task was submitted.
Start Run Time
The time when the report was started.
Completed Time
The time when the report was completed.
Status of the failed reports
The status table of the failed reports includes:
Column Heading
Description
Task ID
The internal ID for this report.
Report
The full path name of the report.
User ID
The ID of the user who submitted the report.
Task Status
Failed.
The task has encountered errors, and has failed to accomplish all the
requirements.
Task Type
The task type.
Run Host
The name of the host on which the task is performed.
Run Port
The port number of the host on which the task is performed.
Catalog
The catalog that the report belongs to.
Result Files
The path of the result files.
Report Pages
The total page number of the report.
Reason
The reason why the task fails. Can be an exception or a meaningful description.
Failed Info
The information about the report's failure.
Submit Time
The time when the task was submitted.
Start Run Time
The time when the report was started.
Completed Time
The time when the report was completed.
Monitoring the status of online users
To see the status of the online users, expand any server node in the left panel of the JReport Server
Monitor home page, and then click Users. You can also select and remove specific users.
The status table of the online users includes:
Column Heading
Description
Session ID
The internal ID of the user session.
User ID
The ID of the user logged onto the server.
Create Time
The time when the user session was created.
Last Access Time
The time when the user last accessed the server.
HTTP Session ID
The session ID in the HTTP service.
Authentication
The authentication type. It can be Internal or External.
Monitoring the status of the database connection pool
To see the status of the database connection pool, expand any server node in the left panel of the
JReport Server Monitor home page, and then click Databases. You can also select and remove specific
connections.
The status table of the connection pool includes:
#
Column Heading
Value
Description
1
User
String
The user who is currently using the connection.
2
URL
A URL connecting to a
database.
It specifies the connections that are based on a
URL which will be caught in the pool.
3
Expiring Time(s)
0 (default) or expiring
time. The unit is second.
If the value is zero then
the connection will never
expire.
Shows the time during which a connection can be
alive. If a connection has expired, the connection
pool will close it.
4
Idle Expiring Time
(s)
1 (default) or expiring
time. The unit is second.
Its value must be larger
than or equals to 1.
Shows the time during which a connection is kept
after it starts idling. If a connection is not used, it
will stay open until the idle expiry time has been
reached.
5
Maximal
Connection Count
0 (default) or a positive
integer.
Shows the pool size, which limits the number of
connections under a single URL
6
Maximal Share
Count
0 (default) or a positive
integer.
Shows the number of users who can share a
connection simultaneously.
7
Attempt
A positive integer, the
default value is 1.
Shows whether to re-create a connection when
the connection pool has failed to create one and
the number of attempts for creating the
connection. If the user sets this value to a nonpositive integer, the default value (1) will be
used.
8
Interval(ms)
0 (default) or a positive
integer. The unit is
millisecond (ms).
If property ‘Attempt' is larger than 1, then before
the connection pool retries to create a connection
it will wait for an interval time. This property
defines the interval time.
9
Last User
0 (default) or a positive
Connecting Time(s) integer. The unit is
second.
It shows the time elapsed since the last user has
taken this connection.
10
Current Idle Time
(s)
0 (default) or a positive
integer. The unit is
second.
Shows the time elapsed since the connection
started to idle.
11
Current Share
Count
0 (default) or a positive
integer.
Shows the number of users who are currently
sharing this connection.
Note: The properties numbered 2 to 8 can be set in the ConnectionPoolConfig.properties file in
<server_install_root>\bin and the last three properties will be shown according to the real time
status.
Monitoring the server performance
You can monitor the server performance in two ways, one is using JReport Server Monitor, and the other is by using an
external method: JMX MBean API or web service API.
Monitoring the server performance on JReport Server Monitor
JReport Server Monitor can show performance counters in graph (Line chart and Bar chart) and text mode.
To monitor the performance of JReport Server on JReport Server Monitor:
1. In the left panel of the JReport Server Monitor home page, click to select any server node.
2. Click the Performance tab, and then click
on the toolbar.
3. Select a task type from the drop-down list, click to select the counters you want to add, and then click Add.
4. The performance chart will then be displayed.
The available counters for different tasks are:
Task Type
Performance Counter
Description
Report Task
Waiting Report Number
The number of the currently waiting reports.
Running Report Number
The number of the currently running reports.
Finished Report Number
The number of the finished reports.
Finished Report Pages
The number of pages of the finished reports.
Report Average Processing Time
The average processing time of each report.
Report Average Waiting Time
The average waiting time of each report.
Valid User Session Number
The number of valid user sessions.
User Average Submit Rpt Num
The average number of reports that a user submits.
Database Connection Number
The number of database connections.
User Session
Database Connection
Monitoring the server performance using JMX MBean API or web service API
To monitor server performance via JMX MBean API:
1. Make your application environment consistent with the JMX specification.
2. In server.properties, set the properties server.rmiserver.enable and server.profiling.enable to true.
3. Run your code. Here is an example:
ObjectName profilingName = new ObjectName("jinfonet:name=profileCounter");
ProfilingFactory ft = new ProfilingFactory("127.0.0.1",1129, "d:\\monitor");
ProfilingCounter profilingCounter = new ProfilingCounter(ft);
MBeanServer server = MBeanServerFactory.createMBeanServer();
server.registerMBean(profilingCounter, profilingName);
ProfileNotifyListener notifyListener = new ProfileNotifyListener();
profilingCounter.addNotificationListener(notifyListener, null,null);
// Create an RMI connector and start it
JMXServiceURL url = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://localhost:9999/server");
JMXConnectorServer cs = JMXConnectorServerFactory.newJMXConnectorServer(url, null, server);
cs.start();
In code part ProfilingFactory ft = new ProfilingFactory("127.0.0.1",1129, "d:\\monitor"), the
parameters serverHost and serverRMIPort are used to get server's ProfilingService remote object, parameter
homepath is the path of the rmi.auth file which is used for RMI authority checking public ProfilingFactory(String
serverHost, int serverRMIPort, String homepath).
4. Check the monitoring result.
To monitor server performance via web service API:
1. Build jreport.war with the makewar buildWar4WS command by using the makewar.bat utility in the <install_root>
\bin directory.
2. Deploy jreport.war to your application server such as Tomcat or WebSphere.
3. In server.properties, set the properties server.rmiserver.enable and server.profiling.enable to true.
4. Run your code. Here is an example:
XFire xfire = XFireFactory.newInstance().getXFire();
XFireProxyFactory factory = new XFireProxyFactory(xfire);
Class className = jet.server.profiling.ws.service.JReportServerProfilingWs.class;
String serviceName = "ProfilingService";
String serviceURL = "http://localhost:8080/jreport/services/ProfilingService";
Service serviceModel = new ObjectServiceFactory().create(className, serviceName, null, null);
JReportServerProfilingWs o = (JReportServerProfilingWs)factory.create(serviceModel, serviceURL);
//Setup properties
Client client = Client.getInstance(o);
client.setProperty("mtom-enabled", "true");
client.setProperty(HttpTransport.CHUNKING_ENABLED, "true");
//try call getCounter first before check login
try{
System.getCounter("totalcompletedtasks"));
}catch(Exception e) {
e.printStackTrace();
}
//call check login then call getCounter and getCounterType
o.checkLogin("admin", "admin");
System.getCounter("totalcompletedtasks"));
5. Check the monitoring result. When you run your code, you can call the two methods getCounter() and
getCounterType() to get the information you want.
The available counters used in JMX MBean API and web service API are:
Performance Counter
Counter Name
Counter
Type
Description
Total Completed Tasks
TotalCompletedTasks
int
The tasks that are totally completed.
Number of Reports per
Minute
NumberofReportsPerMinute
float
The number of the reports running per minute.
Total Number of Pages
Exported
TotalNumberofPageExported
long
The total number of the exported report pages.
Exported Pages per Minute ExportPagesPerMinute
float
The number of exported report pages per minute.
Successful Tasks
SuccessfulTasks
int
The tasks that have been run successfully.
On-demand Tasks
OnDemandTasks
int
The tasks that have been run on-demand.
Average Number of Pages
TaskAveragePages
float
The average number of report pages for each task.
Maximum Number of
Pages
TaskMaximumPages
long
The maximum number of report pages for all tasks.
Average Running Time
per Task
TaskAverageRunTime
float
The average running time of each task.
Maximum Running Time
TaskMaximumRunTime
float
The maximum running time of the tasks.
Average Waiting Time per
Task
TaskAverageWaitTime
float
The average waiting time of each task.
Maximum Waiting Time
TaskMaxWaitTime
float
The maximum waiting time of the tasks.
Average Engine Time per
Task
TaskAverageEngineTime
float
The average running time of each task on engine.
Maximum Engine Time
TimeTaskMaximumEngine
float
The maximum running time of all tasks on engine.
Average Concurrent
Engines
AverageConcurrentEngines
float
The average number of concurrent engines for each task.
Maximum Concurrent
MaximumConcurrent
long
The maximum number of concurrent engines for all tasks.
In JMX MBean API and web service API, the data type of the profiling counters has to be Decimal. Below is a figure of
built-in data type hierarchy that you could refer for the return value:
Accessibility
JReport supports accessibility attributes and a built-in accessible JReport Server console. The
implementation standard is based on HTML specification 4.01 http://www.w3.org/TR/WCAG10-HTMLTECHS/ and information on Section 508 Standards: www.section508.gov and www.access-board.gov.
Making HTML format report results accessible
When designing a report in JReport Designer, you can add the accessibility related HTML attributes to
the report elements in order to make the HTML format result more readable and accessible. Those
attributes are provided in the Accessibility category of the Report Inspector.
To add accessibility to a report in the HTML format result:
1. Predefine necessary accessibility attributes when designing the report in JReport Designer.
When a report element is selected, the corresponding accessibility attributes are available in the
Report Inspector.
2. Enable Section 508 compliant output when exporting the report to HTML format.
In the HTML export option UI, check the option Section 508 Compliant Output.
If you only want to convert table/crosstab components into HTML data table in the HTML format
report result, check the option Use HTML Data Table.
The above two options are available on all HTML export option UIs in JReport Designer, JReport
Server and JReport Viewer.
The accessible version of JReport Server
JReport Server enables the disabled users to visit the accessible version with simplified functionality to
read reports by reader agent or other assistive tools. In the accessible version, reports are displayed in
HTML format with accessibility attributes, and table/crosstab components are output as HTML data
table.
JReport Server provides an option - Use Accessible Version, for setting the accessible version of JReport
Server as the default portal UI for an end user after the user logs in. The default port for accessible
version is 8888 which is also the default port for JReport Console page in normal version. That is to
say, the Use Accessible Version option controls switching between normal version and accessible
version of JReport Server UI when logging onto port 8888. By default this option is unselected and end
users are directed to the JReport Console page in normal version.
Activating the accessible version
The administrator can activate the accessible version for all users or for an individual user:
●
To enable for all users:
1. Log onto the JReport Administration page.
2. Click Profile on the system toolbar and then select Customize Server Preferences from the
drop-down menu.
3. Select the Advanced tab.
4. Check the Use Accessible Version option, then click OK to apply the change.
●
To enable for an individual user:
1. Log onto the JReport Administration page.
2. Click Security on the system toolbar and then select User from the drop-down menu.
3. Locate the wanted user ID, then click the Preference link for the user.
4. In the Preference dialog, go to the Customize Server Preferences > Advanced tab.
5. Check the Use Accessible Version option, then click OK to save the change.
And a non-administrator user can also enable the accessible version by self on the JReport Console
page in the following way:
1. Log onto the JReport Console page and click Profile on the system toolbar.
2. Click Customize Server Preferences on the task bar of the Profile page, then select the
Advanced tab.
3. Check the Use Accessible Version option, then click OK to save the change.
After a user has been enabled the access to Accessible Version, the user will be directed to the
accessible version when he/she logs in next time. With the help of reader agent the user can navigate
through the server resource to view the target report.
Main options in the accessible version UI
Directory Path
Displays the current directory where you have come to follow the server resource tree.
Up to Higher Level Directory
Goes to the parent level folder.
Up to Top Level Directory
Goes to the default portal page.
Leave Accessible Version
Redirects to the normal version of JReport Console page with full functionalities. Once you leave the
accessible version, there is no way to return unless you re-log in. However, it is not recommended for
the disabled to leave the accessible version unless having others' help.
Select User Directory
You can choose to open either the My Reports folder or the Public Reports folder.
Catalog
Lists the catalogs used in the current directory.
Report List
Lists the folders and report sets and reports contained in the current directory. You can click the
hyperlinks in the Name column to open them.
JReport Portlet
JReport Portlet is a portlet implementation based on JSR-168 Portlet Specification. It is deployed and
run in a portal server container on the Java EE application server, to which JReport Server is deployed.
You can insert JReport Portlet objects into your portal page, and run reports in the JReport Portlet
window on the portal page. JReport Portlet provides DHTML report displays in the JReport Portlet
window, where necessary and easy-to-use ad hoc functions are available for you to manipulate and
customize reports.
However, a report that can run in a JReport Portlet should meet the following requirements:
●
●
●
The report is the only report in the report set.
The Portlet Report property of the report is set to true in JReport Designer. By default, this property
is false.
There is only one dataset in the report.
The following topics are introduced about JReport Portlet:
●
Preparing the webservice for JReport Portlet
●
Deploying JReport Portlet to portal servers
●
Adding JReport Portlet to the portal server
●
Working with reports in JReport Portlet
Preparing the web service for JReport Portlet
Before you can deploy JReport Portlet to any portal server, your JReport Server should have been
deployed to an application server. You can refer to Deploying JReport Server to a Java application
server for details about the deploying procedure. However, the JReport Server WAR file jreport.war
used in the deployment should be packaged using the following command in this case (here it is
assumed JReport Server is installed to C:\JReport\Server):
C:\JReport\Server\bin\makewar buildWar4WS
Also, the reports you want to run in JReport Portlet should also be published to the JReport Webservice
Server, in advance, so that they can be loaded to the corresponding folder in JReport Portlet
automatically.
Assume that:
●
●
You have downloaded the JReport demo portlet reports, which are available in PortletReports.zip in
<server_install_root>\help\server\en\samples, to C:\PortalDemo.
The font and style files the demo portlet reports use have also been downloaded to C:\PortalDemo
\font and C:\PortalDemo\style. These files can be found in PR_Resources.zip which locates in
<server_install_root>\help\server\en\samples.
Note: If you want to use the demo reports JReport provides in JReport Portlet, before deploying jreport.
war to the web server, you need to add mysql-connector-java-5.x-bin.jar into \WEB-INF\lib, this is
because the JReport demo portlet reports are based on MySQL database. You can get the database
driver from PR_Resources.zip which is available in <server_install_root>\help\server\en\samples.
To publish the demo reports to the JReport Webservice Server:
1. Start the application server in which JReport Server is deployed.
2. Open a web browser and set the URL to http://<hostname>:<webserver_port>/jreport to
access the JReport Webservice Server.
3. Open the My Reports/Public Reports folder, then click Publish > To Local Server on the task
bar.
4. In the Publish to Local Server page, click the Browse button next to the From Folder field to
select the folder C:\PortalDemo where the portlet reports are saved.
5. Click the Browse button next to Font Directory, and then browse to select C:\PortalDemo\font.
6. Click the Browse button next to Style Directory, and then browse to select C:\PortalDemo\style.
7. Specify a name in the Resource Node Name box. This name is required and is used as the display
name of the resource in the server resource tree.
8. Click OK to publish the resources. Upon finishing, you will find a new folder of the specified
resource node name is added in the My Reports/Public Reports folder with the portlet reports.
After the portlet reports are published to the My Reports/Public Reports folder in the JReport
Webservice Server, they will also be automatically loaded to the My Portlet Reports/Public Portlet
Reports folder in JReport Portlet.
Reference: You can refer to Publishing resources for more detailed instruction about the publishing
steps.
Deploying JReport Portlet to portal servers
Assume JReport Server is installed to C:\JReport\Server, before you can deploy JReport Portlet to
any portal server, you need to package the JReport Portlet WAR file by running the following command.
C:\JReport\Server\bin\makewar buildPortletWar
When this is done, you can find the file jrportlet.war in C:\JReport\Server\bin\distribute. Then
you need to edit web.xml in \WEB-INF as follows:
●
Modify the host and port of of the webservice server according to your environment.
●
Set the value of jreport.authorized according to the portal server you install.
The following introduces how to deploy JReport Portlet to some specific portal servers. The web portal
servers supported are WebSphere 6.0.0.1, JBoss 2.6.5.SP1, Liferay 4.3.5, and above.
Deploying to WebSphere Portal
Assume that the WebSphere Portal Server has been installed in C:\websphere, to deploy JReport
Portlet to the portal server:
1. Start WebSphere Portal Server, open a web browser and set the URL to http://hostname:10038/
wps/myportal to access the WebSphere Portal.
2. Enter wpadmin for the User ID and admin for the Password, click Login and the WebSphere
Portal home page is displayed.
3. Click Launch to open the main menu, then click Administration > Web Modules on the menu.
4. On the Manage Web Modules page, click the install button.
5. Click Browse to find jrportlet.war in C:\JReport\Server\bin\distribute.
6. Click Finish to deploy JReport Portlet to the portal server.
Deploying to JBoss Portal
Assume that you have downloaded JBoss Portal 2.6.5-SP1 into C:\jboss, to deploy JReport Portlet to
the portal server:
1. Copy jrportlet.war in C:\JReport\Server\bin\distribute to C:\jboss\server\default\deploy.
2. Start JBoss Portal Server to finish deploying.
Deploying to Liferay
Assume that you have installed Liferay in C:\liferay, to deploy JReport Portlet to the portal server,
you can use one of the following two methods:
●
Method 1:
1. Copy jreport.war in C:\JReport\Server\bin\distribute to C:\liferay\webapps.
2. Copy jrportlet.war in the same directory to C:\Documents and Settings\user name\liferay
\deploy.
3. Start Liferay to finish deploying.
●
Method2:
1. Start Liferay, then open a web browser and set the URL to http://localhost:8080/user/
joebloggs to access the Liferay home page.
2. Click Plugins, and the plugin Installer dialog appears.
3. Click the Upload File tab.
4. Click Browse to find jreport.war in C:\JReport\Server\bin\distribute.
5. Click Install to finish.
6. Follow the above steps to deploy jrportlet.war.
Note: Because the Liferay Portal Server is integrated with Tomcat, you can deploy jreport.war to
Liferay directly instead of to the web server as explained in Preparing the webservice for JReport Portlet.
Adding JReport Portlet to the portal server
When JReport Portlet is successfully deployed to the portal server, the next step is to add it to the
portal server, so that you can work on the reports you have published to the JReport Webservice
Server, which are also available in JReport Portlet. This section explains adding JReport Portlet to
WebSphere Portal, JBoss Portal and Liferay specifically.
Adding to WebSphere Portal
To add JReport Portlet to WebSphere Portal, follow these steps:
1. Start WebSphere Portal Server, open a web browser and set the URL to http://hostname:10038/
wps/myportal.
2. On the WebSphere Portal home page, click Launch to open the main menu.
3. On the main menu, click Administration > Manage Pages. The Manage Pages page is then
displayed.
4. Click the Content Root link in the My pages table, and then click the New Page button to access
the Page Properties page.
5. Specify the title of the page as JReport in the Title text field, then click OK to add the page.
6. Click Launch again to open the main menu, then click JReport on the menu to access the
JReport page.
7. Click
at the upper right corner of the page to open the portlet palette.
8. Enter JReport in the Search field, then click
search result list.
. JReport Portlet View is then displayed in the
9. Drag the portlet to the JReport page.
Adding to JBoss Portal
To add JReport Portlet to JBoss Portal, follow these steps:
1. Start JBoss Portal Server, open a web browser and set the URL to http://localhost:8080/
portal.
2. Click Login in the upper right corner of the JBoss Portal page.
3. In the JBoss Login Portal dialog, enter admin for Username and admin for Password, then click
Login.
4. On the JBoss Portal home page, click Admin at the upper right corner, then click the Admin tab.
5. Click the Portlet Definitions sub tab, and then click the Create instance link in the JReport
Portlet View row.
6. In the JReport Portlet View instance creation dialog, enter JReport in the Create an instance
named text field, and then click the Create instance button.
7. In the Portlet Instances sub tab, enter JReport in the Add Instance Display Names text field,
select English in the Locale drop-down list and click Add Name.
8. Click Dashboard > Configure dashboard at the upper right corner of the JBoss Portal page.
9. In the Create a New Page dialog, specify JReport in the Page name text field, then click Save to
create the page.
10. Enter JReport in the Window Name text field, click Add button in the Page Layout panel, then the
JReport page will be added to the Portlet Instance associated to this window box.
11. Click Dashboard at the upper right corner to return to the JBoss Portal home page.
12. Now you can see the JReport tab is added on the JBoss Portal page.
Adding to Liferay
To add JReport Portlet to Liferay, follow these steps:
1. Start Liferay, open a web browser and set the URL to http://localhost:8080 to access the
Liferay home page.
2. Point to Welcome at the upper right corner of the home page, then click Sign In.
3. In the Sign in with a regular account box, enter [email protected] for Login and test as the
password, then click SIGN IN.
4. On the Liferay home page, click Add Page, enter JReport in the page name text field, then click
Save. A tab named JReport is then added.
5. Click the JReport tab, then expand the Welcome Joe Bloggs list and click Add Content on the
list.
6. In the Add Content dialog, click on JReport and then click the Add button to add one JReport
Portlet View window. You can add several windows according to your requirements by clicking the
Add button.
7. Close the Add Content dialog. Now JReport Portlet is ready on Liferay.
Working with reports in JReport Portlet
When reports are published to JReport Portlet, you can then run them and perform actions like sorting,
filtering, drilling, etc to the reports according to your requirements just as you do on JReport Server.
Running reports
To run a report in JReport Portlet:
1. Open JReport Portlet on the portal server.
2. In the Select Report window, select the report you want to run from the report list.
3. Click OK. If the report has parameters, you will be asked to specify the parameter values. Enter the
parameter values as required and then click Submit.
Note that, in the report list, only the reports that are published to the My Reports folder on the JReport
Webservice Server are listed. So if your reports are published to the Public Reports folder, to make them
available in the list, click Customize Report List button
in the Select Report window, then add the
reports from the Public Portlet Reports box to the My Portlet Reports box.
In the Select Report window, you can also rename the reports, or remove any report that is not required
according to your requirements.
●
To rename a report, select the report from the report list, click the Rename Report button
, then give
a new name for the report in the Rename Report dialog as required. Or, you can just double-click the
report row to rename it.
●
To remove a report, select the report you from the report list, then click the Remove Report button
.
Working with reports
When a report finishes running and is displayed in the JReport Portlet window, the following toolbar
commands are available in the window for you to work with:
Open
Opens another report in the window.
Rerun
Reruns the report to refresh the report data.
Export Excel
Exports the report result to Excel format.
Export PDF
Exports the report result to PDF format.
Sort
Sorts the report data in ascending or descending order on the fields you select.
Filter
Filters the report data according to the filter criteria you specify.
<Select a chart type>
For a chart report, you can change its chart type by selecting another type from the drop-down list.
Page navigation
If a report contains several pages, you can click the page number and the arrow buttons to navigate through
the report pages.
Besides the above operations, you can also drill the data in a crosstab into other dimensions, go to the
details of a group in a report, and link to another report or a detail report, so as to make the analysis of a
report more diverse and useful.
For details about the operations, refer to the specific topics in JReport Viewer - Interactive Reports.
Tip: The JReport Portlet window for each report can be customized according to your requirements. To do
, then specify the window title and the
this, In the report display window, click the Preferences button
toolbar commands that you want to display in the JReport Portlet window for the report.
Note: WebSphere portal server does not support dynamic portlet title by default. In order to use a dynamic
portlet title on WebSphere, you need to modify <WebSphere Portal Profile>\installedApps\<Node>\wps.
ear\wps.war\skins\html\IBM\control.jsp:
1. Change
<portal-skin:portletTitle>
<portal-fmt:problem bundle="nls.problem"/>
</portal-skin:portletTitle>
to
<span id="title.<portal-skin:portletID/>">
<portal-skin:portletTitle>
<portal-fmt:problem bundle="nls.problem"/>
</portal-skin:portletTitle>
</span>
2. Add the following code at the end of control.jsp:
<script type="text/javascript">
var dynamicTitle = "<%=request.getAttribute(com.ibm.portal.portlet.Constants.
DYNAMIC_TITLE)%>";
var titleElement = document.getElementById("title.<portal-skin:portletID/>");
if (titleElement != null) {
if (dynamicTitle != "" && dynamicTitle != "null")
titleElement.innerHTML = dynamicTitle;
}
</script>
For more, see http://www.ibm.com/developerworks/websphere/library/techarticles/0612_rick/0612_rick.
html.
Working with APIs
APIs provide extensibility by enabling you to leverage JReport components and services, and build
them into other applications, thus integrating JReport with their existing platform infrastructure.
For details about the usage of APIs available in JReport Server, see JReport Server Javadoc located in
<install_root>\help\server\en\api.
This chapter introduces how to install and utilize two types of significant APIs:
●
JReport Server API
●
DHTML API
JReport Server API
JReport Server API is a set of Java programming interfaces that run report sets, explore report
resources, and provide access control for report servers. It is mainly used for writing servlets, JSPs and
Java applications with report server features.
The following topics are covered in this chapter:
●
Installing the Server API
●
Creating and getting instances of the ReportEngine
●
Creating and getting instances of RptServer or HttpRptServer
●
Invoking the Server API
●
Overall Remote Server API & unified JSP
●
Secure RMI objects and universal RMI object management
●
Loading user data source classes at runtime
●
Applying a user defined CSS to the HTML result file
●
Specifying paths for the result files when using On-Demand API
●
Setting dynamic parameter values when running/scheduling report set via API
●
Setting values of multi-value parameters via API
●
API demos
●
RMI demos
●
Additional references
Installing the Server API
When you install JReport Server, JReport Server API is also installed at the same time. After
installation, you will have the following files:
In <install_root>\lib:
●
❍
JRESServlets.jar
❍
JREngine.jar
❍
servlet.jar
❍
hsqldb.jar
❍
log4j-1.2.8.jar
❍
sac.jar
❍
commons-codec-1.2.jar
In <install_root>\derby\lib:
●
❍
derby.jar
❍
derbyclient.jar
❍
derbynet.jar
❍
derbytools.jar
The Server API classes are stored in the archive file JRESServlets.jar.
You need to set the classpath environment variable. Append the following jar files to your classpath
that compile and run applications which call the Server API:
<install_root>\lib\JRESServlets.jar; <install_root>\lib\JREngine.jar; <install_root>\lib
\servlet.jar; <install_root>\lib\hsqldb.jar; <install_root>\lib\log4j-1.2.8.jar;
<install_root>\lib\sac.jar; <install_root>\lib\commons-codec-1.2.jar; <install_root>
\derby\lib\derby.jar; <install_root>\derby\lib\derbyclient.jar; <install_root>\derby\lib
\derbynet.ja; <install_root>\derby\lib\derbytools.jar;
Note: If you want to export reports to the following formats, you should add the corresponding class
package or jar with a valid path to the class path:
●
To e-mail or use the E-mail Notification function: activation-1.1.jar and mail-1.4.jar.
●
To FTP: commons-net-ftp-2.0.0.jar.
●
To PDF & DHTML: itext_1.5.4.jar.
●
To Excel: poiHSSF_151.jar.
●
To XML: xml-apis.jar and xercesImpl.jar.
●
To DHTML: JRWebDesign.jar.
Creating and getting instances of ReportEngine
To get an instance of the ReportEngine, you can use the method getInstance() or getInstance(boolean
setDebugLevel) in the jet.server.api.engine.ReportEngineFactory.
For example,
bean = ReportEngineFactory.getInstance();
or,
bean = ReportEngineFactory.getInstance(true);
Reference: See JReport Server Javadoc in <install_root>\help\server\en\api for usage of the
ReportEngine methods.
Creating and getting instances of RptServer or HttpRptServer
You can use the following three methods to get the instances of RptServer or HttpRptServer. Note that
only one server can exist in the system, and in most circumstances, you should get the server instance
instead of creating a new one.
Method 1
Use the method jet.server.api.http.HttpUtil.initEnv(Properties props).
The method jet.server.api.http.HttpUtil.initEnv(...) creates and initializes the HttpRptServer object. If
the HttpRptServer has already been started, it will use the existing HttpRptServer instance. Use this
method to avoid creating more than one HttpRptServer instance.
//prepare report server initial properties.
//The property reporthome must be set. For example: c:\JReport\Server.
//Other properties are optional. They are:
//jrs.isMyServer: Indicates if the HTTP server is JReport standalone server.
//The default value is "false".
//temp_dir or jrs.dir.temp: The path of temp directory.
//The default value is <reporthome>\temp.
//history_dir or jrs.dir.history: The directory where all the versions
//of report set results will be maintained.
//The default value is <reporthome>\history.
//auth_scheme: It specifies the scheme of authentication.
//Its value must be Basic or Digest.The default value is Basic.
//default_doc: The home page of JReport Server
//It is an HTML file. If it is not set or the file set to it cannot be loaded,
//the default home page of JReport Server will be used.
//The path is relative to <install_root>, for example, docs/index.html.
//isConvertedServletPath: This property specifies whether your web server
//decodes the path if it contains special characters.
//This information is used for JRServlet to determine whether it needs
//to convert that path. If you don't specify this property, your web server
//is not supposed to decode the path.
//vError: Enables JReport Engine to output messages to a file and sets engine
//log file's trace level to OFF and error level to ERROR.
//vDebug: Enables JReport Engine to output messages to a file and sets engine
//log file's trace level to INFO and error level to WARN.
//Properties props = System.getProperties();
//get an initialized instance of HttpRptServer
HttpUtil.initEnv(props);
//also can get the instance of HttpRptServer by using
HttpUtil.getHttpRptServer()
// after called HttpUtil.initEnv(props)
jet.server.api.http.HttpRptServer httpRptServer = HttpUtil.getHttpRptServer();
//demo cast HttpRptServer to RptServer
jet.server.api.RptServer rptServer = httpRptServer;
Method 2
Call the method HttpUtil.checkLogin(HttpServletRequest req, HttpServletResponse res).
The method jet.server.api.http.HttpUtil.checkLogin(...) implicitly calls HttpUtil.initEnv(...) if necessary.
So you can get the HttpRptServer after calling HttpUtil.checkLogin(...).
// check login at first
if (HttpUtil.checkLogin(request, response))
{// get the instance of HttpRptServer
jet.server.api.http.HttpRptServer httpRptServer = HttpUtil.getHttpRptServer();
// do something
}
Method 3
Directly create an instance of HttpRptServer.
Demo 1:
//create an instance of HttpRptServer jet.server.api.http.HttpRptServer
//httpRptServer = new jet.server.jrserver.http.JRHttpRptServer();
//initialize the HttpRptServer.
//The property reporthome must be set.
//For example: c:\JReport\Server.
//Other properties are optional. The properties are:
//jrs.isMyServer: Indicates if the HTTP server is JReport standalone server.
//The default value is "false".
//temp_dir or jrs.dir.temp: The path of temp directory.
//The default value is <reporthome>\temp.
//history_dir or jrs.dir.history: The directory where all the versions
//of report set results will be maintained.
//The default value is <reporthome>\history.
//auth_scheme: It specifies the scheme of authentication.
//Its value must be Basic or Digest.The default value is Basic.
//default_doc: The home page of JReport Server. It is an HTML file.
//If it is not set or the file set to it cannot be loaded,
//the default home page of JReport Server will be used.
//The path is relative to <intall_root>, for example, docs/index.html.
//isConvertedServletPath: This property specifies whether your web server
//decodes the path if it contains special characters.
//This information is used for JRServlet to determine whether
//it needs to convert that path. If you don't specify
//this property, your web server is not supposed to decode the path.
//vError: Enables JReport Engine to output messages to a file and sets engine
//log file's trace level to OFF and error level to ERROR.
//vDebug: Enables JReport Engine to output messages to a file and sets engine
//log file's trace level to INFO and error level to WARN.
//at least the property reporthome should be set.
httpRptServer.init(System.getProperties());
httpRptServer.start();
Demo 2:
//create an instance of RptServer
jet.server.api.RptServer rptServer = new jet.server.jrserver.JRRptServer();
// initialize the RptServer.
// at least the property reporthome should be set.
rptServer.init(System.getProperties());
rptServer.start();
Invoking the Server API
JReport Server API can be invoked either by JSP or Servlet. This section presents to you the two
methods in detail.
Invoking using JSP
There are example JSPs which use the Server API in <intall_root>\public_html\jinfonet.
WebViewServlet and SendFileServlet are built-in servlets. WebViewServlet responds to the run-report
requests, while SendFileServlet sends the requested file to the client end. For Example, our JSP
example rsthtml.jsp calls SendFileServlet to send files such as jar file and report set results, and
getRptDescPage.jsp calls WebViewServlet to run report sets.
Here is a simple JSP example:
<%@ page import="java.io.*, java.util.*,jet.cs.util.*" %>
<%@ page import="jet.server.api.http.*" %>
<%@ page import="jet.server.api.*" %>
<%
try{
if( !HttpUtil.checkLogin(request, response) )
return;
}catch(TooManyUsersException e){
%>
Too many users!
<%
return;
}catch(TooManyTimesException e){
%>
Too many times to try to login!
<%
return;
}
if( !HttpUtil.checkPermission(request) ){
%>
Access denied!
<%
return;
}
try{
HttpRptServer httpRptServer = HttpUtil.getHttpRptServer();
String user = HttpUtil.getUser(request);
String cat = "/SampleReports/SampleReports.cat";
String rptName = "CustomerAnalysis.cls";
Properties ht = new Properties();
int rstType = APIConst.HTML;
// set result type
ht.put(APIConst.TAG_RESULT_TYPE, String.valueOf(rstType));
System.out.println("============================ht="+ht);
// the rst is name of the first HTML result page
String rst = httpRptServer.runReport(user, cat, rptName, ht);
if (rst == null) {
// warning error
} else {
// register the owner of the result.
httpRptServer.getTempResultOwnerManager().registerOwner(user,
HttpUtil.getTempResultKey(new File(rst).getName()));
// make the URL to view the first HTML result page.
// The "/sendfile/" is the path of built-in servlet of SendFileServlet
// of JReport Server. This rstURL will redirect to the SendFileServlet.
// The SendFileServlet will send the HTML result page to the client.
String rstURL = request.getScheme() + "://" + request.getServerName() +
":" + request.getServerPort() +
"/servlet/sendfile/result/" + HttpUtil.encodeEsc(new File(rst).getName());
// redirect to the rstURL
response.setStatus(HttpServletResponse.SC_MOVED_TEMPORARILY);
response.setHeader("Location", rstURL);
response.setHeader("Content-Location", rstURL);
}
}catch(RptServerException e){
// output error
e.printStackTrace();
}catch(Throwable t){
// output error
t.printStackTrace();
}
%>
Invoking using Servlet
After you have installed JReport Server, you will find the illustrative test program
ViewHtmlPipelineServlet.java in <install_root>\help\server\en\samples.
Here is how ViewHtmlPipelineServlet.java works. First, the mapping.properties file and servlet.
properties file in <install_root>\bin should be modified before it can be run. /viewrpt=viewrpt
should be added into mapping.properties. And servlet.viewrpt.code=ViewHtmlPipelineServlet should be
added into the servlet.properties file as below:
# jrserver servlet
servlet.jrserver.code=jet.server.servlets.JRServlet
servlet.jrserver.initArgs=\
temp_dir=temp,\
history_dir=history,\
default_doc=docs\\index.html,\
debug=on
servlet.viewrpt.code=ViewHtmlPipelineServlet
servlet.webview.code=jet.server.servlets.WebViewServlet
servlet.sendfile.code=jet.server.servlets.SendFileServlet
servlet.webreporting.code=jet.web.design.Designlet
servlet.jrdhtml.code=jet.web.dhtml.DHTMLRunReportlet
servlet.dhtml.code=jet.web.dhtml.DHTMLlet
servlet.help.code=jet.web.dhtml.JHelplet
servlet.jspservlet.code=org.apache.jasper.servlet.JspServlet
servlet.jspservlet.initArgs=keepgenerated=false, development=false, reloading=true,
scratchdir=C:\JReport\Server\scratchdir
Note: If you want to access the temporary result files generated by running reports with the Server
API, you should register as the owner of the temporary results by invoking the method jet.server.api.
TempResultOwnerManager.registerOwner(String owner, String tempResult) and then you can view the
temporary result files via URL or by clicking the link on the Background Tasks page, or else an Access
denied error warns.
Overall Remote Server API & unified JSP
JReport Server allows you to run our JSPs on other machines. For example, you can invoke JReport Server
interface remotely, so that you can conveniently use the Remote Server API to accomplish your tasks. By
using JSPs in your web applications, the Remote Server API enables you to perform report set running tasks
remotely, to view the report set result directly from the client side, and to administer JReport Server, without
having to install JReport Server on the client machine.
You can find the Remote Server API in the jet.server.api.rmi package in the JReport Server Javadoc located in
<install_root>\help\server\en\api.
Before using the Remote Server API, you must make sure that:
1. The RMI service is opened in JReport Server side.
Set the server.rmiserver.enable property to true in the server.properties file located in <install_ root>
\bin.
When JReport Server resides behind a firewall, you need to specify a fixed port in order to pass through
the firewall and obtain the remote objects from the client side by setting the server.rmiserver.fixed_port
property in the server.properties file.
2. JReport Server remote host and port information is passed to the client application.
Set the following parameters as the JVM environment variables in the client side:
❍
Djrs.remote.host=<HOST_NAME/IP_address>
❍
Djrs.remote.rmiport=<HOST_PORT>
❍
Djrs.rmi.auth_file=<authFileName> (optional)
You have two alternatives for setting these parameters:
❍
❍
You can add -Djrs.remote.host, -Djrs.remote.rmiport and -Djrs.rmi.auth_file (optional) to the batch
file that is used to start your application.
If you are in an integration environment, you can also add the following to the web.xml file:
<context-param>
<param-name>jrs.remote.host</param-name>
<param-value>127.0.0.1</param-value>
</context-param>
<context-param>
<param-name>jrs.remote.rmiport</param-name>
<param-value>1129</param-value>
</context-param>
<!-- The third param(jrs.rmi.auth_file) is optional. "authFileName" includes the auth
file's realpath and auth file name. For example: C:\JReport\Server\bin\rmi.auth-->
<context-param>
<param-name>jrs.rmi.auth_file</param-name>
<param-value>C:\JReport\Server\bin\rmi.auth</param-value>
</context-param>
<listener>
<listener-class>jet.server.servlets.JRServerContextListener</listener-class>
</listener>
Administering JReport Server remotely
JReport Server can be administered from a remote client by Remote Admin Service API. The administration of
a JReport Server includes cluster administration, resource administration, security administration,
configuration, connection pool management, resource alias management, connection information provider
service, and catalog information management.
You can find the Remote Admin Service API in the jet.server.api.rmi.admin package available in the JReport
Server Javadoc which is located in <install_root>\help\server\en\api.
Before a JReport Server can be performed the remote administration operation on, you need to set the
following properties in the server.properties file located in <install_ root>\bin in the JReport Server side:
●
●
●
server.rmiserver.enable=true
Used to open the RMI service.
server.rmiadminservice.enable=true
Used to open the administration service in the RMI server. By default this property is set to false and the
JReport Server does not support remote administration.
server.rmiserver.fixed_port=<AnOpenedPort>
Required when JReport Server runs behind a firewall.
Using single sign-on in RMI client
For implementation in a standalone server, follow the steps below:
1. Write your HttpExternalAuthorized implementation. For details, see Server security - Single sign-on.
2. Compile Java classes. Compiling requires the library JRESServlets.jar, which can be found in
<install_root>\lib directory.
3. Modify the class path used by your RMI client to include your external authentication classes, so that
your application of RMI can access them.
If it is in an integration environment, you can add the authentication classes in a folder named classes in
the WEB-INF folder.
4. Modify the start file of your RMI client to define the system property jrs.httpExternalAuthorized with your
implementation.
For example, assuming that the implementation of this interface is com.mycorp.
HttpExternalAuthorizedImpl.class, use the command line to start the RMI client:
java -Djrs.httpExternalAuthorized=com.mycorp.HttpExternalAuthorizedImpl ....
Then, restart the RMI client.
Secure RMI objects and universal RMI object management
RMI is frequently used in JReport Server, such as for clustering, event system, Remote API, and
monitoring system. To avoid security risks and the mess of using the RMI registry (all the remote
objects bound with the RMI registry directly can cause the remote objects to be unmanageable),
universal remote object management has been introduced into JReport Server.
In the universal remote object management system, when getting a remote object to perform certain
operations, either on a server (local or remote) or in a 3rd-party application (via Remote API), a
request must be sent to the remote object management to get that special remote object. Also,
authentication is required before any request for a remote object can be processed.
The authentication file
The authentication process requires a remote authentication file that contains the authentication
information to accomplish the security check. The remote authentication file (<install_root>\bin
\rmi.auth) is generated by JReport Server automatically during the server installation process. You
can protect your authentication file by moving it to a safe place after installation.
Using the authentication file
The authentication file is commonly used in the following circumstances:
●
●
●
●
In JReport Server, the remote object management system will use an authentication file, which
resides in the <server_install_root>\bin directory.
In JReport Server Cluster, make sure that the authentication files on all clustered servers are the
same. If you want to add a new JReport Server that has a different authentication file to the server
cluster, you should first backup the authentication file of that server, and then copy the
authentication file from a clustered server in the JReport Server cluster to <server_install_root>\bin.
This file can then be used in JReport Server Monitor. Copy the authentication file generated by the
JReport Server installation process to the directory <monitor_install_root>\bin. JReport Server
Monitor will then fetch it from <monitor_install_root>\bin and build an authInfo object.
If the Remote API is used, you must specify the authentication file when launching an application
that contains the Remote API invocations. For example, java -cp ... -Djrs.rmi.auth_file=%
authFileName% mainClass. Also, you can specify a string by specifying the content of the
authentication file. For example, java -cp ... -Djrs.rmi.auth_string=my_auth_info mainClass.
Alternatively, you can specify the authentication string yourself arbitrarily. As long as the
authentication strings that the local and remote server both hold are the same, you can pass the
authentication check: java -cp ... -Djrs.rmi.auth_string=my_auth_info mainClass.
Note: In JReport Server and JReport Server Monitor, you can also use -Djrs.rmi.auth_file or Djrs.rmi.auth_string in the startup file. JReport Server/JReport Server Monitor looks up these
three locations in turn (-Djrs.rmi.auth_string => -Djrs.rmi.auth_file => <monitor_install_root>
\bin) when checking authentication information. The information first found will be used for the
authentication check in the remote object management system.
Ways to generate authentication information
The authentication information can be of any bytes, as long as the authInfo objects match between the
local and the remote server. The following are the methods for specifying authentication information:
●
●
●
●
You can get the authentication file (rmi.auth) generated when installing the server.
You can use the RMIAuthFileCreator.bat file stored in <server_install_root>\bin to generate the
authentication file.
You can compose any string into the auth file using any text editor.
You can compose any string as the value of the system property -Djrs.rmi.auth_file or -Djrs.rmi.auth
to specify authentication information.
Loading user data source classes at runtime
JReport allows you to create your report sets using user data source (UDS), user defined objects
(UDO), and user defined formulas (UDF). When you publish the report sets using UDS, UDO or UDF to
your production environment, JReport requires the UDS, UDO or UDF jars to be in the classpath or part
of the EAR bundle. This might be difficult for you. You need to shut down your application and wrap the
new UDS, UDO or UDF classes into the WAR or EAR or put them in the classpath of the application
server.
The feature Loading User Classes at Runtime can solve this issue. That is, for standalone JReport
Server, or in your embedded application server calling the Server API, you can control loading the
classes at runtime without shutting down your application.
Methods
There are two important methods in the Server API that you need to call to dynamically load your UDS
classes:
●
●
String jet.server.api.ServerEnv.getDynamicClassDir()
Retrieves the path of the dynamic classes of the report server.
static void jet.server.api.engine.ReportEngineFactory.loadClasses(String path)
Loads the dynamic classes from the location specified by the path parameter.
Usage
Follow the steps below:
1. Specify a folder location on the machine where JReport Server runs to hold all the UDS/UDO/UDF
jar files, so that you can specify to load the classes from that folder. When JReport Server
initializes, you can specify the location in one of the following ways:
❍
Using the Server API static void jet.server.api.http.HttpUtil.initEnv(java.util.Properties
props)
Use the key server.dynamic.class.dir to set the location, for example:
System.getProperties().put("server.dynamic.class.dir", "c:\\JReport\\Server\
\dynamic"); HttpUtil.initEnv(System.getProperties());
❍
Using the option -Dserver.dynamic.class.dir in the server/application startup file
It will be loaded to system properties. Here is an example:
-Dserver.dynamic.class.dir=YOUR_FOLDER
❍
Using the property entry server.dynamic.class.dir in the server.properties file located
in <install_root>\bin
The default value of this property is <install_root>\dynamicclasses. Here is an example:
server.dynamic.class.dir=YOUR_FOLDER.
Note: In general, among the above three approaches, the first has the highest priority, and
the third has the lowest.
2. Check the dynamic UDS/UDO/UDF folder any time by calling the method static String jet.server.
api.ServerEnv.getDynamicClassDir().
Usage of the method:
HttpUtil.getHttpRptServer().getServerEnv().getDynamicClassDir()
Example:
System.out.println("Dynamic path"+httpRptServer.getServerEnv().getDynamicClassDir
());
You can get the path's value in your own properties file. You can even copy your UDS/UDO/UDF
jar files to the above folders programmatically.
3. Specify to load classes at runtime by calling the method static void jet.server.api.engine.
ReportEngineFactory.loadClasses(java.lang.String path). The parameter path is the dynamic class
folder.
For example:
ReportEngineFactory.loadClasses(httpRptServer.getServerEnv().getDynamicClassDir());
Notes (technical issues):
●
●
●
Only *.jar or *.zip packages in the specified folder including resource files (recommended *.jar) will
be loaded, which excludes the sub directories and unpackaged classes.
If there are duplicated classes (having the same package and class name) in different *.jar files, the
default loading sequence is in time order. The latest modified file will be loaded first, and the older
ones will be neglected.
If you split one dynamic UDS classes into different *.jar or *.zip packages and also want to take
advantage of dynamic loader, then you should follow the below rules:
❍
❍
❍
❍
●
The classes in the *.jar or *.zip packages in the dynamic class folder can call or refer the classes
under the JVM's class path, it cannot work in reverse.
If your UDS classes also go to load the recourse files,
●
●
The jar with the main class implementing JRUserDataSource class of the dynamic UDS must be in
the dynamic class folder.
You should bundle the resource files into a jar no matter whether it is in the same class jar file or
not.
In addition, the classes (in the *.jar or *.zip ) in the dynamic class folder can get the recourse files
both in the dynamic class folder and under the JVM class path. However, the classes under the JVM
class path cannot get the resource files in the dynamic class folder.
When you call the API for loading the classes, JReport Server will not kill the running catalogs and
report sets but run them using the old UDS classes, and freeze new report sets until the loading
action has finished.
JReport Server will try loading dynamic classes in the above way. If failed, it will try loading them in
the traditional way (using the class path in the JReport Server startup file, or EAR/EAR in embedded
integration environment). Once it fails to find the classes, ClassNotFoundException will be thrown.
●
For the UDO classes, only the creator class and render class can be loaded.
Applying a user defined CSS to HTML result file
When exporting a report to HTML format, a .css file will be generated automatically by JReport to
control the appearance and layout of the result file. When exporting a report to HTML format with
Server API, JReport enables you to apply your own .css file to the HTML result file.
To apply user defined CSS to HTML result file:
1. In JReport Designer, specify the CSS selector in your own CSS for report objects.
Select the object which you want to apply in your own CSS, and in Report Inspector, specify a
value for the CSS property External CSS Class Selector. The value of the property should be the
selector in your .css file.
2. Publish the report set in which the report is located to JReport Server (for details, see Publishing
resources).
3. Edit your JSP file that invokes the interface used to export the report to HTML format. JReport
provides a demo JSP file ApplyUserCSS.jsp in the file ApplyUserCSS.zip which is stored in
<install_root>\help\server\en\samples for your reference.
4. Export the report to HTML format using JReport Server.
Specifying paths for the result files when using On-Demand API
When you run a report set in the Advanced mode using the on-demand report execution API, you can specify the path for
the report set result files. See the following demo code:
Demo code of running the report set to the PDF format directly
//Set report properties
Properties props = new Properties();
//Set result type as .pdf format.
props.put(APIConst.TAG_RESULT_TYPE, String.valueOf(APIConst.PDF));
//Set result file location. The value of TAG_LOCATION_TO_SERVER_RESOURCE_PATH is 0,
//and the value of TAG_LOCATION_TO_SERVER_DISK_REAL_PATH is 1.
//The default value of TAG_RESULT_LOCATION_TYPE is 1.
//props.put(APIConst.TAG_RESULT_LOCATION_TYPE, String.valueOf(APIConst.
TAG_LOCATION_TO_SERVER_RESOURCE_PATH));
//props.put(APIConst.TAG_RESULT_LOCATION, "/SampleReports");
props.put(APIConst.TAG_RESULT_LOCATION_TYPE, String.valueOf(APIConst.
TAG_LOCATION_TO_SERVER_DISK_REAL_PATH));
props.put(APIConst.TAG_RESULT_LOCATION, "C:\\");
System.out.println("========to pdf=" + props);
tempResult = rptServer.runReport(user, catalog, rptName, props);
Demo code of exporting the RST file to HTML format
//Set task properties
Properties props = new Properties();
props.put(APIConst.TAG_RESULT_TYPE, String.valueOf(APIConst.RST));
//Set result file location.
props.put(APIConst.TAG_RESULT_LOCATION_TYPE, "0");
props.put(APIConst.TAG_RESULT_LOCATION, "/SampleReports");
System.out.println("========to pdf=" + props);
String tempResult = server.runReport("admin", catalog, rptName, props);
System.out.println("========tempResult="+tempResult);
//Export to HTML
props.put(APIConst.TAG_HTML, "Crosstab");
props.put(APIConst.TAG_HTML_DIR, "/SampleReports");
props.put(APIConst.TAG_HTML_DIR_TYPE, String.valueOf(APIConst.TAG_LOCATION_TO_SERVER_RESOURCE_PATH));
System.out.println("\n========exportResult="+props);
ExportedFileList fileList = server.exportResult("admin", tempResult, props);
System.out.println("\n========fileList.getHTMLFilenameList()="+fileList.getHTMLFilenameList());
Setting dynamic parameter values when running/scheduling report set via
API
When running or scheduling a report set with parameters via API, you can specify dynamic parameter
values by implementing the ParameterGenerator interface. See JReport Server Javadoc in
<install_root>\help\server\en\api for detailed usage of the API.
To set dynamic parameter values to a report set:
1. Create a class MyParameterGeneratorImpl to implement the ParameterGenerator interface. See
the API demo DemoParameterGenerator.java in <install_root>\help\server\en\samples for
an example of implementing the ParameterGenerator interface.
2. Add the class path into the class path of your implementation of running or scheduling the report
set such as DemoParameterRunReport.
3. In DemoParameterRunReport, replace the way of setting static parameter values and instead set
dynamic values of the required parameters in the report set. Take the parameter PToday for
example:
First disable or delete the line:
props.put(APIConst.TAG_PARAM_PREFIX + "PToday", "2007-5-21");
and then add a line as follows:
props.put(APIConst.TAG_PARAM_PREFIX + "PToday", APIConst.TAG_PARAM_GEN_PREFIX +
"MyParameterGeneratorImpl";
Setting values of multi-value parameters via API
To run a report set with multi-value parameters via API, take the following example to set values to a
multi-value parameter Customers_Country:
String a[] = {"USA", "Canada"};
props.put(APIConst.TAG_PARAM_PREFIX + "Customers_Country", a);
For the API code of running a report set, see APIDemoRunReport.java in <install_root>\help\server
\en\samples.
API demos
Here is a list of some demo programs included within JReport Server. All these programs are available
in <install_root>\help\server\en\samples.
●
●
●
●
●
●
●
●
●
●
●
●
●
●
1stepdl_demo.zip
An example of using JSP to build URL to run a report set in DHTML format. After extracting the zip to
a folder where JSP can be run, for example, <install_root>\public_html, a folder named demo is
added, and you can run the demo using the URL http://localhost:8888/demo/main.jsp.
APIDemoDeployRpt.java
An example of publishing catalogs, report sets, or folders to the server.
APIDemoDynamicExportTask.java
An example of scheduling a customized task. For details, see Scheduling a customized task using
User Task.
APIDemoPublishRpt.java
An example of publishing a scheduled task.
APIDemoRemoteFileService.java
An example of using remote report server.
APIDemoReportEngine.java
An example of using the ReportEngine to run a report set, export/print a report set, and set the
where portion.
APIDemoRunAndExportReport.java
An example of exporting a report set to some formats, and then saving them to local disk.
APIDemoRunReport.java
An example of running a report set.
APIDemoRunReportWithTimeout.java
An example of running report sets with timeout.
APIDemoSendEMail.java
An example of publishing a report set to e-mail.
ApplyUserCSS.zip
An example of applying user defined CSS to the HTML report result. For details, see Applying a user
defined CSS to HTML result file.
CustomHttpExternalAuthorized.java
Demo for implementation of the jet.server.api.http.HttpExternalAuthorized. For details, see Single
sign-on.
CustomizedSendFileAuthorizor.java
Demonstrates implementation of SendFileAuthorizor, which is used to control users' accessibility to
certain files in server machine when they access the server via http.
CustomServlet.java
Demo to set implementation of jet.server.api.http.HttpExternalAuthorized into the report server. For
details, see Single sign-on.
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
customViewReport.jsp.zip
Demos to set implementation of jet.server.api.http.HttpExternalAuthorized into the report server and
view a report. For details, see Single sign-on.
Demo1UserAuthenticator.java
Demo to implement the jet.server.userman.UserAuthenticator for using JReport Server as a servlet in
your system. For details, see the Notes section in Customized implementation of the Security API.
demo2data.txt
Referenced by Demo2UserAuthenticator.java.
Demo2Realm.java
Referenced by Demo2UserAuthenticator.java.
Demo2User.java
Referenced by Demo2UserAuthenticator.java.
Demo2UserAuthenticator.java
Demo to implement the jet.server.userman.UserAuthenticator for using your user data. For details,
see the Notes section in Customized implementation of the Security API.
DemoAuthenticationProvider.java
Demo for implementation of the jet.server.api.custom.security.AuthenticationProvider interface. For
details, see Customized implementation of the Security API.
DemoAuthorizationProvider.java
Demo for implementation of the jet.server.api.custom.security.AuthorizationProvider interface. For
details, see Customized implementation of the Security API.
DemoLoadBalancer.java
Demo to implement the jet.server.api.cluster.LoadBalancer for randomly selecting a clustered server.
For details, see Balancing the server load.
DemoParameterGenerator.java
An example of implementing the jet.server.api.custom.schedule.ParameterGenerator for setting
dynamic parameter values. For details, see Setting dynamic parameter values when running/
scheduling report set via API.
DemoRemoteDispatcher.java
An example of dispatching request to remote clustered server according to Round-Robin algorithm.
For details, see Dispatching RMI Server Pages requests in multiple server environment.
DemoTrigger.java
This demo creates a trigger, submit a schedule bound with the trigger, then fire the trigger to run the
schedule.
ExampleCodeForTags.html
The sample code for different tags. For details about tags, see Appendix 8: DHTML tag library.
getRptDescPage2.jsp.zip
A page enabling you to export the report set result to various formats (except for applet).
MultipleReports.zip
Demo JSPs for opening multiple report sets in one session. For details, see Opening multiple report
sets in one session.
●
●
●
●
●
●
printDemo.jsp.zip
These JSP files show how to print reports by using ViewerApplet. For details, see Using JSPs to print
report sets.
PublishToRealDiskPath.java
This sample demonstrates exporting report result to physical disk path when publishing a scheduled
task.
runReport2.jsp.zip
Called by the getRptDescPage2.jsp to run a report set. To run JSP pages, you can put them in the
directory <intall_root>\public_html\jinfonet, and then access them from a web browser using
the URL http://host:8888/jinfonet/XXX.jsp.
TestMutiUserDesign.java
Demo for how to create reports by multi-user via MultiuserDesigner.
TestTaskListener.java
An example to demonstrate how to implement users' own scripts before and after task running and
how to get the information about a task. For details, see Adding TaskListener.
ViewHtmlPipelineServlet.java
This is a servlet demo of viewing report as HTML pipeline format. See details, see Invoking using
Servlet.
RMI demos
Here are some demo RMI programs that JReport provides. They are available in <install_root>\help
\server\en\samples.
●
●
●
RemoteAPIDemoPublishRpt.java
A demo about publishing report sets. You can submit a schedule to export a report set to version,
disk, or e-mail.
RemoteAPIDemoRunAndExportReport.java
A demo about running report sets and exporting report set results to other formats.
RemoteAPIDemoRunReportWithTimeout.java
A demo about the Large Report Manager. This demo runs a report set and marks it as a large report
set by setting the timeout value, and then returns the large report set information.
Before running these demos, remember to do the following:
1. Modify the server.properties file in the <install_root>\bin directory to set the property server.
rmiserver.enable to true.
2. Add -Djrs.rmi.auth_file="%authFileName%" to the command line that starts the required
program.
3. You need to set the classpath environment variables. Append the following jar files to the
classpath that compile and run applications which call the Server API:
<install_root>\lib\JRESServlets.jar;
<install_root>\lib\JREngine.jar;
<install_root>\lib\servlet.jar;
<install_root>\lib\log4j-1.2.8.jar;
<install_root>\lib\sac.jar;
<install_root>\commons-codec-1.2.jar
Additional references
●
See JReport Server Javadoc jet.server.api package, jet.server.api.http package and jet.cs.util
package in <install_root>\help\server\en\api.
●
Accessing JReport Server.
●
See JReport Server Designer API in <install_root>\help\designer\api.
JReport Server Designer API is a program interface for creating new report sets or modifying existing
report sets. JReport Server contains a full JReport Server Designer API package. It allows concurrent
users to create or modify multiple report sets at a time.
DHTML API
The DHTML API is a set of Java programming interfaces which allow you to customize the DHTML
feature of JReport Server, so that you can conveniently use the JReport Viewer features (completely or
partially) in your product.
You can refer to the built-in JSP dhtml.jsp that comes with JReport Server as a demo. It is located in
<intall_root>\public_html\dhtmljsp.
For DHTML API specifications, see the jet.web.dhtml package in JReport Server Javadoc that is located
in <install_root>\help\server\en\api.
This section talks about the following three topics:
●
Installing the DHTML API
●
Getting started with the DHTML API
●
Advanced DHTML API application
Installing the DHTML API
When you install JReport Server, JReport Server API including the DHTML API is also installed at the
same time. After installation, you have the following files:
In <install_root>\lib:
●
❍
JRESServlets.jar
❍
JREngine.jar
❍
servlet.jar
❍
hsqldb.jar
❍
log4j-1.2.8.jar
❍
sac.jar
❍
commons-codec-1.2.jar
In <install_root>\derby\lib:
●
❍
derby.jar
❍
derbyclient.jar
❍
derbynet.jar
❍
derbytools.jar
JReport Server API classes are stored in the archive file JRESServlets.jar.
You will need to set the classpath environment variable. Append the following jar files to your classpath
that compile and run applications which call the Server API:
For Server:
<install_root>\lib\JRESServlets.jar; <install_root>\lib\JREngine.jar; <install_root>\lib
\servlet.jar; <install_root>\lib\hsqldb.jar; <install_root>\lib\log4j-1.2.8.jar;
<install_root>\lib\sac.jar; <install_root>\lib\commons-codec-1.2.jar; <install_root>
\derby\lib\derby.jar; <install_root>\derby\lib\derbyclient.jar; <install_root>\derby\lib
\derbynet.ja; <install_root>\derby\lib\derbytools.jar;
For DHTML, also include:
<install_root>\lib\JRWebDesign.jar;
Getting started with the DHTML API
How to get an instance of DHTML API
Note that before you can use the following methods to get a DHTML API instance, firstly you need to
import some relevant packages. For instance, jet.web.dhtml.* must be included here.
For local use
●
Both of the following methods can be used to get an instance of the DHTML API locally. The results of
these two methods are exactly the same.
❍
Method 1:
DHTMLClientService service = DHTMLServiceFactory.getDHTMLClientService(request);
❍
●
Method 2:
HttpRptServer server;
if (System.getProperty(APIConst.REMOTE_DISPATCHER) == null) {
server = HttpUtil.getHttpRptServer();
} else {
server = RemoteDispatcherFactory.getInstance().getDispatchedServer(request);
}
DHTMLClientService service = (DHTMLClientService)server.getDHTMLClientService();
For RMI use
This method can be used to get an instance of DHTML API from a remote server (RMI).
HttpRptServer server;
if (System.getProperty(APIConst.REMOTE_DISPATCHER) == null) {
server = HttpUtil.getHttpRptServer();
} else {
server = RemoteDispatcherFactory.getInstance().getDispatchedServer(request);
}
DHTMLClientService service = server.getDHTMLClientService();
Advanced DHTML API application
Besides fundamental functions that DHTML API provides, you can further obtain other instances from DHTMLClientService.
How to get the other instances
//Get a DHTML API instance using the method 1 or
//2 provided in the preceding section, and then
//use the following method to get the other instances.
//The instance "service" is supposed to be derived
//from the above method 1 or 2.
DHTMLConfig config = service.getDHTMLConfig();
DHTMLDataInfo dataInfo = service.getDHTMLDataInfo();
DHTMLWriter writer = service.getDHTMLWriter(sessionId, rptSetId)
How to use the other instances
Customizing DHTML toolbar using the DHTML API
DHTML API provides you with the API interface. With the DHTML API, you can easily embed the DHTML page or components
into your own JSP. Here jet.web.dhtml.DHTMLConfig is used to customize your own DHTML toolbar.
●
Method: jet.web.dhtml.DHTMLConfig.customizeToolbar (java.lang.String sessionId, java.lang.String rptSetId, java.lang.
String toolbarname, int[] buttonId, boolean isVisible)
This method is used to specify the buttons displayed on the DHTML toolbar.
Parameters:
❍
❍
❍
❍
❍
●
sessionId
The session id of the current user or current request.
rptSetId
The report set id of the current user or current request.
toolbarname
Name of the toolbar, such as "Standard", "View", "Analysis", and user-defined ones.
buttonId
The buttonId constant for the toolbar. The buttonId argument is an integer bitmask that can be
DHTMLConstant.TOOLBAR_UNDO, DHTMLConstant.TOOLBAR_REDO, DHTMLConstant.TOOLBAR_SEARCH,
DHTMLConstant.TOOLBAR_PREVIOUS_SEARCH, DHTMLConstant.TOOLBAR_NEXT_SEARCH, DHTMLConstant.
TOOLBAR_EXPORTTOHTML, DHTMLConstant.TOOLBAR_EXPORTTOPDF, DHTMLConstant.TOOLBAR_EXPORTTOXML,
DHTMLConstant.TOOLBAR_EXPORTTORTF, DHTMLConstant.TOOLBAR_EXPORTTOXLS, DHTMLConstant.
TOOLBAR_EXPORTTOTEXT, DHTMLConstant.TOOLBAR_EXPORTTOPS etc., or a bitwise union of them (for example,
DHTMLConstant.TOOLBAR_UNDO | DHTMLConstant.TOOLBAR_REDO).
isVisible
If it is true, the buttons are visible.
Method: jet.web.dhtml.DHTMLConfig.setUsedToolbar (java.lang.String sessionId, java.lang.String rptSetId, java.lang.
String rptName, java.lang.String toolbarName, boolean isShow)
This method is used to set the toolbar's default status: shown or hidden.
Parameters:
❍
❍
sessionId
The session id of the current user or current request.
rptSetId
The report set id of the current user or current request.
❍
❍
❍
rptName
The report name of the current user or current request.
toolbarname
Name of the toolbar, such as "Standard", "View", "Analysis", and user-defined ones.
isShow
If it is true, the toolbar is visible.
To customize the DHTML toolbar, you must add the following code to run_report.jsp in <intall_root>\public_html
\dhtmljsp. And this code must be after the RunReport() method.
DHTMLClientService service = DHTMLServiceFactory.getDHTMLClientService(request);
DHTMLConfig
dhtmlConfig = service.getDHTMLConfig();
String SessionID = DHTMLUtil.getSessionID(request);
String RptSetId = DHTMLUtil.getRptSetId(request);
int[] bId = new int[]{DHTMLConstant.TOOLBAR_EXPORTTOPDF,DHTMLConstant.TOOLBAR_EXPORTTOXML,DHTMLConstant.
TOOLBAR_SEARCH};
dhtmlConfig.customizeToolbar(SessionID, RptSetId, "View", bId, true);
dhtmlConfig.setUsedToolbar(SessionID, RptSetId, null, "View", true);
Reference: For more information on this topic, see the Javadoc located in <install_root>\help\server\en\api.
Dialog Reference
This chapter covers the dialogs that you will come across when using JReport Server, providing
descriptions and explanations of the options available. By referencing this chapter, you will find JReport
Server much easier and more convenient to use.
In this chapter, the following types of dialogs are covered:
●
JReport Server dialogs
●
JReport Viewer dialogs
●
JReport Studio dialogs
JReport Server dialogs
There are two classes of dialog in JReport Server. They are distinguished by the types of users who can
gain access to them. The JReport Console page dialogs are available to general users, while the JReport
Administration page dialogs are only accessible to users who have been assigned the administrator's
role.
The following are dialogs of the JReport Server, which are listed in alphabetic order:
●
Add Language dialog
●
Add to Global NLS dialog
●
Advanced Run dialog
●
Auditing dialog
●
Cache Configuration dialog
●
Catalog Properties dialog
●
Cluster dialog
●
Configuration dialog
●
Customize Waiting Page dialog
●
Data dialog
●
DHTML Profile dialog
●
Edit Expression dialog
●
Encrypt dialog
●
Enter Values dialog
●
Expression dialog
●
Folder Properties dialog
●
Global NLS dialog
●
New Cache dialog for scheduling
●
New Cache dialog for selecting queries
●
New Custom Field dialog
●
New Group dialog
●
New Realm dialog
●
New Role dialog
●
New Schedule dialog
●
New User dialog
●
NLS Editor dialog
●
Profile dialog
●
Publish to Local Server dialog
●
Publish to Remote Server dialog
●
Report Set Properties dialog
●
Result Properties dialog
●
Schedule dialog
●
Security dialog
●
Select Another Catalog dialog
●
Select Folder dialog
●
Select Language Source dialog
●
Select Queries dialog
●
Select Report Type dialog
●
Set Alias dialog
●
Set Permissions dialog
●
Sign dialog
●
Specify Catalog dialog
●
Triggers dialog
Add Language dialog
This dialog is displayed when you click the Add button
in the NLS Editor dialog, or click OK in the
Select Language Source dialog with Languages Supported by JReport selected. It helps you to add one
or more languages, in which reports can be run.
Available Languages
Lists all the languages that are available for you to choose. Select the required languages from the box.
OK
Adds the selected languages and closes the dialog.
Cancel
Cancels the action and exits the dialog.
Help
Displays this help document.
Add to Global NLS dialog
This dialog is displayed when you click the Add to Global NLS button in the NLS Editor dialog to add the selected display or
font items to the target language's global NLS resource library, but some of the selected items already exist there. It varies
according to the type of the selected items.
OK
Adds the selected items to the target language's global NLS resource library and exits the dialog.
Cancel
Cancels the action and exits the dialog.
Help
Displays this help document.
When display items are to be added, options in the dialog are as follows.
Language
Displays the target language into which the display text will be translated.
Checkbox
Specifies the items you want to add to the target language's global NLS resource library. Check the checkbox on the column
header to select all the items.
Type
Lists types of display text for different objects.
●
●
●
●
Label
Type of display text of label and some web controls.
Column
This type is only for DHTML. It is the type of display text of columns.
Prompt
Type of display text of parameter prompt value.
TOC
Type of display text on the TOC tree.
Key
Lists keys to indicate the objects in the original language.
Translate
Specifies to which the display text will be translated in the target language.
Global NLS Translation
Displays to which the display text is translated in the target language's global NLS resource library. There are two
circumstances:
●
●
If the translation is Null for any display text, it means the display text doesn't exist in the target language's global NLS
resource library yet. Check the checkbox ahead of the display item if you want to add it.
If any display text already exists in the target language's global NLS resource library, and you have provided a new
translation for the text in the Translate column, when you choose to add this display item, the existing global NLS
translation for this display text will be replaced by the new one.
When font items are to be added, options in the dialog are as follows.
Language
Displays the target language to which the font properties will be applied.
Checkbox
Specifies the items you want to add to the target language's global NLS resource library. Check the checkbox on the column
header to select all the items.
Key
Lists keys to indicate the fonts in the original language.
Font Face
Specifies the font face for the key in the target language.
Font Size
Specifies the font size for the key in the target language.
Global NLS Translation
Displays the font properties for the keys in the target language's global NLS resource library. There are two circumstances:
●
●
If the translation is Null for any font item, it means the font item doesn't exist in the target language's global NLS
resource library yet. Check the checkbox ahead of the item if you want to add it.
If any font already exists in the target language's global NLS resource library, and you have specified a new face and size
for it in the Font Face and Font Size columns, when you choose to add this font item, the existing global NLS translation
for this font will be replaced by the new one.
Advanced Run dialog
To access the Advanced Run dialog, on the JReport Console > Reports page, browse to the report set
you want to run in Advanced mode, then do either of the following:
●
●
●
Select the row the report set is in, then on the task bar of the Reports page, click Run > Advanced
Run.
Select the report set row, right-click in the row and select Advanced Run from the shortcut menu.
Put the mouse pointer over the report set row and click the Advanced Run button
floating toolbar.
on the
There are four tabs in this dialog, which are listed below. You can set the settings to your requirements
in each tab.
●
General tab
●
Format tab
●
Archive tab
●
Duration tab
Back
Goes back to the left tab.
Next
Goes to the right tab.
Finish
Applies the settings.
Cancel
Closes the dialog and discards any changes.
Help
Displays this help document.
General tab
This tab allows you to specify the general information about a report.
Enter Parameters section
Specifies the report in the report set you want to run in Advanced mode and the parameter values for the report if
any.
Select Report
Specifies the report from the report set which you want to run. Bursting reports are not listed in the table.
Parameters
Specifies values of the parameters applied in the selected report. If the report has no parameter, "No Parameter
Needed" will be displayed here.
You may specify parameter values in these ways:
●
●
●
●
●
In the parameter value combo box, input the value manually or select the required one from the drop-down list.
Click the button
, which is available when the parameter's Allow Multiple Values property is set to true in
JReport Designer, to specify multiple values in the Enter Values dialog.
If the parameter is of DateTime type, click the calendar button
to set a DateTime value with calendar.
If the parameter is of Date, DateTime, or Time type, check the checkbox ahead of the button
and then click
the button to specify a dynamic date or time parameter value with expression in the Expression dialog.
Check the Use Saved Values checkbox and select a previously saved parameter value list to apply to the report.
The Use Saved Values option is available when Enable Saving Parameter Values is checked in the Profile >
Customize Server Preferences > Advanced tab. When it is checked, a drop-down list that contains the lists of
previously saved parameter values will be displayed for you to choose one to apply. The button
drop-down list is used to delete a saved list from the list library.
next to the
Save Values
This link is available when Use Saved Values is checked. When it is clicked, the currently displayed parameter values
set for the specified report will be saved as a whole marked as a list for reuse next time, and you need to provide a
name for the list in the prompted dialog as required.
The parameter value lists saved for the selected reports are limited. The maximum number is controlled by the
option Maximum Number of Auto Complete Parameters List in the Profile > Customize Server Preferences >
Advanced tab. By default it is 3. When the number of the saved parameter value lists reaches the maximum number,
if you want to save another parameter list, it will overwrite the oldest list.
Report Set Info section
Specifies other report set information.
Report Set
Lists the report set information.
Catalog
Lists the catalog information.
Select Another Catalog
Specifies another catalog for the report set in the Select Another Catalog dialog.
Report Set Version
Specifies the report set version.
Catalog Version
Specifies the catalog version.
Priority
Specifies a priority level to the report running task. The priority levels are from 1 to 10 in ascending order of lowest
priority to highest priority. This property is available to administrators. By default this property is ignored unless
server.properties is modified to set queue.policy not equal to 0.
Format tab
This tab allows you to specify the format in which you would like to generate the report and set its corresponding
settings.
Select Format section
Specifies the format of the report result.
Select Format
Specifies the format in which the report result will be. It can be one of the following:
●
Studio
●
DHTML
●
HTML
●
PDF
●
Excel
●
Text
●
RTF
●
XML
●
PostScript
●
Applet
Advanced section
Specifies some advanced format settings.
Enable Style Group
When this option is disabled as default, use the style group property of the report for this format that is predefined in
JReport Designer to run the report.
When this option is enabled, you are allowed to select a style group from the Style Group drop-down list to run the
report in the format. This setting will cancel the predefined style group property of the report for this format and replace
it with the value specified here to run the report.
Enable Converting Encoding
Specifies whether to enable the conversion of encoding. If checked, the Before Converting and After Converting options
will be activated. Select the encoding from the drop-down lists as required.
Enable NLS
Specifies whether to enable NLS for the report set. If checked, the Using Language drop-down list will be displayed for
you to choose a language.
Notes:
●
●
The Enable NLS option is available only when the National Language Support option is checked in the Properties
dialog of the report set on the JReport Administration page.
If there is no NLS resource defined for the report set, you can only run the report set using the default language.
Encoding
Specifies the encoding for the report set.
Connect to [Data Source Name]
Specifies the DB user and password with which you want to connect to the data source the report set uses.
●
●
Use the DB user and password defined in catalog
If checked, the DB user and password defined in the catalog will be used.
Use the DB User
If checked, specify another DB user and password instead of the one defined in the catalog.
Add TaskListener to be Invoked
Specifies whether to enable the user to call the Java application before/after viewing. Enabled only when the format is
not specified to DHTML.
Studio
Runs a studio report in JReport Studio.
Resolution
Specifies the resolution of the result to zoom in/out, in DPI. The default value is obtained from the operation system,
which is the resolution of your monitor, for example, 72 DPI on Unix or 96 on Windows. You can set higher/lower value
to zoom in/out.
DHTML
This format allows you to export your report set to a DHTML result that can be viewed in a JReport DHTML window.
Some reports cannot be published to version in a DHTML result format, such as self-contained (CLX) reports, multi-level
nested master and subreports, reports containing data objects, and reports developed from a dynamic query or
hierarchical data source (HDS).
Resolution
Specifies the resolution of the DHTML result to zoom in/out, in DPI. The default value is obtained from the operation
system, which is the resolution of your monitor, for example, 72 DPI on Unix or 96 on Windows. You can set higher/
lower value to zoom in/out.
Profile
Specifies the DHTML profile to be applied to run the report set, which contains a set of JReport Viewer settings.
Background Mode Timeout
Specifies the time after when the report set will run in background mode. When a DHTML report set runs and the results
have not yet been generated after the specified time, it will be automatically be switched to run in background mode.
HTML
No Margin
Removes the margins you originally set while designing the report.
Multiple Files
Generates the report result to multiple HTML files. JReport designates a serial number for each HTML page. For
example, if you named a 3-page report as "sales", JReport will create three files called sales_1.html, sales_2.html, and
sales_3.html.
●
Embedded CSS
Specifies to embed the cascading style sheet (CSS) in the exported HTML files; otherwise, the .css file will be
generated individually.
Single File
Generates the report result to a single HTML file.
●
●
No Hyperlink
If checked, there will be no hyperlinks for navigating previous and next pages on the navigation bar of the exported
HTML file.
No Page Number
If checked, there will be no page number information showing the current page number and total page number on the
navigation bar of the exported HTML file.
Drilldown
Generates the report result into an HTML file with the Drilldown feature enabled. The Drilldown feature enables you to
inspect certain items for further detailed data.
Section 508 Compliant Output
If checked, the accessibility attributes defined for the report elements via the Report Inspector will be exported to the
HTML format report result which is Section 508 compliant. See Accessibility for more information.
When Section 508 Compliant Output is checked, the Use HTML Data Table and Relative Font Size options will be
checked and disabled. The output will be Section 508 compliant including HTML data table, accessible attributes, and
relative font feature.
Use HTML Data Table
Specifies whether the table and crosstab components will be output as table objects in the HTML format result.
Absolute Font Size
Generates the report result using an absolute font size, which means that the font size is fixed, and cannot be adjusted
according to the font size settings in the web browser.
Relative Font Size
Generates the report result using a relative font size. The font size can be adjusted according to the font size settings in
the web browser.
Use Chart
●
●
Applet Chart
Uses a Java applet to display the charts in an HTML format result file.
Image Chart
If selected, charts will be displayed as images. You can specify the image type from the drop-down list. The options
are:
❍
❍
❍
❍
auto select
If selected, the image format will be detected to JPG or GIF by the JReport system automatically. If the image
colors are less than 256 colors, GIF will be applied; otherwise, it is JPG.
GIF
If selected, the GIF format will be applied, which is a lossless compression technique and supports only 256 colors.
GIF is better than JPG for images with only a few distinct colors, such as line drawings, black and white images and
small text that is only a few pixels high.
JPG (JPEG)
If selected, the JPG (JPEG) format will be applied, which is supported on the Web. JPG is a lossy compression
technique that is designed to compress color and grayscale continuous-tone images. JPG images support 16 million
colors and are best suited for photographs and complex graphics.
PNG
If selected, the PNG format will be applied, which provides a portable, legally unencumbered, well-compressed
(effectively 100 percent lossless compression), well-specified standard for lossless bitmapped image file. PNG
supports indexed-color images of up to 256 colors and shows a more interchangeable, flexible and robust function
than GIF.
Resolution
Specifies the resolution of the HTML result to zoom in/out, in DPI. The default value is obtained from the operation
system, which is the resolution of your monitor, for example, 72 DPI on Unix or 96 on Windows. You can set higher/
lower value to zoom in/out.
Web Browser
Specifies the web browser for which the HTML result adapts.
Text Overflow
Specifies whether the text overflow is visible or hidden.
PDF
No Margin
Removes the margins you originally set while designing the report.
Compress Image
Compresses the images in the report by the percentage you specify in the box.
Generate charts and barcodes using images (recommended)
When you run a report in PDF format, JReport will take the result of the whole report as a graphic to transform the
report by the method of simulated printer and generate the report result in PDF format.
Generate charts and barcodes using vector graphics
The result of using Generate charts and barcodes using vector graphics is the same as with using Generate charts and
barcodes using images (recommended). However, when you run a report in PDF format using Generate charts and
barcodes using vector graphics, JReport will take the result of the whole report as a dataset to transform the report by
sequence and to generate the report result in PDF format.
TOC
Generates the report result to PDF format with a Table of Contents.
Drilldown
Generates the report result to a PDF file with the Drilldown feature enabled. The Drilldown feature enables you to
inspect certain items for further detailed data.
Encrypt
Specifies whether to encrypt the PDF file. If checked, click the Settings button to configure the encrypt settings in the
Encrypt dialog.
Sign
Specifies whether to add the digital sign to the PDF file. If checked, click the Settings button to configure the sign
settings in the Sign dialog.
Excel
Word Wrap
●
●
●
All Keep Existing
Keeps all the settings of each object's Word Wrap property originally specified in the report.
All Disabled
Disables the Word Wrap property for all objects. That is, the Word Wrap property is made false for all objects.
All Enabled
Enables the Word Wrap property for all objects. That is, the Word Wrap property is made true for all objects.
Preserve Report Formatting
Specifies to adopt the original layout of the report set when exporting.
Normal Formatting
If checked, and the Columned property of the report is set to true in JReport Designer, the exported Excel file will be in
columned format.
Excel 2000
If checked, only the report data will be exported without format.
More/Less Options
Shows/Hides the additional settings for exporting the report to Excel. When Excel 2000 is selected, there will be no
more options.
●
●
●
Include Shapes in Export
Specifies whether to include the drawing objects in the exported Excel file, such as line, oval, and box.
Print Page Header
Specifies the page header text for the printed file.
Print Page Footer
Specifies the page footer text for the printed file.
●
Print Gridlines
Specifies whether to include gridlines when printing the exported Excel file.
Text
Delimited Format
Generates the report result to a standard text file, using a delimiter you specify to separate the fields.
●
●
●
●
●
Use Quote Mark
Specifies to use quote marks in the text file.
Repeat Last Column Value If Null
If checked, when a cell in the exported CSV text has no value, value of the previous cell in the same column will be
used.
Customize Delimited
Fields in the exported text file will be separated by a user defined delimiter. You can type your own delimiter in the
Delimiter box.
Tab Delimited
Specifies to use a Tab delimiter to separate the fields.
CSV Format
Exports to CSV format text file.
Horizontal Density
Specifies the value for each unit of the horizontal density between columns. The resulting density is a direct ratio of the
value you specify. That is, the greater the value, the smaller the width between columns. By default the density will be
specified by JReport.
Vertical Density
Specifies the value for each unit of the vertical density between columns. The resulting density is a direct ratio of the
value you specify. That is, the greater the value, the smaller the height between columns. By default the density will be
specified by JReport.
Notes:
●
By exporting using user defined densities, if the densities are not set appropriately, the fields in the report may
overlap each other, so you are not recommended to use this way to export the report result to Text.
When setting the value of Horizontal/Vertical Density, you need to pay attention to the following:
●
❍
❍
❍
❍
❍
The value of Horizontal/Vertical Density must be greater than the character's width/height of the smallest field in
the report (smallest field is the field with the smallest font size), otherwise, the value you set will not be applied.
If the value of Vertical Density is greater than 0 and the value of Horizontal Density is less than 0, the value that
you specify for the Vertical Density will be applied and the value of Horizontal Density will be specified by JReport.
If the value of Vertical Density is less than 0 and the value of Horizontal Density is greater than 0, the value that
you specify for the Horizontal Density will be applied and the value of Vertical Density will be specified by JReport.
If the values of Vertical Density and Horizontal Density are both greater than 0 and the value of Horizontal Density
is less than 11, the specified value of the two densities will be applied. Otherwise, they will be specified by JReport.
If the values of Vertical Density and Horizontal Density are both less than 1, these densities will be specified by
JReport.
Compress
Specifies whether to generate the report result to Text format in a compressed size, that is to say, there will be no
clearance between the columns.
Header and Footer
If checked, the Text file will contain all headers and footers in the report, including Report Header/Footer, Page Header/
Footer and Group Header/Footer. Otherwise, the Text file will only contain data in Detail panel.
Windows End-of-line (CR-LF)
Specifies to use Windows end-of-line characters to indicate the start of a new line. If checked, two characters <cr> and
<lf> will be used at the end of the line.
Unix End-of-line (LF)
Specifies to use Unix End-of-line characters to indicate the start of a new line. If checked, only the Unix End-of-line
character <lf> will be used.
RTF
Best Editing
Specifies whether to apply flow layout when exporting the report to RTF.
No Margin
Removes the margins you originally set while designing the report.
XML
Only Data
●
●
If checked, the exported XML file will only contain the database column information. The exported XML schema file
will only contain the structure information of the report.
If unchecked, the exported XML file will also contain elements controlled by formulas, and the exported XML schema
file will contain all the detailed information from the report, including all the property values of each report object.
Schema File Name
Specifies the directory and the name of an existing XML schema (.xsd) file. If you specify an existing XML schema file,
the exported XML file, the generated XML file that is to be exported will be based on it. Otherwise, a new XML schema
file will be generated to the directory where the exported XML file is to be exported. The new XML schema file and the
exported XML file will have the same name but with different extensions.
PostScript
No Margin
Removes the margins you originally set while designing the report.
Applet
Pop-up Window
Specifies to show an Applet window when viewing a report.
Zip Result
Specifies to compress the result and its size would be smaller.
Java Plug-In 1.2 for Windows
Directs applets to run using Sun's Java Runtime Environment (JRE).
Java Plug-In 1.3 for Windows
Directs applets to run using Sun's Java Runtime Environment (JRE).
Notes:
●
You'd better specify a file destination when exporting a report set via Applet, such as D:\folder\filename.pdf in
case you may not find the result. By default when exporting a report set via Applet on Internet Explorer, the exported
result will be located on the Desktop, and when on Firefox, it will be in its installation root.
If you do not have read or write permission to the default location or the location you specified, you will get an access
denied error. To handle this, add the required permission in jdk\jre\lib\security\java.policy that the applet uses:
For the default location "Desktop":
permission java.util.PropertyPermission "user.dir", "read";
permission java.io.FilePermission "${user.home}${/}Desktop${/}*", "read,write";
For user defined location:
permission java.io.FilePermission "D:${/}temp${/}*", "read,write";
●
When advanced running a report set to Applet on Firefox, after you select File > Open Result File on the Report
Viewer, you may get the access to the Open dialog denied error as follows:
java.security.AccessControlException: access denied (java.io.FilePermission Open read)
To resolve this, add the required permission in java.policy that the applet uses:
permission java.io.FilePermission "Open", "read,write";
Archive tab
Options below are available only when the view format is NOT set as DHTML or Studio in the Format tab.
Auto Archive Properties
Specifies to archive the result version automatically after the report set has finished running.
Archive Location
Specifies the location in which to archive the report result version.
●
●
●
Built-in Version Folder
Specifies to save the report result version to the built-in version folder.
My Reports Folder
Specifies to save the report result version to the My Reports folder.
Public Reports Folder
Specifies to save the report result version to the Public Reports folder.
Input archive destination and result name
Specifies the name and location with which to archive the result.
Apply Archive Policy
Applies an archive policy to the report result version.
●
Archive as New Version
Specifies whether to use multiple versions for the specified resource. Available only for the resources in the resource tree.
The Maximum Number of Versions option specifies the maximum version amount that will be listed in the version table. By
default the version amount is unlimited.
●
Replace Old Version
Specifies to replace the old version when a new version is generated.
Result Auto-delete
Specifies the deleted date of the report result version. You should make sure to set the result version as deleted automatically
within one hundred years. If the time you specified exceeds one hundred years, JReport Server will keep the result forever.
●
●
Result Expires in N Days
Specifies a period after which the report result version will be automatically deleted.
Result Expires After
Specifies a certain day on which the report result version will be automatically deleted.
Set Permissions
Available only when the Archive Location is specified to be Public Reports Folder. Click the link to set user permissions to the
specified report in the Set Permissions dialog.
Duration tab
This tab is available only when you have enabled the task-level timeout mechanism either by setting the task.duration.enable
property to true in the server.properties file or by checking the Enable Task Duration option on the JReport Administration page
> Configuration > Advanced panel.
In this tab, you can specify a time duration for a task, and ask JReport Server to cancel the task or to notify you or someone
else of the task status via e-mail if the task has not yet finished running when the task duration is up.
The following are the available options:
Timeout
Specifies the time duration for the task.
Notify by e-mail after the specified time
Sends an e-mail about the task information when the specified time is up.
●
Mail To
Specifies the e-mail address of the recipient.
Cancel the task after the specified time
Cancels the running task when the specified time is up.
Auditing dialog
This dialog is displayed when you click the Auditing link of a user in the User panel of the Security
dialog on the JReport Administration page.
Disable Auditing on All Events
Specifies whether to audit on all events.
Auditing the Accessed Events
Specifies to audit accessed events and record them in the log file in <install_root>\logs.
●
●
Success
Specifies to audit and record the accessed events when they have been successfully performed.
Failure
Specifies to audit and record the accessed events when they fail.
Auditing the Management Events
Specifies to audit the management events and record them in the log file in <install_root>\logs.
●
●
Success
Specifies to audit and record management events when they have been successfully performed.
Failure
Specifies to audit and record management events when they fail.
OK
Audits and records the events with the information you have specified.
Cancel
Cancels operations and closes the dialog.
Cache Configuration dialog
This dialog is displayed after you click Cached Data on the system toolbar of the JReport Administration page, select Cached
Report Data from the drop-down menu, and then click the Cache Configuration link. It allows you to configure memory usage for
cached report data (CRD) and configure auto cached report data.
Memory Usage Configuration
Configures the memory usage.
●
Maximum Memory Usage
Specifies the maximum memory usage when running a report using the CRD. The minimum value is 4 MB and can be increased
up to 80% of the total Java maximum heap size (-Xmx value in JRServer.bat). All CRDs being used to run reports will share the
same memory space.
Automatic Cache
Specifies whether to enable auto CRD. When it is selected, the following options are available:
●
●
Maximum Disk Usage
Specifies the maximum hard disk space for auto CRD. The value should be between 4 MB and 1024*1024 MB.
Expires
Specifies how long an automatic cached sharable data result is kept.
❍
❍
Never
The auto CRD will not expire.
Custom
Specifies the period an auto CRD exists.
OK
Applies the changes and closes the dialog.
Cancel
Does not retain any changes and closes the dialog.
Help
Displays this help document.
Catalog Properties dialog
You can set the properties of a specified catalog in its Properties dialog according to your requirements.
The Properties dialog is divided into the following two tabs:
●
General
●
Permission
Reset
Discards your modifications and restores the dialog to its default status.
OK
Retains the settings and submits the task to the server.
Cancel
Cancels any settings and closes the dialog.
Help
Displays this help document.
General tab
Specifies the general properties of the catalog.
Resource Path
Shows the resource path.
Resource Node Name
Specifies the name for the catalog.
Resource Type
Shows the type of the resource.
Resource Description
Specifies the description of the catalog.
[Custom Field Name]
Specifies value of the custom field for the catalog. A custom field can be regarded as a resource property and is available
when it is enabled.
Apply Archive Policy
Applies an archive policy to the catalog versions.
●
Archive as New Version
Specifies whether to use multiple versions for the catalog. Available only for versions in the resource tree.
❍
●
Maximum Number of Versions
Specifies the maximum number of versions that will be listed in the version table. By default the number of versions
is unlimited (0).
Replace Old Version
Specifies to replace the old version when a new version is generated.
Permission tab
Specifies permissions of roles/users/groups to the catalog. This tab is available when the catalog is in the Public Reports
folder.
Enable Setting Permissions
Enables the setting of permissions.
Available
Lists the roles/users/groups to which you can assign permissions.
●
●
●
Role
If checked, all roles will be displayed in the Available box for you to assign permissions.
User
If checked, all users will be displayed in the Available box for you to assign permissions.
Group
If checked, all groups will be displayed in the Available box for you to assign permissions.
Adds the selected roles, users or groups to the Selected box.
Removes the selected roles, users or groups from the Selected box.
Selected
Displays the roles, users and groups to which the permissions will be assigned.
●
●
●
●
●
●
●
Visible
Specifies whether to give the selected role/user/group the Visible permission.
Read
Specifies whether to give the selected role/user/group the Read permission.
Write
Specifies whether to give the selected role/user/group the Write permission.
Delete
Specifies whether to give the selected role/user/group the Delete permission.
Execute
Specifies whether to give the selected role/user/group the Execute permission.
Schedule
Specifies whether to give the selected role/user/group the Schedule permission.
Grant
Specifies whether to give the selected role/user/group the Grant permission. Users, groups or roles that have obtained
the Grant permission are also endowed with the other seven permissions - Visible, Read, Write, Delete, Execute,
Schedule, and Update Status, and can grant these seven permissions except the Grant permission itself.
Cluster dialog
This dialog is displayed when you click Cluster on the system toolbar of the JReport Administration
page. It helps you to configure the settings for a cluster if your cluster is enabled and set up. It is
available only when your JReport Server license permits the cluster feature.
There are two panels in this dialog:
●
Configuration panel
●
Weight panel
Configuration panel
Use this panel to configure the servers in a cluster.
Cluster Name
Specifies a name for the cluster. When cluster is enabled, you must specify a unique cluster name for
all servers that will join the cluster to build the cluster.
Cluster Scheduler Lease
Specifies whether to enable lease for a scheduler in the cluster. If this option is left unchecked, then
every scheduler in the cluster becomes an active scheduler.
Lease is a semaphore that enables a scheduler to be an active scheduler. If a scheduler is enabled with
lease, it becomes an active scheduler and will compete to trigger the schedule. Each active scheduler
can hold a lease for a period of time (which depends on the value you set in the Cluster Scheduler
Lease Valid Time text field), and then transfers it to another scheduler in the cluster.
●
●
●
Cluster Scheduler Lease Active Count
Specifies the active lease number in a cluster. By setting the active lease number, you get to know
how many active schedulers there are to compete to trigger the schedule. The property value should
be an integer and the default value is 2.
Cluster Scheduler Lease Valid Time
Specifies the period of time that the clustered server can hold a lease before releasing it. The
property value should be an integer in seconds and the default value is 300.
Cluster Scheduler Lease Check Interval
Specifies the time interval the cluster will use to check the number of active leases. The property
value should be an integer in seconds and the default value is 30.
Cluster Storage History Number of Copies
Specifies how many copies will be made in a cluster when a new file or folder is added to the history
folder. The property value should be an integer and the default value is 2.
Cluster Storage Realm Number of Copies
Specifies how many copies will be made in a cluster when a new file or folder is added to the realm
folder. The property value should be an integer and the default value is 2.
Cluster Storage CRD Result Number of Copies
Specifies how many copies will be made in a cluster when a new file or folder is added to the cached
report data (CRD) result folder. The property value should be an integer and the default value is 2.
Properties Directory
Specifies a properties directory for storing system data. The properties directory of each clustered
server should better point to a different physical location.
Realm Directory
Specifies a realm directory for storing system data. The realm directory of each clustered server should
better point to a different physical location.
Resource Root
Specifies a report root directory for storing system data. The resource root of each clustered server
should better point to a different physical location.
History Directory
Specifies a directory for storing report/catalog/result files. The history directory of each clustered
server should better point to a different physical location.
Temporary Files Directory
Specifies a directory for storing temporary result files. Along with the running of JReport Server,
temporary result files (generated by background run) will be written to the temp directory. Each
clustered server should use an individual temp folder to store its temporary files generated during its
working process.
Server's RMI Host
Specifies the RMI IP address or host name of the clustered server.
Server's RMI Port
Specifies the RMI port number of the clustered server.
Enable Cluster
Enables cluster on the server.
Save
Applies any changes to the server.
Weight panel
Use this tab to configure the performance weight on the clustered server.
Catalog
Specifies the catalog that will be used for performance weight testing.
Report
Specifies the report that will be used for performance weight testing.
Clustered Server Name
Displays the name of the clustered server.
Performance Weight
If you have chosen the Least Weighted Current Report Sets (Weighted Min-load) (loadbalance.type=2)
algorithm for load balancing, you will have to configure a performance weight for each clustered server.
See Configuring performance weight for how to set performance weight and how this algorithm works.
Performance weight is a positive float number. The higher performance weight you set to a clustered
server, the higher chance it may get selected by the server which has the active scheduler during load
balancing.
Test
Calculates each clustered server's performance weight value at current time.
OK
Applies the settings.
Cancel
Cancels the settings.
Help
Displays this help document.
Related topics:
●
Setting up and starting a JReport Server cluster
●
Managing JReport Server clusters
Configuration dialog
After you click Configuration on the system toolbar of the JReport Administration page, the entries to
the following panels are available on the drop-down menu. The panels help you to configure JReport
Server to suit your own requirements.
●
Service panel
●
Log panel
●
Cache panel
●
Performance panel
●
Advanced panel
●
LDAP panel
●
Export panel
●
Connection panel
●
Upload panel
●
Custom Field panel
Service panel
This panel allows you to configure the service settings of JReport Server.
The following are the options available in the Service panel:
Port
Specifies a port as the TCP port on which JReport Server listens.
When you start JReport Server, you will need to specify a port as the TCP port on which the server listens. The
port can be an integer between 1 and 65535. However, numbers less than 1024 are usually reserved by
system, and so numbers larger than 1024 are preferred. JReport Server uses 8888 as the default port.
Administration Port
Specifies the port used for remote administration. If JReport Server is running as a standalone web server, the
administrator can specify the port for client users to configure and administer the server remotely. This port is
where the servlet for remote administration (jet.server.servlets.RcServlet) listens. The default administration
port is 8889.
Maximum Number of Handlers
Specifies the maximum number of connection handlers.
A connection is set up between the server-side and a client-side when a request from the client-side reaches
the server. The maximum number of requests that can be handled depends on the maximum number of
handlers. When there is a limit on the maximum number of connection handlers, if there are no free connection
handlers available, a request from the client-side will be blocked. In which case, the request will either be
handled after a connection handler has been set free, or be refused when timeout occurs. A connection handler
is set free after the server sends a response to a client request.
Maximum Number of Connections
Specifies the maximum number of HTTP connections between the server-side and client-side.
The maximum number of connections depends on the number of requests that can be handled. It should be
larger than the maximum number of handlers. For example, if the maximum number of handlers is 10, and the
maximum number of connections is 12, when the eleventh and twelfth requests come, they will be blocked until
a handler has been set free. When the thirteenth request comes, it will be refused.
Connection Timeout in _ Milliseconds
Specifies the maximum time in milliseconds for a request from a client-side to be blocked before being refused
by the server. A request will be blocked if there are no free connection handlers in the server. However, it
cannot be blocked forever, and if there are still no free connection handlers after the time specified here (in
milliseconds), then the request will be refused back to the client.
Enable Secure Socket Layer Connection
If enabled, you can use HTTPS schema to visit JReport Server UI in the standalone mode.
●
●
●
●
Secure Port
The port used for visiting JReport Console page via HTTPS schema. It should be different from the Port for
HTTP schema.
Secure Administration Port
The port used for visiting JReport Administration page via HTTPS schema. It should be different from the
Administration Port for HTTP schema.
Keystore File Path
The location of your trusted keystore file.
Keystore Password
The password used to protect the integrity of the keystore.
●
●
●
Keystore Type
The type of keystore to be instantiated. The valid values are JKS and PKCS12.
Keystore Protocol
The encryption/decryption protocol to be used on the socket. The valid values are SSL and TLS.
Keystore Algorithm
The X509 algorithm to use. This defaults to the Sun implementation (SunX509). For IBM JVMs you should use
IbmX509.
Servlet Properties File Name
Displays the full path of the property file of the servlet jet.server.servlet.JRServlet.
Assuming that JReport Server has been installed to C:\JReport\Server, the servlet property file is C:\JReport
\Server\bin\servlet.properties.
Active Realm
Specifies the realm that will take effect when the server starts up.
A realm is the context of JReport Server where the entities reside. A user is a kind of entity that is contained in
a realm. Different users in one realm must have different names. There can be multiple realms in the server,
but only one is active at runtime. Only the users and resources in the active realm are accessible. Realm names
cannot contain the "/" or "\" character.
Provide Service On
Specifies whether JReport Server listens on all network addresses or just some.
●
●
All Network Addresses
If checked, JReport Server listens on all network addresses, which means that all the hosts of the machine
are active, and the client-end can connect with any of the hosts of this server.
Network Address At
If checked, JReport Server listens on the specified hosts, and you can specify them by inputting the host
names or IP addresses.
Notes:
●
●
The machine that JReport Server runs on can be multi-homed (for example, two interface cards have been
installed on the machine), if there is more than one IP address. JReport Server opens the listening port at
host name 'localhost' or at IP address '127.0.0.1' automatically.
When Network Address At is checked, if you want to specify all the host addresses to be active, input * into
this field; if you want to specify more than one address to be active, you should separate them using a blank,
for example, "leo 204.177.148.110".
Active Host Address
Lists the current active host' address.
Save
Applies changes to JReport Server.
Log panel
Logs can help you find out the reasons of problems, track down the workflow of a business process, and
debug trivial messages. Options for configuring JReport Server logs have been provided in this panel. You can
configure settings for each log category. After you select a log type, all the other options in the panel are
used to define the log type.
The options in the Log panel are listed as follows:
Log Type
Specifies the log category. It can be specified as one of the following:
●
●
●
●
●
●
●
●
●
Engine
Uses the "Engine" log if you want to log the events related to running reports, that is creating report results
or exporting reports. Reports are run by the Engine component of JReport Server.
DHTML
Uses the "DHTML" log if you want to log the events related to end users modifying and saving DHTML
format reports, including Ad Hoc and analysis features supported by JReport Viewer.
Access
Uses the "Access" log if you want to log which users accessed which services, such as report running
service and task scheduling service.
Manage
Uses the "Manage" log if you want to log the events related to modifying settings in the Administration
Console or server.properties.
Error
Uses the "Error" log if you want to log errors in any of the categories.
Event
Uses the "Event" log if you want to log the events related to the lifecycle of the server instance, such as its
start time and stop time.
Debug
Uses the "Debug" log if you want to log the events most likely needed for debugging purposes, such as the
exact SQL statements used to query the database.
Performance
Uses the "Performance" log if you want to analyze the performance of report result or export operations.
Dump
Uses the "Dump" log if you want to log events related to at what time what action is started or ended
during the process of running tasks. For example, when the task is submitted, when the task is run, when
the Engine is initiated, and when the Engine is stopped.
Descriptions
Specifies the brief description of the specified log type.
Trace Level
Used for logging something expectable or regular, such as tracing program workflow, logging runtime
information and associated elements.
You can set the trace level of the specified log type to one of the following:
●
●
●
OFF
Specifies not to use the trace level.
OUTLINE
The OUTLINE level specifies an outline of program workflow, and dump global variables, including a single
thread, multiple threads, the time for when to begin to fetch data, and success in exporting to the specified
result format.
INFO
The INFO level specifies informational messages that highlight the application progress at a coarse-grained
level, and important local variables, such as query, parameter, formula value used when running report
sets, connection information, and SQL statement.
●
TRIVIAL
The TRIVIAL Level specifies fine-grained informational events most useful in tracing an application. Such as
the report structure dump, or the result set dump.
Error Level
Used for logging something unexpected or irregular. For example, a URL is unreachable, a file is not there, or
a table cannot be found in a data source.
You can set the error level of the specified log type to one of the following:
●
●
●
●
OFF
Specifies not to use the error level.
FATAL
The FATAL level specifies severe error events that will presumably lead the application to abort, for
example, failing to read the valid key, and exceptions that result in feature uncompleted.
ERROR
The ERROR level specifies error events that may allow the application to continue running, such as failing to
load a report set, failing to find a catalog file, failing to parse a parameter, and failing to create db buffer.
WARN
The WARN level specifies potentially harmful situations, such as failing to find the resource, or having found
invalid query or formula with grammar error when loading a catalog.
Additivity
Determines the inheritance of the appenders defined by the Logger's ancestors.
Log Destination
Specifies where the log contents will be outputted to.
If you have set log destination, the threshold level for each goal appender defines the basic log level which
will be further filtered by JReport trace level and error level, and then comes out the final log output. Trace
level and error level are JReport specific log levels developed based on Log4J. They group log information into
two categories and add more levels to classify log information.
For example, if threshold=OFF, the trace level and error level will be ignored, and the log information output
is none. If threshold=ALL, the output is determined by the trace level and error level. If threshold=one of the
other levels, the output will be the result based on the trace level and error level that filter the threshold level.
●
File
Outputs log contents to the file appender that requires a layout. Logs of the specified category are written
into a file. When File is checked, the following options are available:
❍
❍
❍
❍
❍
Threshold
Defines the appender's level (Log4j named as threshold).
Layout Type
Specifies the layout type used to format the log contents.
Pattern Conversion
Sets the conversion pattern for the Pattern Layout.
File Name
Specifies the name of the log file to which the File Appender will output the log contents. The suffix of the
log file name is .log.
Append
Specifies whether or not to retain the old contents of the specified file.
❍
●
Rolling File
Outputs log contents to the rolling file appender that requires a layout. When Rolling File is checked, the
following options are available:
❍
❍
❍
❍
❍
❍
❍
❍
●
Threshold
Defines the appender's level.
Layout Type
Describes the layout type used to format the log contents.
Pattern Conversion
Sets the conversion pattern for the Pattern Layout.
File Name
Specifies the name of the log file to which the appender will output the log contents. The suffix of the log
file name is .log.
Append
Specifies whether or not to retain the old contents of the specified file.
Buffered IO
Specifies to create a buffer for the log IO.
Maximum File Size
Decides the maximum file size of the rolling file appender. The log system will create a new rolling file
when the file size exceeds the maximum file size.
Maximum Backup Index
Decides the maximum number of the latest rolling files that will be retained by the log system.
Daily Rolling File
Outputs log contents to the daily rolling file appender that requires a layout. When Daily Rolling File is
checked, the following options are available:
❍
❍
❍
❍
❍
❍
❍
●
Buffered IO
Specifies to create a buffer for the log IO.
Threshold
Defines the appender's level.
Layout Type
Specifies the layout type used to format the log contents.
Pattern Conversion
Sets the conversion pattern for the Pattern Layout.
File Name
Specifies the name of the log file to which the appender will output the log contents. The suffix of the log
file name is .log.
Append
Specifies whether or not to retain the old contents of the specified file.
Buffered IO
Specifies to create a buffer for the log IO.
Date Pattern
Specifies the data pattern used to generate the daily rolling file.
Socket
Outputs log contents to a remote log server. The socket appender needs not a layout. When Socket is
checked, the following options are available:
❍
❍
❍
❍
❍
●
❍
❍
❍
Port
Specifies the port number on which the Socket Server listens.
Delay
Specifies the timeout interval value for when a client attempts to create a socket connection.
Location Information
Specifies whether or not to output the log location information to the socket stream.
Threshold
Defines the appender's level.
Layout Type
Specifies the layout type used to format the log contents.
Pattern Conversion
Sets the conversion pattern for the Pattern Layout.
Source
Specifies the source name used and displayed by the NTEvent Viewer.
Syslog
Outputs log contents to a remote syslog daemon. Applies only to Unix and Linux servers. This appender
requires a layout. When Syslog is checked, the following options are available:
❍
❍
❍
❍
❍
❍
●
Remote Host
Specifies the host name where the Socket Server is located.
NTLog
Outputs log contents to the NT event log system. Applies only to Windows servers. This appender requires
a layout. When NTLog is checked, the following options are available:
❍
●
Threshold
Defines the appender's level.
Threshold
Defines the appender's level.
Layout Type
Specifies the layout type used to format the log contents.
Pattern Conversion
Sets the conversion pattern for the Pattern Layout.
Syslog Host
Specifies the host name where the Syslog server is located.
Facility
Specifies the facility name that is used by the Syslog.
Facility Printing
Specifies whether or not to print the facility information.
LF5
Outputs log contents to a swing based logging console. LF5 has a swing-based UI to view all of the logging
messages at run time and enables you to search and filter logging messages. This appender needs not a
layout.
When LF5 is checked, the following option is available:
❍
Threshold
Defines the appender's level.
●
Telnet
Outputs log contents to a read-only socket. You use telnet to connect to the socket and receive log data,
and this is handy for remote monitoring, especially when monitoring a servlet. This appender requires a
layout.
When Telnet is checked, the following options are available:
❍
❍
❍
❍
●
Threshold
Defines the appender's level.
Layout Type
Specifies the layout type used to format the log contents.
Pattern Conversion
Sets the conversion pattern for the Pattern Layout.
Port
Specifies the port number on which Telnet listens.
Console
Outputs log contents to the standard stream of Jave console. When Console is checked, the following
options are available:
❍
❍
❍
❍
Threshold
Defines the appender's level.
Layout Type
Specifies the layout type that is used to format the log contents.
Pattern Conversion
Sets the conversion pattern for the Pattern Layout.
Target
Specifies the standard IO target of the Console.
■
■
System.out
If selected, the log contents will be outputted to the standard output stream of the console.
System.err
If selected, the log contents will be outputted to the standard error stream of the console.
Save
Applies all changes to JReport Server.
Notes:
●
●
The Pattern Conversion option is available only when the Pattern is chosen as the Layout Type.
For more information about the Pattern Conversion option, see comments in the LogConfig.properties file
located in <install_root>\bin directory.
Cache panel
This panel allows you to configure the cache settings of JReport Server. It contains three tabs:
●
Report Cache
●
Security Cache
●
Image Cache
Save
Applies the changes to JReport Server.
Report Cache
To improve performance, JReport Server enables you to cache report sets and catalogs into memory so that they
do not have to be loaded from disk when they are required. Note that when you run a report set to DHTML
format, the report set and the catalog will not be cached.
The following options are available in this tab.
Cache Loaded Catalogs
Specifies whether to keep a catalog in memory or to remove it from memory after a report set has been
generated.
Usually, after a report set has been generated, the catalog used to generate it is removed from memory.
However, if you specify this option, the catalog will be cached instead of being removed.
●
●
Maximum Number of Catalogs to Be Cached
Specifies the maximum number of catalogs that can be cached by the server in its memory. No more catalogs
can be cached if this amount has been reached.
Cached Catalogs
Lists the currently cached catalogs.
If you are using the Add button to add a catalog, the listed catalog item includes information such as catalog
file path in the server resource tree and catalog version number. The format is as follows:<catalog file path>V<version number>. The root path stand for the My Reports folder is /USERFOLDERPATH/admin/; the root path
stand for the Public Reports folder is /.
For the catalogs that are automatically cached by the server after the report sets in them are run, the real
paths of them are listed.
❍
❍
Add
Adds a new catalog to the list of catalogs to be cached.
Remove
Deletes the selected cached catalog.
Cache Loaded Report Sets
Specifies whether to keep the report sets in memory or to remove them from memory after they have been
generated.
●
Maximum Number of Report Sets to Be Cached
Specifies the maximum number of report sets that can be cached in the memory by the server. No more report
sets can be cached if this amount has been reached.
Each cached report set will use some heap memory. If the heap is used up, an OutOfMemoryException will be
thrown. -ms/-Xms specifies the initial heap and -mx/-Xmx specifies the maximum heap. For example, -ms10m
-mx512m means that the initial heap is 10MB and the maximum heap is 512MB. You can refer to the
documents of the Java VM for more information.
Here is an example, the accuracy depends on your OS and VM:
Cache Size
Heap Size Required
10 report sets
16M
30 report sets
25M
The default cache size is 10 report sets and the default maximum heap space is 512MB. When you adjust the
number, you should adjust the heap accordingly. The larger the heap space, the better the performance
provided enough physical memory is available.
●
Cached Report Sets
Lists currently cached report sets.
If you are using the Add button to add a report set, the listed report set item includes information such as
report set file path in the server resource tree, report set version number, and applied style name. The format
is as follows: <report set file path>-V<version number>(<applied style name>). When there is no style
applied, the applied style name is None. The root path stand for the My Reports folder is /USERFOLDERPATH/
admin/; the root path stand for the Public Reports folder is /.
For the report sets that are automatically cached by the server after they are run, the real paths of them are
listed.
❍
❍
Add
Adds new report sets to the list to be cached.
Remove
Deletes the selected cached report sets.
Report Buffer Size for Sort Action
●
●
System Managed Size
Specifies whether to automatically control the buffer size used in the RAM for each report when sorting on
DHTML reports by system. If checked, all data for sorting will be stored in the RAM automatically.
Custom Size
Specifies to customize the buffer size used in the RAM for each report when sorting on DHTML reports. The
default value is 16 MB, and the minimum size required by JReport is 4 MB. Any value smaller than 4 MB will be
ignored and use 4 MB instead, because if the amount of data for sorting is large (such as 5,000,000 records),
but the buffer size that you configure is small, it will require a lot of IO and produce poor performance.
Note: Any change to the buffer size will take effect immediately.
Security Cache
The following options are available in this tab.
User Cache Size
Specifies the maximum number of user objects in the security cache.
Role Cache Size
Specifies the maximum number of role objects in the security cache.
Group Cache Size
Specifies the maximum number of group objects in the security cache.
Protection Cache Size
Specifies the maximum number of ACL objects in the security cache.
Image Cache
The following options are available in this tab.
Cache Images
Specifies whether or not to enable image cache.
●
●
●
All used images
If checked, all the images that are used in reports will be cached.
Maximum Image Cache Size
If checked, specify the maximum size for caching images as required. The default value is 10 MB.
Show Details
If checked, the detailed status of the current image cache will be shown, that is to say, you can see all the
cached images.
❍
❍
❍
❍
❍
❍
Name
Displays the name of the image.
Size
Displays the size of the image file.
Catalog
Displays the catalog file in which the image file is.
Path
Displays the path of the cached image.
Locked
Displays the lock status of the image file.
Add
Adds an image to the image cache.
■
Look In
Specifies the root of the catalog, My Reports or Public Reports.
■
■
■
■
❍
❍
❍
❍
Select Directory
Specifies the directory of the catalog.
Catalog
Specifies the catalog from the drop-down list.
Image File
Specifies the image file.
Image Size
Displays the size of the selected image file.
Lock
If you select one image and lock it, the image will be always kept in cache until you remove it manually or
restart JReport Server.
Unlock
The unlocked image will not be always be kept in cache.
Remove
Removes the selected image from the image cache.
Remove All
Removes all the images from the image cache.
Performance panel
This panel allows you to tune the performance of JReport Server.
The options in this panel are as follows:
Catalogs to Be Preloaded
Displays the catalogs that will be loaded when JReport Server is started.
●
●
●
Add
Adds a catalog to be preloaded.
Remove
Removes a catalog from the preloading list.
Preload Catalog Referred Classes
Specifies to preload the Java classes that are used by a catalog when JReport Server is started.
Preloading some useful Java classes will improve performance. Otherwise, it will take some time for JReport Server to
load any required Java classes when generating reports.
●
●
Preload Report Set Referred Classes
Specifies to preload the Java classes that are used by a report set when JReport Server is started.
Preload Engine Referred Classes
Specifies to preload the Java classes used by the JReport Engine when generating reports when JReport Server is started.
Report Sets to Be Preloaded
Displays the report sets that will be loaded when JReport Server is started.
●
●
●
Add
Adds a report set to be preloaded.
Remove
Removes a report set from the preloading list.
Preload Fonts
Specifies to preload fonts when JReport Server is started.
Improve I/O Performance
●
Compress Swap Files
Specifies whether or not to compress the temporary data generated during runtime before it is swapped to disk. By
compressing the swap files, the I/O efforts in certain circumstance may remarkably reduced so that the overall
performance can be improved.
Note: Compressing swap files will increase CPU pressure because it uses compress algorithm to shrink data, so if your
system already has high CPU usage, enabling this option will bring extra performance impact, depending on different
circumstance, and such impact may overcome the performance gain that comes from reducing I/O time.
Save
Applies the changes to JReport Server.
Advanced panel
This panel allows you to configure the advanced settings of JReport Server.
The options available in this panel are as follows:
No Security Check
Specifies whether the server responds to all the requests without security checking.
Enable "Publish to Versioning System" for Background Tasks View
Specifies whether to generate the hyperlink Publish to Versioning System in the view page when you run a report set on the
JReport Console page. Click this hyperlink to save the report set result as a version.
Keep Connection Alive
Specifies whether to keep the connection alive. By default, this option is checked. When connections are established to the
JReport Server at runtime, you can choose either to keep the connections alive or to close them. If you uncheck this option,
the connection will be disconnected once the HTTP request has been responded to. That is, Internet Explorer will not hold the
open connection.
Prompt Message When Server Task Queue is Full
If checked, a message will be prompted asking you either to place the task in the waiting queue or to cancel it when a task
cannot be run in JReport Server immediately due to the task queue being fully occupied.
Prompt Message When JReport Viewer (DHTML) Action Queue is Full
If checked, a message will be prompted asking you either to place the action in the waiting queue or to cancel it when an
action cannot be performed in JReport Viewer immediately due to the action queue being fully occupied, or simply showing
that no more action can be held at the moment when the waiting queue is full.
Enable Multiple Users to Login Using the Same User Name
Specifies whether multiple sessions created by one user can exist simultaneously. By default, this option is checked and one
user can log onto JReport Server repeatedly without having to terminate former sessions until the session number reaches the
number permitted by the license. If this option is unchecked, only the newly created session will be active, and all the oth