3.5.7.) Exporting the Report

EspressReport API has the capability to export reports in a variety of formats.  These include PDF, HTML, DHTML, TXT, and CSV formats etc.  In addition, any charts included in the report can be exported into JPEG, GIF, and PNG formats as well; although by default, the charts in the report are exported as JPEG's.  The format for the chart can be changed, when creating the ReportChartObject object, by specifying the image type (use the method setImageType(int)).

A report may also be exported to the proprietary RPT format.  An RPT file stores all information except actual data.  The RPT file can then be used to construct a report object.  For an RPT file, the data is automatically loaded from the original data source at the time the report object is constructed. (Note RPT files can be directly viewed using a Report Viewer applet.)

To export the report, use the following method

In the above method, format is one of the format constants listed below and filename is the output filename (with or without an extension).

The following list shows the format constants available for exporting the report components

In addition, any charts included in the report can be exported to one of the following image formats (format given with its corresponding constant):

The following code, which can be run as an applet or application, shows how to construct and export a report:

Full Source Code
Report Template
Chart Template
Exported Results

Please note that when you export the report to a text file, the default delimiter is a tab space.  However, you can set another delimiter (available delimiters are ",", ";" and " ") by using the following code:

When exporting the report to an Excel or Excel 2007 file, you can also set a method so that each numeric value only occupies one cell.  This may be helpful if the end user intends to use Excel functions on the exported report.  To use this feature, set the following method to true before exporting the report.

You can also export the QbReport object to a byte array using the method

This will give the .rpt equivalent in the form of a byte array.  This is useful if you need to serialize the QbReport object.  Please note that you will still need to specify the directories for any Sub-Reports, Drill Down and/or charts (if you are not using EspressManager) when recreating the QbReport object from the byte array.

3.5.7.1.) Multiple Page Exporting

You can also export the report into several "pages", instead of a single "page" i.e., the report can be exported to various files and then shown piecemeal.  This option is only available for HTML, DHTML and XML (Data + Format) export.

The following code is used to export the report into multiple files:

When using this option, several files are generated (the number of files generated is equal to the number of pages in the report).  The first file has the same name as the filename specified in the export method.  The subsequent files have the corresponding page number attached at the end of the filename, with the file containing the last page having "LAST" in the filename instead of the page number.  For example, if a 3 page report is exported to "SalesSummary".  The resulting files that are created are SalesSummary.html (contains the first page), SalesSummary_2.html (contains the second page) and SalesSummary_LAST.html (contains the last page)

You can also export a specific page at a time (instead of the complete report) and export the page to a specific file.  This is done using the method:

For example, to export page 3 of a report into the html file "ThirdPage", the following code is used:

Note that you can pass in "-1" (without the double quotes) as the argument for the pageNumber to export the last page.  You also do not need to setExportToMultiPages to true in order to export a specific page.

3.5.7.2.) Memory Optimized Exporting

During export, all the data is buffered in memory.  This may result in insufficient memory if extremely large reports are being exported.  To avoid such errors, you can use memory optimized exporting.  Here blocks of data are fetched from the database and then exported before more blocks are being fetched again.

There are certain conditions that have to be met before you can use this feature.  You must:

To use memory optimized export, the following code must be added:

Memory optimized exporting cannot be used for exporting to XML.

3.5.7.3.) PDF Exporting Options

In certain constructors of the QbReport class, the parameters "userPass", "ownerPass", and "permissions" are available.  These parameters are used to set the user password, owner password, and permissions for the user of the PDF document, respectively.  All permissions will be granted to the owner of the PDF document (who uses the owner password to open the PDF document) while only the specified permissions in the permissions argument will be available to the user (who uses the user password to open the PDF document).  Please refer to the EspressReport Java API Documentation for more detail about exporting to PDF with options.

The export method that sets PDF options is listed here for the reader's convenience.

Additionally, you can also pass embed java scripts in the PDF export so that when the PDF content is streamed to a client browser, the java script is run.  The following method allows java script to be embedded to a PDF content

For example, the following method sets the PDF to automatically print when viewed in a client browser.

The above call would export the report as PDF content (with all permissions) to a stream (someOutputStream) passing data to a client browser.  When the PDF is loaded on the client browser, the javascript is automatically run (which in this case, tells the browser to print the content).

3.5.7.4.) Exporting HTML/DHTML Content with Style Sheets

You can specify a style sheet to be used while exporting the report to DHTML or HTML format.  You can specify an internal style sheet or an external style sheet before exporting the report.

