Welcome to EspressReport. Written in 100% pure Java, EspressReport is a set of tools that allows you to easily create professional, information-rich reports from a variety of data sources, and include them in your applications, Web based or otherwise. Among other components, EspressReport comes with a report designer and a robust object oriented API. The report designer provides a powerful, yet easy to use graphical user interface, where users can quickly manipulate and format content, turning raw data into polished reports in a matter of minutes. The finished report design can be saved in a template for subsequent distribution with up-to-the-minute data. To publish the report on the Web, you will write JSP/servlet code using the API to reference the template and generate the report in a desired format. Export formats supported include PDF, HTML, DHTML, text, and Excel spreadsheets. Reports can also be viewed in a browser with Report Viewer or EspressReport’s API running as applet, and printed in a WYSIWYG hard copy.
Included in the report designer is a query builder and data source manager that allow you to quickly extract data from JDBC, ODBC, XML, and ASCII sources. The sophisticated Data View features allow administrators to create local data catalogs for end users, and present data from databases in simplified terms. Using this feature, end users who have no knowledge of database can easily perform ad-hoc reporting.
To facilitate easy report design/creation, EspressReport supports five report types, namely, simple columnar, summary break, crosstab, master & details and mailing labels. Advanced features allow users to include sub-reports, drill-down, parameters, insert hyperlinks, insert images, manipulate data with over eighty-five built-in formulas, and incorporate sophisticated charts and graphs into reports.
1.1.) Version 5.5 New Features
Version 5.5 contains many new features and enhancements.
Cascading parameters enhancement - Cascading parameters are now supported in subreports and drilldowns, cascading parameters can also be used in conjunction with linked sub-reports.
Ability to delete scripts even if it is applied on certain cells, see Designer Chapter, Section 9.
Open report and canceling no longer closes the previous report.
Chart colors now map to category or data series names, see Charting Chapter, Section 5.
Dynamic step interval - User can now specify label step units for dates as dynamic, which will automatically calculate the interval based off of the data range. See Charting Chapter, section 5.7.2.
Chart zooming enhancement - In the chart viewer, changing the range will dynamically change the scale. See Charting Chapter, section 5.8.2.2.
New option to hide 0% elements in a pie chart. See Charting Chapter, Section 5.9.4.
Background images in charts can now be saved with relative URL. See Charting Chapter, Section 5.5.1.1.
1.2.) EspressReport Documentation
There are four sections to the EspressReport Documentation.
Quick Start Guide: This is a good starting point when working with EspressReport. It covers many of the most commonly used features, and provides Report Designer and API exercises to illustrate them.
Designer Guide: This explains all of the functionality of the Report Designer, and teaches you how to develop queries in the query builder, and format and manipulate data to create polished reports.
Charting Guide: This covers all of the charting features, and teaches you how to format and manipulate charts using the Chart Designer, as well as with the Report API.
Programming Guide: This covers the Report API, and teaches you how to create reports programmatically, as well as incorporate them into servlets, JSPs and applications.
2.) Architecture & Installation
There are seven main components to EspressReport, namely, Report Designer, Chart Designer, Report API, Report Viewer, Page Viewer, EspressManager, and Scheduler.
Report Designer: Report Designer is a GUI tool that allows users to build reports in a point-and-click environment. Included with the Report Designer are interfaces to access data, query databases, and design charts. The Report Designer can run as a client application, or in a client-server configuration with the Designer loaded as an applet through a Web browser.
Chart Designer: Chart Designer: Chart Designer is a GUI tool that allows users to build and design charts in a point-and-click environment. Launched from within Report Designer it allows users to create charts to be embedded within reports, or stand-alone charts to be run using the Report API.
Report API: Report API is an easy-to-use application programming interface that allows users to imbed reporting functionality into their applications, servlets, or JSPs, either on the server-side or client-side. Because it is pure Java it can run on most platforms with few or no changes. Any and every part of the report is customizable using the API giving users full control over report formatting at run-time. Reports can be created and deployed with just a few lines of code.
Report Viewer: Report Viewer is an integrated applet that allows users to view and interact with reports. The applet shows reports in a paginated format, giving users the opportunity to navigate around reports using a pop-up menu. Also report templates can be directly hyperlinked together using the applet. EspressReport can generate HTML pages with the applet imbedded without requiring any coding.
Page Viewer: Page Viewer is an integrated applet like Report Viewer that uses page serving technology. With Page Viewer, pages in the report are only sent to the client when requested. This allows users to view/preview large reports.
EspressManager: EspressManager serves as the “back end” to the Report Designer and scheduler interfaces. It supports Report Designer running as an applet EspressManager handles the data access and file I/O activities on the server-side. In addition, EspressManager provides database connection and data buffering. EspressManager also runs the scheduling process on the server-side, executing the reports according to the user-defined jobs. It can run as an application process on the server, or be deployed as a servlet within an application server.
Scheduler: The scheduler is a small interface that runs in conjunction with EspressManager. It allows users to schedule reports, and other events, as well as manage scheduled tasks.
2.1.) EspressReport Architecture
EspressReport has a number of different configurations in which it can run both at design-time, and at run-time. At design-time the Report Designer GUI interface, which includes data access tools, and charting tools can be loaded as an application on a client machine, or as an applet in a client server architecture. The following diagram illustrates EspressReport running with the Report Designer at design-time.

