forum.bitel.ru http://forum.bitel.ru/ |
|
Отчет из нескольких запросов http://forum.bitel.ru/viewtopic.php?f=12&t=3331 |
Страница 1 из 1 |
Автор: | Akhmat [ 16 дек 2009, 03:38 ] |
Заголовок сообщения: | Отчет из нескольких запросов |
Подскажите пожалуйста как создать отчет, который формируется из нескольких запросов? Например мне нужен отчет с запросом Код: 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) Засунуть второй запрос в подзапрос это некрасиво, не предлагать. |
Автор: | Jimson [ 16 дек 2009, 03:59 ] |
Заголовок сообщения: | Re: Отчет из нескольких запросов |
это называется 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-а ![]() |
Автор: | Amir [ 16 дек 2009, 14:15 ] |
Заголовок сообщения: | Re: Отчет из нескольких запросов |
Примерно так и есть, только initialValueExpression не обязательно, а resetType="Page" будет означать что переменная будет сбрасываться каждую новую страницу, для суммы по всему отчету надо выбирать resetType=Report. Для суммирования не целых значений лучше применять не Float и Double, а java.math.BigDecimal. Также там есть группировка (при смене группы также возможен сброс переменной). Группировка происходит по условию, например, в условии группы можно указать $F{cid}, чтобы группировать по коду договора. При этом datasource должен быть отсортирован по коду договора - JR при группировке ничего не сортирует, а просто смотрит совпадает ли условие группы с предыдущей записью. |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |