MasterData as PageHeader

отредактировано 14:21 Раздел: FastReport 3.0
Есть задача: напечатать отчёт, в котором по каждой строке из MasterData выводятся данные на двух страницах. На первой данные из DetailData1, а на второй диаграмма по данным DetailData2.
Тонкость в том, что на обоих страницах должны быть данные из MasterData в качестве заголовка страница.

Делал ли кто-нибудь нечто подобное? Есть ли идеи, как это можно сделать?

Комментарии

  • Andrew_ShAndrew_Sh г.Минск
    отредактировано October 2005
    AlexY написал:
    Есть задача: напечатать отчёт, в котором по каждой строке из MasterData выводятся данные на двух страницах. На первой данные из DetailData1, а на второй диаграмма по данным DetailData2.
    Тонкость в том, что на обоих страницах должны быть данные из MasterData в качестве заголовка страница.

    Делал ли кто-нибудь нечто подобное? Есть ли идеи, как это можно сделать?
    1) На главной странице размещаете MasterData с привязанным датасетом MasterDataSet.
    2) К MasteData цепляете ChildBand1, на котором размещаете SubReport1
    На странице SubReport1
    2.1) размещаете MasterData с привязанным DetailDataSet1;
    2.2) размещаете PageHeader1 с полями из MasterDataSet
    3) К ChildBand1 из п.2 цепляете ChildBand2, на котором размещаете SubReport2
    На странице SubReport2
    3.1) размещаете MasterData с привязанным DetailDataSet2;
    2.2) размещаете PageHeader с полями из MasterDataSet.

    Успехов.
  • отредактировано 14:21
    Спасибо за попытку помочь

    Сделал:

    1) На главной странице размещаете MasterData с привязанным датасетом MasterDataSet.
    2) К MasteData цепляете ChildBand1, на котором размещаете SubReport1
    На странице SubReport1
    2.1) размещаете MasterData с привязанным DetailDataSet1;
    2.2) размещаете PageHeader1 с полями из MasterDataSet

    Печатает только строки из DetailDataSet1, а заголовок вообще не выводит ;)
  • Andrew_ShAndrew_Sh г.Минск
    отредактировано 14:21
    AlexY написал:
    Печатает только строки из DetailDataSet1, а заголовок вообще не выводит ;)
    Если каждый SubDetail помещается на страницу, то можно
    на SuBreport перед MasterData для DetailDataSet поместить MasterData с RowCount=1 и на нем разместить мемки с полями MasterDataSet.
  • gpigpi
    отредактировано 14:21
    Чтобы печатать в заголовке страницы данные из датасета, нужно:
    1 свойству страницы Page1.Dataset сопоставить основной датасет (MasterDataSet). После этого каждая запись из данного датасета будет выводиться на отдельной странице.
    2 добавить PageHeader и расположить на нём Мемо с данными из MasterDataSet
    3 добавить MasterData1 и привязать к нему DetailDataset1
    4 добавить MasterData1Footer (Footer1), на него положить SubReport1
    5 для Footer1 написать код
    procedure Footer1OnBeforePrint(Sender: TfrxComponent);
    begin
        Engine.NewPage;
    end;
    
    6 для SubReport1 повторить п. 1-2
    7 добавить на SubReport1 MasterData2 и привязать к нему DetailDataset2

    Надеюсь, ничего не пропустил ;) У меня вроде-бы работает
    Здесь главное - п. 1, а дальше возможны варианты
  • отредактировано 14:21
    Всем большое спасибо.

    Получился хорошо вариант gpi ;)

    Обошёлся без SubReport.
    Вместо него прекрасно работает DeatilData с Header (StartNewPage=On)

    Но при смене записи в MasterDataSet гонит пустую страницу с одним заголовком начиная со второй записи ;) .

    Пробовал отключать все StartNewPage! На результат не влияет.
  • отредактировано 14:21
    Решил проблему:

    У MasterData стоял KeepTogether=true ! Поставил False и нет пустых страничек!

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

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