BiTel

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

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




Начать новую тему Ответить на тему  [ Сообщений: 8 ] 
Автор Сообщение
СообщениеДобавлено: 06 май 2009, 11:35 
Не в сети

Зарегистрирован: 27 ноя 2008, 15:13
Сообщения: 56
Карма: 0
Доброго времени суток, коллеги.

начинаю разбираться с модулем отчетов... по диагонали просмотрел ту документацию что имеется на него, покопался в готовых отчетах но так и не понял как передать в скрипт отчета параметр из фильтра.

фильтр описан так:

Код:
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 -->
отчет отрабатывает нормально.

_________________
================================
ООО "Подряд" является зарегистрированным пользователем данного аддикта.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 06 май 2009, 12:32 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Сама ошибка должна быть в server.log|out.
Параметр _filter заведен?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 06 май 2009, 13:06 
Не в сети

Зарегистрирован: 27 ноя 2008, 15:13
Сообщения: 56
Карма: 0
Amir писал(а):
Сама ошибка должна быть в server.log|out.
Параметр _filter заведен?


и там и там полет нормальный, насколько я смог проследить.

Цитата:
Для отображения в отчете даты отчета добавляем textfield с Expression Class: java.util.Date, Pattern: год: yyyy месяц: MMMMM, Expression: $P{_filter}.getDateParam( "month" ).


взято отсюда

_________________
================================
ООО "Подряд" является зарегистрированным пользователем данного аддикта.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 06 май 2009, 15:05 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Если в клиенте
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"/>


Вложения:
-kernel_contract_debtor values....png
-kernel_contract_debtor values....png [ 32.6 КБ | Просмотров: 5950 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 06 май 2009, 16:03 
Не в сети

Зарегистрирован: 27 ноя 2008, 15:13
Сообщения: 56
Карма: 0
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

_________________
================================
ООО "Подряд" является зарегистрированным пользователем данного аддикта.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 06 май 2009, 16:25 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Добавьте его через 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.*;


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 06 май 2009, 20:56 
Не в сети

Зарегистрирован: 27 ноя 2008, 15:13
Сообщения: 56
Карма: 0
не вижу особой разницы во вставке тега parameter до блока тегов properties или после. теги style не используются. думается мне, что последовательность тегов в xml внутри секции не имеет значения

но если вы настаиваете я попробую.

P.S. Сервер и клиент 4.6. если это важно. простите, забыл упомянуть.

_________________
================================
ООО "Подряд" является зарегистрированным пользователем данного аддикта.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 08 май 2009, 07:49 
Не в сети

Зарегистрирован: 27 ноя 2008, 15:13
Сообщения: 56
Карма: 0
все. разобрался. отчет работает. спасибо.

_________________
================================
ООО "Подряд" является зарегистрированным пользователем данного аддикта.


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

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


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

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


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

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