Использование Checkbox

vebveb
отредактировано 04:18 Раздел: FastReport 4.0
Добрый день.

FastReport VCL, C++ Builder 2009.
Строю отчет заполняя все значения из кода (без использования БД).
В отчете надо отметить один из расположенных на форме объектов TfrxCheckBoxView.

Расположил на форме отчета четыре TfrxCheckBoxView - CheckBox1 - CheckBox4.
В коде разместил TfrxCheckBoxObject компонент.
Написал TfrxCheckBoxObject* CheckBox1 = dynamic_cast <TfrxCheckBoxView*> (frxReport->FindComponent("CheckBox1"));
Транслируется без ошибок, но frxCheckBoxObject не имеет каких либо свойств или методов изменения состояния checkbox компонента в отчете.

Как тут быть?

Комментарии

  • Stalker4Stalker4 123
    отредактировано 04:18
    veb написал: »
    Строю отчет заполняя все значения из кода (без использования БД).
    В отчете надо отметить один из расположенных на форме объектов TfrxCheckBoxView.
    Как тут быть?
    У него есть свойства DataField и Expression. В твоем случае (без БД) подойдет свойство Expression. Если результат вычисления Expression будет True, рисует крест, если False то пусто.

    А вообще это расписано в документации к FR4.
  • vebveb
    отредактировано 04:18
    Stalker4 написал: »
    У него есть свойства DataField и Expression.
    Я спрашивал про frxCheckBoxObject, расположенный в коде программы. Он не имеет никаких свойств для связи с отображаемым в отчете элементом.
    Зачем TfrxCheckBoxObject вообще введен в пакет?
    Stalker4 написал: »
    Если результат вычисления Expression будет True...
    Если не сложно, приведи пример как из кода программы изменить что-то в Expression или вставить в это выражение переменную
    Stalker4 написал: »
    А вообще это расписано в документации к FR4.
    Листал глазами, искал поиском, но не нашел ни слова о том, как работать с CheckBox не в диалоговом окне отчета, а в самом отчете.
    Если покажешь это место в документации - буду благодарен.
  • gpigpi
    отредактировано 04:18
    написал:
    Зачем TfrxCheckBoxObject вообще введен в пакет?
    Чтобы при запуске программы с отчётом, содержащем TfrxCheckBoxView, на форме или при загрузке отчёта с TfrxCheckBoxView не получать сообщение об отсутствии класса TfrxCheckBoxView
    В Delphi вместо добавления TfrxCheckBoxObject на форму можно добавить frxChBox в список uses
    написал:
    Если не сложно, приведи пример как из кода программы изменить что-то в Expression или вставить в это выражение переменную
    как-то так:
    ((TfrxCheckBoxView*)frxReport->FindObject("CheckBox1"))->Expression =
    в Delphi это будет так:
    TfrxCheckBoxView(frxReport1.FindObject('CheckBox1')).Expression :=
  • vebveb
    отредактировано 04:18
    gpi написал: »
    как-то так:
    ((TfrxCheckBoxView*)frxReport->FindObject("CheckBox1"))->Expression = "1=1"; // true
      ((TfrxCheckBoxView*)frxReport->FindObject("CheckBox2"))->Expression = "1=2"; // false
    
    Немножко через задницу, но работает.

    Спасибо за совет!

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

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