Skip to main content
Announcements
Accelerate Your Success: Fuel your data and AI journey with the right services, delivered by our experts. Learn More
cancel
Showing results for 
Search instead for 
Did you mean: 
pedromsouza
Creator II
Creator II

Preencher Espaços do Hierarchy

Estou trabalhando num projeto com projetos e "n" tarefas dentro de cada projeto. As tarefas tem um encadeamento entre si. Para visualizá-las de forma encadeada, estou usando a função hierarchy com o seguinte script:

Hierarchy(ID_TASK,PARENTTASK,TASK)

O comando gerou corretamente a árvore de tarefas em até 7 níveis em alguns casos. Ocorre que há "árvores" com apenas 1 nível, 3 níveis, etc deixando os demais, até o 7º vazios. Meu desejo é repetir o nível anterior quando o próximo estiver nulo.

Exemplo...

N1 - A,

N2 - B,

N3 - C,

N4 - Null,

N5 - Null

Virar 

A, B, C, C, C (repetir o N3 no N4 e no N5, uma vez que não tem valor).

Ideias? 

Qliking since '09
13 Replies
fernando_tonial
Employee
Employee

Olá,

Vejam esse exemplo.

TMP_Dados:
Hierarchy(NodeID, ParentID, NodeName)
LOAD 
	Text(NodeID) AS NodeID, 
	Text(ParentID) AS ParentID, 
	Text(NodeID)&' - '&NodeName AS NodeName 
INLINE [
    ParentID, NodeID, NodeName
    , 1, Ativo
    1, 1.1, Ativo Circulante
    1.1, 1.1.01, Disponivel
    1.1.01, 1.1.01.01, Caixa 
    1.1.01, 1.1.01.02, Bancos Conta Movimento
    1.1.01, 1.1.01.03, Aplicações Financeiras
    1.1, 1.1.02, Realizável
    1.1.02, 1.1.02.01, Clientes
    1.1.02, 1.1.02.02, ( - ) Desconto de duplicatas
    1.1.02, 1.1.02.03, Adiantamento Diversos
    1.1.02, 1.1.02.04, Outras contas a receber
    1.1, 1.1.03, Estoques
    1.1, 1.1.04, Valores e Créditos Recuperáveis
    1.1, 1.1.05, Despesas do Exercício Seguinte
    1, 1.2, Ativo Não Circulante
    1.2, 1.2.1, Realizavel a Longo Prazo
    1.2, 1.2.2, Investimentos
    1.2, 1.2.3, Imobilizado
    1.2, 1.2.4, Intangível
];

Dados:
NoConcatenate
LOAD
	NodeID,
	NodeName,
	NodeName1,
	RangeMaxString(NodeName2,NodeName1) 						AS NodeName2,
	RangeMaxString(NodeName3,NodeName2,NodeName1) 				AS NodeName3,
	RangeMaxString(NodeName4,NodeName3,NodeName2,NodeName1) 	AS NodeName4,
	ParentID
Resident TMP_Dados
Order By NodeID;

Drop Table TMP_Dados;

 

Don't worry, be Qlik.
Tonial

Don't Worry, be Qlik.
vandrecarlos
Contributor III
Contributor III

Tonial,

 

Muito obrigado, testei aqui, consegui adaptar ao meu modelo e ficou show de bola!

Funcionou da forma correta e eu enfim consegui tirar a cadeia de 'IF' que tive que fazer nas dimensões para "limitar" a mesma quando chegasse ao seu último nível.

 

Obrigado!!!!

fernando_tonial
Employee
Employee

Até que enfim.

 

Don't worry, be Qlik.
Tonial.

Don't Worry, be Qlik.
pedromsouza
Creator II
Creator II
Author

Eu ainda estou encontrando dificuldades...

Aplicando a lógica do script, tive problema quando o "Node1" não tem "filhos". A situação de quando não tem todos os níveis, porém, foi resolvida. Veja no print. 

O primeiro quadro é o resultado do hierarchy puro. O segundo, com o script sugerido. O Node1 "INÍCIO", que não tem filho Node2 sumiu.

hierarq.jpg

Agradeço de antemão o apoio.

Qliking since '09