静默启动Crystal Reports

本文关键字:Reports Crystal 启动 静默 | 更新日期: 2023-09-27 18:17:51

我有一个应用程序,它使用Crystal Reports显示在各种表单上输入的信息。这个应用程序在各种性能规格的客户端笔记本电脑上运行。在一些笔记本电脑上,Crystal Reports在显示第一份报告之前可能需要30秒以上的时间,之后通常会打开得更快。

我如何在应用程序启动时预先启动水晶报告,以便初始报告的加载时间更快?我现在考虑的方法是打开一个空的报告,在开始时最小化,然后计时关闭。

静默启动Crystal Reports

当应用程序启动时,在单独的线程上加载CR对我来说是有效的。

        //preload crystal reports on a seperate thread
        Task.Factory.StartNew(() =>
            {
                try
                {
                    using (ReportDocument preloadCrystalReport = new ReportDocument())
                    {
                        preloadCrystalReport.Load(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Reports/Report.rpt"));
                        PrintPreview preloadCrystalGUI = new PrintPreview().Init(preloadCrystalReport);
                        preloadCrystalGUI.Dispose();
                    }
                }
                catch (Exception e)
                {
                    ''log exception
                }
            }, TaskCreationOptions.LongRunning);
在我的例子中,PrintPreview类是一个嵌入了CR控件的对话框。预加载时不显示对话框

我发现预加载.rpt文件也有助于用户体验