Quadbase / Support/Services / FAQs / EspressReport Tech Support FAQ

Quadbase

EspressReport Tech Support FAQ

INSTALLATION ISSUES

  1. Does Oracle 9iAS, IBM AS400, RS6000 and other models work with EspressReport and its servlets? Does it connects to DB2?
  2. What should I do if I failed to register license in the ER installation?
  3. How to move a licensed ER from one machine to another?
  4. Failed to launch EspressReport installer with JVM "current version value is 1.8 but version 1.7 is required" error

Running EspressReport

  1. When we tried using EspressReport and connect to MSSQL version 7.0 it gives java.sql.SQLException: Failed to retrieve data. null?
  2. When we tried connecting EspressReport to our database, we received a ClassNotFound exception. / When we tried to connect to Oracle it gives java.sql.SQLException: Failed to connect to database.
  3. Does EspressReport trucate long text line?
  4. How to reduce table height with Report API?
  5. How to change background and Font of selected cell(s)?
  6. If there are more columns than the size of the applet in a frame, where do the remaining columns go?
  7. Can report be generated without using EspressManager?
  8. How to use .rpt file as a report template in Report Designer?
  9. How to change the file location of a chart inside a report?
  10. I get an "Out of Memory" Error
  11. How to get a handle to a cell in the report?
  12. Why doesn't PDF output stream appear in Internet Explorer browser?
  13. How do I set-up a JDBC connection to my database?
  14. A Data Registry issue with Java8.
  15. How do I cut, copy, and paste into the "Enter SQL Statements..." window?
  16. Why is my scheduled reports running an hour late?
  17. Why does ERES freeze when using Java 1.6 with MS SQL Server 2000.

Solaris / UNIX / LINUXx Issues

  1. EspressReport gives "java.lang.ClassNotFoundException: quadbase.chart.CString" or java.awt.HeadlessException.
  2. How do I configure my servlet container to use java 1.4+ headless mode?

Features and Enhancements

  1. Does EspressReport support stored procedures?

 

Does Oracle 9iAS, IBM AS400, RS6000 and other models work with EspressReport and its servlets? Does it connect to DB2?"

EspressReport was successfully tested with Web Sphere server. A graphic card or Xvfb is required on AS400 for the EspressReport-associated servlets to run. You need to install EspressReport with java for the DB2 database connection to work. Oracle 9iAS Application 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 license, you can go to http://www.quadbase.com/license-registration-1/ to get a new qblicense.jar, copy the new jar file and replace the original one in <ER>/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 <ER installed directory>\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 InstallER66.exe to another machine and use the same license key again.
(3) The above procedure also works on non-Windows machine 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.

When we tried using EspressReport and connect to MSSQL version 7.0 it gives java.sql.SQLException: Failed to retrieve data null.

Please edit espressmanager.bat and change -DBBuffer:5 to -DBBuffer:0 in order to retrieve null data from MSSQL.

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

If you're running without EspressManager, make sure that the database driver (e.g. ojdbc14.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 line?

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

How to change background and Font of selected cell(s)?

Please use cell script with sample codes in espressreporthelpmanualProgramming_API.html

If there are more columns than the size of the applet in a frame, where do the remaining columns go?

They are in the next section of the applet in the frame. You may right-click mouse to reach the next section.

Can report be generated without using EspressManager?

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

QbReport.setEspressManagerUsed(false);

How to use .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 change the file location of a chart inside a report? Three options are available.

Copying the template directory to the working directory of the .class file
Using the API to create the charts
Use the API to change the location of the chart in the Report. You can get a handle to the cell containing the chart and edit it to change the located from a relative file location to an absolute file location (not recommended) or a URL location (recommended).

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 -Xmx128M component and increase the size. By default, both the EspressManager and Report Designer run with 128 MB of memory, raising this value will increase the heap size of the Java process. You can allot more 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 the objects using the API, you get a handle to the section and then get the cells in that section and access the appropriate cell. For instance, let us say you have a image object and a label object in the page header. To access these elements, you would

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.

Why doesn't PDF output stream appear in Internet Explorer browser?

There are a number of errors that can occur when trying to display a PDF output stream from a servlet in Internet Explorer.  The most common problem is that the user will get a blank page even though the PDF output is correct.  This error can be overcome by setting the content length as well as content type for the output stream.

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();

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 are a collection of URL and Driver for common database connection and drivers. For difficulty in connection, please 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 v8
JDBC Type 2 driver implementation: the legacy/CLI JDBC driver
jdbc driver: COM.ibm.db2.jdbc.net.DB2Driver | COM.ibm.db2.jdbc.app.DB2Driver
jdbc classes: db2java.zip
database url: jdbc:db2://machine/database | jdbc:db2:database
download: Find it in $(db2-install)/java/db2java.zip

