Introduction to the Row-based Engine

  • Last update:January 22, 2026
  • Overview

    Version

    Report Server Version

    11.0

    Function Description

    iconNote:

    1. The row-based engine applies to reports with large amounts of data and simple structures. Before enabling the row-based engine, refer to the second section of this document to confirm whether the row-based engine can be enabled in the report environment.

    If the row-based engine cannot be enabled, refer to the third section of this document to select a suitable alternative solution.

    2. By default, the row-based engine is not enabled for FineReport reports.

    FineReport supports enabling the row-based engine: fetching data by page to execute reports, which can greatly shorten report execution time and improve user experience. The following figure shows the effect.

    General reports: The system fetches all data first, then executes a report, and finally returns the overall report result to the browser. (Duration from user access initiation to successful loading of the template homepage = Data fetching time + Report execution time)

    Reports with the row-based engine enabled: The system fetches data and executes a report simultaneously. A user cannot view a page until the page is executed. (Duration from user access initiation to successful loading of the template homepage = Time to fetch the homepage data + Time to calculate the homepage data)

    1.2 功能简介.png

    Usage Limit

    If a user encounters the following limits while using the row-based engine, the user can refer to the third section of this document to use other suitable pagination solutions.

    Data Source Limit

    The row-based engine applies only to single-dataset reports. For multi-dataset reports, even if the row-based engine is enabled, the data cannot be displayed in the pagination mode.

    Database Limit

    Data fetching by page with the row-based engine applies only to Oracle, MySQL, HSQL, and SQL Server (2012 and later versions) databases.

    iconNote:

    SQL Server 2012 and later versions support the row-based engine, but order by must be written into the SQL statement.

    Report Feature Limit

    Since the row-based engine fetches data and executes a report simultaneously, the calculations on each page must be independent; that is, the report cannot have complex calculations involving cell associations.

    To improve the performance of the row-based engine, the following complex functions are unavailable for FineReport reports with the row-based engine enabled:

    • Cell filtering and cell field summation

    • Repetition/Freezing

    • Row height, column width, hyperlinks, pagination after rows, display, and widget settings in condition attributes

    • Settings of all attributes except vertical expansion in cell attributes

    • Floating elements, hierarchical coordinates, row/column split, and calculation across multiple sheets

    • Chart display and sub-reports

    • Cell values for content prompts and formulas used in custom settings

    • Pagination export by sheet to Excel

    • Result set filtering for data columns

    • Parameter passing using $$$

    • Storage procedure

    • Grouped display of reports in the pagination preview mode

    • Pagination by fixed row quantity in the data entry preview mode

    iconNote:
    After the row-based engine is enabled, the grouping effect in the pagination preview mode will be abnormal.

    2.3 报表特性限制.png

    Example Index

    This section provides the following solutions to achieve backend pagination calculation, improving the report preview speed. Users can select a solution as required.

    Application Scenario
    Solution

    The row-based engine is enabled for a single-dataset report that uses a database supported by the row-based engine.

    Refer to Executing Layered Reports with the Row-based Engine Enabled to enable the row-based engine.

    The row-based engine is enabled for a single-dataset report that uses a database unsupported by the row-based engine.

    (1) Manually write pagination SQL statements first.

    iconNote:
    Pagination SQL statements must be written in pagination preview mode.

    For details, see Layered Reports by Pagination SQL Statements in a Single Dataset Template.

    (2) Enable the row-based engine.

    For details, see Executing Layered Reports with the Row-based Engine Enabled.

    Pagination query is implemented in a multi-dataset template.

    (1) Use the sequence numbers of rows in the database itself or use the database functions to generate the sequence numbers of rows (namely, row numbers).

    (2) Use the page number parameter in the where condition to display data within a specific row number range, and click the custom previous page and next page buttons to re-pass the page number parameter for retrieving the corresponding data.

    For details, see Layered Reports in a Multi-Dataset Template.

    The row-based engine cannot meet the user requirements.

    You can try to use the new calculation engine:

    • Most mainstream JDBC data sources are supported.

    • Pagination query is supported in multi-data source scenarios.

    • Fewer limits are imposed on report features.

    For details, see Introduction to the New Calculation Engine.

    Attachment List


    Theme: Performance Optimization
    • Helpful
    • Not helpful
    • Only read

    滑鼠選中內容,快速回饋問題

    滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。

    不再提示

    10s後關閉

    Get
    Help
    Online Support
    Professional technical support is provided to quickly help you solve problems.
    Online support is available from 9:00-12:00 and 13:30-17:30 on weekdays.
    Page Feedback
    You can provide suggestions and feedback for the current web page.
    Pre-Sales Consultation
    Business Consultation
    Business: international@fanruan.com
    Support: support@fanruan.com
    Page Feedback
    *Problem Type
    Cannot be empty
    Problem Description
    0/1000
    Cannot be empty

    Submitted successfully

    Network busy