Dúvida em IReport

0 respostas
P

Fala Galera !
Estou com dificuldades em fazer um relatório organizado usando Ireport.

Meu problema é o seguinte…

Tenho uma tabela chamada “tb_dieta_dia1” que possui várias colunas, segue a seguinte estrutura.

Estou tentando elaborar um relatório que será um cardápio, uma vez salvo nessa tabela.
Como característica de uso, estou manipulando os dados da seguinte forma.

Notem, que existe as colunas (exemplo), “diedia1_ref1_alicom_1_cod”, “diedia1_ref1_alisup_1_cod” e “diedia1_ref1_porcao_1”, onde, caso o alimento selecionado seja composto, então “diedia1_ref1_alicom_1_cod” será diferente de 0 a coluna “diedia1_ref1_porcao_1” e “diedia1_ref1_alisup_1_cod” seram iguais a 0, caso “diedia1_ref1_alisup_1_cod” seja diferente de 0, então “diedia1_ref1_porcao_1” será diferente de 0 e “diedia1_ref1_alicom_1_cod” igual a 0, e caso “diedia1_ref1_alicom_1_cod” e “diedia1_ref1_alisup_1_cod” sejam iguais a 0, é pq o usuário não preencheu o campo, e isso é algo opcional.
Como a própria denominação da coluna indica (cod), essas colunas servem para indicar o código do alimento cadastrado em outras tabelas, exceto “diedia1_ref1_porcao_1” que somente é preenchida com valor diferente de 0, para caso o alimento selecionado seja simples e possua um valor de peso referente a porção do alimento.

O problema está justamente ai, estou com dificuldade de fazer todas essas “regras de manuseio” se transformarem no cardápio propriamente dito em um relatório no IReport.

O relatório está da seguinte forma.

As partes selecionadas com vermelho, são subrelatórios. Minha dificuldade é no subrelatório inferior, onde será descrito os alimentos contidos em cada refeição, que são 12 ao total, podendo ou não as 12 serem preenchidas. Nesse caso se existisse a possibilidade de inserir condicionais para imprimir ou não as refeições, seria uma boa, porém n vi ainda como fazer isso no IReport.

A query usada aqui é a seguinte.

select * from bd_sgn.tb_dieta_dia1 where diedia1_cod=$P{diedia1_cod}

Até ai Blz

Partindo p relatório inferior.

Como poderia verificar se os campos são diferentes de 0 para que assim possa usar a query

select * from bd_sgn.tb_alimentos_compostos where diedia1_ref1_alicom_1_cod=$P{diedia1_ref1_alicom_1_cod}
ou
select * from bd_sgn.tb_alimentos_suplementos where alisup_cod=$P{diedia1_ref1_alisup_1_cod}

onde poderia passar via parâmetro do relatório principal para esse subrelatório da refeição, e após isso, buscar os dados referentes nas respectivas tabelas para importar até o relatório principal, tornando o relatório dinâmico, não incluindo campos que não foram utilizados.

Vi na net uma forma de usar mais de uma query, porém não se enquadrava para meu caso…

Galera, estou bem perdido, e qualquer ajuda será muito bem vinda.

Obg a todos.

Att

Criado 4 de maio de 2016
Respostas 0
Participantes 1