Universal JDBC driver
jdbc driver: com.ibm.db2.jcc.DB2Driver
jdbc classes: db2jcc.jar, jd2jcc_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 jd2jcc_license_cu.jar

 

MS SQL Server 2000
JDBC Drivers from Microsoft
jdbc classes: msbase.jar, mssqlserver.jar, msutil.jar
database url: jdbc:microsoft:sqlserver://host:port
jdbc driver: com.microsoft.jdbc.sqlserver.SQLServerDriver

JSQLConnect from JDBC Drivers from Microsoft
jdbc classes: msbase.jar, mssqlserver.jar, msutil.jar
database url: jdbc:microsoft:sqlserver://host:port
jdbc driver: com.microsoft.jdbc.sqlserver.SQLServerDriver
download: Net Direct

 

MS SQL Server 2005
JDBC Driver from Microsoft
jdbc class: sqljdbc.jar
database url: jdbc:sqlserver://host:port
jdbc driver: com.microsoft.sqlserver.jdbc.SQLServerDriver

Link:
MS SQL Server 2005 JDBC Driver Download
http://msdn.microsoft.com/en-us/data/aa937724.aspx

 

MySql

MySQL Connector/J from MySql (www.mysql.com)
jdbc classes: mysql-connector-java-2.0.14-bin.jar (download from www.mysql.com)
dtabase url: jdbc:mysql://host/database
jdbc driver: com.mysql.jdbc.Driver

 

OpenBase
JDBC Driver from OpenBase
jdbc classes: OpenBaseJDBC.jar (download from www.openbase.com)
dtabase url: jdbc:openbase://host/database
jdbc driver: com.openbase.jdbc.ObDriver

 

Oracle
JDBC Thin Driver
database url: jdbc:oracle:thin:@host:port:sid
jdbc driver: oracle.jdbc.driver.OracleDriver
jdbc classes: ojdbc14.jar (download from www.oracle.com)

OCI Driver
database url: jdbc:oracle:oci8:@{your-tns-name}
jdbc driver : oracle.jdbc.driver.OracleDriver
jdbc classes: ojdbc14.jar (download from www.oracle.com)

Links:
Oracle11g JDBC Developer's Guide and Reference
http://download.oracle.com/docs/cd/E11882_01/appdev.112/e12137/toc.htm

Oracle JDBC Driver download
http://otn.oracle.com/software/tech/java/sqlj_jdbc/index.html

 

Sybase
JConn2 driver from Sybase
jdbc classes: jconnect2.jar
database url: jdbc:sybase:Tds:host:port
jdbc driver: com.sybase.jdbc2.SybDriver

 

PostgreSQL
database url: jdbc:postgresql://:/
jdbc driver: org.postgresql.Driver
jdbc classes: postgresql-8.4-701.jdbc4.jar (download from http://jdbc.postgresql.org/download.html)

 

Informix
database url: jdbc:informix-sqli://:/:informixserver=
jdbc driver: com.informix.jdbc.IfxDriver
jdbc classes: ifxjdbc.jar (download from http://www14.software.ibm.com/webapp/download/search.jsp?go=y&rs=ifxjdbc)

A Data Registry issue with Java8.

Java8 has stopped supporting jdbc-odbc bridge connection. The ODBC Datasource connection in DataRegistry is still working with lower versions of java such as Java7 but not Java8. Available workaround must be used for ODBC connection to Access database if Java8 were used.

How do I cut, copy, and paste into the "Enter SQL Statements..." window?

When the Report Designer is running as an Applet, java applet security prevents Report Designer from accessing the system's clipboard.  Therefore, even though cut, copy, and paste works within the Applet, it cannot obtain data from an external source.  This becomes a problem when the user wants to copy and paste long SQL queries from a text file into the Designer.  The way to solve this problem is to set the java applet security policy so that the Designer is granted permission to access the System clipboard. To do so, go to your JRE security directory (if you have multiple versions, use the one set up for your browser), on Windows this is typically located in the C:Program Files/Java/jre*/lib/security. Open the "java.policy" file, scroll to the bottom, and add the following lines:

grant codeBase "http://<ip_address>:<port>/-" {
permission java.security.AllPermission;
};

Where <ip_address> and <port> designates the IP address and port of the machine running the applet, for example:

grant codeBase "http://192.168.0.1:8080/-" {...

After you have set your security policy, restart your browsers and go back into Report Designer, you will now be able to copy and paste from the system clipboard.

Why is my scheduled reports 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 fixing 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
Why does ERES freeze when using Java 1.6 and MS SQL Server 2000?

The MS SQL Server 2000 JDBC Drivers have compatibility issues with Java 1.6. To solve this issue, use the MS SQL Server 2005 JDBC Drivers instead.

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 1.4+ 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. Similar stored procedure works for Oracle database where the query becomes "call store (P1, P2)".

 

Sitemap | Contact us | Products | Hosted Services | Gallery | Sales | Support/Services | Company