Проблема с печатью вложенных отчетов

CouRageCouRage Санкт-Петербург
отредактировано 01:29 Раздел: FastReport 3.0
Задача - построить отчет по трем таблицам (MainTable->DetailTable->SubDetailTable) таким образом, чтобы для каждой записи MainTable рядом печаталиь записи DetailTable и запись MainTable должна растягиваться. Подобным образом должно происходить и для DetailTable - SubDetailTable.

Для этого прибегаю к помощи вложенных отчетов:
На страницу кладу MasterData1
На MasterData1 кладу SubReport1
На SubReport1 кладу MasterData2
На MasterData2 кладу Subreport2
На Subreport2 кладу MasterData3

У обоих Subreport ставлю PrintOnParent = True
Все MasterData растягиваемые (Streched=True)

В результате на MasterData1 печатается только SubReport1, SubReport 2 - не виден. При этом MasterData1 растягивается (в соответствтии SubReport1.PrintOnParent = True) и SubReport1 растягивается по высоте SubReport2 правильно, однако Memo, которые лежат на MasterData3 (в SubReport2) НЕ ВИДНЫ в готовом отчете.

Причем, если у SubReport2 поставить PrintOnParent=False, то всё печатается, однако SubReport1 не растягивается по высоте SubReport2, что не есть хорошо ;) .

Надеюсь понятно объяснил.

Помгите побороть, пожалуйста.

Комментарии

  • отредактировано 01:29
    Механизм, обеспечивающий printonparent, общий. Вложенным subreport ставить этот флажок нельзя.
  • CouRageCouRage Санкт-Петербург
    отредактировано 01:29
    Хорошо, снимаем PrintOnParent у SubReport2. НО SubReport1 при этом не растягивается по общей высоте всех записей SubReport2 ;) .

    Получается - это ошибка в FastReport?
  • CouRageCouRage Санкт-Петербург
    отредактировано 01:29
    Проблема действительно не решаема ?
  • CouRageCouRage Санкт-Петербург
    отредактировано 01:29
    В FR 3.16 не исправлено ;) .
    Планируется ли исправление данной ошибки?
  • отредактировано 01:29
    Проблема нерешаема в принципе.
  • CouRageCouRage Санкт-Петербург
    отредактировано 01:29
    Очень жаль ;)
  • FOXFOX
    отредактировано 01:29
    Подниму тему.
    На данный момент построение таких отчетов принципиально не возможно? Изменилось/планируется ли что-то в 4й версии?
  • gpigpi
    отредактировано 01:29
    объедините три таблицы в одну с помощью запроса и выводите их, скрывая повторяющиеся значения и управляя отображением границ мемо в скрипте
  • FOXFOX
    отредактировано 01:29
    Так и делал, но тут возникла следущая проблема:
    если текст, из 'объединенной' таким образом ячейки в MasterTable не помещается в один memo, то он начнет растягивать и саму ячейку(с убранной нижней границой, он ведь входит в 'объединение') и сам бэнд вместе с ней, а по нормальному, ячека тянуться не должна, а ее текст должен отображаться ниже, на нижней ячейке с убранной верхней границы
  • gpigpi
    отредактировано 01:29
    Могу предложить расположить под Мемо1 ещё и Мемо2 с белым цветом шрифта
    Мемо1.FlowTo=Мемо2
    При первой печати MasterData присвоить значение выводимого поля переменной. Переменну вывести в Мемо1. После печати Мемо2 присвоить переменной значение Мемо2.Мемо.Text, ну а дальше опять при следующем выводе MasterData выводить в Мемо1 значение переменной и т.д.
    Вот только возникнет проблема, если текст в мемо1 будет помещаться на три строки, а данные - только на две. Придётся ещё заморачиваться в таком случае и с выводом оставшейся части на дочернем бенде
  • FOXFOX
    отредактировано 01:29
    Что-то я никак не могу понять, как FlowTo поможет решить проблему.
    Смысл в том что текст из 'объединеной' ячейки
    (а она самом деле представляет собой несколько строк!)
    должен отображаться на тех же уровнях,
    где находятся 'не объединяющияся' memo.
    Если же на Mater уровне второй строкой будет идти FlowTo-ячейка, то она
    так же будет растягивать бэнд..
  • gpigpi
    отредактировано 01:29
    FlowTo-ячейка располагается под основной на заднем плане, т.е. основная ячейка её перекрывает
  • FOXFOX
    отредактировано 01:29
    >Вот только возникнет проблема, если текст в мемо1 будет помещаться на три строки, а данные - только на две
    Действительно проблема, частично ее обошел, программно убивая на последних строках группы FlowTo,
    и теперь в этом случае последняя строка detail-данных будет немного растянута относительно предыдущих..
    Но это не критично, так что, можно сказать, что вопрос решен.
    gpi, большое спасибо, выручили!

Оставить комментарий

Многофункциональный текстовый редактор. Чтобы отредактировать стиль параграфа, нажмите TAB, чтобы перейти к меню абзаца. Там вы можете выбрать стиль. По умолчанию не выбран ни один стиль. Когда вы выберете текст, появится встроенное меню форматирования. Нажмите TAB, чтобы войти в него. Некоторые элементы, такие как многофункциональные вставки ссылок, картинок, индикаторов загрузки и сообщений об ошибок могут быть вставлены в редактор. Вы можете перемещаться по ним, используя стрелки внутри редактора и удалять с помощью клавиш delete или backspace.