Qlik Community

Qlik Brasil

Group community for Brazil users. discussion only in Portuguese.

Highlighted
cpadilha_jireh
New Contributor II

Problema de peek em loop com autogenerate

Estou usando criando uma de calendário baseada em uma outra tabela com data inicio e final por banco e agencia. Agencia, Banco, Data Inicial, Data Final. Uso peek com loop para ler cada registro. E depois crio uma nova tabela com autogenerate. e Agencia, Banco , Data Carregada em variaveis com peek. O que está ocorrendo: o primeiro registro ele carrega e ao dar o autogenerate ele não consegue mais achar os demais registros na tabela original. Fiz o teste e tirei o load com autogenerate e funcionou, ou seja: após dar o autogenerate na 2a tabela o peek da primeira se perder. Alguem já viu este problema ?
Só funciona criando a tabela de data inicial e final dentro do loop depois de dar o autogenerate .
Se deixar só no inicio fora do loop só consegue acessar via peek a primeira linha

Já viram isso ?

sub COMPLETA_DATAS_EXTRATO(vSUB_TABELA);

Periodo_Inicial_Final_Por_Banco_Agencia:

load  text([Banco])  AS [Banco],

              text([Agência]) as [Agência],

              text([Conta])  as [Conta],

              min([Data Saldo]) as [Data Inicial],

              max([Data Saldo]) as [Data Final]

resident $(vSUB_TABELA)

WHERE LEN(TRIM([Data Saldo])) > 0 AND  LEN(TRIM([Data Saldo]))  > 0

group by [Banco],

        [Agência],

        [Conta];

let vTOTAL_LINHA = NoOfRows('Periodo_Inicial_Final_Por_Banco_Agencia') -1;

for vLINHA = 0 to  vTOTAL_LINHA;

  TRACE '-11-' $(vLINHA);

  LET vBANCO      = PEEK('Banco',vLINHA,Periodo_Inicial_Final_Por_Banco_Agencia);

  LET vAGENCIA      = PEEK('Agência',vLINHA,Periodo_Inicial_Final_Por_Banco_Agencia);

  LET vCONTA        = PEEK('Conta',vLINHA,Periodo_Inicial_Final_Por_Banco_Agencia);

  LET vDATA_INICIAL = PEEK('Data Inicial',vLINHA,Periodo_Inicial_Final_Por_Banco_Agencia);

  LET vDATA_FINAL  = PEEK('Data Final',vLINHA,Periodo_Inicial_Final_Por_Banco_Agencia);

  TRACE '-1-'  $(vBANCO)  - $(vAGENCIA) - $(vDATA_INICIAL) - $(vDATA_FINAL) $(vLINHA);

  for vDATA_CARGA = vDATA_INICIAL to  vDATA_FINAL;

      TRACE TRACE '-2-' $(vBANCO)  - $(vAGENCIA) - $(vDATA_CARGA) - $(vDATA_FINAL);

      Periodo_Completo_Por_Banco_Agencia:

      load text('$(vBANCO)')    as [Banco],

            text('$(vAGENCIA)')  as [Agência],

            text('$(vCONTA)')    as [Conta],

            DATE($(vDATA_CARGA)) as [Data Saldo]

      AutoGenerate 1;

    

  next;

  drop table Periodo_Inicial_Final_Por_Banco_Agencia;

  Periodo_Inicial_Final_Por_Banco_Agencia:

load distinct text([Banco]) AS [Banco],

              text([Agência]) as [Agência],

              text([Conta])  as [Conta],

              min([Data Saldo]) as [Data Inicial],

              max([Data Saldo]) as [Data Final]

resident $(vSUB_TABELA)

WHERE LEN(TRIM([Data Saldo])) > 0 AND  LEN(TRIM([Data Saldo]))  > 0

group by [Banco],

  [Agência],

[Conta];

       

next;

drop table $(vSUB_TABELA);

NoConcatenate // para não dar concatenate com a tabela Periodo_Completo_Por_Banco_Agencia pois tem os mesmos campos

Extrato_Completo:

load [Banco],

    [Agência],

    [Conta],

    [Data Saldo]

resident Periodo_Completo_Por_Banco_Agencia;

left join(Extrato_Completo)

load *

resident  $(vSUB_TABELA)  ;

            

END SUB;