Estou criando meus relatórios pelo ireport, mas acontece que quero passar parâmetros condicionais… ou seja… eu tenho três parâmetros… e dois deles não são obrigatórios… o usuário pode escolher por completa-lo ou não… na query no ireport… eu precisaria fazer uma verficação se esses parâmetros são nulos ou não… e caso eles fossem nulos eu não os colocaria na cláusula where do meu select…
Ou seja eu preciso mudar o critério de pesquisa dinamicamente… tem como ?..
ou ainda escolher o campo para ordenar o select… tipo o usuário pode escolher se ordena o relatório por x ou y…
Não sei se deu pra entender direito…
Basicamente, eu queria saber se tem como modificar o select dinamicamente, ou fazer algo do tipo:
se der tudo errado, você pode fazer a pesquisa no seu programa e passar um List para o iReport, isso evita regra de negócio em relatório, e por experiência própria, isso pode dar creca, hehehe.
O parâmetro precisa ser de algum tipo em especial?..
e nem tratando o select!!..
Como seria essa idéia de passar um list pro ireport… ?.. seria passar o resultado do select ?..
Valew…
G
g4j
Olá!
O esquema da exclamação tem que dar certo sim, onde vc está declarando este SQL?
A
alexandrequeiroz
olá, eu estou enfrentando exatamente o mesmo problema
eu tenho o select
c.dataPag is null
and p.numeroEndereco = $P{idRua}
and c.id = $P{NumeroConta}
and c.dataVence between $P{dataincio} and $P{datafim}
porem os campos nao sao obrigatorios
para data eu ate pensei em colocar um case,
algo como
se o usuario nao digitar nada seria entre 1900 e 2100
porem para os campos de rua e numero de conta, o ideal seria nem os considerar ja que o cliente pode resolver gerar todas as contas ou de todas as ruas.
nesse caso eu preciso que o codigo anterior vire esse
c.dataPag is null
//-- and p.numeroEndereco = $P{idRua} // linha desconsiderada
//-- and c.id = $P{NumeroConta} // linha desconsiderada
//-- and c.dataVence between $P{dataincio} and $P{datafim} // linha desconsiderada
E
eduJava
o jeito mais simples é tirar esse sql do relatório e fazer em java, montar a lista e passar para o relatório por JRBeanCollectionDataSource. Pronto é melhor pra vc e pra pessoa que for dar manutenção…
A
alexandrequeiroz
obrigado amigo,
eu fiz assim mesmo, ficou bem melhor,
o relatorio tem o select seguido de um unico parametro que eu gero na aplicacao,
ficou realmente muito melhor.