classe bd_espressione estende bd_campo
{
Alias();
Esporta(); &
Espressione(); &
FunzioneDiGruppo();
Importa(&$str); &
NomeLocale(); &
SQL();
}

define('ESPR_SQL_SOMMA', 1);
define('ESPR_SQL_MAX', 2);
define('ESPR_SQL_MIN', 3);
define('ESPR_SQL_CONTA', 4);
define('FINE_ESPR_GRUPPO', 100);
define('ESPR_SQL_CONCAT', 101);
define('ESPR_SQL_UNISCI', 102); //prende un separatore e tanti parametri, li unisce frapponendo il separatore, ignori i valori nulli e relativo separatore: '.',A,B,C = A.B.C '.',A,NULL,C = A.C
define('ESPR_SQL_COSTANTE', 103);
define('ESPR_SQL_SELECTED', 104); //Se i 2 operatori sono uguali vale 'selected', '' altrimenti
define('ESPR_SQL_INDICE_BASE0', 105);
define('ESPR_SQL_INDICE_BASE1', 106);
define('ESPR_SQL_INTERNAZ', 107); // legge dalla tabella la trduzione di un testo. param: chiave, linguaPred, linguaSceltaDaUtente
define('ESPR_SQL_I_NON_NULLO', 108);
define('ESPR_SQL_PRESENTE', 109); //Torna l'indice del 2° parametro dentro la stringa passata come 1°
define('ESPR_SQL_CONDIZ', 110); //Se la congiunzione dei primi parametri è VERO, allora vale il penultimo, altrimenti l'ultimo
define('ESPR_SQL_SOSTITUISCI', 111);
define('ESPR_SQL_CAMBIO_BASE', 112); //numero, vecchiaBase, nuovaBase(max 36)
define('FINE_ESPR_STRINGA', 150);
define('ESPR_SQL_PER', 151);
define('ESPR_SQL_DIVISO', 152);
define('ESPR_SQL_PIU', 153);
define('ESPR_SQL_MINIMO', 154);
define('ESPR_SQL_MASSIMO', 155);
define('ESPR_SQL_SOMMAPROD', 156);
define('ESPR_SQL_ARROTONDA', 157);
define('ESPR_SQL_ASSOLUTO', 158);
define('FINE_ESPR_DECIMALE', 200);
define('ESPR_SQL_TROVA', 201); //Confronta il primo parametro con gli altri e torna l'indice del parametro uguale o 0 se non trova
define('ESPR_SQL_STRLUN', 202); //misura la lunghezza di una stringa in caratteri
define('ESPR_SQL_SEGNO', 203); //vale -1, 0 o 1 concordemente col segno dell'operatore
define('ESPR_SQL_SEGNO0', 204); //come SEGNO, ma base 0, ovvero vale SEGNO+1
define('ESPR_SQL_MODULO', 205);
define('ESPR_SQL_TRIMESTRE', 206); //torna il trimestre (1-4) della data usata
define('ESPR_SQL_ANNO', 207); //torna l'anno della data usata
define('ESPR_SQL_NCHIAVE', 208); //stacca un nuovo numero dalla tabella di sequenze, prende il nome della sequenza da usare
define('FINE_ESPR_INTERO', 300);
define('ESPR_SQL_SOMMA_GG', 301); // data + num_gg
define('FINE_ESPR_DATA', 400);

locale costruttore($id, &$alias, &$argg, &$listaCampi)

NomeLocale() &
Torna il nome del campo senza indicare il nome della tabella.

Alias($sep='')

FunzioneDiGruppo()
Indica se questa espressione è una funzione di gruppo.

privata NomeFunzione($id)

privata ParametriFunzione($id, &$dim) &
$dim viene passato per riferimento, aggiornato dentro ValoreParametro e "ritornato"

SQL() &
Torna la porzione di SQL necessaria a selezionare il campo

Fornisci() &
Torna la porzione di SQL necessaria a selezionare il campo

Esporta() &

statica ImportaEsp(&$stringa)

Espressione() &
Torna la porzione di SQL necessaria a selezionare il campo

privata ValoreParametro(&$i, &$dim) &

privata privata TipoFunzione($id)

privata privata privata PrimoParametro($id)

privata Postfisso($id, $iCampo, &$dim) &

privata Separatore($id, $iCampo, &$dim)

privata ParentesiAperta($id) &

privata ParentesiChiusa($id) &

privata CalcolaFnzGruppo()

SolaLettura()
Indica se questo campo è di sola lettura oppure no.
Le espressioni sono sempre in sola lettura, quindi torna sempre VERO.