classe asp_lista estende asp_comune
{
costruttore(&$tab);
AbilitaFiltro($sostInserimento=FALSO);
AbilitaPagine($ampiezza, $righePerPagina);
AllocaSchema($nRighe);
AzioneGlobale(&$nome, &$etichetta, &$icona, $validazione='');
AzioneNuovo(&$nome, &$etichetta, &$icona, &$nomeFinestra, $validazione='');
Azzera();
CalcolaSchema($nRighe=1, $bIntestazione=VERO, $bInserimento=VERO);
CompletaControlli(); &
DatoPerAzioneGlobale($indiceCampo);
DimFinestraAzioneNuovo($x, $y);
ImpFormato($nCampo, $tipo, $par);
ImpFormatoPred($tipo, $par),
Intestazione(&$titolo);
MatriceValoriAttuali(); &
PrendiVisCampo($indice); &
RegistraJs(); statica
SelezionaTutti($booleano);
Stampa($azzera=VERO, $bStampa=FALSO);
SvuotaAzioniGlobali();
UriAzioneGlobale(&$uri, &$nomeFinestra);
UriAzioneNuovo(&$uri);
ValorePred($nCampo, &$valore);
}


costruttore(&$tab)

Azzera()
RIpristina lo stato interno dell'oggetto, come se fosse appena stato creato.

AggCampo($var, $tipo, $vis, $tipoVis)
Aggiunge all'oggetto un campo visualizzare oltre a quelli presenti in tabella

ValorePred($nCampo, &$valore)
$nCampo è l'indice base 0 del campo a cui impostare il valore;
Questo metodo imposta i valori previsualizzati nella riga di inserimento.

SelezionaTutti($booleano)
Se questo metodo viene invocato col parametro impostato a VERO, la pagina sarà mostrata con la casella di spunta di seleziona riga attivata.

SvuotaAzioniGlobali()
Questo metodo toglie tutte le azioni globali configurate, comprese quelle predefinite.

AzioneGlobale(&$nome, &$etichetta, &$icona, $validazione='')
Questo metodo aggiunge un pulsante ad inizio pagina che trasmette alla pagina originaria i parametri impostati attraverso il metodo ImpParametri, la condizione per selezionare dalla tabella le righe scelte dall'utente ed il nome dell'azione stessa.

UriAzioneGlobale(&$uri, &$nomeFinestra)
Questo metodo imposta la pagina che deve essere invocata per eseguire l'ultima azione globale configurata.
impostare $nomeFinestra a STESSA_FINESTRA per cambiare solo l'uri chiamata senza aprire nuove finestre

DatoPerAzioneGlobale($indiceCampo)
Questo metodo istruisce la classe in modo che passi all'azione globale tutti i valori *attuali* del controllo associato al campo indicato, solo per le righe selezionate.
I valori vengono passati con la variabile http /valoriAttuali/.
Normalmente all'azione globale vengono passate esclusivamente le chiavi, in modo che si possa recuperare gli altri valori da bancadati. Questo metodo è utile solo se si vogliono passare all'azione dei dati modificati dall'utente.

ImpFormatoPred($tipo, $par)
Indica il formato da applicare per tutti i campi per cui non viene specificato, se questo metodo non viene invocato il formato predefinito è (VIS_CONTR, CONTR_NORMALE);
$tipo e $par hanno la stessa semantica dei parametri omonimi del metodo html/protoh::PrendiVisCampo.

ImpFormato($nCampo, $tipo, $par)
$nCampo è l'indice base 0 del campo a cui applicare il formato;
$tipo e $par hanno la stessa semantica dei parametri omonimi del metodo html/protoh::PrendiVisCampo.

statica MatriceValoriAttuali() &
Questo metodo restituisce al chiamante una matrice dei valori *attuali* dei controlli configurati tramite il metodo #DatoPerAzioneGlobale.
I valori attuali sono i valori dei campi configurati con #DatoPerAzioneGlobale in tutte le righe selezionate dall'utente.
L'ordine dei valori all'interno della matrice rispecchia fedelmente l'ordine di visualizzazione.