EspressReport Designer Architecture
When Report Designer is running, the EspressManager component runs on the server-side. It can run either as an application process, or as a servlet deployed within an application server/servlet runner. The EspressManager performs the data access and the file I/O which is prevented by the client applet due to security restrictions. The EspressManager also provides connection and data buffering for database connections, as well as concurrency control for a multi-user development environment. The EspressManager must be run in conjunction with the Report Designer.
At run-time, the EspressManager does not need to be running. EspressReport is designed to run embedded within other application environments, and can have a minimal deployment of the API classes, and report template files. The following diagram illustrates EspressReport running in a servlet/JSP environment.

EspressReport in a Servlet Environment
When running in an application server, the Report API can be used to generate reports within servlets and JSPs and stream the generated report to the client browser. Clients can also view reports, by loading the Report Viewer applet or the Page Viewer applet.
Report generation can be handled on demand, triggered by application processes, or scheduled. A scheduler interface is also provided with EspressReport. In order to run the scheduler the EspressManager must also be running.
In addition to running in a client-server environment, EspressReport can be run in a thick-client application. The Report API can be used in conjunction with the Viewer and/or Page Viewer to show/generate reports in an application interface. In this configuration, EspressManager does not need to be running, as the whole process can be contained on the client. Note that this is not the case for applets.
There are four versions of EspressReport installer available, one for Windows, one for Unix, one for Mac OS X, and a pure Java version.
Windows: To start the Windows installer, run the installER.exe file and the installer will launch.
Unix: To start the Unix installer, run the installER.bin file, and the installer will launch.
Mac OS X: To start the Mac installer, double click the InstallER.zip file to extract the InstallER.app file. Double-click on InstallER.app, and the installer will launch.
Pure Java: To start the pure Java installer, a Java Virtual Machine, the equivalent of Java 1.2 or higher, must already be installed on the machine where EspressReport is to be installed. Make sure that the JVM is included in your path (or move the installER.jar file to the same directory as the JVM). From a command prompt navigate to the directory where you have placed the installER.jar file, and type the following command: java -jar installER.jar. The installer will then launch.
Once the installation program has launched and you agree to the license agreement, the first option that is presented asks you whether you would like to install the evaluation or release version.

Install Version Dialog
If you elect to install a release version, then the next dialog will prompt you to enter your license key, and verify the host name of the machine on which you're installing EspressReport.

Enter License Key Dialog
After you have entered the information, the installer will attempt to register the license key with Quadbase. If registration fails, you will be unable to continue installing the release version of EspressReport. You will have the option to continue installing the evaluation version. After the installation completes, you can register your key online at http://www.quadbase.com/register.jsp, or contact Quadbase Sales for additional help.
*Note - After the installation completes, the release version will only run for the hostname specified in this dialog, so double-check to make sure the host name is correct. You can also use the IP address of the machine if you prefer.
Once the license key has been successfully registered, or if you select to install the evaluation version, the next dialog will prompt you to specify the install location.

