classe bd_campo
{
costruttore(&$tab, &$nome, $t, $d, &$ad, $bCh=FALSO);
Alias($sep='.');
CambiaTipo($nuovoTipo);
Chiave();
DescTipo();
Dimensione();
Esporta(); &
Espressione(); &
FormatoBD($valore); &
FormatoUte($valore); &
Fornisci(); &
Importa(&$str); &
ImpVisibile($b=VERO);
Nome($sep='.'); &
NomeLocale(); &
SolaLettura();
SQL(); &
Tipo();
Visibile();
}

define('TIPO_INTERO', 0);
define('TIPO_DECIMALE', 1);
define('TIPO_CENTESIMI',2);
define('TIPO_DATA', 10);
define('TIPO_STRINGA', 20);
define('TIPO_BLOB', 21);
define('TIPO_ALTRO', 30);
define('TIPO_NULL', 40);

costruttore(&$tab, &$nome, $t, $d, &$ad, $bCh=FALSO)
Normalmente non ci dovrebbe essere necessità di istanziare direttamente un oggetto di questa classe, ma in alcuni casi, come la progettazione di un modulo non collegato ad una base dati, può essere utile farlo.
L'oggetto è sostanzialmente una struttura che raggruppa i parametri passati al costruttore.
$tab è un oggetto di tipo bd/tabella ed indica la tabella cui il campo appartiene. Nel caso di istanziazione al di fuori della libreria dovrebbe essere lasciato nullo.
$nome è il nome o alias del campo ed in caso di istanziazioni esterne può essere lasciato nullo.
$t è il tipo del campo. Può assumere come valori una delle costanti TIPO_*.
$d indica la dimensione massima del campo, intesa sempre come massimo numero di caratteri.
$ad è un parametro riservato per uso interno ed il suo significato è dipendente dalla basedati utilizzata.
$bCh è un booleano che indica se il campo è chiave nella tabella.

CambiaTipo($nuovoTipo)
Converte il valore del campo al tipo indicato

Tipo()
Torna il tipo del campo codificato con le costanti sopra elencate

Dimensione()
Torna la dimensione del campo indicato

DescTipo()
Torna una codifica leggibile del tipo del campo

FormatoBD($valore) &
Trasforma valore in modo che possa essere inserito in una istruzione SQL.
Se $valore non è di tipo stringa, nessuna trasformazione viene eseguita.

FormatoBDpre($valore) &
Trasforma valore in modo che possa essere inserito in una istruzione SQL. Invocata da FormatoBD in modo che possa eseguire alcune operazioni preliminari
* gestisce i valori vuoti come NULL
* applica ricorsivamente il metodo FormatoBD se $valore è un vettore
* se $valore è un oggetto bd_campo ne considera il nome
* se $valore è una stringa torna NULL in modo che FormatoBD possa applicare altre trasformazioni

privata FormatoBdCentesimi($valore) &
Trasforma valore in modo che possa essere inserito in una istruzione SQL. Invocata da FormatoBD in modo che possa convertire i valori interi espressi in centesimi
* toglie tutti i . (sep. migliaia)
* forza la presenza di esattamente due cifre decimali dopo la virgola
* separare la parte prima e dopo la virgola togliendola
* concatena la parte prima della virgola con la parte dopo la virgola

privata FormatoBdData($valore) &
Trasforma valore in modo che possa essere inserito in una istruzione SQL.

privata FormatoBdStringa($valore) &
Trasforma valore in modo che possa essere inserito in una istruzione SQL.

FormatoUte($valore) &
Trasforma valore in modo che possa essere ben compreso da un essere umano

FormatoUteCentesimi($valore) &
Trasforma valore in modo che possa essere ben compreso da un essere umano

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

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

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

Nome($sep = '.') &
Torna il nome del campo, se conosciuto comprende anche il nome della tabella

Alias($sep = '.')
Torna il nome del campo, se conosciuto comprende anche il nome della tabella

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

ImpVisibile($b=VERO)
Imposta il campo come visibile

Visibile()
Indica se questo campo è stato contrassegnato come visibile dal metodo ImpVisibile e se quindi vada incluso nella query

FunzioneDiGruppo()
Indica se questo campo è una funzione di gruppo. Ritorna sempre FALSO.

Chiave()
Indica se questo campo partecipa alla chiave primaria della tabella.

SolaLettura()
Indica se questo è di sola lettura o no.

Esporta() &

Importa(&$str)


costruttore(&$nome, $tipo, $dim)
Inizializza un campo formula che sarà calcolato e gestito da una variabile di nome $nome

SQL() &
Torna la porzione di SQL necessaria a selezionare il campo: non va chiamata!

SolaLettura()
Indica se questo è di sola lettura o no. VERO