Скрытие полей из отчета FastReport по условию

Доброго дня.

Очень нужна помощь в настройке отчета FastReport. Делаю первый раз и пока не очень то получается.

Почему FastReport - потому что надо PDF и расширений покупать не будем. Имеем отчет по одной записи. Т.е. провайдер данных нам всегда будет только 1 строку. Табличных данных нет. Только текст заключение. Надо при установке галочек в Creatio вывести на печать локализируемые строки соответствующие этим галочкам. В запросе настроили и данные и локализируемые строки. Все данные приходят - это видно по отладчику. 

Теперь делаем форму. Вот она. Красным выделено 5 строк которые соответствуют 5ти галочкам. Они называются в отчете Text_Stop0#

Изображение удалено.

в коде отчета в FastReport пишем :

    private void ReportTitle1_BeforePrint(object sender, EventArgs e)
    {
      if (!((Boolean)Report.GetColumnValue("EPMAccountChk.EPMStop_01")))
      {
        Text_Stop01.Visible=false;      
      }
      if (!((Boolean)Report.GetColumnValue("EPMAccountChk.EPMStop_02")))
      {
        Text_Stop02.Visible=false;   
      }
      if (!((Boolean)Report.GetColumnValue("EPMAccountChk.EPMStop_03")))
      {
        Text_Stop03.Visible=false;    
      }
      if (!((Boolean)Report.GetColumnValue("EPMAccountChk.EPMStop_04")))
      {
        Text_Stop04.Visible=false;                    
      }
      if (!((Boolean)Report.GetColumnValue("EPMAccountChk.EPMStop_05")))
      {
        Text_Stop05.Visible=false;    
      }
    }    

Т.е. если галочка не стоит, то скрываем это поле.

Если стоят все галочки, то печатаем все. Это отлично работает

Изображение удалено.

Но вот если оставляем только одну строку, то беда. Остается пустое место от других строк. 

Изображение удалено.

 

Как его убрать и поднять все строки, что ниже? Это еще не конец отчета и будет еще строки.

Также пробовал через блэнд Data. Привязывал его и LocalizableStrings и к своей схеме, но почему в этом случае вообще ничего не выводится. 

Нравится

1 комментарий
Лучший ответ

Попробуйте добавить не как отдельные поля, а в таблицу FastReport, и для её строк установите параметр AutoSize=true

Попробуйте добавить не как отдельные поля, а в таблицу FastReport, и для её строк установите параметр AutoSize=true

Показать все комментарии