Choose Location Dialog
The default location is \EspressReport\. You can specify a new directory, or browse to one by clicking the 'Choose…' button.
The next option allows you to specify a Java Virtual Machine to use when running EspressReport. (Since it is a Java program, you will need a JVM to run it.)

Choose JVM Dialog
You can choose to install a JVM that comes with EspressReport, or choose a JVM that you have already installed on your system. The installer searches for any JVMs and presents you with a list to choose from. If the JVM you want to use is not listed, you can click the 'Choose Another...' button to browse to it.
*Note - The JVM that is bundled with the installer only provides a Java Runtime Environment. In order to develop and execute Java code using the Report API, you will need to have a Java Development Kit, and/or compiler/IDE. Also, if you're using the pure Java, or Mac OS X version of the installer, this option will not appear. Make sure that you're running the installer with the JVM you wish to run the program.
The next option in the installer is only for the Windows release version of the installer. It is not available for the Unix or pure Java versions, and is not available for any evaluation versions of EspressReport. This option allows you to run EspressManager as a Windows NT/2000 service.

NT/2000 Service Dialog
*Note - In order for EspressManager to run correctly as a Windows service, you will need to have DirectX v8.1 or higher installed on your Windows system. EspressManager may not run correctly with older versions of DirectX.
If you specify to start EspressManager as a service, two new options will follow. First, you will be prompted to specify some configuration information for EspressManager.

EspressManager Configuration Dialog
These options are the same as command line arguments that are available when you run EspressManager using the .bat or .sh file. For more information about configuring EspressManager, see Section 2.3.
If you're running EspressManager as a Windows service, the next option in the installer will prompt you whether you would like to add the classes for a JDBC driver to the EspressManager Classpath. This will allow you to connect to a database to retrieve report data. (You can manually modify the .bat or .sh files to add classes.) If you select to add a driver, the next option will allow you to specify the file you would like to add.
The last option in the installer is for the Windows, or Mac OS X installation. It allows you to specify where to create the program shortcuts in the Start Menu, on the Desktop, or both. By default shortcuts are added to a program group called EspressReport in the Start Menu.
For Mac OS X you can create aliases on the Desktop, in the dock, or in a folder of your choosing.
After you complete the last option you will be shown a summary of the options you've selected. Next, the program will install.
After installation, the configuration should be set and EspressReport will run without any modification. However, if you want to change the port number for connecting to EspressManager, change the webroot, or add/delete/modify users, you can do this by modifying the config.txt in the userdb directory.
Below is a sample config.txt file:
[port]
22071
[webroot]
C:\Intepub\wwwroot
[users]
guest
Name1 Password1
Name2 Password2
[smtp host]
quadbase.com
Under the [port] section you can set the port number for EspressManager to use. By default this number is set to 22071. You can also give an explicit IP address here for EspressManager to use instead of making EspressReport query the machine for the IP address. An explicit IP address can be given by adding the address after the port number. For example, changing
[port]
22071
to
[port]
22071, 204.147.182.31
will result in EspressManager always using that IP address when it starts. You can also specify multiple domains for EspressManager to use to establish a connection in the [port] section of the config.txt file. Domains are added after the IP address in the [port] section.
[port]
port number, ip address, domain1, domain2, ..., domain_n
The search sequence is the IP address, then domain_n through domain1.
Under the [users] section, each line consists of a user name and password. A default username = "guest" with password = "" is set up for you. You can remove this line if you like. Each name and password are separated by one or more spaces (so all user names and passwords should not have spaces within them).
Each development license allows only one concurrent user to be logged on. If you purchased more then one development license, then you can set up the development kits on separate machines, or set up concurrent users on a single machine.
*Note - There is no limit to the number of users who have login privileges to EspressManager. This license restriction applies only to the number of simultaneous users.
The [smtp host] section allows you to specify the smtp server name to be used when sending email notification or reports with the scheduler. For more information about using the scheduler, please see Chapter 13.
When EspressManager is started it will generate a configuration file called EspressManager.cfg in the directory in which it is started. This file contains the IP address and port number on which EspressManager is listening as defined in the config.txt file. When Report Designer is started, it will look for this file for connection information to EspressManager. If it can't find this file it will use the default IP of 127.0.0.1 (localhost) and port 22071.
Other EspressReport components, and applications/servlets/JSPs using the Report API will also, by default, look for the EspressManager.cfg file to make a connection to EspressManager. However, with the Report Viewer, Page Viewer, and Report API, you can explicitly set the IP and port that the component should use to connect to EspressManager. For more information about deploying EspressReport components, please see Chapter 7 of the Programming Guide.
2.2.1.1) Increasing maximum memory heap size for applets
All applets have a maximum memory heap size of 16 megs, by default. In Windows, this can be increased by going to Control Panel and selecting Java (or Java Plugin). Click on the "Java" tab and then "View" under "Java Applet Runtime Settings". Enter "-Xmx128M" (without the double quotes) under "Java Runtime Parameters" and click "OK".
Note that the above is applicable if a Sun 1.5 or 1.6 JVM has been installed. If a Sun 1.4 JVM has been installed, the "Java Runtime Parameters" option can be found under the "Advanced" tab.
Before Report Designer can be started, EspressManager must be running. In most installations, EspressManager should be started on the web server machine. It is possible to use EspressReport on a stand-alone machine, running both EspressManager, and Report Designer locally. In this case, the IP number assigned will be 127.0.0.1. This will create a log file, espressreport/EspressManager.log, which may be useful in monitoring usage as well as diagnosing problems. It is not necessary to install or start EspressManager on each Report Designer user machine.
To start EspressManager, run the EspressManager.bat or .sh file in the EspressReport root directory. (You can also execute the shortcut/alias for Windows or Mac). EspressManager will then start automatically with the default attributes.
You can also configure EspressManager with your own settings using several arguments that have been provided. The argument assumes the format of a dash '-' followed by a command set. No space is needed in each argument but at least one space is required to separate different arguments.
You can enter these arguments in the command line when starting EspressManager. You can also edit the espressmanager.bat/.sh file to add arguments, or you can enter the arguments in the ServerCommands.txt file in the /userdb/ directory of the EspressReport installation. Arguments in the text file are also picked up when EspressManager is started as a servlet process. For more on this please see section 2.3.2.
-help: When you type "-help", the server provides information on available arguments and the meaning of each argument. "-h" or "-?" can also be used to get the same on-line help information.
-log: When you type the "-log" argument, a log file is created and all the client/server network information is stored. An administrator may open the log file to evaluate the request of each user. The log is saved under the filename EspressManager.log.
-monitor:ON/OFF: When you specify the "-monitor" argument, the EspressManager monitor appears as graphic user interface that can be used to view status and change the EspressManager settings.

