Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
Anonymous
Not applicable

Como pegar períodos de datas distintos em mais de um mês

Bom dia.

Tenho na empresa que trabalho, que controlar os gastos, devido a regras de orçamento, que funcionam da seguinte forma:

Do dia 08 a 12;

Do dia 13 a 17;

Do dia 18 a 22;

Do dia 23 a 27; e

Do da 28 a 07 (mês seguinte).

Ou seja, tenho que separar o que já foi gasto nestes dias, o que não foi difícil (Clever me ajudou), mas agora, para complicar, o meu gestor quer que do dia 28 de um mês eu busque até o dia 07 do mês seguinte.

Mas se seleciono o mês de novembro de 2016 nos filtros, como pegar os 7 dias de dezembro? (sempre vai ser assim, mais 7 dias do mês seguinte)

Agora me quebrou.

Veja o código que tô usando, com a colaboração do Clever (e que funciona muito bem, dentro do mês atual).

     If(day(DT_PAGAMENTO) < 13, 'De 01 a 12',

      If(day(DT_PAGAMENTO) < 18, 'De 13 a 17',

         If(day(DT_PAGAMENTO) < 23, 'De 18 a 22',

    If(day(DT_PAGAMENTO) < 28, 'De 23 a 27', 'De 28 a 30/31')))) as [Vencimentos],

Como fazer para pegar os 07 dias do mês seguinte, mesmo selecionado um determinado mês?

1 Solution

Accepted Solutions
mauroponte
Creator II
Creator II

Marcos,

O que voce pode fazer é no script guardar o Mês de apuração.

Nesse caso se o campo DT_PAGAMENTO estiver entre o dia 1 e o dia 7 o mês de apuração será o mês anterior ao mês da data. Acho que

if(day(DT_PAGAMENTO) <=7,month(AddMonths(DT_PAGAMENTO,-1)),month(DT_PAGAMENTO)) as Mês_Apuração

no seu script resolveria o problema.

Daí no filtro, para esse caso voce utilizaria Mês_Apuração para o filtro, ao invés do seu campo de Mês.

Espero ter ajudado.

View solution in original post

3 Replies
JacksonAlfonso
Creator
Creator

Usando: MakeDate(Year(Data), Month(Data)+1, 7),  a principio resolve, se entendi corretamente sua dúvida !

Ou se você criou um calendário Master, é só usar o campo Ano e Mês do calendário.

mauroponte
Creator II
Creator II

Marcos,

O que voce pode fazer é no script guardar o Mês de apuração.

Nesse caso se o campo DT_PAGAMENTO estiver entre o dia 1 e o dia 7 o mês de apuração será o mês anterior ao mês da data. Acho que

if(day(DT_PAGAMENTO) <=7,month(AddMonths(DT_PAGAMENTO,-1)),month(DT_PAGAMENTO)) as Mês_Apuração

no seu script resolveria o problema.

Daí no filtro, para esse caso voce utilizaria Mês_Apuração para o filtro, ao invés do seu campo de Mês.

Espero ter ajudado.

afurtado
Partner Ambassador/MVP
Partner Ambassador/MVP

Marcos,

eu faria o mesmo sugerido pelo mauroponte‌   , criaria o mês usando ou não o addmonths(), de acordo com o dia.

furtado@farolbi.com.br