Estou tentando colocar os meses que já se passaram colo coluna do relatório do iReport mas estando erro sempre. Já tentei criar classe, já fiz inúmeros códigos e sempre da erro. Segue os erros e o código.
OBS: utilizo o java
1. Syntax error on token "(", ; expected value = (java.lang.String)({//$JR_EXPR_ID=18$
2. Syntax error on token ")", delete this token });//$JR_EXPR_ID=18$
{
Calendar cal= Calendar.getInstance();
cal.set($P{runDate}.getMonth());
c.add ($P{cal}.MONTH,-1);
return $P{cal}.getTime();
}
poste mais código e explique melhor o que quer fazer. Você quer pegar os meses de anteriores tipo: Estamos no Mês 12 e você quer que exiba de Janeiro a Novembro?
Janeiro Fevereiro Março…
Oi, Vinicius. Isso mesmo, eu quero que apareça Junho/2021, Julho/2021 e por ai vai…
O código antigo era esse mas estava dando esses erros:
new java.text.SimpleDateFormat(“MMMM/yyyy”).format(
comum.util.DateUtils.adicionar(comum.util.DateUtils.MES,-6,(new java.util.Date())))
comum.util.DateUtils cannot be resolved to a type
comum.util.DateUtils.MES cannot be resolved to a type|Linha
Tentei alterar para o que eu coloquei a cima mas mesmo assim esta dando erro
Não sei qual o contexto que quer exibir isso. Será só do ano corrente? Poderá selecionar periodo de datas? vai exibir só a string ou na coluna tera: Janeiro - 100,00 Fevereiro - 89,00…
Dessa forma você pegaria o mês corrente.
Calendar c1 = Calendar.getInstance();
int mes = c1.get(Calendar.MONTH);
O mes
passaria como parametro e podia deixar fixo de Janeiro a Dezembro no seu relatorio. Na propriedade print when Expression
do jasper
poderia colocar para o Field
Janeiro : $P{mes}>0 para Fevereiro $P{mes}>1…
Isso seria o mesmo ano com meses diferentes como eu dei o exemplo, Janeiro/2021…
Eu adicionei o parâmetro mas agora esta com esse erro:
Parameter not found : mes /jasperReport/parameter[9]/defaultValueExpression[1]

E estou colocando assim no código:

Você vai criar uma variavel pra armazenar o mês corrente:
Calendar c1 = Calendar.getInstance();
int mes = c1.get(Calendar.MONTH);
setVariavel(mes);
No botão que vai gerar o relatorio cria algo como:
HashMap<String, Object> mapFicha = new HashMap<String, Object>();
mapFicha.put("mes", getVariavel);
//aqui vc passa o map criado
JasperPrint impressao = JasperFillManager.fillReport(caminhoRelatorio, mapFicha, dataSource);
No Jasper você cria a variavel chamada: mes
. Lembrando que pelo que estou dizendo você teria os field
Janeiro Fevereivo Março Abril… Assim se o mes da sua varialvel for 11 vai mostrar de Janeiro a Novembro.
pra Janeiro vc usa $P{mes}>0
em Fevereiro $P{mes}>1
Março: $P{mes}>2
Abril: $P{mes}>3
…

1 curtida
Perfeito, Vinicius fiz todo esse passo a passo mas ainda continua dando erro:

A mensagem já mostra onde está o erro: LInha 2898, coluna 53. Abra o arquivo no Jasper e na aba source
pode alterar seu código
Ai que esta outro problema, eu não acho a pasta “jasperReport” pra alterar o código, mas muito obrigada Vinicius! Me ajudou bastante
Não é na pasta do Jasper… no Ireport ou no TIBCO você procura por essa aba aí vai na linha do erro e faz a correção

Oi, Vinicius, então nesse meu campo não tem a linha Linha 2898, coluna 53. Por isso achei que estivesse falando de algo dentro de uma pasta.