EspressManager Monitor
-runInBackground:ON/OFF: This argument allows you to specify whether to run EspressManager as a background process or not. Running as a background process eliminates user input for shut down, and allows EspressManager to be run from a script. To work properly this option should be used in conjunction with the "-monitor:OFF" argument. When running EspressManager this way, the only way to shut it down is to end the process.
-recordLimit:nn: This argument allows you to set a maximum limit for the number of records EspressManager will retrieve from a database when executing a query. Once the maximum is reached, EspressManager will stop running the query. This feature prevents users from retrieving more records than can be stored in memory, and prevents crashes due to out of memory errors.
-queryTimeout:sss: This argument allows you to sepcify a timeout interval in seconds for report queries. Once the query execution time pases the timout argument, EspressReport will abort the query. This feature prevents users from accidentally creating run-away queries.
-DBBuffer:nnn: If a database is being used as the data source for the report. You can choose to buffer both the database connection and the data used for the report using this argument. What this means is that if the DBBuffer is set to 0, then every time the report is built/run, then it will re-establish a connection to the database, and re-execute the query. However with the DBBuffer turned on, the connections and data will be stored in the cache. The number of connections and queries that will be stored, depends on the number specified in the DBBuffer argument from 0 to 999.
-DBCleanAll:ddhhmm: Data in the data source may be updated periodically. Therefore when the data buffer option is used (i.e., DBBuffer has a non-zero value), you may want to refresh the buffer to get the latest data. "-DBCleanAll:ddhhmm" argument can be used to indicate a time period after which data is to be flushed from the buffer and fetched from the data source. The value of ddhhmm means "dd" days, "hh" hours and "mm" minutes. EspressManager also supports the omitted format, meaning that it will translate the value with the assumption that the omitted digits are the higher digits. For Example:
"-DBCleanAll:101010" means clean buffer every 10 days, 10 hours and 10 minutes
"-DBCleanAll:1010" means clean buffer every 10 hours and 10 minutes
"-DBCleanAll:10" means clean buffer every 10 minutes
This argument is invalid if:
the "-DBBuffer" argument is set to 0 (i.e., no buffers)
the "-DBCleanAll" argument is set to 0 (i.e., always clean memory)
The refresh interval is printed when EspressManager is started.
-RequireLogin: This argument is used to apply security to Report Designer when it is launched via the API. Normally when Report Designer is called via the API there is no user authentication. This allows users to apply their own authentication to the programs, but can also allow unauthorized users access to the server. To prevent this, users can turn on this argument (values are true/false) to force authentication for Report Designer when it is called from the API With this argument turned on, everytime a QbReportDesigner object is displayed a correct username and password (defined in the config.txt file) must also be supplied via API method calls. For more information about calling Report Designer from the API, see section 3.5.8 of the Programming Guide.
-QbDesignerPassword: This argument allows you to set the password to use when the -RequireLogin argument is turned on. Instead of using a login from the config.txt file, you can set a specific password that must be supplied to the server via a method call when displaying a QbReportDesigner object. For more information about calling Report Designer from the API, see section 3.5.8 of the Programming Guide.
-ScheduleCallBackClass:classfile: This argument allows you to specify a class for the scheduler callback mechanism. This class gets called when a scheduled export is completed, or if the job fails. For more information about this feature, see section 4.8 of the Programming Guide.
-ListenerManagerClass:classfile: This argument allows you to specify a class for the scheduler listener mechanism. The listener returns a handle to a scheduled report before the schedule executes. For more information about this feature, see section 4.9 of the Programming Guide.
-PageCleanUpTime:ddhhmm: This argument allows you to specify a cleanup interval for the /pages/ directory in EspressReport. Files are generated in this directory when users invoke the page viewer component using a report template (.rpt) or a QbReport object. For more information about the page viewer, see Chapter 2 of the Programming Guide. The time arguments for this argument are the same as for the "-DBCleanAll" argument.
-MaxRecordInMemory:nnn: This argument allows you to set the maximum number of records that should be allowed in memory. Unlike the record limit which stops the query, this feature it will begin paging the data to temporary files on the system when the threshold is reached. The viewing/exporting of the report will continue, but the data will be read from the paging files. This feature prevents the system from running our of memory when running reports.
-MaxCharForRecordFile:nnn: This argument allows you to set the maximum characters allowed per field in the paging file that is generated when record file storage is invoked. Any characters in a record in the data that are longer than this argument will be truncated in the finished report.
-FileRecordBufferSize:nnn: This argument allows you to set the number of records that should be paged at a time when the record file storage is invoked. The size of the buffer effects preformance, the larger the buffer size, the faster the report is generated.
-globalFormat:xmlfile: This argument allows you to supply a global format XML file to set the default look and feel of report elements. Anytime a user elects to create a blank report, the format properties in this file will be applied. For this argument specify a file path to the XML file relative to EspressManager i.e. (-globalFormat:Templates/FormatFile.xml). For more information about the global formatting features, please see section 5.9.1.
-fontMapping:xmlfile: This argument allows you to supply a font mapping XML file to set the default font mapping for PDF export. Anytime a user creates a report, the system font mapping will be applied. For this argument specify a file path to the XML file relative to EspressManager i.e. (-fontMapping:Templates/FontFile.xml). For more information about the font mapping features, please see section 7.2.1.
-htmlDpi:nn: This argument allows you to hard-code the screen resolution that should be used when reports are exported to DHTML or HTML format. By default, the system resolution is used, however this can cause some discrepencies when reports are generated on a Linux or Unix server and viewed on a Windows client. Generally in these scenarios, setting the DPI to 96 (-htmlDpi:96) will produce a consistent export.
-singleTableForDistinctParamValue When you use "-singleTableForDistinctParamValue" argument, the parameter dialog for parameterized charts will be drawn differently. When you map the parameters to a database column, the distinct list will be drawn be running a select distinct on only the mapped field. The default behavior (without this argument) will use the joins and conditions in the original query to constrain the distinc parameter list. For more information about parameterized queries, see section 3.2.2.2.
-schedulerBuffer:nnn: This argument allows you to create a pool of Reports for the scheduler to use. This feature can be helpful when you have multiple schedule jobs that run the same report. Instead of re-loading the same report for each job, the jobs can use the report in the buffer. This improves the schedule execution time. For large numbers of simultaneous schedule jobs, best performance is obtained when the schedule buffer is set to the same size as the schedule thread limit.
-xmlEncoding:encoding: This argument allows you to specify the encoding that EspressReport should use when writing XML. This includes data registry files, XML report templates, XML exports, and XML global formatting, and font mapping files. This parameter needs to be set both in EspressManager and in Report Designer. For more information about XML encoding, see section 7.1.2.
-paperSize:LETTER/A4 Set this argument to define the default paper size. Note that you will need to set this parameter in the reportdesigner.bat/.sh as well.
If you're running on Mac OS X and you elected to create aliases when installing, you will need to modify the espressmanager.app package to to change the EspressManager settings. To do this righ-click (CTRL+Click) on espressmanager.app and select 'Show Package Contents' from the pop-up menu. Then navigate to the Contents folder where you will see a file called 'Info.plist'. Open this add the arguments to the "lax.command.line.args" argument under Java properties.
2.3.1.) EspressManager Configuration Interface
Many of the EspressManager configuartion features highlighted in the previous section can also be set using a stand-along EspressManager configuration interface provided with EspressReport. To launch the interface, make sure the EspressManager is not running, and execute the ManagerConfig.bat/.sh file. This will open the configuration window.

