Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Bom dia,
Tenho uma tabela que calcula o acumulado e a outra que calcula o mensal, porém estou tendo um problema, acredito que seja na analise de conjunto ao calcular o acumulado.
-Na minha analise de conjunto considero apenas alguns campos (4 campos).
-Porém o usuário pode filtrar por mais 5 campos
-Quando na minha analise de conjunto eu coloco Sum({1< no inicio da expressão ele faz o calculo do acumulado correto, porém se o usuário filtra um dos 5 campos que não estão na analise de conjunto ele não reflete no acumulado.
-Quando coloco Sum({$< ele respeita a seleção do usuário ou seja se filtrar um dos 5 outros campos ele calcula correto, porém não acumula.
eu sei que Sum({1< é igual a: Calcula a Soma baseado em todos os valores, ou seja, ignora todas as seleções (ou seja os outros 5 campos de filtro)
eu sei que Sum({$< é igual a: Calcula a Soma das baseado nas seleções atuais
Minha duvida é, se faz sentido e como faz para eu incluir os outros 5 campos na analise de conjunto, por exemplo um dos outros filtros é unidade, se eu coloco Unidade={'*'} ou algo do tipo, para dizer que na conta de acumulado eu quero que ele respeite os filtros e acumule o que não acontece se eu coloco apenas Sum({$<
Se você esta negando todas as seleções, através do prefixo 1 do set analysis, então você precisa reconsiderar os campos que deseja, seja utilizando uma variável ou passando a expressão.
Sum({1< CAMPO1 {"$(=CONCAT(DISTINCT CAMPO1,'","')) "} VENDAS)
ou então colocar a função do concat dentro de uma variável e utiliza-la.
Lembrando que você precisa fazer isso para todos os campos.
IMPORTANTE: Sempre analisar se a performance do cálculo ficou boa ou não.
Se você esta negando todas as seleções, através do prefixo 1 do set analysis, então você precisa reconsiderar os campos que deseja, seja utilizando uma variável ou passando a expressão.
Sum({1< CAMPO1 {"$(=CONCAT(DISTINCT CAMPO1,'","')) "} VENDAS)
ou então colocar a função do concat dentro de uma variável e utiliza-la.
Lembrando que você precisa fazer isso para todos os campos.
IMPORTANTE: Sempre analisar se a performance do cálculo ficou boa ou não.
Tente fazer assim,
Na expressão vc coloca SUM({$< Campo_que_vc_precisa_que_nao_respeite_os_filtros1 =, Campo_que_vc_precisa_que_nao_respeite_os_filtros2 =,
Campo_que_vc_precisa_que_nao_respeite_os_filtros3 =, Campo_que_vc_precisa_que_nao_respeite_os_filtros4 = >}Valor)
Ele vai desconsiderar os campos que vc precisa que acumule, dando o efeito de como vc estivesse utilizando o
sum({1< , porem vai considerar os outros filtros, que são os 5 campos que vc mencionou acima.
Abraços.
Muito obrigado, parece estar funcionando perfeitamente. muito obrigado.
Legal
Desculpa estar prolongado aqui, mas você pode me explicar o que e porque do Concat distinct?
e mais uma vez muito obrigado
A função concat tem por objetivo concatenar todos os valores possíveis (de filtro) e o distinct serve para obter somente uma vez esse valor.
Exemplo do concat para um campo que possui os valores: de 1 até 5.
Com a expressão "=CONCAT(DISTINCT CAMPO1,'","'))" o resultado será '1','2','3','4','5'
dentro da sua expressão ficará da seguinte forma:
Sum({1< CAMPO1 = {'1','2','3','4','5'} VENDAS)
No caso da expressão, o que estamos fazendo:
Entendi.
OBRIGADO