AbilitaPagine($ampiezza, $righePerPagina)
Questo metodo limita il numero di righe che vengono mostrate in una singola pagina e mostra dei collegamenti per navigare tra i risultati paginati.

AbilitaFiltro($sostInserimento=FALSO)
Questo metodo aggiunge un pulsante sula riga dedicata all'inserimento, che permette di visualizzare solo i dati che combaciono con quelli inseriti.
Con combaciare si intende contiene per le stringhe inserite in caselle di testo (operatore like '%str%') ed uguaglianza per gli altri dati.
Se il parametro $sostInserimento è VERO, la funzionalità di filtro sostituirà quella di inserimento che non sarà più possibile usare.
nota: questo metodo ha effetto solo se l'oggetto pasato al costruttore non è di tipo bd_dati, altrimenti lancia eccezione.

AzioneNuovo(&$nome, &$etichetta, &$icona, &$nomeFinestra, $validazione='')
Questo metodo aggiunge un pulsante sula riga dedicata all'inserimento. trasmette alla pagina tutti i dati della riga su cui il pulsante è stato premuto.
$nomeFinestra è il nome della finestra in cui viene eseguita l'azione e può assumere i valori speciali STESSA_FINESTRA e NUOVA_FINESTRA.
$validazione è uno script che viene eseguite per controllare la correttezza sintattica del contenuto della form. Passare il valore '' se non si vuole alcuna validazione.

UriAzioneNuovo(&$uri)
Questo metodo imposta la pagina che deve essere invocata per eseguire l'ultima azione locale configurata.

DimFinestraAzioneNuovo($x, $y)
Questo metodo imposta le dimensioni per la finestra che verrà aperta dall'ultima azione di inserimento impostata.

Intestazione(&$titolo, $bStampa=VERO)
Stampa l'intestazione e l'apertura del corpo della pagina html, col titolo indicato e con tutti i js che servono ai vari controlli.

statica RegistraJs()

Stampa($azzera=VERO, $bStampa=FALSO)
Stampa una pagina interattiva da cui poter modificare il contenuto.
$azzera indica se bisogna eliminare lo schema calcolato, una volta stampato.
$bStampa indica se bisogna stampare l'SQL di selezione (da usare in fase di sviluppo).

privata AggiungiFiltri()
Imposta l'oggetto html/protoh passato come schema di pubblicazione

CalcolaSchema($nRighe=1, $bIntestazione=VERO, $bInserimento=VERO)
Sulla base dello stato corrente questo metodo calcola un oggetto di tipo html/protoh che rappresenta un possibile modo di visualizare una pagina interattiva da cui poter modificare il contenuto della tabella.
$nRighe indiche su quante righe vanno suddivisi i campi presenti in questa selezione.
$bIntestazione è un booleano che indica se inserire o meno l'intestazione della tabella.

NumCampiVisibili()
Lavora in tempo C*T (numCampiTotali * numTabelleInVista)

privata ContieneFormatoImmControllo()

privata InsIntestazione()
Inserisce l'intestazione della tabella inserendo i titoli calcolati sulla base dei nomi dei campi; riconosce e toglie eventuali prefissi e trasforma gli _ in spazi.

privata ClasseELunghezza($dim)
Questo metodo cambia l'oggetto impostando gli attributi class o style sulla colonna a seconda del tema attuale

privata InsAzioniGlobali()
Aggiunge una cella coi pulsanti delle azioni globali configurate.

privata CalcolaNomiControlli() &

privata InsInserimento()

privata InsDati(&$cambioIndici)

privata AggiungiAzioni(&$vDaInserire, &$vFinoA, $bIntestazione)

privata CompletaControlli() &

privata AllocaSchema($nRighe)

CampiNascSel() &