Pessoal, sou iniciante em JasperReport.
O caso é que preciso passar alguns parâmetros para a query no iReport.
Algo do tipo:
"…
WHERE
FILIAL.‘COD’ IN ($P{FILIAISSELECIONADAS})
AND…“
O parâmetro FILIAISSELECIONADAS é do tipo java.util.List, pois quero que o usuário escolha uma ou mais filiais no momento da execução.
Acontece que esse report nem compila, dizendo que o tipo do parâmetro (java.util.List) não é suportado na query.
Assim, me parece que essa minha abordagem não é a adequada. Mas eu preciso fazer algo como:
”…
WHERE
FILIAL.‘COD’ IN (1,4,5,6,14)
AND…"
Alguém sabe como contornar a situação?
Desde já, agradeço.
Boa noite,
Não sei se é a melhor abordagem, mas veio utilizando o seguinte. Crio um novo parâmetro, do tipo String e que não seja solicitado ao usuário pelo JasperReports, e nele executo a lógica abaixo:
Tomando que exista um parâmetro, superior, chamado “Código da Empresa” crio um segundo parâmetro chamado “empresa” com o conteúdo:
$P{Código da Empresa}.contains(",") ?
" in (’" + $P{Código da Empresa}.trim().replace(" “,”").replace(",","’,’") + “’)”
:
$P{Código da Empresa}.contains("*") ? " matches ‘" + $P{Código da Empresa} + "’" :
" = ‘" + $P{Código da Empresa} + "’"
Na query fica assim:
… AND A.COD_EMPRESA $P!{empresa} … // Atente ao ! depois do $P ele é importante pois “cola” a String resultante na Query.
Abraço.
Mto Obrigado, edusasse.
Não sabia do caso do “!”. Meus problemas estão resolvidos!!
Valeu :thumbup: