Уважаемые разработчики!
Подскажите, есть ли возможность увеличить скорость построения отчета? Сейчас получаетсятак что каждый раз при запуске отчета он компилиируется. Есть возможность этого избежать?
Спасибо.
Как увеличить скорость?
-
- Сообщения: 2
- Зарегистрирован: 12 июн 2006, 07:30
Как увеличить скорость?
Существует несколько вариантов увеличения скорости построения:
- сохранить отчет как класс и подключить этот класс к своему проекту. В этом случае отчет будет скомпилиирован вместе с Вашим проектом.
- сохранить отчет как сборку и в последющем грузить отчеты из сборки при помощи метода StiReport.GetReportFromAssembly.
- компилировать отчет только при первом запуске. При запуске отчета на выполнение проверяем если готовая сборка с отчетом, если есть то сразу грузим отчет из этой сборки методом StiReport.GetReportFromAssembly. Если нет, то компилируем отчет методом report.Compile("report.dll") и строим дальше. В следующий раз у нас уже будет готовый отчет в dll.
-
- Сообщения: 2
- Зарегистрирован: 12 июн 2006, 07:30
Как увеличить скорость?
А можно по последнему варианту привести какой нибудь вариант кода :shame: ?
Как увеличить скорость?
Код: Выделить всё
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();