Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
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,
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.
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.
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 !
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.
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.
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.