forum.bitel.ru http://forum.bitel.ru/ |
|
7.1 Ошибка в табличном отчете. http://forum.bitel.ru/viewtopic.php?f=12&t=13415 |
Страница 1 из 1 |
Автор: | Ping333 [ 06 авг 2019, 15:23 ] |
Заголовок сообщения: | 7.1 Ошибка в табличном отчете. |
Добрый день! Подскажите плиз. Делаю отчет как документации, и вылазит ошибка. что не так я делаю? Клиент: вер. 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 |
Автор: | skn [ 06 авг 2019, 16:11 ] |
Заголовок сообщения: | Re: 7.1 Ошибка в табличном отчете. |
о какой документации речь? |
Автор: | Phricker [ 06 авг 2019, 17:21 ] |
Заголовок сообщения: | Re: 7.1 Ошибка в табличном отчете. |
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", "Наименование"); } } Работает. |
Автор: | Ping333 [ 06 авг 2019, 17:49 ] |
Заголовок сообщения: | Re: 7.1 Ошибка в табличном отчете. |
я про эту документацию https://docs.bitel.ru/pages/viewpage.ac ... =119505587 спасибо вам. попробую как вы написали |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |