Chat Icon
Webinar Rendering Millions of Records Fast: Printable Reports for Data-Driven Decisions —Thursday, June 27, 10:00 A.M. ET SIGN UP NOW
Created with Sketch.
Login-icon
Effortless Viewing of Large Number of Records: Best Practices for Bold Reports Report Viewer
Effortless Viewing of Many Records: Best Practices for Bold Reports Report Viewer

Effortless Viewing of Large Number of Records: Best Practices for Bold Reports Report Viewer

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 OnDemandVirtualEvaluation to trueAutoGrowText 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.

Text: Creating a custom attribute using the PageCreation property.
PageCreation Custom Attribute Property

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.

Creating a custom attribute using the VirtualEvaluation property.
VirtualEvaluation Custom Attribute Property

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.

Creating a custom attribute using the AutoGrowText property.
AutoGrowText Custom Attribute Property

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.

Creating a custom attribute using the FetchLimit property.
FetchLimit Custom Attribute Property

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 15-day free trial with no credit card required. We welcome you to start one and experience Bold Reports for yourself.

Tags:

Share this blog

Leave a Reply

Your email address will not be published. Required fields are marked *