forum.bitel.ru http://forum.bitel.ru/ |
|
Операторские отчеты http://forum.bitel.ru/viewtopic.php?f=22&t=11635 |
Страница 1 из 1 |
Автор: | Inspire [ 26 май 2016, 12:43 ] |
Заголовок сообщения: | Операторские отчеты |
Здравствуйте, а есть ли возможность сделать в биллинге отчет, в котором будут следующие поля: Кол-во вызовов, Количество минут , Начисления Абонентам за Услуги связи Мегафон в рублях (без НДС), Общая стоимость за трафик ? |
Автор: | barguzin2 [ 26 май 2016, 13:16 ] |
Заголовок сообщения: | Re: Операторские отчеты |
есть ![]() смотрите модуль Reoprts, создание собственных отчётов. |
Автор: | Inspire [ 30 май 2016, 18:50 ] |
Заголовок сообщения: | Re: Операторские отчеты |
Код фильтра Код: <?xml version="1.0" encoding="UTF-8"?> <report title="Отчет для Мегафон" type="java"> <month name="month" title="Месяц"/> <contracts name="contracts"/> </report> Код табличного отчета: Код: public void fillReport( con, filter, bitel.billing.server.reports.BGCSVReport.ReportResult result ) { query = " SELECT * from contract "; ps = con.prepareStatement( query ); data = new ArrayList( 1000 ); rs = ps.executeQuery(); while( rs. next() ) { title = rs.getString("title"); comment = rs.getString("comment"); map = new HashMap(); map.put( "title", title ); map.put( "comment", comment ); data.add( map ); } result.setData( data ); } Ошибка Код: https://10.0.0.101:8443/bgbilling/executer?module=reports&report_month=01.05.2016&report_mid=6&action=Report&report_id=phone_megafon&contentType=binary&mid=9&report_class=& java.lang.NullPointerException at bitel.billing.module.services.reports.ViewReportPanel.showReport(ViewReportPanel.java:191) at bitel.billing.module.services.reports.BGReportsPanel.showReport(BGReportsPanel.java:492) at bitel.billing.module.services.reports.BGReportsPanel.generateReport(BGReportsPanel.java:407) at bitel.billing.module.services.reports.BGReportsPanel$3.actionPerformed(BGReportsPanel.java:95) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995) at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318) at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387) at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236) at java.awt.Component.processMouseEvent(Component.java:6297) at javax.swing.JComponent.processMouseEvent(JComponent.java:3275) at java.awt.Component.processEvent(Component.java:6062) at java.awt.Container.processEvent(Container.java:2039) at java.awt.Component.dispatchEventImpl(Component.java:4660) at java.awt.Container.dispatchEventImpl(Container.java:2097) at java.awt.Component.dispatchEvent(Component.java:4488) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4575) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4236) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4166) at java.awt.Container.dispatchEventImpl(Container.java:2083) at java.awt.Window.dispatchEventImpl(Window.java:2489) at java.awt.Component.dispatchEvent(Component.java:4488) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:674) at java.awt.EventQueue.access$400(EventQueue.java:81) at java.awt.EventQueue$2.run(EventQueue.java:633) at java.awt.EventQueue$2.run(EventQueue.java:631) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87) at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98) at java.awt.EventQueue$3.run(EventQueue.java:647) at java.awt.EventQueue$3.run(EventQueue.java:645) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87) at java.awt.EventQueue.dispatchEvent(EventQueue.java:644) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161) at java.awt.EventDispatchThread.run(EventDispatchThread.java:122) Что не так? Делал все как написано в доке и код брал из примера |
Автор: | barguzin2 [ 30 май 2016, 21:46 ] |
Заголовок сообщения: | Re: Операторские отчеты |
как минимум, не хватает импортов в коде отчёта. и еще непонятно что вы сделали с кодом фильтра и кодом табличного отчёта, в смысле куда их засунули. и версию биллинга не указали. помните, правильно заданный вопрос содержит половину ответа. |
Автор: | dimOn [ 30 май 2016, 22:52 ] |
Заголовок сообщения: | Re: Операторские отчеты |
возможно, вы что-то упускаете |
Автор: | Inspire [ 31 май 2016, 12:02 ] |
Заголовок сообщения: | Re: Операторские отчеты |
Фильтр - phone_megafon.rep.xml - и табличный отчет - phone_megafon.java - я поместил в папку reports в папке биллинга Добавил импорт классов в табличный отчет Код: import bitel.billing.server.phone.bean.*; import bitel.billing.common.TimeUtils; import ru.bitel.common.Utils; import java.util.*; Открываю отчет в биллинге, нажимаю кнопку генерации и выкидывает ошибку Код: https://10.0.0.101:8443/bgbilling/executer?module=reports&report_month=01.04.2016&report_mid=6&action=Report&report_id=phone_megafon&contentType=binary&mid=9&report_contracts=507&report_class=&
java.lang.NullPointerException at bitel.billing.module.services.reports.ViewReportPanel.showReport(ViewReportPanel.java:191) at bitel.billing.module.services.reports.BGReportsPanel.showReport(BGReportsPanel.java:492) at bitel.billing.module.services.reports.BGReportsPanel.generateReport(BGReportsPanel.java:407) at bitel.billing.module.services.reports.BGReportsPanel$3.actionPerformed(BGReportsPanel.java:95) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995) at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318) at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387) at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236) at java.awt.Component.processMouseEvent(Component.java:6297) at javax.swing.JComponent.processMouseEvent(JComponent.java:3275) at java.awt.Component.processEvent(Component.java:6062) at java.awt.Container.processEvent(Container.java:2039) at java.awt.Component.dispatchEventImpl(Component.java:4660) at java.awt.Container.dispatchEventImpl(Container.java:2097) at java.awt.Component.dispatchEvent(Component.java:4488) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4575) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4236) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4166) at java.awt.Container.dispatchEventImpl(Container.java:2083) at java.awt.Window.dispatchEventImpl(Window.java:2489) at java.awt.Component.dispatchEvent(Component.java:4488) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:674) at java.awt.EventQueue.access$400(EventQueue.java:81) at java.awt.EventQueue$2.run(EventQueue.java:633) at java.awt.EventQueue$2.run(EventQueue.java:631) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87) at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98) at java.awt.EventQueue$3.run(EventQueue.java:647) at java.awt.EventQueue$3.run(EventQueue.java:645) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87) at java.awt.EventQueue.dispatchEvent(EventQueue.java:644) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161) at java.awt.EventDispatchThread.run(EventDispatchThread.java:122) |
Автор: | Phricker [ 31 май 2016, 12:12 ] |
Заголовок сообщения: | Re: Операторские отчеты |
Гадание на кофейной гуще простите ![]() Прикрепите сюда файлы отчета. |
Автор: | Inspire [ 31 май 2016, 12:19 ] |
Заголовок сообщения: | Re: Операторские отчеты |
Прикрепил Вложение:
|
Автор: | Phricker [ 31 май 2016, 13:21 ] |
Заголовок сообщения: | Re: Операторские отчеты |
Из доки Код: <report title="Test" type="java"> <address title="Адрес" cityName="cityId" streetName="streetId" houseName="house"/> <combo name="status" title="Статус"> <item id="-1" title="любой"/> <item id="0" title="активен"/> <item id="4" title="приостановлен"/> <item id="3" title="закрыт"/> </combo> <fields> <item id="title" title="Имя"/> <item id="comment" title="Комментарий"/> </fields> </report> У вас же я вижу Код: map.put( "title", title ); map.put( "comment", comment ); но не вижу перечисления в fields |
Автор: | Inspire [ 31 май 2016, 14:42 ] |
Заголовок сообщения: | Re: Операторские отчеты |
Сделал копи паст из доки в файлы Все равно ошибку выдает Код: https://10.0.0.101:8443/bgbilling/executer?module=reports&report_=-1&report_status=-1&report_cityId=-1&report_mid=6&action=Report&report_streetId=-1&report_id=phone_megafon&contentType=binary&mid=9&re port_class=& java.lang.NullPointerException at bitel.billing.module.services.reports.ViewReportPanel.showReport(ViewReportPanel.java:191) at bitel.billing.module.services.reports.BGReportsPanel.showReport(BGReportsPanel.java:492) at bitel.billing.module.services.reports.BGReportsPanel.generateReport(BGReportsPanel.java:407) at bitel.billing.module.services.reports.BGReportsPanel$3.actionPerformed(BGReportsPanel.java:95) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995) at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318) at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387) at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236) at java.awt.Component.processMouseEvent(Component.java:6297) at javax.swing.JComponent.processMouseEvent(JComponent.java:3275) at java.awt.Component.processEvent(Component.java:6062) at java.awt.Container.processEvent(Container.java:2039) at java.awt.Component.dispatchEventImpl(Component.java:4660) at java.awt.Container.dispatchEventImpl(Container.java:2097) at java.awt.Component.dispatchEvent(Component.java:4488) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4575) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4236) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4166) at java.awt.Container.dispatchEventImpl(Container.java:2083) at java.awt.Window.dispatchEventImpl(Window.java:2489) at java.awt.Component.dispatchEvent(Component.java:4488) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:674) at java.awt.EventQueue.access$400(EventQueue.java:81) at java.awt.EventQueue$2.run(EventQueue.java:633) at java.awt.EventQueue$2.run(EventQueue.java:631) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87) at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98) at java.awt.EventQueue$3.run(EventQueue.java:647) at java.awt.EventQueue$3.run(EventQueue.java:645) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87) at java.awt.EventQueue.dispatchEvent(EventQueue.java:644) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161) at java.awt.EventDispatchThread.run(EventDispatchThread.java:122) Версия биллинга 5.1. Вложение:
|
Автор: | barguzin2 [ 31 май 2016, 14:54 ] |
Заголовок сообщения: | Re: Операторские отчеты |
если убрать вторую строку с query+, то всё работает. комрад, еще не исправили ошибку, а уже правите отчёт. нехорошо. |
Автор: | Inspire [ 31 май 2016, 15:51 ] |
Заголовок сообщения: | Re: Операторские отчеты |
barguzin2 писал(а): если убрать вторую строку с query+, то всё работает. комрад, еще не исправили ошибку, а уже правите отчёт. нехорошо. Разобрался, спасибо |
Автор: | Inspire [ 31 май 2016, 18:12 ] |
Заголовок сообщения: | Re: Операторские отчеты |
Как распарсить дату? Мне надо выдернуть год и месяц Код: String date = filter.getStringParam( "month" ).toString(); //возвращает дату в формате 01.05.2016 date = date.replace(".", ","); String[] arr_date = date.split(","); String year = arr_date[2]; //год String month = arr_date[1]; //месяц Так не работает. Выдает опять ту же ошибку И как сделать, чтобы в отчете в биллинге вместо кракозябр были русские символы? (параметр service) Вложение:
|
Автор: | Phricker [ 31 май 2016, 18:17 ] |
Заголовок сообщения: | Re: Операторские отчеты |
Видел костыли ))))))))))))))) Но такой ![]() Код: Calendar cal = filter.getCalendarParam("month"); int year= cal.get(Calendar.YEAR); int month = cal.get(Calendar.MONTH); Вроде как то так |
Автор: | Phricker [ 31 май 2016, 18:20 ] |
Заголовок сообщения: | Re: Операторские отчеты |
Правда учтите что java.util.Calendar считает месяцы с НУЛЯ. Т.е. январь == 0 февраль == 1 и т.д. |
Автор: | Inspire [ 31 май 2016, 18:51 ] |
Заголовок сообщения: | Re: Операторские отчеты |
query = "SELECT SUM(ses.round_session_time DIV 60) AS min, SUM(ses.cost) AS cost, COUNT(*) AS calls FROM log_session_6_"+year+month+" WHERE ses.sid = 36 AND ses.r..." Теперь из за этой строки не работает .... Из-за конкантенации year и Month |
Автор: | barguzin2 [ 31 май 2016, 19:51 ] |
Заголовок сообщения: | Re: Операторские отчеты |
кажись, пошли вопросы за 100 ![]() потому что, пилять, месяц в таблице c лидирующим нулём. ну неужели нельзя выводить в лог для отладки всякие query и прочую информацию и немного уже самому разбираться. |
Автор: | Inspire [ 02 июн 2016, 13:02 ] |
Заголовок сообщения: | Re: Операторские отчеты |
barguzin2 писал(а): кажись, пошли вопросы за 100 ![]() потому что, пилять, месяц в таблице c лидирующим нулём. ну неужели нельзя выводить в лог для отладки всякие query и прочую информацию и немного уже самому разбираться. Спасибо за идею, я не знал, что так можно Все получилось. Скажите, как убрать кракозябры Вложение: Безымянный.png [ 7.99 КБ | Просмотров: 7233 ] |
Автор: | barguzin2 [ 02 июн 2016, 13:33 ] |
Заголовок сообщения: | Re: Операторские отчеты |
в 5.1, насколько помню, нужно в win-1251 писать код java-отчёта. iconv в помощь |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |