Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Caros amigos,
Estou necessitando de uma dica de como devo proceder....para trazer como resultado os "níveis" de uma estrutura de produto
tenho uma tabela com os seguintes dados...de um produto (tabela):
COD | COMP | UM | QUANT | |
BALAL121202TDS0 | 0009399 | PC |
| |
BALAL121202TDS0 | 0035152 | PC | 1,000000 | |
0035152 | 0003492 | PC | 1,000000 | |
0035152 | 0005385 | PC | 2,000000 | |
0035152 | 0006455 | PC | 2,000000 | |
0035152 | 0006936 | PC | 2,000000 | |
0035152 | 0007128 | PC | 1,000000 | |
0035152 | 0007130 | PC | 2,000000 | |
0035152 | 0010130 | PC | 1,000000 | |
0035152 | 0012168 | PC | 1,000000 | |
0035152 | 0012212 | PC | 2,000000 | |
0035152 | 0012590 | PC | 2,000000 | |
0035152 | 0017093 | PC | 4,000000 | |
0035152 | 0018412 | PC | 1,000000 | |
0035152 | 0020378 | PC | 1,000000 | |
0035152 | 0031350 | PC | 1,000000 | |
0035152 | 0033486 | PC | 1,000000 | |
0035152 | 0032415 | PC | 1,000000 | |
0035152 | 0035941 | PC | 1,000000 | |
0035152 | 0010610 | PC | 1,000000 | |
0035152 | 0008700 | PC | 1,000000 | |
0009399 | 0000033 | PC | 6,000000 | |
0009399 | 0000036 | PC | 6,000000 | |
0009399 | 0000957 | PC | 8,000000 | |
0009399 | 0002120 | PC | 4,000000 | |
0009399 | 0002730 | PC | 4,000000 | |
0009399 | 0004468 | PC | 2,000000 | |
0009399 | 0008366 | PC | 4,000000 | |
0009399 | 0009405 | PC | 4,000000 | |
0009399 | 0015488 | PC | 6,000000 | |
0009399 | 0031055 | PC | 1,000000 | |
0009399 | 0035082 | PC | 4,000000 | |
0009399 | 0038049 | PC | 4,000000 | |
0009399 | 0038223 | PC | 1,000000 | |
0009399 | 0044292 | PC | 1,000000 | |
0009399 | 0046053 | PC | 4,000000 |
E SUA ESTRUTURA É COMPOSTA DESTA FORMA (por código de produto):
1º NIVEL | 2º NIVEL | 3º NIVEL | |||||||||||||||||||
BALAL121202TDS0 | 0009399 |
| |||||||||||||||||||
BALAL121202TDS0 | 0035152 |
| |||||||||||||||||||
Agora quero saber como faço para trazer isso para uma lista+ com NIVEIS:
1ºNIVEL 2ºNIVEL 3º NIVEL???? (como faço para trazer)
Emissão | CodPro | Prod Estrutura | um | Quant. Estrutura | Quant. Nessessaria | [Status do PV] | |
---|---|---|---|---|---|---|---|
28/12/2015 | BALAL121202TDS0 | 0007241 | UN | 1 | 1 | Aberto | |
0009399 | PC | 1 | 1 | Aberto | |||
0035152 | PC | 1 | 1 | Aberto |
Espero ter explicado bem minha necessidade????
Amigo, segue exemplo que fiz para te ajudar;
Set v_Tamanho_Cod_Pai = 10;
Hierarchy:
Hierarchy(COMP, COD, QUANT, , COMP, CAMINHO, ' \ ', NÍVEL)
Load Distinct
If(IterNo()=1, COMP, COD) As 'COMP',
If(Len(If(IterNo()=1, COMP, COD)) > '$(v_Tamanho_Cod_Pai)','-', COD) As 'COD',
If(IterNo()=1, UM, '-') As 'UM',
If(IterNo()=1, QUANT, '-') As 'QUANT'
While If(Len(COD) > '$(v_Tamanho_Cod_Pai)', 2, 1) - IterNo() >= 0;
Load *
Inline [
COD|COMP|UM|QUANT
BALAL121202TDS0|0009399|PC|1,000000
BALAL121202TDS0|0035152|PC|1,000000
0035152|0003492|PC|1,000000
0035152|0005385|PC|2,000000
0035152|0006455|PC|2,000000
0035152|0006936|PC|2,000000
0035152|0007128|PC|1,000000
0035152|0007130|PC|2,000000
0035152|0010130|PC|1,000000
0035152|0012168|PC|1,000000
0035152|0012212|PC|2,000000
0035152|0012590|PC|2,000000
0035152|0017093|PC|4,000000
0035152|0018412|PC|1,000000
0035152|0020378|PC|1,000000
0035152|0031350|PC|1,000000
0035152|0033486|PC|1,000000
0035152|0032415|PC|1,000000
0035152|0035941|PC|1,000000
0035152|0010610|PC|1,000000
0035152|0008700|PC|1,000000
0009399|0000033|PC|6,000000
0009399|0000036|PC|6,000000
0009399|0000957|PC|8,000000
0009399|0002120|PC|4,000000
0009399|0002730|PC|4,000000
0009399|0004468|PC|2,000000
0009399|0008366|PC|4,000000
0009399|0009405|PC|4,000000
0009399|0015488|PC|6,000000
0009399|0031055|PC|1,000000
0009399|0035082|PC|4,000000
0009399|0038049|PC|4,000000
0009399|0038223|PC|1,000000
0009399|0044292|PC|1,000000
0009399|0046053|PC|4,000000
](delimiter is '|');
Para o seu caso, foi necessário estruturar as hierarquias para funcionar Hierarchy de forma correta;
Percebi que o código pai tem mais caracteres do que os códigos filhos, delimitei para 10 como base de rastreio;
Substitui a estrutura Inline, por exemplo:
FROM [lib://QVD/ARQUIVO.QVD] (qvd);
Amigo, segue exemplo:
Hierarchy:
Hierarchy(NodeID, ParentNodeID, Nivel, ParentName, Nivel, Caminho, '\', Profundidade)
Load * Inline [
NodeID|ParentNodeID|Nivel
1|-|General manager
2|1|Country manager
3|2|Region manager
](delimiter is '|');
Referência:
https://help.qlik.com/pt-BR/sense/3.2/Subsystems/Hub/Content/Scripting/ScriptPrefixes/Hierarchy.htm
Mario, muito obrigado pela sua ajuda....
Mas queria me desculpar....sou leigo nisso....
Estou utilizando um banco de dados para fazer extratificação dos dados...
olhe como ficou o script...
Estrutura:
load
G1_FILIAL,
G1_COD as CodPro,
G1_COMP as Produt,
G1_TRT,
G1_UNI1,
G1_QUANT,
G1_UNI2,
G1_QUANT2,
G1_PERDA,
G1_INI,
G1_FIM,
G1_NIV as Nivel,
G1_TIPVEC;
SQL SELECT * FROM TMPRD.dbo.SG1010 WHERE D_E_L_E_T_ = '';
HierarchyCOMP:
Hierarchy(codPro, G1_COMP_1, nivel1, nivel2, nivel3)
load
G1_COD as CodPro,
G1_COMP as G1_COMP_1,
G1_UNI1 as Unidade,
G1_QUANT as QuantUsada;
SQL SELECT * FROM TMPRD.dbo.SG1010 WHERE D_E_L_E_T_ = '';
aonde será que eu errei no USO DO "Hierarchy" ???
novamente obrigado pela ajuda....
abçs....
Mario,
Por um acaso você teria um exemplo .qvd ??
Amigo, segue exemplo que fiz para te ajudar;
Set v_Tamanho_Cod_Pai = 10;
Hierarchy:
Hierarchy(COMP, COD, QUANT, , COMP, CAMINHO, ' \ ', NÍVEL)
Load Distinct
If(IterNo()=1, COMP, COD) As 'COMP',
If(Len(If(IterNo()=1, COMP, COD)) > '$(v_Tamanho_Cod_Pai)','-', COD) As 'COD',
If(IterNo()=1, UM, '-') As 'UM',
If(IterNo()=1, QUANT, '-') As 'QUANT'
While If(Len(COD) > '$(v_Tamanho_Cod_Pai)', 2, 1) - IterNo() >= 0;
Load *
Inline [
COD|COMP|UM|QUANT
BALAL121202TDS0|0009399|PC|1,000000
BALAL121202TDS0|0035152|PC|1,000000
0035152|0003492|PC|1,000000
0035152|0005385|PC|2,000000
0035152|0006455|PC|2,000000
0035152|0006936|PC|2,000000
0035152|0007128|PC|1,000000
0035152|0007130|PC|2,000000
0035152|0010130|PC|1,000000
0035152|0012168|PC|1,000000
0035152|0012212|PC|2,000000
0035152|0012590|PC|2,000000
0035152|0017093|PC|4,000000
0035152|0018412|PC|1,000000
0035152|0020378|PC|1,000000
0035152|0031350|PC|1,000000
0035152|0033486|PC|1,000000
0035152|0032415|PC|1,000000
0035152|0035941|PC|1,000000
0035152|0010610|PC|1,000000
0035152|0008700|PC|1,000000
0009399|0000033|PC|6,000000
0009399|0000036|PC|6,000000
0009399|0000957|PC|8,000000
0009399|0002120|PC|4,000000
0009399|0002730|PC|4,000000
0009399|0004468|PC|2,000000
0009399|0008366|PC|4,000000
0009399|0009405|PC|4,000000
0009399|0015488|PC|6,000000
0009399|0031055|PC|1,000000
0009399|0035082|PC|4,000000
0009399|0038049|PC|4,000000
0009399|0038223|PC|1,000000
0009399|0044292|PC|1,000000
0009399|0046053|PC|4,000000
](delimiter is '|');
Para o seu caso, foi necessário estruturar as hierarquias para funcionar Hierarchy de forma correta;
Percebi que o código pai tem mais caracteres do que os códigos filhos, delimitei para 10 como base de rastreio;
Substitui a estrutura Inline, por exemplo:
FROM [lib://QVD/ARQUIVO.QVD] (qvd);
No front-end, poderá isolar o caminho da hierarquia pelo campo CAMINHO por exemplo;
Dimensões:
1ºNIVEL
=SubField(CAMINHO,'\',1)
2ºNIVEL
=SubField(CAMINHO,'\',2)
3ºNIVEL
=SubField(CAMINHO,'\',3)
Mario,
Esse ultimo não entendi...
aonde coloco as DIMENSÕES ???
Amigo, segue em anexo;
Agora Ficou muito Claro....
Valew mesmo pela força...
Brigadão !!!!!