56
Ingegneria del software 1 INTERVENTI DI MANUTENZIONE E PROGETTO DI UN MODULO DI REGISTRAZIONE AL SITO www.ing.units.it/bca A CURA DI:Fabiano Dalla Piazza

Ing sftw Fabiano Dalla Piazza

Embed Size (px)

Citation preview

Page 1: Ing sftw Fabiano Dalla Piazza

Ingegneria del software

1

INTERVENTI DI MANUTENZIONE E PROGETTO DI UN MODULO DI

REGISTRAZIONE AL SITO www.ing.units.it/bca

A CURA DI:Fabiano Dalla Piazza

Page 2: Ing sftw Fabiano Dalla Piazza

Ingegneria del software

2

INDICE GENERALE

1. DEFINIZIONE DEL PROBLEMA 3 2. CONTESTO E FATTIBILITA’ 3 3. ANALISI DEI REQUISITI 3

a. Menù di accesso alla pagina 3 b.Parola chiave di accesso al modulo di iscrizione 3 c.Modulo d’iscrizione 6 d.Archivio 7 e.Schemi 7 4. PROGETTAZIONE 9 a.Pagina di accesso del sito 9 b.Pagina di accesso al form 9 c.Schema Entità-Relazione 9 d.Progettazione delle maschere 11 5.IMPLEMENTAZIONE 13 a.Menu di accesso alla pagina informativa 13 b.Pagina di accesso al form 15 c.Database in Microsoft Access 19 maschera principale 20 codice maschera principale 20 maschera admin 23 codice maschera admin 23 maschera corsisti 27 codice maschera principale 27 maschera autorizzati 31 codice maschera autorizzati 31 maschera iscritti 38 codice maschera iscritti 38 maschera richiedi password 45 codice maschera richiedi password 45 maschera password 47 codice maschera password 47 codice modulo1 49 d.Form di iscrizione in .asp 49 interfaccia alumni.asp 50 codice alumni.asp 51 interfaccia psswrd2.asp 54 codice psswrd2.asp 54 6.CONCLUSIONI 57

Page 3: Ing sftw Fabiano Dalla Piazza

Ingegneria del software

3

1. Definizione del problema

La tesina riguarda la sostituzione nel sito http://www.ing.units.it/bca della colonna e relativo titolo “Registrazione” con una pagina contenente un’informativa sulla AT Alumni Association provvista di un collegamento con un’altra pagina dove è possibile iscriversi.Al termine della procedura,che deve accertarsi di eventuali errori ortografici e controllare i nomi autorizzati,viene rilasciata una password che consente al sottoscrittore di ricevere gli aggiornamenti.In caso di “utente non autorizzato” viene previsto un messaggio recante tale dicitura.

2. Contesto e fattibilità

Il sito http://www.ing.units.it/bca si occupa del Master universitario di primo livello in Assistite technology,uno dei cui curatori,la prof.Scotti è anche l’ideatrice di questo lavoro,ed eventualmente collaboratrice nel progetto.Il lavoro non è vincolato da contratto,per cui non presenta,almeno in linea teorica,limiti di costo o tempo.Ed è stato eseguito in armonia con il lavoro svolto dal collega Maurizio Chivella sull’omonimo sito.

3. Analisi dei requisiti

a. Menù di accesso alla pagina: In basso col colore blu(fig.1) è riportato un fac-simile del menù di scelta una volta che ci si collega con http://www.ing.units.it/bca.Un primo aggiustamento riguarda la voce “Registrazione” da sostituire con “Alumni”.Naturalmente cliccando poi su tale voce, si deve aprire il file con l’informativa sull’AT Alumni Association(fig. 2).

Home | Chi siamo | Didattica| FAQ| Sponsor| Registrazione| News| Contatti| Edizioni precedenti |

Figura 1

AT Alumni Association

AT Alumni Association è l’associazione aperta agli studenti ed ex studenti del Master in Assistive Technology.

L’obiettivo della AT Alumni Association è quello di valorizzare e tenere unito il più grande patrimonio di un Master: il network dei suoi studenti.

L’Associazione vuole offrire a tutti gli iscritti opportunità di aggiornamento e di crescita professionale: incoraggia il networking, favorisce lo sviluppo delle relazioni, organizza attività di formazione continua.

- Attraverso il networking e le numerose occasioni di incontro, tutti gli associati hanno la possibilità di condividere esperienze, informazioni e conoscenze, fondamentali per il continuo aggiornamento della propria professionalità. - Attraverso le attività di formazione organizzate dall’Associazione, gli iscritti hanno l’occasione di perfezionare le proprie competenze sui principali temi dell’Assistive Technology.

Page 4: Ing sftw Fabiano Dalla Piazza

Ingegneria del software

4

Le attività dell’Associazione supportano anche i diplomati che desiderano riposizionarsi sul mercato del lavoro; attraverso azioni di networking e diffusione mirata di curricula, l’Associazione diviene uno strumento privilegiato di supporto al replacement dei diplomati del Master AT. Per iscriversi per la prima volta si deve compilare il form on-line. Iscrizione riservata ai Diplomati del Master in Assistive Technology e ai due Corsi di Perfezionamento in Assistive Technology L’Associazione opera attraverso:

• organizzazione di incontri periodici itineranti su specifiche tematiche di Assistive Technology

• organizzazione di iniziative di formazione continua

• attività destinate tipicamente al replacement degli associati

• circolazione di newsletter periodiche di aggiornamento

• organizzazione di occasioni di svago e intrattenimento destinate agli associati

Figura 2

b. Parola chiave di accesso al modulo di iscrizione: nella fig.2 ,dove è riportata la pagina informativa,c’è la parola chiave form on-line (qui riprodotta fedelmente).Cliccando su questa,si deve poter accedere al modulo di iscrizione,una cui rappresentazione viene visualizzata nella figura sottostante(fig.3),compresiva dei titoli.

Iscriviti all'associazione AT Alumni

E-MAIL * * Invalid Email

Nome * *

Cognome * *

Riempi i campi sottostanti Indirizzo di residenza *

*

Page 5: Ing sftw Fabiano Dalla Piazza

Ingegneria del software

5

Indirizzo per invio corrispondenza *

*

Telefono * *

Corso Frequentato * CPAT: Corso di Perfezionamento in Assistive Technology MAT: Master in Assistive Technology

CPAT

MAT * Seleziona quale corso hai frequentato

Edizione * *

Inserire l’anno accademico dell’edizione frequentata

Note

Invia

Figura 3

Page 6: Ing sftw Fabiano Dalla Piazza

Ingegneria del software

6

c. Modulo d’iscrizione: Tutti i campi* da riempire sono obbligatori,tranne uno.Vanno effettuati dei controlli che accertino eventuali incongruenze,mentre la lunghezza dei vari campi* è stabilita nell’ottica di eccedere,piuttosto che difettare:

� Nome:deve essere costituito solo da caratteri alfabetici,fino ad un massimo fissato arbitrariamente di 40;

� Cognome:deve essere costituito solo da caratteri alfabetici, fino ad un massimo fissato arbitrariamente di 40;

� E-mail:può essere costituito da caratteri alfanumerici e contenere almeno un @, fino ad un massimo fissato arbitrariamente di 50;

� Indirizzo di residenza:deve essere costituito solo da caratteri alfanumerici, fino ad un massimo fissato arbitrariamente di 60;

� Indirizzo per invio corrispondenza: deve essere costituito solo da caratteri alfanumerici, fino ad un massimo fissato arbitrariamente di 60;

� Telefono:sono ammessi esclusivamente caratteri numerici,con minimo di 9 fino ad un massimo fissato di 14(4 cifre di prefisso estero+4 cifre di prefisso distretto+6 cifre del numero);

� Corso frequentato:è obbligatorio indicare almeno uno dei corsi frequentati;

� Edizione:è obbligatorio inserire una cifra numerica di quattro lettere “realistica”(per es. una persona non può aver frequentato un corso nel 3014);

� Note:campo opzionale in cui sono ammessi caratteri alfanumerici, fino ad un massimo fissato arbitrariamente di 120.

� Password:deve essere costituita da caratteri ASCII validi in numero totale di 9.

d. Archivio: Naturalmente non è sufficiente un controllo ortografico o formale.Un requisito necessario affinché un utente si possa iscrivere è la partecipazione a uno dei corsi precedenti.La consultazione dell’archivio deve consentire questo controllo. Una volta che la registrazione ha avuto successo,viene richiesta una password(e conferma) per ciascun sottoscrittore,che verrà comunicata dall’utente.Qualora il processo di identificazione dia risultato negativo deve comparire il messaggio “Utente non autorizzato”.

Il committente non ha fornito,al momento,ulteriori dettagli sul successivo processo di riconoscimento finalizzato all’accesso,una volta che l’iscrizione sia già avvenuta.

e. Schemi: Uno schema generale indica l’interazione tra le parti(fig.4). Un collegamento consente di raggiungere dal sito,la pagina ancorata AT Alumni.Un secondo permette di giungere da questa al form di registrazione;il form richiede i dati utente,esegue controlli ortografici e di coerenza,richiede se l’utente risulti abilitato(utente autorizzato);l’utente riceve una risposta condizionata in base al controllo autorizzazione.

* campi:qui si intende il valore alfabetico,numerico o alfanumerico di una singola voce invocata dal modulo.Es. Nome

Page 7: Ing sftw Fabiano Dalla Piazza

Ingegneria del software

7

LE

LEGENDA: Collegamento Risposta Richiesta dati Invio password o messaggio utente non autorizzato

Figura 4

Uno schema delle varie funzioni fatto mediante diagramma di flusso è riportato a pagina seguente(fig.5).In esso è indicata la sequenza delle operazioni.La convenzione adottata piuttosto diffusa stabilisce di indicare con rettangoli gli agenti esterni,con cerchi funzioni o processi,con doppia linea parallela gli archivi o basi di dati,con dei rombi le decisioni condizionate(per es.nel caso “inserisci Nome”,se dal controllo emergono dei valori incoerenti o scorretti,uscita rossa “NO” e ridigitazione Nome da parte dell’utente;in caso contrario uscita blu “OK” e prosegui con inserisci Cognome).

SITO WEB

AT ALUMNI

# #

FORM

ISCRIZIONE

ARCHIVIO

UTENTE

Page 8: Ing sftw Fabiano Dalla Piazza

Ingegneria del software

8

UTENTE

ACCESSO AL SITO

SITO WEB

ACCESSO PAGINA AT

COMMUNITYFORM

ACCESSO AL FORM

E-MAILCOGNOME

INDIRIZZO INVIO

CORRISPONDENZA

TELEFONO EDIZIONE

INSERISCI

NOTE

PAGINA AT COMM

NOMEINDIRIZZO RESIDENZA

INSERISCI INDIRIZZO

INVIO CORRISPONDEN

ZA

CORSO FREQUENTA

TO

NOTECONTROLLOGENERA

PASSWORD

INV

IA

CO

MU

NIC

AZ

ION

E

ISC

RIZ

ION

E

INV

IA

ME

SS

AG

GIO

DI

ER

RO

RE

CHIEDI AUTORIZZAZIO

NE

INSERISCI E-MAIL

INSERISCI COGNOME

INSERISCI INDIRIZZO RESIDENZA

INSERISCI TELEFONO

INSERISCI CORSO

FREQUENTATO

INSERISCI EDIZIONE

NOME ESISTENTE

NELL’ARCHIVIO

OK

NO

OKOKOK

OKOKOK

OK

SI

NONONO

NO

NO NO NO

NO

INSERISCI NOME

SI

CHIEDI CONFERMA PASSWORD

CONFERMA ISCRIZIONE

NO

Figura 5

Page 9: Ing sftw Fabiano Dalla Piazza

Ingegneria del software

9

4. Progettazione

a) Pagina di accesso del sito: la pagina del sito www.ing.units.it/bca reca il menu con cui si accede alla pagina di informazione.Un primo intervento prevede la sostituzione di “Registrazione” con “Alumni” nel codice HTML della pagina,memorizzata in un file la cui sottocartella è:\Master Assistive Technology_file\menu.htm.Quando si apre la pagina web,il codice HTML esegue delle chiamate delimitate da <A> e </A> tramite delle href a delle risorse memorizzate,che,nel caso venga scelto “Registrati”,carica il file contenuto in: "http://www.ing.units.it/bca/contenuti/06-07/registrazioni06-07.htm".Bisogna quindi memorizzare a tale indirizzo la nuova pagina comprensiva dell’informativa all’AT Alumni e accesso al form.E’ bene variare anche il titolo “Registrazione al sito” con “AT Alumni”,per evitare equivoci.

b) Pagina di accesso al form: nella pagina di accesso viene inserito un link di

collegamento a: "http://www.mib.edu/forms/Alumni.asp".Nel sito mib.edu si ricerca,tra le risorse forms,la pagina Alumni che effettua il controllo sui record.

c) Schema Entità-Relazione: in fig.6 è riportato lo schema Entità-Relazione

per il database.

ISCRITTI

CORSO MASTER

CORSISTI

PARTECIPAZIONE

APPARTENENZA

ID

E-MAIL

NOME

INDIRIZZO RESIDENZA

INDIRIZZO INVIO TELEFONO

NOTE

PASSWORD

NOME

COGNOME

ID

TIPO

EDIZIONE

(1,N)

(1,N)

(1,1) (0,1)

COGNOME

ID_CORSOM

Figura 6

Page 10: Ing sftw Fabiano Dalla Piazza

Ingegneria del software

10

ID_MAS CONTATORE A CHIAVE PRIMARIA;CAMPO AGGIORNATO AUTOMATICAMENTE

TIPO STRINGA NUMERICA:AI NUMERI I PULSANTI OPZIONALI ASSOCIANO I VALORI

NUMERICI INCREMENTALI;CAMPO OBBLIGATORIO

EDIZIONE STRINGA NUMERICA DI 4 CARATTERI ACCETTABILE;CAMPO OBBLIGATORIO

TABELLA CORSI MASTER

STRINGA ALFANUMERICA <=40 CARATTERI;CAMPO OBBLIGATORIOCOGNOME

NOME STRINGA ALFANUMERICA <=40 CARATTERI;CAMPO OBBLIGATORIO

TABELLA CORSISTI

ID_ISC

E-MAIL

NOME

COGNOME

INDIRIZZO DI RESIDENZA

INDIRIZZO DI INVIO

TELEFONO

NOTE

PASSWORD

ID_CORSOM

CONTATORE A CHIAVE PRIMARIA;CAMPO AGGIORNATO AUTOMATICAMENTE

STRINGA ALFANUMERICA <=50 CARATTERI CONTENENTE ‘@’;CAMPO OBBLIGATORIO

STRINGA ALFANUMERICA <=40 CARATTERI;CAMPO OBBLIGATORIO

STRINGA ALFANUMERICA <=40 CARATTERI;CAMPO OBBLIGATORIO

STRINGA ALFANUMERICA <=60 CARATTERI;CAMPO OBBLIGATORIO

STRINGA ALFANUMERICA <=60 CARATTERI;CAMPO OBBLIGATORIO

STRINGA NUMERICA >=9 E <=14 CARATTERI;CAMPO OBBLIGATORIO

STRINGA ALFANUMERICA DI MAX 120 CARATTERI;CAMPO OBBLIGATORIO

