Optimizing a paginated report with complicated expressions and several sub-reports can be done by implementing the following best practices:
1. Optimize Data Retrieval
Reduce dataset size by filtering the source data using SQL queries or stored procedures.
Use pre-aggregated tables instead of dynamically calculating aggregates in the report itself.
2. Minimize Use of Sub-Reports
Instead of using sub-reports, use table joins or lookup functions (LOOKUP, LOOKUPSET) when possible to minimize rendering times.
If sub-reports are required, cache the results using shared datasets.
3. Optimize Expressions and Report Layout
Minimize the complex IIF and SWITCH statements in expressions by shifting logic into the database.
Unwanted visibility toggles or changing dynamic columns are unqualified features and reduce rendering speeds.
Pagination should limit records to pages.