Qlik Community

Qlik Brasil

Group community for Brazil users. discussion only in Portuguese.

Highlighted
mercadante
Not applicable

Utilização do While

Srs. Bom dia!

Alguém pode me ajudar com a função While?

Vou fazer uma carga onde tenho os campos numero do contrato e numero do ponto

Para um numero do contrato eu posso ter um ou mais numero do ponto

Preciso criar um terceiro campo que vai ser tipo um contador iniciado em 0 e agrupado por contrato,

Então um contrato com duas linhas preciso ter um campo qualquer com uma linha 0 e uma linha 1 e assim por diante.

Acredito que com While é possível fazer, mas não tenho afinidade com a utilização do mesmo.

Alguém pode me ajudar com o entendimento ou com algum exemplo.

Obrigado.

Tags (1)
1 Solution

Accepted Solutions
felipe_dutra
Not applicable

Re: Utilização do While

Boa tarde, Antônio!

Pelo que entendi, não será necessário usar While.

O código abaixo vai contar as linhas de cada NUMERO_CONTRATO, começando do zero, ordenado pelo campo NUMERO_PONTO:

[DOCUMENT_LINES]:

LOAD

  NUMERO_CONTRATO,

  NUMERO_PONTO,

  'BO' AS IDENTIFICADOR,

  If(NUMERO_CONTRATO = Peek(NUMERO_CONTRATO), Peek(LINENUM)+1, 0) as LINENUM

RESIDENT BASE

Order By

  NUMERO_CONTRATO asc,

  NUMERO_PONTO asc

;

Resultado:

NUMERO_CONTRATO NUMERO_PONTO LINENUM
43320
5820
5861
100500
10330
10351
10372
10490

Abs,

Felipe

6 Replies
robert_mika
Not applicable

Re: Utilização do While

Você poderia postar seu código?

mercadante
Not applicable

Re: Utilização do While

Minha duvida é justamente em como criar esse código.

Este é o Load

[DOCUMENT_LINES]:

LOAD

  NUMERO_CONTRATO

  NUMERO_PONTO

  'BO'     AS IDENTIFICADOR

LINENUM // Aqui precisa ser um contator iniciando em Zero

RESIDENT

  BASE;

tiago_ferrucio
Not applicable

Re: Utilização do While

Antonio

Tenho um código de exemplo que percorre uma tabela:

FOR X = 0 to FieldValueCount('Caminho')-1;

  LET vCaminho  = Peek('Caminho', $(X), 'Lista de Caminho');

  LET vArquivo  = Peek('Arquivo', $(X), 'Lista de Caminho');

  LET vAmbiente = Peek('Ambiente',$(X), 'Lista de Caminho');

  IF Len('$(vCaminho)') > 1 then

       ->ADD SEU LOAD AQUI <-

  ENDIF

NEXT X;

Essa não é a solução, más talvez seja o caminho das pedras.

Atenciosamente,

Tiago Ferrucio

felipe_dutra
Not applicable

Re: Utilização do While

Boa tarde, Antônio!

Pelo que entendi, não será necessário usar While.

O código abaixo vai contar as linhas de cada NUMERO_CONTRATO, começando do zero, ordenado pelo campo NUMERO_PONTO:

[DOCUMENT_LINES]:

LOAD

  NUMERO_CONTRATO,

  NUMERO_PONTO,

  'BO' AS IDENTIFICADOR,

  If(NUMERO_CONTRATO = Peek(NUMERO_CONTRATO), Peek(LINENUM)+1, 0) as LINENUM

RESIDENT BASE

Order By

  NUMERO_CONTRATO asc,

  NUMERO_PONTO asc

;

Resultado:

NUMERO_CONTRATO NUMERO_PONTO LINENUM
43320
5820
5861
100500
10330
10351
10372
10490

Abs,

Felipe

mercadante
Not applicable

Re: Utilização do While

Felipe,

Simples assim ?

E eu estava pensando num código gigante com While......

Funcionou exatamente do jeito que eu precisava.

Muito Obrigado pela ajuda!

Atte.

Mercadante

gilbertomedeiro
Not applicable

Re: Utilização do While

Olá Felipe,

sei que já se passou algum tempo da sua resposta, mas encontrei-a nesse momento e gostaria de deixar registrado que me ajudou muito também!!

Att.

Gilberto