0 Replies Latest reply: Jan 25, 2018 5:28 PM by CLAUDIO PADILHA RSS

    Problema de peek em loop com autogenerate

    CLAUDIO PADILHA

      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;