TfrBandView и PrintIfSubsetEmpty

отредактировано December 2003 Раздел: FastReport 2.xx VCL
Приветствую всех!

Столкнулся с такой проблемой, когда MasterData (TfrBandView) должен печататься, даже если DataSet пустой... Видел такое свойство как "PrintIfSubsetEmpty", понадеялся на него, навоял немаленький отчёт... а когда попробовал -- это свойство отказывается работать. Бэнд не печататся, и, соответсвенно с ним за компанию не печатаются MasterHeader и MasterFooter...
Попробовал пример попроще: положил на форму TfrReport, TfrUserDataset. Последнему сказал RangeEnd := reCount, RangeEndCount := 0... Положил на отчёт MasterDetail, поставил PrintIfSubsetEmpty := True... Результат: бэнда я не вижу...

FastReport я использую Trial 2.51 (с целью его купить, если получится моя задача).

Так вот, собственно, и вопрос: Работает ли это свойство и что нужно сделать, чтобы оно заработало или... как сделать так, чтобы бэнд печатался, если DataSet пустой...

Заранее благодарен за ответ.

=Quad

Комментарии

  • отредактировано 22:36
    Я работаю с FR2.50.
    Property PrintIfSubsetEmpty = True; печатает DetailDaten и когда DetailDaten пустой.
    Проблемы с Footer наблюдал если PrintIfSubsetEmpty = False; и DetailDaten пустой.
    Если MasterData RecordCount = 0 то MasterData.OnBeforePrint и у меня не печатаются.
    Опешите подробнее вашу задачю.
  • отредактировано 22:36
    Я реализую плавающую форму счёта. Есть первая часть -- основная, идёт по основному DataSet'у. У неё есть MasterDetail. На ней лежит SubReport. На SubReport'е есть MasterDetail, MasterFooter. На MasterFooter есть ещё один SubRepotr. И вот, если в первом подотчёте нет данных -- MasterDetail должен Visible := False (ручками делаю в OnBeforePrint), а MasterFooter должен напечаться и вывести второй подотчёт... и так восемь раз. В итоге получаю "плавающую" форму счёте, где то, что не нужно -- не печатается...
    Вот и проблема. если в первом подотчёте нет данных -- не печатаются все остальные подотчёты соответственно...

    Может "криво" объяснил?

    Page1
    +
    | MasterDetail
    |+
    || Subreport
    |+
    +

    SubReport
    +
    | MasterDetail
    |+
    || <>
    |+
    |
    | MasterFooter
    |+
    || SubReport
    |+
    +
  • отредактировано 22:36
    Если данных в masterdata нет, то печататься он не будет (и вместе с ним его header, footer). Это не изменить никак, кроме правки исходников. Св-во PrintIfDetailEmpty - для master-detail отчетов и позволяет печатать master, для которого нет записей из detail. В вашем случае лучше использовать отчет типа master-master (можно обойтись без subreport).

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

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