Расчет средних значений

отредактировано 16:40 Раздел: FastReport 2.xx VCL
Суть проблемы: имеем две вложенные группы. Во внутренней группе считаем среднее значение какого-то показателя используя AVG без всяких проблем. Во внешней группе надо так же расчитать среднее значение того же показателя. однако, чтобы данные получились корректными, в качестве исходных значений для внешней группы, нужно брать средние значения, полученные во внутренней группе.

Как такое сделать в FR2.5?

Комментарии

  • Andrew_ShAndrew_Sh г.Минск
    отредактировано 16:40
    Gust написал:
    Суть проблемы: имеем две вложенные группы. Во внутренней группе считаем среднее значение какого-то показателя используя AVG без всяких проблем. Во внешней группе надо так же расчитать среднее значение того же показателя. однако, чтобы данные получились корректными, в качестве исходных значений для внешней группы, нужно брать средние значения, полученные во внутренней группе.

    Как такое сделать в FR2.5?
    В скрипте подсчитать сумму ср.значений по внутренним группам и количество групп, в футере внешней группы полученную сумму разделить на количество внутренних групп.
  • отредактировано 16:40
    Andrew_Sh написал:
    В скрипте подсчитать сумму ср.значений по внутренним группам и количество групп, в футере внешней группы полученную сумму разделить на количество внутренних групп.
    А как это лучше сделать? Я сейчас ввожу переменные, которые ссумируют нужные мне показатели в футере внутренней группы. Чтобы все считалось они обнуляются в хедере внешней группы (в onbeforeprint), но возникает проблема, когда внутренние группы занимают несколько страниц, поскольку переменные обнуляются тогда, когда этого не надо. Пробовал обнулять переменные в memo на футере внешней группы, но так совсем непонятно в какой поледовательности происходит расчет memo, поскольку получалось, что часть показателей считалось, а часть обнулялось.
  • Andrew_ShAndrew_Sh г.Минск
    отредактировано November 2005
    Gust написал:
    Gust написал:
    В скрипте подсчитать сумму ср.значений по внутренним группам и количество групп, в футере внешней группы полученную сумму разделить на количество внутренних групп.
    А как это лучше сделать? Я сейчас ввожу переменные, которые ссумируют нужные мне показатели в футере внутренней группы. Чтобы все считалось они обнуляются в хедере внешней группы (в onbeforeprint), но возникает проблема, когда внутренние группы занимают несколько страниц, поскольку переменные обнуляются тогда, когда этого не надо. Пробовал обнулять переменные в memo на футере внешней группы, но так совсем непонятно в какой поледовательности происходит расчет memo, поскольку получалось, что часть показателей считалось, а часть обнулялось.
    Насколько понял для групп у вас установлено RepeatHeader=true. Чтобы не происходило обнуления при повторении хэдtра внешней группы на новой странице анализируйте в OnBeforPrint какое-то уникальное значение поля, связанное с группой.

    В OnBeforePtint для Page пишете:
    begin
      iOuterGroupCode := '';
    end;
    

    В OnBeforePtint для хэдера внешней группы:
    begin
      if iOuterGroupCode <>  [qData."CODE1"]
        then begin
          iOuterGroupCode :=  [qData."CODE1"];
          // обнулить счетчики сумм
          AvgSum1 := 0;
          AvgSum2 := 0;
          // .... и так далее...
        end;
    end;
    
  • отредактировано 16:40
    Спасибо. Вопрос закрыт.

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

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