Skip to main content
Announcements
NEW: Seamless Public Data Sharing with Qlik's New Anonymous Access Capability: TELL ME MORE!
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Função FieldValue retornando Nulo Indevidamente

Bom dia pessoal

Yuri alguns tópicos atrás você me ajudou com a função FieldValue porém fiz uma série de testes e encontrei uma situação muito mas muito estranha.

Estou usando FieldValue dentro de um For, e por algum motivo que não consegui identificar, se o VALOR do campo que aplico "FieldValue" for igual ao valor lido anteriormente (na passagem anterior do for) ele retorna nulo. Se o valor for diferente ele retorna corretamente. Seria maluquisse mas parece uma falha do próprio Qlikview.

Preparei um exemplo que está em anexo, onde você pode depurar poderá verificar que quando a variável vContEmpresa assume o valor 2, a variável vParametro assume nulo, e deveria assumir "ABC".

Se você mudar na leitura inLine o valor ABC da empresa código 2, para algum valor diferente de ABC, verá que vai ler corretamente.

Quem puder me ajudar eu agradeço

Abraço

Anderson Oberdan

1 Solution

Accepted Solutions
nicolett_yuri

Anderson, então utilize o Peek() que não possui esse problema

View solution in original post

6 Replies
rogerioqv
Creator II
Creator II

Anderson,

Essa função funciona apenas para valores de campos distintos... ou seja, se vc inverter o valor do campo da empresa 5 para ACB funciona.

Abraços.

Not applicable
Author

Rogério obrigado pela resposta, mas este é meu problema. Eu posso ter o mesmo valor aqui na minha situação.

Porém uma forma que encontrei de resolver, foi concatenar o valor do campo que pode estar repetido, e na hora de atribuir o valor a variável eu "desconto" esta concatenação. Funcionou, mas convenhamos que é uma "gambiarra" heheh...

Repare no arquivo em anexo que fiz a concatenação do código com o parâmetro na leitura inLine

Depois na linha 24 eu desmembro novamente. E com isso ele carrega direitinho, mesmo com os dados sendo "iguais".

Abraço

Anderson Oberdan

nicolett_yuri

Anderson, então utilize o Peek() que não possui esse problema

fernando_tonial
Employee
Employee

Anderson, boa tarde.

Faça assim e veja se o resultado é o esperado.

TabelaEmpresa:

LOAD * INLINE [

    Codigo, Nome, Parametro

    1, Empresa Alfa, ABC

    5, Empresa Beta, ABC

    3, Empresa Gama, CDF

];

For vContEmpresa = 0 to NoOfRows('TabelaEmpresa')-1

  Let vParametro       = Peek('Parametro', $(vContEmpresa), 'TabelaEmpresa');

  Let vEmpresaCodigo   = Peek('Codigo', $(vContEmpresa), 'TabelaEmpresa');

  Let vEmpresaNome = Peek('Nome', $(vContEmpresa), 'TabelaEmpresa');

  TRACE '$(vEmpresaCodigo) - $(vEmpresaNome) - $(vParametro)';  

  Resultado:

  LOAD

     '$(vEmpresaCodigo)' AS rEmpresaCodigo,

     '$(vEmpresaNome)' AS rEmpresaNome,

     Date((Today() - RowNo()),'YYYY-MM-DD') AS rData,

     '$(vParametro)' AS rParametro

  AutoGenerate(5);

NEXT //For vContEmpresa;  

Qlikfique-se.

Abraços.

Tonial.

Don't Worry, be Qlik.
rogerioqv
Creator II
Creator II

Anderson,

Segue alteração.

Clever_Anjos
Employee
Employee

Como já dito anteriormente, FieldValue() trabalha na tabela de símbolos do QlikView, portanto só pega valores distintos.

Se precisar pegar o valor em uma linha, utilize o Peek() pois essa trabalha na tabela com os dados.