STRINGA ALFANUMERICA DI MAX 9 CARATTERI;CAMPO OBBLIGATORIO

STRINGA NUMERICA DI COLEGAMENTO TABELLA CORSI MASTER

TABELLA ISCRITTI

Figura 7

In figura 7 compaiono le caratteristiche dei campi nelle tabelle,mentre a pagina seguente(fig.8)è riportato lo schema di collegamento fra le tabelle.L’iscrizione di un’utente può avvenire tramite confronto e relativo accertamento dell’appartenenza all’archivio corsisti,poiché ha partecipato ad un corso master.Ogni riga individua un campo della tabella,mentre i campi in rosso rappresentano le chiavi primarie.

Page 11: Ing sftw Fabiano Dalla Piazza

Ingegneria del software

11

Figura 8

I D _ I S CN O M E

C O G N O M E

N O M E

C O G N O M E

I N D I R I Z Z O D I R E S I D E N Z A

I N D I R I Z Z O D I I N V I O

N O T E

P A S S W O R D

E - M A I L

I D _ M A S

T I P O

E D I Z I O N E

I D _ C O R S O M

d. Progettazione delle maschere: nella figura sotto(fig.9) è riportato lo schema utilizzato per le maschere.

ADMINADMIN

ISCRITTIISCRITTI

RICHIEDI RICHIEDI PASSWORDPASSWORD

PASSWORDPASSWORD

accedi al record dove accedi al record dove registrarsiregistrarsi

inserisci i dati utenteinserisci i dati utente

inserisci la passwordinserisci la password

conferma la passwordconferma la password

ute

nte non au

torizzato:esci

ute

nte n

on au

torizzato

:esci

ute

nte

aut

oriz

zato

uten

te

auto

rizz

ato

Passw

ord n

on P

assword

non

con

ferma

ta:rip

eticon

ferma

ta:rip

eti

Passw

ord con

fermata

:invia

Passw

ord co

nfermata

:invia

m

essagg

io iscrizione riuscita

messag

gio iscrizio

ne riu

scita

PRINCIPALEPRINCIPALEmodalità inserimento modalità inserimento

utenteutente

CORSISTICORSISTIAUTORIZZATIAUTORIZZATI

amministratoreamministratore

leggi o modifica i dati leggi o modifica i dati iscrittiiscritti

leggi ,modifica o leggi ,modifica o inserisci dei corsistiinserisci dei corsisti

Figura 9

Page 12: Ing sftw Fabiano Dalla Piazza

Ingegneria del software

12

All’apertura del file Iscritti.mdb viene aperta in automatico la maschera “Principale”.Da essa si sceglie se inserire un nuovo iscritto,o agire da amministratore.Se si sceglie l’opzione “Admin” viene aperta la maschera “Iscritti” in modalità Aggiungi come form di iscrizione utente,selezionando il record.Qui i dati utente vengono confrontati con quelli dell’archivio partecipanti.Nonostante sia previsto un filtraggio(nome e cognome risultanti in archivio),qualora un cognome non soddisfi i requisiti,viòla comunque i requisiti dell’integrità referenziale,generando un errore e abortendo la transazione.L’errore viene successivamente “intercettato” e riformulato con la frase “UTENTE NON AUTORIZZATO”,che provoca l’uscita dal file. La maschera “Richiedi Password” permette l’inserimento di una parola chiave;usa poi una maschera “Password” per richiedere la digitazione.Se le due coincidono,viene comunicato all’utente l’avvenuta iscrizione,altrimenti viene inoltrata un’ulteriore richiesta,fino al successo dell’operazione,salvo uscita volontaria.

L’uscita provoca la chiusura di tutte le maschere. Se invece si opta per la maschera “Amministratore,si aprono le maschere “Autorizzati” per le operazioni sui dati “Iscritti” e “Corsisti” per immettere o modificare i corsisti.

GLI OGGETTI DI CLASSE IMPIEGATI:

� Form_Principale USA Form_Admin e Form_Autorizzati e Form_Corsisti

� Form_Admin USA Form_Iscritti

� Form_Iscritti USA Form_Richiedi_Password

� Form_Richiedi_Password USA Form_Password

� Form_Password

� Form_Corsisti

� Form_Autorizzati

I MODULI UTILIZZATI:

� Modulo1 PER IMPOSTARE COSTANTI

Il codice relativo alle maschere è riportato in testa al codice sorgente(parte 5).

Page 13: Ing sftw Fabiano Dalla Piazza

Ingegneria del software

13

5. Implementazione

a) Menu di accesso alla pagina informativa: in fig.10 è visualizzata la nuova pagina del sito recante a sinistra il menu di scelta.

Figura 10

Sotto viene visualizzato il codice HTML (fig.11)della precedente pagina che è stata sostituita.Il codice è variato poiché è stata modificata la veste grafica del sito.La variazione da eseguire alla data di assegnazione del lavoro nella vecchia pagina riguarda la parte indicata in rosso,da sostituire con la parola in verde. Le modifiche alla pagina sono state apportate dai responsabili della progettazione sito e E-Learning,fra cui Roberto Tomat.

Page 14: Ing sftw Fabiano Dalla Piazza

Ingegneria del software

14

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <!-- saved from url=(0052)http://www.ing.units.it/bca/contenuti/06-07/menu.htm -->

<HTML><HEAD><TITLE>Master in Assistive Technology 2004-2005</TITLE> <META http-equiv=Content-Type content="text/html; charset=iso-8859-1">

<META content="MSHTML 6.00.6000.16481" name=GENERATOR> <SCRIPT language=JavaScript1.2> <!-- var yourwords = 'Si raccomanda di consultare frequentemente il sito in quanto viene spesso aggiornato';

var speed = 1000; var control = 1;

function flash() { if (control == 1) { document.forms["myform"].testo2.value=yourwords; control=0; speed=1400 } else { document.forms["myform"].testo2.value=""; control=1; speed=500 } setTimeout("flash();",speed); }

function MM_reloadPage(init) { //reloads the window if Nav4 resized if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) { document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }} else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload(); } MM_reloadPage(true); //--> </SCRIPT> </HEAD> <BODY vLink=#000000 aLink=#000000 link=#ffffff bgColor=#006699 background=menu_file/color_background.jpg> <DIV id=Layer1 style="Z-INDEX: 1; LEFT: 1px; WIDTH: 858px; POSITION: absolute; TOP: 218px; HEIGHT: 35px" align=center> <P><FONT face="Verdana, Arial, Helvetica, sans-serif" size=3><A title="Home page" href="http://www.ing.units.it/bca/contenuti/06-07/intro.htm" target=contenuti><STRONG>Home</STRONG></A> | <A title="chi siamo" href="http://www.ing.units.it/bca/contenuti/06-07/chisiamo06-07.htm" target=contenuti><STRONG>Chi siamo </STRONG></A>| <A title="programma didattico"

href="http://www.ing.units.it/bca/contenuti/06-07/didattica06-07.htm" target=contenuti><STRONG>Didattica</STRONG></A>| <A title=faq href="http://www.ing.units.it/bca/contenuti/06-07/faq06-07.htm" target=contenuti><STRONG>FAQ</STRONG></A>| <A title=sponsor href="http://www.ing.units.it/bca/contenuti/06-07/sponsor06-07.htm" target=contenuti><STRONG>Sponsor</STRONG></A>| <A title="Registrazione al sito" href="http://www.ing.units.it/bca/contenuti/06-07/registrazioni06-07.htm" target=contenuti><STRONG>Registrazione SOSTITUITA CON Alumni </STRONG></A>| <A title=Eventi href="http://www.ing.units.it/bca/contenuti/06-07/eventi06-07.htm" target=contenuti><STRONG>News</STRONG></A>| <A title=Contatti href="http://www.ing.units.it/bca/contenuti/06-07/contatti06-07.htm" target=contenuti><STRONG>Contatti</STRONG></A>| <A title="Edizioni precedenti del Master" href="http://www.ing.units.it/bca/contenuti/06-07/edizioni_precedenti06-07.htm" target=contenuti><STRONG>Edizioni precedenti</STRONG></A> | </FONT></P></DIV> <DIV id=Layer2 style="Z-INDEX: 11; LEFT: 5px; WIDTH: 281px; POSITION: absolute; TOP: 7px; HEIGHT: 70px"><IMG height=77 alt="Logo università di Trieste" src="menu_file/logo_units2.jpg" width=77> <IMG height=37 alt="Facoltà di ingegneria" src="menu_file/logo_units2_testo.jpg" width=192 align=top> </DIV> <DIV id=Layer3 style="Z-INDEX: 3; LEFT: 5px; WIDTH: 271px; POSITION: absolute; TOP: 85px; HEIGHT: 58px"><IMG

Page 15: Ing sftw Fabiano Dalla Piazza

Ingegneria del software

15

height=75 alt="Logo università di Pordenone" src="menu_file/logo_unipn2.jpg" width=68> <IMG height=68 alt="Consorzio di Pordenone per la Formazione Superiore gli Studi Universitari e la Ricerca" src="menu_file/logo_unipn2_testo.jpg" width=183 align=top></DIV> <DIV id=Layer4 style="Z-INDEX: 4; LEFT: 4px; WIDTH: 266px; POSITION: absolute; TOP: 168px; HEIGHT: 42px"><IMG height=41 alt="Logo Fondazione Risorsa Donna" src="menu_file/logo_risdonna2.jpg" width=67><IMG height=36 alt="Con il Patrocinio della Fondazione risorsa donna" src="menu_file/logo_fonddonna2_testo.jpg" width=172></DIV> <DIV id=Layer5 style="Z-INDEX: 5; LEFT: 503px; WIDTH: 322px; POSITION: absolute; TOP: 7px; HEIGHT: 211px"> <P align=center><IMG height=62 alt="Master di I livello" src="menu_file/master_univ_testo.jpg" width=245><BR><IMG height=81 alt="Assistive Technology" src="menu_file/ass_technology_testo.jpg" width=259> <BR><IMG height=27 alt="Ausili per l'utenza ampliata" src="menu_file/ausili_per_testo.jpg" width=314> <BR><IMG height=32 src="menu_file/quartaedizione.jpg" width=333> </P></DIV> <DIV id=Layer8 style="Z-INDEX: 8; LEFT: 286px; WIDTH: 186px; POSITION: absolute; TOP: 5px; HEIGHT: 209px"><IMG height=203 src="menu_file/Vitruvio-web%2520small.png"

width=177></DIV></BODY></HTML>

Figura 11

b) Pagina di accesso al form: di seguito(fig.12) viene riportato il codice HTML della pagina informativa per accedere al form di iscrizione.In rosso è evidenziato il collegamento href,con in verde il form di iscrizione Alumni.asp.In fig.13,una visualizzazione zoomata della pagina come appare nel web.Il committente ha alla fine deciso di modificare il titolo “AT Community” con “AT Alumni”.Comunque basta sostituire la parola in alcuni programmi e il codice viene generato automaticamente.Se si opera direttamente in HTML bisogna cambiare il codice stesso(più laborioso).

<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns="http://www.w3.org/TR/REC-html40"> <head> <meta http-equiv=Content-Type content="text/html; charset=windows-1252"> <meta name=ProgId content=Word.Document> <meta name=Generator content="Microsoft Word 9"> <meta name=Originator content="Microsoft Word 9"> <link rel=File-List href="./Alumni_file/filelist.xml"> <title>Registrazione al sito</title> <!--[if gte mso 9]><xml> <o:DocumentProperties> <o:Author>fiorenza</o:Author> <o:Template>Normal</o:Template> <o:LastAuthor>FABIANO DALLA PIAZZA</o:LastAuthor> <o:Revision>2</o:Revision> <o:TotalTime>43</o:TotalTime> <o:Created>2007-08-21T15:30:00Z</o:Created> <o:LastSaved>2007-08-21T15:30:00Z</o:LastSaved> <o:Pages>1</o:Pages> <o:Words>300</o:Words> <o:Characters>1710</o:Characters> <o:Lines>14</o:Lines> <o:Paragraphs>3</o:Paragraphs> <o:CharactersWithSpaces>2100</o:CharactersWithSpaces> <o:Version>9.2812</o:Version> </o:DocumentProperties> <o:CustomDocumentProperties>

Page 16: Ing sftw Fabiano Dalla Piazza

Ingegneria del software

16

<o:_AdHocReviewCycleID dt:dt="float">918374387</o:_AdHocReviewCycleID> <o:_NewReviewCycle dt:dt="string"></o:_NewReviewCycle> <o:_EmailSubject dt:dt="string">argomento per tesina d'esame</o:_EmailSubject> <o:_AuthorEmail dt:dt="string">[email protected]</o:_AuthorEmail> <o:_AuthorEmailDisplayName dt:dt="string">Fiorenza Scotti</o:_AuthorEmailDisplayName> </o:CustomDocumentProperties> </xml><![endif]--><!--[if gte mso 9]><xml> <w:WordDocument> <w:HyphenationZone>14</w:HyphenationZone> <w:PunctuationKerning/> </w:WordDocument> </xml><![endif]--> <style> <!-- /* Font Definitions */ @font-face {font-family:Wingdings; panose-1:5 0 0 0 0 0 0 0 0 0; mso-font-charset:2; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:0 268435456 0 0 -2147483648 0;} @font-face {font-family:Verdana; panose-1:2 11 6 4 3 5 4 4 2 4; mso-font-charset:0; mso-generic-font-family:swiss; mso-font-pitch:variable; mso-font-signature:536871559 0 0 0 415 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-parent:""; margin:0cm; margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:12.0pt; font-family:"Times New Roman"; mso-fareast-font-family:"Times New Roman";} h1 {margin-right:0cm; mso-margin-top-alt:auto; mso-margin-bottom-alt:auto; margin-left:0cm; mso-pagination:widow-orphan; mso-outline-level:1; font-size:24.0pt; font-family:"Times New Roman"; mso-font-kerning:18.0pt; font-weight:bold;} h3 {margin-right:0cm; mso-margin-top-alt:auto; mso-margin-bottom-alt:auto; margin-left:0cm; mso-pagination:widow-orphan; mso-outline-level:3; font-size:13.5pt; font-family:"Times New Roman"; font-weight:bold;} p.MsoFooter, li.MsoFooter, div.MsoFooter {margin:0cm; margin-bottom:.0001pt; mso-pagination:widow-orphan; tab-stops:center 240.95pt right 481.9pt; font-size:12.0pt; font-family:"Times New Roman"; mso-fareast-font-family:"Times New Roman";} p {margin-right:0cm; mso-margin-top-alt:auto; mso-margin-bottom-alt:auto; margin-left:0cm; mso-pagination:widow-orphan; font-size:12.0pt; font-family:"Times New Roman"; mso-fareast-font-family:"Times New Roman";} p.stile2, li.stile2, div.stile2

Page 17: Ing sftw Fabiano Dalla Piazza

Ingegneria del software

17

