2 Replies Latest reply: Jan 27, 2011 3:52 PM by Héctor Muñoz RSS

    comando PEEK

      Boa tarde,

       

      Gostaria de saber para que server o comando PEEK...E se possivel me enviar um exemplo?

       

      agradeço desde já.

       

      obrigado,

        • comando PEEK

          Olá Maurício,

          Segundo a documentação do QlikView sobre o comando Peek.

           

          peek( nomedocampo [ , linha [ , nomedatabela ] ] )

          Retorna o conteúdo do nomedocampo no registro especificado por linha na tabela de entrada nomedatabela. Os dados são lidos da base de dados associada do QlikView.

          O nomedocampo deve ser fornecido como string (por exemplo, um literal entre aspas).

          Linha deve ser um inteiro. 0 indica o primeiro registro, 1 indica o segundo e assim por diante. Os números negativos indicam a ordem a partir do final da tabela. -1 indica o último registro lido.

          Se nenhuma linha for definida, -1 será assumido.

          Nomedatabela é um rótulo de tabela sem os dois-pontos finais. Se nenhum nomedatabela for definido, a tabela atual será assumida. Se usado fora do comando local ou em referência a outra tabela, o nomedatabela deve ser incluído.

          Exemplos:

          peek( 'Vendas' )
          retorna o valor de Vendas na leitura do registro anterior (equivale a previous(Vendas) ).

          peek( 'Vendas', 2 )
          retorna o valor de Vendas a partir do terceiro registro lido na tabela de entrada atual.

          peek( 'Vendas', -2 )
          retorna o valor de Vendasa partir do segundo registro lido na tabela de entrada atual.

          peek( 'Vendas', 0, Tab1 )
          retorna o valor de Vendas a partir do primeiro registro lido na tabela de entrada Tab1.

          Load A, B, numsum( B, peek( 'Bsum' ) ) as Bsum...;
          cria um acumulado de B em Bsum.

           

          Ex.

          Vou ler uma tabela com 4 registros e para cada registro vou gerar uma variável com o conteúdo do registro.



          Rótulos:
          LOAD * INLINE [
          Rótulo
          Faturamento
          Desconto
          Custo
          Margem
          ];

          For a=0 to NoOfRows('Rótulos')
          LET vNroLinha = $(a) + 1;
          LET vPeek_Linha_$(vNroLinha) = Peek('Rótulo',$(a));
          Next


          Ao final da execução desse código poderemos ver as seguintes variáveis.

           

           

          • comando PEEK

            Hi

            Also works in the load statement, to create accumulated fields as

            rangesum(Field,peek('AccumField')) as AccumField

            Rgds

            PD. sorry about posting in english Stick out tongue