Estimado, recientemente tuve problemas con MsgDate, porque al usarla de cierta forma se bloqueaba la app.
suced铆a que la usaba de esta forma
pero cuando dFechaOfe estaba vacia, no se llegaba amostrar el calendario y se bloqueba la app.
revisando el fuente de dicha funcion me encontre esto:
le explico lo que encontr茅, al inicio de define dDate por defecto con el valor de la fecha actual
ojo aca por defecto dDate tomara el valor de la fecha cuando el valor de dDate sea NIL, pero cuando dDate esta vaci贸, dDate as铆 se quedaba.
luego el ciclo while quedaba infinito dato que day retorna 0 para una fecha vacia.
se soluciona modificando la funci贸n as铆
suced铆a que la usaba de esta forma
REDEFINE GET oFechaOfe VAR dFechaOfe ;
ID 101 OF oFolder:aDialogs[ 1 ] ;
BITMAP "BMS_CALEND" ;
ACTION ( dFechaOfe:=MsgDate( dFechaOfe, "Seleccione fecha de ingreso1" , oFechaOfe ) ) ;
PICTURE "@D"pero cuando dFechaOfe estaba vacia, no se llegaba amostrar el calendario y se bloqueba la app.
revisando el fuente de dicha funcion me encontre esto:
DEFAULT dDate := Date(), cPrompt := "Seleccione una fecha"
....
dDate -= Day( dDate ) - 1
while DoW( dDate ) != 2 // Monday
dDate --
enddole explico lo que encontr茅, al inicio de define dDate por defecto con el valor de la fecha actual
DEFAULT dDate = date()
ojo aca por defecto dDate tomara el valor de la fecha cuando el valor de dDate sea NIL, pero cuando dDate esta vaci贸, dDate as铆 se quedaba.
luego el ciclo while quedaba infinito dato que day retorna 0 para una fecha vacia.
se soluciona modificando la funci贸n as铆
DEFAULT cPrompt := "Seleccione una fecha"
IF dDate==NIL .or. Empty(dDate)
dDate = Date()
ENDIFSalu2
Carlos Vargas
Desde Managua, Nicaragua (CA)
Carlos Vargas
Desde Managua, Nicaragua (CA)