Gian Luca Pozzato - MATEC
Esercitazione del 7/3/2005
Microsoft Access
Durante l'esercitazione, alcuni studenti hanno riscontrato il seguente problema: Access non consentiva
di assegnare all'attributo CF (codice fiscale) il ruolo di chiave primaria della tabella Studenti;
Access giutificava questo suo comportamento segnalando l'impossibilità di avere una chiave primaria
contenente valori NULL.
Spiegazione: Access non consente di definire una chiave primaria su un attributo di una tabella
che contiene già valori nulli per quell'attributo.
Prima di attribuire a CF il ruolo di chiave, abbiamo inserito alcuni valori nella tabella Studenti:
evidentemente, alcune righe inserite presentavano valore nullo per l'attributo CF. Per questo motivo
Access ha impedito la successiva impostazione di tale attributo come chiave primaria.
Ecco spiegato perchè solo alcuni studenti hanno avuto questo problema: si tratta di coloro
i quali avevano inserito delle righe nella tabella lasciando vuoto il codice fiscale.
Esercizio JavaScript: slideshow di siti web
Esercizio: Vogliamo creare una pagina web contenente due link che consentono, rispettivamente,
di aprire e chiudere un controller di siti web. Il controller è una semplice finestrella
priva di strumenti per la navigazione (status, menubar, ecc.) che compare in un punto preciso dello schermo
(ad esempio in basso a destra).
Il controller avvia, gestisce e chiude uno slide-show di siti web. In pratica, il controller
permette di aprire e chiudere una terza finestra, completa di strumenti di navigazione, in cui vengono
visualizzati alcuni siti, es. google.it, libero.it, gazzetta.it e di.unito.it. Oltre ai link
per l'apertura/chiusura di tale finestra, il controller mette a disposizione due bottoni (o link) per
visualizzare in sequenza i siti esattamente come fatto nel caso dello slideshow di immagini (Esercizio 4
da consegnare).
Soluzione proposta: in prima battuta, ci occupiamo di costruire una semplice pagina che avvia
il controller; la pagina in questione si chiama index.htm e presenta due semplici
link che aprono/chiuduno il controller; il codice JavaScript risiede in un file
esterno chiamato gestione indice.js.
Ciascun link cattura l'evento onClick invocando le funzioni ApriFinestra, che "ingloba"
la funzione open(URL, nomeFinestra, parametri) per l'apertura del controller, e ChiudiFinestra,
che ingloba close() per la chiusura.
Come detto nel testo, non vogliamo che il controller presenti gli strumenti della navigazione: pertanto,
i parametri di open saranno del tipo menubar=no, status=no, ecc. Volendo posizionare il controller
in una posizione precisa dello schermo, aggiungiamo due parametri alla funzione ApriFinestra, chiamati
allineaDaSinistra e allineaDallAlto; i due parametri della open che posizionano la finestra
in un punto fissato dello schermo sono diversi a seconda che si utilizzi Netscape o Explorer (
screenX/screenY nel primo caso, left/top nel secondo): per risolvere questo inconveniente,
la funzione ApriFinestra usa l'oggetto navigator per identificare il browser utilizzato e
costruisce l'opportuna stringa di parametri (ad esempio usando screenX piuttosto che left).
La finestra controller visualizza il file controller.htm; il codice
JavaScript associato a questo file è contenuto nel file esterno
gestione controller.js. Il controller presenta due link di apertura/chiusura della finestra in cui
verranno visualizzati i siti; tale meccanismo è realizzato in modo standard con le funzioni open
e close, inglobate nelle due funzioni chiamate ApriPrimoSito e Chiudi.
Per realizzare lo slideshow dei siti, il controller presenta due link (o due bottoni), le cui ancore
catturano gli eventi onClick invocando, rispettivamente, le funzioni Precedente e Successiva,
che si comportano in modo analogo a quanto visto nell'esercizio dello slideshow di immagini:
la variabile i conserva l'indice del sito corrente e viene incrementata/decrementata tenendo conto
che i siti da visualizzare sono quattro. Gli URL dei siti da visualizzare sono memorizzati in un array,
chiamato elencoSiti. Per permettere a Precedente e Successiva di modificare
la pagina visualizzata nella finestra è necessario modificare l'attributo
location.href della finestra stessa.
Back to Gian Luca Pozzato's home page
|