Estou criando um relatório com os dados em árvore de acordo com o exemplo 1 do anexo.
O que está acontecendo é que está saindo como no exemplo 2 do anexo.
Criei vários frames como no anexo.
E logo abaixo dos frames, criei uma representação das consultas.
Duvidas sobre o REPEATING FRAME (veja o anexo)
- dr_gori
- Moderador
- Mensagens: 5024
- Registrado em: Seg, 03 Mai 2004 3:08 pm
- Localização: Portland, OR USA
- Contato:
Thomas F. G
Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered
Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered
Você precisa que sejam criados repeating frames diferentes ?
Normalmente quando se trabalha com árvore, a gente a gente monta toda árvore e deixa os espaços direto na saída.
Veja esse exemplo:
http://glufke.net/oracle/viewtopic.php?t=402
O campo ENAME já sai com as devidas indentações.
Você não pode fazer dessa foram ?
Normalmente quando se trabalha com árvore, a gente a gente monta toda árvore e deixa os espaços direto na saída.
Veja esse exemplo:
http://glufke.net/oracle/viewtopic.php?t=402
O campo ENAME já sai com as devidas indentações.
Você não pode fazer dessa foram ?
-
- Rank: Programador Pleno
- Mensagens: 30
- Registrado em: Qui, 18 Fev 2010 9:37 am
- Localização: FORTALEZA
O que aconteceu é que na propriedade do "repeating frame" estava com "Elasticidade Vertical" com valor "fixo",
mudei em todos os quadros de repetição para o valor "variável" e deu certo.
Meu problema agora é só consertar a consulta.
Na consulta I1 quero verificar se na I3 tem valor,
se não tiver não traz o registro, parece tão simples, mas estou apanhando que só... :'(
Tentei fazer uma coisa assim (simplifiquei o máximo):
mas não deu certo.
mudei em todos os quadros de repetição para o valor "variável" e deu certo.
Meu problema agora é só consertar a consulta.
Na consulta I1 quero verificar se na I3 tem valor,
se não tiver não traz o registro, parece tão simples, mas estou apanhando que só... :'(
Tentei fazer uma coisa assim (simplifiquei o máximo):
select *
from i1, e1
where i1.cod = e1.cod(+)
and i1.codn1 = e1.codn1(+)
and i1.cd_ordem = e1.cd_item_ordem(+)
and (i1.cd_ref is not null or e1.valor is not null)
--verifica se os cd_ref tem item com resultados
and i1.cd_ref in (select n1.cod
from n1
where n1.cod = i1.cd_ref
and exists (select 'X'
from i2, e2
where i2.cod = e2.cod(+)
and i2.codn2 = e2.codn2(+)
and i2.cd_ordem = e2.cd_item_ordem(+)
and i2.cod = n1.cod
and i2.codn2 = n1.codn2
and (i2.cd_ref is not null or e2.valor is not null)
--Verifica o 3o NIVEL
and i2.cd_ref not in (select n2.cod
from n2
where n2.cod = i2.cd_ref)
and exists (select 'X'
from i3, e3
where i3.cod = e3.cod(+)
and i3.codn3 = e3.codn3(+)
and i3.cd_ordem = e3.cd_item_ordem(+)
--and i3.cod = n2.cod
--and i3.codn3 = n2.codn
and (i3.cd_ref is not null or e3.valor is not null))))
- dr_gori
- Moderador
- Mensagens: 5024
- Registrado em: Seg, 03 Mai 2004 3:08 pm
- Localização: Portland, OR USA
- Contato:
Thomas F. G
Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered
Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered
Ótimo!
Só por curiosidade, como foi que resolveu ?
(E também pra ficar aqui como orientação pra gente no futuro)
Só por curiosidade, como foi que resolveu ?
(E também pra ficar aqui como orientação pra gente no futuro)
-
- Rank: Programador Pleno
- Mensagens: 30
- Registrado em: Qui, 18 Fev 2010 9:37 am
- Localização: FORTALEZA
1º - o problema do repeating frame foi apenas colocar em sua propriedade Elasticidade vertical: Variável
2º - Criei duas consultas uma para verificar o 2º NÍVEL e o outra para verificar o 3º NÍVEL usando o "union all"
não tinha necessidade de colocar a tabela de nível "n3" . E alterei e removi algumas condições (vermelho).
2º - Criei duas consultas uma para verificar o 2º NÍVEL e o outra para verificar o 3º NÍVEL usando o "union all"
não tinha necessidade de colocar a tabela de nível "n3" . E alterei e removi algumas condições (vermelho).
--consulta 1
select * --campos
from i1, e1
where i1.cd_cod = e1.cd_cod(+)
and i1.cd_codn1 = e1.cd_codn1(+)
and i1.cd_ordem = e1.cd_item_ordem(+)
and nvl2(e1.valor, e1.valor, 1) = nvl2(e1.valor, :valor, 1)
and (i1.cd_ref is not null or e1.valor is not null)
and i1.cd_ref in
(select i2.cd_cod
from i2, e2
where i2.cd_cod = e2.cd_cod(+)
and i2.cd_codn2 = e2.cd_codn2(+)
and i2.cd_ordem = e2.cd_item_ordem(+)
and i2.cd_cod = i1.cd_ref
and nvl2(e2.valor, e2.valor, 1) = nvl2(e2.valor, :p_valor, 1)
and i2.cd_ref is null
and i2.valor is not null)
union all
--consulta 2
select *
from i1, e1
where i1.cod = e1.cod(+)
and i1.codn1 = e1.codn1(+)
and i1.cd_ordem = e1.cd_item_ordem(+)
and nvl2(e1.valor, e1.valor, 1) = nvl2(e1.valor, :p_valor, 1) --mostra os valores null do campo valor senão de acordo com parametro
and (i1.cd_ref is not null or e1.valor is not null)
--verifica se os cd_ref tem item com resultados
and i1.cd_ref in
(select n1.cod
from n1
where n1.cod = i1.cd_ref
and exists
(select 'X'
from i2, e2
where i2.cod = e2.cod(+)
and i2.codn2 = e2.codn2(+)
and i2.cd_ordem = e2.cd_item_ordem(+)
and i2.cod = n1.cod
and i2.codn2 = n1.codn2
and nvl2(e2.valor, e2.valor, 1) =
nvl2(e2.valor, :p_valor, 1)
and (i2.cd_ref is not null)
--Verifica o 3o NIVEL
and exists (select 'X'
from i3, e3
where i3.cod = e3.cod(+)
and i3.codn3 = e3.codn3(+)
and i3.cd_ordem = e3.cd_item_ordem(+)
and nvl2(e3.valor, e3.valor, 1) =
nvl2(e3.valor, :p_valor, 1)
and e3.valor is not null
and i3.cd_cod = i2.cd_ref)))
-
- Informação
-
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 14 visitantes