Skip to main content
Announcements
Qlik Connect 2024! Seize endless possibilities! LEARN MORE
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Seleção Grupo Cíclico

Boa Tarde,

Tenho a seguinte situação tenho um gráfico, e nele um grupo cíclico, em uma desses itens do grupo, o calculo para informação é diferente, ou seja se selecionar no grupo fabricante,linha, etc ... calcula a + b, porém quando seleciono canal no grupo o calculo deve ser a + b - c.
Porém não estou conseguindo fazer isso.

if

(

(

(

(GetCurrentSelections(DetColResumo)='Canal Venda' or
GetCurrentSelections(DetColResumo)='Ciclo' or
GetCurrentSelections(DetColResumo)='Fabricante' or
GetCurrentSelections(DetColResumo)='Canal Cliente'),
count(distinct(LEFT(DMHISARTCLI.CDARTVAR,4))),
sum(if(DMPLAHIS.INATIVO = 'A', DMPLAHIS.QTARTMOD, 0))
)

Obrigado!













1 Solution

Accepted Solutions
Not applicable
Author

Vilmar, sua lógica me parece estar correta, só nao entendi porque tantos parentes abrindo e fechando, voce pode suprimi-los pois tem somente um IF com várias condições dentro da mesma estrutura.

O que não deu certo? o valor não bate? Experimente usar a função GetCurrentField ao invés da GetCurrentSelections...

Abraço,

View solution in original post

7 Replies
Not applicable
Author

Vilmar, sua lógica me parece estar correta, só nao entendi porque tantos parentes abrindo e fechando, voce pode suprimi-los pois tem somente um IF com várias condições dentro da mesma estrutura.

O que não deu certo? o valor não bate? Experimente usar a função GetCurrentField ao invés da GetCurrentSelections...

Abraço,

Not applicable
Author

obrigado, utilizando a função getcurrentfield funcionou.

cesaraccardi
Specialist
Specialist

Bom dia Vilmar,

Procure utilizar o recurso do Set Analysis no lugar dos "if", além de ter uma performance melhor, a informação é exibida de forma mais coerente nos subtotais.

A sua expressão poderia ser assim:

count({<DetColResumo={'Canal Venda','Ciclo','Fabricante','Canal Cliente'}>} distinct(LEFT(DMHISARTCLI.CDARTVAR,4)))

+

sum({$-1<DetColResumo={'Canal Venda','Ciclo','Fabricante','Canal Cliente'},DMPLAHIS.INATIVO={'I'}>} DMPLAHIS.QTARTMOD)

A primeira parte filtra a dimensão DetColResumo pelos valores no conjunto

e a segunda filtra os valores diferentes do conjunto onde o campo "DMPLAHIS.INATIVO" for 'I', ou seja, o contrário do 'A'.

Espero que isso te ajude. Eu sei que a sintaxe do Set Analysis pode parecer meio confusa de início, porém você consegue fazer inúmeras expressões com esse recurso.

Abraços

Not applicable
Author

ok, porém minha dúvida é a seguinte ... com o IF tenho a condição e o ELSE, pelo que entendi no seu exemplo ele faz ambos ... e preciso q seja exebido um ou outro.

depende da seleção dos filtros.

cesaraccardi
Specialist
Specialist

No exemplo que mostrei, as condições do "then" e do "else" estão separadas. Eu coloquei um sinal de adição (+) caso você deseja trazer o resultado de ambas na mesma expressão, cada cálculo será feito respeitando o filtro, se quizer separar é só colocar em expressões diferentes.

Abraços

Not applicable
Author

desculpe mas não compreendi como fazer, poderias me passar um exemplo? tendo um "else"

cesaraccardi
Specialist
Specialist

Vilmar,

quando você utiliza o Set Analysis, está trabalhando com conjuntos. No exemplo que postei:

count({<DetColResumo={'Canal Venda','Ciclo','Fabricante','Canal Cliente'}>} distinct(LEFT(DMHISARTCLI.CDARTVAR,4)))

+

sum({$-1<DetColResumo={'Canal Venda','Ciclo','Fabricante','Canal Cliente'},DMPLAHIS.INATIVO={'I'}>} DMPLAHIS.QTARTMOD)

eu separei as dimensões onde o resultado é comum, A segunda expressão que está sendo adicionada está com os operadores: $-1 que seria tudo que não está nos conjuntos DetColResumo={'Canal Venda','Ciclo','Fabricante','Canal Cliente'} e DMPLAHIS.INATIVO={'I'}>},

seria o "ELSE" que você está querendo.

Se ainda estiver com dúvida, consulte o material da Toccato sobre os operadores e a sintaxe em geral do Set Analysis:

[View:http://community.qlik.com/cfs-file.ashx/__key/CommunityServer.Discussions.Components.Files/97/0385.An_E100_lise-de-Conjunto.pdf:550:0]

Abraços