LimeReport Forum

General Category | Основное => Discussion | Обсуждение => Topic started by: Sironis on February 27, 2017, 11:10:15 AM

Title: Работа скриптов в Horizontal layout.
Post by: Sironis on February 27, 2017, 11:10:15 AM
Доброго времени суток.

Заметил проблему связанную с работой функций SUM, AVG и прочие. Внутри Horizontal layout они не работают.
Title: Re: Работа скриптов в Horizontal layout.
Post by: Subst 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}

Ну еще Алекса подождем, может что-то изменилось с тех пор как мы с ним обсуждали этот вопрос
Title: Re: Работа скриптов в Horizontal layout.
Post by: Arin Alex on February 28, 2017, 08:55:05 PM
Как правильно сказал Subst агрегатные функции работают только в футерах. В процессе генерации бандов значения накапливаются и в момент генерации футера вычисляются. И наличие горизонтальной группировки на это не влияет. Если это не так, можно заслать пример, я гляну.
Title: Re: Работа скриптов в Horizontal layout.
Post by: Sironis on March 20, 2017, 05:56:58 PM
Спасибо за ответ! Тогда можно другой вопрос? У меня функция SUM() работает по значению ячейки в GroupBandHeader, и при условии если групп больше одной она отрабатывает нормально. Однако, как только появляется вариант данных когда группа всего одна мне на месте SUM прилетает пустая ячейка.

С чем это может быть связано?
Title: Re: Работа скриптов в Horizontal layout.
Post by: Arin Alex on March 20, 2017, 06:34:59 PM
На данный момент нормальная работа групповых функций гарантированна только в футере :) в заголовке эти функции могут возвращать вовсе не то, что от них ожидается
Title: Re: Работа скриптов в Horizontal layout.
Post by: Arin Alex on March 20, 2017, 08:12:14 PM
Если очень надо, могу подумать над использованием групповых функций в заголовках
Title: Re: Работа скриптов в Horizontal layout.
Post by: Sironis on March 20, 2017, 10:38:40 PM
Было бы замечательно. Думаю такой функционал очень добавил гибкости в работе с библиотекой.
Тем не менее, посмотрите ещё пожалуйста. Вы не правильно поняли вопрос. Повторю момент вышеописанный, у меня в футтере находится агрегатная функция sum берущая значение из groupheadera того же dataBand'a что и у футтера.

Проблема проявляется когда строка groupHeader всего одна, в этом случае summ просто не вызывается и ничего не считает. Ту же ситуацию обнаружил когда попробовал в футтере разместить summ считающий значение из ячейки в dataBand. Когда данных на одну строку, sum не работает.
Title: Re: Работа скриптов в Horizontal layout.
Post by: Arin Alex on March 20, 2017, 11:04:07 PM
А можно пример для верности ?
Title: Re: Работа скриптов в Horizontal layout.
Post by: Sironis on March 21, 2017, 09:25:10 AM
Да, конечно. Сейчас будет.
Title: Re: Работа скриптов в Horizontal layout.
Post by: Sironis on March 21, 2017, 10:51:16 AM
Хм.. Извиняюсь. В тестовом всё нормально работает. похоже что-то в файле шаблона было. Пересохранил, всё в норме.
Спасибо за помощь)