Как убрать GroupHeader программно в Run-Time

отредактировано 14:51 Раздел: FastReport 3.0
Как убрать GroupHeader программно в Run-Time? Помогите! Во вторник сдавать заказ. Делаю так
    frxReport1.LoadFromFile('LGT.fr3') // загружаю из файла

    ghbus := frxReport1.FindObject('GHBUS') as TfrxGroupHeader; // нахожу объект

    if cbBus.Checked then ghbus.Visible := true
       else ghbus.Visible := false; // отключаю если нужно
такая конструция не проходит. Кто сталкивался подскажите

FastReport 3.17, Delphi 6

Комментарии

  • gpigpi
    отредактировано 14:51
    Обновите версию до FR 3.19 - в какой-то из предыдущих версий при скрытии GroupHeader не печатался GroupFooter.
    Попробуйте прямо в скрипте отчёта написать
    if cbBus.Checked then ghbus.Visible := true
          else ghbus.Visible := false;
    
    И еще: поставьте Update 2 for D6
  • отредактировано 14:51
    Спасибо. Теперь другая проблемка с GroupHeader. Почему если его сделать невидимым, он все равно будет отрабатывать и группировать. Есть ли какое нибудь свойство где не только GroupHeader делается невидимым, но и отключается группировка по этому бенду?
  • gpigpi
    отредактировано 14:51
    написал:
    он все равно будет отрабатывать и группировать
    Можно более подробно?
    Если не нужна группировка, нужно сделать невидимым GroupHeader и GroupFooter.
  • отредактировано 14:51
    1111 //group1
    222 //group2
    333 //group3
    1
    2
    3
    2222 //group1
    222 //group2
    333 //group3
    1
    2
    3
    отключаю group1 и вижу
    222 //group2
    333 //group3
    1
    2
    3
    222 //group2
    333 //group3
    1
    2
    3
    т.е. идет группировка по group1 иначе должен был объеденить
    222 //group2
    333 //group3
    1
    2
    3
    1
    2
    3
    вот и не понимаю почему при отключении проходит группировка.
  • gpigpi
    отредактировано 14:51
    Для группировки записи должны быть отсортированы по критериям группировки, т.е. для первого случая
    ORDER BY GROUPFIELD1, GROUPFIELD2, GROUPFIELD3
    а для второго
    ORDER BY GROUPFIELD2, GROUPFIELD3
    При отключении первой группировки нужно либо переоткрыть датасет с сортировкой ORDER BY GROUPFIELD2, GROUPFIELD3 , либо выполнить локальную сортировку (например FIBPlus это позволяют)
  • отредактировано 14:51
    Сортировка не помагает. Все равно группируется по невидимому GroupHeader.
    Думаю стоит еще и свойство condition у GroupHeader отключать. Не очень весело как-то. ;)
  • gpigpi
    отредактировано December 2005
    Свойство condition у GroupHeader1 отключить не получится - выдаёт ошибку, что требуется выражение. Можно присвоить значение выражения из второй группы и GroupHeader1.Visible:=False.
    To AlexTZ
    А можно добавить в GroupHeader свойство, которое включало/выключало группировку, а то одним иногда нужно отключать группировку, а другим просто скрывать GroupHeader, оставляя группировку?
    Или сделать так, что группировка не работает, если Condition не заполнено.
  • отредактировано 14:51
    Сделал при отключении visible condition := параметр который никогда не появится
    стало отрабатывать правильно. только не понятно почему нельзя сделать отключаемую именно групировку а не просто видимость/невидемость?

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

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