Bom dia pessoal.
Estou com a seguinte situação:
Tenho um relatório feito com JasperStudio, e preciso criar uma variável que faça a soma de uma coluna inteira.
Então fui criar a variável da seguinte forma:
Botão direito em Variables e botão esquerdo em Create Variable, resultado foi a criação da variável Variable_1:
botão direito em Variable_1 e botão esquerdo em Show Properties:
Abre-se então a janela de propriedades:
Altero o nome da variável no campo name, no campo calculation altero para sum, em Value Class Name altero para Double, no campo Expression marco a coluna que será somada…ficando desta maneira:
Arrasto a variável criada para o lugar onde quero que ela apareça no relatório:
agora vou clicar em Preview para ver o resultado obtido:
da este erro
net.sf.jasperreports.engine.JRException: java.lang.ClassCastException: class java.lang.String cannot be cast to class java.lang.Number (java.lang.String and java.lang.Number are in module java.base of loader 'bootstrap')
at com.jaspersoft.studio.editor.preview.view.control.ReportController.fillReport(ReportController.java:551)
at com.jaspersoft.studio.editor.preview.view.control.ReportController.access$18(ReportController.java:526)
at com.jaspersoft.studio.editor.preview.view.control.ReportController$1.run(ReportController.java:444)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)
Caused by: java.lang.ClassCastException: class java.lang.String cannot be cast to class java.lang.Number (java.lang.String and java.lang.Number are in module java.base of loader 'bootstrap')
at net.sf.jasperreports.engine.fill.JRDoubleSumIncrementer.increment(JRDoubleIncrementerFactory.java:294)
at net.sf.jasperreports.engine.fill.JRAbstractExtendedIncrementer.increment(JRAbstractExtendedIncrementer.java:42)
at net.sf.jasperreports.engine.fill.JRCalculator.estimateVariables(JRCalculator.java:251)
at net.sf.jasperreports.engine.fill.JRFillDataset.next(JRFillDataset.java:1410)
at net.sf.jasperreports.engine.fill.JRFillDataset.next(JRFillDataset.java:1384)
at net.sf.jasperreports.engine.fill.JRBaseFiller.next(JRBaseFiller.java:1201)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:117)
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:622)
at net.sf.jasperreports.engine.fill.BaseFillHandle$ReportFill.run(BaseFillHandle.java:135)
at java.base/java.lang.Thread.run(Unknown Source)
Lendo a respeito deste erro, vi que se trata de uma conversão String.
a coluna que estou tentando somar, é uma variável String na minha aplicação.
Linha 33
A pergunta é, tem como converter DIRETAMENTE NO JASPER uma String para Double? Ou a única solução será alterar boa parte da aplicação em Java?







