This site uses cookies and related technologies, as described in our privacy policy, for purposes that may include site operation, analytics, enhanced user experience, or advertising. You may choose to consent to our use of these technologies, or manage your own preferences.

 


Search
MenuMENU

×

EspressReport Tech Support FAQ

Does ReportTool work with modern Oracle and IBM application servers, and does it support Db2?

Yes. EspressReport is compatible with modern Oracle and IBM platforms, including IBM WebSphere Application Server, IBM i, and IBM Power Systems running AIX. It supports IBM Db2 via standard JDBC when installed with Java and the appropriate drivers. EspressReport-associated servlets require access to a graphical environment, which can be provided by a graphics adapter or a virtual framebuffer such as Xvfb on headless systems. Oracle WebLogic Server requires CLASSPATH settings in XML files for the servlets to work.


What should I do if I failed to register license in the ER installation?

In ER installation, if you failed to register the license, you can go to https://www.quadbase.com/license-registration/ to get a new qblicense.jar, copy the new jar file and replace the original one in /lib/ directory and /WEB-INF/lib directory.


How to move a licensed ER from one machine to another?

If you want to move a licensed ER from one machine to another, you may re-use the same license key by the following procedure, as an example.
(1) On Windows machine that has installed the licensed version, go to \UninstallerData\Uninstall_EspressReport.exe and run it by double clicking from Windows Explorer Or you may use the Windows shortcut, Start /All Programs / EspressReport /Uninstall EspressReport
(2) Move InstallER71.exe to another machine and use the same license key again.
(3) The above procedure also works on non-Windows machines where you should use a Command Prompt and run the corresponding file in the UninstallerData directory. 


Failed to launch EspressReport installer with JVM "current version value is 1.8 but version 1.7 is required" error

On machines with multiple JVM's, the EspressReport installer may have Error: Registry Key "Software\Java Soft\Java Runtime Environment\Current Version" has value 1.8 but 1.7 is required. The suggested options are A. Uninstall older java versions, or B. point a desired java version to installer directly via command prompt. On Windows 10, right-clicking mouse on cmd.exe and select "Run As Administrator". In the command window type in >>>>InstallER66.exe LAX_VM "C:\Program Files\Java\jre1.8.0_60\bin\java.exe" to start the installation panels.


What should I do if the installer fails to start with the error message “This Application has Unexpectedly Quit” or “Windows DLL failed to load”?

If the installation fails, there are a few steps you can try:


1. Try Windows Compatibility Mode: If you are using Windows Server, try setting the compatibility mode to "Windows 8" for the installer.
Right-click on InstallER70.exe and select "Properties."
Go to the "Compatibility" tab.
Check "Run this program in compatibility mode for" and select "Windows 8."
Click OK.


2. Use the Latest Update: Ensure you are using the latest version of the installer from our download section. The latest version includes embedded Java, which should be used for the installation process automatically.


3. Force Java Version: If you must use an older version of the installer, you can force it to use a specific Java version installed on your system by launching the installer with the following command:
InstallER70.exe LAX_VM "C:\bin\java.exe"


When we tried connecting EspressReport to our database, we received a ClassNotFound exception. / When we tried to connect to Oracle it gave java.sql.SQLException: Failed to connect to database.

If you're running without EspressManager, make sure that the database driver (e.g. ojdbc8.jar) is in the classpath. If you're running with EspressManager, edit the EspressManager batch file, and add the database driver to the "-classpath" argument.


Does EspressReport truncate long text lines?

Most often this occurs because the cell is not large enough to show the whole text. To remedy this, you may either create a template with the width and height set (assuming you know what the maximum size of the strings will be) and you can then apply the template onto the report object created. Or expand the cell height and width by the following API lines:

report.getTable().getHeader().setHeight(1); // Set Height to one inch
report.getTable().getHeader().setWidth(7); // Set Width to seven inch

You can also enable the resize to fit content option using:

