Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Boa tarde Pessoal,
Tenho um filtro de semana no qual quando selecionada semana X deverá trazer o valor o valor das semanas anteriores.
Exemplo:
Filtro: Semana 4 -> Deverá trazer o valor acumulado da semana 1 até a semana 3.
Porem o resultado da semana 1 à 3 deverá ser o valor da ultima data na semana. Ou ultimo dia da semana.
Veja a tabela abaixo:
Semana | Data | Valor |
---|---|---|
1 | 24/04/2017 | 10 |
1 | 25/04/2017 | 11 |
1 | 26/04/2017 | 10 |
1 | 27/04/2017 | 30 |
1 | 28/04/2017 | 35 |
1 | 29/04/2017 | 60 |
1 | 30/04/2017 | 61 |
2 | 01/05/2017 | 30 |
2 | 02/05/2017 | 10 |
2 | 03/05/2017 | 21 |
2 | 04/05/2017 | 45 |
2 | 05/05/2017 | 50 |
2 | 06/05/2017 | 52 |
2 | 07/05/2017 | 53 |
3 | 08/05/2017 | 20 |
3 | 09/05/2017 | 21 |
3 | 10/05/2017 | 25 |
3 | 11/05/2017 | 17 |
3 | 12/05/2017 | 30 |
3 | 13/05/2017 | 40 |
3 | 14/05/2017 | 31 |
4 | 15/05/2017 | 10 |
4 | 16/05/2017 | 40 |
4 | 17/05/2017 | 50 |
4 | 18/05/2017 | 28 |
4 | 19/05/2017 | 30 |
4 | 20/05/2017 | 48 |
4 | 21/05/2017 | 50 |
No exemplo acima o resultado da seleção na semana 4 deverá ser a soma dos valores destacados em vermelho: 61, 53 e 31. Sempre devera considerá a ultima data por semana anterior a semana selecionada.
Se alguem puder me ajudar, agradeço.
João Carlos.
Solução via Script:
Adicionar:
If(WeekDay(Data) = 0, 1, 0) As 'Flag'
Expressão frond-end:
If(GetSelectedCount(Semana)<>0,
Sum({1< Semana={"<$(=Min(Semana))"}, Flag={1} >} Total Valor)
,Sum(Total {<Flag={1} >} Valor)
)
O mesmo resultado da solução tudo via expressão que citei acima.
Joao
Crie um indicador no seu script para saber qual o ultimo dia da semana.
Imaginando que a sua semana vai de domingo a sabado:
If(WeekDay(Data) = 6, 1, 0) As _indicadorFimSemana
Com isso acredito que você vai conseguir gerar a sua soma sem problemas.
Márcio,
No meu caso a semana vai de Segunda a Domingo
Att,
Joao
No caso de segunda a domingo é 6 mesmo. Para sábado é 5.
Amigo, segue;
If(GetSelectedCount(Semana)<>0,
Sum({1< Semana={"<$(=Min(Semana))"} >} Total SubField(Aggr(MaxString({1< Semana={"<$(=Min(Semana))"} >}Data&'-'&Valor), Semana), '-', 2))
,Sum(Total SubField(Aggr(MaxString(Data&'-'&Valor), Semana), '-', 2))
)
weekend(data) não resolve ?
sum(if(today() = weekend(today()),1,0)
Resultado:
Solução via Script:
Adicionar:
If(WeekDay(Data) = 0, 1, 0) As 'Flag'
Expressão frond-end:
If(GetSelectedCount(Semana)<>0,
Sum({1< Semana={"<$(=Min(Semana))"}, Flag={1} >} Total Valor)
,Sum(Total {<Flag={1} >} Valor)
)
O mesmo resultado da solução tudo via expressão que citei acima.
Funcionaria assim:
If(WeekDay(Data) = 0, 1, 0)
Via script, conforme alternativa que deixei abaixo.
Boa tarde Mario,
Funcinou perfeitamente.
Muito obrigado
João Carlos