{mso-style-name:stile2; margin-right:0cm; mso-margin-top-alt:auto; mso-margin-bottom-alt:auto; margin-left:0cm; mso-pagination:widow-orphan; font-size:12.0pt; font-family:"Times New Roman"; mso-fareast-font-family:"Times New Roman";} p.p1, li.p1, div.p1 {mso-style-name:p1; margin-right:0cm; mso-margin-top-alt:auto; mso-margin-bottom-alt:auto; margin-left:0cm; mso-pagination:widow-orphan; font-size:12.0pt; font-family:"Times New Roman"; mso-fareast-font-family:"Times New Roman";} span.evidenziaprogrammi {mso-style-name:evidenzia_programmi;} /* Page Definitions */ @page {mso-footnote-separator:url("./Alumni_file/header.htm") fs; mso-footnote-continuation-separator:url("./Alumni_file/header.htm") fcs; mso-endnote-separator:url("./Alumni_file/header.htm") es; mso-endnote-continuation-separator:url("./Alumni_file/header.htm") ecs;} @page Section1 {size:595.3pt 841.9pt; margin:70.85pt 2.0cm 2.0cm 2.0cm; mso-header-margin:35.4pt; mso-footer-margin:35.4pt; mso-even-footer:url("./Alumni_file/header.htm") ef1; mso-footer:url("./Alumni_file/header.htm") f1; mso-paper-source:0;} div.Section1 {page:Section1;} /* List Definitions */ @list l0 {mso-list-id:999767469; mso-list-template-ids:-1750029814;} @list l0:level1 {mso-level-number-format:bullet; mso-level-text:\F0B7; mso-level-tab-stop:36.0pt; mso-level-number-position:left; text-indent:-18.0pt; mso-ansi-font-size:10.0pt; font-family:Symbol;} ol {margin-bottom:0cm;} ul {margin-bottom:0cm;} --> </style> <!--[if gte mso 9]><xml> <o:shapedefaults v:ext="edit" spidmax="2050"/> </xml><![endif]--><!--[if gte mso 9]><xml> <o:shapelayout v:ext="edit"> <o:idmap v:ext="edit" data="1"/> </o:shapelayout></xml><![endif]--> </head> <body lang=IT style='tab-interval:35.4pt'> <div class=Section1> <p class=MsoNormal><span style='font-family:Verdana'>AT Alumni Association <o:p></o:p></span></p> <p><strong><span style='font-family:Verdana'>AT Alumni Association</span></strong><span style='font-family:Verdana'>&nbsp;è l’associazione aperta agli studenti ed ex studenti del Master in Assistive Technology.<span style="mso-spacerun: yes"> </span><o:p></o:p></span></p> <p><span style='font-family:Verdana'>&nbsp;L’obiettivo della AT Alumni Association è quello di <strong>valorizzare e tenere unito il più grande patrimonio di<span style="mso-spacerun: yes"> </span>un Master: il network dei

Page 18: Ing sftw Fabiano Dalla Piazza

Ingegneria del software

18

suoi studenti. </strong><o:p></o:p></span></p> <p><span style='font-family:Verdana'>L’Associazione vuole offrire a tutti gli iscritti opportunità di aggiornamento e di crescita professionale: incoraggia il networking, favorisce lo sviluppo delle relazioni, organizza attività di formazione continua. <o:p></o:p></span></p> <p class=MsoNormal><span style='font-family:Verdana'>- Attraverso&nbsp;il <strong>networking e le numerose occasioni di incontro</strong>, tutti gli associati hanno la possibilità di condividere esperienze, informazioni e conoscenze, fondamentali per il continuo aggiornamento della propria professionalità.<o:p></o:p></span></p> <p class=MsoNormal><span style='font-family:Verdana'>- Attraverso le <strong>attività di formazione</strong> organizzate dall’Associazione, gli iscritti hanno l’occasione di perfezionare le proprie competenze sui principali temi dell’Assistive Technology.<o:p></o:p></span></p> <p class=MsoNormal><span style='font-family:Verdana'>&nbsp;<o:p></o:p></span></p> <p class=MsoNormal><span style='font-family:Verdana'>Le attività dell’Associazione supportano anche i diplomati che desiderano riposizionarsi sul mercato del lavoro; attraverso azioni di <strong>networking e diffusione mirata di curricula</strong>, l’Associazione diviene uno strumento privilegiato di supporto al replacement dei diplomati del Master AT.<o:p></o:p></span></p> <p class=MsoNormal><span style='font-family:Verdana'>&nbsp;<o:p></o:p></span></p> <p class=MsoNormal><span style='font-family:Verdana'>&nbsp;<o:p></o:p></span></p> <p class=MsoNormal><strong><span style='font-family:Verdana'>Per iscriversi per la prima volta si deve compilare il </span></strong><span style='font-family: Verdana'><a href="http://www.mib.edu/forms/Alumni.asp"><strong>form on-line</strong></a><strong>. </strong><o:p></o:p></span></p> <p class=MsoNormal><span style='font-family:Verdana'><br> <strong><span style='color:red'>Iscrizione riservata ai Diplomati del Master in Assistive Technology e ai due Corsi di Perfezionamento in Assistive Technology</span></strong><b><span style='color:red'><br> <br> </span></b><span class=evidenziaprogrammi>L’Associazione opera attraverso:</span><o:p></o:p></span></p> <ul type=disc> <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; mso-list:l0 level1 lfo1;tab-stops:list 36.0pt'><span style='font-family: Verdana'>organizzazione di incontri periodici itineranti su specifiche tematiche di Assistive Technology <o:p></o:p></span></li> <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; mso-list:l0 level1 lfo1;tab-stops:list 36.0pt'><span style='font-family: Verdana'>organizzazione di iniziative di formazione continua<o:p></o:p></span></li> <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; mso-list:l0 level1 lfo1;tab-stops:list 36.0pt'><span style='font-family: Verdana'>attività destinate tipicamente al replacement degli associati<o:p></o:p></span></li> <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; mso-list:l0 level1 lfo1;tab-stops:list 36.0pt'><span style='font-family: Verdana'>circolazione di newsletter periodiche di aggiornamento<o:p></o:p></span></li> <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; mso-list:l0 level1 lfo1;tab-stops:list 36.0pt'><span style='font-family: Verdana'>organizzazione di occasioni di svago e intrattenimento destinate agli associati<o:p></o:p></span></li> </ul> <h1><span style='font-size:12.0pt;font-family:Verdana'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></h1> </div> </body> </html>

Figura 12

Page 19: Ing sftw Fabiano Dalla Piazza

Ingegneria del software

19

AT Alumni Association

AT Alumni Association è l’associazione aperta agli studenti ed ex studenti del Master in Assistive Technology.

L’obiettivo della AT Alumni Association è quello di valorizzare e tenere unito il più grande patrimonio di un Master: il network dei suoi studenti.

L’Associazione vuole offrire a tutti gli iscritti opportunità di aggiornamento e di crescita professionale: incoraggia il networking, favorisce lo sviluppo delle relazioni, organizza attività di formazione continua.

- Attraverso il networking e le numerose occasioni di incontro, tutti gli associati hanno la possibilità di condividere esperienze, informazioni e conoscenze, fondamentali per il continuo aggiornamento della propria professionalità. - Attraverso le attività di formazione organizzate dall’Associazione, gli iscritti hanno l’occasione di perfezionare le proprie competenze sui principali temi dell’Assistive Technology. Le attività dell’Associazione supportano anche i diplomati che desiderano riposizionarsi sul mercato del lavoro; attraverso azioni di networking e diffusione mirata di curricula, l’Associazione diviene uno strumento privilegiato di supporto al replacement dei diplomati del Master AT. Per iscriversi per la prima volta si deve compilare il form on-line. Iscrizione riservata ai Diplomati del Master in Assistive Technology e ai due Corsi di Perfezionamento in Assistive Technology L’Associazione opera attraverso:

• organizzazione di incontri periodici itineranti su specifiche tematiche di Assistive Technology

• organizzazione di iniziative di formazione continua

• attività destinate tipicamente al replacement degli associati

• circolazione di newsletter periodiche di aggiornamento

• organizzazione di occasioni di svago e intrattenimento destinate agli associati

Figura 13

c) Database in Microsoft Access: in fig.14 viene mostrata la maschera “principale” avviata in automatico all’apertura del file,mentre in fig.15 ne viene visualizzato il codice.Di seguito vengono proposti la maschera “Admin”(fig.16) e relativo codice(fig.17) e la maschera(fig.18) e il codice(fig.19) “Corsisti”.

Page 20: Ing sftw Fabiano Dalla Piazza

Ingegneria del software

20

MASCHERA PRINCIPALE

Figura 14

CODICE MASCHERA PRINCIPALE Option Compare Database '===================================================================================== 'CODICE MASCHERA PRINCIPALE '===================================================================================== 'Tutte le Sub eseguite sono procedure interne 'Le costanti usate sono FORM_ATTIVO e le COSTANTI per i colori 'All' apertura del file viene eseguito il codice Form_Open che in automatico chiama la machera principale Private Sub Form_Open(Cancel As Integer) 'Rendi il Form attivo FORM_ATTIVO = True 'Imposta i colori dello sfondo(BackColor) e dei pulsanti di comando Iscriviti(Comando_Apri_Iscritti, 'Esci(Comando_Chiudi_Principale) e Amministratore(Apri_Admin) Corpo.BackColor = COLORE_BIANCO Etichetta_Scegliere.FontSize = 14 Comando_Apri_Iscritti.ForeColor = COLORE_ROSSO Comando_Chiudi_Principale.ForeColor = COLORE_ROSSO Comando_Apri_Admin.ForeColor = COLORE_ROSSO End Sub 'Se si clicca con il mouse sul pulsante Iscriviti cambia il colore della scritta Private Sub Comando_Apri_Iscritti_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Comando_Apri_Iscritti.ForeColor = COLORE_ROSSO End Sub 'Se ci si sposta con il mouse sopra il pulsante Iscriviti cambia il colore e lo spessore della scritta Private Sub Comando_Apri_Iscritti_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Comando_Apri_Iscritti.ForeColor = COLORE_NERO Comando_Apri_Iscritti.FontBold = True End Sub

Page 21: Ing sftw Fabiano Dalla Piazza

Ingegneria del software

21

'Al rilascio del tasto del mouse dopo il click sul pulsante Iscriviti cambia il colore della scritta Private Sub Comando_Apri_Iscritti_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) Comando_Apri_Iscritti.ForeColor = COLORE_BLU End Sub 'Se si clicca con il mouse sul pulsante Esci cambia il colore della scritta Private Sub Comando_Chiudi_Principale_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Comando_Chiudi_Principale.ForeColor = COLORE_ROSSO End Sub 'Se ci si sposta con il mouse sopra il pulsante Esci cambia il colore e lo spessore della scritta Private Sub Comando_Chiudi_Principale_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Comando_Chiudi_Principale.ForeColor = COLORE_NERO Comando_Chiudi_Principale.FontBold = True End Sub 'Al rilascio del tasto del mouse dopo il click sul pulsante Esci cambia il colore della scritta Private Sub Comando_Chiudi_Principale_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) Comando_Chiudi_Principale.ForeColor = COLORE_BLU End Sub 'Se si clicca con il mouse sul pulsante Amministratore cambia il colore della scritta Private Sub Comando_Apri_Admin_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Comando_Apri_Admin.ForeColor = COLORE_ROSSO End Sub 'Se ci si sposta con il mouse sopra il pulsante Amministratore cambia il colore e lo spessore della scritta Private Sub Comando_Apri_Admin_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Comando_Apri_Admin.ForeColor = COLORE_NERO Comando_Apri_Admin.FontBold = True End Sub 'Al rilascio del tasto del mouse dopo il click sul pulsante Amministratore cambia il colore della scritta Private Sub Comando_Apri_Admin_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) Comando_Apri_Admin.ForeColor = COLORE_BLU End Sub 'Se si clicca sul corpo della maschera cambia il colore Private Sub Corpo_Click() Corpo.BackColor = COLORE_DEFAULT End Sub 'Se si clicca sul pulsante Iscriviti Private Sub Comando_Apri_Iscritti_Click() 'Se c'è un errore salta all' etichetta Err_Comando_Apri_Iscritti_Click e ne esegue il codice On Error GoTo Err_Comando_Apri_Iscritti_Click 'Va fino all'ultimo record registrato DoCmd.GoToRecord , , acLast 'Apre la maschera Iscritti in modalità aggiungi record DoCmd.OpenForm "Iscritti", acNormal, "", "", acAdd, acNormal 'Procedura di uscita Exit_Comando_Apri_Iscritti_Click: Exit Sub 'Procedura di errore:visualizza l'errore(description) ed esce Err_Comando_Apri_Iscritti_Click: MsgBox Err.Description Resume Exit_Comando_Apri_Iscritti_Click End Sub

Page 22: Ing sftw Fabiano Dalla Piazza

Ingegneria del software

22

'Se si clicca sul pulsante Esci Private Sub Comando_Chiudi_Principale_Click() 'Se c'è un errore salta all' etichetta Err_Comando_Chiudi_Principale_Click e ne esegue il codice On Error GoTo Err_Comando_Chiudi_Principale_Click 'Chiude la maschera attuale DoCmd.Close 'Esce dal file DoCmd.Quit 'Procedura di uscita Exit_Comando_Chiudi_Principale_Click: Exit Sub 'Procedura di errore:visualizza l'errore(description) ed esce Err_Comando_Chiudi_Principale_Click: MsgBox Err.Description Resume Exit_Comando_Chiudi_Principale_Click End Sub 'Se si clicca sul comando Amministratore Private Sub Comando_Apri_Admin_Click() 'Se c'è un errore salta all' etichetta Err_Comando_Apri_Admin e ne esegue il codice On Error GoTo Err_Comando_Apri_Admin_Click 'Variabili stringhe Dim stDocName As String Dim stLinkCriteria As String 'Memorizza il nome della maschera che verrà aperta stDocName = "Admin" 'Apre la maschera Richiedi password con i criteri esposti DoCmd.OpenForm stDocName, , , stLinkCriteria 'Procedura di uscita Exit_Comando_Apri_Admin_Click: Exit Sub 'Procedura di errore:visualizza l'errore(description) ed esce Err_Comando_Apri_Admin_Click: MsgBox Err.Description Resume Exit_Comando_Apri_Admin_Click End Sub Figura 15

Page 23: Ing sftw Fabiano Dalla Piazza

Ingegneria del software

23

MASCHERA ADMIN

Figura 16

CODICE MASCHERA ADMIN Option Compare Database '============================================================================================================ 'CODICE MASCHERA ADMIN '============================================================================================================ 'Tutte le Sub eseguite sono procedure interne 'Le costanti utilizzate sono quelle per i colori 'All' apertura del file viene eseguito il codice Form_Open che in automatico chiama la machera principale Private Sub Form_Open(Cancel As Integer) 'All'apertura imposta il colore degli sfondi maschera e menu pulsanti opzionali,ingrandisce 'i caratteri delle due etichette istruttive,stabilisce il colore della scritta del pulsante invio 'e fissa i colori di tutte le etichette di tutti i campi

Page 24: Ing sftw Fabiano Dalla Piazza

Ingegneria del software

24

