Nel caso che ha citato g.anastasi l'uso di uno switch sarebbe stato ancora meglio.
Ad esempio scrivendo
- Code: Select all
switch (valoreCampo)
{
case: valoreLista1
case: valoreLista2
case: valoreLista3
case: valoreLista5
campoPannello = valoreCampo;
break;
}
Questo codice imposta un campo di pannello con un valore passato, solo se questo è incluso in un determinato elenco.
Potenzialmente è più versatile perché ti permette di saltare dei valori (io ho saltato il 4°, ad esempio) senza scrivere più volte il codice di assegnamento e scrivendo qualcosa di più leggibile di una serie di IF.
È anche possibile sapere se un valore fa parte di una lista, usando la Decode, che dato un valore e una Lista torna il nome della costante.
- Code: Select all
if (decode(valore, Lista) != "")
// allora il valore è nella lista
Purtroppo le costanti non sono memorizzate nel codice sorgente creato da In.de. Quando si scrive
userRole = Amministratore; In.de scrive
MainFrm.userRole = new IDVariant(1);. Non c'è riferimento alla costante.
A parte il caso citato da g.anastasi, che credo sia più risolvibile con lo switch, ci sono casi in cui avete avuto bisogno di ciclare su tutti i valori di una lista? Potete farmi qualche altro esempio pratico?