Проблема с SubReport
Есть MasterData1 на нём есть Memo1- отображает какое-то поле из таблички Master. Так же на этом бэнде есть SubReport - он в свою очередь состоит из одного бэнда -MasterData2, на нём находятся поля из подчинённой таблички Details. Допустим SubReport внутри MasterData1 выводит несколько строк. Как растянуть Memo1 (находящийся на MasterData1) соответственно общей высоте SubReport-а?
Комментарии
Можно изменить высоту MasterData1 в событии OnEndBand если отчёт двухпроходный. А вот как вычислить высоту SubReport-а ?
Пробовал складывать высоту Memo2, находящегося на SubRepor-е в том же событии OnEndBand (конечно в случаях, когда событие вызывается для MasterData2) и- ничего. Memo2 растягивается, я свойство Memo2.dy не меняется.
Вообще в какой момент и как надо смотреть высоту Memo?
Кину, пожалуй, этот вопрос отдельно...
В моём примере размер Memo1 (расположенного, как мы знаем, на MasterData1)
Стал реальным (растянутым) в событии OnBeginBand для MasterData2, т.е. когда начали печататься строки SubReport-а, и снова стал обычным в событии OnEndBand для MasterData1.
События происходят так:
OnBeginBand для MasterData1
OnBeginBand для MasterData2 \ повторяется столько раз сколько строк в
OnEndBand для MasterData2 / Subreport-е
OnEndBand для MasterData1
а вот изменений размера мемок, лежащих на MasterData2 мне обнаружить не удалось :-(.
begin
Memo10.Lines.Clear; <-мемка отображает порядковый номер записи
if [qrLst."CD_M"]=cdm then begin
Memo10.Lines.Add(' '); <-это то же наименование. не показываем ничего
Line3.Visible:=false; <-верхняя гряница ячейки не нужна
end
else begin <- другое наименование
cdm:=[qrLst."CD_M"];
rnum:=rnum+1; <-нумеруем
Memo10.Lines.Add([RNUM]);
Line3.Visible:=True; <-отделяем линией от верней ячейки.
end;
end
Скрипт принадлежит мемке, которая порядковый номер показывает.
Переменные cdm и rnum должны уже существовать к началу работы скрипта. Их можно задать, скажем редакторе скрипта для MasterHeader например:
cdm:=0;
rnum:=0;
Получилось как мне кажется не очень красиво, есть ограничения (нельзя расположить наименование по высоте по центру (своей группы модификаций), например, но, вобщем работает.