Scripts di interrogazione: condizioni
Scripts di interrogazione: le condizioni
Le condizioni sono elementi degli scripts di interrogazione che possono essere usati:
- nella definizione degli scripts di interrogazione (ad esempio: nelle regole di validazione);
- in certi campi degli oggetti dei computi metrici (gruppi e articoli) sui cui è possibile utilizzare i valori variabili derivanti dallo script di interrogazione associato al progetto.
Le condizioni sono predicati booleani, ovvero predicati che possono essere veri o falsi.
Il significato
delle condizioni varia in funzione delle circostanze, ma in generale si può
dire che:
- una condizione vera abilita l'oggetto o attiva l'opzione cui è collegata;
- una condizione falsa lo disabilita o inibisce l'opzione.
Nella valutazione delle condizioni valgono le seguenti convenzioni:
- gli oggetti boolean hanno valore T (vero) oppure F (falso);
- gli oggetti di tipo DATA sono considerati stringhe nel formato
YYYY-MM-DD (anno-mese-giorno); ad esempio il 31 dicembre 2007 viene scritto
come 2007-12-31;
tale formato ha il pregio di consentire il confronto alfabetico tra date.
ATTENZIONE: poiché 2007-12-31 è interpretata come espressione numerica, per eseguire confronti alfabetici fra date è necessario usare una notazione come #2007-12-31#; esempio: /CHECK=#@#>#2007-12-31#
Le condizioni possono fare uso dei seguenti elementi sintattici:
- i comuni operatori aritmetici di base ( + - * / );
- i comuni segni di uguaglianza e disuguaglianza (= != <> < > >= <=);
- valori costanti (esempio: 13 oppure ALFA);
- riferimenti alle variabili del progetto; il nome della variabile deve essere preceduto da un $. Esempio: se è stata definita una variabile ASSE, è possibile usare $ASSE come elemento di una espressione;
- il simbolo @, che viene sostituito con 'il valore della variabile in esame' (questa sintassi è consentita solo nella definizione delle variabili);
- set di costanti, numeriche
o alfanumeriche, comprese tra parentesi graffe e separate dal carattere pipe; esempio:
{30|45|100} oppure {ALFA|BETA|GAMMA};
$ASSE = {30|45|100} significa $ASSE è uguale ad uno tra i valori 30,45,100
$ASSE != {30|45|50:60} significa $ASSE è diverso da tutti i valori 30,45,50,51,52...58,59,60
l'uso dei sets di costanti è regolato come segue:- i sets di costanti possono essere usati solo con gli operatori = e != (o <>);
- i sets di costanti possono essere usati solo alla destra dell'operatore;
- gli operatori && (AND logico) e || (OR logico);
- le parentesi tonde per eseguire raggruppamenti logici;
- il costrutti SE() e SETESTO()
IL
COSTRUTTO SE()
La sintassi del costrutto SE è la seguente (i due costrutti sono
alternativi ma identici):
SE(condizione ; valore se vero ; valore se falso)
IF(condizione ; valore se vero ; valore se falso)
Il costrutto può restituire solamente valori numerici (e perciò: VALORE_SE_VERO e VALORE_SE_FALSO devono avere valore numerico. E' possibile annidare più costrutti IF() l'uno dentro l'altro.
ESEMPIO: SE($ASSE = 5; 100; 200)
IL
COSTRUTTO SETESTO()
Il costrutto SETESTO è identico al costrutto SE(),
salvo il fatto che VALORE_SE_VERO e VALORE_SE_FALSO sono NON numerici.
SETESTO(condizione ; valore se vero ; valore se falso)
IFTEXT(condizione ; valore se vero ; valore se falso)
ESEMPIO: SETESTO($ASSE = 5; ABRAMO; GIACOBBE)