Страница 1 из 1

Как увеличить скорость?

Добавлено: 12 июн 2006, 07:40
Sergey Martynov
Уважаемые разработчики!

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

Спасибо.

Как увеличить скорость?

Добавлено: 12 июн 2006, 17:43
Vital

Существует несколько вариантов увеличения скорости построения:

- сохранить отчет как класс и подключить этот класс к своему проекту. В этом случае отчет будет скомпилиирован вместе с Вашим проектом.
- сохранить отчет как сборку и в последющем грузить отчеты из сборки при помощи метода StiReport.GetReportFromAssembly.
- компилировать отчет только при первом запуске. При запуске отчета на выполнение проверяем если готовая сборка с отчетом, если есть то сразу грузим отчет из этой сборки методом StiReport.GetReportFromAssembly. Если нет, то компилируем отчет методом report.Compile("report.dll") и строим дальше. В следующий раз у нас уже будет готовый отчет в dll.


Как увеличить скорость?

Добавлено: 12 июн 2006, 18:09
Sergey Martynov

А можно по последнему варианту привести какой нибудь вариант кода :shame: ?

Как увеличить скорость?

Добавлено: 14 июн 2006, 12:51
Edward

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

string reportName = "MyReport.mrt";
string reportDllName = "MyReport.dll";

StiReport report = null;

// если сборки отчета нет на диске
if (!File.Exists(reportDllName))
{
  // загружаем отчет из файла
  report = new StiReport();
  report.Load(reportName);
  // компилиляция и сохранение отчета в dll
  report.Compile(reportDllName);
 }
else  // если сборка отчета доступна
{
// … используем её
  report = StiReport.GetReportFromAssembly(reportDllName);
}
report.Show();