I. Description
In practical applications, in addition to the standardized organizational structure, there are also non-standard organizational structures. The following figure uses two examples to show the difference between these two organization trees:
1) Standard organizational structure: Except for the last layer, all other layers have sub-layers. For example, the data of the company departmenttable in FRDemo with its own data connection;
2) Irregular organizational structure: some hierarchical structures have sub-layers under them, and some hierarchical structures have no sub-layers under them, that is, the hierarchical structure is uncertain. For example, a company’s corporate structure includes headquarters, human resources, marketing, etc. Under the human resources department, there is also a human resources department, and a human resources department. The specific employees are under the human resources department, and the specific employees are directly under the marketing department. .
Figure 1: Standardized organizational structure
Figure 2: Irregular organizational structure
Use an irregular organization structure to construct an organization tree report. If it is still implemented by the Organization tree sample, the situation shown in the figure above will appear, that is, the sub-layers of the hierarchy without sub-layer data will be blank.
So how to make the level data without sub-level data merge and display all the level cells below it? The effect as shown below:
II. Ideas
To realize that the level data without sub-level data is merged to display all the level cells below it, the level cell of the structure without sub-level data is merged downward (horizontal expansion downwards, vertical expansion to the right) to the last layer; Drag the data column of this level to make the cell expand all the data of the corresponding level; add filter conditions at the same time, if it has sub-layers, the data will be filtered out, displayed as blank, and then the blank row or column will be hidden. Taking the horizontal organization tree as an example, if the organization structure has three layers, the specific thinking steps are as follows:
1) Realize the standard organization tree: design three rows according to the standard organization structure, and realize that the three rows represent three layers respectively; hide the columns without sub-layers through conditional attributes;
2) Merge cells: adding a second column means that the second layer has no sub-layers. The cells in the second and third rows of the second column are merged, and the merged cells are dragged into the corresponding second layer; the left cell is used as the cell The upper parent cell of the cell; the first column and the second column of the upper cell are merged;
3) Conditional attributes: After merging the cells, all the second layers are obtained. You need to add conditional attributes to the merged cells in the second column, and only display the second layer without sublayers.
III. Example
1. Data preparation
Create a new built-in dataset ds1, one of the second-level structures in the built-in data set has no sub-layers. As shown below:
2. Making a template to implement a standardized organization tree
Since the data prepared above is an irregular organization structure, we implement the organization tree according to the method in the Organization tree sample, that is, without using the tree data set, the template effect is as shown in the figure below:
A1, A2 and A3 are all horizontally expanded, and the cell settings are as follows:
Cell | Filter condition | Shape setting |
---|---|---|
A1 | parentnode==NULL | Actual Value:id Display Value:name |
A2 | parentnode==A1 | Actual Value:id Display Value:name |
A3 | parentnode==A2 | Actual Value:id Display Value:name |
Note: When adding a filter condition, you need to remove the check before the parent grid as the filter condition, as shown in the figure below for the filter condition of cell A2:
Please refer to the Data Dictionary for details on cell shape settings.
Save the template at this time, and you can see the effect as shown in the figure below. The hierarchical structure without sub-layers does not merge cells, and the sub-layer cells are still there, but no data is displayed:
Note: If you use the tree dataset, please refer to Organization tree by tree dataset
Hide columns without sub-layers through Conditional Formatting: use conditional formattingISNULL($$$) for A2 and A3, as shown in the figure below:
The effect is as follows:
3. Merge cells
It can be seen from the renderings that the hierarchical structure without the lower layer is hidden by the conditions, and columns need to be added to display, and the layer is merged with the cells of the lower layer.
Since FineReport does not support automatic merging of cells, it can only be merged manually. The cells of the second layer of data are in the second row, and the last layer is in the third row.
So add column B, merge the cells behind A2 to the third row, that is, merge cells B2 and B3, drag the ID column to expand horizontally; set the upper parent cell A2, and filter only the second level structure; set its shape It is: the actual value is the name field of ds1; cell A1 is the first layer of data, so it needs to be displayed on all the data, and cells A1 and B1 need to be merged. The result is as follows:
Cell | Expansion Direction | Shape setting |
---|---|---|
B2 | Horizontal expansion | Actual Value:id Display Value:name |
The preview effect is as follows (each second layer is followed by a merged cell, and the corresponding level data is displayed):
4. Conditional formatting
In the above renderings, the added column shows all the second layers, and the ones with sub-layers are also displayed. By setting the condition attribute to the B2 cell, the columns with sub-layers will be hidden, REVERSE(ISNULL(A3)):
The effect is as follows:
5. Other settings
The effect achieved in the above figure is the table header, and then drag the data corresponding to the list header (untis data column) to the fourth row cell, as shown in the following figure:
6. More levels of organizational structure
If the organizational structure has 4 layers, then the template style is as shown in the figure below. More layers of organizational structure, similar to the design and implementation.
IV. Effect preview
1. Preview on PC
2. Mobile
1) App
2) H5
V. Completed template
To view the effect of the template online, please click Irregular Organization Tree Report.cpt
For the completed template, please refer to %FR_HOME%\webroot\WEB-INF\reportlets\doc-EN\ReportApplication\
BasicApplication\Irregular organization tree.cpt