Управление видимостью бэнда

@ndrey@ndrey Днепропетровск
отредактировано February 2009 Раздел: FastReport 4.0
Приветствую!
Помогите, плиз. Ситуация выглядит следующим образом: мне нужно скрывать в отчёте некоторые бэнды (MasterData), в зависимости от состояния переменной отчёта, которая заполняется из программы на C++ Builder. На событие OnBeforePrint бэнда повешен такой обработчик:
function MasterData2OnBeforePrint(Sender)
{                                         
       if (<printDetail> == "0")
       {
               MasterData2.Visible = false;                     
       }
       else {
               MasterData2.Visible = true;                            
       }           
}

Проблема в том, что видомость бэнда не зависит от состояния переменной. Я уж думал, что возможно какие-то проблемы с переменной. Потому упростил для теста обработчик до такого вида:
function MasterData2OnBeforePrint(Sender)
{                                         
               MasterData2.Visible = false;                     
}

И всё равно, бэнд как печатался так и печатается. Возможно я не до конца понимаю механизм и порядок вызова обработчиков, но судя по документации этот обработчик вызывается в числе первых....
Есть у кого-то какие-нибудь соображения по этому поводу?

P.S. версия FR 4.7

Комментарии

  • отредактировано 17:34
    Чтобы бэнд стал невидимым, необходимо изменить его высоту MasterData2.Height = 0;
  • @ndrey@ndrey Днепропетровск
    отредактировано 17:34
    altada написал: »
    Чтобы бэнд стал невидимым, необходимо изменить его высоту MasterData2.Height = 0;
    Этот вариант тоже не проходит. Такое ощущение, что просто обработчик не вызывается...
  • отредактировано 17:34
    @ndrey написал: »
    Этот вариант тоже не проходит. Такое ощущение, что просто обработчик не вызывается...
    А у Memo, которые находятся на MasterData2, высоту = 0 делать не пробовали? Это в дополнение к нулевой высоте MasterData2.
  • @ndrey@ndrey Днепропетровск
    отредактировано 17:34
    altada написал: »
    А у Memo, которые находятся на MasterData2, высоту = 0 делать не пробовали? Это в дополнение к нулевой высоте MasterData2.
    Пробовал, не помогает. Пробовал уже даже не высоту менять, а просто текст в Memo - никакой реакции. На другом бэнде лежат мемо-поля, на них навешены обработчики OnAfterData, всё работает как задумано.
    Этот проблемный бэнд не связан с датасетом, кол-во записей = 1. Есть ещё один бэнд, который связан с UserDataset, проблемы те же...
    Я уже ничего не понимаю... Если память мне не изменяет, то пару лет назад я делал такое и всё работало. Просто не могу сейчас найти те отчёты, посмотреть в чём была разница.
  • @ndrey@ndrey Днепропетровск
    отредактировано 17:34
    Всё, разобрался. Т.к. чудес на свете не бывает значит сам дурак :) В предыдущей функции случайно была удалена закрывающая скобка и соответственно все последующие обработчики грубо говоря являлись телом этой функции, а не самостоятельными единицами. Самое странное, что FR никак не ругался....
    Ну да ладно, всем спасибо! :)

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

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