Reportive Studio includes two computing engines. The first one is integrated with table and chart generation elements - it adapts the input data to provide what is required to build these elements. This engine uses an In-Memory technology that makes it very easy to manipulate data and to adapt it to the needs of the rendering elements. This flexibility provides an unparalleled wealth to exploit these elements on an ad-hoc basis in order to analyze your data.
This first engine was designed as early as 1992 and has been greatly improved in order to meet advanced reporting needs. Over time, volumes of data to be analyzed have increased, driving Reportive to design a new type of engine based on the Data Pipelining technology in order to handle very large volumes of data on standard desktop configurations.
This technology adjusts the amount of data to load into memory depending on the hardware and on the memory available on the machine. It is possible to process several hundreds of millions of lines of data on standard desktop computers without the need to set up a server. The 64-bit version of the computation engine fully exploits all available memory on modern machines or on corporate servers.
This technology also uses all the cores of the machine to make the most of the available power. To minimize the disk space occupied by the calculations, compilers have been developed to group calculations and to generate only the outputs of these groups, virtualizing intermediate steps.

In the case of the above component, executing the component generates the "OLE Data" data source and the two flows corresponding to the two output ports of the component. All flows internal to the component are virtualized and are not saved to disk.
To process your data (cleanup, indicator calculations...), Reportive Studio offers a number of basic elements that can be combined to create your own specialized calculation components:
-
Elements that are specific to the design phase. When you are working in "Design" mode, these elements filter the data so as to speed up the development and modification of the project. When the project is run in "Production" mode, these elements are bypassed and all of the data is processed.
-
Calculation components (aggregation, filter, dynamic filter, formula, join, sort), as well as some more advanced elements (time complete, transposition, "Wizard")...
-
Advanced components: data Slicer, conditional switch...
You can use these elements to implement your business rules and reuse them in other projects in your workspace or share them with other users through libraries.
Liste of calculation elements

The simple join interface allows you to enrich you data quickly by combining datasets. New types of joins (strict joins) allow you to control data consistency, but also block the production if one source of data does not have the desired consistency.
The combination of ETL functions with the error function can implement any type of data control based on your projects' requirements.
Reportive Studio includes a ForEach iterator that iterates on combinations of data. This feature makes it possible for instance to generate and send data/reports customized according to various criteria (user's name, his company, the data he has ordered, the requested type of data or rendering...).
With the preparation of composite objects in mind, some specific components are provided to match your needs precisely. For example, you can use an "Aggregate" element to specify which aggregation axes you want to keep, while the element "Aggregate by remove" specifies which axes should be discarded during aggregation.
Reportive Studio also integrates export elements that can generate standard data formats for third-party tools. This includes exporting data in Reportive Dataset format (compressed, protected), generating text files with a wide range of settings (encoding, separators...), or inserting data into databases (BulkInsert for Microsoft SQLServer).
The open architecture also means that any type of export or business calculation can be created.

Data Mapping
Data Mapping is a unique feature that allows calculation components to adapt to another context. All elements declare which data is required for the processing to work properly. For instance, a component that calculates "Last month's top n sellers" will require the following axes in the input dataset: Sellers, Date, Turnover and the value of parameter "n". This component can then be published and reused to calculate "Last month's top 5 sellers" or even "Last month's top 10 best-selling products".
This feature means a great flexibility as it allows the project to adapt to new data. For instance, if the previous dataset used axis "Country", and the new data source uses axis "Pays", using the data mapping feature will correct the whole project - and avoids having to edit and correct all the elements.
Properties are also an important feature of Reportive Studio. Each element can publish properties (constants) that can be changed for each instance, allowing the element to adapt to the current context.

Properties
Users can decide to fill in the constant (in the example to the left, a value of 1000 for property "Top N"), or decide to publish the parameter on the "parent container". This container is usually a group, a composite object or the project itself. Users are offered a greater flexibility in customizing component behaviour.
Another feature is the transformation of the property to display it on the property port of the element. We can then dynamically calculate its value and fill in the value for the component/composite object with information derived from the processing.
Customization can be applied to each property individually and at all levels (component, group, composite object).
The project in turn contains configuration variables and to define different behaviours in "Design" and "Production" modes (for example, changing the database server name or the output directory).