Кто-нибудь знает, как в LazReport слить вместе несколько отдельно формируемых отчетов. Есть компонент, у него есть свойство Reports, но как это
заставить работать? Методом "научного тыка" не получается.
MultiReport in LazReport
Модератор: Модераторы
- alexs
- долгожитель
- Сообщения: 4069
- Зарегистрирован: 15.05.2005 23:17:07
- Откуда: г.Ставрополь
- Контактная информация:
Вот кусок из моего проекта - надёргал
процдеура добавляет в композитный отчёт данные из обычного подготовленного
Основное формирование
процдеура добавляет в композитный отчёт данные из обычного подготовленного
Код: Выделить всё
procedure DoAddFrom(Report: TfrReport);
var
S:TMemoryStream;
begin
if (Report <> nil) and (Report.EMFPages.Count > 0) then
begin
S:=TMemoryStream.Create;
try
Report.EMFPages.SaveToStream(S);
S.Position:=0;
MainDM.frMainComposite.EMFPages.AddPagesFromStream(S);
finally
S.Free;
end;
end;
end;Код: Выделить всё
MainDM.frMainComposite.Reports.Clear;
//Добавим первый отчёт
MainDM.frMainReport.LoadFromFile(RepFileName);
MainDM.frMainReport.PrepareReport;
DoAddFrom(MainDM.frMainReport);
//Добавим второй отчёт
MainDM.frMainReport.LoadFromFile(RepFileName);
MainDM.frMainReport.PrepareReport;
DoAddFrom(MainDM.frMainReport);
//отобразим композитный
MainDM.frMainComposite.ShowPreparedReport
Что-то страшновато выглядит. Но спасибо! Буду посмотреть.
А нет ли ссылочки? Потому что то, что обычно приводится по этому поводу, информации не содержит.
А нет ли ссылочки? Потому что то, что обычно приводится по этому поводу, информации не содержит.
- alexs
- долгожитель
- Сообщения: 4069
- Зарегистрирован: 15.05.2005 23:17:07
- Откуда: г.Ставрополь
- Контактная информация:
У меня код предназначен для универсального решения - одни и те же отчёты можно формировать как отдельными отчётами так и сшивать в один отчёт
например можно просто информацию о товаре дать клиенту (картинку/сертификат и т.д.), а в других ситуациях всё это собирается в один пакет (обычно pdf) вместе с счётом на оплат/упд/пропуском и т.д.
поэтому получилось так
а если совсем простой пример то вот можно так
например можно просто информацию о товаре дать клиенту (картинку/сертификат и т.д.), а в других ситуациях всё это собирается в один пакет (обычно pdf) вместе с счётом на оплат/упд/пропуском и т.д.
поэтому получилось так
а если совсем простой пример то вот можно так
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Спасибо, разобрался!
Моя проблема была в том, что отдельные отчеты у меня были на разных формах. И я с дуру при добавлении отчета создавал "голый" компонент
TfrReport. Конечно, он никаких данных не видел и не отображался.
Правильно вот так:
Моя проблема была в том, что отдельные отчеты у меня были на разных формах. И я с дуру при добавлении отчета создавал "голый" компонент
TfrReport. Конечно, он никаких данных не видел и не отображался.
Правильно вот так:
Код: Выделить всё
var
AllReport: TfrCompositeReport;
SampleReport1, SampleReport2: TForm;
....
SampleReport1 := TFirstReport.Create(self);
AllReport.Reports.Add(SampleReport1.frReport);
SampleReport2 := TSecondReport.Create(self);
AllReport.Reports.Add(SampleReport2.frReport);
AllReport.ShowReport;
AllReport.Clear;
SampleReport1.free;
SampleReport2.free;
