Подсчет в столбце

отредактировано 00:30 Раздел: FastReport 4.0
2d65aecb67f6d806a97dd8e8490e69d2.jpg
Выделенный красным цветом столбец - это среднее арифметическое первых трех столбцов.
Вопрос:
Как подсчитать в этом столбце (красном) сколько двоек, троек, четверок, пятерок?

Комментарии

  • отредактировано 00:30
    Обработай событие OnAfterData или OnAfterPrint нужного тебе компонента Memo и проверяй в нем.
    Имей ввиду, что если отчет двухпроходной то результат подвоится.
  • отредактировано 00:30
    procedure memItogOnAfterData(Sender: TfrxComponent);
    var
    five,four,three:integer;
    begin
    if Value='5' then
    five:=five+1;
    if Value='4' then
    four:=four+1;
    if Value='3' then
    three:=three+1;
    end;

    а теперь как переменные five, four, three вставить в нужный мне Memo?
  • отредактировано 00:30
    Обьяви переменные глобально.
  • отредактировано 00:30
    Простите за тупость. Как?
  • отредактировано 00:30
    В Отчет-Переменные отчета или в главной функции.
  • отредактировано 00:30
    Так..... ошибок никаких не вывел, но переменные не показывает.
  • отредактировано 00:30
    Забыл удалить локальные переменные. Создал глобальные через Отчет-Переменные. Выходит ошибка "Неопределенный идентификатор "five"
  • отредактировано 00:30
    1. ты вытер с memItogOnAfterData обявление этих переменных?
    2. где выводися результат?
  • отредактировано 00:30
    1. Да
    2. В Page Footer.
  • отредактировано 00:30
    Почему не видит глобальные переменные?
  • xlaalaaxlaalaa Минск
    отредактировано 00:30
    devostator написал: »
    Почему не видит глобальные переменные?


    Трудно понять, что именно у вас не получается. Но глобальные переменные можно объявить прямо на закладке "Код" в тексте скрипта. Выглядеть это должно примерно так:
    var
      five, four, three : integer;
    
    procedure memItogOnAfterData(Sender: TfrxComponent);
    begin
    
      if <ItogTable."ItogField">='5' then
         five:=five+1;
    
      if <ItogTable."ItogField"> = '4' then
        four:=four+1;
    
      if <ItogTable."ItogField"> = '3' then
        three:=three+1;
    
    end;
    
    begin
       // вначале отчета не забыть обнулить переменные
    
       five:=0;
       four:=0;
       three:=0;
    
    end.
    

    В место ItogTable и ItogField укажите имена из вашей таблицы.

    Чтобы вывести на листе посчитанные количества, в соответствующих ячейках укажите названия переменных в квадратных скобках:
       [five]
       [four]
       [three]
    





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

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