forum.bitel.ru http://forum.bitel.ru/ |
|
iReport и передача параметра из фильтра http://forum.bitel.ru/viewtopic.php?f=12&t=2284 |
Страница 1 из 1 |
Автор: | skandinav [ 06 май 2009, 11:35 ] |
Заголовок сообщения: | iReport и передача параметра из фильтра |
Доброго времени суток, коллеги. начинаю разбираться с модулем отчетов... по диагонали просмотрел ту документацию что имеется на него, покопался в готовых отчетах но так и не понял как передать в скрипт отчета параметр из фильтра. фильтр описан так: Код: reports]# cat ru.bitel.bgbilling.plugins.crm_prihod.rep.xml <?xml version="1.0" encoding="UTF-8"?> <report title="Отчет за период"> <period name1="date1" name2="date2"/> </report> пытаюсь получить данные из поля date1 и через $F{date1} и через ${date1} и через Код: <textFieldExpression class="java.util.Date"><![CDATA[$P{_filter}.getDateParam("date1")]]></textFieldExpression> на все эти телодвижения при запуске отчета в клиенте возникает ошибка типа "Произошла ошибка" в логе клиента Код: https://10.10.10.113:8443/bgbilling/executer?report_period2=05.06.2009&report_period1=28.04.2009&module=reports&report_mid=0&action=Report&report_id=ru.bitel.bgbilling.plugins.crm_prihod&contentType=binary&mid=11& net.sf.jasperreports.engine.JRException: Error loading object from InputStream at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:196) как правильно получить дату из фильтра и вставить ее в поле textFieldExpression? P.S. если поле закоментировать Код: <!-- textFieldExpression class="java.util.Date"><![CDATA[$P{_filter}.getDateParam("date1")]]></textFieldExpression --> отчет отрабатывает нормально.
|
Автор: | Amir [ 06 май 2009, 12:32 ] |
Заголовок сообщения: | |
Сама ошибка должна быть в server.log|out. Параметр _filter заведен? |
Автор: | skandinav [ 06 май 2009, 13:06 ] |
Заголовок сообщения: | |
Amir писал(а): Сама ошибка должна быть в server.log|out. Параметр _filter заведен? и там и там полет нормальный, насколько я смог проследить. Цитата: Для отображения в отчете даты отчета добавляем textfield с Expression Class: java.util.Date, Pattern: год: yyyy месяц: MMMMM, Expression: $P{_filter}.getDateParam( "month" ).
взято отсюда |
Автор: | skandinav [ 06 май 2009, 16:03 ] |
Заголовок сообщения: | |
Amir писал(а): Если в клиенте
report_period2=05.06.2009&report_period1=28.04.2009&module=reports&report_mid=0&action=Report&report_id=ru.bitel.bgbilling.plugins.crm_prihod&contentType=binary&mid=11& net.sf.jasperreports.engine.JRException: Error loading object from InputStream at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:196) то в сервере должна быть ошибка - ошибка в клиенте - следствие ошибки на сервере. А отчет делали на основе какого-то или новый? Если используется параметр ${_filter}, то он должен быть указан в редакторе параметров. В xml это выглядит как <parameter name="_filter" isForPrompting="false" class="bitel.billing.server.admin.reports.BGReportFilter"/> после добавления вашего тега в jrxml в server.log появилась ошибка: Код: 05-06/20:46:39 ERROR [http-8443-1] LoggingPrintStream - Caused by: org.xml.sax.SAXParseException: The content of element type "jasperReport" must match "(property*,import*,template*,reportFont*,style*,subDataset*,parameter*,queryString?,field*,sortField*,variable*,filterExpression?,group*,background?,title?,pageHeader?,columnHeader?,detail?,columnFooter?,pageFooter?,lastPageFooter?,summary?,noData?)".
тег добавляется as is после тега <jasperReport ...> отчет генерился с помощью iReport 3.0.0 |
Автор: | Amir [ 06 май 2009, 16:25 ] |
Заголовок сообщения: | |
Добавьте его через ireport, как на картинке. Если в jrxml, то например так: Код: <?xml version="1.0" encoding="UTF-8" ?>
<!-- Created with iReport - A designer for JasperReports --> <!DOCTYPE jasperReport PUBLIC "//JasperReports//DTD Report Design//EN" "http://jasperreports.sourceforge.net/dtds/jasperreport.dtd"> <jasperReport name="kernel_contract_debtor" columnCount="1" printOrder="Vertical" orientation="Landscape" pageWidth="842" pageHeight="595" columnWidth="782" columnSpacing="0" leftMargin="30" rightMargin="30" topMargin="20" bottomMargin="20" whenNoDataType="NoPages" isTitleNewPage="false" isSummaryNewPage="false"> <property name="ireport.scriptlethandling" value="0" /> <property name="ireport.encoding" value="UTF-8" /> <import value="java.util.*" /> <import value="net.sf.jasperreports.engine.*" /> <import value="net.sf.jasperreports.engine.data.*" /> <style name="Center" isDefault="false" hAlign="Center" padding="0" topPadding="1" leftPadding="2" bottomPadding="1" rightPadding="1" /> <style name="border" isDefault="false" border="Thin" borderColor="#000000" /> <style name="Right" isDefault="false" hAlign="Right" topPadding="1" leftPadding="1" bottomPadding="1" rightPadding="1" /> <parameter name="_filter" isForPrompting="false" class="bitel.billing.server.admin.reports.BGReportFilter"/> <parameter name="gen_time" isForPrompting="false" class="java.lang.Long"/> <queryString language="bgbs"><![CDATA[import java.sql.*; import java.util.*; import java.util.regex.*; import java.sql.*; |
Автор: | skandinav [ 06 май 2009, 20:56 ] |
Заголовок сообщения: | |
не вижу особой разницы во вставке тега parameter до блока тегов properties или после. теги style не используются. думается мне, что последовательность тегов в xml внутри секции не имеет значения но если вы настаиваете я попробую. P.S. Сервер и клиент 4.6. если это важно. простите, забыл упомянуть. |
Автор: | skandinav [ 08 май 2009, 07:49 ] |
Заголовок сообщения: | |
все. разобрался. отчет работает. спасибо. |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |