Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
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;...

1 Solution

Accepted Solutions
rphpacheco
Creator III
Creator III

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

Dê uma olhada no exemplo que fiz

Abraço!

View solution in original post

4 Replies
rphpacheco
Creator III
Creator III

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

Dê uma olhada no exemplo que fiz

Abraço!

Not applicable
Author

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

Obrigado!

Not applicable
Author

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
Creator III
Creator III

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