Генерация мультиотчета из частей
Здравствуйте,
разрабатываемое нами приложение должно иметь множество плагинов и каждый плагин должен генерировать свою часть отчета. Есть плагин - часть генерируется, нет плагина - ничего не делаем. Порядок частей отчета желательно произвольный, настраиваемый пользователем.
Вопрос состоит в следующем: можно ли реализовать генерацию такого мультиотчета из частей?
Пока в голове две идеи (считая, что N плагинов активно):
1. генерировать N кусочков отчета в отдельные файлы, а потом их как-то клеить (можно ли склейку делать FR? т.е. может ли он дописывать отчет в существующий файл RTF в конец?)
2. как-то динамически компоновать шаблон общего мультирепорта из кусочков, а потом выводить в него. Возможно ли такое?
Большое спасибо!
разрабатываемое нами приложение должно иметь множество плагинов и каждый плагин должен генерировать свою часть отчета. Есть плагин - часть генерируется, нет плагина - ничего не делаем. Порядок частей отчета желательно произвольный, настраиваемый пользователем.
Вопрос состоит в следующем: можно ли реализовать генерацию такого мультиотчета из частей?
Пока в голове две идеи (считая, что N плагинов активно):
1. генерировать N кусочков отчета в отдельные файлы, а потом их как-то клеить (можно ли склейку делать FR? т.е. может ли он дописывать отчет в существующий файл RTF в конец?)
2. как-то динамически компоновать шаблон общего мультирепорта из кусочков, а потом выводить в него. Возможно ли такое?
Большое спасибо!
Комментарии
Можно, используя несколько шаблонов отчетов, сгенерировать один отчет.
Report report = new Report();
report.Load(file1);
report.Prepare();
report.Load(file2);
report.Prepare(true); // дописываем в конец
report.Load(file3);
report.Prepare(true); // дописываем в конец
report.ShowPrepared();
спасибо за ответ. Понято - клеить можно. А динамически компоновать отчет - по-видимому нет?
В случае склейки из кусочков методом, который вы предложили, можно ли как-то при этом применять одинаковые стили оформления, сквозную нумерацию страниц, оглавление и прочее?
Понимаю, скорее всего это только вручную можно делать. Но хотя бы по двум must фичам:
1. сквозная нумерация - например, в последнем куске репорта добавлять нумерацию ко всему документу - возможно?
2. оглавление - при генерации частей можно ли получать из FR номера страниц, где начинаются разделы в текущей части, а потом из данных по всем частям компоновать оглавление (отдельным кусочным репортом), которое потом вставлять в репорт?
Можно ли вставлять новые репорт не в конец (пример, который вы показали), а в заданную страницу/метку?
http://www.fast-report.com/documentation/U...emvariables.htm
Оглавление (вот такое - http://www.fast-report.com/documentation/U...ortoutline.htm) сделать получится.
Добавлять отчет можно только в конец.
Думаем теперь над вариантом использовать плагины для заполнения общего мега-DataSet, который будет кормиться общему шаблону отчета, который содержит секции для всех плагинов.
Вопрос в том, как это будет работать, если одного плагина не будет, т.е.: если при разработке шаблона отчета DataSet, на котором он строился, содержал Table1 (из плагина 1) и Table2 (из плагина 2), а при генерации отчета будет активен только плагин1 и, соответственно, DataSet будет содержать только Table1 (а Table2 не будет вообще - даже пустой), все будет работать (не завалится)? И секцию можно будет скрыть?
Понятно, а если источник данных будет зарегистрирован, но в нем не будет некоторых таблиц?