The more and more data companies gather, the more they need user-friendly reporting tools to make sense of it all. The Report Viewer from Bold Reports® offers a powerful solution, enabling organizations to integrate robust reporting capabilities into their applications.
In this blog post, we’ll explore the configurations that can help you leverage the Bold Reports Report Viewer to its fullest, ensuring a streamlined and efficient data viewing experience for your users. From limiting the data for rendering to configuring page creation and virtual evaluation, we’ll go through the techniques that will let you handle millions of records with ease.
1. View Large Numbers of Records in Seconds
One of the key challenges in report rendering is dealing with large datasets. However, with the PerformanceSetting class, the Bold Reports Report Viewer can handle millions of records in mere seconds. Here are the key properties associated with it:
- PageCreation: Defines how each page is processed and created in the Report Viewer engine.
- VirtualEvaluation: Reuses tablix cell objects to reduce memory utilization, allowing the viewer to handle large datasets without performance issues.
- AutoGrowText: Prevents the viewer from measuring the dynamic height of each text box, significantly improving performance when dealing with large amounts of data.
- FetchLimit: Specifies the number of records to fetch at a time, reducing the load on the server and improving overall performance.
Note: For optimal rendering, please set the PageCreation property to OnDemand, VirtualEvaluation to true, AutoGrowText to false, and FetchLimit to 1000.
2. Handle Page Creation Processing
The PageCreation property plays a vital role in determining how pages are created and processed within the Report Viewer engine. By configuring it appropriately, you can streamline the rendering process and enhance the user experience.
Property | Description |
Default | Starts page creation after all pages are created, then sends the first page to the client side for rendering. |
OnDemand | Creates first page, then sends to the client side within seconds. Each page creation starts when the user navigates to the next page. |
Background | Creates first page, then sends to the client side within seconds. The remaining pages are created in the background; the completion status is updated in the progress bar. |
Following is an example of how you can configure the PageCreation property in the ReportViewerController.
public void OnInitReportOptions(ReportViewerOptions reportOption) { reportOption.ReportModel.PerformanceSetting = new BoldReports.RDL.Data.PerformanceSetting { PageCreation = BoldReports.RDL.Data.PageCreation.OnDemand }; }
You can also set PageCreation as a custom property, as shown in the following image.

Note: The PageCreation property must be added to report properties.
3. Efficient Memory Management in Table Processing
VirtualEvaluation is a property that facilitates efficient memory management in table processing. By enabling VirtualEvaluation, the Report Viewer reuses tablix cell objects, minimizing memory usage and improving performance.
The following is how you can set the VirtualEvaluation property.
public void OnInitReportOptions(ReportViewerOptions reportOption) { reportOption.ReportModel.PerformanceSetting = new BoldReports.RDL.Data.PerformanceSetting { VirtualEvaluation = true }; }
You can also set te VirtualEvaluation as a custom property, as shown bin the following image.

Note: The VirtualEvaluation property must be added to report properties.
4. Dynamic Textbox Size Calculation
The AutoGrowText property is used to measure dynamic text height in each text box. If we set AutoGrowText to true, the viewer will take time to measure the height of each text box cell, depending on the amount of data. For more information, refer to this documentation.
The following is how you can configure AutoGrowText.
public void OnInitReportOptions(ReportViewerOptions reportOption) { reportOption.ReportModel.PerformanceSetting = new BoldReports.RDL.Data.PerformanceSetting { AutoGrowText = false }; }
You can also set AutoGrowText as a custom property, as shown.

Limit the Data for Rendering
Limiting the number of records fetched in a report can significantly improve rendering performance, especially for reports with extensive datasets. The FetchLimit property is used to limit the number of records fetched in a report. For instance, if a report contains a huge number of records, applying a FetchLimit of 1,000 will ensure that only 1,000 records will be fetched from the dataset.
public void OnInitReportOptions(ReportViewerOptions reportOption) { reportOption.ReportModel.PerformanceSetting = new BoldReports.RDL.Data.PerformanceSetting { FetchLimit = 1000 }; }
You can also set FetchLimit as a custom property, as shown.

5. Limitations and Considerations
While these optimizations can greatly enhance report rendering performance, be aware of certain limitations and considerations:
• Reports featuring nested tables are not supported.
• Reports that include multiple tables are not supported.
• Cells within a tablix must contain only text; cells with images or charts are not supported.
• Reports containing images cannot be used.
• Reports containing toggle items will not be supported.
• Reports that contain subreports are not supported.
• Reports with document mapping and bookmark labels are unsupported.
• Sorting of table cells in the viewer is limited in functionality.
• Tablix structures with repeat headers will not be supported.
• File storage cache settings will not be supported.
• Tablix structures with column groups will not be supported.
Conclusion
Mastering RDL/RDLC report rendering in the Bold Reports® Report Viewer lets you deliver a seamless user experience, even with extensive datasets. By leveraging the PerformanceSetting class and its associated properties, and understanding its limitations, you can unlock the full potential of report rendering in web applications. With these best practices at your disposal, you’ll be well-equipped to tackle any reporting challenge with confidence.
Bold Reports offers a 30-day free trial with no credit card required. We welcome you to start one and experience Bold Reports for yourself.