Welcome, Guest. Please login or register.
Did you miss your activation email?

Author Topic: Управление видимостью дата бэндов  (Read 4683 times)

Sergei_sR

  • Newbie
  • *
  • Posts: 4
    • View Profile
Управление видимостью дата бэндов
« on: December 07, 2016, 08:53:13 am »
Здравствуйте!

Имеется ли возможность управлять видимостью дата бэнда в зависимости от значения в таблице?
Опишу зачем надо:
Есть SQL таблица с результами измерений, одна строка - одно измерение. В некоторых результатах отсутствуют (NULL) некоторые поля.
В зависимости от наличия или отсутсвия этих данных внешний вид отчета (расположение строк) разное.
Сейчас решаю эту задачу постраничной генерацией, подставляя разные шаблоны, но в случии вывода в pdf это разные файлы, а хочется чтобы был один.
Как думается решить эту задачу: Если бы можно было управлять видимостью, то можно было бы вставить в шаблон два дата бенда с нужной компоновкой, но в работе выбирать только нужный.
Ниже, maurosanjo похожее спрашивает про поля и подгонку высоты. В принципе, меня бы и такой вариант устроил.

Из замеченного:
Собрал последний релиз. В дизайнере после открытия отчета в окне ScriptBrowser\Functions дублируются узлы SYSTEM, NUMBER,...

Пробовал сделать pdf на 10000 страниц. Все получилось удачно и довольно шустро.

Subst

  • Sr. Member
  • ****
  • Posts: 450
    • View Profile
Re: Управление видимостью дата бэндов
« Reply #1 on: December 07, 2016, 11:14:10 am »
Ну ты сам верно заметил.
Автоматическая высота в свойствах бэнда плюс использование скриптов - очевидное решение проблемы.

Sergei_sR

  • Newbie
  • *
  • Posts: 4
    • View Profile
Re: Управление видимостью дата бэндов
« Reply #2 on: December 07, 2016, 12:13:40 pm »
А как это сделать скриптами?
если управлять видимостью полей, то вместо них просто пустое место остается
А как привязать скрипт к бенду я не догадался.

Subst

  • Sr. Member
  • ****
  • Posts: 450
    • View Profile
Re: Управление видимостью дата бэндов
« Reply #3 on: December 07, 2016, 12:22:48 pm »
По сути необходим бэнд с autoheight=true
внутри текстовое или несколько текстовых полей.

Когда все поля текстовые пустые, высота бэнда станет нулевой.

Скрипты привязываются к текстовым полям и регулируют их содержимое взависимости от каких-то параметров, например что-то вроде

$S{
 if ($D{table.field1=="")
  "";
 else
  $D{table.field2};
 }

если поле field1 пустое то и это поле не будет печаться. Если все поля не печаются, то бэнд не печатается

Как-то так

Sergei_sR

  • Newbie
  • *
  • Posts: 4
    • View Profile
Re: Управление видимостью дата бэндов
« Reply #4 on: December 07, 2016, 01:39:18 pm »
Спасибо за подсказку!
С дата бендами работает. Со статическими полями правда тоска, т.к. их тоже надо "скриптовать".
Теперь другая засада. Кроме дата бендов каждая страница имеет заголовок (PH) и окончание (PF), мне надо чтобы на листе был только один дата бенд (startNewPage). При печати сначала рендерятся страницы с первым бендом, а там где толжен быть второй печатает PH и PF и пустоту. Затем рендерит второй бенд теперь страницы где не должен печататся первый бенд - пустые (PH и PF), а где должен печататся второй - содержат второй бенд.
В итоге страниц в два раза больше.
Вобщем если у меня в таблице 5 строк, а вторая имеет дополнительные данные (т.е. печатается вторым бендом), то отрендерит так:
1,_,3,4,5,_,2,_,_,_  , где _ - пустая страница с PH и PF

Arin Alex

  • Developer
  • Administrator
  • Hero Member
  • *****
  • Posts: 1005
    • View Profile
Re: Управление видимостью дата бэндов
« Reply #5 on: December 07, 2016, 07:48:37 pm »
Sergei_sR, Проблему понял постараюсь поправить

Arin Alex

  • Developer
  • Administrator
  • Hero Member
  • *****
  • Posts: 1005
    • View Profile
Re: Управление видимостью дата бэндов
« Reply #6 on: December 07, 2016, 11:09:49 pm »
Sergei_sR, Некоторый костыль я приделал :)  можете проверить. В дальнейшем прикручу скриптование бандов, покамест времени категорически не хватает 

Sergei_sR

  • Newbie
  • *
  • Posts: 4
    • View Profile
Re: Управление видимостью дата бэндов
« Reply #7 on: December 08, 2016, 09:57:37 am »
Спасибо большое!
Пустых страниц больше нет.