Добрый день
Помогите, пожалуйста, с проблемой. Пытаюсь сделать отчёт для модуля MPS. Отчёт в принципе работает, но захотелось красивостей, а именно
вместо числового идентификатора платежа, хочу сделать буквенный. Сделал условие (вот строка из отчёта)
Код:
<textFieldExpression class="java.lang.String"><![CDATA[( $F{type}.intValue()==1 ? "Wellnet" : ( $F{type}.intValue()==1 ? "Телефония" : 0 ) )]]></textFieldExpression>
Но не работает так
выдаёт ошибку
Код:
07-28/11:58:52 ERROR [http-18443-1] LoggingPrintStream - net.sf.jasperreports.engine.fill.JRExpressionEvalException: Error evaluating expression :
Source text : ( $F{type}.intValue()==1 ? "Wellnet" : ( $F{type}.intValue()==1 ? "Телефония" : 0 ) )
07-28/11:58:52 ERROR [http-18443-1] LoggingPrintStream - at net.sf.jasperreports.engine.fill.JREvaluator.evaluate(JREvaluator.java:197)
07-28/11:58:52 ERROR [http-18443-1] LoggingPrintStream - at net.sf.jasperreports.engine.fill.JRCalculator.evaluate(JRCalculator.java:537)
07-28/11:58:52 ERROR [http-18443-1] LoggingPrintStream - at net.sf.jasperreports.engine.fill.JRCalculator.evaluate(JRCalculator.java:505)
07-28/11:58:52 ERROR [http-18443-1] LoggingPrintStream - at net.sf.jasperreports.engine.fill.JRFillElement.evaluateExpression(JRFillElement.java:826)
07-28/11:58:52 ERROR [http-18443-1] LoggingPrintStream - at net.sf.jasperreports.engine.fill.JRFillTextField.evaluateText(JRFillTextField.java:368)
07-28/11:58:52 ERROR [http-18443-1] LoggingPrintStream - at net.sf.jasperreports.engine.fill.JRFillTextField.evaluate(JRFillTextField.java:353)
07-28/11:58:52 ERROR [http-18443-1] LoggingPrintStream - at net.sf.jasperreports.engine.fill.JRFillElementContainer.evaluate(JRFillElementContainer.java:275)
07-28/11:58:52 ERROR [http-18443-1] LoggingPrintStream - at net.sf.jasperreports.engine.fill.JRFillBand.evaluate(JRFillBand.java:426)
07-28/11:58:52 ERROR [http-18443-1] LoggingPrintStream - at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillColumnBand(JRVerticalFiller.java:1380)
07-28/11:58:52 ERROR [http-18443-1] LoggingPrintStream - at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillDetail(JRVerticalFiller.java:692)
07-28/11:58:52 ERROR [http-18443-1] LoggingPrintStream - at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportStart(JRVerticalFiller.java:255)
07-28/11:58:52 ERROR [http-18443-1] LoggingPrintStream - at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:113)
07-28/11:58:52 ERROR [http-18443-1] LoggingPrintStream - at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:889)
07-28/11:58:52 ERROR [http-18443-1] LoggingPrintStream - at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:811)
07-28/11:58:52 ERROR [http-18443-1] LoggingPrintStream - at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:89)
07-28/11:58:52 ERROR [http-18443-1] LoggingPrintStream - at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:601)
07-28/11:58:52 ERROR [http-18443-1] LoggingPrintStream - at net.sf.jasperreports.engine.JasperFillManager.fillReportToStream(JasperFillManager.java:559)
07-28/11:58:52 ERROR [http-18443-1] LoggingPrintStream - at bitel.billing.server.admin.reports.BGReportTemplate.fillReportToStream(BGReportTemplate.java:309)
07-28/11:58:52 ERROR [http-18443-1] LoggingPrintStream - at bitel.billing.server.admin.reports.BGReportTemplate.fillReportToStream(BGReportTemplate.java:379)
07-28/11:58:52 ERROR [http-18443-1] LoggingPrintStream - at bitel.billing.server.reports.Report_Default.fillReportToStream(Report_Default.java:30)
07-28/11:58:52 ERROR [http-18443-1] LoggingPrintStream - at bitel.billing.server.reports.action.ActionReport.doAction(ActionReport.java:47)
07-28/11:58:52 ERROR [http-18443-1] LoggingPrintStream - at bitel.billing.server.Executer.doModule(Unknown Source)
07-28/11:58:52 ERROR [http-18443-1] LoggingPrintStream - at bitel.billing.server.Executer.doPost(Unknown Source)
07-28/11:58:52 ERROR [http-18443-1] LoggingPrintStream - at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
07-28/11:58:52 ERROR [http-18443-1] LoggingPrintStream - at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
07-28/11:58:52 ERROR [http-18443-1] LoggingPrintStream - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
07-28/11:58:52 ERROR [http-18443-1] LoggingPrintStream - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
07-28/11:58:52 ERROR [http-18443-1] LoggingPrintStream - at bitel.billing.server.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:49)
07-28/11:58:52 ERROR [http-18443-1] LoggingPrintStream - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
07-28/11:58:52 ERROR [http-18443-1] LoggingPrintStream - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
07-28/11:58:52 ERROR [http-18443-1] LoggingPrintStream - at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
07-28/11:58:52 ERROR [http-18443-1] LoggingPrintStream - at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
07-28/11:58:52 ERROR [http-18443-1] LoggingPrintStream - at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:568)
07-28/11:58:52 ERROR [http-18443-1] LoggingPrintStream - at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
07-28/11:58:52 ERROR [http-18443-1] LoggingPrintStream - at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
07-28/11:58:52 ERROR [http-18443-1] LoggingPrintStream - at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
07-28/11:58:52 ERROR [http-18443-1] LoggingPrintStream - at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
07-28/11:58:52 ERROR [http-18443-1] LoggingPrintStream - at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
07-28/11:58:52 ERROR [http-18443-1] LoggingPrintStream - at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
07-28/11:58:52 ERROR [http-18443-1] LoggingPrintStream - at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
07-28/11:58:52 ERROR [http-18443-1] LoggingPrintStream - at java.lang.Thread.run(Thread.java:662)
07-28/11:58:52 ERROR [http-18443-1] LoggingPrintStream - Caused by: java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String
07-28/11:58:52 ERROR [http-18443-1] LoggingPrintStream - at kernel_contract_tariff_account_1311821932076_77942.evaluate(kernel_contract_tariff_account_1311821932076_77942:220)
07-28/11:58:52 ERROR [http-18443-1] LoggingPrintStream - at net.sf.jasperreports.engine.fill.JREvaluator.evaluate(JREvaluator.java:186)
07-28/11:58:52 ERROR [http-18443-1] LoggingPrintStream - ... 40 more
Пытался переделать так
Код:
<textFieldExpression class="java.lang.Integer"><![CDATA[( $F{type}.intValue()==1 ? "Wellnet" : ( $F{type}.intValue()==1 ? "Телефония" : 0 ) )]]></textFieldExpression>
Не помогло
Подскажите, в чём может быть дело? Я понимаю, что какие-то типы не привёл. Но что к чему должен привести - не пойму
PS
Если сделать просто вывод $F{type} с типом int и задать класс java.lang.Integer, то всё работает