setResizeToFitContent(boolean b)
The only time when EspressReport will truncate the data is when the virtual memory/paging feature is on. If the virtual memory feature is enabled, use the following line to set the max number of characters per field.

QbReport.setMaxCharForRecordFile(500);


How to reduce table height with Report API?

ReportTable table = report.getTable();
table.setHeight(0.2); //reduce table height to 0.2 inch



Can reports be generated without using EspressManager?

Please use the following API to generate reports without using EspressManager.

QbReport.setEspressManagerUsed(false);


How to use a .rpt file as a report template in Report Designer?

Please create a new report and specify the data source. When you get to the main Report Designer window (i.e., the place where you actually design the report), go to File -> Apply Template and specify the .rpt file. This should then apply the look and feel of your existing .rpt file onto the newly created report. The same sequence can be used in API.


How to use API to change the file location of a chart inside a report?

You can get a handle to the cell containing the chart and edit it to change the location from a relative file location to an absolute file location (not recommended) or a URL location (recommended). For example:

report.getReportChartObjectAt(0).setRelativePath("chart/chart.pac");


I get an "Out of Memory" Error

When using the designer, this indicates that either the Report Designer or EspressManager has run out of memory. To increase the memory for either component, modify espressmanager.bat, reportdesigner.bat generated by the installation. Find the -Xmx256M component and increase the size. By default, both the EspressManager and Report Designer run with 256 MB of memory, raising this value will increase the heap size of the Java process. You can set as much memory as your system allows.

When running Report Designer, you can set the number of records to be retrieved in the Preview window, by selecting the 'Set Preview Display Row' option in the Data menu. By default, the entire result set is retrieved when previewing a report which can cause the Designer to run out of memory.

If the error occurs when using EspressReport API in you application, JSP, or servlet, increase the memory available to the application or application server using the same -Xmx option.

When deploying reports with large data sets, you can use memory optimized exporting to prevent memory errors on the server. Memory optimized exporting will retrieve only a set number of records from the database at a time, rather than pulling the whole result set into memory. For more on this feature, please see the exporting section of the Programming Guide in the EspressReport User Guide.

Another option is to use the Virtual Memory/Paging option. Using this feature allow you to set limits on the memory usage while still be able to run large reports. Details can be found here.


How to get the handle to a cell in a report?

To access objects through the API, you first obtain a handle to the section, then retrieve the cells within that section and access the required cell. For example, suppose the page header contains an image object and a label object. To access these elements, please follow the below example:

QbReport report = new QbReport(..., ...);
ReportCell[] pageHeaderData = report.getPageHeader(); // Gets both cells
ReportCell imageObject = pageHeaderData[0];
ReportCell labelObject = pageHeaderData[1];
// Then you can modify the objects as necessary.


What is the best practice for a servlet streaming a PDF?

The following code snippet illustrates how to set the content length for an output stream:

 

ByteArrayOutputStream reportBytes = new ByteArrayOutputStream();
report.export(QbReport.PDF, reportBytes); // where report is an object of type QbReport
response.setContentType("application/pdf"); // where response is the HttpServletResponse
response.setContentLength(reportBytes.size());
OutputStream toClient = response.getOutputStream();
reportBytes.writeTo(toClient);
toClient.flush();

 


My ER is too slow. Every action takes more than 30 seconds.

This can happen when your machine has multiple IP addresses. ER is then confused and it’s trying to contact the addresses in sequence.

If your client or server has multiple IP addresses, it’s important to do the following:

1.  On the server side, bind the EspressManager to listen to a specific IP address only.

Edit /userdb/config.txt

In the [port] section, add your server's main IP address. For example:

[port]

22071, 192.168.0.1

 

2. On the client side, bind the EspressReport to contact the correct IP address of the EspressManager.

