BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 18 апр 2024, 19:34

Часовой пояс: UTC + 5 часов [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 3 ] 
Автор Сообщение
 Заголовок сообщения: Отчет из нескольких запросов
СообщениеДобавлено: 16 дек 2009, 03:38 
Не в сети

Зарегистрирован: 05 окт 2007, 13:36
Сообщения: 1073
Карма: 46
Подскажите пожалуйста как создать отчет, который формируется из нескольких запросов?
Например мне нужен отчет с запросом
Код:
select c.title,c.comment, ca.summa, ca.sid from contract as c, contract_account as ca where ca.cid=c.id and ca.sid=$(sid) and ca.yy=$yy(month) and ca.mm=$mm(month)

И чтобы снизу в поле итого выводилось
Код:
select sum(ca.summa) as summ from contract as c, contract_account as ca where ca.cid=c.id and ca.sid=$(sid) and ca.yy=$yy(month) and ca.mm=$mm(month)

Засунуть второй запрос в подзапрос это некрасиво, не предлагать.

_________________
интеграция биллинга с 1с http://bgbilling-1c.ru/


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Отчет из нескольких запросов
СообщениеДобавлено: 16 дек 2009, 03:59 
Не в сети

Зарегистрирован: 07 май 2008, 13:34
Сообщения: 594
Откуда: Москва
Карма: 27
это называется subrepports, погугли, я все ленюсь собрать в кучу ссылки на клочки документации по JR/ireports, к тому же большая ее чать это контрафактная литература с трекеров, ссылки на которые давать некорректно
еще один вариант это поставить свежий ireport (3.7.0 последний) и поизучать его возможности, по идее там не все так сложно, конкретно по сабрепортам я даже на ютубу ролик видел, показывается как в ireports их делать

Это был ответ на вопрос как сделать отчет из нескольких запросов никак между собой не связанных. Конкретно же по твоему вопросу основываясь на приведенных селектах правильным ответом будет использование вычисляемых переменных jasperreports и вывод требуемого тебе значения, например, в column footer

это что то вроде такого
<variable name="AAASUM" class="java.lang.Integer" resetType="Page" calculation="sum">
<variableExpression>$F{AAA}</variableExpression>
<initialValueExpression>new Integer(0)</initialValueExpression>
</variable>
ну и где надо обращаешься к ней как $V{AAASUM}, если я правильно помню

но опять же, если внимательно освоить irepport, то всего этого можно и не знать, достаточно узнать эта фича называется в меню irepport-а :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Отчет из нескольких запросов
СообщениеДобавлено: 16 дек 2009, 14:15 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Примерно так и есть, только initialValueExpression не обязательно, а resetType="Page" будет означать что переменная будет сбрасываться каждую новую страницу, для суммы по всему отчету надо выбирать resetType=Report.
Для суммирования не целых значений лучше применять не Float и Double, а java.math.BigDecimal.

Также там есть группировка (при смене группы также возможен сброс переменной). Группировка происходит по условию, например, в условии группы можно указать $F{cid}, чтобы группировать по коду договора. При этом datasource должен быть отсортирован по коду договора - JR при группировке ничего не сортирует, а просто смотрит совпадает ли условие группы с предыдущей записью.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 3 ] 

Часовой пояс: UTC + 5 часов [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
POWERED_BY
Русская поддержка phpBB
[ Time : 0.069s | 24 Queries | GZIP : On ]