Corpo.BackColor = COLORE_BIANCO Etichetta_Corsisti.FontSize = 14 Etichetta_Iscritti.FontSize = 14 Comando_Lettura_Corsisti.ForeColor = COLORE_ROSSO Comando_Inserisci_Corsisti.ForeColor = COLORE_ROSSO Comando_Modifica_Corsisti.ForeColor = COLORE_ROSSO Comando_Lettura_Iscritti.ForeColor = COLORE_ROSSO Comando_Modifica_Iscritti.ForeColor = COLORE_ROSSO Comando_Torna_Principale.ForeColor = COLORE_ROSSO End Sub '=======================================CORSISTI===================================== 'Se si clicca con il mouse sul pulsante Sola lettura cambia il colore della scritta Private Sub Comando_Lettura_Corsisti_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Comando_Lettura_Corsisti.ForeColor = COLORE_ROSSO End Sub 'Al rilascio del tasto del mouse dopo il click sul pulsante Sola lettura cambia il colore della scritta Private Sub Comando_Lettura_Corsisti_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) Comando_Lettura_Corsisti.ForeColor = COLORE_BLU End Sub 'Se ci si sposta con il mouse sopra il pulsante Sola Lettura cambia il colore e lo spessore della scritta Private Sub Comando_Lettura_Corsisti_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Comando_Lettura_Corsisti.ForeColor = COLORE_NERO Comando_Lettura_Corsisti.FontBold = True End Sub 'Se si clicca con il mouse sul pulsante Inserisci cambia il colore della scritta Private Sub Comando_Inserisci_Corsisti_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Comando_Inserisci_Corsisti.ForeColor = COLORE_ROSSO End Sub 'Al rilascio del tasto del mouse dopo il click sul pulsante Inserisci cambia il colore della scritta Private Sub Comando_Inserisci_Corsisti_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) Comando_Inserisci_Corsisti.ForeColor = COLORE_BLU End Sub 'Se ci si sposta con il mouse sopra il pulsante Inserisci cambia il colore e lo spessore della scritta Private Sub Comando_Inserisci_Corsisti_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Comando_Inserisci_Corsisti.ForeColor = COLORE_NERO Comando_Inserisci_Corsisti.FontBold = True End Sub 'Se si clicca con il mouse sul pulsante Modifica cambia il colore della scritta Private Sub Comando_Modifica_Corsisti_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Comando_Modifica_Corsisti.ForeColor = COLORE_ROSSO End Sub 'Al rilascio del tasto del mouse dopo il click sul pulsante Modifica cambia il colore della scritta Private Sub Comando_Modifica_Corsisti_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) Comando_Modifica_Corsisti.ForeColor = COLORE_BLU End Sub 'Se ci si sposta con il mouse sopra il pulsante Modifica cambia il colore e lo spessore della scritta Private Sub Comando_Modifica_Corsisti_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Comando_Modifica_Corsisti.ForeColor = COLORE_NERO Comando_Modifica_Corsisti.FontBold = True End Sub

Page 25: Ing sftw Fabiano Dalla Piazza

Ingegneria del software

25

'===========================================ISCRITTI=================================== 'Se si clicca con il mouse sul pulsante Sola lettura cambia il colore della scritta Private Sub Comando_Lettura_Iscritti_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Comando_Lettura_Iscritti.ForeColor = COLORE_ROSSO End Sub 'Al rilascio del tasto del mouse dopo il click sul pulsante Sola lettura cambia il colore della scritta Private Sub Comando_Lettura_Iscritti_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) Comando_Lettura_Iscritti.ForeColor = COLORE_BLU End Sub 'Se ci si sposta con il mouse sopra il pulsante Sola Lettura cambia il colore e lo spessore della scritta Private Sub Comando_Lettura_Iscritti_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Comando_Lettura_Iscritti.ForeColor = COLORE_NERO Comando_Lettura_Iscritti.FontBold = True End Sub 'Se si clicca con il mouse sul pulsante Modifica cambia il colore della scritta Private Sub Comando_Modifica_Iscritti_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Comando_Modifica_Iscritti.ForeColor = COLORE_ROSSO End Sub 'Al rilascio del tasto del mouse dopo il click sul pulsante Modifica cambia il colore della scritta Private Sub Comando_Modifica_Iscritti_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) Comando_Modifica_Iscritti.ForeColor = COLORE_BLU End Sub 'Se ci si sposta con il mouse sopra il pulsante Modifica cambia il colore e lo spessore della scritta Private Sub Comando_Modifica_Iscritti_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Comando_Modifica_Iscritti.ForeColor = COLORE_NERO Comando_Modifica_Iscritti.FontBold = True End Sub 'Se si clicca con il mouse sul pulsante Torna alla maschera principale cambia il colore della scritta Private Sub Comando_Torna_Principale_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Comando_Torna_Principale.ForeColor = COLORE_ROSSO End Sub 'Al rilascio del tasto del mouse dopo il click sul pulsante Torna alla maschera principale 'cambia il colore della scritta Private Sub Comando_Torna_Principale_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) Comando_Torna_Principale.ForeColor = COLORE_BLU End Sub 'Se ci si sposta con il mouse sopra il pulsante Torna alla maschera principale 'cambia il colore e lo spessore della scritta Private Sub Comando_Torna_Principale_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Comando_Torna_Principale.ForeColor = COLORE_NERO Comando_Torna_Principale.FontBold = True End Sub 'Se si clicca sul corpo della maschera cambia il colore Private Sub Corpo_Click() Corpo.BackColor = COLORE_DEFAULT End Sub 'Se si clicca sul pulsante Inserisci di corsisti:se c'è un errore esegue la sua procedura Private Sub Comando_Inserisci_Corsisti_Click() On Error GoTo Err_Comando_Inserisci_Corsisti_Click 'Variabili stringhe Dim stDocName As String Dim stLinkCriteria As String

Page 26: Ing sftw Fabiano Dalla Piazza

Ingegneria del software

26

'Apre la maschera corsisti collegandola tramite il cognome stDocName = "Corsisti" stLinkCriteria = "[Cognome]=" & "'" & Me![Cognome] & "'" DoCmd.OpenForm stDocName, , , stLinkCriteria 'Procedura di uscita Exit_Comando_Inserisci_Corsisti_Click: Exit Sub 'Procedura di errore:visualizza l'errore(description) ed esce Err_Comando_Inserisci_Corsisti_Click: MsgBox Err.Description Resume Exit_Comando_Inserisci_Corsisti_Click End Sub 'Se si clicca sul pulsante Torna alla maschera principale di corsisti:se c'è un errore esegue la sua procedura Private Sub Comando_Torna_Principale_Click() On Error GoTo Err_Comando_Torna_Principale_Click 'Chiude la maschera DoCmd.Close 'Procedura di uscita Exit_Comando_Torna_Principale_Click: Exit Sub 'Procedura di errore:visualizza l'errore(description) ed esce Err_Comando_Torna_Principale_Click: MsgBox Err.Description Resume Exit_Comando_Torna_Principale_Click End Sub 'Se si clicca sul pulsante Modifica di corsisti:se c'è un errore esegue la sua procedura Private Sub Comando_Modifica_Corsisti_Click() On Error GoTo Err_Comando_Modifica_Corsisti_Click 'Apre la maschera corsisti e visualizza la maschera Trova record DoCmd.OpenForm "Corsisti", acNormal, "", "", acEdit, acNormal Screen.PreviousControl.SetFocus DoCmd.DoMenuItem acFormBar, acEditMenu, 10, , acMenuVer70 'Procedura di uscita Exit_Comando_Modifica_Corsisti_Click: Exit Sub 'Procedura di errore:visualizza l'errore(description) ed esce Err_Comando_Modifica_Corsisti_Click: MsgBox Err.Description Resume Exit_Comando_Modifica_Corsisti_Click End Sub 'Se si clicca sul pulsante Modifica di iscritti:se c'è un errore esegue la sua procedura Private Sub Comando_Modifica_Iscritti_Click() On Error GoTo Err_Comando_Modifica_Iscritti_Click 'Apre la maschera Autorizzati(con i dati iscritti) e visualizza la maschera Trova record DoCmd.OpenForm "Autorizzati", acNormal, "", "", acEdit, acNormal Screen.PreviousControl.SetFocus DoCmd.DoMenuItem acFormBar, acEditMenu, 10, , acMenuVer70 'Procedura di uscita Exit_Comando_Modifica_Iscritti_Click: Exit Sub 'Procedura di errore:visualizza l'errore(description) ed esce Err_Comando_Modifica_Iscritti_Click: MsgBox Err.Description Resume Exit_Comando_Modifica_Iscritti_Click End Sub 'Se si clicca sul pulsante Sola lettura di corsisti:se c'è un errore esegue la sua procedura Private Sub Comando_Lettura_Corsisti_Click()

Page 27: Ing sftw Fabiano Dalla Piazza

Ingegneria del software

27

On Error GoTo Err_Comando_Lettura_Corsisti_Click 'Apre la maschera Corsisti in modalità struttura DoCmd.OpenForm "Corsisti", acDesign, "", "", acReadOnly, acNormal 'Procedura di uscita Exit_Comando_Lettura_Corsisti_Click: Exit Sub 'Procedura di errore:visualizza l'errore(description) ed esce Err_Comando_Lettura_Corsisti_Click: MsgBox Err.Description Resume Exit_Comando_Lettura_Corsisti_Click End Sub 'Se si clicca sul pulsante Sola lettura di iscritti:se c'è un errore esegue la sua procedura Private Sub Comando_Lettura_Iscritti_Click() On Error GoTo Err_Comando_Lettura_Iscritti_Click 'Apre la maschera Autorizzati(con i dati iscritti) in modalità struttura DoCmd.OpenForm "Autorizzati", acDesign, "", "", acReadOnly, acNormal 'Procedura di uscita Exit_Comando_Lettura_Iscritti_Click: Exit Sub 'Procedura di errore:visualizza l'errore(description) ed esce Err_Comando_Lettura_Iscritti_Click: MsgBox Err.Description Resume Exit_Comando_Lettura_Iscritti_Click End Sub Figura 17

MASCHERA CORSISTI

Figura 18

CODICE MASCHERA CORSISTI Option Compare Database

Page 28: Ing sftw Fabiano Dalla Piazza

Ingegneria del software

28

'========================================================================================= 'CODICE MASCHERA CORSISTI '========================================================================================= 'Tutte le Sub eseguite sono procedure interne 'Non sono utilizzate costanti stringhe o booleane 'All' apertura del file viene eseguito il codice Form_Open che in automatico chiama la machera principale Private Sub Form_Open(Cancel As Integer) 'Imposta i colori dello sfondo,dei pulsanti di comando Torna alla maschera amministratore e 'Torna alla maschera principale,delle etichette Nome e Cognome 'e il carattere dell'etichetta Inserisci i dati Corpo.BackColor = COLORE_BIANCO Etichetta_Inserisci_Dati.FontSize = 14 Nome_Etichetta.ForeColor = COLORE_NERO Cognome_Etichetta.ForeColor = COLORE_NERO Comando_Torna_Admin.ForeColor = COLORE_ROSSO Comando_Torna_Principale.ForeColor = COLORE_ROSSO End Sub 'Se ci si sposta col mouse nel campo o etichetta Nome ingrandisce il carattere delle scritte di entrambi Private Sub Nome_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Nome_Etichetta.FontSize = 10 Nome.FontSize = 10 End Sub 'Se ci si sposta col mouse nel campo o etichetta Cognome ingrandisce il carattere delle scritte di entrambi Private Sub Cognome_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Cognome_Etichetta.FontSize = 10 Cognome.FontSize = 10 End Sub 'Se si entra nella casella di Nome vengono definiti colore e 'grandezza scritta dell'etichetta e grandezza scritta nella casella Private Sub Nome_Enter() Nome_Etichetta.ForeColor = COLORE_NERO Nome_Etichetta.FontSize = 8 Nome.FontSize = 8 End Sub 'Se si clicca nella casella di Nome vengono definiti colore e 'grandezza scritta dell'etichetta e grandezza scritta nella casella Private Sub Nome_Click() Nome_Etichetta.ForeColor = COLORE_NERO Nome_Etichetta.FontSize = 8 Nome.FontSize = 8 End Sub 'Se si esce dalla casella di Nome vengono definiti colore e 'grandezza scrittadell'etichetta e grandezza scritta nella casella Private Sub Nome_Exit(Cancel As Integer) Nome_Etichetta.ForeColor = COLORE_BIANCO Nome_Etichetta.FontSize = 8 Nome.FontSize = 8 End Sub 'Se si entra nella casella di Cognome vengono definiti colore e 'grandezza scritta dell'etichetta e grandezza scritta nella casella Private Sub Cognome_Enter() Cognome_Etichetta.ForeColor = COLORE_NERO Cognome_Etichetta.FontSize = 8 Cognome.FontSize = 8

Page 29: Ing sftw Fabiano Dalla Piazza

Ingegneria del software

29

End Sub 'Se si clicca nella casella di Cognome vengono definiti colore e 'grandezza scritta dell'etichetta e grandezza scritta nella casella Private Sub Cognome_Click() Cognome_Etichetta.ForeColor = COLORE_NERO Cognome_Etichetta.FontSize = 8 Cognome.FontSize = 8 End Sub 'Se si esce dalla casella di Cognome vengono definiti colore e 'grandezza scritta dell'etichetta e grandezza scritta nella casella Private Sub Cognome_Exit(Cancel As Integer) Cognome_Etichetta.ForeColor = COLORE_BIANCO Cognome_Etichetta.FontSize = 8 Cognome.FontSize = 8 End Sub 'Se si clicca con il mouse sul pulsante Torna alla maschera principale 'cambia il colore della scritta Private Sub Comando_Torna_Principale_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Comando_Torna_Principale.ForeColor = COLORE_ROSSO End Sub 'Al rilascio del tasto del mouse dopo il click sul pulsante Torna alla 'maschera principale cambia il colore della scritta Private Sub Comando_Torna_Principale_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) Comando_Torna_Principale.ForeColor = COLORE_BLU End Sub 'Se ci si sposta con il mouse sopra il pulsante Torna alla maschera principale 'cambia il colore e lo spessore della scritta Private Sub Comando_Torna_Principale_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Comando_Torna_Principale.ForeColor = COLORE_NERO Comando_Torna_Principale.FontBold = True End Sub 'Se si clicca con il mouse sul pulsante Torna alla maschera amministratore cambia il colore della scritta Private Sub Comando_Torna_Admin_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Comando_Torna_Admin.ForeColor = COLORE_ROSSO End Sub 'Al rilascio del tasto del mouse dopo il click sul pulsante 'Torna alla maschera amministratore cambia il colore della scritta Private Sub Comando_Torna_Admin_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) Comando_Torna_Admin.ForeColor = COLORE_BLU End Sub 'Se ci si sposta con il mouse sopra il pulsante Torna alla 'maschera amministratore cambia il colore e lo spessore della scritta Private Sub Comando_Torna_Admin_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Comando_Torna_Admin.ForeColor = COLORE_NERO Comando_Torna_Admin.FontBold = True End Sub 'Se si clicca sul corpo della maschera cambia il colore Private Sub Corpo_Click() Corpo.BackColor = COLORE_DEFAULT End Sub 'Se si clicca sul pulsante Torna alla maschera principale:se c'è un errore esegue la sua procedura Private Sub Comando_Torna_Principale_Click() On Error GoTo Err_Comando_Torna_Principale_Click 'Chiude la maschera e la precedente DoCmd.Close

Page 30: Ing sftw Fabiano Dalla Piazza

Ingegneria del software

30