To export the report using an internal style sheet, you would use the following method in QbReport:

To export the report using an external style sheet, you first need to specify the style to be used for the specified ReportElement object using the following method in ReportElement:

You then specify the name of the external style sheet file using the following method in QbReport:

For example, the following code:

will set the first column of the report to use style_1 from the specified style sheet file (in this case, it is http://someMachine/someDirectory/styles.css).

3.5.7.5.) HTML Block Export

You can export reports as a block of HTML code rather than a complete HTML file.  This allows for custom content to be added to the generated HTML report.

The code given below:

generates the report as an HTML/DHTML table when the report is exported.  This block can then be included in another page with more content than just the report.

3.5.7.6.) Custom Links for Multi-page DHTML/HTML Export

You can also create your own links at the top of the page or remove links generated at the top of the pages for single page and multi page exports.  This allows custom links to be added to both HTML and DHTML reports.

Custom links can be generated by implementing IHTMLLinksProvider IHTMLLinksProvider interface.  For example, the code below, which can be run as an application or an applet, demonstrates creating custom links:

Full Source Code
Template
Exported Results

Similarly other links can be generated and set to the report.

3.5.7.7.) Setting the Pixels Per Inch Ratio for DHTML/HTML Export

EspressReport allows a "pixels per inch" ratio to be specified while exporting HTML or DHTML content.  This is especially useful when you are moving and deploying reports between platforms or when exporting reports in a system without any graphics.  You can specify the ratio using the following method in QbReport:

3.5.7.8.) Pre-load charts

EspressReport allows charts with independent data sources to be pre-loaded before the report is exported.  The pre-loading is simultaneous, so it improves export performance (especially if there are multiple charts in the report).  You can specify to pre-load the charts by calling the following method before exporting the report:

3.5.7.9.) IExportThreadListener for .view files

Reports can be exported to .view files.  These files are used by Page Viewer to show the report a few pages at a time (as opposed to loading the entire report in Report Viewer).  Exporting to .view files is similiar to exporting to multiple pages in that the one export method results in multiple pages (the more the number of pages in the report, the more files that are generated).  However, Page Viewer cannot be started unless the .view file is generated (the pages of the report are generated as .page files).  EspressReport provides an interface, IExportThreadListener, which you can implement to perform actions when the first page is exported and when the export is completed.

Given below is an example using the IExportThreadListener:

Full Source Code
Template

3.5.7.10.) Virtual Memory / Paging

In addition to memory optimized exporting, EspressReport also has a paging feature to handle large amounts of data.  With paging, you specify the amount of memory and a temp directory.  When the amount of memory used exceeds the number specified, the data is compacted and then stored on disk in the temp directory specified.

The feature works with or without EspressManager.  However, if using the EspressManager, it is recommended to use the same option values in both the client code and the EspressManager. 

To use memory paging export, the following code must be added before calling the QbReport constructor:

Max Field Size: This argument specifies the expected maximum field size for large field types such as varchars.  Fields that are larger than this value are not necessarily truncated.  The behavior depends on the current memory usage in relation to the Total Paging Buffer Size allowed.  As the amount of available memory decreases the amount of data stored for these large fields will decrease until it reaches this value.  For example, a user is running a report with a field size that is larger than the specified Max Field Size value.  When the server is not busy and there is ample memory available, the report will generate the full field without any truncation.  However, when the server is heavily loaded and the available memory is near 0, the field in the report will be truncated to the Max Field Size.  For numeric, boolean, date, time, and character datatypes, the data will never be truncated.  For those database fields that are defined with a size limit smaller than the Max Field Size (e.g. Max Field Size = 500, but the field is defined as varchar(20)), the database limit will be used in place of the Max Field Size.  This value is set in Bytes.

Paging Threshold: This property specifies when the paging feature will be activated.  Once this threshold is reached, the server will begin paging the data to temporary files on the system.  If this argument is set to "-1" then data will never be paged.  This value is independent of Page Buffer Size option.  If this value is larger than the Page Buffer Size, then the system will not begin paging until the threshold is reached, therefore each report or chart might use more memory than the amount specified in the Page Buffer Size.  This value is set in Megabytes and the default is -1.

Paging Buffer Size: This argument allows you to set the amount of memory that each report or chart will use when the paging feature is invoked.  The size of the buffer affects performance.  The larger the buffer size, the faster the report or chart is generated, but more memory is used.  When the amount of total memory used by the paging system approaches the Total Paging Buffer Size, the amount of memory provided to new reports will begin to diminish in order to avoid exceeding the specified total amount.  This value is set in Megabytes