EspressManager Configuration Window
The following configuration options can be set in this interface:
For a description of all the options listed above, please see the previous section. In addition to the configuration options, users can also append EspressManager's CLASSPATH using this interface. Database drivers and other external classes can be added to EspressManager, by clicking the 'Insert' button and browsing to the desired file.
When you click Apply, changes to the configuration options will be saved to the ServerCommands.txt file, and the CLASSPATH changes will be saved to the EspressManager.bat/.sh file.
2.3.2.) Starting EspressManager as a Servlet
In addition to running as an application process, EspressManager can be run as a servlet within an application server/servlet runner. In this environment, EspressManager uses http to communicate with the client instead of sockets. The advantage to this configuration is that EspressManager can share the same port as the application server which makes it easier to deploy from behind firewalls. In addition, users can perform remote administration when running EspressManager this way.
To deploy EspressManager as a servlet, complete the following steps:
Copy the EspressManager.jsp, MenuError.jsp and /WebComponent/ directory under the application server root (or virtual directory) such that they are accessible via http
Copy the contents of the EspressReport/classes directory and make the classes available via a servlet context.
Copy the QuadbaseDirectory.cfg file from the EspressReport installation directory to the working directory of the application server. To find out the working directory, run whatIsMyWorkingDirectory from the servlet context where you copied the EspressManager servlet classes. The servlet will print the working directory path in your browser when it is called.
Re-start the application server.
Once all these steps have been completed, you should be able to load the EspressManager page, by pointing your Web browser to the EspressManager.jsp page that should be available in your application server as explained in step 1.

