Create iReport Templates with Subreports

From IMSMA Wiki
Revision as of 19:02, 23 October 2012 by JMU (talk | contribs) (Created page with "==Advanced Reports== ===Sub-Report=== <p>Sub-report is reports within a report; thus, providing a way to generate a report that includes data on the target IMSMA Item as well ...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Advanced Reports

Sub-Report

Sub-report is reports within a report; thus, providing a way to generate a report that includes data on the target IMSMA Item as well as data on other IMSMA Items that are associated to the target IMSMA Item. Generally a sub-report is used in a situation where you have one or more sets of data relating to a single IMSMA item. A common use case would be a Location report with multiple details bands of different IMSMA items (Hazard, Hazard Reduction, Accident, Victim, MRE, and QC).

Regardless of what IMSMA data you’re including in your report and sub-reports, there are 6 basic steps to create a report with sub-reports:

Step 1 – Create the Main report
Step 2 – Add Sub-report to the Main report
Step 3 – Add Parameter to the Sub-report
Step 4 – Define Report Query for the Sub-report
Step 5 – Add Sub-report Parameter to the Main report
Step 6 – Repeat Step 2-5 for additional Sub-reports

Step 1 – Create the Main Report

Before creating the main report, you will need to determine what data to be included on your report. For example, if you are creating a report about Hazard with all the Progress Report data, then the target IMSMA item for your main report should be Hazard and the target data for your sub-report should be Hazard Reduction assuming that Progress Reports are entered into the system as Hazard Reduction. Below is a list of questions and things to be considered when designing a report.

  • What are all the data to be included on the report?
  • What is the target IMSMA Item for the Main report? This is the primary data of your report.
  • What is the target IMSMA Item for the sub-reports? This is the secondary data of your report.
  • Determine the relationship between the primary data and the secondary data. How did they get reconciled to one another?

The Main report should be created with the IMSMA item determined to be the primary data of your report. The Main report is just a basic report and can be created using the steps provided in the “Creating a Basic Report” section. Below are the instructions:

    1. Create your main report with the IMSMA item determined as the primary data of your report. This is just a basic report.
    2. Save your main report
    3. Compile your main report to make sure that it’s error-free.

Step 2 – Add Sub-report to the Main report

Sub-report is reports within a report. As mentioned earlier, a sub-report should be created with the IMSMA Item determined as the secondary data of the report. Below is the instructions to create a sub-report:

  1. Increase the size of Detail section of the Main report to make room for your sub-report.
  2. View -> Bands -> detail -> increase the Band Height -> Apply
  3. Click the File:IRepBand.png button
  4. Click the detail section of the report. Hold down the mouse button and drag the cursor to create a rectangle to define the area of sub-report. Release the botton and the window below displays.
  1. Click Next to define a new sub-report unless you have an existing report that you would like to use for sub-report.
  2. Select from the Connection/Data Source list. This should be the IMSMA item determined as the secondary data of your report. For example, if you are creating a report about Hazard with Progress Reports, then “Hazard Reduction” should be the data source for the sub-report. Click Next.
  3. Select the attributes to be included in your sub-report. Click Next.
  4. Select the layout option. Click Next.
  5. Enter a name for the sub-report. Click Finish. The sub-report displays.

Step 3 – Add Parameter to Sub-report

To connect a sub-report to the Main report, we need to create a parameter for passing the identification (guid) of the primary IMSMA Item between the sub-report and the main report. Below is the instructions to create the parameter you need for the sub-report:

  1. At the Sub-report window, select View -> Parameters.
    The window displays the parameters.

Figure 9. Window of fields, variables, and parameters

  1. Click the New button.
  2. The Add/modify parameter window displays.
  3. From the Add/modify parameter window:
    • Enter “object_guid” for the Parameter Name where object_guid is the suggested parameter name in the Column D of the Table - Required Parameters for Sub-report below.
    • Click the OK button.
  4. Close the window that displays the list of all parameters.

Step 4 – Define Report Query for Sub-report

The next step is to create a report query for the sub-report you just created in Step 2 to define how the IMSMA item on the Main report is related to the IMSMA item on the Sub-report. Below is the instructions on how to define the Report Query:

  1. At the Sub-report window, select Data -> Report Query.
  2. The Report query window displays.
  3. From the Report query window:
    1. Select ImsmaQuery from the Query language list.
    2. Enter object.guid = “$P{object_guid}” for the ImsmaQuery where object is the object type of the IMSMA item on the Main report - See Column E in the Table - Required Parameters for Sub-report below to determine the ImsmaQuery string for your Sub-report.

Figure 10. Define Report Query for Sub-report

    1. Click OK.
    2. The Report query window closes.
    3. Click the File:IRepCompile.png button to compile the sub-report.

Step 5 – Add Subreport Parameter to Main Report

We created a parameter on the sub-report to connect to the Main report in Step 3, now we need to create a parameter on the Main report as well. Below is the instructions to create the parameter you need for the Main report:

  1. Make sure you are at the Main report by selecting the name of the Main report from the Window menu or double-clicking the Main report from the Files pane.
  2. Double-click the sub-report box within the Main report.
  3. A window displays four tabs (Common, Sub-report, Sub-report (Other), and All).
  4. Select the Sub-report (Other) tab. Click Add.
  5. From the Add/modify parameter window:
    1. Enter “$P{object_guid}” for the Sub-report Parameter Name field where object_guid is the parameter name you created in Step 3 for the Sub-report. See Column B in the Table – Required Parameters for Sub-report below to determine the parameter name.
    2. In the Default Value Expression field, enter $F{guid}.
    3. Click OK and close the windowthe four tabs.

Step 6 – Repeat Step 2-5 for additional sub-reports.

You can have multiple sub-reports in one Main report. To add more sub-reports to the Main report, just repeat Step 2 to Step 5.

Once you have all the sub-reports created for your Main report, you can compile and run your Main report.

Below is the table listing typical parameters required for both Main report and Sub-report.

A B C D E F
If your Main report is Sub-report parameter on Main report Your Sub-report can be… Parameter on Sub-report Report Query defined on Sub-report Comments
Location location_guid Hazard,

Hazard Reduction, Accident, Victim, MRE, or QC

location_guid location.guid = "$P{location_guid}" Relationship is defined as “New” to a Location during the reconciliation.
Hazard, Hazard Reduction,

Accident, Victim, MRE, or QC

object_guid Hazard, Hazard Reduction,

Accident, Victim, MRE, or QC

object_guid links.toGuid = "$P{ object_guid}" Relationship is defined using “Link” during the reconciliation.
MRE mre_guid MRE Detail mre_guid mre.guid = "$P{mre_guid}" Relationship is defined as “New” to a MRE during the reconciliation.
Hazard Reduction hazreduc_guid Impact survey,

Interviewee, Sector, or Vegetation removal

hazreduc_guid hazreduc.guid = "$P{hazreduc_guid}" Relationship is defined as “New” to a Hazard Reduction during the reconciliation.
Interviewee interviewee_guid Question interviewee_guid interviewee.guid = “$P{ interviewee_guid}” Relationship persisted automatically when Questions are entered for each Interviewee at Field Report.
Sector sector_guid Sample sector_guid sector.guid=”$P{sector_guid}” Relationship persisted automatically when Samples are entered for each Sector at Field Report.
Victim victim_guid Received MREs victim_guid victim.guid = "$P{victim_guid}" Relationship is defined as “New” to a Victim during the reconciliation.
Task task_guid Work Item task_guid task.guid = "$P{ task_guid}" Relationship is defined when adding a new Work Item to a Task at the Task Editor Window.

The following section of the Advance Reports chapter discusses relationships between Items in IMSMA and also provides instructions on how to create a specific report/sub-reports.