Dear friends, we continue our series of articles on optimizing reports. Last time we talked about the basics of optimizing directly when creating reports. As for advice for advanced, experienced users of our software products, today we offer a few suggestions to help you avoid unnecessary costs.

As in the previous article, we divided the optimization into two main categories: increasing the speed of rendering reports and reducing memory used for generating reports . So, let’s get started:

Avoid using the Sub-Report component

To speed up report rendering, we recommend you stop using sub-reports in favor of using the DataBand component. The main reason for this recommendation is that, when rendering the Sub-Report, one page of infinite height is created. In the end of rendering this page is broken. This leads to numerous subsequent checks. When using the DataBand component, contents are fully laid out in the main report. In addition, the engine of our reporting tool is highly optimized to work with the DataBand component.

Sub Report

Working with the Report Checker utility

In Stimulsoft Reports, the Report Checker is used for checking the report on errors. This component analyzes the report, resulting in information and error messages or alerts found in reports. If any errors occur while rendering a report, then the Checker generates messages and offers solutions for some of them. For example remove a component, move it to the print area, enable or disable properties, and so on. This will significantly speed up the process of rendering reports.

Checker

Interpretation mode

In the interpretation mode the compilation does not occur. So time and memory is not used. It is very important, especially when a report has a great number of components. However, it should be noted that this mode is relatively new, so you may have some issues with this. For example, incorrect handling of complex expressions. Also scripts, used in the report events, are not working in this mode.

Connecting assemblies

Another method of increasing the speed of report building and reducing memory usage is a compilation of the report as an assembly - .dll file. The main advantage of this method lies in the fact that the compilation occurs only once. The next time already compiled report is loaded. There is one issue with this. When updating to the latest product version, you have to re-compile a report from a template (.mrt file) into the assembly. Otherwise some errors may occur.

Working with the Table component

Table is a compound component. If you render complex reports, it is better to replace it with a band, because the Table consists of a set of items and rebuilding of each item involves a number of checks by all the other items and, if your report has a complex structure, some issues may occur with wrapping and breaking table cells. This component is good to create reports fast, but it slows the rendering process. It can be used in creating simple lists reports and reports without a very complex structure. In other cases it is desirable to replace it with a band.

Table Band
Optimization is a vexed problem today in nearly all areas of human activity. Unfortunately, there is no exception in reporting. How to most effectively make the process of designing, rendering, and processing reports? Today, these questions concern the majority of users of all reporting products.

Optimizing reports is a set of actions aimed at improving the system and process of working efficiency with the reporting software. Stimulsoft Company offers some useful hints, following which, you will not only save time taken to generate the required reports, but, in general, increase productivity of your staff.

As for designing reports, the optimization here lies in two directions: increasing the speed of report rendering and reducing memory usage.

Data

To increase the speed of rendering reports it is necessary to request only needed data from large databases. That is, if for the report you need, for example, only a few tables and fields, then there is no need to add to the dictionary data all the data available in the database. Otherwise, huge amount of resources will be spent on it to get all the data, not to mention the time spent. Also, it would be logical to use a WHERE construction in SQL. In case you do not need all the fields and records from a table, etc., but only the ones corresponding to specific conditions. But these conditions should be subscribed in the SQL filter, but not in the filter of the Data Band. Using the filter, only a small part of records in the table is displayed. Those records are requested. This applies positive effect on performance.

Also, you can set the SQL Query value to the Filter Engine property of the Data Band. This automatically adds the WHERE condition directly to the SQL query.

Dictionary

Images

Another more important thing in optimizing the process of rendering reports is optimization of images. In most cases, high resolution of images used in the report and their very high quality is not required due to the fact that to view the contents of the report, including the images, a computer monitor or a laptop is used. To reduce memory usage, reduce the size of images to the appropriate size. The best option is to get the desired result without using the Stretch image property.

Stretch image

Rich Text

The ability to use several common custom components instead of the RichText component. Since the RichText component is complex some issues with processing may occur. For example in Web, where the RichText editor is not present. So the RichText component is exported to an Excel file as a picture. After that, there are certain difficulties in editing and exporting the whole document.

Rich Text

One Page

When rendering a report, sometimes all the components are not placed on the same page. Typically, users transfer excessive ones on the next report page, group them by one Data Band on one page, or use the Sub-Report component. This is time-consuming.

To increase the speed of rendering reports, we propose to use the Large Height property, which increases your page to a required size.

The property will increase the page in the design mode, and the mode of viewing the report will not “suffer”.

Grouping