DoCmd.Close acForm, "Admin" 'Procedura di uscita Exit_Comando_Torna_Principale_Click: Exit Sub 'Procedura di errore:visualizza l'errore(description) ed esce Err_Comando_Torna_Principale_Click: MsgBox Err.Description Resume Exit_Comando_Torna_Principale_Click End Sub 'Se si clicca sul pulsante Torna alla maschera amministratore:se c'è un errore esegue la sua procedura Private Sub Comando_Torna_Admin_Click() On Error GoTo Err_Comando_Torna_Admin_Click 'Chiude la maschera DoCmd.Close 'Procedura di errore Exit_Comando_Torna_Admin_Click: Exit Sub 'Procedura di errore:visualizza l'errore(description) ed esce Err_Comando_Torna_Admin_Click: MsgBox Err.Description Resume Exit_Comando_Torna_Admin_Click End Sub Figura 19

Nelle seguenti fig.20 e fig.21 sono riportati rispettivamente la maschera e i codici della maschera “Autorizzati”.Infine le ultime tre maschere in sequenza: “Iscritti”(fig.22)con suo relativo codice(fig.23),”Richiedi_Password”(fig.24) e relativo codice(fig.25) e “Password”(fig.26) con codice visualizzato in fig.27.

Page 31: Ing sftw Fabiano Dalla Piazza

Ingegneria del software

31

MASCHERA AU TORIZZATI

Figura 20

CODICE MASCHERA AUTO RIZZATI

Option Compare Database '========================================================================================== 'CODICE MASCHERA AUTORIZZATI '========================================================================================== 'Tutte le Sub eseguite sono procedure interne 'Le costanti usate sono le COSTANTI per i colori 'All' apertura del file viene eseguito il codice Form_Open che in automatico chiama la machera principale Private Sub Form_Open(Cancel As Integer)

Page 32: Ing sftw Fabiano Dalla Piazza

Ingegneria del software

32

'Imposta i colori dello sfondo(BackColor) e dei pulsanti di comando Iscriviti(Comando_Apri_Iscritti, 'Esci(Comando_Chiudi_Principale) e Amministratore(Apri_Admin) Corpo.BackColor = COLORE_BIANCO Etichetta_dati_Iscritti.FontSize = 14 Etichetta_Seleziona.BackColor = COLORE_BIANCO Comando_Torna_Admin.ForeColor = COLORE_ROSSO Comando_Torna_Principale.ForeColor = COLORE_ROSSO E_Mail_Etichetta.ForeColor = COLORE_NERO Nome_Etichetta.ForeColor = COLORE_NERO Cognome_Etichetta.ForeColor = COLORE_NERO Indirizzo_di_residenza_Etichetta.ForeColor = COLORE_NERO Indirizzo_di_invio_Etichetta.ForeColor = COLORE_NERO Telefono_Etichetta.ForeColor = COLORE_NERO Corso_Frequentato_Etichetta.ForeColor = COLORE_NERO Edizione_Etichetta.ForeColor = COLORE_NERO Password_Etichetta.ForeColor = COLORE_NERO End Sub 'Se ci si sposta col mouse nel campo o etichetta E-Mail ingrandisce il carattere delle scritte di entrambi Private Sub E_Mail_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) E_Mail_Etichetta.FontSize = 10 E_Mail.FontSize = 10 End Sub 'Se ci si sposta col mouse nel campo o etichetta Nome ingrandisce il carattere delle scritte di entrambi Private Sub Nome_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Nome_Etichetta.FontSize = 10 Nome.FontSize = 10 End Sub 'Se ci si sposta col mouse nel campo o etichetta Cognome ingrandisce il carattere delle scritte di entrambi Private Sub Cognome_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Cognome_Etichetta.FontSize = 10 Cognome.FontSize = 10 End Sub 'Se ci si sposta col mouse nel campo o etichetta Indirizzo di residenza ingrandisce 'il carattere delle scritte di entrambi Private Sub Indirizzo_di_residenza_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Indirizzo_di_residenza_Etichetta.FontSize = 10 Indirizzo_di_residenza.FontSize = 10 End Sub 'Se ci si sposta col mouse nel campo o etichetta Indirizzo di invio ingrandisce 'il carattere delle scritte di entrambi Private Sub Indirizzo_di_invio_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Indirizzo_di_invio_Etichetta.FontSize = 10 Indirizzo_di_invio.FontSize = 10 End Sub 'Se si clicca con il mouse sul pulsante opzionale CPAT cambia il colore della scritta Private Sub Opzione_CPAT_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Etichetta_CPAT.ForeColor = COLORE_ROSSO End Sub 'Se si clicca con il mouse sul pulsante opzionale MAT cambia il colore della scritta Private Sub Opzione_MAT_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Etichetta_MAT.ForeColor = COLORE_ROSSO End Sub 'Al rilascio del tasto del mouse dopo il click sul pulsante opzionale CPAT cambia il colore della scritta Private Sub Opzione_CPAT_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) Etichetta_CPAT.ForeColor = COLORE_BLU End Sub 'Al rilascio del tasto del mouse dopo il click sul pulsante opzionale MAT cambia il colore della scritta Private Sub Opzione_MAT_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)

Page 33: Ing sftw Fabiano Dalla Piazza

Ingegneria del software

33

Etichetta_MAT.ForeColor = COLORE_BLU End Sub 'Se ci si sposta col mouse nel campo o etichetta Telefono ingrandisce il carattere delle scritte di entrambi Private Sub Telefono_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Telefono_Etichetta.FontSize = 10 Telefono.FontSize = 10 End Sub 'Se ci si sposta col mouse nell' etichetta Corso frequentato ingrandisce la scritta dell'etichetta, 'ne toglie il corsivo e la tramuta in grassetto Private Sub Corso_Frequentato_Etichetta_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Corso_Frequentato_Etichetta.FontSize = 10 Etichetta_CPAT.FontItalic = False Etichetta_MAT.FontItalic = False Etichetta_CPAT.FontBold = True Etichetta_MAT.FontBold = True End Sub 'Se ci si sposta col mouse nel pulsante opzionale CPAT trasforma la scritta in corsivo Private Sub Opzione_CPAT_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Etichetta_CPAT.FontItalic = True End Sub 'Se ci si sposta col mouse nel pulsante opzionale MAT trasforma la scritta in corsivo Private Sub Opzione_MAT_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Etichetta_MAT.FontItalic = True End Sub 'Se ci si sposta col mouse nel campo o etichetta Edizione ingrandisce il carattere delle scritte di entrambi Private Sub Edizione_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Edizione_Etichetta.FontSize = 10 Edizione.FontSize = 10 End Sub 'Se si entra nella casella di E-Mail vengono definiti colore e 'grandezza scritta dell'etichetta e grandezza scritta nella casella Private Sub E_Mail_Enter() E_Mail_Etichetta.ForeColor = COLORE_NERO E_Mail_Etichetta.FontSize = 8 E_Mail.FontSize = 8 End Sub 'Se si clicca nella casella di E-Mail vengono definiti colore e 'grandezza scritta dell'etichetta e grandezza scritta nella casella Private Sub E_Mail_Click() E_Mail_Etichetta.ForeColor = COLORE_NERO E_Mail_Etichetta.FontSize = 8 E_Mail.FontSize = 8 End Sub 'Se si esce dalla casella di E-Mail vengono definiti colore e 'grandezza scritta dell'etichetta e grandezza scritta nella casella Private Sub E_Mail_Exit(Cancel As Integer) E_Mail_Etichetta.ForeColor = COLORE_BIANCO E_Mail_Etichetta.FontSize = 8 E_Mail.FontSize = 8 End Sub 'Se si entra nella casella di Nome vengono definiti colore e 'grandezza scritta dell'etichetta e grandezza scritta nella casella Private Sub Nome_Enter() Nome_Etichetta.ForeColor = COLORE_NERO Nome_Etichetta.FontSize = 8 Nome.FontSize = 8 End Sub

Page 34: Ing sftw Fabiano Dalla Piazza

Ingegneria del software

34

'Se si clicca nella casella di Nome vengono definiti colore e 'grandezza scritta dell'etichetta e grandezza scritta nella casella Private Sub Nome_Click() Nome_Etichetta.ForeColor = COLORE_NERO Nome_Etichetta.FontSize = 8 Nome.FontSize = 8 End Sub 'Se si esce dalla casella di Nome vengono definiti colore e 'grandezza scrittadell'etichetta e grandezza scritta nella casella Private Sub Nome_Exit(Cancel As Integer) Nome_Etichetta.ForeColor = COLORE_BIANCO Nome_Etichetta.FontSize = 8 Nome.FontSize = 8 End Sub 'Se si entra nella casella di Cognome vengono definiti colore e 'grandezza scritta dell'etichetta e grandezza scritta nella casella Private Sub Cognome_Enter() Cognome_Etichetta.ForeColor = COLORE_NERO Cognome_Etichetta.FontSize = 8 Cognome.FontSize = 8 End Sub 'Se si clicca nella casella di Cognome vengono definiti colore e 'grandezza scritta dell'etichetta e grandezza scritta nella casella Private Sub Cognome_Click() Cognome_Etichetta.ForeColor = COLORE_NERO Cognome_Etichetta.FontSize = 8 Cognome.FontSize = 8 End Sub 'Se si esce dalla casella di Cognome vengono definiti colore e 'grandezza scritta dell'etichetta e grandezza scritta nella casella Private Sub Cognome_Exit(Cancel As Integer) Cognome_Etichetta.ForeColor = COLORE_BIANCO Cognome_Etichetta.FontSize = 8 Cognome.FontSize = 8 End Sub 'Se si entra nella casella di Indirizzo di residenza vengono definiti colore e 'grandezza scritta dell'etichetta e grandezza scritta nella casella Private Sub Indirizzo_di_residenza_Enter() Indirizzo_di_residenza_Etichetta.ForeColor = COLORE_NERO Indirizzo_di_residenza_Etichetta.FontSize = 8 Indirizzo_di_residenza.FontSize = 8 End Sub 'Se si clicca nella casella di Indirizzo di residenza vengono definiti colore e 'grandezza scritta dell'etichetta e grandezza scritta nella casella Private Sub Indirizzo_di_residenza_Click() Indirizzo_di_residenza_Etichetta.ForeColor = COLORE_NERO Indirizzo_di_residenza_Etichetta.FontSize = 8 Indirizzo_di_residenza.FontSize = 8 End Sub 'Se si esce dalla casella di Indirizzo di residenza vengono definiti colore e 'grandezza scritta dell'etichetta e grandezza scritta nella casella Private Sub Indirizzo_di_residenza_Exit(Cancel As Integer) Indirizzo_di_residenza_Etichetta.ForeColor = COLORE_BIANCO Indirizzo_di_residenza_Etichetta.FontSize = 8 Indirizzo_di_residenza.FontSize = 8 End Sub 'Se si entra nella casella di Indirizzo di invio vengono definiti colore e 'grandezza scritta dell'etichetta e grandezza scritta nella casella Private Sub Indirizzo_di_invio_Enter() Indirizzo_di_invio_Etichetta.ForeColor = COLORE_NERO Indirizzo_di_invio_Etichetta.FontSize = 8

Page 35: Ing sftw Fabiano Dalla Piazza

Ingegneria del software

35

Indirizzo_di_invio.FontSize = 8 End Sub 'Se si clicca nella casella di Indirizzo di invio vengono definiti colore e 'grandezza scritta dell'etichetta e grandezza scritta nella casella Private Sub Indirizzo_di_invio_Click() Indirizzo_di_invio_Etichetta.ForeColor = COLORE_NERO Indirizzo_di_invio_Etichetta.FontSize = 8 Indirizzo_di_invio.FontSize = 8 End Sub 'Se si esce dalla casella di Indirizzo di invio vengono definiti colore e 'grandezza scritta dell'etichetta e grandezza scritta nella casella Private Sub Indirizzo_di_invio_Exit(Cancel As Integer) Indirizzo_di_invio_Etichetta.ForeColor = COLORE_BIANCO Indirizzo_di_invio_Etichetta.FontSize = 8 Indirizzo_di_invio.FontSize = 8 End Sub 'Se si entra nella casella di Telefono vengono definiti colore e 'grandezza scritta dell'etichetta e grandezza scritta nella casella Private Sub Telefono_Enter() Telefono_Etichetta.ForeColor = COLORE_NERO Telefono_Etichetta.FontSize = 8 Telefono.FontSize = 8 End Sub 'Se si clicca nella casella di Telefono vengono definiti colore e 'grandezza scritta dell'etichetta e grandezza scritta nella casella Private Sub Telefono_Click() Telefono_Etichetta.ForeColor = COLORE_NERO Telefono_Etichetta.FontSize = 8 Telefono.FontSize = 8 End Sub 'Se si esce dalla casella di Telefono vengono definiti colore e 'grandezza scritta dell'etichetta e grandezza scritta nella casella Private Sub Telefono_Exit(Cancel As Integer) Telefono_Etichetta.ForeColor = COLORE_BIANCO Telefono_Etichetta.FontSize = 8 Telefono.FontSize = 8 End Sub 'Se si entra nella casella di Edizione vengono definiti colore e 'grandezza scritta dell'etichetta e grandezza scritta nella casella Private Sub Edizione_Enter() Edizione_Etichetta.ForeColor = COLORE_NERO Edizione_Etichetta.FontSize = 8 Edizione.FontSize = 8 End Sub 'Se si clicca nella casella di Edizione vengono definiti colore e 'grandezza scritta dell'etichetta e grandezza scritta nella casella Private Sub Edizione_Click() Edizione_Etichetta.ForeColor = COLORE_NERO Edizione_Etichetta.FontSize = 8 Edizione.FontSize = 8 End Sub 'Se si esce dalla casella di Edizione vengono definiti colore e 'grandezza scritta dell'etichetta egrandezza scritta nella casella Private Sub Edizione_Exit(Cancel As Integer) Edizione_Etichetta.ForeColor = COLORE_BIANCO Edizione_Etichetta.FontSize = 8 Edizione.FontSize = 8 End Sub

Page 36: Ing sftw Fabiano Dalla Piazza

Ingegneria del software

36

'Se ci si sposta col mouse nel campo o etichetta Password ingrandisce il carattere delle scritte di entrambi Private Sub Password_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Password_Etichetta.FontSize = 10 Password.FontSize = 10 End Sub 'Se si entra nella casella di Password vengono definiti colore e 'grandezza scritta dell'etichetta e grandezza scritta nella casella Private Sub Password_Enter() Password_Etichetta.ForeColor = COLORE_NERO Password_Etichetta.FontSize = 8 Password.FontSize = 8 End Sub 'Se si clicca nella casella di Password vengono definiti colore e 'grandezza scritta dell'etichetta e grandezza scritta nella casella Private Sub Password_Click() Password_Etichetta.ForeColor = COLORE_NERO Password_Etichetta.FontSize = 8 Password.FontSize = 8 End Sub 'Se si esce dalla casella di Password vengono definiti colore e 'grandezza scritta dell'etichetta e grandezza scritta nella casella Private Sub Password_Exit(Cancel As Integer) Password_Etichetta.ForeColor = COLORE_BIANCO Password_Etichetta.FontSize = 8 Password.FontSize = 8 End Sub 'Se si clicca sul corpo della maschera cambia il colore Private Sub Corpo_Click() Corpo.BackColor = COLORE_DEFAULT Etichetta_Seleziona.BackColor = COLORE_DEFAULT End Sub 'Se si clicca con il mouse sul pulsante Torna alla maschera amministratore 'cambia il colore della scritta Private Sub Comando_Torna_Admin_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Comando_Torna_Admin.ForeColor = COLORE_ROSSO End Sub 'Se ci si sposta con il mouse sopra il pulsante Torna alla maschera amministratore 'cambia il colore e lo spessore della scritta Private Sub Comando_Torna_Admin_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Comando_Torna_Admin.ForeColor = COLORE_NERO Comando_Torna_Admin.FontBold = True End Sub 'Al rilascio del tasto del mouse dopo il click sul pulsante Torna 'alla maschera amministratore cambia il colore della scritta Private Sub Comando_Torna_Admin_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) Comando_Torna_Admin.ForeColor = COLORE_BLU End Sub 'Se si clicca con il mouse sul pulsante Torna alla maschera principale cambia il colore della scritta Private Sub Comando_Torna_Principale_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Comando_Torna_Principale.ForeColor = COLORE_ROSSO End Sub 'Se ci si sposta con il mouse sopra il pulsante Torna alla maschera principale 'cambia il colore e lo spessore della scritta Private Sub Comando_Torna_Principale_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Comando_Torna_Principale.ForeColor = COLORE_NERO Comando_Torna_Principale.FontBold = True End Sub

