6 Replies Latest reply: May 9, 2016 3:27 PM by Raphael Nunes RSS

    Looping dentro de um LOAD

    Raphael Nunes

      Pessoal, boa tarde.

       

      Estou com uma dúvida no meu aplicativo.

      Tenho uma tabela como a seguir:

       

       

      Como podem ver, tenho a matrícula do funcionário e o tipo de atividade, sendo que o INI define o início de cada jornada, e o FEC define o encerramento de cada jornada.

      Preciso encontrar uma forma de agrupar essas jornadas por meio do script, sendo que elas tem um número de linhas (ou atividades) variado.

      A solução que venho trabalhando é algo do tipo:

       

      b_caderno1:

      LOAD *,

        If(Jor <> '-', Jor, If(peek(Jor) <> '-', peek(Jor), If(peek(Jor, -2) <> '-', peek(Jor, -2),If(peek(Jor, -3) <> '-', peek(Jor, -3),If(peek(Jor, -4) <> '-', peek(Jor, -4),If(peek(Jor, -5) <> '-', peek(Jor, -5),If(peek(Jor, -6) <> '-', peek(Jor, -6),))))))) as Jor_Ini

      // If(peek(Jor, $(i)) <> '-', peek(Jor, $(i)),) as Jor_Ini

      Resident b_caderno;

      DROP Table b_caderno;

       

      Assim, o LOAD procura continuamente um valor anterior de Jor que seja diferente de '-'. Porém tal solução não satisfaz totalmente, pois requer a inserção de vários IFs dentro de IFs, e só me permite procurar um número limitado de vezes.

      Existe uma forma de inserir um Loop (FOR ou While) dentro do próprio comando LOAD, a fim de satisfazer este problema?

      O meu objetivo é ficar com o resultado a seguir com a coluna "Jor_Ini":

       

       

      Obrigado