[Resolvido] Exibir mensagem de não existe dados no Ireport

8 respostas
M

Galera, estou a pouco tempo desenvolvendo relatórios e estou com um probleminha que não estou conseguindo resolver :wink:

Seguinte recebo os parametro no meu relatorio id turma e o id escola e imprimo os alunos matriculados por turma. O problema esta quando o id turma não tem nenhum aluno relacionado o meu relatório retorna em branco e preciso mostrar a mensagem que não existe alunos matriculado.

Obs: o meu sql esta validando o where idTurma=Parametro idTurma, pois exibo a lista de matriculados por turma e não da certo com a validação que tentei da field.

[]s…
:slight_smile:

8 Respostas

M

Boa tarde!!

Onde vc quer exibir essa mensagem? no field do id? no field do aluno? e qual expressão vc esta usando para validar?

Att.

M

ManoJava:
Boa tarde!!

Onde vc quer exibir essa mensagem? no field do id? no field do aluno? e qual expressão vc esta usando para validar?

Att.

Meu relatório tem vários subrelatórios hehehe…
Quando a query não retorna dados que é no caso do meu idTurma não ter alunos matriculados, retorna tudo em branco por causa do where que fiz na query validando idTurma e preciso dele para ter o meu resultado.
Tentei validar assim ($F{no_pessoa} == null ? “Turma Não tem alunos matriculados nesta turma até o presente momento.” : $F{no_pessoa}) -
e na query

select p.uuid_pessoa , p.no_pessoa ,t.uuid_turma,t.ano_letivo, UPPER(t.distincao_classe),serie.no_serie, tipo.no_tp_ensino, turno.no_turno from tb_pessoa p right join tb_matricula m on m.uuid_pessoa=p.uuid_pessoa left join tb_turma t on m.uuid_turma=t.uuid_turma left join tbd_serie serie on t.id_serie = serie.id_serie and t.id_tp_ensino = serie.id_tp_ensino left join tbd_tp_ensino tipo on t.id_tp_ensino = tipo.id_tp_ensino left join tbd_turno turno on t.id_turno = turno.id_turno where t.uuid_turma=$P{idTurma} group by t.uuid_turma order by turno.no_turno, tipo.no_tp_ensino, serie.no_serie, t.distincao_classe

Eu preciso que exiba a mensagem no detail, dentro do relatório. Mas se achar melhor fazer isso no Java - “Ext Js”(FRamework que uso de interação front end).
Respondi a sua pergunta, é que como sou novata me confundo toda ! :wink:
Muito Obrigada desde já!!!

M

Galera vou aproveitar aqui e pedir manual ou link bem didadicos que vocês conheçam, pois como sou iniciantes tem muitos misterios do Ireport que preciso desvendar hehehehe…
Valeu :wink:

M

Boa tarde!

Perguntei sobre a expressão, pois costumo fazer dessa forma também, testo se o campo é null, se for exibo uma mensagem, senão exibo o valor do campo.
Como seu relatório tem agrupamento, faz um teste: coloca essa condição dentro de uma variável em “Variable Expression” e seta o “Evaluation Time” para o seu grupo, pois ai quando
mudar o grupo a variável vai resetar automaticamente.

Att.

M

ManoJava:
Boa tarde!

Perguntei sobre a expressão, pois costumo fazer dessa forma também, testo se o campo é null, se for exibo uma mensagem, senão exibo o valor do campo.
Como seu relatório tem agrupamento, faz um teste: coloca essa condição dentro de uma variável em “Variable Expression” e seta o “Evaluation Time” para o seu grupo, pois ai quando
mudar o grupo a variável vai resetar automaticamente.

Att.

Pode me explicar passo-a-passo como faz isso, pois eu tentei validar uma variavel e não consegui. Eu só fiz relatórios simples até agora. Não sei fazer o que me disse :cry:
[]s…

M

Segue um link que contém um tutorial sobre o assunto, procure em blogs sobre ireport e JasperReports que vc encontrará material mais completo.

http://www.integrator.com.br/download_gratis/Relat...iosJasperReportsComiReport.zip

Att.

M

Bom te explicando rapidamente:

  1. Crie uma variável no Report Inspector.
  2. Coloque-a na sua banda detail por ex.
  3. Na guia properties encontre a propriedade “Variable Expression” e coloque sua condição nela
  4. Setar Propriedades “Variable class”, “Calculation”, “Reset type” e “Reset group”

Depois faça o teste e veja se atendeu sua condição, espero ter ajudado, qualquer coisa veja no tutorial que te passei sobre variaveis, fields e parametros.

Att.

M

ManoJava:
Bom te explicando rapidamente:

  1. Crie uma variável no Report Inspector.
  2. Coloque-a na sua banda detail por ex.
  3. Na guia properties encontre a propriedade “Variable Expression” e coloque sua condição nela
  4. Setar Propriedades “Variable class”, “Calculation”, “Reset type” e “Reset group”

Depois faça o teste e veja se atendeu sua condição, espero ter ajudado, qualquer coisa veja no tutorial que te passei sobre variaveis, fields e parametros.

Att.

Nuss muito obrigada!
Eu tentei abrir o link e esta com erro! Mas começei a testar o que me disse e estava com muita dificuldade, mas estava incucada o por que não estava conseguindo com a validação do fied.
Dai voltei para estudar isso mais um pouco e percebi que o retorno da minah query estava errada daquela maneira eu nunca iria conseguir preencher o dado.
No meu subreport pai coloquei esta query

select m.uuid_matricula, t.uuid_turma,t.ano_letivo, UPPER(t.distincao_classe),serie.no_serie, tipo.no_tp_ensino, turno.no_turno from tb_turma t left join tbd_serie serie on t.id_serie = serie.id_serie and t.id_tp_ensino = serie.id_tp_ensino left join tbd_tp_ensino tipo on t.id_tp_ensino = tipo.id_tp_ensino left join xtb_escola escola on t.id_escola = escola.id_escola left join tbd_turno turno on t.id_turno = turno.id_turno left join tb_matricula m on m.uuid_turma=t.uuid_turma where t.uuid_turma=$P{idTurma} group by t.uuid_turma order by turno.no_turno, tipo.no_tp_ensino, serie.no_serie, t.distincao_classe

e minha validação ficou
[]s…
:slight_smile:

Criado 19 de setembro de 2012
Ultima resposta 21 de set. de 2012
Respostas 8
Participantes 2