123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
-
- using System;
- using System.Diagnostics;
- using System.Threading;
- using System.Threading.Tasks;
- namespace FastReport.Web.Blazor.Components
- {
- public partial class ReportContainer
- {
- private void ChangedPageWithoutArgs()
- {
- OnUpdate();
- }
- private void ChangedPage(int page)
- {
- WebReport.GotoPage(page);
- ChangedPageWithoutArgs();
- }
- private void Prepare()
- {
- WebReport webReport = WebReport;
- #if DIALOGS
- webReport.Dialog.CheckDialogs();
- #endif
- if (!webReport.Canceled)
- {
- if (webReport.Mode != WebReportMode.Dialog)
- {
- if (!webReport.ReportPrepared)
- {
- webReport.Report.Prepare();
- webReport.SplitReportPagesByTabs();
- }
- }
- else
- webReport.Report.PreparePhase1();
- }
- }
- #if WASM // in wasm we need to prepare report in not main thread
- protected override async Task OnParametersSetAsync()
- {
- Debug.WriteLine($"threadId ReportContainer: {Environment.CurrentManagedThreadId}");
- await PrepareAsync();
- //await Task.Run(Prepare);
- WebReport.Container = this;
- }
- private async Task PrepareAsync(CancellationToken token = default)
- {
- Debug.WriteLine($"threadId ReportContainer: {Environment.CurrentManagedThreadId}");
- WebReport webReport = WebReport;
- #if DIALOGS
- webReport.Dialog.CheckDialogs();
- #endif
- if (!webReport.Canceled)
- {
- if (webReport.Mode != WebReportMode.Dialog)
- {
- if (!webReport.ReportPrepared)
- {
- await webReport.Report.PrepareAsync(token);
- webReport.SplitReportPagesByTabs();
- }
- }
- else
- webReport.Report.PreparePhase1();
- }
- }
- #else
- protected override void OnParametersSet()
- {
- Prepare();
- WebReport.Container = this;
- }
- #endif
- /// <summary>
- /// Update ReportContainer
- /// </summary>
- internal void OnUpdate(bool needPrepare = false)
- {
- if (needPrepare)
- Prepare();
- StateHasChanged();
- }
- }
- }
|