In order to increase the speed of rendering the report you should remove unnecessary groups from the rendered report. For example, grouping by the GroupHeader component. Users group by several categories: ID, Name, Description, and so on, but grouping is enough by the category ID. It is also possible to define complex conditions for grouping, i.e. to create grouping based on multiple fields of conditions. All conditions can be combined into a single group. In this case, instead of 5-6 GroupHeader components, you only need one component. This will speed up the construction of the report and simplify its structure.

Grouping
Some time ago we have changed the main menu of our products. It was made for our users who now can work with our products more easily. In this article we want to give you some information about the changes.

From the main menu we have removed the next buttons: "Open Page", "Save Page As", "Delete Page", since they were duplicated.

All these actions you can make by right click the tab.

Items

Also we could note other changes:

- the button Watermark was added to the tab Page.

Items

- we have hidden the panels Watermark Text and Watermark Image.

Items

- the tab View can now be found in the tab Page.

Items
Items

- in the context menu there are two new items “Open Page” and “Save page As”.

Items

- almost each element of the menu has now a tooltip. For the tooltip be displayed you should hover the cursor on an icon of the element.

Items

In addition, after the conversion of the designers menu we have decided to disable by default the buttons Save\Load in\from GoogleDocs.

To make these buttons visible use the following properties:

StiOptions.Designer.Ribbon.ShowMainMenuReportOpenFromGoogleDocs
StiOptions.Designer.Ribbon.ShowMainMenuReportSaveAsToGoogleDocs
When a user migrates from Crystal Reports on Stimulsoft Reports, this may cause some issues related to the differences between methods of designing and rendering reports. The most frequently asked questions in this regard will answer the head of technical support Stimulsoft Reports, Ivan Shmatov.

"The first major difference is working with data bands. The data is displayed in a report from the data source using a data band. In the reporting tool Crystal Reports on the same report page only one data band can be placed, so it is possible to use only one data source. In software products Stimulsoft Reports the number of data sources, you can work with in the report, is not limited. For example, when designing the Master-Detail report, you should use at least two data sources - master and detail. In Crystal Reports, the construction of this type of reporting is possible using sub-reports and scripts. In our products all the data sources can be placed on a single page and no additional scripting is required.

The second difference is different specialization of components. Plain text, expressions and fields of data sources have different components in Crystal. In Stimulsoft Reports a TextBox component is used. In this component you can combine regular text and expressions in any combination.

Another difference is using different syntax of expressions and scripts. Crystal Reports uses Visual Basic, while Stimulsoft Reports uses C# (by default) and Visual Basic.

The third important difference concerns data sources. For example, you create a report using a test database, and then you need to replace a data source in a report on the source of a different type. In Crystal Reports, when clearing the current data source, all the fields are cleared from the page. In Stimulsoft Reports you can remove all sources in the dictionary but required data will remain on the report page.

Our reporting tools have a grid - linking fields. When you drag a TextBox component you can use this grid to bind the component to a report page accurately and quickly. For this, select a component and click "Snap to Grid". Crystal Reports has no grid, only a Grid Lines component, by means of which it is not possible to accurately define the size of the TextBox.

Designing of the table, too, has some differences in the various reporting tools. Since Crystal Reports is quite difficult to place components in neat rows, users generally put a textbox as it will, and then draw borders with shapes. Users that migrate to Stimulsoft, often try to do the same, but we have a simpler way. You can use the margins of text components. You can also use the special cross-primitives - horizontal and vertical lines, and rectangles. It is possible to create tables using the Shape component, but one should make a reservation that Shape – is rather “heavy” component for exports, so that it is easier and faster to use primitives created especially for tables.

Our developers created an importing tool - a special application that allows you to convert reports from Crystal Reports to Stimulsoft Reports. Reports created in Crystal Reports, have its own internal format, which eliminates the possibility to open and view them in our tools. They can only be opened with help of API Crystal Reports. Before working with the importing tool you need to install Crystal Reports and recompile the converter specifically for working with the current version of the reporting tool. Please note that through the API Crystal Reports, not all the properties of the components are available, therefore, the converter only converts the properties available to it.

A few words about the properties of components

Properties of the components can be “not calculated”, that is, the value of which is set to a particular value; and “calculated”, the values of which are set by the expression and calculated each time they are accessed. In Crystal Reports, you can add a script to various not calculated properties, the result of execution of which is controlled by this property, i.e. actually turn the property into a calculated one. In our products, properties are clearly divided into calculated and not calculated. So, when converting a report, some logic of the report can be lost.

To solve this issue, you can use special events of components - BeforePrint, AfterPrint, Rendering, GetData, etc. They allow you to achieve almost the same result, but in other ways. Unfortunately, automatic converting of scripts from CR into our product does not work because there are differences in the data structure, engines, etc.

Differences in licensing policy

