Qlik Community

Qlik Brasil

Group community for Brazil users. discussion only in Portuguese.

Highlighted
thigobr83
New Contributor III

Problemas com variáveis

Olá, boa tarde !!

Utilizo uma planilha contendo as expressões que utilizo na aplicação (gráficos, caixa de texto ...).

Através de Script crio uma variável para cada expressão, adicionando o valor da expressão.

Mas surgiu um problema algumas variáveis não estão levando as expressões desejadas.

Por Exemplo:

VariávelValor
vCAPTACAO_GRAD_YSTDSUM({< STATUSPERIODO = {1, 4, 5, 7, 8, 11, 12, 13, 14, 18, 19}, [TIPO CURSO] =           {'GRADUAÇÃO'}, IsInYTD = {1}, IsInAnoAtual = {1}, [PERIODO LETIVO] = {'20142'}, Data =                       {"$(=Date(today()-1,'DD/MM/YYYY'))"} >} QTDCAPTACAO)

A parte destacada aparece da seguinte forma: Data = {""}

Alguém teria alguma ideia de como posso resolver ??

Tags (1)
1 Solution

Accepted Solutions
egnaldo_sousa
Contributor II

Re: Re: Problemas com variáveis

Tente utilizar esta solução

13 Replies
edgard130
New Contributor II

Re: Problemas com variáveis

Thiago,

tive um problema parecido e resolvi substituindo o $ pelo char dele. No seu caso ficaria assim

SUM(
{<
STATUSPERIODO = {1, 4, 5, 7, 8, 11, 12, 13, 14, 18, 19},
[TIPO CURSO] = {'GRADUAÇÃO'},
IsInYTD = {1},
IsInAnoAtual = {1},
[PERIODO LETIVO] = {'20142'},
Data = {"'&chr(36)&'(=Date(today()-1,'DD/MM/YYYY'))"}
>}
QTDCAPTACAO

)

cristian_floren
New Contributor II

Re: Problemas com variáveis

Thiago tente usar a expressão sem a aspas

Data ={$(=Date(today()-1,'DD/MM/YYYY'))}



thigobr83
New Contributor III

Re: Problemas com variáveis

Edgard,

Leva o valor da expressão na variável ( Data = {"'&chr(36)&'(=Date(today()-1,'DD/MM/YYYY'))"} ), mas quando chamo a variável $(vCAPTACAO_GRAD_YSTD), ela não calcula.

thigobr83
New Contributor III

Re: Problemas com variáveis

Sem as aspas não funciona.

egnaldo_sousa
Contributor II

Re: Problemas com variáveis

Utilize um caracter diferente no lugar do $, exemplo #.

no momento que importar a variavel substitua por $.

para facilitar sua vida, segue um exemplo.

fernando_tonial
Valued Contributor

Re: Problemas com variáveis

Olá Thiago,

Verifique se o resultado esta conforme o esperado em um objeto de texto.

coloque a seguinte expressão na definição do objeto texto.

=$(=Date(today()-1,'DD/MM/YYYY'))

Caso o resultado seja o esperado, coloque em uma expressão, mas apenas com aspas simples.

SUM({< STATUSPERIODO = {1, 4, 5, 7, 8, 11, 12, 13, 14, 18, 19}, [TIPO CURSO] =           {'GRADUAÇÃO'}, IsInYTD = {1}, IsInAnoAtual = {1}, [PERIODO LETIVO] = {'20142'}, Data ={'$(=Date(today()-1,'DD/MM/YYYY'))'} >} QTDCAPTACAO)


Qlikfique-se.

Tonial

thigobr83
New Contributor III

Re: Problemas com variáveis

Fernando, bom dia !!

Se jogo a expressão direto em um objeto de texto, funciona normalmente.

Mas como estou importando do excel, ela dá pau. Quando procuro a variável nas propriedades do documento, ela não apresenta a expressão corretamente.

Na planilha esta assim:

SUM({< STATUSPERIODO = {1, 4, 5, 7, 8, 11, 12, 13, 14, 18, 19}, [TIPO CURSO] = {'GRADUAÇÃO'}, IsInYTD = {1}, IsInAnoAtual = {1}, [PERIODO LETIVO] = {'20142'}, Data = {'$(=Date(today()-1,"DD/MM/YYYY"))'} >} QTDCAPTACAO)

E na variável dentro do documento esta assim:

SUM({< STATUSPERIODO = {1, 4, 5, 7, 8, 11, 12, 13, 14, 18, 19}, [TIPO CURSO] = {'GRADUAÇÃO'}, IsInYTD = {1}, IsInAnoAtual = {1}, [PERIODO LETIVO] = {'20142'}, Data = {''} >} QTDCAPTACAO)

egnaldo_sousa
Contributor II

Re: Re: Problemas com variáveis

Tente utilizar esta solução

thigobr83
New Contributor III

Re: Problemas com variáveis

Agnaldo,

Estava fazendo os testes, no exemplo que você enviou substitui perfeitamente, mas ao adequar ao meu documento não está substituindo os caracteres ( #, $).

Dá uma olhada no script, e por favor me diz se tem algo errado.

Let vNumberOfRows = nummax(NoOfRows('Expressions'),0)-1;

For i = 0 to '$(vNumberOfRows)'

     Let vVariable_Name = 'v'&Peek('VariableName',$(i),'Expressions');

     Let vVariable_Value = Peek('VariableValue',$(i),'Expressions');

     Let $(vVariable_Name) = Replace('$(vVariable_Value)','#','$');


Next i