Dúvida com ireport

2 respostas
java
joaob_br

Estou fazendo um relatório utilizando iRerport. Tenho que passar uma lista de parametros para fazer a consulta sql dentro do relatorio, até entao tudo OK.
Um desses parametros é uma lista de Pessoas(Tecnicos), que na interface é um combobox. Se selecionar um técnico vai trazer os registros referentes aquele Técnico.
Meu problema é que na especificação tem a opção “Todos”, que significa trazer todos os registros de todos os usuarios.
Como fazer isso na ireport, passar o parametro “ID_TECNICO”, se ele for null desconsiderar a clausura where id_tenico = P{ID_TECNICO} ?

2 Respostas

E

Tem que fazer o tratamento na query, no oracle ficaria assim:

id_tenico = nvl( P{ID_TECNICO}, id_tenico)

joaob_br

Obrigado pela resposta. Mas estou usando MySQL. E encontrei uma forma de fazer

No código:

if("todos".equals(idTecnico))
				params.put("TECNICO", " 1 = 1 ");
			else 
				params.put("TECNICO",  " t.id = "+idTecnico );

na query do .jrxml

where $P!{TECNICO}
Criado 29 de dezembro de 2016
Ultima resposta 29 de dez. de 2016
Respostas 2
Participantes 2