два Subreport на одном Masterdata
В отчёте есть MasterData, на котором рядом лежат 2 SubReport. Сами SubReport состоят просто из MasterData (у каждого может быть несколько строк).
Суть проблемы в том, как растянуть строку в основном MasterData и сами SubReport, чтобы высота их была одинаковая (максимальная из 2-х SubReport).
Если бы был один SubReport, то проблема решается установлением ему свойства "печать на бенде" (PrintOnParent = true) (если данных не много). Но с 2-мя SubReport получается так:
Буду рад любой помощи.
Суть проблемы в том, как растянуть строку в основном MasterData и сами SubReport, чтобы высота их была одинаковая (максимальная из 2-х SubReport).
Если бы был один SubReport, то проблема решается установлением ему свойства "печать на бенде" (PrintOnParent = true) (если данных не много). Но с 2-мя SubReport получается так:
Буду рад любой помощи.
Комментарии
1) Все Subreport можно сделать BringToFront, чтобы содержимое Subreport обработалось первым и движок смог определить реальную высоту содержимого.
2) Внутри Subreport не забыть сделать MasterData.Stretched
Сделал всем Subreport BringToFront. MasterData внутри Subreport естественно стоит Stretched. Только это картины нисколько не изменило.
Пример очень поверхностные, но суть думаю будет ясна.
Чтобы я не создавал самостоятельно ADOQuery1, ADOQuery2 и ADOQuery3.
Без SQL-запросов немного непонятно, что конкретно нужно извлекать из БД. Да и отчёт удаляет при открытии страницу №1 (Page1), т.к. на ней содержатся неизвестные компоненты.
На странице 1 уже лежат компоненты, которые подключаются к базе test.mdb, которая лежит в том же архиве. Там 1 компонент для подключения (ADODatabase1) и 3 компонента для запросов (ADOQuery) (на этих запросах и строится пример отчёта.). Единственное что, в компоненте для подключения (ADODatabase1) в свойствах нажмите кнопку в DatabaseName и выберите файл test.mdb (т.к. путь к нему у вас будет другой)
У меня FastReport 4.15, потому и не работает.
Сделал небольшой проектик. Может поможет.
project
project
Похоже, что здесь я не знаю решения.
Если я правильно понял, вы имеете в виду SubReport внутри SubReport? Мне сначала тоже пришла в голову такая идея, но попробовав и почитав форумы понял, что так делать нельзя. FastReport не поддерживает несколько уровней вложенности, т.е. если в SubReport вложить SubReport1, то данные из SubReport1 отображаться не будут.
Тогда я вижу только один вариант - использовать прямую обработку через движок (описание есть в инструкции, но я этого не делал).
Если менять Memo.height после ArferData, то этот подход будет работать только если у Memo свойство StretchMode = smDontStretch.
И придётся поиграться с BrindToFront и SendToBack ("На передний план" и "на задний план").
Уж извините, что не смог дать простое решение.