Files
EnvelopeGenerator/EnvelopeGenerator.ReceiverUI/Pages/ReportViewer.razor
TekH c3730d109b Add in-memory report storage and async report handling
Introduced `InMemoryReportStorageWebExtension` to manage
reports in memory, enabling dynamic report storage and
retrieval. Updated `ReportViewer.razor` to conditionally
render the `DxReportViewer` component and initialize
reports asynchronously.

Configured dependency injection in `Program.cs` to register
`InMemoryReportStorageWebExtension` as a singleton and
integrated it with `CustomReportProvider`. Registered
`EnvelopeGenerator.ReceiverUI.PredefinedReports.Report` as
a trusted class for deserialization.

Enhanced `CustomReportProvider` to fetch reports from
memory or generate them dynamically using `ReportsFactory`.
Added necessary `using` directives and ensured proper
report lifecycle management.
2026-05-25 14:04:25 +02:00

24 lines
849 B
Plaintext

@page "/reportviewer/"
@using DevExpress.XtraReports.UI;
@using EnvelopeGenerator.ReceiverUI.Services;
@inject InMemoryReportStorageWebExtension ReportStorage
<link href="_content/DevExpress.Blazor.Themes/blazing-berry.bs5.min.css" rel="stylesheet" />
<link href="_content/DevExpress.Blazor.Reporting.Viewer/css/dx-blazor-reporting-components.bs5.css" rel="stylesheet" />
@if(Report is not null) {
<DxReportViewer @ref="reportViewer" Report="Report" RootCssClasses="w-100 h-100" />
}
@code {
DxReportViewer reportViewer;
XtraReport? Report;
protected override async Task OnInitializedAsync() {
Report = ReportStorage.TryGetReport("LargeDatasetReport", out var savedReport)
? savedReport
: PredefinedReports.ReportsFactory.GetReport("LargeDatasetReport");
await Task.CompletedTask;
}
}