IFS Report Studio - Designer¶
Concepts¶
IFS Report Studio - Designer is a web-based tool that is specifically designed to create operational reports such as order confirmations, purchase orders, invoices, etc. This fully functional client-side reporting tool allows users to seamlessly create, modify, and design their reports. The IFS Report Studio produces Report Studio - Designer layouts in REP format. These layouts rely on data that is stored in JSON format, and each report is provided with its own JSON data source. The core report generation and logic are located on the server side, while the web interface is used for user interaction and design configuration.
The IFS Report Studio - Designer uses a multi-tiered architecture with distinct layers that collaborate seamlessly to deliver the report design and generation experience:
-
Presentation Layer:
The Presentation Layer is the user interface (UI) that users interact with directly. It is typically built using web technologies such as HTML, CSS, and JavaScript to render the design controls, toolbox, properties pane, and report preview area within the web browser. ASP.NET Core is being utilized to structure the web application and manage user interaction with the server-side components.
-
Business Logic Layer:
This layer is located on the server and it encapsulates the core functionalities of the designer. These include report definition management, layout management, expression evaluation, and rendering and exporting.
- Report definition management: The report definition management feature enables the loading, saving, and manipulation of report definitions that are typically stored in the *.rep format on the server.
-
Layout management: Layout management involves handling the positioning, sizing, and hierarchy of report elements.
-
Expression evaluation: Expression evaluation processes and evaluates expressions used within the report to perform calculations and manipulate data.
-
Rendering and exporting: rendering and exporting generates reports in PDF format on the server and then transmits them back to the browser for viewing or download.
-
Data Access Layer:
This layer facilitates communication with JSON data sources used in reports. Data access typically occurs on the server side, ensuring centralized data management and isolation of sensitive data from the client environment.
The interaction between these layers, orchestrates the report design and generation process as follows:
-
User Interaction: Users can manipulate the web interface by adding controls and adjusting layouts using their web browser.
-
Web Application Framework: The web application framework is responsible for converting user interactions into requests that are sent to the server-side components.
-
Business Logic Layer: When a user sends a request to the server, the server interprets the request within the business logic layer and executes the appropriate actions. For example, if a user wants to add a control, the server updates the report definition (.rep) and modifies the design displayed on the web UI.
-
Data Access: The data access layer communicates with the business logic layer by utilizing data providers to extract data from the designated server-side data source.
-
Expression Engine: Expressions in the report are evaluated by the server-side expression engine to perform calculations and manipulate data.
-
Rendering Engine: When users preview or generate the report, the server-side rendering engine interprets the report definition, data (if applicable), and user preferences (e.g., export format) and generates the final report output. The report is then sent back to the web browser for viewing or download.
To understand How to design layouts using the IFS Report Studio please read more about Create Reports.