El script en el que estoy trabajando tiene una función que crea un cuadro de fecha con un valor predeterminado como argumento. Si el usuario introduce algo que no se reconoce como fecha, restablece el texto a ese valor predeterminado. Quiero añadir una función que, al escribir ciertas palabras clave en el cuadro de fecha, active una acción específica. Por ejemplo, si el usuario escribe "ayer", la fecha y hora se establecerán al comienzo del día anterior.
No sé cómo hacer que la función compruebe estas palabras clave antes de convertir el texto a su valor predeterminado, ya que no es una fecha correcta. ¿Alguna sugerencia para lograrlo?
(usando JMP 17, pero lo ideal sería que también funcionara con las versiones más nuevas)
timeBox = Function( {time},
Eval(
Substitute(
NameExpr( NumberEditBox(
time,
10, //width
<< SetFunction( Function( {self}, {},
If( IsMissing(self << get), self << Set(Eval(dummy)) );
) ),
<< Set Format( Format( "m/d/y h:m:s", 23, 0 ) );
) ),
Expr( dummy ),
time
)
);
);
timeEntryWindow = NewWindow( << Modal,
PanelBox( "Start Time", startTimeBox = timeBox( Today() - 12*60*60 ) )
);
Como es un cuadro de edición de NÚMERO , solo acepta números. Empieza con algo muy simple y pruébalo de diferentes maneras (si introduces texto, te aparecerán valores faltantes).
Names Default To Here(1);
nw = new window("",
neb = Number Edit Box(.)
);
neb << Set Function(function({this},
show(this << get)
));
/*
neb << Set Number Changed(function({this, val},
show(this << get);
show(val);
));
*/
Puede crear un menú desplegable o un botón para establecer el valor de ayer O puede usar un cuadro de edición de texto y crear un cuadro de calendario personalizado o un cuadro de edición de números con eso.