EspressManager JSP Monitor
With this page loaded, click the 'Start' button to start EspressManager. Once it is started, you can set/modify the buffer settings, and shut it down again from this window. With EspressManager running, you can close this window. It will continue to run, untill you call the JSP again and shut it down.
When running EspressManager as a servlet, all of the components that connect to EspressManager need to be modified to take this into account. This includes Report Designer, Scheduler, Report Viewer, Page Viewer, and any application/servlet/JSP using the Report API. For more information about EspressReport deployment, please see Chapter 7 of the Programming Guide.
2.3.2.1) Deploying EspressManager as a servlet in Tomcat 4.x
The following section explains how to setup and run EspressManager as a servlet in Tomcat 4.x. The steps are the same as those mentioned in the previous section. This example assumes you are running Tomcat locally (IP 127.0.0.1) over port 8080. If your configuration is different, simply replace the IP and port in these instructions with those that you are using.
Create a directory named "EspressReport" under your Tomcat root (<Tomcat installation directory>/webapps/ROOT). Copy the EspressManager.jsp, MenuError.jsp files, and the /Web_Component/ directory from your EspressReport installation (<EspressReport Installation Directory>) to the new /EspressReport/ directory under the Tomcat root.
Copy the contents of the <EspressReport Installation Directory>/classes directory to the <Tomcat Installation Directory>/webapps/ROOT/WEB-INF/classes directory. You will need to make sure that the invoker isn't commented out from the <Tomcat Installation Directory>/conf/web.xml file. (This is commented out by default in Tomcat, and doesn't allow the "/servlet/" context to be available). For more information about the Tomcat invoker servlet, please see section 4.1 of the Quick Start Guide.
Copy the QuadbaseDirectory.cfg file from the EspressReport directory to the <Tomcat Installation Directory>/bin directory. (Generally this is the working directory for Tomcat. However, if you start Tomcat in another location the working directory may be different. To check your working directory open your Web browser, and with Tomcat running type "http://127.0.0.1:8080/servlet/whatIsMyWorkingDirectory". This servlet will display the path to the working directory.) If your working directory is something other then /bin/, place the QuadbaseDirectory.cfg file there.
Add the EspressManager.jar file (under <EspressReport Installation Directory>/lib) to Tomcat's CLASSPATH. Generally this is done by editing the setclasspath.bat or .sh file in the <Tomcat Install Directory>/bin directory.
Restart your Tomcat server.
Now EspressManager should be deployed correctly. To start EspressManager, open your Web browser and go to the following address: "http://127.0.0.1:8080/EspressReport/EspressManager.jsp". The Monitor will load, and you can start EspressManager by clicking the 'Start' button.
2.4.) Starting Report Designer
Stand-Alone: If you're running Report Designer locally, first start the EspressManager by executing the espressmanager.bat or .sh file, then execute the reportdesigner.bat or .sh file. (You can also execute the shortcuts/aliases for Windows or Mac). A dialog box will appear prompting you to log on to EspressManager. If you haven't modified the users in the config.txt file enter 'guest' as the user name with no password. Then click 'Start Report Designer'. This will launch the application.

