Pessoal,
Estou enfrentando a seguinte situação.
Defini uma query, criei o layout de um relatório no iReport 1.2.2
Coloquei os cabeçalhos, as variáveis e os parâmetros, a princípio, tudo corretamente.
O banco de dados utilizado é o Oracle 10g.
Testei a conexão do iReport com o SGBD e está tudo OK.
Acontece, porém que quando tento executar o relatório, os conteúdos dos campos não
estão sendo exibidos e em todos eles aparece a palavra .
Detalhe : testei a query no PL/SQL Developer e ela funciona normalmente.
Alguém pode me dar alguma idéia do que possa estar acontecendo ?
Agradece,
Max
Cara, uma vez isso acontecia comigo sempre, mas era por causa de uma besteira minha… eu clicava em “executar relatório” quando na verdade tem que ser “executar relatório usando conexão ativa”… Vê se não é isso, senão é alguma ligação com o banco…
Obrigado pela resposta. Fiz o teste, mas continua com problema.
Logo que digito, na caixa de diálogo, o valor do parâmetro (é um string). Só que agora a mensagem que aparece é “The document has no pages”,
Segue, abaixo, o corpo da query.
select distinct o.ope_cod_operador AS codigo_operador, o.ope_nome as nome_operador, ao.aop_aco_cod_acao AS codigo_acao,
a.aco_descricao as desc_acao, decode(ao.aop_tipo_escopo, 0,‘Independente de dados’,1,‘Programa’,2,‘Depto’) as escopo_acao,
ao.aop_condicao as condicao_acao
from prpg.acoes_operador ao, prpg.operadores o, prpg.acoes a
where ao.aop_ope_cod_operador = o.ope_cod_operador
and a.aco_cod_acao = ao.aop_aco_cod_acao
and (o.ope_cod_operador like NLS_UPPER(’%’||$P{oper}||’%’) or o.ope_nome like NLS_UPPER(’%’||$P{oper}||’%’))
group by o.ope_cod_operador, o.ope_nome, ao.aop_aco_cod_acao, a.aco_descricao, ao.aop_tipo_escopo, ao.aop_condicao
Penso que talvez o problema esteja na seguinte parte da query :
…
and (o.ope_cod_operador like NLS_UPPER(’%’||$P{oper}||’%’) or o.ope_nome like NLS_UPPER(’%’||$P{oper}||’%’))
…
Antes eu estava tentando usar o trecho acima da seguinte forma :
…
and (o.ope_cod_operador like NLS_UPPER(’%$P{oper}%’) or o.ope_nome like NLS_UPPER(’%$P{oper}%’))
…
mas a mensagem de erro que aparece é a mesma de que não há páginas geradas para o relatório.
Outro detalhe : com a seguinte e necessária adaptação :
…
and (o.ope_cod_operador like NLS_UPPER(’%&oper%’) or o.ope_nome like NLS_UPPER(’%&oper%’))
…
a query roda normalmente no PL/SQL Developer.
Ah, já ia me esquecendo. Um último detalhe : este relatório gerado no iReport será chamado dentro de uma aplicação Web e minha chefe que na aplicação
deverão ser executados os seguintes comandos :
ALTER SESSION SET NLS_COMP=LINGUISTIC;
ALTER SESSION SET NLS_SORT=BINARY_AI;
antes de se chamar o arquivo gerado pelo iReport, mas não sei se isto tem algo a ver com o fato de o relatório, executado de dentro do ambiente do
iReport estar gerando um documento com nenhuma página ???
Enfim, o que vocês acham isto está mais para um problema na query ou alguma falha na criação do relatório, problema nas variáveis, enfim.
Já testei outros relatórios no iReport que usam a mesma conexão e eles, a princípio, funcionam normalmente.
Como posso tentar descobrir onde está o problema ?
Agradece,
Max