Total Paging Buffer Size: This argument allows you to set the total amount of memory used by the paging feature across all reports and charts.  The memory allocated to each report will diminish as the memory usage approaches this value.  This value is set in Megabytes.

3.5.7.11.) Streaming Reports

In addition to exporting to local drives, reports can also be exported as a byte stream and streamed directly to a web browser.  However, in order for charts, Drill Downs, and parameters to function correctly, this export method requires that several support servlets be available.  The three servlets that does this are RPTImageGenerator, DrillDownReportServlet, and ParamReportGeneratorServlet, and they are located in the <EspressReport>/WEB-INF/classes/ directory.  The three files must be copied to the servlet directory of your servlet runner.  Use the following code to connect to the servlets. 

These methods sees to it that any call to these servlets are pointing to the correct machine and port.  The servlets get called using the URL, http://<MachineName:>:<Port:>/<ServletDirectory:>/<Servlet:>.  You must set dynamic export when streaming your report, but setting the servlet directory is optional.  If you do not specify which servlet directory to use, it will be automatically set to "servlet/".

Given below is an example that exports a report to DHTML and streams it to the browser.  In order to run the example, you will need to configure, and compile the source code, then deploy the class file in the servlet directory of your servlet runner.  Replace the reportTemplate variable with either an absolute path or a path relative to the working directory of your application server.  Remember that the working directory is usually not the same as the servlet directory.  In addition, make sure to add ReportAPIWithChart.jar and qblicense.jar to the classpath of your application server.  Both jar files can be found in <EspressReport>/lib/.

Full Source Code
Template

To run the example, make sure to copy the report templates to the location accessed by the code.  If using a relative path (as shown in the example), remember that the current directory is the working directory of your application server.  For example, since the working directory in Tomcat is <Tomcat>/bin, you will need to create the directory <Tomcat>/templates/ and copy the report templates there to run the code.  The resulting report is shown below.


Streaming Report

3.5.7.11.1.) RPTImageGenerator

The RPTImageGenerator is used when you export reports containing charts or BLOB images to either HTML or DHTML format.  HTML and DHTML files are purely textual, therefore charts and images must be stored separately.  When you export a report locally, the chart is stored as an image file and the file path is appended to the IMG tag of the HTML page.

Similarly, when you stream the HTML/DHTML file, only the textual component is sent to the browser.  Charts are handled in the RPTImageGenerator servlet.  Instead of pointing the IMG tag to the image file, the tag is set to the RPTImageGenerator servlet and appends the ID of the chart image as a parameters.

Reports containing images that are stored locally, do not require the servlet.  The IMG source will point directly to the image file.  However, images retrieved from the datasource (BLOBs) are treated similar to charts and does require the aid of the RPTImageGenerator servlet.

3.5.7.11.2.) DrillDownReportServlet

Regardless if you are exporting the report to a byte stream or to a file, reports with Drill Downs require that the DrillDownReportServlet be accessible in order to function properly.  When you export Drill Down reports to either HTML, DHTML, or PDF format, you must have DrillDownReportServlet in the servlet directory of your servlet runner.  This servlet provides the link to the next level. 

Since Drill Down levels must contain a parameterized query, you need to make sure that the ParamReportGeneratorServlet is in the servlet directory as well.  More information on the ParamReportGeneratorServlet are available in the next several sections.

If you export the report to HTML or DHTML, the column linked to the DrillDown report will display as a hypertext link.  In PDF format, the linked column will not look any different from the others, however when you hover the mouse over that column, the cursor will change to a hand.


Root Level

Depending on the link clicked, the servlet delivers the appropriate next level report.


The Drill Down Level

Note that Drill Down reports exported to formats other than HTML, DHTML, or PDF will only show the current level.

Full Source Code
Template (PAK File)

3.5.7.11.3.) Generating HTML Parameter Page

When streaming the report, a powerful alternative to setting parameter values using the API (discussed in section 3.5.1.4.) is to use an automatically generated HTML form that contains text or selection inputs.  After the user submits the form, the parameter values are passed to the ParamReportGeneratorServlet that processes them and streams back a report initialized with these parameter values.

The main classes for this purpose are ParameterPage, ParameterPageWriter, HtmlParameterPageWriter, and CssHtmlParameterPageWriter. The typical method of generating the HTML Parameter Page involves the following code:

