Программно унаследованный отчет
День добрый.
Тут возникла потребность программно создавать новые отчеты, унаследованные от шаблонного.
Пока удалось это реализовать только так:
Напрмер передать новому отчету, который должен быть унаследован, ранее загруженный объект Report template = Report.FromFile(...).
Тут возникла потребность программно создавать новые отчеты, унаследованные от шаблонного.
Пока удалось это реализовать только так:
//В папке приложения находится файл шаблонного отчета template.frx
//Создаем новый отчет
Report report = new Report();
//наследуемся
report.BaseReport = Application.StartupPath + Path.DirectorySeparatorChar + "template.frx";
//запускаем дизайнер
report.Design();
Есть ли способ получить унаследованный отчет, не используя полный путь до файла отчета-родителя (Application.StartupPath + Path.DirectorySeparatorChar + "template.frx")?Напрмер передать новому отчету, который должен быть унаследован, ранее загруженный объект Report template = Report.FromFile(...).
Комментарии
Полный путь нужен, чтобы FastReport смог сделать из него путь относительный. Когда отчет будет сохраняться, полный путь будет преобразован в относительный и в таком виде сохранен в файле отчета.
Можно также подписаться на событие report.LoadBaseReport. Обработчик события должен загрузить базовый отчет по его имени:
Тогда как наследоваться если отчеты грузятся из потока?
FReport.LoadBaseReport += new CustomLoadEventHandler(FReport_LoadBaseReport);
FReport.Load("main_report");
Обработчик такой же, как в примере выше. Основной отчет грузите откуда угодно, а для загрузки базового отчета пишете обработчик.