Page 37: Ing sftw Fabiano Dalla Piazza

Ingegneria del software

37

'Al rilascio del tasto del mouse dopo il click sul pulsante Torna alla 'maschera principale cambia il colore della scritta Private Sub Comando_Torna_Principale_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) Comando_Torna_Principale.ForeColor = COLORE_BLU End Sub 'Se si clicca su Torna alla maschera amministratore:se c'è errore esegue la sua procedura Private Sub Comando_Torna_Admin_Click() On Error GoTo Err_Comando_Torna_Admin_Click 'Chiude la maschera DoCmd.Close 'Procedura di uscita Exit_Comando_Torna_Admin_Click: Exit Sub 'Procedura di errore:visualizza l'errore(description) ed esce Err_Comando_Torna_Admin_Click: MsgBox Err.Description Resume Exit_Comando_Torna_Admin_Click End Sub 'Se si clicca su Torna alla maschera principale:se c'è errore esegue la sua procedura Private Sub Comando_Torna_Principale_Click() On Error GoTo Err_Comando_Torna_Principale_Click 'Chiude la maschera e la precedente DoCmd.Close DoCmd.Close acForm, "Admin" 'Procedura di uscita Exit_Comando_Torna_Principale_Click: Exit Sub 'Procedura di errore:visualizza l'errore(description) ed esce Err_Comando_Torna_Principale_Click: MsgBox Err.Description Resume Exit_Comando_Torna_Principale_Click End Sub

Figura 21

Page 38: Ing sftw Fabiano Dalla Piazza

Ingegneria del software

38

MASCHERA ISCRITTI

Figura 22

CODICE MASCHERA ISCRITTI Option Compare Database '=============================================================================================== 'CODICE MASCHERA ISCRITTI '=============================================================================================== 'Tutte le Sub eseguite sono procedure interne 'Le costanti usate sono STRINGA_NOME e STRINGA_COGNOME 'All' apertura del file viene eseguito il codice Form_Open che in automatico chiama la machera principale Private Sub Form_Open(Cancel As Integer)

Page 39: Ing sftw Fabiano Dalla Piazza

Ingegneria del software

39

'All'apertura imposta i colori degli sfondi maschera e menu pulsanti opzionali,ingrandisce 'i caratteri delle due etichette istruttive,stabilisce il colore della scritta del pulsante invio 'e fissa i colori di tutte le etichette di tutti i campi Corpo.BackColor = COLORE_BIANCO Etichetta_Seleziona.BackColor = COLORE_BIANCO Etichetta_Iscriviti.FontSize = 14 Etichetta_Riempi.FontSize = 14 Comando_Invio.ForeColor = COLORE_ROSSO E_Mail_Etichetta.ForeColor = COLORE_NERO Nome_Etichetta.ForeColor = COLORE_NERO Cognome_Etichetta.ForeColor = COLORE_NERO Indirizzo_di_residenza_Etichetta.ForeColor = COLORE_NERO Indirizzo_di_invio_Etichetta.ForeColor = COLORE_NERO Telefono_Etichetta.ForeColor = COLORE_NERO Corso_Frequentato_Etichetta.ForeColor = COLORE_NERO Edizione_Etichetta.ForeColor = COLORE_NERO End Sub 'Se ci si sposta col mouse nel campo o etichetta E-Mail ingrandisce il carattere delle scritte di entrambi Private Sub E_Mail_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) E_Mail_Etichetta.FontSize = 10 E_Mail.FontSize = 10 End Sub 'Se ci si sposta col mouse nel campo o etichetta Nome ingrandisce il carattere delle scritte di entrambi Private Sub Nome_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Nome_Etichetta.FontSize = 10 Nome.FontSize = 10 End Sub 'Se ci si sposta col mouse nel campo o etichetta Cognome ingrandisce il carattere delle scritte di entrambi Private Sub Cognome_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Cognome_Etichetta.FontSize = 10 Cognome.FontSize = 10 End Sub 'Se ci si sposta col mouse nel campo o etichetta Indirizzo di residenza ingrandisce 'il carattere delle scritte di entrambi Private Sub Indirizzo_di_residenza_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Indirizzo_di_residenza_Etichetta.FontSize = 10 Indirizzo_di_residenza.FontSize = 10 End Sub 'Se ci si sposta col mouse nel campo o etichetta Indirizzo di invio ingrandisce 'il carattere delle scritte di entrambi Private Sub Indirizzo_di_invio_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Indirizzo_di_invio_Etichetta.FontSize = 10 Indirizzo_di_invio.FontSize = 10 End Sub 'Se ci si sposta col mouse nel campo o etichetta Telefono ingrandisce il carattere delle scritte di entrambi Private Sub Telefono_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Telefono_Etichetta.FontSize = 10 Telefono.FontSize = 10 End Sub 'Se ci si sposta col mouse nell' etichetta Corso frequentato ingrandisce la scritta dell'etichetta, 'ne toglie il corsivo e la tramuta in grassetto Private Sub Corso_Frequentato_Etichetta_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Corso_Frequentato_Etichetta.FontSize = 10 Etichetta_CPAT.FontItalic = False Etichetta_MAT.FontItalic = False Etichetta_CPAT.FontBold = True Etichetta_MAT.FontBold = True End Sub 'Se ci si sposta col mouse nel pulsante opzionale CPAT trasforma la scritta in corsivo Private Sub Opzione_CPAT_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

Page 40: Ing sftw Fabiano Dalla Piazza

Ingegneria del software

40

Etichetta_CPAT.FontItalic = True End Sub 'Se ci si sposta col mouse nel pulsante opzionale MAT trasforma la scritta in corsivo Private Sub Opzione_MAT_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Etichetta_MAT.FontItalic = True End Sub 'Se ci si sposta col mouse nel campo o etichetta Edizione ingrandisce il carattere delle scritte di entrambi Private Sub Edizione_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Edizione_Etichetta.FontSize = 10 Edizione.FontSize = 10 End Sub 'Se ci si sposta col mouse nel campo o etichetta Note ingrandisce il carattere delle scritte di entrambi Private Sub Note_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Note_Etichetta.FontSize = 10 Note_Etichetta.FontSize = 10 End Sub 'Se si clicca con il mouse sul pulsante opzionale CPAT cambia il colore della scritta Private Sub Opzione_CPAT_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Etichetta_CPAT.ForeColor = COLORE_ROSSO End Sub 'Se si clicca con il mouse sul pulsante opzionale MAT cambia il colore della scritta Private Sub Opzione_MAT_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Etichetta_MAT.ForeColor = COLORE_ROSSO End Sub 'Al rilascio del tasto del mouse dopo il click sul pulsante opzionale CPAT cambia il colore della scritta Private Sub Opzione_CPAT_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) Etichetta_CPAT.ForeColor = COLORE_BLU End Sub 'Al rilascio del tasto del mouse dopo il click sul pulsante opzionale MAT cambia il colore della scritta Private Sub Opzione_MAT_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) Etichetta_MAT.ForeColor = COLORE_BLU End Sub 'Se si entra nella casella di E-Mail vengono definiti colore e 'grandezza scritta dell'etichetta e grandezza scritta nella casella Private Sub E_Mail_Enter() E_Mail_Etichetta.ForeColor = COLORE_NERO E_Mail_Etichetta.FontSize = 8 E_Mail.FontSize = 8 End Sub 'Se si clicca nella casella di E-Mail vengono definiti colore e 'grandezza scritta dell'etichetta e grandezza scritta nella casella Private Sub E_Mail_Click() E_Mail_Etichetta.ForeColor = COLORE_NERO E_Mail_Etichetta.FontSize = 8 E_Mail.FontSize = 8 End Sub 'Se si esce dalla casella di E-Mail vengono definiti colore e 'grandezza scritta dell'etichetta e grandezza scritta nella casella Private Sub E_Mail_Exit(Cancel As Integer) E_Mail_Etichetta.ForeColor = COLORE_BIANCO E_Mail_Etichetta.FontSize = 8 E_Mail.FontSize = 8 End Sub 'Se si entra nella casella di Nome vengono definiti colore e 'grandezza scritta dell'etichetta e grandezza scritta nella casella

Page 41: Ing sftw Fabiano Dalla Piazza

Ingegneria del software

41

Private Sub Nome_Enter() Nome_Etichetta.ForeColor = COLORE_NERO Nome_Etichetta.FontSize = 8 Nome.FontSize = 8 End Sub 'Se si clicca nella casella di Nome vengono definiti colore e 'grandezza scritta dell'etichetta e grandezza scritta nella casella Private Sub Nome_Click() Nome_Etichetta.ForeColor = COLORE_NERO Nome_Etichetta.FontSize = 8 Nome.FontSize = 8 End Sub 'Se si esce dalla casella di Nome vengono definiti colore e 'grandezza scrittadell'etichetta e grandezza scritta nella casella Private Sub Nome_Exit(Cancel As Integer) Nome_Etichetta.ForeColor = COLORE_BIANCO Nome_Etichetta.FontSize = 8 Nome.FontSize = 8 End Sub 'Se si entra nella casella di Cognome vengono definiti colore e 'grandezza scritta dell'etichetta e grandezza scritta nella casella Private Sub Cognome_Enter() Cognome_Etichetta.ForeColor = COLORE_NERO Cognome_Etichetta.FontSize = 8 Cognome.FontSize = 8 End Sub 'Se si clicca nella casella di Cognome vengono definiti colore e 'grandezza scritta dell'etichetta e grandezza scritta nella casella Private Sub Cognome_Click() Cognome_Etichetta.ForeColor = COLORE_NERO Cognome_Etichetta.FontSize = 8 Cognome.FontSize = 8 End Sub 'Se si esce dalla casella di Cognome vengono definiti colore e 'grandezza scritta dell'etichetta e grandezza scritta nella casella Private Sub Cognome_Exit(Cancel As Integer) Cognome_Etichetta.ForeColor = COLORE_BIANCO Cognome_Etichetta.FontSize = 8 Cognome.FontSize = 8 End Sub 'Se si entra nella casella di Indirizzo di residenza vengono definiti colore e 'grandezza scritta dell'etichetta e grandezza scritta nella casella Private Sub Indirizzo_di_residenza_Enter() Indirizzo_di_residenza_Etichetta.ForeColor = COLORE_NERO Indirizzo_di_residenza_Etichetta.FontSize = 8 Indirizzo_di_residenza.FontSize = 8 End Sub 'Se si clicca nella casella di Indirizzo di residenza vengono definiti colore e 'grandezza scritta dell'etichetta e grandezza scritta nella casella Private Sub Indirizzo_di_residenza_Click() Indirizzo_di_residenza_Etichetta.ForeColor = COLORE_NERO Indirizzo_di_residenza_Etichetta.FontSize = 8 Indirizzo_di_residenza.FontSize = 8 End Sub 'Se si esce dalla casella di Indirizzo di residenza vengono definiti colore e 'grandezza scritta dell'etichetta e grandezza scritta nella casella Private Sub Indirizzo_di_residenza_Exit(Cancel As Integer) Indirizzo_di_residenza_Etichetta.ForeColor = COLORE_BIANCO Indirizzo_di_residenza_Etichetta.FontSize = 8 Indirizzo_di_residenza.FontSize = 8 End Sub

Page 42: Ing sftw Fabiano Dalla Piazza

Ingegneria del software

42

'Se si entra nella casella di Indirizzo di invio vengono definiti colore e 'grandezza scritta dell'etichetta e grandezza scritta nella casella Private Sub Indirizzo_di_invio_Enter() Indirizzo_di_invio_Etichetta.ForeColor = COLORE_NERO Indirizzo_di_invio_Etichetta.FontSize = 8 Indirizzo_di_invio.FontSize = 8 End Sub 'Se si clicca nella casella di Indirizzo di invio vengono definiti colore e 'grandezza scritta dell'etichetta e grandezza scritta nella casella Private Sub Indirizzo_di_invio_Click() Indirizzo_di_invio_Etichetta.ForeColor = COLORE_NERO Indirizzo_di_invio_Etichetta.FontSize = 8 Indirizzo_di_invio.FontSize = 8 End Sub 'Se si esce dalla casella di Indirizzo di invio vengono definiti colore e 'grandezza scritta dell'etichetta e grandezza scritta nella casella Private Sub Indirizzo_di_invio_Exit(Cancel As Integer) Indirizzo_di_invio_Etichetta.ForeColor = COLORE_BIANCO Indirizzo_di_invio_Etichetta.FontSize = 8 Indirizzo_di_invio.FontSize = 8 End Sub 'Se si entra nella casella di Telefono vengono definiti colore e 'grandezza scritta dell'etichetta e grandezza scritta nella casella Private Sub Telefono_Enter() Telefono_Etichetta.ForeColor = COLORE_NERO Telefono_Etichetta.FontSize = 8 Telefono.FontSize = 8 End Sub 'Se si clicca nella casella di Telefono vengono definiti colore e 'grandezza scritta dell'etichetta e grandezza scritta nella casella Private Sub Telefono_Click() Telefono_Etichetta.ForeColor = COLORE_NERO Telefono_Etichetta.FontSize = 8 Telefono.FontSize = 8 End Sub 'Se si esce dalla casella di Telefono vengono definiti colore e 'grandezza scritta dell'etichetta e grandezza scritta nella casella Private Sub Telefono_Exit(Cancel As Integer) Telefono_Etichetta.ForeColor = COLORE_BIANCO Telefono_Etichetta.FontSize = 8 Telefono.FontSize = 8 End Sub 'Se si entra nella casella di Edizione vengono definiti colore e 'grandezza scritta dell'etichetta e grandezza scritta nella casella Private Sub Edizione_Enter() Edizione_Etichetta.ForeColor = COLORE_NERO Edizione_Etichetta.FontSize = 8 Edizione.FontSize = 8 End Sub 'Se si clicca nella casella di Edizione vengono definiti colore e 'grandezza scritta dell'etichetta e grandezza scritta nella casella Private Sub Edizione_Click() Edizione_Etichetta.ForeColor = COLORE_NERO Edizione_Etichetta.FontSize = 8 Edizione.FontSize = 8 End Sub 'Se si esce dalla casella di Edizione vengono definiti colore e 'grandezza scritta dell'etichetta egrandezza scritta nella casella

