Meu primeiro exemplo está meio confuso, vou criar outro
(Só não vou mandar o relatório qual estou trabalhando, pq tem muitos parâmetros e sqls)
Vamos supor que eu queira tirar um relatório de Produtos por Venda considerando o Tipo do Produto opcionalmente
Id da Venda: ______________ (Obrigatório) //Mando os dados deste campo para o parâmetro ‘cdVenda’ do tipo Long
Código do Tipo do produto: _____________ (Opcional) //Mando os dados deste campo para o parâmetro ‘cdTipoProduto’ do tipo Long
No relatório:
Crio a sql principal do relatório:
SELECT
B.PRO_CODIGO, B.PRO_DESCRICAO
FROM
TB_VENDA A, TB_PRODUTO B
WHERE
A.VEN_CDPRODUTO = B.PRO_CODIGO
AND A.VEN_CODIGO = $P{cdVenda}
$P!{sqlTipoProduto} //Este será o meu filtro opcional
Crio um filtro dentro do parâmetro ‘sqlTipoProduto’:
$P{cdTipoProduto} != null && $P{cdTipoProduto}.intValue() > 0 ?
" AND B.PRO_CDTIPOPRODUTO = " + $P{cdTipoProduto}
:
""
Meu problema é o seguinte
O relatório está listando apenas os produtos da venda, sem chegar no filtro do tipo de produto.
Por exemplo, eu mando o cdVenda e o cdTipoProduto
Ele lista todos os produtos da venda com o código ‘cdVenda’, sem considerar o ‘cdTipoProduto’
Já verifiquei, o cdTipoProduto está chegando no relatório e é maior que 0.
Talvez seja algum problema na sintaxe da condição, ou na sintaxe utilizo para inserir o filtro ‘sqlTipoProduto’ na sql principal do relatório