Lo script su cui sto lavorando ha questa funzione che crea una casella data con un valore predefinito come argomento e, se l'utente inserisce qualcosa che non può essere riconosciuto come data, ripristina il testo a quel valore predefinito. Voglio aggiungere una funzionalità che, digitando determinate parole chiave nella casella data, attivi un determinato comportamento. Ad esempio, se l'utente digita "ieri", la data/ora verrà impostata all'inizio del giorno precedente.
Non riesco a capire come far sì che la funzione controlli queste parole chiave prima di riconvertire il testo al valore predefinito, perché non è una data corretta. Avete suggerimenti su come farlo?
(utilizzando JMP 17, ma idealmente funzionerebbe anche con le versioni più recenti)
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 ) )
);
Trattandosi di una casella di modifica NUMERO , "può" accettare solo numeri. Inizia con qualcosa di molto semplice e provalo in diversi modi (se inserisci del testo, ti ritroverai con valori mancanti).
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);
));
*/
È possibile creare un menu a discesa/un pulsante per impostare il valore di ieri OPPURE è possibile utilizzare una casella di modifica del testo e creare una casella di modifica del calendario/numero personalizzata.