There are many differences between products by Stimulsoft Reports and Crystal Reports not only in functionality, but also in the licensing policy. Says Executive Director of Stimulsoft Company Andrew Savin: “First of all I would like to say, that the licensing of Stimulsoft products has two main advantages: minimum limitations and easiness in understanding”.

Crystal Reports provides the license for a named user. It means that the license is assigned to the specific user. Stimulsoft Reports license is per company, it means the license may be transferred to other developers within the company.

Crystal Reports allows the unlimited using of product within the company, when you develop the product only for internal using, then it is enough for you to have a license for your developers. The license you purchase in Stimulsoft relates not only to actions within the company, but even when to transfer your application to the third party.

Another difference: for example, the company creates the application and shares it to the third party. In this case the application must be provided with the Crystal Reports license. It is allowed to integrate in Rich Internet Applications 750 license free components for modification, previewing and printing of reports with free distribution and delivery of application to the third party. Stimulsoft Reports license does not have such limitations.
Very frequently we get emails from our customers in which they require features specific for report servers. Last year we started the development of such a product. What we are doing now is unveiled in this article.

Stimulsoft CloudReports is a universal and functional client-server system for full cycle management of various reports – from simple list to complicated documents with multiple nested layers and a number of graphical elements. The primary part of modern workflow system is visual presenting of actual information on digital devices – dashboards, which allow providing information in a simple and intuitive graphical view. Stimulsoft CloudReports contains a large set of charts and visual indicators to conveniently display any data types.
Stimulsoft CloudReports is a powerful instrument for aggregation and visualization of company information.

Server part

There are two ways of using the server part – classic managed server and Software-as-a-service (SaaS).

The first way offers two options:

- Stimulsoft CloudReports Server for installation on the client server. This is a classical way of using the server product. It allows customers to control computing resources and administrate this system. Such a system is completely administered by a customer, but could be used in the fully isolated cooperative area. In this distribution there are such unique functions like load balancing and support for cluster systems.
- Stimulsoft CloudReports Server for integration in the Windows Azure Cloud Service. This way is the most progressive and efficient, because it saves the client from having to maintain its own servers and allows paying only for the resources used in Windows Azure.

Stimulsoft CloudReports Server uses MySQL, MS SQL Server or Windows Azure SQL to store data.

The licensing of Stimulsoft CloudReports Server is based on the number of users with keys, which should be activated on the server during installation.

Also Stimulsoft CloudReports Server will be available as a service. This is more convenient for majority of users as it does not require technical services and hardware. You should just activate necessary functions and start using our service.

The payment is based on the number of users who have access to this service, and some additional functions influencing on the server performance. Flexible packages allows you reasonably use only the functionality that you need and do not waste funds for unnecessary stuff.

Prices and the full list of features will be published later; however there will be a free account for evaluating and non-commercial use.

Customers will be able to change their tariff plans or add any additional feature at any time. But the Professional and Enterprise packages will have some special features, which are not available in other packages.

Data Sources

Data for reports could be fetched in different ways:

- Using direct connections to DBMS MySQL, MS SQL Server, Windows Azure SQL or etc.;
- Imported from local files (Excel, XML, DBF, CSV, etc.);
- Imported from files on distributed storages, for example, Microsoft SharePoint;

The set of acceptable data sources depends on the selected package.

Client side

The client part of Stimulsoft CloudReports is provided in three applications, which has a user-friendly interface and provides quick access to all system functions:

- WinRT-application for tablets on Windows 8. It has a modern touch interface and full set of reporting features: creating и managing reports, creating and viewing dashboards, printing, newsletter mailings, managing tasks on schedule, administration of your system. The beta version release is scheduled for June 2013, application will be available in Microsoft Windows Store;
- WPF-application for Windows PCs. Exceptional functionality and compatibility with all PC's. The beta version is scheduled for August 2013, the application will be available on our site;
- Web-application. Allows you to create complex reports and dashboards with charts and indicators with any device that has Internet access. Modern design and the possibility of using touch interface. It is based on HTML5 and AJAX. The beta version is scheduled for August 2013.

Client side applications will be available free of charge and without any limitation.

Additional features

To meet the needs of all our customers, we provide additional features of Stimulsoft CloudReports:

- White-labeling and rebranding. Integration in corporate area allows using company brand. By activating this feature you get brand key with all attributes of your company – logo, application name, legal company data and etc., which allows not allocating our product in your corporate area.
- Integration. Possibility to embed the features of our product in your application. We provide SDK with a clear and simple API for it, which is available on WinRT, WPF and Web platforms. Integrated Stimulsoft CloudReports server will work in the back-end, and will be invisible for end-users, and your application could use all our features.