Cached query results

By default, when you run a report, JReport Engine fetches data from the database using the JDBC driver. For reports that are built on queries (and imported SQL files, stored procedures and UDSs which function as queries), JReport Designer enables you to create cached result files and save them somewhere in your machine. Then, when you view these reports, you can choose to use the data from the cached query result file as opposed to the database. This is very useful for working on the design of a report while you are off-line and do not have a DBMS connection. Additionally, it is helpful when you need to send data and reports to Jinfonet Support for assistance.

Creating a cached query result

JReport Designer provides you with two ways to create cached query results, the first is with the Catalog Browser panel and the second is with the Resource View panel.

Using a cached query result to run a report

By setting the Data Driver property appropriately, you can make a report run using cached query result. However, for web reports, in order to make the property shown in the Report Inspector, you need to add the parameter -pd to the file JReport.bat which is located in <install_root>\bin as follows before starting JReport Designer:

Set CLASSPATH=%REPORTHOME%\lib\SwingDesigner.jar;%REPORTHOME%\lib\report.jar;%REPORTHOME%\lib\resource.jar;%REPORTHOME%\lib\JREngine.jar;%REPORTHOME%\lib\JRResultViewer.jar;%REPORTHOME%\lib\*;%REPORTHOME%;%ADDCLASSPATH%"%JAVAHOME%\bin\java.exe" -Xms40m -Xmx512m "-Dinstall.root=%REPORTHOME%" -classpath "%CLASSPATH%" -Dreporthome="%REPORTHOME%" -Djreport.url.encoding="UTF-8" com.jinfonet.designer.JReport -pd %1 %2 %3 %4 %5 %6 %7 %8 %9

To make a page report or web report run using cached query result:

  1. Open the report, in the Report Inspector, click the Up button on the Report Inspector toolbar to reveal the higher levels of the report structure.

    Note: This step is required for both page reports and web reports when -pd is added. For page reports when -pd is not added, ignore the step.

  2. Find the Datasets node, then select a dataset used in the report and specify its Data Driver property in the Properties panel as follows:

    jrquery:/jet.universe.resultfile.UResultFileResultSet;Full path of the cached query result

    For example, if the cached query result has been saved to C:\JReport\Designer\Cached with the file name test, the property value should be jrquery:/jet.universe.resultfile.UResultFileResultSet;C:\JReport\Designer\Cached\test

  3. Repeat the above step to set the Data Driver property for other datasets the report uses.

  4. Click the View tab to view the report. You will now see that the report data has been retrieved from the cached query result file.

To make a library component run using cached query result:

  1. Open the library component, in the Report Inspector, select the node that represents the dataset used by the library component under the Data Source node (the node name is LCDataSource when -pd is added) in the report structure tree.
  2. Specify the Data Driver property in the Properties panel in the above format.

    The following images show where the Data Driver property is:

    Image 1: without -pd

    Image 2: with -pd

Note: If you check the option "Use cached query result" in the Catalog category of the Options dialog, whenever you view a report, a dialog will prompt you to choose a cached query result to run the report.

Managing cached query results

You may find it inconvenient to input a property value that is long and complicated. To help you with this, JReport Designer provides a tool for managing your cached query results, the Data Source Driver Manager.

Assume that a cached query result file orderstat_cached for the query OrderStat in the catalog file SampleReports.cat has been created and saved in C:\JReport\Designer\Cached. To use the Data Source Driver Manager, follow the steps below:

  1. Click File > Catalog Management > Open Catalog in JReport Designer.
  2. In the Open Catalog File dialog, select to open the catalog file SampleReports.cat.
  3. In the Catalog Browser, click the Data Source Driver Manager button on the toolbar to open the Data Source Driver Manager dialog. See the dialog.
  4. Click the Add button, and the Data Source Editor dialog appears. See the dialog.
  5. Input a name for the driver in the Driver Name box. Here, we name it OrderStat.
  6. Check the URL radio button and input the URL as follows:

    jrquery:/jet.universe.resultfile.UResultFileResultSet;Full path of the cached query result

    In the example, the URL is jrquery:/jet.universe.resultfile.UResultFileResultSet;C:\JReport\Designer\Cached\orderstat_cached

    Note: If you check the Driver radio button to specify the driver, you will need to input the class name and parameter of the driver as follows:
    • Class Name: jet.universe.resultfile.UResultFileResultSet
    • Parameter: Full path of the cached query result (C:\JReport\Designer\Cached\orderstat_cached in this example)

    Then, a URL will be generated according to your input information.

  7. Click OK to add the driver to the Data Source Driver Manager.
  8. Repeat the above steps to add more drivers to the manager.
  9. In the Data Source Driver Manager dialog, all the added drivers will be listed in the Data Source Driver Manager box. If you want to remove a driver, select the driver and click the Remove button. To edit a driver, select the driver and click the Edit button.
  10. Click OK to close the dialog.

Upon running a report using a cached query result, you can choose an appropriate driver from the Data Driver property's drop-down list directly without inputting the long value manually.