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

Author Topic: Работа скриптов в Horizontal layout.  (Read 5772 times)

Sironis

  • Newbie
  • *
  • Posts: 22
    • View Profile
Работа скриптов в Horizontal layout.
« on: February 27, 2017, 11:10:15 am »
Доброго времени суток.

Заметил проблему связанную с работой функций SUM, AVG и прочие. Внутри Horizontal layout они не работают.

Subst

  • Sr. Member
  • ****
  • Posts: 450
    • View Profile
Re: Работа скриптов в Horizontal layout.
« Reply #1 on: February 28, 2017, 03:22:04 am »
Вопрос скорее к Алексу, но, кажется уже обсуждали с ним и так и должно быть.
Агрегатные функции работают в футерах бэндов нормально.

Я же решал вопрос просто и эффективно. Создавал новый источник данных, например из одного отчета

students - существующий, созданный из программы через createCallbackDataSource источник
exam_chart - выпускные гос экзамены, мне нужно в произвольном месте отчета кол-во экзаменов знать

select count(id) as exam_count from exam_chart where student_id=$D{students.id}

Ну еще Алекса подождем, может что-то изменилось с тех пор как мы с ним обсуждали этот вопрос

Arin Alex

  • Developer
  • Administrator
  • Hero Member
  • *****
  • Posts: 1005
    • View Profile
Re: Работа скриптов в Horizontal layout.
« Reply #2 on: February 28, 2017, 08:55:05 pm »
Как правильно сказал Subst агрегатные функции работают только в футерах. В процессе генерации бандов значения накапливаются и в момент генерации футера вычисляются. И наличие горизонтальной группировки на это не влияет. Если это не так, можно заслать пример, я гляну.
« Last Edit: February 28, 2017, 08:58:53 pm by Arin Alex »

Sironis

  • Newbie
  • *
  • Posts: 22
    • View Profile
Re: Работа скриптов в Horizontal layout.
« Reply #3 on: March 20, 2017, 05:56:58 pm »
Спасибо за ответ! Тогда можно другой вопрос? У меня функция SUM() работает по значению ячейки в GroupBandHeader, и при условии если групп больше одной она отрабатывает нормально. Однако, как только появляется вариант данных когда группа всего одна мне на месте SUM прилетает пустая ячейка.

С чем это может быть связано?

Arin Alex

  • Developer
  • Administrator
  • Hero Member
  • *****
  • Posts: 1005
    • View Profile
Re: Работа скриптов в Horizontal layout.
« Reply #4 on: March 20, 2017, 06:34:59 pm »
На данный момент нормальная работа групповых функций гарантированна только в футере :) в заголовке эти функции могут возвращать вовсе не то, что от них ожидается

Arin Alex

  • Developer
  • Administrator
  • Hero Member
  • *****
  • Posts: 1005
    • View Profile
Re: Работа скриптов в Horizontal layout.
« Reply #5 on: March 20, 2017, 08:12:14 pm »
Если очень надо, могу подумать над использованием групповых функций в заголовках

Sironis

  • Newbie
  • *
  • Posts: 22
    • View Profile
Re: Работа скриптов в Horizontal layout.
« Reply #6 on: March 20, 2017, 10:38:40 pm »
Было бы замечательно. Думаю такой функционал очень добавил гибкости в работе с библиотекой.
Тем не менее, посмотрите ещё пожалуйста. Вы не правильно поняли вопрос. Повторю момент вышеописанный, у меня в футтере находится агрегатная функция sum берущая значение из groupheadera того же dataBand'a что и у футтера.

Проблема проявляется когда строка groupHeader всего одна, в этом случае summ просто не вызывается и ничего не считает. Ту же ситуацию обнаружил когда попробовал в футтере разместить summ считающий значение из ячейки в dataBand. Когда данных на одну строку, sum не работает.

Arin Alex

  • Developer
  • Administrator
  • Hero Member
  • *****
  • Posts: 1005
    • View Profile
Re: Работа скриптов в Horizontal layout.
« Reply #7 on: March 20, 2017, 11:04:07 pm »
А можно пример для верности ?

Sironis

  • Newbie
  • *
  • Posts: 22
    • View Profile
Re: Работа скриптов в Horizontal layout.
« Reply #8 on: March 21, 2017, 09:25:10 am »
Да, конечно. Сейчас будет.

Sironis

  • Newbie
  • *
  • Posts: 22
    • View Profile
Re: Работа скриптов в Horizontal layout.
« Reply #9 on: March 21, 2017, 10:51:16 am »
Хм.. Извиняюсь. В тестовом всё нормально работает. похоже что-то в файле шаблона было. Пересохранил, всё в норме.
Спасибо за помощь)