Quote Originally Posted by Benedito View Post
Continuando, fiz esta procedure mas está faltando alguma coisa, alguem se habilita?

Procedure PrepararData

Move true to bFeriado
Repeat
Clear Feriados
Move (Cadconcessao.Fim_da_Vigencia) to Feriados.Data
Find eq Feriados by 1
If (Found) Move (Cadconcessao.Inicio_da_Vigencia + 60) to Cadconcessao.Fim_da_Vigencia
Else Move False to bFeriado
Until(not(bFeriado))
If ((DateGetDayOfWeek(Cadconcessao.Fim_da_Vigencia)) = 1) Move (Cadconcessao.Fim_da_Vigencoa + 1) to Cadconcessao.Fim_da_Vigencia
If ((DateGetDayOfWeek(Cadconcessao.Fim_da_Vigencia)) = 7) Move (Cadconcessao.Fim_da_Vigencia + 2) to Cadconcessao.Fim_da_Vigencia
Move True to bDataBoa
Clear Feriados
Move Cadconcessao.Fim_da_Vigencia to Feriados.Data
Find eq Feriados by 1
If (Found) Move False to bDataBoa
If (((DateGetDayOfWeek(Cadconcessao.Fim_da_vigencia)) = 1) or ((DateGetDayOfWeek(Cadconcessao.Fim_da_Vigencia)) = 7 Move False to bDataBoa
Until (bDataBoa)
Set Value of (Cadconcessao.Fim_da_Vigencia) to Cadconcessao.Fim_da_Vigencia
End_Procedure


Se Alguem puder melhorar a Procedure fico agradecido, pois ela não esta funcionando como eu quero
boa tarde meu amigo Benedito, vamos aos poucos ajustando para ficar da maneira que você precisa, um detalhe que notei por cima é que você soma na data de inicio da vigencia direto 60, tenta utilizar a função para acrescentar dias a uma data que é a:

Code:
Move (DateAddDay(Cadconcessao.Inicio_da_Vigencia,60)) to Cadconcessao.Inicio_da_Vigencia
assim que eu tiver mais tempo eu volto para analisarmos mais a tua procedure um abraço.