Тихо запустить Crystal Reports - PullRequest
       17

Тихо запустить Crystal Reports

4 голосов
/ 13 декабря 2011

У меня есть приложение, которое использует Crystal Reports для отображения информации, введенной в различных формах. Это приложение на различных клиентских ноутбуках, начиная с самых разных характеристик. На некоторых ноутбуках Crystal Reports может занять более 30 секунд, прежде чем отобразится первый отчет, после чего они обычно открываются быстрее.

Как мне предварительно запустить Crystal Reports, когда мое приложение запускается, чтобы время загрузки исходного отчета было быстрее? Сейчас я думаю о том, как сделать это, открыть пустой отчет, свернутый при запуске, а затем рассчитать время его закрытия.

1 Ответ

4 голосов
/ 13 декабря 2011

Загрузка 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 также помогла в работе с пользователем

...