Developing Reports from Hierarchical Data Sources
Hierarchical data sources can only be used to create page reports. When you use hierarchical data sources to create reports, you need to be aware of its limitations and unique features. For example, reports created from an HDS are automatically grouped, and an HDS cannot be directly used to create charts and crosstabs. That is to say, if you want to create a chart or crosstab from an HDS, you will need to put it in a banded object, which is created on the HDS, and make the chart/crosstab inherit the dataset of the banded object.
This topic contains two examples about developing reports from HDS:
- Example 1: Developing a Report from an HDS with Dynamic XML URI
- Example 2: Developing a Report from a Parallel HDS
- Make sure SampleReports.cat is the currently open catalog file. If not select File > Open Catalog to open it from
- In the Catalog Manager, expand the data source to which to add the HDS.
- Right-click the Parameters node and select New Parameter from the shortcut menu.
- In the New Parameter dialog, enter a name for the parameter, choose String as the Value Type, and in the Prompt Values box, type in the URI of the XML file from which you HDS will be imported (for details, see Creating a Parameter).
- Right-click the data source node in the Catalog Manager, and then select New XML Hierarchical Data Source.
- In the New XML Hierarchical Data Source dialog, type @ParameterName in the XML URI box. For example, if you named the parameter in step 2 as XML_URI, here you should enter @XML_URI. In the XSD URI box, specify the URI of the corresponding XSD file. Select OK to add the HDS.
- Create a page report with the imported HDS. When you view the report, enter the URI of the XML file which matches the XSD file in the parameter. The report then shows the corresponding data.
You can also use another way to develop report with dynamic XML URI as explained below:
- In the Catalog Manager, import an XML HDS with an XSD file, and then create a report with the imported HDS.
- Create a parameter using the above method.
- In the Catalog Manager, go to the node of the imported HDS, expand the Properties sheet, and then change the property URI to @ParameterName.
- Now you can view the report with dynamic XML file.
Data in a parallel HDS is organized in a tree structure, which contains branches and leaves. Among these branches, there are some parallel branch nodes that split the trunk of the data source tree into deeper and more complex branches. The following is a figure illustrating the parallel HDS structure.
A leaf in parallel HDS refers to a column (DBField), nodes that contain no sub-nodes.
A branch in parallel HDS is a special table that contains leaves or sub-branches.
- Parallel branches
If the contents of two branches have no parental relationships, these branches are called parallel branches.
The way of using a parallel HDS is the same as with general HDS in Logi JReport Designer. However you should take note of the following when building reports from parallel HDSs.
Groups in parallel HDS
When you insert a group-by field, its children will also be inserted.
The parallel structure in the parallel HDS is represented as groups in Logi JReport Designer, so when you develop a report from a parallel HDS, it will automatically be grouped. By default, Logi JReport Designer will use the first found field as the group-by field. Note that you can neither add a new group-by field nor remove the group-by fields that are automatically added. However, if there is more than one field available to with which to group the sub-tables, you can replace the group-by field with one of the other available fields.
Rules for inserting an object
- Objects in different branches should be placed in the banded object panel they belong to. That is, a banded object panel cannot hold objects which belong to different branches.
- The children of a branch, including the columns, formulas, summaries, sub-branches, and children of the sub-branches, can be inserted into any of their parent panels. If the parent panel is shared by more than one branch, that is, if the parent panel works as a trunk (global panel), it can be shared by the children of all the branches it holds. However, note that each instance of a panel, such as a report/page/group header/footer panel, and detail panel, can only hold the children from the same branch. If you want to insert the children of different branches into the shared global panel, you will have to create as many instances of this panel as per the number of branches, and then insert the children of each branch into these panels.
- Where a formula/summary can be inserted depends on the branch attributes of the formula/summary. Generally speaking, when a formula/summary creates relationships with a column, it will obtain the same branch attributes as those of the related column, and it can be placed in the panels where the column can be placed.
A global formula, which is not associated with any branch columns, can be placed to any position of the report.
- When you remove a branch using the report wizard, the related panel will also be removed.
- A chart based on a field can only be placed in its own panels, which include most of the global panels, except for the detail panel.
- A crosstab must be built upon data of the same branch, and it should be placed in the location where the branch data resides.
- Where a text box object can be inserted depends on the branch attributes of the columns (formulas/summaries) that it contains. A text box object can hold only the data of the same branch.
- Since reports created from HDS are automatically grouped, in the Group screen of the banded wizard, you can neither add more groups by fields nor remove the existing ones. However, you can make changes to the existing group criteria. For example, you can replace a group-by field with another one.
- When you want to publish reports created from XML format hierarchical data sources to Logi JReport Server, the following method is recommended:
- In the Catalog Manager, select the HDS that is used by the report from the Hierarchical node, and then expand the Properties sheet.
- Change the URI property of the HDS to a relative path, for example, leaving only the name of the XML file.
- Create a new folder, and copy the report, the catalog, the XML file and the XSD file (if any) to the newly created folder.
- Select File > Publish > Publish to Server to publish the folder (for details, see Publishing resources remotely).
- Start Logi JReport Server. You will now be able to run the report on it.