Qlik Community

Qlik Brasil

Group community for Brazil users. discussion only in Portuguese.

Highlighted
Not applicable

Como tratar um array?

Senhores, bom dia!

Estou com um problema trabalho com o datasul e em uma tabela do movimento da folha eu tenho 3 campos array onde são delimitados por ';' são os códigos do evento, quantidade do evento e valor do evento. Como eu posso separar este array fazendo com que cada código de evento seja um registro e vem com seu respectivo valor e quantidade? Os campos vem representados como o exemplo abaixo:

cdn_evento_fp --> 001;031;800;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;...

qtd_event_fp -->   180;40;220;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;...

val_event_fp --> 1000.00;200.00;1200;00;0;0;0;0;0;0;0;0;0;0;0;...

Tags (1)
1 Solution

Accepted Solutions
rphpacheco
Contributor III

Re: Como tratar um array?

Você poderá tratar este campo array utilizando a função Subfield().

Dê uma olhada no exemplo que fiz

Abraço!

4 Replies
rphpacheco
Contributor III

Re: Como tratar um array?

Você poderá tratar este campo array utilizando a função Subfield().

Dê uma olhada no exemplo que fiz

Abraço!

Not applicable

Re: Como tratar um array?

É amigo, funcionou eu estava fazendo de forma errada, como o meu array é de 30 tenho que tratar as 30 posições.

Obrigado!

Not applicable

Re: Como tratar um array?

Raphael, só pra te dar um retorno a sintaxe ficou da seguinte forma:

NoConcatenate Movimento_Folha_cdn:

LOAD cdn_categ_sal,

     cdn_empresa,

     cdn_estab,

     cdn_funcionario,

     num_ano_refer_fp,

     num_mes_refer_fp,

     subfield(cdn_event_fp, ';', IterNo()) as evento, 

     subfield(qtd_unid_event_fp, ';', IterNo()) as qtdevento, 

     subfield(val_calcul_efp, ';', IterNo()) as valevento     

Resident Movimento_Folha1

While subfield(cdn_event_fp, ';', IterNo())>0;

rphpacheco
Contributor III

Re: Como tratar um array?

Boa opção em usar o IterNo() para definir as posições de cada informação