Page 43: Ing sftw Fabiano Dalla Piazza

Ingegneria del software

43

Private Sub Edizione_Exit(Cancel As Integer) Edizione_Etichetta.ForeColor = COLORE_BIANCO Edizione_Etichetta.FontSize = 8 Edizione.FontSize = 8 End Sub 'Se si entra nella casella di Note vengono definiti colore e 'grandezza scritta dell'etichetta e grandezza scritta nella casella Private Sub Note_Enter() Note_Etichetta.ForeColor = COLORE_NERO Note_Etichetta.FontSize = 8 Note.FontSize = 8 End Sub 'Se si clicca nella casella di Note vengono definiti colore e 'grandezza scritta dell'etichetta e grandezza scritta nella casella Private Sub Note_Click() Note_Etichetta.ForeColor = COLORE_NERO Note_Etichetta.FontSize = 8 Note.FontSize = 8 End Sub 'Se si esce dalla casella di Note vengono definiti colore e 'grandezza scritta dell'etichetta e grandezza scritta nella casella Private Sub Note_Exit(Cancel As Integer) Note_Etichetta.ForeColor = COLORE_BIANCO Note_Etichetta.FontSize = 8 Note.FontSize = 8 End Sub 'Se si clicca sul pulsante Invio Private Sub Comando_Invio_Click() 'Se c'è un errore salta all'etichetta Err_Comando_Invio_Click e ne esegue il codice On Error GoTo Err_Comando_Invio_Click 'Variabili stringa Dim stLinkCriteria As String Dim stDocName As String 'Si sposta nell'ultimo record registrato DoCmd.GoToRecord , , acLast 'Memorizza il nome e cognome del potenziale sottoscrittore STRINGA_NOME = Me![Nome].Value STRINGA_COGNOME = Me![Cognome].Value 'Applica il filtro:verifica che i nomi compaiano nell'archivio corsisti DoCmd.ApplyFilter "", "[Corsisti].[NOME]" = STRINGA_NOME And "[Corsisti].[COGNOME]" = STRINGA_COGNOME 'Memorizza il nome della maschera che verrà aperta stDocName = "Richiedi_Password" 'Usa un criterio che associa questa maschera con la prossima che verrà aperta 'in base al cognome stLinkCriteria = "[Cognome]=" & "'" & Me![Cognome] & "'" 'Apre la maschera Richiedi password con i criteri esposti DoCmd.OpenForm stDocName, , , stLinkCriteria 'Procedura di uscita Exit_Comando_Invio_Click: Exit Sub 'Procedura di intercettazione dell'errore:se il sistema invia il messaggio '"L'azione ApplyFilter è stata annullata."si è verificata una violazione del vincolo 'di integrità dovuta alla mancanza dei dati utente nell'archivio corsisti autorizzati. 'Quindi salta all'etichetta Utente_Non_Aut,segnala l'inabilitazione e chiude tutto. 'Se l'errore è di un altro tipo,esegue la normale procedura di errore ed esce Err_Comando_Invio_Click: If Err.Description = "L'azione ApplyFilter è stata annullata." Then GoTo Utente_Non_Aut End If

Page 44: Ing sftw Fabiano Dalla Piazza

Ingegneria del software

44

MsgBox Err.Description Resume Exit_Comando_Invio_Click Utente_Non_Aut: MsgBox "UTENTE NON AUTORIZZATO" DoCmd.Quit End Sub 'Se si clicca con il mouse sul pulsante Invio cambia il colore della scritta Private Sub Comando_Invio_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Comando_Invio.ForeColor = COLORE_ROSSO End Sub 'Al rilascio del tasto del mouse dopo il click sul pulsante Invio cambia il colore della scritta Private Sub Comando_Invio_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) Comando_Invio.ForeColor = COLORE_BLU End Sub 'Se ci si sposta con il mouse sopra il pulsante Invio cambia il colore e lo spessore della scritta Private Sub Comando_Invio_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Comando_Invio.ForeColor = COLORE_NERO Comando_Invio.FontBold = True End Sub 'Se si clicca con il mouse sul pulsante Chiudi cambia il colore della scritta Private Sub Comando_Chiudi_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Comando_Chiudi.ForeColor = COLORE_ROSSO End Sub 'Al rilascio del tasto del mouse dopo il click sul pulsante Chiudi cambia il colore della scritta Private Sub Comando_Chiudi_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) Comando_Chiudi.ForeColor = COLORE_BLU End Sub 'Se ci si sposta con il mouse sopra il pulsante Chiudi cambia il colore e lo spessore della scritta Private Sub Comando_Chiudi_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Comando_Chiudi.ForeColor = COLORE_NERO Comando_Chiudi.FontBold = True End Sub 'Se si clicca sul corpo della maschera cambia il colore Private Sub Corpo_Click() Corpo.BackColor = COLORE_DEFAULT Etichetta_Seleziona.BackColor = COLORE_DEFAULT End Sub 'Se si clicca sul pulsante Chiudi Private Sub Comando_Chiudi_Click() On Error GoTo Err_Comando_Chiudi_Click 'Chiude la maschera DoCmd.Close 'Procedura di uscita Exit_Comando_Chiudi_Click: Exit Sub 'Procedura di errore:visualizza l'errore(description) ed esce Err_Comando_Chiudi_Click: MsgBox Err.Description Resume Exit_Comando_Chiudi_Click End Sub Figura 23

Page 45: Ing sftw Fabiano Dalla Piazza

Ingegneria del software

45

MASCHERA RICHIEDI PASSWORD

Figura 24

CODICE MASHERA RICHIEDI PASSW ORD Option Compare Database '============================================================================================= 'CODICE MASCHERA RICHIEDI PASSWORD '============================================================================================= 'Tutte le Sub eseguite sono procedure interne 'Le costanti usate sono STRINGA_PASSWORD e le COSTANTI per i colori 'All' apertura del file viene eseguito il codice Form_Open che in automatico chiama la machera principale Private Sub Form_Open(Cancel As Integer) 'All'apertura imposta il colore dello sfondo maschera,la grandezza dell'etichetta 'informativa,il colore della scritta del comando Invia password e il colore 'dell'etichetta del campo password Corpo.BackColor = COLORE_BIANCO Etichetta_Inserisci_Password.FontSize = 14 Comando_Invia_Password.ForeColor = COLORE_ROSSO Password_Etichetta.ForeColor = COLORE_NERO End Sub 'Se si clicca sul pulsante Invia password Private Sub Comando_Invia_Password_Click() 'Se c'è un errore salta all'etichetta Err_Comando_Invia_Password_Click e ne esegue il codice On Error GoTo Err_Comando_Invia_Password_Click 'Chiude il Form Iscritti DoCmd.Close acForm, "Iscritti" 'Variabili stringa Dim stDocName As String Dim stLinkCriteria As String 'Memorizza la password inserita(successivamente verrà richiesto di ripeterla e se 'dal confronto emerge una diversità la password non verrà acettata finché non 'coinciderà con la prima digitzione,cioé questa) STRINGA_PASSWORD = Me![Password].Value 'Memorizza il nome della maschera che verrà aperta stDocName = "Password"

Page 46: Ing sftw Fabiano Dalla Piazza

Ingegneria del software

46

'Usa un criterio che associa questa maschera con la prossima che verrà aperta 'in base al cognome stLinkCriteria = "[Cognome]=" & "'" & Me![Cognome] & "'" 'Apre la maschera Richiedi password con i criteri esposti DoCmd.OpenForm stDocName, , , stLinkCriteria 'Procedura di uscita Exit_Comando_Invia_Password_Click: Exit Sub 'Procedura di errore:visualizza l'errore(description) ed esce Err_Comando_Invia_Password_Click: MsgBox Err.Description Resume Exit_Comando_Invia_Password_Click End Sub 'Se ci si sposta col mouse nel campo o etichetta Password ingrandisce il carattere delle scritte di entrambi Private Sub Password_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Password_Etichetta.FontSize = 10 Password.FontSize = 10 End Sub 'Se si entra nella casella di Password vengono definiti colore e 'grandezza scritta dell'etichetta e grandezza scritta nella casella Private Sub Password_Enter() Password_Etichetta.ForeColor = COLORE_NERO Password_Etichetta.FontSize = 8 Password.FontSize = 8 End Sub 'Se si clicca nella casella di Password vengono definiti colore e 'grandezza scritta dell'etichetta e grandezza scritta nella casella Private Sub Password_Click() Password_Etichetta.ForeColor = COLORE_NERO Password_Etichetta.FontSize = 8 Password.FontSize = 8 End Sub 'Se si esce dalla casella di Password vengono definiti colore e 'grandezza scritta dell'etichetta e grandezza scritta nella casella Private Sub Password_Exit(Cancel As Integer) Password_Etichetta.ForeColor = COLORE_BIANCO Password_Etichetta.FontSize = 8 Password.FontSize = 8 End Sub 'Se si clicca con il mouse sul pulsante Invia password cambia il colore della scritta Private Sub Comando_Invia_Password_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Comando_Invia_Password.ForeColor = COLORE_ROSSO End Sub 'Al rilascio del tasto del mouse dopo il click sul pulsante Invia password cambia il colore della scritta Private Sub Comando_Invia_Password_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) Comando_Invia_Password.ForeColor = COLORE_BLU End Sub 'Se ci si sposta con il mouse sopra il pulsante Invia password cambia il colore e lo spessore della scritta Private Sub Comando_Invia_Password_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Comando_Invia_Password.ForeColor = COLORE_NERO Comando_Invia_Password.FontBold = True End Sub 'Se si clicca sul corpo della maschera cambia il colore Private Sub Corpo_Click() Corpo.BackColor = COLORE_DEFAULT End Sub Figura 25

Page 47: Ing sftw Fabiano Dalla Piazza

Ingegneria del software

47

MASCHERA PASSWO RD

Figura 26

CODICE MASCHERA PASSWOR D Option Compare Database '============================================================================================= 'CODICE MASCHERA PASSWORD '============================================================================================= 'Tutte le Sub eseguite sono procedure interne 'Le costanti usate sono STRINGA_PASSWORD e le COSTANTI dei colori 'All' apertura del file viene eseguito il codice Form_Open che in automatico chiama la machera principale Private Sub Form_Open(Cancel As Integer) 'All'apertura imposta il colore dello sfondo maschera,la grandezza dell'etichetta 'informativa,il colore della scritta del comando Torna al sito(Identificativo Chiudi) e il colore 'dell'etichetta del campo password Corpo.BackColor = COLORE_BIANCO Etichetta_Ripeti_Password.FontSize = 14 Comando_Chiudi.ForeColor = COLORE_ROSSO Password_Etichetta.ForeColor = COLORE_NERO End Sub 'Se si clicca sul pulsante Torna al sito(Id.Chiudi) Private Sub Comando_Chiudi_Click() 'Se c'è un errore salta all'etichetta Err_Comando_Chiudi_Click e ne esegue il codice On Error GoTo Err_Comando_Chiudi_Click 'Se la password ridigitata non coincide con quella memorizzata precedentemente 'viene inviato un messaggio all'utente,il codice salta al comando 'di uscita e ripete la procedura finchè le due non si eguagliano. 'In caso contrario la password viene confermata e ne viene data comunicazione If Me![Password].Value = STRINGA_PASSWORD Then MsgBox "OK.PASSWORD CONFERMATA" Else MsgBox "LA PASSWORD DIGITATA NON E' IDENTICA ALLA PRECEDENTE.RIPROVARE" GoTo Exit_Comando_Chiudi_Click End If

Page 48: Ing sftw Fabiano Dalla Piazza

Ingegneria del software

48

'Messaggio all'utente MsgBox "REGISTRAZIONE ESEGUITA CON SUCCESSO" 'Chiude il Form Richiedi Password DoCmd.Close acForm, "Richiedi_Password" 'Chiude questo Form DoCmd.Close 'Chiude tutto il file DoCmd.Quit 'Procedura di uscita Exit_Comando_Chiudi_Click: Exit Sub 'Procedura di errore:visualizza l'errore(description) ed esce Err_Comando_Chiudi_Click: MsgBox Err.Description Resume Exit_Comando_Chiudi_Click End Sub 'Se ci si sposta col mouse nel campo o etichetta Password ingrandisce il carattere delle scritte di entrambi Private Sub Password_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Password_Etichetta.FontSize = 10 Password.FontSize = 10 End Sub 'Se si entra nella casella di Password vengono definiti colore e 'grandezza scritta dell'etichetta e grandezza scritta nella casella Private Sub Password_Enter() Password_Etichetta.ForeColor = COLORE_NERO Password_Etichetta.FontSize = 8 Password.FontSize = 8 End Sub 'Se si clicca nella casella di Password vengono definiti colore e 'grandezza scritta dell'etichetta e grandezza scritta nella casella Private Sub Password_Click() Password_Etichetta.ForeColor = COLORE_NERO Password_Etichetta.FontSize = 8 Password.FontSize = 8 End Sub 'Se si esce dalla casella di Password vengono definiti colore e 'grandezza scritta dell'etichetta e grandezza scritta nella casella Private Sub Password_Exit(Cancel As Integer) Password_Etichetta.ForeColor = COLORE_BIANCO Password_Etichetta.FontSize = 8 Password.FontSize = 8 End Sub 'Se si clicca con il mouse sul pulsante Torna al sito cambia(Id.Chiudi) il colore della scritta Private Sub Comando_Chiudi_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Comando_Chiudi.ForeColor = COLORE_ROSSO End Sub 'Al rilascio del tasto del mouse dopo il click sul pulsante Torna al sito(Id.Chiudi) 'cambia il colore della scritta Private Sub Comando_Chiudi_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) Comando_Chiudi.ForeColor = COLORE_BLU End Sub 'Se ci si sposta con il mouse sopra il pulsante Torna al sito(Id.Chiudi) 'cambia il colore e lo spessore della scritta Private Sub Comando_Chiudi_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Comando_Chiudi.ForeColor = COLORE_NERO Comando_Chiudi.FontBold = True End Sub

Page 49: Ing sftw Fabiano Dalla Piazza

Ingegneria del software

49

'Se si clicca sul corpo della maschera cambia il colore Private Sub Corpo_Click() Corpo.BackColor = COLORE_DEFAULT End Sub Figura 27

Segue il codice di modulo1(fig.28) dichiarante costanti e variabili impiegati nel programma. CODICE MODULO1 Option Compare Database '================================================== ' 'ASSEGNAZIONE DEI VALORI DELLE COSTANTI E VARIABILI ' '================================================== 'Definizione dei colori assegnati Public Const COLORE_NERO As Long = 0 Public Const COLORE_BIANCO As Long = 16777215 Public Const COLORE_DEFAULT As Long = -2147483633 Public Const COLORE_CELESTE As Long = 16776960 Public Const COLORE_ROSSO As Long = 255 Public Const COLORE_BLU As Long = 16711680 'Definizione di form attivo Public FORM_ATTIVO As Boolean 'Definizione di una stringa per memorizzazione il nome e verificare che sia un corsista Public STRINGA_NOME As String 'Definizione di una stringa per memorizzare il cognome e verificare che sia un corsista Public STRINGA_COGNOME As String 'Definizione di una stringa per memorizzare la password e verificare che sia ripetuta correttamente Public STRINGA_PASSWORD As String Figura 28