Full Source Code
Template

When you use the above functionality, you must have the ParamReportGeneratorServlet in the servlet directory of your servlet runner.  This servlet generates the report in the specified format using the parameters specified in the HTML page.

When you run the example, the following page is automatically generated:


Generated Parameter Page

Depending on the values you select, clicking on the submit button may result in the following report:


Parameterized Report

Although it is convenient to automatically generate the entire parameter page, there are times when you want more control over the appearance of the page.  One way to achieve this is to only generate the main form, allowing you to design the contents around the main form to provide your own look and feel.  Another way is to use CSS to set the desired format.  A third way is to generate each component within the form individually giving you control over every element on the page.  These various methods are discussed in greater detail in the next two sections.

3.5.7.11.4.) Utilizing Cascading Style Sheets (CSS)

Two powerful ways to alter the HTML parameter page are to add content around the form and to utilize cascading style sheets.  These methods allow you to maintain a consistent look and feel to your web application without the necessity to write an excessive amount of code.

The example below shows how these methods can be used to present the parameter page using your predefined colors, fonts, style, and format.  In order to run this example, you need to modify the template path.  Keep in mind that if you use a relative path, it will be relative to the working directory of your application server.  You will also be required to copy the CSS file to the root directory of your web application so that it can be accessible by the CSS link in the code (alternatively, you can position the CSS file elsewhere and modify the link).  The examples require that both ParamReportGeneratorServlet and DrillDownReportServlet be available in the servlet directory since the example includes a Drill Down report.

Full Source Code
Template (PAK File)
CSS File

In the above segment of code, the <HEAD> is written manually so that a title can be inserted.  In the body section, only the form is generated.  Using this method, users can add titles, images, and other components to maintain their own look and feel.  Depending on the CSS file provided, the result might look like this.



Parameter Page using CSS

Depending on the parameter options you select, the result may look like the following.


Example Results

3.5.7.11.5.) Customizing the Parameter Page

Another way to customize the parameter page is to write a java class that extends HtmlParameterPageWriter or CssHtmlParameterPageWriter.  This approach gives you access to the protected methods available in these classes.  For information on the full set of methods available in these classes, please see the APIDocs.

The following is an example extending the HtmlParameterPageWriter class.  To run this example, you will need to copy the two html pages to the root directory of your application server.  The template and java class files must be copied to the working directory and servlet directory of your application server respectively.  The example also requires that ParamReportGeneratorServlet and DrillDownReportServlet be placed in the servlet directory.

Full Source Code
Template (PAK File)
HTML Frameset
HTML Main Pane

Notice that by using the protected methods, you are required to add a number of details in your code, such as FORM tags and hidden parameters.  However, this also grants your the ability to add other elements such as company logos into the form section of the page and arrange the elements to your preference.  This approach also allows you to eliminate certain elements from the page such as the reset button. 

Once the files have been copied to the correct locations, you can run the example by entering the following url in your browser: http://<IP Address/localhost>:<Port>/API_3_5_7_11_5_CustomParamPage.html.  You will see a page with two frames.  The top frame is the parameter page and the bottom frame initially displays a simple message.  To view the report enter the full name of a customer (e.g. Francis Polk).


Order History Report

This example exports to PDF instead of DHTML.  Although there are no links displayed in PDF format, if you hover the mouse over the Order ID column, you'll see that the mouse pointer turns into a hand alerting you that you can Drill Down from this column.  Depending on the Order ID you selected, the follow report may be shown.


Order History Detail (Drill Down)

3.5.8.) Calling Report Designer from Report API

Report Designer can be called from Report API in either an application or an applet.  Depending on the code, you can pass in parameters to open up Report Designer with a specified .rpt file or a specified data source or other parameters.

To call Report Designer from Report API, you must:

Depending on the -RequireLogin and -QbDesignerPassword flags for EspressManager, you may need to pass in a userid and/or password to connect to EspressManager.  If the -RequireLogin flag is set for EspressManager, you need to add the following line of code before calling setVisible() or any getDesigner methods:

If the -QbDesignerPassword is specified for EspressManager, you will need to add the following line of code before calling setVisible() or any getDesigner methods:

You can also specify a look and feel to Report Designer (Report Designer will use the system's look and feel by default).  This is done by using the following method in QbReportDesigner:

Given below are the different ways Report Designer can be called via Report API.  Note that if you are running the example code as an applet, you need to change the EspressManager machine from "127.0.0.1" (or "localhost") to the EspressManager machine's name or IP address.

3.5.8.1.) Specify a Report Template

