Банд «Header» и агрегатные функции

stuff_pkbstuff_pkb Украина, Днепропетровск
отредактировано 08:57 Раздел: FastReport 3.0
Можно ли в банде «Header» использовать агрегатные функции: SUMM, COUNT и т.д.

Если нет, то можно ли банд «Footer» располагать выше банда «MasterData»?

Комментарии

  • отредактировано 08:57
    Предлагаю следущий вариант для вычисления суммы в Header'е.
    Кидаем обработчик на Memo, которое находится в Header'е.
    void Memo1OnBeforePrint(TfrxComponent Sender)
    {
      Variant vSum = 0;   // будем хранить сумму, для начала, обнуляем
      // движемся по набору данных
      for (ADOQuery1.First (); !ADOQuery1.Eof; ADOQuery1.Next())
        vSum = vSum + <ADOQuery1."ID">;   //вычисляем сумму
      ADOQuery1.First ();   //для корректного последующего отображения НД
      Memo1.Memo.Text = VarToStr (vSum); //выводим сумму в Memo
    }
    

    Только не забудте после вычислений поставить ADOQuery1.First ();, иначе в MasterData НД не отобразится
  • stuff_pkbstuff_pkb Украина, Днепропетровск
    отредактировано 08:57
    aseroff, спасибо тебе огромное. Но это немножко не то, что я хотел. У меня около 1000 ячеек и если подбивать сумму чисел в строках, таким образом, то на формирование отчета уйдет много времени.

    Вопрос поставлю по-другому:

    Когда отчет закончил формироваться, то можно ли пробежаться по сформированным строкам и подсчитать сумму чисел в строке и затем эту сумму впихнуть в текстовое поле, расположенное на банде «Header»?

    Как я понимаю, код подсчета суммы можно написать и в самом репорте. Например, в событии страницы OnAfterPrint.

    Если такой код возможен, то приведите, пожалуйста, пример.

  • отредактировано 08:57
    Насколько я понимаю, для этого у отчёта есть свойство - Два прохода. САм никогда не пользовался, но смысл понимаю так - первый рарз Фаст всё рассчитывает, а на втором проходе - печатает. ТОгда в заголовках можно выводить суммы.
  • отредактировано 08:57
    Как это сделать описано в документации.

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

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