Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
JacksonAlfonso
Creator
Creator

Set Analysis + filtro dinâmico Opcional

Boa tarde pessoal, estou com uma dúvida.


É possível fazer algo assim:

     Set vTest1 = Sum({<Campo1={'*'}>} valor);


Então em uma expressão qualquer eu uso assim: $(vTest1) << até aqui normal, tudo tranquilo >>


Mas e se, eu quiser usar a mesma função para filtrar um exercício específico, em uma outra situação, isso tem como ser feito, deixando um $1 por exemplo na definição da variável e passar se fosse necessário filtrar por algo a mais, ou então não passo nada e apenas faz o filtro do Campo1 ????


Se alguém puder dar uma ajudinha se é possível ou não.


Att,

Labels (1)
1 Solution

Accepted Solutions
aderlanrm
Partner - Specialist
Partner - Specialist

Acho que entendi sim, deveria ser só usar normalmente, mas fiz uns testes aqui uma forma funcionou, outras não:

Com duas variáveis deu certo também, mas talvez não resolva para você:

No layout define uma variável vPart com o SA que deseja, no script fica:

SET vExemplo = 'Count({<Fornecedor={''I00001''} $(vPart) >} [Num Título])';

Tem que "brincar" com as possibilidades!

Esse artigo (Variáveis - Expansão do sinal de dólar (Dollar Sign Expansion)) do nicolett.yuri‌ pode ajudar.

Abraço.

Aderlan Rodrigues
Analista, Arquiteto de Dados e Piloto Amador Drone FPV
 (41) 9 9917-0869  www.BIdeAZ.com.br  Youtube.com/bideaz  Instagram.com/bideaz.in

"Nada é tão inútil quanto fazer eficientemente o que não deveria ser feito." (Peter Drucker)

View solution in original post

5 Replies
aderlanrm
Partner - Specialist
Partner - Specialist

Olá Jackson,

Sim, você pode fazer:

SET vExemplo = 'Sum({<Campo1={'$1'}>} valor)';

No layout: $(vExemplo('*abc*')) ou $(vExemplo(10))

Ainda pode usar um IF na definição e $1, $2, $3... Serão os parâmetros.

Ex: SET vExemplo = 'If($1 = 'A',Sum(Valor),If($1 = 'B' and $2 = 10,Sum({1} valor), If($1 = 'C',Sum({<Campo={'$2'}>} valor)))';

Abraço.

Aderlan Rodrigues
Analista, Arquiteto de Dados e Piloto Amador Drone FPV
 (41) 9 9917-0869  www.BIdeAZ.com.br  Youtube.com/bideaz  Instagram.com/bideaz.in

"Nada é tão inútil quanto fazer eficientemente o que não deveria ser feito." (Peter Drucker)
JacksonAlfonso
Creator
Creator
Author

Já agradeço a resposta aderlanrm‌, mas na verdade o que queria era o bloco de Set todo, não só o valor do filtro, entende, assim:

Ao invés de definir assim:

SET vExemplo = 'Sum({<Campo1={'$1'}>} valor)';

Seria algo como:

SET vExemplo = 'Sum({<Campo1={'Valor1'}, Campo2={'$(=Max(Campo2))'}>} valor)';


Onde esse bloco ", Campo2={'$(=Max(Campo2))", seria o $1, tanto a dimensão quando o valor a filtrar, entende !? ou seja , ficaria assim:

SET vExemplo = 'Sum({<Campo1={'Valor1'} $1>} valor)';


e no Layout eu usaria assim:

$(vExemplo(", Campo2={'$(=Max(Campo2))"))


ou então deixaria sem passar nada, assim:

$(vExemplo())


não sei se consegui explicar a "maracutaia" que to tentando fazer !! 


Valeu !



aderlanrm
Partner - Specialist
Partner - Specialist

Acho que entendi sim, deveria ser só usar normalmente, mas fiz uns testes aqui uma forma funcionou, outras não:

Com duas variáveis deu certo também, mas talvez não resolva para você:

No layout define uma variável vPart com o SA que deseja, no script fica:

SET vExemplo = 'Count({<Fornecedor={''I00001''} $(vPart) >} [Num Título])';

Tem que "brincar" com as possibilidades!

Esse artigo (Variáveis - Expansão do sinal de dólar (Dollar Sign Expansion)) do nicolett.yuri‌ pode ajudar.

Abraço.

Aderlan Rodrigues
Analista, Arquiteto de Dados e Piloto Amador Drone FPV
 (41) 9 9917-0869  www.BIdeAZ.com.br  Youtube.com/bideaz  Instagram.com/bideaz.in

"Nada é tão inútil quanto fazer eficientemente o que não deveria ser feito." (Peter Drucker)
JacksonAlfonso
Creator
Creator
Author

Muito obrigado aderlanrm, essa ideia da Variável como parâmetro, já adianta bem....!!!

O Ideal era poder usar o $1, mas já me ajudou muito, obrigado cara.

aderlanrm
Partner - Specialist
Partner - Specialist

Lembre de marcar as respostas como úteis e caso ache a solução, também marque como resposta.

Vi lá no grupo de Whats sobre o Replace que o Yuri falou, não teste, mas pode funcionar, segue a linha da primeira resposta, mas tem esse problema da vírgula que não sabia, por isso o uso do replace, precisa testar para ver se funciona, pois eu fiz o teste com e sem a vírgula e na versão 12.1 SR3 não funcionou, mas não tentei com esse replace, talvez funcione, só testando mesmo.

Abraço.

Aderlan Rodrigues
Analista, Arquiteto de Dados e Piloto Amador Drone FPV
 (41) 9 9917-0869  www.BIdeAZ.com.br  Youtube.com/bideaz  Instagram.com/bideaz.in

"Nada é tão inútil quanto fazer eficientemente o que não deveria ser feito." (Peter Drucker)