BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 27 ноя 2021, 08:11

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




Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
 Заголовок сообщения: 7.1 Ошибка в табличном отчете.
СообщениеДобавлено: 06 авг 2019, 15:23 
Не в сети
Клиент

Зарегистрирован: 29 мар 2013, 11:54
Сообщения: 262
Откуда: Краснодар
Карма: 5
Добрый день! Подскажите плиз. Делаю отчет как документации, и вылазит ошибка. что не так я делаю?

Клиент: вер. 7.1.157 / 12.12.2018 19:01:20
os: Windows 10; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_181
Сервер: вер. 7.1.1073 / 12.12.2018 19:03:13
os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_161

import java.sql.*;
import java.util.*;

public void fillReport( con, filter, result )
{
PreparedStatement ps = con.prepareStatement( result.sql( "SELECT t3.title as col1," +
" SUM(t1.summa) as col2 FROM contract_account AS t1, contract AS t2, service AS t3"+
" WHERE t1.cid=t2.id AND t1.sid=t3.id AND t2.gr&$(gr)>0 AND t1.yy=$yy(month) AND"+
" t1.mm=$mm(month) GROUP BY t1.sid ORDER BY t3.mid, t3.title", filter ) );

ResultSet rs = ps.executeQuery();

double total = 0;
List res = new ArrayList();
while(rs.next())
{
Map map = new HashMap();
map.put("col1", rs.getString(1));
double val = rs.getDouble(2);
map.put("col2", val);
total += val;

res.add(map);
}

Map params = new HashMap();
params.put( "total", total );

result.setDataSource( res );
result.setParams( params );
}

вылазит ошибка

java.lang.RuntimeException: Method fillReport( ru.bitel.bgbilling.server.dbcp.PoolGuardConnectionWrapper, bitel.billing.server.admin.reports.BGReportFilter, bitel.billing.server.reports.BGCSVReport$ReportResult, java.util.LinkedHashMap )
not found in bsh scripted object: global : at Line: -1 : in file: <Called from Java Code> : <Compiled Java Code> at bitel.billing.server.reports.BGCSVReport.getResult(BGCSVReport.java:238)
at bitel.billing.server.reports.BGCSVReport.fillReportToStream(BGCSVReport.java:80)
at bitel.billing.server.reports.action.ActionReport.doAction(ActionReport.java:59)
at bitel.billing.server.Executer.doModule(SourceFile:600)
at bitel.billing.server.Executer$1.run(SourceFile:198)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:422)
at bitel.billing.server.Executer.doPost(SourceFile:192)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at ru.bitel.common.server.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:54)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:478)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:624)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:80)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:799)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1455)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)
Caused by: Method fillReport( ru.bitel.bgbilling.server.dbcp.PoolGuardConnectionWrapper, bitel.billing.server.admin.reports.BGReportFilter, bitel.billing.server.reports.BGCSVReport$ReportResult, java.util.LinkedHashMap )
not found in bsh scripted object: global : at Line: -1 : in file: <Called from Java Code> : <Compiled Java Code> at bsh.This.invokeMethod(This.java:293)
at bsh.This.invokeMethod(This.java:174)
at bsh.XThis$Handler.invokeImpl(XThis.java:194)
at bsh.XThis$Handler.invoke(XThis.java:131)
at com.sun.proxy.$Proxy99.fillReport(Unknown Source)
at bitel.billing.server.reports.BGCSVReport.getResult(BGCSVReport.java:223)
... 31 more


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: 7.1 Ошибка в табличном отчете.
СообщениеДобавлено: 06 авг 2019, 16:11 
Не в сети
Разработчик

Зарегистрирован: 07 апр 2007, 23:51
Сообщения: 4482
Откуда: Уфа, Россия
Карма: 186
о какой документации речь?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: 7.1 Ошибка в табличном отчете.
СообщениеДобавлено: 06 авг 2019, 17:21 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 29 мар 2010, 23:11
Сообщения: 5837
Карма: 472
Ping333 писал(а):
что не так я делаю?

На первый взгляд - пользуетесь bsh в отчетах. Но я не уверен точно.

Вот файл описания отчета
custom_test_report.rep.xml
Код:
<?xml version="1.0" encoding="UTF-8"?>
<report title="Какой-то тестовый отчёт" type="java"
        dyn_class="ru.xxx.bgbilling.modules.reports.reports.custom.TestReport">
</report>


Вот собственно динамический класс отчёта
Код:
package ru.xxx.bgbilling.modules.reports.reports.custom;

import bitel.billing.server.admin.reports.BGReportFilter;
import bitel.billing.server.reports.BGCSVReport.CSVFillerDataFields;
import bitel.billing.server.reports.BGCSVReport.ReportResult;
import org.apache.log4j.Logger;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class TestReport
        implements CSVFillerDataFields {

    private static final Logger logger = Logger.getLogger(TestReport.class);

    @Override
    public void fillReport(Connection con, BGReportFilter filter, ReportResult result, Map<String, String> fields) throws Exception {
        //Заполняем данные о стобцах. Иногда этого не делаю если выдаю ошибку.
        fillReportFields(fields);
        List<Map<String, String>> data = new ArrayList<Map<String, String>>(100);

        String query = " SELECT id, title, comment FROM contract LIMIT 10 ";
        try (PreparedStatement ps = con.prepareStatement(query);
             ResultSet rs = ps.executeQuery()) {
            while (rs.next()) {
                HashMap<String, String> map = new HashMap<String, String>();
                map.put("cid", rs.getString("id"));
                map.put("title", rs.getString("title"));
                map.put("comment", rs.getString("comment"));
                data.add(map);
            }
        }
        result.setData(data);
    }

    private void fillReportFields(Map<String, String> fields) {
        fields.put("cid", "#cid");
        fields.put("title", "Договор");
        fields.put("comment", "Наименование");
    }
}


Работает.

_________________
Цитаты великих людей :umnik:
Напишите в helpdesk © stark
повторяю: => хелпдеск => доработка => профит © dimOn
свершилось... © skn
Мой код изящен, лёгок, оригинален, краток. Как прохладный весенний ветерок, как звонкий ручей! © dimOn
Вежливый разработчик © Artur
Эти баги тоже исправлены, как и те, которые еще не написаны © Artur
ну т.е. существует воркэраунд, ок © dimOn


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: 7.1 Ошибка в табличном отчете.
СообщениеДобавлено: 06 авг 2019, 17:49 
Не в сети
Клиент

Зарегистрирован: 29 мар 2013, 11:54
Сообщения: 262
Откуда: Краснодар
Карма: 5
я про эту документацию
https://docs.bitel.ru/pages/viewpage.ac ... =119505587
спасибо вам. попробую как вы написали


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

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


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

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


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

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