forum.bitel.ru http://forum.bitel.ru/ |
|
Отчет с подотчетом http://forum.bitel.ru/viewtopic.php?f=12&t=8136 |
Страница 1 из 1 |
Автор: | Ping333 [ 10 июн 2013, 10:46 ] |
Заголовок сообщения: | Отчет с подотчетом |
Добрый день! Помогите с отчетом примитивным. Делаю отчет для понимания принципов. Сделал основной отчет c простым запросом sql select id from contract limit 10, gперенес его в отчеты биллинга, работает. Добавляю в основной отчет подотчет (subreports) также с примитивный запросом SELECT title from contract limit 2, в jasper он работает, при переносе в биллинг вылетает ошибка Код: WARN [phone_my1_subreport2 subreport filler] JRJdbcQueryExecuter - The supplied java.sql.Connection object is null. а так понял неправильное подключение к базе, в таком случае, как подключаться подотчету к базе, чтобы выполнить запрос? Клиент: вер. 5.2 сборка 1159 от 08.04.2013 18:07:14 Сервер: вер. 5.2 сборка 1477 от 08.04.2013 19:33:37 os: Linux; java: OpenJDK Client VM, v.1.6.0_27 reports вер. 5.2 сборка 193 от 28.02.2013 10:57:03 Jasper 5.1.0 |
Автор: | aardvark [ 10 июн 2013, 12:03 ] |
Заголовок сообщения: | Re: Отчет с подотчетом |
Весь код покажите. Наводящий вопрос: что передаёте в качестве входных параметров методу? |
Автор: | Ping333 [ 10 июн 2013, 12:54 ] |
Заголовок сообщения: | Re: Отчет с подотчетом |
в подотчете указал Код: <dataSourceExpression><![CDATA[new net.sf.jasperreports.engine.JREmptyDataSource()]]></dataSourceExpression> ошибка изчезла, осталась ошибка Код: 06-10/14:44:35 WARN [bitel.billing.server.reports.action.ActionReport] JRTextElementFactory - The 'lineSpacing' attribute is deprecated. Use the <paragraph> tag instead. 06-10/14:44:35 WARN [bitel.billing.server.reports.action.ActionReport] JRTextElementFactory - The 'lineSpacing' attribute is deprecated. Use the <paragraph> tag instead. 06-10/14:44:35 WARN [bitel.billing.server.reports.action.ActionReport] JRTextElementFactory - The 'lineSpacing' attribute is deprecated. Use the <paragraph> tag instead. 06-10/14:44:35 ERROR [bitel.billing.server.reports.action.ActionReport] JRFillSubreport - Fill 20331600: exception java.lang.NullPointerException at net.sf.jasperreports.engine.fill.JRFillTextField.setTemplatePattern(JRFillTextField.java:324) at net.sf.jasperreports.engine.fill.JRFillTextField.createElementTemplate(JRFillTextField.java:312) at net.sf.jasperreports.engine.fill.JRFillElement.getElementTemplate(JRFillElement.java:777) at net.sf.jasperreports.engine.fill.JRFillTextField.getJRTemplateText(JRFillTextField.java:300) at net.sf.jasperreports.engine.fill.JRFillTextField.fill(JRFillTextField.java:638) at net.sf.jasperreports.engine.fill.JRFillElementContainer.fillElements(JRFillElementContainer.java:571) at net.sf.jasperreports.engine.fill.JRFillBand.fill(JRFillBand.java:432) at net.sf.jasperreports.engine.fill.JRFillBand.fill(JRFillBand.java:378) at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillColumnBand(JRVerticalFiller.java:2038) at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillDetail(JRVerticalFiller.java:760) at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportStart(JRVerticalFiller.java:270) at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:128) at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:946) at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:864) at net.sf.jasperreports.engine.fill.JRFillSubreport.fillSubreport(JRFillSubreport.java:613) at net.sf.jasperreports.engine.fill.JRSubreportRunnable.run(JRSubreportRunnable.java:59) at net.sf.jasperreports.engine.fill.JRThreadSubreportRunner.run(JRThreadSubreportRunner.java:205) at java.lang.Thread.run(Thread.java:679) 06-10/14:44:35 ERROR [bitel.billing.server.reports.action.ActionReport] LoggingPrintStream - java.lang.NullPointerException 06-10/14:44:35 ERROR [bitel.billing.server.reports.action.ActionReport] LoggingPrintStream - at net.sf.jasperreports.engine.fill.JRFillTextField.setTemplatePattern(JRFillTextField.java:324) 06-10/14:44:35 ERROR [bitel.billing.server.reports.action.ActionReport] LoggingPrintStream - at net.sf.jasperreports.engine.fill.JRFillTextField.createElementTemplate(JRFillTextField.java:312) 06-10/14:44:35 ERROR [bitel.billing.server.reports.action.ActionReport] LoggingPrintStream - at net.sf.jasperreports.engine.fill.JRFillElement.getElementTemplate(JRFillElement.java:777) 06-10/14:44:35 ERROR [bitel.billing.server.reports.action.ActionReport] LoggingPrintStream - at net.sf.jasperreports.engine.fill.JRFillTextField.getJRTemplateText(JRFillTextField.java:300) 06-10/14:44:35 ERROR [bitel.billing.server.reports.action.ActionReport] LoggingPrintStream - at net.sf.jasperreports.engine.fill.JRFillTextField.fill(JRFillTextField.java:638) 06-10/14:44:35 ERROR [bitel.billing.server.reports.action.ActionReport] LoggingPrintStream - at net.sf.jasperreports.engine.fill.JRFillElementContainer.fillElements(JRFillElementContainer.java:571) 06-10/14:44:35 ERROR [bitel.billing.server.reports.action.ActionReport] LoggingPrintStream - at net.sf.jasperreports.engine.fill.JRFillBand.fill(JRFillBand.java:432) 06-10/14:44:35 ERROR [bitel.billing.server.reports.action.ActionReport] LoggingPrintStream - at net.sf.jasperreports.engine.fill.JRFillBand.fill(JRFillBand.java:378) 06-10/14:44:35 ERROR [bitel.billing.server.reports.action.ActionReport] LoggingPrintStream - at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillColumnBand(JRVerticalFiller.java:2038) 06-10/14:44:35 ERROR [bitel.billing.server.reports.action.ActionReport] LoggingPrintStream - at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillDetail(JRVerticalFiller.java:760) 06-10/14:44:35 ERROR [bitel.billing.server.reports.action.ActionReport] LoggingPrintStream - at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportStart(JRVerticalFiller.java:270) 06-10/14:44:35 ERROR [bitel.billing.server.reports.action.ActionReport] LoggingPrintStream - at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:128) 06-10/14:44:35 ERROR [bitel.billing.server.reports.action.ActionReport] LoggingPrintStream - at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:946) 06-10/14:44:35 ERROR [bitel.billing.server.reports.action.ActionReport] LoggingPrintStream - at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:864) 06-10/14:44:35 ERROR [bitel.billing.server.reports.action.ActionReport] LoggingPrintStream - at net.sf.jasperreports.engine.fill.JRFillSubreport.fillSubreport(JRFillSubreport.java:613) 06-10/14:44:35 ERROR [bitel.billing.server.reports.action.ActionReport] LoggingPrintStream - at net.sf.jasperreports.engine.fill.JRSubreportRunnable.run(JRSubreportRunnable.java:59) 06-10/14:44:35 ERROR [bitel.billing.server.reports.action.ActionReport] LoggingPrintStream - at net.sf.jasperreports.engine.fill.JRThreadSubreportRunner.run(JRThreadSubreportRunner.java:205) 06-10/14:44:35 ERROR [bitel.billing.server.reports.action.ActionReport] LoggingPrintStream - at java.lang.Thread.run(Thread.java:679) в фильтре никаких параметров не передаю. Код: <?xml version="1.0" encoding="UTF-8"?> <report title="Phone_my1"> </report> код основного отчета Код: <?xml version="1.0" encoding="UTF-8"?> <jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=$ <property name="ireport.zoom" value="1.1000000000000003"/> <property name="ireport.x" value="0"/> <property name="ireport.y" value="0"/> <import value="net.sf.jasperreports.engine.*"/> <import value="java.util.*"/> <import value="net.sf.jasperreports.engine.data.*"/> <parameter name="SUBREPORT_DIR" class="java.lang.String" isForPrompting="false"> <defaultValueExpression><![CDATA["/usr/local/BGBillingServer/reports/"]]></defaultValueExpression> </parameter> <queryString> <![CDATA[select id from contract limit 10]]> </queryString> <field name="id" class="java.lang.String"> <fieldDescription><![CDATA[]]></fieldDescription> </field> <variable name="variable1" class="java.lang.Integer"> <variableExpression><![CDATA[+4]]></variableExpression> <initialValueExpression><![CDATA[]]></initialValueExpression> </variable> <title> <band height="20" splitType="Stretch"> <staticText> <reportElement x="0" y="0" width="555" height="20"/> <textElement lineSpacing="Single"/> <text><![CDATA[phone_my1]]></text> </staticText> </band> </title> <columnHeader> <band height="20" splitType="Stretch"/> </columnHeader> <detail> <band height="40" splitType="Stretch"> <textField> <reportElement x="0" y="0" width="100" height="20"/> <textElement lineSpacing="Single"/> <textFieldExpression class="java.lang.String"><![CDATA[$F{id}]]></textFieldExpression> </textField> <subreport> <reportElement x="100" y="0" width="193" height="40"/> <dataSourceExpression><![CDATA[new net.sf.jasperreports.engine.JREmptyDataSource()]]></dataSourceExpression> <subreportExpression class="java.lang.String"><![CDATA[$P{SUBREPORT_DIR} + "phone_my1_subreport2.jasper"]]></subre$ </subreport> </band> </detail> <columnFooter> <band height="20"> <textField> <reportElement x="0" y="0" width="100" height="20"/> <textElement lineSpacing="Single"/> <textFieldExpression class="java.lang.String"><![CDATA[$V{variable1}.toString()]]></textFieldExpression> </textField> </band> </columnFooter> </jasperReport> код подотчета Код: <?xml version="1.0" encoding="UTF-8"?>
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="phone_my1_subreport2" pageWidth="555" pageHeight="802" columnWidth="555" leftMargin="0" rightMargin="0" topMargin="0" bottomMargin="0"> <property name="ireport.zoom" value="1.0"/> <property name="ireport.x" value="0"/> <property name="ireport.y" value="0"/> <import value="bitel.billing.server.util.*"/> <import value="net.sf.jasperreports.engine.*"/> <import value="java.util.*"/> <import value="java.sql.*"/> <import value="bitel.billing.server.contract.bean.*"/> <import value="net.sf.jasperreports.engine.data.*"/> <import value="bitel.billing.common.*"/> <queryString> <![CDATA[SELECT title from contract limit 2]]> </queryString> <field name="title" class="java.lang.String"> <fieldDescription><![CDATA[]]></fieldDescription> </field> <detail> <band height="20"> <staticText> <reportElement x="176" y="0" width="100" height="20"/> <textElement lineSpacing="Single"/> <text><![CDATA[Static text]]></text> </staticText> <textField> <reportElement x="0" y="0" width="100" height="20"/> <textElement lineSpacing="Single"/> <textFieldExpression class="java.lang.String"><![CDATA[$F{title}.getClass()]]></textFieldExpression> </textField> </band> </detail> </jasperReport> |
Автор: | aardvark [ 10 июн 2013, 13:52 ] |
Заголовок сообщения: | Re: Отчет с подотчетом |
у вас нету коннекта с базой биллинга смотрите здесь как настроить для jasper биллинговый datasource http://bgbilling.ru/v5.1/doc_op/billing.html#d0e22469 |
Автор: | Ping333 [ 10 июн 2013, 14:02 ] |
Заголовок сообщения: | Re: Отчет с подотчетом |
спасибо. проверю еще раз. Подскажите, если нет коннекта с базой, почему тогда основной отчет (без подотчета) выполняется в биллинге? |
Автор: | aardvark [ 10 июн 2013, 15:27 ] |
Заголовок сообщения: | Re: Отчет с подотчетом |
Потому что вы передаёте в подотчёт [CDATA[new net.sf.jasperreports.engine.JREmptyDataSource()] пустой датасурс, из которого подотчёт пытается потом сделать наполнение текстовых полей. Видимо когда он эти поля не находит ему плохо и становится. Почему основной отчёт работает без проблем не могу пока сказать. |
Автор: | Ping333 [ 13 июн 2013, 20:56 ] |
Заголовок сообщения: | Re: Отчет с подотчетом |
может разработчики подскажут, как передать в подотчет параметры подключения? |
Автор: | Ping333 [ 14 июн 2013, 13:10 ] |
Заголовок сообщения: | Re: Отчет с подотчетом |
попробовал сделать так. создал основной отчет, в нем подотчет. в параметрах подотчета указал параметр java.sql.DriverManager.getConnection(адрес ... логин ... пароль...).далее возвращаю нужные данные в главный отчет(без вывода данных в подотчете) и в главном отчете рисую то что необходимо. Так все работает нормально, в jasper все компилируется, в биллинге отчет рисуется. Но не думаю что это корректно... Вобщем проблема возникает как только я в подотчете начинаю выводить данные на лист. ERROR [bitel.billing.server.reports.action.ActionReport] JRFillSubreport - Fill 14076162: exception java.lang.NullPointerException at java.lang.Class.isAssignableFrom(Native Method) Может кто знает решение? |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |