Error iReport URGENTE

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]

image

E estou colocando assim no código:

image

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
jasper

1 curtida

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

image

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
source

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.