classe vis_controllo estende vis_campo
{
costruttore(&$bd_campo, $tipo=CONTR_NORMALE);
Attributi(&$valore, &$classe); &
Contenuto(&$valore, &$classe); &
CreaScript();
CreaScriptConnRicerca($nomebd, $nomeute, $pchiave, $nomeTab, $iValore, $iTesto);
CreaScriptTabRicerca($nomebd, $nomeute, $pchiave, $tab, $iValore, $iTesto);
CreaScriptVettRicerca(&$vTesti, &$vCodici);
DaChiudere();
Dimensione();
ImpDimensione(int $nCar);
Script(); &
Tag(); &
Titolo($nuovoTitolo=NULL);
TrasferisceArchivio();
Visibile();
}

define('CONTR_NORMALE', 1);
define('CONTR_NASCOSTO', 2);
define('CONTR_PCHIAVE', 3);
define('CONTR_ARCHIVIO', 4);
define('CONTR_PULSANTE', 5);
define('CONTR_CONFERMA', 6);
define('CONTR_ETICHETTA', 7);
define('CONTR_RICERCA', 8);
define('CONTR_TENDINA', 9);
define('CONTR_TESTOLUNGO', 10);

costruttore($bd_campo, $tipo)
Il primo parametro è un bd_campo da passare alla superclasse e rappresenta il campo SQL da visualizzare, il secondo parametro prevede nove valori:

CreaScript()
Questo metodo viene chiamato dagli oggeti del modulo html/aspetto prima di tutti gli altri e serve per indicare a navigami i js richiesti dal controllo.
Ogni sottoclasse che richiede js aggiuntivi deve ridefinire il metodo.

statica CreaScriptConnRicerca($nomebd, $nomeute, $pchiave, $nomeTab, $iValore, $iTesto, $numControlli=1)
Crea uno script php in un archivio temporaneo che permette al php che genera il vettore javascript di recuperare i dati da inserire nel controllo.
$nomebd indica il nome della basedati a cui lo script dovrà collegarsi per ottenere i dati.
$nomeute e $pchiave indicano il nome utente e la parola chiave da usarsi durate la connessione.
$nomeTab indica la tabella da cui verranno presi i valori.
$iValore è l'indice base 0 del campo che contiene i codici che vengono ritornati all'applicazione.
$iTesto è l'indice base 0 del campo che contiene il testo che viene mostrato all'utente.
L'archivio sarà automaticamente cancellato dallo script js/tendina.js.php.

statica CreaScriptTabRicerca($nomebd, $nomeute, $pchiave, $tab, $iValore, $iTesto, $iData=NULL, $numControlli=1)
Crea uno script php in un archivio temporaneo in modo da permettere al php che genera il vettore javascript di recuperare i dati da inserire nel controllo "Ricerca".
$nomebd indica il nome della basedati a cui lo script dovrà collegarsi per ottenere i dati.
$nomeute e $pchiave indicano il nome utente e la parola chiave da usarsi durate la connessione.
$tab è un oggetto tabella da cui verranno presi i valori.
$iValore è l'indice base 0 del campo che contiene i codici che vengono ritornati all'applicazione.
$iTesto è l'indice base 0 del campo che contiene il testo che viene mostrato all'utente.
$viData è un vettore di 3 indici base 0. Il primo ed il secondo sono gli indici dei valori selezionati dentro $tab che indicano l'intervallo temporale di validità dell'opzione. L'ultimo è l'indice del vettore js elements che navigami deve usare per stabilire se l'opzione è valida. A titolo di esempio si possono vedere i controlli ricerca per il cliente nella pagina delle fatture attive.
L'archivio sarà automaticamente cancellato dallo script js/tendina.js.php.

privata, statica NomeScriptControllo($numControlli)

statica CreaScriptVettRicerca(&$vTesti, &$vCodici)
Crea uno script php in un archivio temporaneo che permette al php che genera il vettore javascript di recuperare i dati da inserire nel controllo.
$vTesti è un vettore di stringhe che rappresentano l'insieme da cui l'utente deve scegliere.
$vCodici è un vettore che contiene i codici da ritornare all'applicazione; se l'utente sceglie la stringa i-esima dal vettore $vTesti all'applicazione sarà ritornato il valore della cella i-esima di $vCodici.
L'archivio sarà automaticamente cancellato dallo script js/tendina.js.php.

statica, privata GeneraJs(&$nomearch)

Titolo($nuovoTitolo=NULL) &
Navigami effettua una basilare trasformazione del nome del campo per renderlo più leggibile all'utente.
Questa trasformazione consiste nel riconoscimento ed eliminazione di prefissi indicanti la tabella e la sostituzione di underscore con spazii.
In questo metodo le sottoclassi possono inserire ulteriori trasformazioni del titolo a partire dal cone del campo modificato da navigami.
Questo metodo torna la stringa vuota in caso di CONTR_NASCOSTO, toglie il suffisso cod in caso di CONTR_RICERCA, esegue la trasformazione base negli altri casi.

Visibile()
Indica se il controllo in questione è visibile all'utente o meno.

TrasferisceArchivio()
Indica se il controllo in questione richiede il trasferimento di un archivio sul server.

ImpDimensione($nCar)
Imposta la lunghezza del controllo nella pagina html. (attributo size)

ImpMultiplo($multiplo)
Indica se questo controllo può essere usato più volte nello stesso modulo

protetta Tag() &
Torna una textarea se il campo è un blob, input altrimenti.
Nel caso di controllo ricerca torna due input.

protetta Attributi(&$valore, &$classe, $valGrezzo=NULL) &
Questo metodo ritorna un vettore contenente gli attributi associati al tag

protetta Contenuto(&$valore, &$classe) &
Se il tag è da chiudere allora torno il valore come comntenuto, alrimenti nessun contenuto.

protetta DaChiudere($i=0)
Torna VERO se il campo è un BLOB o il tipo è TESTOLUNGO, e quindi bisogna chiudere la TEXTAREA oppure se il tipo è TENDINA e quindi bisogna chiudere la SELECT o infine se è un'etichetta e quindi bisogna chiudere la LABEL

protetta privata AttributiTendina($tipo, &$valore, &$classe) &
Questo metodo ritorna un riferimento ad un vettore contenente l'associazione nome-attributo=>valore-attributo per il tipo di controllo html specificato.

privata AttributiBassoLivello($tipo, &$valore, &$classe) &
Questo metodo ritorna un riferimento ad un vettore contenente l'associazione nome-attributo=>valore-attributo per il tipo di controllo html specificato.

privata AttributiScript(&$vAttr)
Questo metodo aggiunge al vettore passatogli tutti gli attributi riguardanti lo script associati al controllo.

privata AttrClasseELunghezza(&$vAttr, &$classe) &
Questo metodo aggiunge al vettore passatogli gli attributi class o style a seconda del tema attuale

ClasseOLunghezza()
stabilisce come deve essere impostata la sua lunghezza. Se torna una stringa, essa indica la classe da usare. Se torna un intero, indica il numero di pixel precisi che deve essere lungo.

protetta Evento() &
Indica su che evento deve essere collegato lo script.
onclick sui pulsanti ed onblur sugli altri controlli.
Le modalità CONTR_NASCOSTO, CONTR_ETICHETTA e CONTR_CONFERMA non prevedono script, in questi casi il metodo torna NULL.

protetta Script() &

privata CalcolaTipo($tipo) &

privata NomeHtml($tipo=NULL) &
Restituisce il nome del controllo HTML collegato al campo.

Dimensione()
Restituisce la larghezza del controllo in pixel