How to: Use the Custom Report Preview Form
- 2 minutes to read
This example demonstrates how to show a custom Report Preview form in a WinForms XAF application that uses the Reports V2 Module.
Create a new custom form (
CustomPreviewForm
in this example) in the WinForms application project (MySolution.Win). Design this form as described in the following help topic: Create a Custom Print Preview.Tip
Refer to the API and Customization section in the XtraReports documentation to learn more about report preview customization.
Add the
ShowReport
method toCustomPreviewForm
:File:
MySolution.Win\CustomPreviewForm.csusing DevExpress.XtraReports.UI; using System.Windows.Forms; // ... public partial class CustomPreviewForm : Form { // ... public void ShowReport(XtraReport report){ documentViewer1.DocumentSource = report; report.CreateDocument(); Show(); } }
In this example,
documentViewer1
is the DocumentViewer component added to this form in the previous step.Create the following Controller to display a report preview in the
CustomPreviewForm
form in the WinForms application project (MySolution.Win).File:
MySolution.Win\Controllers\CustomPreviewController.csusing DevExpress.ExpressApp; using DevExpress.ExpressApp.ReportsV2; using Microsoft.Extensions.DependencyInjection; // ... public class CustomPreviewController : ViewController { private ReportServiceController reportServiceController; protected override void OnActivated() { base.OnActivated(); reportServiceController = Frame.GetController<ReportServiceController>(); if(reportServiceController != null) { reportServiceController.CustomShowPreview += reportServiceController_CustomShowPreview; } } void reportServiceController_CustomShowPreview(object sender, CustomShowPreviewEventArgs e) { var reportStorage = Application.ServiceProvider.GetRequiredService<IReportStorage>(); var reportContainer = reportStorage.GetReportContainerByHandle(e.ReportContainerHandle); reportServiceController.SetupBeforePrint(reportContainer.Report, e.ParametersObject, e.Criteria, e.CanApplyCriteria, e.SortProperty, e.CanApplySortProperty); CustomPreviewForm form = new CustomPreviewForm(); form.ShowReport(reportContainer.Report); e.Handled = true; } protected override void OnDeactivated() { if(reportServiceController != null) { reportServiceController.CustomShowPreview -= reportServiceController_CustomShowPreview; } } }