I. Description
After the report is fetched, the designer will expand, group, list, and summarize the data returned by the database. Good template making habits can often optimize the calculation time of the report.
II. Solution
1. Blank cell application
In the report, as long as a cell has a setting, it will occupy a memory, while a blank cell almost does not occupy any memory. Due to the layout requirements, there will inevitably appear some cells that only play a role as a placeholder without other settings; try to set these cells as blank cells, which can effectively reduce the memory usage and speed up the report Computing speed.

2. Use hidden ranks with caution
In order to perform some complex calculations in the report, hidden rows and columns are often used to process the intermediate calculations, and the cells used in these hidden rows and columns often only have one or two grids. At this time, the hidden rows and columns are not used. If the cell is set, it will waste additional memory. Therefore, it is recommended to set useless cells as blank cells to reduce memory usage and speed up report calculations.
3.Use merged cells with caution
In reports, merged cells are often used. All attributes of merged cells are stored in the upper-left grid, and other merged cells in the merged area do not save any attributes or occupy memory.
Although the application of merging cells can reduce memory, the operation of merging cells involves active and passive relationships between multiple cells, so the operation is more complicated, which will reduce the operation speed. Therefore, we recommend using merged cells with caution, and try to set useless cells as blank cells.
4. Conditional attributes of the same effect
When the cells in the same row (column) need to set the conditional properties of the same effect, you only need to set the conditional properties in a cell in the row (column), which can speed up the calculation of the report. As shown in the figure below, when you need to hide a row, you only need to set the conditional attributes in one cell, not every cell.

5. Basic attribute settings of data columns with the same effect
In the report making process, when we drag the fields in the data set into the cells, Data Column>Basic>Data Settings,The fastest calculation in (grouping, list, summary) is the list. If there are two setting methods when making a schedule, the result is the same.
Setting method 1: The OrderID column data is set as a list, and the data setting of the other data columns that follow its expansion still adopts the default setting (that is, the group is normal).

Setting method 2: Set the OrderID column data to a list, and modify the data settings of other data columns that follow its expansion to a list.

The data display results of the above two design methods are the same, but the calculation speed of the report is different; the report calculation speed of the second method is obviously faster than the first one.
This is because when the data column is set to group, the report will perform a grouping and aggregation calculation on the retrieved data, regardless of whether the data is repeated. Therefore, for those that can achieve the same effect, the data column attribute should be set as a list first.
6. Parent cell settings
The most important idea for designing reports in FineReport is the expansion of data columns, and which cell expansion to follow is a question that must be paid attention to. Therefore, the setting of the parent cell is very important. Improper parent cell settings will affect the calculation speed of the report, and even lead to incorrect results. In addition, the height of the parent-child hierarchy tree also affects report performance, so try to reduce the height of the parent-child hierarchy tree. As for the template below:

Note: Set the data display mode of all cells to list display.
Setting method 1: The parent cell of Paid or not is Freight. The parent cell of Freight is ShipVia. The parent cell of ShipVia is RequiredDate. The parent cell of RequiredDate is OrderDate. The parent cell of OrderDate is CustomerID. The parent cell of CustomerID is OrderID. The parent-child cell hierarchy tree are 6 levels.
Setting method 2: The parent cell of Paid or not, Freight , ShipVia, RequiredDate, OrderDate and CustomerID is OrderID, and the parent-child cell level is one level .
The data display results of the above two design methods are the same, but the calculation speed of the report is different; the report calculation speed of the second method is obviously faster than the first one.
7. Cancel automatic adjustment of row height or column width
If the automatic adjustment of column width has been set, the width or height of the data in the cell will be calculated before the report is displayed, which increases the calculation time of the report, so try to cancel the automatic adjustment of row height or column width.Select the cell, select Cell Attributes-other in the list on the right and set it No Automatic Adjustment , as shown below:

8. Optimize filter conditions
Check whether the filter conditions are repeatedly set in the template, and delete the redundant filter conditions, that is, if the data column comes from the same data set, just set the filter condition in the leftmost parent cell and check the parent cell as the filter condition (the default is checked ).