Два Masterdata в одной группе

отредактировано 05:06 Раздел: FastReport 4.0
мне нужно выводить стандартную форму счета/квитанции на одной странице,
причем форма счета практически повторяет форму квитанции, т.е. данные берутся из одной записи для той и другой части

делаю так:

GroupHeader // группировка по номеру счета

// форма счета с итогами - несколько записей и итоги по ним
Header
MasterData
Footer

// форма квитанции с итогами - те же записи и те же итоги
Header
MasterData
Footer

GroupFooter

получается ерунда, как и следовало ожидать
Пытался выводить на разных страницах - выводятся сначала счета, потом квитанции, что неправильно

подскажите пожалуйста, каким образом можно построить подобный отчет и возможно ли вообще.


Комментарии

  • отредактировано 05:06
    defiler написал: »
    Пытался выводить на разных страницах - выводятся сначала счета, потом квитанции, что неправильно
    подскажите пожалуйста, каким образом можно построить подобный отчет и возможно ли вообще.
    Можно построить двухстраничный отчет: счет и квитанция. А потом огранизовать цикл по счетам (которые в GroupHeader), выводить счет и квитанцию и помещать в окно предварительного просмотра с помощью метода TfrxReport.PrepareReport. Для первой записи необходимо очистить окно предварительного просмотра TfrxReport.PrepareReport = true. После окончания цикла показать отчет методом ShowPreparedReport.
    Тогда двухстраничный отчет будут выводится на печать правильно. Недостатком является низкая скорость.
  • FokewolfFokewolf Киев
    отредактировано 05:06
    defiler написал: »
    мне нужно выводить стандартную форму счета/квитанции на одной странице,
    причем форма счета практически повторяет форму квитанции, т.е. данные берутся из одной записи для той и другой части

    делаю так:

    GroupHeader // группировка по номеру счета

    // форма счета с итогами - несколько записей и итоги по ним
    Header
    MasterData
    Footer

    // форма квитанции с итогами - те же записи и те же итоги
    Header
    MasterData
    Footer

    GroupFooter

    получается ерунда, как и следовало ожидать
    Пытался выводить на разных страницах - выводятся сначала счета, потом квитанции, что неправильно

    подскажите пожалуйста, каким образом можно построить подобный отчет и возможно ли вообще.


    Можно положить один мастер дата нулевой высоты. По нему будет идти группировка. А части отчета выводить в бэндах второго уровня.
  • отредактировано 05:06
    Fokewolf написал: »
    Можно положить один мастер дата нулевой высоты. По нему будет идти группировка. А части отчета выводить в бэндах второго уровня.

    Это как по мастердата будет группировка? да еще с нулевой высотой - вообще получается пустой отчет.

    Разбил на страницы, и циклом делаю с ClearLastReport = false - получается очень медленно, а мне нужно тыщи счетов печатать.

    Подскажите, в какую сторону копать? Уже весь моск поломал((
    Задача-то вроде стандартная, такое ощущение что полез я куда-то не туда.
  • FokewolfFokewolf Киев
    отредактировано 05:06
    написал:
    Это как по мастердата будет группировка? да еще с нулевой высотой - вообще получается пустой отчет.
    Вот этот мастердата - будет иметь источник данных - счета. Допустим, у вас есть три счета 1,2,3 .
    Этот же мастердата будет иметь два бэнда вторго уровня. они будут отображатсья под ним. В них вы и реализуете обе части - то. что вы хотели сделать двумя бэндами первого уровня.
  • отредактировано 7 Apr

    А что будет источниками данных для бэндов второго уровня? Тот же датасет, по которому ранее сделали группировку (т.е. счета)? Если так, то ничего не получится - группировка собьется, этот бэнд второго уровня просто отработает по всему датасету, и на этом построение отчета закончится, потому что у группировочного бэнда больше не будет данных для группировки. То есть в отчете будет просто вывод того, что касалось первой группы (если оно было) и далее всего датасета уже без группировок.

    Жаль, но похоже, с применением группировки эту задачу не решить. Нужна полноценная мастер-деталь с двумя датасетами. Буду очень рад, если кто-нибудь предложит рабочий вариант, чтобы можно было обойтись одним датасетом (т.е. с применением группировки).

  • Пример вывода зеркальной информации на второй половине страницы

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

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