Preciso inserir filtros em minha sql do relatório, mas estes filtros são opcionais, ou seja, caso eu não mande o valor para o relatório, ele nao usa o filtro
por exemplo:
Query do relatório:
SELECT *
FROM TB_MEDICAMENTO
WHERE
CD_MEDICAMENTO = $P{cdMedicamento} //Obrigatório
$P!{sqlMedicamento} //Opcional
Parâmetro sqlMedicamento:
$P{nmMedicamento} != null ?
" AND NM_MEDICAMENTO = " $P{nmMedicamento}
:
" "
Mas não está funcionando =/
Alguém tem alguma dica?
acho que faltou um sinal ali 
Parâmetro sqlMedicamento:
$P{nmMedicamento} != null ?
" AND NM_MEDICAMENTO = " + $P{nmMedicamento}
:
" "
huaseuhsaeu no exemplo só faltou o " …
no relatório a sintaxe está certa, mas mesmo assim nao funciona =/
como assim… qual eh o erro?
o parametro… a consulta… o resultado dela?
vc esta usando um parametro ($P{nmMedicamento}) para montar o outro parametro ($P!{sqlMedicamento})
sera que este primeiro parametro nao seria um field $F{nmMedicamento}?
tenta ve ae… se der erro… posta mais detalhes
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
fiz um teste aqui e funcionou 
criei o parametro $P{CD} do tipo long
e um parametro $P{SQL} do tipo String
ai adicionei o Default value no parametro $P{SQL}
$P{CD} != null && $P{CD}.intValue() > 0 ?
" AND ROWNUM <= " + $P{CD}
:
""
ou seja a sintaxe do filtro do parametro esta funcionando certinho
tenta imprimi esse parametro no relatorio $P{sqlTipoProduto} pra vc ver se esta saindo corretamente
acho que o meu projeto que é teimoso =II
tive que fazer do jeito grosseiro mesmo
mandei a sql inteira do Java pro Relatório por parâmetro, fazendo a verificação no java
agora está funcionando =]
mas valeu!