d) Form di iscrizione in .asp: per garantire l’accesso al form di iscrizione anche agli utenti che non dispongano di MS Access,rendendo l’applicazione maggiormente integrabile,sono state predisposte due pagine in .asp.Uno schema è riportato in fig.29.Una volta chiusa la connessione nella prima pagina “Alumni.asp”,viene caricata la seconda pagina “Psswrd2.asp”.

Page 50: Ing sftw Fabiano Dalla Piazza

Ingegneria del software

50

CONNESSIONE AL DATABASE CONTROLLO

US

CIT

A C

ON

M

ES

SA

GG

IO N

ON

A

UT

OR

IZZ

AT

O

NON OK

OK

SPOSTAMENTO ALL’ULTIMO

RECORD AGGIUNTA RECORD

CH

IUS

UR

A

CO

NN

ES

SIO

NE

CONNESSIONE AL DATABASE CONTROLLO

US

CIT

A C

ON

M

ES

SA

GG

IO N

ON

A

UT

OR

IZZ

AT

ONON OK

OK

SPOSTAMENTO AL RECORD UTENTE

AGGIUNTA PASSWORD AL

RECORD

CH

IUS

UR

A

CO

NN

ES

SIO

NE

CO

N

ME

SS

AG

GIO

PAGINA Alumni.asp

PAGINA Psswrd2.asp

Carica pagina Psswrd2.asp

Figura 29

INTERFACCIA ALUMNI.ASP

Iscriviti all'associazione AT Alumni

E-Mail*:

Nome*:

Cognome*:

Riempi i campi sottostanti

Page 51: Ing sftw Fabiano Dalla Piazza

Ingegneria del software

51

Indirizzo di residenza*:

Indirizzo per invio corrispondenza*:

Telefono*:

Corso frequentato*:

CPAT=Corso di Perfezionamento in

Assistive Technology

MAT=Master in Assistive Technology

CPAT

MAT

Seleziona quale corso hai frequentato

Edizione*:

Inserisci l’anno accademico dell’edizione frequentata

Note:

Invia

Figura 30

In figura 30 è raffigurato l’interfaccia della pagina “Alumni.asp”,mentre nella successiva fig.31 ne viene mostrato il codice.

CODICE ALUMNI.ASP

<!-- #include file="adovbs.inc" --> <% Option Explicit Dim objConn 'ogget to creato per la connessione Dim rsIscritti 'recor set per la tabella Iscritti Dim rsCorsi_Master 'recor dset per la tabella Corsi_Master

Page 52: Ing sftw Fabiano Dalla Piazza

Ingegneria del software

52

Dim rsCorsisti 'recor dset per la tabella Corsisti Dim strDatab 'perco rso database strDatab="/data/Iscritti.mdb" 'asseg nazione percorso %> <html> <head> <meta http-equiv= "Content-Type" content= "text/html; charset=windows-1252" > <meta name= "GENERATOR" content= "Microsoft FrontPage 4.0" > <meta name= "ProgId" content= "FrontPage.Editor.Document" > <title> Nuova pagina 1 </title> </head> <body> <p>&nbsp; </p> <form method= "POST" action= "psswrd2.asp" name= "FrontPage_Form1" enctype= "hidden" onsubmit= "return FrontPage_Form1_Validator(this)" > <p><b><font SIZE= "5" >Iscriviti all'associazione AT Alumni </font></b></p> <div align= "left" > <table border= "1" width= "237" height= "113" > <tr> <td width= "237" height= "32" >E-Mail*:&nbsp;&nbsp;&nbsp;&nbsp; <!--webbot bot="Validation" S-Display-Name="E_Mail" S-Data-Type="String" B-Allow-Letters="TRUE" B-Allow-Digits="TR UE" S-Allow-Other-Chars="@" B-Value-Required="TRUE" I-Maximum-Length= "50" --> <input type= "text" name="E_Mail" size= "20" maxlength= "50" ></td> </tr> <tr> <td width= "237" height= "32" >Nome*:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <!--webbot bot="Validation" S-Display-Name="Nome" S- Data-Type="String" B-Allow-Letters="TRUE" B-Value-Required=" TRUE" I-Maximum-Length="40" --> <input type= "text" name= "Nome" size= "20" maxlength= "40" ></td> </tr> <tr> <td width= "237" height= "33" >Cognome*: <!--webbot bot="Validation" S-Display-Name="Cognome" S-Data-Type="Str ing" B-Allow-Letters="TRUE" B-Value-Required="TRUE" I-Maximum-Length= "40" --> <input type= "text" name="Cognome" size= "20" maxlength= "40" ></td> </tr> </table> </div> <p>&nbsp; </p> <p><b><font SIZE= "5" >Riempi i campi sottostanti </font></b></p> <div align= "left" > <table border= "1" width= "636" height= "580" > <tr> <td width= "256" height= "128" >Indirizzo di residenza*:&nbsp; </td> <td width= "364" height= "128" ><!--webbot bot="Validation" S-Display-Name="Indirizzo_di_residenza" S -Data-Type="String" B-Allow-Letters="TRUE" B-Allow-Digits="TR UE" B-Value-Required="TRUE" I-Maximum-Length="60" --> <textarea rows= "6" name= "Indirizzo_di_residenza" cols= "35" ></textarea></td> </tr> <tr> <td width= "256" height= "125" >Indirizzo per invio corrispondenza*:&nbsp; </td> <td width= "364" height= "125" ><!--webbot bot="Validation" S-Display-Name="Indirizzo_di_invio" S-Dat a-Type="String" B-Allow-Letters="TRUE" B-Allow-Digits="TR UE" B-Value-Required="TRUE" I-Maximum-Length="60" --> <textarea rows= "6" name= "Indirizzo_di_invio" cols= "35" ></textarea></td> </tr> <tr> <td width= "256" height= "32" >Telefono*:&nbsp; td> <td width= "364" height= "32" ><!--webbot bot="Validation" S-Display-Name="Telefono" S-Data-Type="St ring" B-Allow-Digits="TRUE" B-Value-Required="TRUE" I-Minimum-Length= "9" I-Maximum-Length="14" --> <input type= "text" name= "Telefono" size= "20" maxlength= "14" ></td>

Page 53: Ing sftw Fabiano Dalla Piazza

Ingegneria del software

53

</tr> <tr> <td width= "256" height= "76" > <p>Corso frequentato*: </p> <p>CPAT=Corso di Perfezionamento in&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </p> <p>Assistive Technology </p> <p>MAT=Master in Assistive Technology&nbsp;&nbsp;&nbsp ;&nbsp; </p> <p>&nbsp; </p> <p>&nbsp; </td> <td width= "364" height= "76" ><input type= "radio" value= "1" checked name= "R1" >CPAT <p>&nbsp; </p> <p>&nbsp; </p> <p><input type= "radio" name= "R1" value= "2" >MAT</p> <p><i> Seleziona quale corso hai frequentato </i></td> </tr> <tr> <td width= "256" height= "9" ><p>Edizione*:&nbsp </p> <p>&nbsp; p> <p>&nbsp; </td> <td width= "364" height= "9" ><!--webbot bot="Validation" S-Display-Name="Edizione" S-Data-Type="In teger" S-Number-Separators="." B-Value-Required= "TRUE" I-Minimum-Length="4" I-Maximum-Length="4" S-Validation-Constraint="Greater than or equal to" S-Validation-Value="2002" S-Validation-Constraint="Less than or equ al to" S-Validation-Value="2008" --> <input type= "text" name= "Edizione" size= "12" maxlength= "4" > <p><i> Inserisci l’anno accademico dell’edizione frequentata </i></td> </tr> <tr> <td width= "256" height= "108" >Note:&nbsp; </td> <td width= "364" height= "108" ><textarea rows= "5" name= "Note" cols= "35" ></textarea></td> </tr> <% set objConn=Server.CreateObject("ADODB.Connection ") 'connette il database e objConn.Open "DBQ="& Server.MapPath(strDatab) &"; Driver=(Microsoft Access Driver (*.mdb));DriverId=25;FIL=MS Access; " 'crea dei recordset delle tabelle set rsIscritti=Server.CreateObject("ADODB.Records et") set rsCorsi_Master=Server.CreateObject("ADODB.Rec ordset") set rsCorsisti=Server.CreateObject("ADODB.Records et") set rsIscritti=objConn.OpenRecordset("Iscritti",d bOpenTable) set rsCorsi_Master=objConn.OpenRecodset("Corsi_Ma ster",dbopenTable) set rsCorsisti=objConn.OpenRecodset("Corsisti",db openTable) On Error Resume Next 'se c'è errore esce Do while not rsCorsisti.EOF If rsCorsisti.Fields(“Nome”)=[Nome] AND rsCo rsisti.Fields(“Cognome”)=Cognome Then 'controlla autorizzazione rsIscritti.MoveLast 'sposta il puntatore nell'ultimo rsCorsi_Master.MoveLast 'record che diventa il corrente, rsIscritti.AddNew 'lo aggiunge e rsCorsi_Master.AddNew rsIscritti.Fields(“E-Mail”)=[E_Mail] rsIscritti.Fields(“Nome”)=[Nome] rsIscritti.Fields(“Cognome”)=[Cognome ] rsIscritti.Fields(“Indirizzo_di_resid enza”)=[Indirizzo_di_residenza] rsIscritti.Fields(“Indirizzo_di_invio ”)=[Indirizzo_di_invio] rsIscritti.Fields(“Telefono”)=[Telefo no] rsIscritti.Fields(“Note”)=[Note]

Page 54: Ing sftw Fabiano Dalla Piazza

Ingegneria del software

54

rsCorsi_Master.Fields(“Tipo”)=[R1] rsCorsi_Master.Fields(“Edizione”)=[Ed izione] rsIscritti.Update 'aggiorna rsCorsi_Master.Update Else MsgBox "UTENTE NON AUTORIZZATO" 'se non autorizzato esce con Exit 'messaggio di errore End If Loop rsCorsisti.Close 'chiude i recordset e rsIscritti.Close rsCorsi_Master.Close objConn.Close 'l'oggetto di connessione %> <tr> <td width= "636" height= "30" colspan= "2" >&nbsp; <input type= "submit" value= "Invia" name= "B1" ></td> </tr> </table> </div> <p>&nbsp; </p> <p>&nbsp; </p> <p>&nbsp; </p> </form> </body> </html>

Figura 31

INTERFACCIA PSSWRD2.ASP

Inserisci una password di massimo 9 caratteri

Password*:

Invia

Torna al sito: http://www.ing.units.it/bca

Figura 32

CODICE PSSWRD2.ASP <!-- #include file="adovbs.inc" --> <% Option Explicit Dim SEL_NOME 'st ringa nome Dim SEL_COGNOME 'st ringa cognome Dim rs 're cordset per la tabella Iscritti Dim objConn 'og getto per la connessione Dim strDatab 'pe rcorso

Page 55: Ing sftw Fabiano Dalla Piazza

Ingegneria del software

55

strDatab="/data/Iscritti.mdb" 'as segnazione percorso %> <html> <head> <meta http-equiv= "Content-Type" content= "text/html; charset=windows-1252" > <meta name= "GENERATOR" content= "Microsoft FrontPage 4.0" > <meta name= "ProgId" content= "FrontPage.Editor.Document" > <title> Nuova pagina 1 </title> </head> <body> <p><b><font size= "5" >Inserisci una password di massimo 9 caratteri </font></b></p> <p>Password*:&nbsp; <!--webbot bot="Validation" S-Display-Name="Passwor d" S-Data-Type="String" B-Allow-Letters="TRUE" B-All ow-Digits="TRUE" B-Value-Required="TRUE" I-Maximum-Length="9" --> <input type= "password" name= "Password" size= "20" maxlength= "9" ></p> <% SEL_NOME=Request.Form("Nome") 'SEL_NOME diventa il nome assegnatogli SEL_COGNOME=Request.Form("Cognome") 'SEL_COGNOME diventa il cognome assegnatogli set objConn=Server.CreateObject("ADODB.Connection ") 'crea una connessione con il database objConn.Open "DBQ="& Server.MapPath(strDatab) &"; Driver=(Microsoft Access Driver (*.mdb));DriverId=25;FIL=MS Access; " set rs=Server.CreateObject("ADODB.Recordset") 'crea un recorset per la tabella Iscritti set rs=objConn.OpenRecordset("Iscritti",dbOpenTab le) On Error Resume Next 'se c'è un errore Do while not rs.EOF 'cerca il nome tra i corsisti If rs.Fields(“Nome”)=SEL_NOME AND rs.Fields( “Cognome”)=SEL_COGNOME Then 'se lo trova esce dal ciclo con il puntatore a quel record Exit Do Else MsgBox "NON AUTORIZZATO" 'altrimenti esce con messaggio informativo Exit End If Loop Rs.Fields(“Password”)=[Password] rs.Update 'aggiorna la tabella MsgBox "REGISTRAZIONE ESEGUITA CON SUCCESSO" rs.Close 'chiude il recorset e la connessione objConn.Close %> <p>&nbsp; <input type= "submit" value= "Invia" name= "Invio_password" ></p> <p>Torna al sito: <a href= "http://www.ing.units.it/bca" >http://www.ing.units.it/bca </a></p> </form> </body> </html> Figura 33

Page 56: Ing sftw Fabiano Dalla Piazza

Ingegneria del software

56

Nella figura 32 a pagina 54 è raffigurato l’interfaccia della pagina “Psswrd2.asp”,mentre nella superiore fig.33 ne viene mostrato il codice.

6. Conclusioni

Una progettazione di applicativi simili per volumi di dati superiori renderebbe sconsigliabile la scelta di impostare come chiave primaria i cognomi dell’archivio iscritti.Tuttavia anche qualora si verificasse un caso di omonimia del cognome,la tabella non permetterebbe equivoci sugli attributi,dal momento che espleta esclusivamente funzione di verifica autorizzazione e non contiene altri attributi.In questo modo l’applicazione guadagna un’ulteriore grado di affidabilità,non consentendo registrazioni di utenti con un cognome corrispondente anche in caso di errore filtraggio,per violazione dell’integrità referenziale. Vi è una correttezza generale del file realizzato in MS Access e dei collegamenti,verificata con alcuni test. La robustezza e l’usabilità sono garantite grazie alle funzionalità e interfacce fornite da MS Access per il file in .mdb e MS Frontpage per i file in .asp. L’applicazione dovrà poi subire delle operazioni di manutenzione allo scopo di adattarla o eventualmente correggerla qualora emergano alcuni errori non riscontrati in un primo tempo. Naturalmente è anche migliorabile con una serie di interventi.Per esempio sul codice “Visual Basic” delle maschere,un buon intervento sarebbe creare delle procedure(Sub) di eventi comuni(es.MouseMove) da applicare poi ai vari oggetti.Usare una procedura diversa per ogni oggetto anche per un evento simile determina un aumento delle linee di codice e un’exploit meno performante. Un altra miglioria potrebbe interessare la gestione del database automatizzandolo attraverso delle procedure(ad es. ApriSolaLettura) costruite in pagine .asp o addirittura in .aspx con ASP.NET(linguaggio più Object Oriented e meno ibrido). Al fine di garantire l’integrità del codice si potrebbe trasformare il file .mdb in .mde e utilizzare questo come database,conservando l’originale .mdb solo per futuri lavori di manutenzione.