You can open Report Designer with a specified report template file.  This allows the end users to create their own custom reports in Report Designer GUI and then view the finished report.

The following constructor is used:

Given below is an example of calling Report Designer with a specified .rpt file:

Full Source Code
Template File
Run as Applet (Must use HTTP protocol)
Exported Results

Note that the above code can be used as both an application and an applet.  The above code also changes the Save functionality in Report Designer so that the .rpt file is always saved in the temp directory.

When the user runs this code, the report designer is launched with the report template you specified.


Report Designer with Template

The user can then customize the report and save the results.


End User Customization

You can also specify the registry to use when running the above code.  This is achieved by adding in the following line of code before setting the designer visible:

The above line specifies the Report Designer to use Data_Registry.xml as the Data Registry when choosing the data sources for a new report.

3.5.8.2.) Specify a Data Registry

You can open Report Designer and have it starting with a Data Source Manager (with a specified .xml file for the Data Registry).  This allows the end users to choose the data source and create their own custom reports in Report Designer GUI and then view the finished report.

The following constructor is used:

Given below is an example of calling Report Designer with a specified .xml file:

Full Source Code
Run as Applet (Must use HTTP protocol)

Note that the above code can be used as both an application and an applet.

You can also control what the user does at the Data Registry by enabling or disabling the options available.  For example, you can remove complete or parts of data sources in the Data Registry and you can disable the options for adding, copying, editing and deleting of data sources.  Note that the nodes are not hidden; they are removed.  So when the Data Registry is opened (without any restrictions), the contents of the nodes, that were removed, are lost.  You can create a backup of the Data Registry .xml file and use the backup to enable/disable options.

Given below is an example of calling Report Designer with a specified data registry and setting it up so that only the database data sources are available and no queries or data views can be added.

Full Source Code
Run as Applet (Must use HTTP protocol)

Note that the above code can be used as both an application and an applet.

3.5.8.3.) Specify a DBInfo Object (Database Information)

You can open Report Designer and have it starting at the "Select Report Type" wizard window (with a specified DBInfo object).  This allows the end users to create their own custom reports in Report Designer GUI and then view the finished report.

The following constructor is used:

Given below is an example of calling Report Designer with a specified DBInfo object:

Full Source Code
Run as Applet (Must use HTTP protocol)

Note that the above code can be used as both an application and an applet.

3.5.8.4.) Open Query Builder with a Specified DBInfo Object (Database Information)

You can open Query Builder with a specified DBInfo object.  This allows the end users to create their own custom SQL queries in Query Builder GUI and save them.

Given below is an example of calling Query Builder with a specified DBInfo object:

Full Source Code
Run as Applet (Must use HTTP protocol)

Note that the above code can be used as both an application and an applet.

You can also open Query Builder by passing in the database connection (schema) as a java object, rather than as a DBInfo object.  Given below is an example of calling Query Builder by passing in the schema information:

Full Source Code
Run as Applet (Must use HTTP protocol)

Note that the above code can be used as both an application and an applet.

3.5.8.5.) Open Report Designer with a Specific Class File Data Source

You can open Report Designer with a specified class file data source.  This allows the end users to create their own custom reports in Report Designer GUI and then view the finished reports.  The class file data source can be non-parameterized or parameterized.

The following constructor is used:

Given below is an example of calling Report Designer with a specified class file data source:

Full Source Code
Parameterized Class File Source Code
Run as Applet (Must use HTTP protocol)

For more information on creating your custom class file data source, see Appendix B.5.

3.5.8.6.) Open Report Designer with Custom Functions

You can also include your own functions with the Formula and Scripts dialog boxes that users can use when calling Report Designer from the API.  You can in effect create functions that handle complex computations and allow any user to use that same function in Report Designer.

Given below is an example code that shows you how to customize Report Designer by assigning custom functions to the Formulas and Scripts dialog boxes.  The code takes in a number and converts it to an IP address by appending the number at the end of 192.168.0.

Full Source Code
Report Template
Run as Applet (Must use HTTP protocol)

Note that the above code can be used as both an application and an applet.

The cell containing the function will initially display as "Null" since the function is not part of the core set.  However, the function will compute correctly when previewing the data.  The value will then be shown correctly thereafter.

3.5.8.7.) Open Report Designer with Pre-set Directories

