Динамические итоги

отредактировано October 2009 Раздел: FastReport .NET
Добрый день!

Возник ещё один вопрос :) На сей раз по поводу итогов.

Формирую отчёт по работникам вида:
Подразделение 1
 Профессия 1
  ФИО1
  ФИО2
  ...

 Профессия 2
  ФИО1
  ФИО2
  ...

Подразделение 2
 Профессия 1
  ФИО1
  ФИО2
  ...

и т.д.
Необходимо в конце отчёта(а не в конце каждой группы, что я умею) писать количество работников всего и по подразделениям, как и по профессиям. Как создавать итоги я знаю, но в данной ситуации их количество зависит от количества групп и заранее создать итоги в конце отчёта я не могу. Есть ли решение для подобной ситуации?

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

Комментарии

  • отредактировано 13:15
    Здравствуйте,

    Используйте две одинаковых группы, только вторая группа без детальных данных. Пример прикрепляю, его можно запустить в demo.exe.
  • отредактировано October 2009
    Я не пойму, как это поможет добиться следующего:
    Подразделение 1
      Профессия 1
        ФИО1
        ФИО2
        ...
    
      Профессия 2
        ФИО1
        ФИО2
        ...
    
    Подразделение 2
      Профессия 1
        ФИО1
        ФИО2
        ...
    
    ИТОГО:
    
    Подразделение 1: Х человек
           Профессия 1: У человек
           Профессия 2: Z человек
    
    Подразделение 2: Q человек
           Профессия 1: F человек
           Профессия 2: G человек
    
    ... и т.д.
    

    Сейчас я формирую отчёт, но без итога. В дизайнере он выглядит так:
    Заголовок отчёта: ..... Отчёт
    Заголовок страницы: ... Имя
    Заголовок группы: ..... Workers.division
      Заголовок группы: ... Workers.profession
        Данные: ........... Workers.name
      Подвал группы
    Подвал группы
    

    И в результате получается то, что я написал в первом сообщении этой темы. Но хотелось бы то же самое, но с итогом по каждой группе, как показал в этом сообщении выше. Это возможно? Как?

    Заранее спасибо!
  • отредактировано 13:15
    Суть такая же, только придется применить скрипт для печати итогов в заголовке нижней группы.
  • отредактировано 13:15
    Поправил работу св-ва TextObject.ProcessAt. Вот вариант проще, без скрипта:
  • отредактировано November 2009
    Спасибо за помощь.

    Честно говоря, всё это время разбирался с первым примером, со скриптом. В принципе, всё было понятно, но постоянные ошибки типа "Invoсation exception" и "invalid symbol [" мешали справиться с задачей. В итоге, разрулил, таки этот вопрос тем, что к полю в скрипте обращаюсь не тремя скобками, а так: [code][groupTotals[((String)Report.GetColumnValue("DataSource.profession"))]][/code].

    Плюс ко всему немного изменил код и ошибки исчезли. Судя по всему, возникали ошибки во время добавления одного и того же ключа...
        private Dictionary<String, Int32> groupTotals = new Dictionary<String, Int32>();
    
        private void professionGroupFooter_BeforePrint(object sender, EventArgs e)
        {
          String groupName = ((String)Report.GetColumnValue("DataSource.profession"));
          int groupTotal = Report.GetTotalValue("TotalPeople");
           
          if(groupTotals.ContainsKey(groupName)) groupTotals[groupName] += groupTotal;
           else groupTotals.Add(groupName, groupTotal);
        }
    

    Второй пример без скрипта только посмотрел, но сил не хватило понять, как Вы этого добились :)

    Спасибо!
  • отредактировано 13:15
    Вот и свежая документация подоспела :)
    Смотрите здесь:
    http://fast-report.com/documentation/UserM...intheheader.htm
  • отредактировано 13:15
    Да, в свежей версии ошибок типа "invalid symbol [" быть не должно.
  • отредактировано 13:15
    AlexTZ написал: »
    Вот и свежая документация подоспела :)
    Смотрите здесь:
    http://fast-report.com/documentation/UserM...intheheader.htm

    Супер, спасибо!

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

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