## 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.

- To create a cached query result file in the Catalog Browser panel:
  1. In the Data tab of the Catalog Browser, select the data object for which you intend to create the cached query result file.
  2. Right-click the data object, and select Create Cached Query Result from the shortcut menu.
  3. In the Save Cached Query Result dialog, specify the file name with or without an extension and the folder to where you want to save the result file.
  4. Click OK and the cached query result file will be saved to the specified folder.
- To create a cached query result file in the Resource View panel:
  1. Open a report, in the Resource View panel, right-click the query on which the report is built and select Create Cached Query Result from the shortcut menu.
  2. In the Save Cached Query Result dialog, specify the file name with or without an extension and the folder to where you want to save the result file and then click OK.

### 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_en_US.jar;%REPORTHOME%\lib\JREngine.jar;%REPORTHOME%\lib\JRResultViewer.jar;%REPORTHOME%\lib\*;%REPORTHOME%;%ADDCLASSPATH%"%JAVAHOME%\bin\java.exe" -Xms40m -Xmx1024m "-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.

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.