Overview
FineReport designer and server can already meet most business requirements. However, some customized requirements cannot be implemented out of the box and therefore require secondary development.
FineReport provides backend APIs for application developers to perform advanced development and customization. Before using these APIs, you should first understand the FineReport architecture, as shown in the following figure.

FineReport reports have two basic forms: templates and results. A workbook or report that has not been processed by the report engine is a template, while the processed report is referred to as a result.
Creating a new workbook in the designer creates a WorkBook object, which acts as a container. A WorkBook can contain any number of WorkSheet objects, just like multiple sheets in a workbook. Each WorkSheet object consists of any number of CellElement objects, making the CellElement object the smallest element of a report template. Therefore, before operating on a CellElement object, you must first obtain the corresponding WorkSheet object from the WorkBook object.
After understanding the architecture above, you can directly modify and configure report templates through the backend APIs.
For example, after obtaining a CellElement object, you can configure its foreground, background, border, font, font size, and other properties. You can also add or delete cells in each WorkSheet object, configure page properties for each WorkSheet object, add floating chart elements, execute a WorkBook object to generate report results, export reports in various formats, print reports, add toolbars, and more.
This chapter provides commonly used backend APIs and examples that you can use to meet your development requirements, as shown in the following figure.

Note:The FineReport APIs described in this document are not compatible with FineBI.
Index
Report Data Sources
FineReport designer provides multiple types of data sources, including database, text, and XML data sources. In addition, developers can generate data through Java programs. As long as the AbstractTableData abstract class is implemented, the FineReport engine can read user-defined data sources. For details, see Class Data Source.
Report Invocation
In your application, you can create a report object or directly load a CPT template. After creating or loading the report, you can configure various properties, including cell properties, web properties, parameters, and page settings. You can also customize cell display styles and toolbar buttons. The processed report can be exported in multiple formats or saved as a web report that can be accessed directly through a browser. For details, see Program Web Report.
Custom Functions
FineReport provides a large number of built-in functions to meet most report requirements. However, some business scenarios require custom functions. For such cases, FineReport provides a custom function mechanism that allows you to define functions based on your business requirements. For details, see Custom Functions.