Edit the /reportdesigner.bat or /reportscheduler.bat (depending on what you're trying to launch)

Add the following two parameters behind the quadbase.reportdesigner.designer.ReportClient string. 

-address:192.168.0.1 -port:22071

For example:

quadbase.reportdesigner.designer.ReportClient -address:192.168.0.1 -port:22071


How do I set-up a JDBC connection to my database?

In order to connect to your database, do the following :

Edit espressmanager.bat, or espressmanager.sh file, depending on platform
Add the location and name of the database jar file to the CLASSPATH of the java command
Save and close the file
Start EspressManager
Start Designer
Go to Data Registry and add a new database node
Add relevant details (URL, Driver, Username, Password) and click on Test Connection to confirm a connection is made

Below is a collection of URL and Driver for common database connection and drivers. For difficulty in connection, please run java TestDB (use class file in bridgeTest directory) to return more error messages for adjustment.

Hsql (Hypersonic sql) database server (EspressReport example database datasource)
Hsql JDBC Driver (in-process or standalone mode)

jdbc classes: hsqldb.jar under $espressreport_install_dir$/help/examples/DataSources/database/hsqldb.jar

database url (relative path): hsqldb:help/examples/DataSources/database/woodview
database url (absolute path | windows): hsqldb:C:/espress-report/help/examples/DataSources/database/woodview
database url (absolute path | unix): hsqldb:/usr/espress-report/help/examples/DataSources/database/woodview
jdbc driver: org.hsqldb.jdbcDriver

Hsql JDBC Driver (server mode)
jdbc classes: hsqldb.jar under $espressreport_install_dir$/help/examples/DataSources/database/hsqldb.jar
database url (1 db on 1 machine): jdbc:hsqldb:hsql://machineName
database url (> 1 db on 1 machine): jdbc:hsqldb:hsql://machineName:port
jdbc driver: org.hsqldb.jdbcDriver

documentation: frame | no frame

 

IBM’s DB2 JDBC driver
jdbc driver: com.ibm.db2.jcc.DB2Driver
jdbc classes: db2jcc.jar, db2jcc4.jar, db2jcc_license_cu.jar (license)
database url: jdbc:db2://host:port/database (ex. jdbc:db2://server1:50000/phonedb)
download: http://www.ibm.com or find it in $(db2-install)/java/db2jcc.jar and db2jcc_license_cu.jar

 

MS SQL Server 2019/2022

JDBC Driver from Microsoft

jdbc class: mssql-jdbc-12.10.0.jre8.jar(for Java 8), mssql-jdbc-12.10.0.jre11.jar(for Java 11+)

database url: jdbc:sqlserver://host:port;databaseName=yourDatabase

jdbc driver: com.microsoft.sqlserver.jdbc.SQLServerDriver

Link:

MS SQL Server 2019/2022 JDBC Driver Download

https://learn.microsoft.com/en-us/sql/connect/jdbc/download-microsoft-jdbc-driver-for-sql-server?view=sql-server-ver17

 

MySql

MySQL Connector/J from MySql (https://dev.mysql.com/downloads/)
jdbc classes: mysql-connector-j-8.4.0.zip (for Java 8), mysql-connector-j-9.5.0.jar (for Java 11+)
database url: jdbc:mysql://host/database
jdbc driver: com.mysql.cj.jdbc.Driver

Oracle
JDBC Thin Driver
database url: jdbc:oracle:thin://host:port/servicename
jdbc driver: oracle.jdbc.OracleDriver
jdbc classes: ojdbc8.jar (for Java 8), ojdbc11.jar (for Java 11+) (download from www.oracle.com)

OCI Driver
database url: jdbc:oracle:oci:@servicename
jdbc driver : oracle.jdbc.OracleDriver
jdbc classes: ojdbc8.jar (for Java 8), ojdbc11.jar (for Java 11+) (download from www.oracle.com)

Links:
Oracle JDBC Developer's Guide and Reference
https://docs.oracle.com/en/database/oracle/oracle-database/26/cncpt/concepts-for-database-developers.html

Oracle JDBC Driver download
https://www.oracle.com/downloads/

 

Sybase/SAP ASE
JConn4 driver from Sybase
jdbc classes:jconn4.jar
database url: jdbc:sybase:Tds:host:port
jdbc driver: com.sybase.jdbc4.jdbc.SybDriver

 

PostgreSQL
database url: jdbc:postgresql://host:port/database
jdbc driver: org.postgresql.Driver
jdbc classes: postgresql-42.x.x.jar (download from https://jdbc.postgresql.org/download/)

 

Informix
database url: jdbc:informix-sqli://host:port/database:INFORMIXSERVER=servername
jdbc driver: com.informix.jdbc.IfxDriver
jdbc classes: ifxjdbc.jar (it can be found in Informix Server directory: $INFORMIXDIR/jdbc/lib/)

 


Why is my scheduled report running an hour early/late?

When the United States moved Daylight Saving Time (DST) to its new date, certain older JRE versions will not be able retrieve the correct time from the system.  As a result, when you schedule a report to run at a specific time, it will run an hour later during the three weeks after DST has gone into effect and an hour earlier for the three weeks before DST is set to end.  For more information, please see the Oracle Article discussing this issue.

Here are the options you have to fix the scheduler problem:

Update your JDK/JRE to the latest build
Use the update program (TZupdater) from the Sun Article above
Turn off automatically adjust for Daylight Saving Time in your OS and change the clock manually


How to solve the problem that EspressReport.jnlp launches and then disappears at once on Windows 10 with JRE 10?

Open “Java Control Panel” on Windows10. Enable 2 Options:
From Security tab: Enable Java Content in Browser (Required for Applets and Web Start Applications)
From the Web Settings tab: Keep temporary files on my computer.
After the above setting, the jnlp file can be launched successfully. However, you’ve always got a cached jnlp file. To get updated jnlp running, you need to delete "Cached Applications and Applets" from Web Settings of Java Control Panel by clicking the button of “Delete Files” there.


EspressReport gives "java.lang.ClassNotFoundException: quadbase.chart.CString" or java.awt.HeadlessException:

This occurs when Java cannot find the display device. If you have an X11 server running, make sure Java can connect to it by setting the DISPLAY system property correctly. DISPLAY can be set to simply ":1.0" or "127.0.0.1:1.0" or "A.B.C.D:1.0" where "A.B.C.D" is the machine's IP address.

Alternatively, you can use the headless option by adding the following runtime parameter to the java command.

-Djava.awt.headless=true


How do I configure my servlet container to use java headless mode?

For Tomcat, you need to modify the catalina.sh file in the bin directory. In that file, simply add a line that declares (if it is not yet declared) the JAVA_OPTS variable and set its value to be:

JAVA_OPTS=-Djava.awt.headless=true
For other servlet containers, locate the file that starts the java process and add in the argument: -Djava.awt.headless=true so that the resulting command to invoke the java process for the servlet container would be something like this:

java -Djava.awt.headless=true servletContainerClass


Does EspressReport support stored procedures?

You may specify a stored procedure in the query such as "EXEC store" or "EXEC store 'P1', 'P2' where P1, P2 are parameters into store for MSSQL and setup store on the database server. A similar stored procedure works for Oracle database where the query becomes "call store (P1, P2)".


How to manage ER users?

In EspressManager Monitor, there is a "Manage Users" option on the left-top corner. You can add/delete users, and change user passwords.


Report Loading hangs up when running from API

The problem might be a parameter prompt popup in the background. Please make sure that you set the "prompt parameter" property to false in the QbReport constructor.

Properties props = new Properties();

props.put(QbReport.PROPS_PROMPT_PARAMETER, false);

props.put(QbReport.PROPS_USE_BACKUP_DATA, true);

QbReport report = new QbReport(null, reportPath, props);

report.getInputData().setAllDatabaseInfo(...)


image

Chat support

Hi. I am Michael from Quadbase Support. How can I help you?