Постраничный итог не в PageFooter. Как?

отредактировано February 2006 Раздел: FastReport 3.0
Здравствуйте, уважаемые.

Вопрос такой: Можно ли (и как) сделать в отчёте постраничный итог, но размещаемый не в PageFooter-е (это понятно как делать), а "приклеенный" к дата-бэнду.

То есть он печатается после дата-бэнда (как Footer или ReportSummary) но является итогом по странице.

Или же я хочу не существующего пока в FR бэнда "PageSummary" ?

Спасибо заранее.

Комментарии

  • gpigpi
    отредактировано 07:18
    Если нужен постраничный итог на последней странице перед ReportSummary, то смотри здесь
    http://www.fast-report.com/ru/forum/index....t=0&#entry12426
  • отредактировано February 2006
    Спасибо за ответ. Не то это решение, что надо.

    первый вариант (ReportSummary.OnBeforePrint - принудительно вывести PageFooter перед ReportSummary) не устраивает двумя причинами:
    - а если в PF не только постраничный итог а что-то ещё (номер страницы, например) - это совсем не надо перед RS.
    - на НЕпоследних страницах постраничный итог в PF не приклеивается к дата-бэнду.

    второе решение с группировкой (нарезка группировкой по NN строк на страницу)
    - а что делать на первой странице (где количество строк меньше чем на остальных из-за Header-ов)?
    - а что (прости господи) делать с растягиваемыми строками дата-бэнда?

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

    к сожалению, этот отчёт не мне пригрезился, а является утверждённой госкомстатом формой и заказчик требует безусловного её соблюдения.

    как быть?
  • отредактировано 07:18
    Попробуйте сделать отчет двухпроходным и считать сумму в скрипте.
  • отредактировано 07:18
    Да я посчитаю, вопросов ноль - вывести её потом где?
  • отредактировано 07:18
    Попробуйте Child band.
  • отредактировано 07:18
    с чайлдом получилось, спасибо, но как-то это уж очень замутнённо для столь простой задачи:

    есть MasterBand, к нему кладётся Child, на чайлде завёрстан постраничный итог, значения для которого считаются в beforeprint датабэнда и сбрасываются в ноль в afterprint чайлда.

    у MasterBand в OnAfterPrint (AFTER ! не Before и не BeforePrint для Child !) скриптуем:

    procedure MasterBandOnAfterPrint(Sender: TfrxComponent);
    begin
    Child.Visible := (Engine.FreeSpace < (MasterBand.Height + Child.Height))
    and (<Page#> <> <TotalPages>);
    end;

    по поводу (<Page#> <> <TotalPages>) заботимся ибо на последней странице места хватит и условие сработает не как нам надо.
    но печатать-то надо и на ней, что лечим, например в OnBeforePrint для ReportSummary:

    procedure ReportSummaryOnBeforePrint(Sender: TfrxComponent);
    begin
    Child.Visible := True;
    Engine.ShowBand(Child);
    end;

    вуаля - всё работает как надо (за что спасибо, выручили).
    но это-ж надо такую стойку на ушах заруливать...

    а проще никак?

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

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