Report Designer Login Window
Browser: If you're running Report Designer remotely, make sure EspressManager is running on the remote machine then type the URL for EspressReport in your browser i.e. http://machinename/espressreport/index.html. The page will contain a dialog prompting you to log on to EspressManager. If you haven't modified the users in the config.txt file enter 'guest' as the user name with no password. Then click 'Start Report Designer'. This will launch the application in a new window.
*Note - Because EspressReport requires JDK 1.2 or higher, you will need to download the Java plug-in in order to run Report Designer through a browser. Also, the applet in the index.html page is configured to run on a Windows client. If you're running the applet on another platform, you will need to modify the HTML source of the page. In the HTML source there are two applets, one is commented out. To run on a non-Windows client, comment out the first applet, and un-comment the second.
2.4.1.) Connecting Report Designer to EspressManager Running as a Servlet
If EspressManager is running as a servlet as described in section 2.3.1, you will need to make some modifications before Report Designer can be started successfully.
Stand-Alone: If you're running Report Designer from the .bat or .sh file, you will need to modify the file to indicate that EspressReport is running as a servlet, and to point to the location of the EspressManager servlet. To do this add the following argument to the .bat or .sh file -servlet:http://IP Address:Port/Context. For example
-servlet:http://127.0.0.1:8080/servlet would indicate that the EspressManager is running on localhost, port 8080 in the "/servlet/" context.
Browser: If you're running Report Designer through an applet that's connecting to EspressManager running as a servlet, you will need to modify the HTML source of the index.html start-up page. The following parameter tags need to be added within the applet:
<PARAM NAME="comm_protocol" VALUE="servlet">
<PARAM NAME="comm_url" VALUE="http://127.0.0.1:8080">
<PARAM NAME="servlet_context" VALUE="servlet">
The first parameter indicates that EspressManager is running as a servlet. The second is the IP address and port number that the application server is using, and the third is the servlet context under which EspressManager is deployed.