Export & Render progress

Обсуждение Stimulsoft Reports.NET
Ответить
Сергей
Сообщения: 70
Зарегистрирован: 13 окт 2008, 03:56
Откуда: Пермь
Контактная информация:

Export & Render progress

Сообщение Сергей »

Добрый день.

Есть ли событие изменения прогресса рендеринга и экспорта отчета? Либо что-то подобное? Как хотя бы вывести окно прогресса экспорта в PDF?

Используемый код:

Код: Выделить всё

StiReport report = StiReport.GetReportFromAssembly(reportPath);
report.Render(true);
report.ExportDocument(StiExportFormat.Pdf, output);
Ivan
Сообщения: 641
Зарегистрирован: 10 авг 2006, 05:40
Откуда: Stimulsoft Office

Export & Render progress

Сообщение Ivan »

Здравствуйте.

Вы можете использовать следующий код (при использовании этого метода отображается меню настроек экспорта):

Код: Выделить всё

	StiReport report = new StiReport();
	StiPdfExportService pdfExport = new StiPdfExportService();
	pdfExport.Export(report, @"d:\test_report.pdf");
Если надо экспортировать с индикатором прогресса, но без отображения меню настроек экспорта, можно использовать следующий код:

Код: Выделить всё

            FileStream fs = new FileStream(@"d:\test_report.pdf", FileMode.Create, FileAccess.ReadWrite);

            StiPdfExportService pdfExport = new StiPdfExportService();
            StiPdfExportSettings exportSettings = new StiPdfExportSettings();
            pdfExport.Progress = StiGuiOptions.GetProgressInformation(pdfExport.OwnerWindow, StiGuiMode.Gdi);
            pdfExport.Progress.Start(StiLocalization.Get("Export", "ExportingReport"));
            pdfExport.ExportPdf(report, fs, exportSettings);
            pdfExport.Progress.Close();
            pdfExport.Progress = null;
Спасибо.
Сергей
Сообщения: 70
Зарегистрирован: 13 окт 2008, 03:56
Откуда: Пермь
Контактная информация:

Export & Render progress

Сообщение Сергей »

Спасибо.

А получить значения прогресса в %% для самостоятельного отображения возможно?
Aleksey
Сообщения: 2906
Зарегистрирован: 22 апр 2010, 06:57

Export & Render progress

Сообщение Aleksey »

Здравствуйте,

Как вариант, вы можете использовать следующий код:

Код: Выделить всё

private void button1_Click(object sender, EventArgs e)
{
    StiReport report = new StiReport();
    report.Load("E:\\Report.mrt");
    report.Render(false);

    FileStream fs = new FileStream(@"e:\test_report.pdf", FileMode.Create, FileAccess.ReadWrite);
    StiPdfExportService pdfExport = new StiPdfExportService();
    pdfExport.Exporting += new StiExportingEventHandler(pdfExport_Exporting);
    pdfExport.ExportPdf(report, fs);
}

void pdfExport_Exporting(object sender, StiExportingEventArgs e)
{
   // Ваш код для отображения прогресса в процентах, используя e.Value и e.Maximum
}
Сообщите, если понадобится дополнительная помощь.
Спасибо.
Сергей
Сообщения: 70
Зарегистрирован: 13 окт 2008, 03:56
Откуда: Пермь
Контактная информация:

Export & Render progress

Сообщение Сергей »

Спасибо.

А то же самое для процесса рендеринга?
Сергей
Сообщения: 70
Зарегистрирован: 13 окт 2008, 03:56
Откуда: Пермь
Контактная информация:

Export & Render progress

Сообщение Сергей »

Событие StiPdfExportService.Exporting вызывается двумя этапами. То есть, сначала обработчик быстро пробегает все значения StiExportingEventArgs.Value, а затем все повторяется более медленно. Это приводит к тому, что индикатор прогресса два раза пробегает значения от 0 до 100.

Как быть?
Jan
Сообщения: 495
Зарегистрирован: 19 фев 2009, 11:14

Export & Render progress

Сообщение Jan »

Здравствуйте,
unic писал(а):Спасибо.

А то же самое для процесса рендеринга?
Можно использовать событие Rendering отчета. Стоит учитывать, что если отчет требует компиляцию, то нужно использовать событие report.CompiledReport.Rendering.

Спасибо.
Jan
Сообщения: 495
Зарегистрирован: 19 фев 2009, 11:14

Export & Render progress

Сообщение Jan »

Здравствуйте,
unic писал(а):Событие StiPdfExportService.Exporting вызывается двумя этапами. То есть, сначала обработчик быстро пробегает все значения StiExportingEventArgs.Value, а затем все повторяется более медленно. Это приводит к тому, что индикатор прогресса два раза пробегает значения от 0 до 100.

Как быть?
Так и отображать - как операцию с двумя проходами.

Спасибо.
Сергей
Сообщения: 70
Зарегистрирован: 13 окт 2008, 03:56
Откуда: Пермь
Контактная информация:

Export & Render progress

Сообщение Сергей »

Спасибо.

Не был уверен, что проходов всегда два.
Andrew
Сообщения: 586
Зарегистрирован: 09 июн 2006, 12:22

Export & Render progress

Сообщение Andrew »

Спасибо.
Ответить