Skip to main content
Announcements
Join us at Qlik Connect for 3 magical days of learning, networking,and inspiration! REGISTER TODAY and save!
cancel
Showing results for 
Search instead for 
Did you mean: 
danilodalosse
Partner - Contributor III
Partner - Contributor III

Expressão com parâmetro retorna erro ')' expected

Boa tarde amigos,

Criei uma expressão com parâmetro para que pudesse passar nesse parâmetro o código de um indicador e essa expressão me desse o valor. Assim como tenho 50 indicadores não precisaria criar 50 expressões. Porém consigo usar essa expressão em gráficos e objetos de texto normalmente, exceto se tentar usá-la dentro de outra função, como por exemplo um 'if' ou um 'Num()'.

Quando tento usar dentro de uma outra função ela me retorna erro de ')' expected.

Alguém poderia me ajudar com esse problema?

Minha expressão:

eIndicador = Num(avg({<%INDICADOR={$1},INDICADOR.DESCRICAO=,INDICADOR.DATA_COLETA={'$(=Date(RangeMin(max({<%INDICADOR={$1},INDICADOR.DATA_COLETA=,INDICADOR.DESCRICAO=>}INDICADOR.DATA_COLETA),max({<%INDICADOR={$1}>}INDICADOR.DATA_COLETA))))'}>}INDICADOR.VALOR),'#.##0,00')

Exemplo do erro: if($(eIndicador(13))>0,'share','not share')

Exemplo de como funciona normalmente: $(eIndicador(13))

1 Solution

Accepted Solutions
danilodalosse
Partner - Contributor III
Partner - Contributor III
Author

Para usar a variável dentro de uma função ou dentro de outra variável eu precisei adicionar mais um $!

$(=$(variável(parâmetro)))

Exemplo:

Ao invés de usar assim: if($(eIndicador(13))>0,'share','not share')

Usei assim: if( $(=$(eIndicador(13))) >0,'share','not share')

View solution in original post

9 Replies
Marcio_Campestrini
Specialist
Specialist

Danilo,

Tente retirar a função Num da sua expressão.

Márcio Rodrigo Campestrini
danilodalosse
Partner - Contributor III
Partner - Contributor III
Author

Bom dia Márcio!
Retirei o Num() mas o erro persiste.

mario_sergio_ti
Partner - Specialist
Partner - Specialist

Amigo;

Tente depurar fracionando/simplificando a expressão;

Até encontrar a parte com o erro.

Consultor certificado | Quem compartilha, aprende!
https://www.linkedin.com/in/mariosergioti
danilodalosse
Partner - Contributor III
Partner - Contributor III
Author

Valeu Mario, vou tentar e respondo aqui.

Marcio_Campestrini
Specialist
Specialist

Danilo,

Qual o erro que ocorre? Você consegue enviar um print?

Márcio Rodrigo Campestrini
vinieme12
Champion III
Champion III

The expression is incorrect.

If you are trying to average two values, you should be using RangeAvg (value1, value2)

Practice indentation so you know which brackets are open and when closing and when


Num (Rangeavg (Sum or any other Aggrgation function ( {<

          % INDICATOR = {$ 1},     <<< What is '$ 1' ??

          INDICATOR.DESCRIPTION =,

          INDICATOR.DATA_COLETA = {'$ .DESCRIPTION = >}        <<< You have not closed the Parenthesis here, also why is there an equal sign?

                INDICATOR.DATA_COLETA )

          ,


Max ( {<% INDICATOR = {$ 1}>}    <<< What is '$ 1' ??

                     INDICATOR DATA_COLETA)

                   )


)   <<< Closing RangeAvg ()


>}   <<< Not Needed remove


VALUE INDICATOR) , '#. ## 0.00 ')

Vineeth Pujari
If a post helps to resolve your issue, please accept it as a Solution.
danilodalosse
Partner - Contributor III
Partner - Contributor III
Author

Mario, depurei mas não era erro de sintaxe na expressão e sim a maneira de usar a variável

danilodalosse
Partner - Contributor III
Partner - Contributor III
Author

A expressão estava correta Vineeth, precisei mudar a maneira de utilizar a variável. De qualquer maneira obrigado pela resposta

danilodalosse
Partner - Contributor III
Partner - Contributor III
Author

Para usar a variável dentro de uma função ou dentro de outra variável eu precisei adicionar mais um $!

$(=$(variável(parâmetro)))

Exemplo:

Ao invés de usar assim: if($(eIndicador(13))>0,'share','not share')

Usei assim: if( $(=$(eIndicador(13))) >0,'share','not share')