Pagina de Arvore

Oracle Application Express - web application development tool (antigamente conhecido como Oracle HTML-DB)
Responder
chunning
Rank: Programador Pleno
Rank: Programador Pleno
Mensagens: 41
Registrado em: Seg, 28 Mar 2011 11:39 am
Localização: Feliz - RS

Olá
Estou com dificuldade para criar uma página de arvore no apex.
Criei a página, mas o apex exibe os resultados porém não agrupados pelo nó especificado.
É uma relação de títulos pagos. Gostaria de criar o nó Fornecedor e abaixo dele os títulos relacionados.
Criei uma view para buscar os títulos:

Selecionar tudo

CREATE OR REPLACE VIEW V_TIT_FORN AS 
SELECT P.NOME, T.CODIGO, T.CODFORNEC, T.PARCELA, T.DTVENCTO, T.VLRPARCELA, T.VLRPAGO
  FROM PESSOA P
  ,    TITULO T
 WHERE P.CODIGO = T.CODFORNEC
   AND T.TPTIT = 0;
E o select de criação da página ficou assim:

Selecionar tudo

select case when connect_by_isleaf = 1 then 0
            when level = 1             then 1
            else                           -1
       end as status, 
       level, 
       "NOME" as title, 
       null as icon, 
       "CODIGO" as value, 
       null as tooltip, 
       null as link 
from "#OWNER#"."V_TIT_FORN"
where DTVENCTO > TO_DATE('01/03/2016','DD/MM/RRRR')
start with "CODFORNEC" is NOT null
connect by prior "CODIGO" = "CODFORNEC"
order siblings by "NOME"
Notem que coloquei no start with como NOT NULL. Se colocar somente NULL não mostra nada.

Obrigado.
chunning
Rank: Programador Pleno
Rank: Programador Pleno
Mensagens: 41
Registrado em: Seg, 28 Mar 2011 11:39 am
Localização: Feliz - RS

Olá Pessoas!!!
Consegui criar a página com apoio de um outro colega. Segue abaixo o select que gerei.

Selecionar tudo

select case
          when connect_by_isleaf = 1 then
           0
          when level = 1 then
           1
          else
           -1
       end as status
      ,level
      ,name as title
      ,null as icon
      ,id as value
      ,null as tooltip
      ,decode(level,4,'f?p=&APP_ID.:14:'||:APP_SESSION||'::::P14_CODIGO:'||id,null) as link 
  from (
        select to_char(p.codigo) id,
               to_char(null)     parent,
               p.NOME            name
          from pessoa p,
               titulo  t
         where p.codigo = t.codFornec
           and t.dtvencto >= to_date(to_char(sysdate,'YYYYMM')||'01','YYYYMMDD')
      
        UNION
      
        select distinct t.codFornec || ':' || to_char(t.dtvencto,'dd/mm/rrrr') id, 
               to_char(t.codFornec)                                            parent ,
               'Data: ' || to_char(t.dtvencto,'dd/mm/rrrr')                    name
          from titulo t
         where t.dtvencto >= to_date(to_char(sysdate,'YYYYMM')||'01','YYYYMMDD')

        UNION
      
        select t.codFornec || ':' || to_char(t.dtvencto,'dd/mm/rrrr') || ':' || t.codigo id, 
               to_char(t.codFornec) || ':' || to_char(t.dtvencto,'dd/mm/rrrr')           parent ,
               'A.P.: '|| t.codigo                                                       name
          from titulo t
         where t.dtvencto >= to_date(to_char(sysdate,'YYYYMM')||'01','YYYYMMDD')

        UNION
      
        select t.codFornec || ':' || to_char(t.dtvencto,'dd/mm/rrrr') || ':' || t.codigo ||':'|| t.parcela id, 
               to_char(t.codFornec) || ':' || to_char(t.dtvencto,'dd/mm/rrrr') || ':' || t.codigo          parent ,
               'Parcela: '|| t.parcela ||' - '|| to_char(t.vlrParcela,'999G999G999G999G990D00')            name
          from titulo t
         where t.dtvencto >= to_date(to_char(sysdate,'YYYYMM')||'01','YYYYMMDD')

        )
 start with parent is null
connect by parent = prior id
order siblings by name
Abs, Cesar
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 8 visitantes