You can also set the directories that reports load from and save to.  This feature will restrict users from navigating to any level above the specified directory, giving you the ability to control which files the user is able to see. 

Given below is an example that shows you how to customize Report Designer by specifying different directories for the load folder and the save folder:

Full Source Code
Run as Applet (Must use HTTP protocol)

Note that the above code can be used as both an application and an applet.  Also in the above example, you can choose Save As and specify a directory to save the .rpt file.  However, the .rpt file will always be saved in the temp directory.

In addition to the above approach, you can also use the following method to get the default directories used by Report Designer:

You can then use the methods in BrowseDirectories to get the default location of the directories for the different browse dialogs.

3.5.8.8.) Open Report Designer with Modified Menubar and Toolbar

You can also add items to the menu and remove items from the toolbar.  Given below is an example illustrating that:

Full Source Code
Report Template
Run as Applet (Must use HTTP protocol)

Note that the above code can be used as both an application and an applet.

3.5.8.9.) Open Report Designer with Skipped Wizard Steps

You can open Report Designer with some of the Wizard Steps skipped.  Simply call the following functions to skip the 'query result', 'multiple data source', and 'pre-defined templates' steps:

3.5.8.10.) Open Report Designer with Customized Messages and Chart Designer

You can open Report Designer with customized warnings when navigating between Sub-Reports and Drill Down report.  In addition, you can also override the default Save As behavior for the Report Designer.  The following example demonstrates ways to alter these various components.  The example has been broken down into fragments to make it easier to read.  The full source code can be found at the end of this section. 

The above portion of the code modifies the warning message that is shown when adding a Sub-Report or a Drill Down level.  It also calls setReportIO, setByPassSaveAsIO, and setChartDesignerHandle to by pass the Save As dialogs (details are discussed below).  The code also removes the Save As option from the menu bar in Report Designer.

The above fragment implements the IReportIO interface.  By setting the ReportIO in the previous code fragment, Report Designer will call the saveFile method here when the user tries to save the report.  The file is passed to this method as a byte array and the filename as a string.  This method creates an output stream using the filename and writes the report byte array to that stream.

When you by pass the Save As option, the saveFile method from the previous code fragment will obtain the filename from the getFileName method in the above class.  Here we are simplifying the process by hardcoding the name of the file.  Typically, you will want to manipulate the filenames so that users do not overwrite each other's files.  The getSaveAsProperties method returns a Properties instance containing any save options.  Possible options include: CREATE_STL, SAVE_ALL_DATA, CREATE_HTML, USE_SWINGVIEWER, CREATE_XML, CREATE_PACK, and USE_PAGEVIEWER.  Here, we choose to not use any.

Full Source Code
Run as Applet (Must use HTTP protocol)

The above three classes makes the same changes to the chart designer side.  The ChartDesignerHandler class removes the Save As option from the menu bar.  The ChartIO class saves the file given the filename and byte array.  And the ByPassSaveAsForChart class sets a fixed filename for the chart.

3.5.9.) Changing Report/Page Viewer Options

At times, you may want to configure what users can or cannot do when they are viewing the report using the Report Viewer or Page Viewer.

When the user is using the Viewers to view the report, right-clicking on the report causes a menu to pop up.   Using this menu, the user can navigate through different pages of the report, as well as performing other tasks on the report, such as exporting it as a DHTML or PDF file.  This can easily be done using the Report Viewer and Page Viewer APIs.  However, these powerful features of the report viewer can be too complicated or overly confusing for the average user.  Therefore, a few API methods have been introduced to control what options are available in the pop-up menu of the Report/Page Viewer.

These API calls are:

For more detailed information on these API methods, please consult the APIDocs.

3.6.) Javadoc

Javadoc for the entire API is provided along with EspressReport.  The API covers both Report and Charting API.  It is located in the <EspressReport>/help/apidocs directory.

3.7.) Swing Version

1.1 JFC/Swing versions of Report API are also available.  For more details, please refer to quadbase.reportdesigner.ReportViewer.swing package.

3.8.) Summary

The EspressReport API provides an easy-to-use, yet powerful application programming interface for business applications.  Combined with Report Designer, programming is as simple as adding one line of code to your applet.  All of the attributes of a report may be set in a template file, which can be created with the Report Designer.  The EspressReport API has been tested with Netscape's Communicator (4.06 and above), Microsoft's Internet Explorer (4.x and above), and Sun's Appletviewer (1.2 and above) on the Windows 95, Windows NT/2000/XP, Solaris, Linux, AIX and HP platforms.