Ing sftw Fabiano Dalla Piazza
Upcoming SlideShare
Loading in...5
×
 

Ing sftw Fabiano Dalla Piazza

on

  • 392 views

 

Statistics

Views

Total Views
392
Views on SlideShare
392
Embed Views
0

Actions

Likes
0
Downloads
0
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Ing sftw Fabiano Dalla Piazza Ing sftw Fabiano Dalla Piazza Document Transcript

  • Ingegneria del softwareINTERVENTI DI MANUTENZIONEE PROGETTO DI UN MODULO DI REGISTRAZIONE AL SITO www.ing.units.it/bca A CURA DI:Fabiano Dalla Piazza 1
  • Ingegneria del software INDICE GENERALE1. DEFINIZIONE DEL PROBLEMA 32. CONTESTO E FATTIBILITA’ 33. 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 74. 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 115.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 546.CONCLUSIONI 57 2
  • Ingegneria del software 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 1AT Alumni AssociationAT 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 unMaster: il network dei suoi studenti.L’Associazione vuole offrire a tutti gli iscritti opportunità di aggiornamento e di crescita professionale: incoraggia ilnetworking, 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à dicondividere esperienze, informazioni e conoscenze, fondamentali per il continuo aggiornamento della propriaprofessionalità.- Attraverso le attività di formazione organizzate dall’Associazione, gli iscritti hanno l’occasione di perfezionare leproprie competenze sui principali temi dell’Assistive Technology. 3
  • Ingegneria del softwareLe 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 privilegiatodi 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 inAssistive TechnologyL’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 allassociazione AT AlumniE-MAIL * * Invalid EmailNome * *Cognome * *Riempi i campi sottostantiIndirizzo di residenza * * 4
  • Ingegneria del softwareIndirizzo per invio corrispondenza* *Telefono * *Corso Frequentato *CPAT: Corso di Perfezionamento CPATin Assistive TechnologyMAT: Master in Assistive MATTechnology * Seleziona quale corso hai frequentatoEdizione * * Inserire l’anno accademico dell’edizione frequentataNote Invia Figura 3 5
  • Ingegneria del software 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 6
  • Ingegneria del software SITO WEB AT ALUMNI FORM ARCHIVIO ISCRIZIONE # # L E UTENTE LEGENDA: Collegamento Risposta Richiesta dati Invio password o messaggio utente non autorizzato Figura 4Uno schema delle varie funzioni fatto mediante diagramma di flusso è riportatoa pagina seguente(fig.5).In esso è indicata la sequenza delle operazioni.Laconvenzione adottata piuttosto diffusa stabilisce di indicare con rettangoli gliagenti esterni,con cerchi funzioni o processi,con doppia linea parallela gliarchivi o basi di dati,con dei rombi le decisioni condizionate(per es.nel caso“inserisci Nome”,se dal controllo emergono dei valori incoerenti oscorretti,uscita rossa “NO” e ridigitazione Nome da parte dell’utente;in casocontrario uscita blu “OK” e prosegui con inserisci Cognome). 7
  • Ingegneria del software ACCESSO ACCESSO AL PAGINA AT ACCESSO AL SITO COMMUNITY FORM UTENTE SITO WEB PAGINA FORM AT COMM OK INSERISCI E- NO MAIL NO NO NO INSERISCI INDIRIZZO INSERISCI INSERISCI INDIRIZZO COGNOME NOME E-MAIL RESIDENZA COGNOME NOME RESIDENZA OK OK OK INSERISCI NO INDIRIZZOOK INVIO CORRISPONDEN ZA OK OK OK INDIRIZZO INSERISCI CORSO INVIO INSERISCI CORSO FREQUENTA INSERISCI TELEFONO EDIZIONE CORRISPON TELEFONO FREQUENTATO EDIZIONE TO DENZA NO NO NO COMUNICAZIONE INSERISCI ISCRIZIONE NOTE INVIA SI SI CHIEDIMESSAGGIO DI AUTORIZZAZIO CHIEDI NOME ERRORE CONFERMA GENERA NE INVIA CONFERMA ESISTENTE CONTROLLO NOTE ISCRIZIONE PASSWORD PASSWORD NELL’ARCHIVIO NO NO Figura 5 8
  • Ingegneria del software4. 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_filemenu.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. INDIRIZZO INDIRIZZO ID_COR RESIDENZA INVIO SOM TELEFONO COGNOME COGNOME NOTE NOME (1,1) (0,1) E-MAIL ISCRITTI APPARTENENZA CORSISTI ID (1,N) PASSWORD NOME PARTECIPAZIONE (1,N) ID CORSO TIPO MASTER EDIZIONE Figura 6 9
  • Ingegneria del software TABELLA CORSI MASTER 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 CORSISTI COGNOME STRINGA ALFANUMERICA <=40 CARATTERI;CAMPO OBBLIGATORIO NOME STRINGA ALFANUMERICA <=40 CARATTERI;CAMPO OBBLIGATORIO TABELLA ISCRITTI ID_ISC CONTATORE A CHIAVE PRIMARIA;CAMPO AGGIORNATO AUTOMATICAMENTE E-MAIL STRINGA ALFANUMERICA <=50 CARATTERI CONTENENTE ‘@’;CAMPO OBBLIGATORIO NOME STRINGA ALFANUMERICA <=40 CARATTERI;CAMPO OBBLIGATORIO COGNOME STRINGA ALFANUMERICA <=40 CARATTERI;CAMPO OBBLIGATORIO INDIRIZZO DI RESIDENZA STRINGA ALFANUMERICA <=60 CARATTERI;CAMPO OBBLIGATORIO INDIRIZZO DI INVIO STRINGA ALFANUMERICA <=60 CARATTERI;CAMPO OBBLIGATORIO TELEFONO STRINGA NUMERICA >=9 E <=14 CARATTERI;CAMPO OBBLIGATORIO NOTE STRINGA ALFANUMERICA DI MAX 120 CARATTERI;CAMPO OBBLIGATORIO PASSWORD STRINGA ALFANUMERICA DI MAX 9 CARATTERI;CAMPO OBBLIGATORIO ID_CORSOM STRINGA NUMERICA DI COLEGAMENTO TABELLA CORSI MASTER Figura 7In figura 7 compaiono le caratteristiche dei campi nelle tabelle,mentre a paginaseguente(fig.8)è riportato lo schema di collegamento fra le tabelle.L’iscrizionedi un’utente può avvenire tramite confronto e relativo accertamentodell’appartenenza all’archivio corsisti,poiché ha partecipato ad un corsomaster.Ogni riga individua un campo della tabella,mentre i campi in rossorappresentano le chiavi primarie. 10
  • Ingegneria del software Figura 8 N OM E ID _ IS C ID _ M A S CO GN O M E E -M A IL T IP O N O M E E D IZ IO N E CO G N OM E IN D IR IZ Z O D I R E S ID E N Z A IN D IR IZ Z O D I IN V IO N O TE PASSW O RD ID _ C O R S O Md. Progettazione delle maschere:nella figura sotto(fig.9) è riportato loschema utilizzato per le maschere. modalità inserimento PRINCIPALE ADMIN utente accedi al record dove utente non autorizzato:esci amministratore registrarsi AUTORIZZATI CORSISTI ISCRITTI leggi o modifica i dati leggi ,modifica o inserisci i dati utente utente autorizzato iscritti inserisci dei corsisti RICHIEDI PASSWORD inserisci la password messaggio iscrizione riuscita Password confermata:invia Password confermata:invia confermata:ripeti confermata:ripeti Password non PASSWORD conferma la password Figura 9 11
  • Ingegneria del software 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 COSTANTIIl codice relativo alle maschere è riportato in testa al codice sorgente(parte 5). 12
  • Ingegneria del software5. 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. 13
  • Ingegneria del software <!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=#006699background=menu_file/color_background.jpg><DIV id=Layer1style="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><Atitle="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=faqhref="http://www.ing.units.it/bca/contenuti/06-07/faq06-07.htm"target=contenuti><STRONG>FAQ</STRONG></A>| <A title=sponsorhref="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=Eventihref="http://www.ing.units.it/bca/contenuti/06-07/eventi06-07.htm"target=contenuti><STRONG>News</STRONG></A>| <A title=Contattihref="http://www.ing.units.it/bca/contenuti/06-07/contatti06-07.htm"target=contenuti><STRONG>Contatti</STRONG></A>| <Atitle="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=Layer2style="Z-INDEX: 11; LEFT: 5px; WIDTH: 281px; POSITION: absolute; TOP: 7px; HEIGHT: 70px"><IMGheight=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=Layer3style="Z-INDEX: 3; LEFT: 5px; WIDTH: 271px; POSITION: absolute; TOP: 85px; HEIGHT: 58px"><IMG 14
  • Ingegneria del software 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 lutenza 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> 15
  • Ingegneria del software <o:_AdHocReviewCycleID dt:dt="float">918374387</o:_AdHocReviewCycleID> <o:_NewReviewCycle dt:dt="string"></o:_NewReviewCycle> <o:_EmailSubject dt:dt="string">argomento per tesina desame</o:_EmailSubject> <o:_AuthorEmail dt:dt="string">SCOTTI@UNIV.TRIESTE.IT</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 16
  • Ingegneria del software {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><spanstyle=font-family:Verdana>&nbsp;è l’associazione aperta agli studenti ed exstudenti 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 AlumniAssociation è quello di <strong>valorizzare e tenere unito il più grandepatrimonio di<span style="mso-spacerun: yes"> </span>un Master: il network dei 17
  • Ingegneria del softwaresuoi studenti. </strong><o:p></o:p></span></p><p><span style=font-family:Verdana>L’Associazione vuole offrire a tutti gliiscritti opportunità di aggiornamento e di crescita professionale: incoraggiail networking, favorisce lo sviluppo delle relazioni, organizza attività diformazione continua. <o:p></o:p></span></p><p class=MsoNormal><span style=font-family:Verdana>- Attraverso&nbsp;il <strong>networkinge le numerose occasioni di incontro</strong>, tutti gli associati hanno lapossibilità di condividere esperienze, informazioni e conoscenze, fondamentaliper 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 hannol’occasione di perfezionare le proprie competenze sui principali temidell’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 riposizionarsisul mercato del lavoro; attraverso azioni di <strong>networking e diffusionemirata di curricula</strong>, l’Associazione diviene uno strumento privilegiatodi 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 perla 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 inAssistive Technology e ai due Corsi di Perfezionamento in Assistive Technology</span></strong><b><spanstyle=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 18
  • Ingegneria del softwareAT Alumni AssociationAT 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 unMaster: il network dei suoi studenti.L’Associazione vuole offrire a tutti gli iscritti opportunità di aggiornamento e di crescita professionale: incoraggia ilnetworking, 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à dicondividere esperienze, informazioni e conoscenze, fondamentali per il continuo aggiornamento della propriaprofessionalità.- Attraverso le attività di formazione organizzate dall’Associazione, gli iscritti hanno l’occasione di perfezionare leproprie 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 privilegiatodi 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 inAssistive TechnologyL’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”. 19
  • Ingegneria del software MASCHERA PRINCIPALE Figura 14 CODICE MASCHERA PRINCIPALEOption Compare Database=====================================================================================CODICE MASCHERA PRINCIPALE=====================================================================================Tutte le Sub eseguite sono procedure interneLe costanti usate sono FORM_ATTIVO e le COSTANTI per i coloriAll apertura del file viene eseguito il codice Form_Open che in automatico chiama la machera principalePrivate 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_ROSSOEnd SubSe si clicca con il mouse sul pulsante Iscriviti cambia il colore della scrittaPrivate Sub Comando_Apri_Iscritti_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Comando_Apri_Iscritti.ForeColor = COLORE_ROSSOEnd SubSe ci si sposta con il mouse sopra il pulsante Iscriviti cambia il colore e lo spessore della scrittaPrivate 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 = TrueEnd Sub 20
  • Ingegneria del softwareAl rilascio del tasto del mouse dopo il click sul pulsante Iscriviti cambia il colore della scrittaPrivate Sub Comando_Apri_Iscritti_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) Comando_Apri_Iscritti.ForeColor = COLORE_BLUEnd SubSe si clicca con il mouse sul pulsante Esci cambia il colore della scrittaPrivate Sub Comando_Chiudi_Principale_MouseDown(Button As Integer, Shift As Integer, X As Single, Y AsSingle) Comando_Chiudi_Principale.ForeColor = COLORE_ROSSOEnd SubSe ci si sposta con il mouse sopra il pulsante Esci cambia il colore e lo spessore della scrittaPrivate Sub Comando_Chiudi_Principale_MouseMove(Button As Integer, Shift As Integer, X As Single, Y AsSingle) Comando_Chiudi_Principale.ForeColor = COLORE_NERO Comando_Chiudi_Principale.FontBold = TrueEnd SubAl rilascio del tasto del mouse dopo il click sul pulsante Esci cambia il colore della scrittaPrivate Sub Comando_Chiudi_Principale_MouseUp(Button As Integer, Shift As Integer, X As Single, Y AsSingle) Comando_Chiudi_Principale.ForeColor = COLORE_BLUEnd SubSe si clicca con il mouse sul pulsante Amministratore cambia il colore della scrittaPrivate Sub Comando_Apri_Admin_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Comando_Apri_Admin.ForeColor = COLORE_ROSSOEnd SubSe ci si sposta con il mouse sopra il pulsante Amministratore cambia il colore e lo spessore della scrittaPrivate 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 = TrueEnd SubAl rilascio del tasto del mouse dopo il click sul pulsante Amministratore cambia il colore della scrittaPrivate Sub Comando_Apri_Admin_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) Comando_Apri_Admin.ForeColor = COLORE_BLUEnd SubSe si clicca sul corpo della maschera cambia il colorePrivate Sub Corpo_Click() Corpo.BackColor = COLORE_DEFAULTEnd SubSe si clicca sul pulsante IscrivitiPrivate Sub Comando_Apri_Iscritti_Click()Se cè un errore salta all etichetta Err_Comando_Apri_Iscritti_Click e ne esegue il codiceOn Error GoTo Err_Comando_Apri_Iscritti_ClickVa fino allultimo record registrato DoCmd.GoToRecord , , acLastApre la maschera Iscritti in modalità aggiungi record DoCmd.OpenForm "Iscritti", acNormal, "", "", acAdd, acNormalProcedura di uscitaExit_Comando_Apri_Iscritti_Click: Exit SubProcedura di errore:visualizza lerrore(description) ed esceErr_Comando_Apri_Iscritti_Click: MsgBox Err.Description Resume Exit_Comando_Apri_Iscritti_ClickEnd Sub 21
  • Ingegneria del softwareSe si clicca sul pulsante EsciPrivate Sub Comando_Chiudi_Principale_Click()Se cè un errore salta all etichetta Err_Comando_Chiudi_Principale_Click e ne esegue il codiceOn Error GoTo Err_Comando_Chiudi_Principale_Click Chiude la maschera attuale DoCmd.Close Esce dal file DoCmd.QuitProcedura di uscitaExit_Comando_Chiudi_Principale_Click: Exit SubProcedura di errore:visualizza lerrore(description) ed esceErr_Comando_Chiudi_Principale_Click: MsgBox Err.Description Resume Exit_Comando_Chiudi_Principale_ClickEnd SubSe si clicca sul comando AmministratorePrivate Sub Comando_Apri_Admin_Click()Se cè un errore salta all etichetta Err_Comando_Apri_Admin e ne esegue il codiceOn 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, , , stLinkCriteriaProcedura di uscitaExit_Comando_Apri_Admin_Click: Exit SubProcedura di errore:visualizza lerrore(description) ed esceErr_Comando_Apri_Admin_Click: MsgBox Err.Description Resume Exit_Comando_Apri_Admin_ClickEnd Sub Figura 15 22
  • Ingegneria del software MASCHERA ADMIN Figura 16 CODICE MASCHERA ADMINOption Compare Database============================================================================================================CODICE MASCHERA ADMIN============================================================================================================Tutte le Sub eseguite sono procedure interneLe costanti utilizzate sono quelle per i coloriAll apertura del file viene eseguito il codice Form_Open che in automatico chiama la machera principalePrivate Sub Form_Open(Cancel As Integer) Allapertura 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 23
  • Ingegneria del software 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_ROSSOEnd Sub=======================================CORSISTI=====================================Se si clicca con il mouse sul pulsante Sola lettura cambia il colore della scrittaPrivate Sub Comando_Lettura_Corsisti_MouseDown(Button As Integer, Shift As Integer, X As Single, Y AsSingle) Comando_Lettura_Corsisti.ForeColor = COLORE_ROSSOEnd SubAl rilascio del tasto del mouse dopo il click sul pulsante Sola lettura cambia il colore della scrittaPrivate Sub Comando_Lettura_Corsisti_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) Comando_Lettura_Corsisti.ForeColor = COLORE_BLUEnd SubSe ci si sposta con il mouse sopra il pulsante Sola Lettura cambia il colore e lo spessore della scrittaPrivate Sub Comando_Lettura_Corsisti_MouseMove(Button As Integer, Shift As Integer, X As Single, Y AsSingle) Comando_Lettura_Corsisti.ForeColor = COLORE_NERO Comando_Lettura_Corsisti.FontBold = TrueEnd SubSe si clicca con il mouse sul pulsante Inserisci cambia il colore della scrittaPrivate Sub Comando_Inserisci_Corsisti_MouseDown(Button As Integer, Shift As Integer, X As Single, Y AsSingle) Comando_Inserisci_Corsisti.ForeColor = COLORE_ROSSOEnd SubAl rilascio del tasto del mouse dopo il click sul pulsante Inserisci cambia il colore della scrittaPrivate Sub Comando_Inserisci_Corsisti_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) Comando_Inserisci_Corsisti.ForeColor = COLORE_BLUEnd SubSe ci si sposta con il mouse sopra il pulsante Inserisci cambia il colore e lo spessore della scrittaPrivate Sub Comando_Inserisci_Corsisti_MouseMove(Button As Integer, Shift As Integer, X As Single, Y AsSingle) Comando_Inserisci_Corsisti.ForeColor = COLORE_NERO Comando_Inserisci_Corsisti.FontBold = TrueEnd SubSe si clicca con il mouse sul pulsante Modifica cambia il colore della scrittaPrivate Sub Comando_Modifica_Corsisti_MouseDown(Button As Integer, Shift As Integer, X As Single, Y AsSingle) Comando_Modifica_Corsisti.ForeColor = COLORE_ROSSOEnd SubAl rilascio del tasto del mouse dopo il click sul pulsante Modifica cambia il colore della scrittaPrivate Sub Comando_Modifica_Corsisti_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) Comando_Modifica_Corsisti.ForeColor = COLORE_BLUEnd SubSe ci si sposta con il mouse sopra il pulsante Modifica cambia il colore e lo spessore della scrittaPrivate Sub Comando_Modifica_Corsisti_MouseMove(Button As Integer, Shift As Integer, X As Single, Y AsSingle) Comando_Modifica_Corsisti.ForeColor = COLORE_NERO Comando_Modifica_Corsisti.FontBold = TrueEnd Sub 24
  • Ingegneria del software===========================================ISCRITTI===================================Se si clicca con il mouse sul pulsante Sola lettura cambia il colore della scrittaPrivate Sub Comando_Lettura_Iscritti_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Comando_Lettura_Iscritti.ForeColor = COLORE_ROSSOEnd SubAl rilascio del tasto del mouse dopo il click sul pulsante Sola lettura cambia il colore della scrittaPrivate Sub Comando_Lettura_Iscritti_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) Comando_Lettura_Iscritti.ForeColor = COLORE_BLUEnd SubSe ci si sposta con il mouse sopra il pulsante Sola Lettura cambia il colore e lo spessore della scrittaPrivate 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 = TrueEnd SubSe si clicca con il mouse sul pulsante Modifica cambia il colore della scrittaPrivate Sub Comando_Modifica_Iscritti_MouseDown(Button As Integer, Shift As Integer, X As Single, Y AsSingle) Comando_Modifica_Iscritti.ForeColor = COLORE_ROSSOEnd SubAl rilascio del tasto del mouse dopo il click sul pulsante Modifica cambia il colore della scrittaPrivate Sub Comando_Modifica_Iscritti_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) Comando_Modifica_Iscritti.ForeColor = COLORE_BLUEnd SubSe ci si sposta con il mouse sopra il pulsante Modifica cambia il colore e lo spessore della scrittaPrivate Sub Comando_Modifica_Iscritti_MouseMove(Button As Integer, Shift As Integer, X As Single, Y AsSingle) Comando_Modifica_Iscritti.ForeColor = COLORE_NERO Comando_Modifica_Iscritti.FontBold = TrueEnd SubSe si clicca con il mouse sul pulsante Torna alla maschera principale cambia il colore della scrittaPrivate Sub Comando_Torna_Principale_MouseDown(Button As Integer, Shift As Integer, X As Single, Y AsSingle) Comando_Torna_Principale.ForeColor = COLORE_ROSSOEnd SubAl rilascio del tasto del mouse dopo il click sul pulsante Torna alla maschera principalecambia il colore della scrittaPrivate Sub Comando_Torna_Principale_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) Comando_Torna_Principale.ForeColor = COLORE_BLUEnd SubSe ci si sposta con il mouse sopra il pulsante Torna alla maschera principalecambia il colore e lo spessore della scrittaPrivate Sub Comando_Torna_Principale_MouseMove(Button As Integer, Shift As Integer, X As Single, Y AsSingle) Comando_Torna_Principale.ForeColor = COLORE_NERO Comando_Torna_Principale.FontBold = TrueEnd SubSe si clicca sul corpo della maschera cambia il colorePrivate Sub Corpo_Click() Corpo.BackColor = COLORE_DEFAULTEnd SubSe si clicca sul pulsante Inserisci di corsisti:se cè un errore esegue la sua proceduraPrivate Sub Comando_Inserisci_Corsisti_Click()On Error GoTo Err_Comando_Inserisci_Corsisti_Click Variabili stringhe Dim stDocName As String Dim stLinkCriteria As String 25
  • Ingegneria del software Apre la maschera corsisti collegandola tramite il cognome stDocName = "Corsisti" stLinkCriteria = "[Cognome]=" & "" & Me![Cognome] & "" DoCmd.OpenForm stDocName, , , stLinkCriteriaProcedura di uscitaExit_Comando_Inserisci_Corsisti_Click: Exit SubProcedura di errore:visualizza lerrore(description) ed esceErr_Comando_Inserisci_Corsisti_Click: MsgBox Err.Description Resume Exit_Comando_Inserisci_Corsisti_ClickEnd SubSe si clicca sul pulsante Torna alla maschera principale di corsisti:se cè un errore esegue la sua proceduraPrivate Sub Comando_Torna_Principale_Click()On Error GoTo Err_Comando_Torna_Principale_Click Chiude la maschera DoCmd.CloseProcedura di uscitaExit_Comando_Torna_Principale_Click: Exit SubProcedura di errore:visualizza lerrore(description) ed esceErr_Comando_Torna_Principale_Click: MsgBox Err.Description Resume Exit_Comando_Torna_Principale_ClickEnd SubSe si clicca sul pulsante Modifica di corsisti:se cè un errore esegue la sua proceduraPrivate 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, , acMenuVer70Procedura di uscitaExit_Comando_Modifica_Corsisti_Click: Exit SubProcedura di errore:visualizza lerrore(description) ed esceErr_Comando_Modifica_Corsisti_Click: MsgBox Err.Description Resume Exit_Comando_Modifica_Corsisti_ClickEnd SubSe si clicca sul pulsante Modifica di iscritti:se cè un errore esegue la sua proceduraPrivate 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, , acMenuVer70Procedura di uscitaExit_Comando_Modifica_Iscritti_Click: Exit SubProcedura di errore:visualizza lerrore(description) ed esceErr_Comando_Modifica_Iscritti_Click: MsgBox Err.Description Resume Exit_Comando_Modifica_Iscritti_ClickEnd SubSe si clicca sul pulsante Sola lettura di corsisti:se cè un errore esegue la sua proceduraPrivate Sub Comando_Lettura_Corsisti_Click() 26
  • Ingegneria del software 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 lerrore(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 lerrore(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 CORSISTIOption Compare Database 27
  • Ingegneria del software=========================================================================================CODICE MASCHERA CORSISTI=========================================================================================Tutte le Sub eseguite sono procedure interneNon sono utilizzate costanti stringhe o booleaneAll apertura del file viene eseguito il codice Form_Open che in automatico chiama la machera principalePrivate 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 delletichetta 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_ROSSOEnd SubSe ci si sposta col mouse nel campo o etichetta Nome ingrandisce il carattere delle scritte di entrambiPrivate Sub Nome_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Nome_Etichetta.FontSize = 10 Nome.FontSize = 10End SubSe ci si sposta col mouse nel campo o etichetta Cognome ingrandisce il carattere delle scritte di entrambiPrivate Sub Cognome_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Cognome_Etichetta.FontSize = 10 Cognome.FontSize = 10End SubSe si entra nella casella di Nome vengono definiti colore egrandezza scritta delletichetta e grandezza scritta nella casellaPrivate Sub Nome_Enter() Nome_Etichetta.ForeColor = COLORE_NERO Nome_Etichetta.FontSize = 8 Nome.FontSize = 8End SubSe si clicca nella casella di Nome vengono definiti colore egrandezza scritta delletichetta e grandezza scritta nella casellaPrivate Sub Nome_Click() Nome_Etichetta.ForeColor = COLORE_NERO Nome_Etichetta.FontSize = 8 Nome.FontSize = 8End SubSe si esce dalla casella di Nome vengono definiti colore egrandezza scrittadelletichetta e grandezza scritta nella casellaPrivate Sub Nome_Exit(Cancel As Integer) Nome_Etichetta.ForeColor = COLORE_BIANCO Nome_Etichetta.FontSize = 8 Nome.FontSize = 8End SubSe si entra nella casella di Cognome vengono definiti colore egrandezza scritta delletichetta e grandezza scritta nella casellaPrivate Sub Cognome_Enter() Cognome_Etichetta.ForeColor = COLORE_NERO Cognome_Etichetta.FontSize = 8 Cognome.FontSize = 8 28
  • Ingegneria del softwareEnd SubSe si clicca nella casella di Cognome vengono definiti colore egrandezza scritta delletichetta e grandezza scritta nella casellaPrivate Sub Cognome_Click() Cognome_Etichetta.ForeColor = COLORE_NERO Cognome_Etichetta.FontSize = 8 Cognome.FontSize = 8End SubSe si esce dalla casella di Cognome vengono definiti colore egrandezza scritta delletichetta e grandezza scritta nella casellaPrivate Sub Cognome_Exit(Cancel As Integer) Cognome_Etichetta.ForeColor = COLORE_BIANCO Cognome_Etichetta.FontSize = 8 Cognome.FontSize = 8End SubSe si clicca con il mouse sul pulsante Torna alla maschera principalecambia il colore della scrittaPrivate Sub Comando_Torna_Principale_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Comando_Torna_Principale.ForeColor = COLORE_ROSSOEnd SubAl rilascio del tasto del mouse dopo il click sul pulsante Torna allamaschera principale cambia il colore della scrittaPrivate Sub Comando_Torna_Principale_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) Comando_Torna_Principale.ForeColor = COLORE_BLUEnd SubSe ci si sposta con il mouse sopra il pulsante Torna alla maschera principalecambia il colore e lo spessore della scrittaPrivate 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 = TrueEnd SubSe si clicca con il mouse sul pulsante Torna alla maschera amministratore cambia il colore della scrittaPrivate Sub Comando_Torna_Admin_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Comando_Torna_Admin.ForeColor = COLORE_ROSSOEnd SubAl rilascio del tasto del mouse dopo il click sul pulsanteTorna alla maschera amministratore cambia il colore della scrittaPrivate Sub Comando_Torna_Admin_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) Comando_Torna_Admin.ForeColor = COLORE_BLUEnd SubSe ci si sposta con il mouse sopra il pulsante Torna allamaschera amministratore cambia il colore e lo spessore della scrittaPrivate 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 = TrueEnd SubSe si clicca sul corpo della maschera cambia il colorePrivate Sub Corpo_Click() Corpo.BackColor = COLORE_DEFAULTEnd SubSe si clicca sul pulsante Torna alla maschera principale:se cè un errore esegue la sua proceduraPrivate Sub Comando_Torna_Principale_Click()On Error GoTo Err_Comando_Torna_Principale_Click Chiude la maschera e la precedente DoCmd.Close 29
  • Ingegneria del software DoCmd.Close acForm, "Admin"Procedura di uscitaExit_Comando_Torna_Principale_Click: Exit SubProcedura di errore:visualizza lerrore(description) ed esceErr_Comando_Torna_Principale_Click: MsgBox Err.Description Resume Exit_Comando_Torna_Principale_ClickEnd SubSe si clicca sul pulsante Torna alla maschera amministratore:se cè un errore esegue la sua proceduraPrivate Sub Comando_Torna_Admin_Click()On Error GoTo Err_Comando_Torna_Admin_Click Chiude la maschera DoCmd.CloseProcedura di erroreExit_Comando_Torna_Admin_Click: Exit SubProcedura di errore:visualizza lerrore(description) ed esceErr_Comando_Torna_Admin_Click: MsgBox Err.Description Resume Exit_Comando_Torna_Admin_ClickEnd Sub Figura 19Nelle seguenti fig.20 e fig.21 sono riportati rispettivamente la maschera e icodici della maschera “Autorizzati”.Infine le ultime tre maschere in sequenza:“Iscritti”(fig.22)con suo relativo codice(fig.23),”Richiedi_Password”(fig.24) erelativo codice(fig.25) e “Password”(fig.26) con codice visualizzato in fig.27. 30
  • Ingegneria del software MASCHERA AUTORIZZATI Figura 20 CODICE MASCHERA AUTORIZZATIOption Compare Database==========================================================================================CODICE MASCHERA AUTORIZZATI==========================================================================================Tutte le Sub eseguite sono procedure interneLe costanti usate sono le COSTANTI per i coloriAll apertura del file viene eseguito il codice Form_Open che in automatico chiama la machera principalePrivate Sub Form_Open(Cancel As Integer) 31
  • Ingegneria del software 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_NEROEnd SubSe ci si sposta col mouse nel campo o etichetta E-Mail ingrandisce il carattere delle scritte di entrambiPrivate Sub E_Mail_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) E_Mail_Etichetta.FontSize = 10 E_Mail.FontSize = 10End SubSe ci si sposta col mouse nel campo o etichetta Nome ingrandisce il carattere delle scritte di entrambiPrivate Sub Nome_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Nome_Etichetta.FontSize = 10 Nome.FontSize = 10End SubSe ci si sposta col mouse nel campo o etichetta Cognome ingrandisce il carattere delle scritte di entrambiPrivate Sub Cognome_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Cognome_Etichetta.FontSize = 10 Cognome.FontSize = 10End SubSe ci si sposta col mouse nel campo o etichetta Indirizzo di residenza ingrandisceil carattere delle scritte di entrambiPrivate 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 = 10End SubSe ci si sposta col mouse nel campo o etichetta Indirizzo di invio ingrandisceil carattere delle scritte di entrambiPrivate 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 = 10End SubSe si clicca con il mouse sul pulsante opzionale CPAT cambia il colore della scrittaPrivate Sub Opzione_CPAT_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Etichetta_CPAT.ForeColor = COLORE_ROSSOEnd SubSe si clicca con il mouse sul pulsante opzionale MAT cambia il colore della scrittaPrivate Sub Opzione_MAT_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Etichetta_MAT.ForeColor = COLORE_ROSSOEnd SubAl rilascio del tasto del mouse dopo il click sul pulsante opzionale CPAT cambia il colore della scrittaPrivate Sub Opzione_CPAT_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) Etichetta_CPAT.ForeColor = COLORE_BLUEnd SubAl rilascio del tasto del mouse dopo il click sul pulsante opzionale MAT cambia il colore della scrittaPrivate Sub Opzione_MAT_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) 32
  • Ingegneria del software Etichetta_MAT.ForeColor = COLORE_BLUEnd SubSe ci si sposta col mouse nel campo o etichetta Telefono ingrandisce il carattere delle scritte di entrambiPrivate Sub Telefono_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Telefono_Etichetta.FontSize = 10 Telefono.FontSize = 10End SubSe ci si sposta col mouse nell etichetta Corso frequentato ingrandisce la scritta delletichetta,ne toglie il corsivo e la tramuta in grassettoPrivate 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 = TrueEnd SubSe ci si sposta col mouse nel pulsante opzionale CPAT trasforma la scritta in corsivoPrivate Sub Opzione_CPAT_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Etichetta_CPAT.FontItalic = TrueEnd SubSe ci si sposta col mouse nel pulsante opzionale MAT trasforma la scritta in corsivoPrivate Sub Opzione_MAT_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Etichetta_MAT.FontItalic = TrueEnd SubSe ci si sposta col mouse nel campo o etichetta Edizione ingrandisce il carattere delle scritte di entrambiPrivate Sub Edizione_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Edizione_Etichetta.FontSize = 10 Edizione.FontSize = 10End SubSe si entra nella casella di E-Mail vengono definiti colore egrandezza scritta delletichetta e grandezza scritta nella casellaPrivate Sub E_Mail_Enter() E_Mail_Etichetta.ForeColor = COLORE_NERO E_Mail_Etichetta.FontSize = 8 E_Mail.FontSize = 8End SubSe si clicca nella casella di E-Mail vengono definiti colore egrandezza scritta delletichetta e grandezza scritta nella casellaPrivate Sub E_Mail_Click() E_Mail_Etichetta.ForeColor = COLORE_NERO E_Mail_Etichetta.FontSize = 8 E_Mail.FontSize = 8End SubSe si esce dalla casella di E-Mail vengono definiti colore egrandezza scritta delletichetta e grandezza scritta nella casellaPrivate Sub E_Mail_Exit(Cancel As Integer) E_Mail_Etichetta.ForeColor = COLORE_BIANCO E_Mail_Etichetta.FontSize = 8 E_Mail.FontSize = 8End SubSe si entra nella casella di Nome vengono definiti colore egrandezza scritta delletichetta e grandezza scritta nella casellaPrivate Sub Nome_Enter() Nome_Etichetta.ForeColor = COLORE_NERO Nome_Etichetta.FontSize = 8 Nome.FontSize = 8End Sub 33
  • Ingegneria del softwareSe si clicca nella casella di Nome vengono definiti colore egrandezza scritta delletichetta e grandezza scritta nella casellaPrivate Sub Nome_Click() Nome_Etichetta.ForeColor = COLORE_NERO Nome_Etichetta.FontSize = 8 Nome.FontSize = 8End SubSe si esce dalla casella di Nome vengono definiti colore egrandezza scrittadelletichetta e grandezza scritta nella casellaPrivate Sub Nome_Exit(Cancel As Integer) Nome_Etichetta.ForeColor = COLORE_BIANCO Nome_Etichetta.FontSize = 8 Nome.FontSize = 8End SubSe si entra nella casella di Cognome vengono definiti colore egrandezza scritta delletichetta e grandezza scritta nella casellaPrivate Sub Cognome_Enter() Cognome_Etichetta.ForeColor = COLORE_NERO Cognome_Etichetta.FontSize = 8 Cognome.FontSize = 8End SubSe si clicca nella casella di Cognome vengono definiti colore egrandezza scritta delletichetta e grandezza scritta nella casellaPrivate Sub Cognome_Click() Cognome_Etichetta.ForeColor = COLORE_NERO Cognome_Etichetta.FontSize = 8 Cognome.FontSize = 8End SubSe si esce dalla casella di Cognome vengono definiti colore egrandezza scritta delletichetta e grandezza scritta nella casellaPrivate Sub Cognome_Exit(Cancel As Integer) Cognome_Etichetta.ForeColor = COLORE_BIANCO Cognome_Etichetta.FontSize = 8 Cognome.FontSize = 8End SubSe si entra nella casella di Indirizzo di residenza vengono definiti colore egrandezza scritta delletichetta e grandezza scritta nella casellaPrivate Sub Indirizzo_di_residenza_Enter() Indirizzo_di_residenza_Etichetta.ForeColor = COLORE_NERO Indirizzo_di_residenza_Etichetta.FontSize = 8 Indirizzo_di_residenza.FontSize = 8End SubSe si clicca nella casella di Indirizzo di residenza vengono definiti colore egrandezza scritta delletichetta e grandezza scritta nella casellaPrivate Sub Indirizzo_di_residenza_Click() Indirizzo_di_residenza_Etichetta.ForeColor = COLORE_NERO Indirizzo_di_residenza_Etichetta.FontSize = 8 Indirizzo_di_residenza.FontSize = 8End SubSe si esce dalla casella di Indirizzo di residenza vengono definiti colore egrandezza scritta delletichetta e grandezza scritta nella casellaPrivate 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 = 8End SubSe si entra nella casella di Indirizzo di invio vengono definiti colore egrandezza scritta delletichetta e grandezza scritta nella casellaPrivate Sub Indirizzo_di_invio_Enter() Indirizzo_di_invio_Etichetta.ForeColor = COLORE_NERO Indirizzo_di_invio_Etichetta.FontSize = 8 34
  • Ingegneria del software Indirizzo_di_invio.FontSize = 8End SubSe si clicca nella casella di Indirizzo di invio vengono definiti colore egrandezza scritta delletichetta e grandezza scritta nella casellaPrivate Sub Indirizzo_di_invio_Click() Indirizzo_di_invio_Etichetta.ForeColor = COLORE_NERO Indirizzo_di_invio_Etichetta.FontSize = 8 Indirizzo_di_invio.FontSize = 8End SubSe si esce dalla casella di Indirizzo di invio vengono definiti colore egrandezza scritta delletichetta e grandezza scritta nella casellaPrivate 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 = 8End SubSe si entra nella casella di Telefono vengono definiti colore egrandezza scritta delletichetta e grandezza scritta nella casellaPrivate Sub Telefono_Enter() Telefono_Etichetta.ForeColor = COLORE_NERO Telefono_Etichetta.FontSize = 8 Telefono.FontSize = 8End SubSe si clicca nella casella di Telefono vengono definiti colore egrandezza scritta delletichetta e grandezza scritta nella casellaPrivate Sub Telefono_Click() Telefono_Etichetta.ForeColor = COLORE_NERO Telefono_Etichetta.FontSize = 8 Telefono.FontSize = 8End SubSe si esce dalla casella di Telefono vengono definiti colore egrandezza scritta delletichetta e grandezza scritta nella casellaPrivate Sub Telefono_Exit(Cancel As Integer) Telefono_Etichetta.ForeColor = COLORE_BIANCO Telefono_Etichetta.FontSize = 8 Telefono.FontSize = 8End SubSe si entra nella casella di Edizione vengono definiti colore egrandezza scritta delletichetta e grandezza scritta nella casellaPrivate Sub Edizione_Enter() Edizione_Etichetta.ForeColor = COLORE_NERO Edizione_Etichetta.FontSize = 8 Edizione.FontSize = 8End SubSe si clicca nella casella di Edizione vengono definiti colore egrandezza scritta delletichetta e grandezza scritta nella casellaPrivate Sub Edizione_Click() Edizione_Etichetta.ForeColor = COLORE_NERO Edizione_Etichetta.FontSize = 8 Edizione.FontSize = 8End SubSe si esce dalla casella di Edizione vengono definiti colore egrandezza scritta delletichetta egrandezza scritta nella casellaPrivate Sub Edizione_Exit(Cancel As Integer) Edizione_Etichetta.ForeColor = COLORE_BIANCO Edizione_Etichetta.FontSize = 8 Edizione.FontSize = 8End Sub 35
  • Ingegneria del softwareSe ci si sposta col mouse nel campo o etichetta Password ingrandisce il carattere delle scritte di entrambiPrivate Sub Password_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Password_Etichetta.FontSize = 10 Password.FontSize = 10End SubSe si entra nella casella di Password vengono definiti colore egrandezza scritta delletichetta e grandezza scritta nella casellaPrivate Sub Password_Enter() Password_Etichetta.ForeColor = COLORE_NERO Password_Etichetta.FontSize = 8 Password.FontSize = 8End SubSe si clicca nella casella di Password vengono definiti colore egrandezza scritta delletichetta e grandezza scritta nella casellaPrivate Sub Password_Click() Password_Etichetta.ForeColor = COLORE_NERO Password_Etichetta.FontSize = 8 Password.FontSize = 8End SubSe si esce dalla casella di Password vengono definiti colore egrandezza scritta delletichetta e grandezza scritta nella casellaPrivate Sub Password_Exit(Cancel As Integer) Password_Etichetta.ForeColor = COLORE_BIANCO Password_Etichetta.FontSize = 8 Password.FontSize = 8End SubSe si clicca sul corpo della maschera cambia il colorePrivate Sub Corpo_Click() Corpo.BackColor = COLORE_DEFAULT Etichetta_Seleziona.BackColor = COLORE_DEFAULTEnd SubSe si clicca con il mouse sul pulsante Torna alla maschera amministratorecambia il colore della scrittaPrivate Sub Comando_Torna_Admin_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Comando_Torna_Admin.ForeColor = COLORE_ROSSOEnd SubSe ci si sposta con il mouse sopra il pulsante Torna alla maschera amministratorecambia il colore e lo spessore della scrittaPrivate 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 = TrueEnd SubAl rilascio del tasto del mouse dopo il click sul pulsante Tornaalla maschera amministratore cambia il colore della scrittaPrivate Sub Comando_Torna_Admin_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) Comando_Torna_Admin.ForeColor = COLORE_BLUEnd SubSe si clicca con il mouse sul pulsante Torna alla maschera principale cambia il colore della scrittaPrivate Sub Comando_Torna_Principale_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Comando_Torna_Principale.ForeColor = COLORE_ROSSOEnd SubSe ci si sposta con il mouse sopra il pulsante Torna alla maschera principalecambia il colore e lo spessore della scrittaPrivate 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 = TrueEnd Sub 36
  • Ingegneria del softwareAl rilascio del tasto del mouse dopo il click sul pulsante Torna allamaschera principale cambia il colore della scrittaPrivate Sub Comando_Torna_Principale_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) Comando_Torna_Principale.ForeColor = COLORE_BLUEnd SubSe si clicca su Torna alla maschera amministratore:se cè errore esegue la sua proceduraPrivate Sub Comando_Torna_Admin_Click()On Error GoTo Err_Comando_Torna_Admin_Click Chiude la maschera DoCmd.CloseProcedura di uscitaExit_Comando_Torna_Admin_Click: Exit SubProcedura di errore:visualizza lerrore(description) ed esceErr_Comando_Torna_Admin_Click: MsgBox Err.Description Resume Exit_Comando_Torna_Admin_ClickEnd SubSe si clicca su Torna alla maschera principale:se cè errore esegue la sua proceduraPrivate 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 uscitaExit_Comando_Torna_Principale_Click: Exit SubProcedura di errore:visualizza lerrore(description) ed esceErr_Comando_Torna_Principale_Click: MsgBox Err.Description Resume Exit_Comando_Torna_Principale_ClickEnd Sub Figura 21 37
  • Ingegneria del software MASCHERA ISCRITTI Figura 22 CODICE MASCHERA ISCRITTIOption Compare Database===============================================================================================CODICE MASCHERA ISCRITTI===============================================================================================Tutte le Sub eseguite sono procedure interneLe costanti usate sono STRINGA_NOME e STRINGA_COGNOMEAll apertura del file viene eseguito il codice Form_Open che in automatico chiama la machera principalePrivate Sub Form_Open(Cancel As Integer) 38
  • Ingegneria del software Allapertura 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_NEROEnd SubSe ci si sposta col mouse nel campo o etichetta E-Mail ingrandisce il carattere delle scritte di entrambiPrivate Sub E_Mail_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) E_Mail_Etichetta.FontSize = 10 E_Mail.FontSize = 10End SubSe ci si sposta col mouse nel campo o etichetta Nome ingrandisce il carattere delle scritte di entrambiPrivate Sub Nome_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Nome_Etichetta.FontSize = 10 Nome.FontSize = 10End SubSe ci si sposta col mouse nel campo o etichetta Cognome ingrandisce il carattere delle scritte di entrambiPrivate Sub Cognome_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Cognome_Etichetta.FontSize = 10 Cognome.FontSize = 10End SubSe ci si sposta col mouse nel campo o etichetta Indirizzo di residenza ingrandisceil carattere delle scritte di entrambiPrivate 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 = 10End SubSe ci si sposta col mouse nel campo o etichetta Indirizzo di invio ingrandisceil carattere delle scritte di entrambiPrivate 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 = 10End SubSe ci si sposta col mouse nel campo o etichetta Telefono ingrandisce il carattere delle scritte di entrambiPrivate Sub Telefono_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Telefono_Etichetta.FontSize = 10 Telefono.FontSize = 10End SubSe ci si sposta col mouse nell etichetta Corso frequentato ingrandisce la scritta delletichetta,ne toglie il corsivo e la tramuta in grassettoPrivate 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 = TrueEnd SubSe ci si sposta col mouse nel pulsante opzionale CPAT trasforma la scritta in corsivoPrivate Sub Opzione_CPAT_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) 39
  • Ingegneria del software Etichetta_CPAT.FontItalic = TrueEnd SubSe ci si sposta col mouse nel pulsante opzionale MAT trasforma la scritta in corsivoPrivate Sub Opzione_MAT_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Etichetta_MAT.FontItalic = TrueEnd SubSe ci si sposta col mouse nel campo o etichetta Edizione ingrandisce il carattere delle scritte di entrambiPrivate Sub Edizione_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Edizione_Etichetta.FontSize = 10 Edizione.FontSize = 10End SubSe ci si sposta col mouse nel campo o etichetta Note ingrandisce il carattere delle scritte di entrambiPrivate Sub Note_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Note_Etichetta.FontSize = 10 Note_Etichetta.FontSize = 10End SubSe si clicca con il mouse sul pulsante opzionale CPAT cambia il colore della scrittaPrivate Sub Opzione_CPAT_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Etichetta_CPAT.ForeColor = COLORE_ROSSOEnd SubSe si clicca con il mouse sul pulsante opzionale MAT cambia il colore della scrittaPrivate Sub Opzione_MAT_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Etichetta_MAT.ForeColor = COLORE_ROSSOEnd SubAl rilascio del tasto del mouse dopo il click sul pulsante opzionale CPAT cambia il colore della scrittaPrivate Sub Opzione_CPAT_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) Etichetta_CPAT.ForeColor = COLORE_BLUEnd SubAl rilascio del tasto del mouse dopo il click sul pulsante opzionale MAT cambia il colore della scrittaPrivate Sub Opzione_MAT_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) Etichetta_MAT.ForeColor = COLORE_BLUEnd SubSe si entra nella casella di E-Mail vengono definiti colore egrandezza scritta delletichetta e grandezza scritta nella casellaPrivate Sub E_Mail_Enter() E_Mail_Etichetta.ForeColor = COLORE_NERO E_Mail_Etichetta.FontSize = 8 E_Mail.FontSize = 8End SubSe si clicca nella casella di E-Mail vengono definiti colore egrandezza scritta delletichetta e grandezza scritta nella casellaPrivate Sub E_Mail_Click() E_Mail_Etichetta.ForeColor = COLORE_NERO E_Mail_Etichetta.FontSize = 8 E_Mail.FontSize = 8End SubSe si esce dalla casella di E-Mail vengono definiti colore egrandezza scritta delletichetta e grandezza scritta nella casellaPrivate Sub E_Mail_Exit(Cancel As Integer) E_Mail_Etichetta.ForeColor = COLORE_BIANCO E_Mail_Etichetta.FontSize = 8 E_Mail.FontSize = 8End SubSe si entra nella casella di Nome vengono definiti colore egrandezza scritta delletichetta e grandezza scritta nella casella 40
  • Ingegneria del softwarePrivate Sub Nome_Enter() Nome_Etichetta.ForeColor = COLORE_NERO Nome_Etichetta.FontSize = 8 Nome.FontSize = 8End SubSe si clicca nella casella di Nome vengono definiti colore egrandezza scritta delletichetta e grandezza scritta nella casellaPrivate Sub Nome_Click() Nome_Etichetta.ForeColor = COLORE_NERO Nome_Etichetta.FontSize = 8 Nome.FontSize = 8End SubSe si esce dalla casella di Nome vengono definiti colore egrandezza scrittadelletichetta e grandezza scritta nella casellaPrivate Sub Nome_Exit(Cancel As Integer) Nome_Etichetta.ForeColor = COLORE_BIANCO Nome_Etichetta.FontSize = 8 Nome.FontSize = 8End SubSe si entra nella casella di Cognome vengono definiti colore egrandezza scritta delletichetta e grandezza scritta nella casellaPrivate Sub Cognome_Enter() Cognome_Etichetta.ForeColor = COLORE_NERO Cognome_Etichetta.FontSize = 8 Cognome.FontSize = 8End SubSe si clicca nella casella di Cognome vengono definiti colore egrandezza scritta delletichetta e grandezza scritta nella casellaPrivate Sub Cognome_Click() Cognome_Etichetta.ForeColor = COLORE_NERO Cognome_Etichetta.FontSize = 8 Cognome.FontSize = 8End SubSe si esce dalla casella di Cognome vengono definiti colore egrandezza scritta delletichetta e grandezza scritta nella casellaPrivate Sub Cognome_Exit(Cancel As Integer) Cognome_Etichetta.ForeColor = COLORE_BIANCO Cognome_Etichetta.FontSize = 8 Cognome.FontSize = 8End SubSe si entra nella casella di Indirizzo di residenza vengono definiti colore egrandezza scritta delletichetta e grandezza scritta nella casellaPrivate Sub Indirizzo_di_residenza_Enter() Indirizzo_di_residenza_Etichetta.ForeColor = COLORE_NERO Indirizzo_di_residenza_Etichetta.FontSize = 8 Indirizzo_di_residenza.FontSize = 8End SubSe si clicca nella casella di Indirizzo di residenza vengono definiti colore egrandezza scritta delletichetta e grandezza scritta nella casellaPrivate Sub Indirizzo_di_residenza_Click() Indirizzo_di_residenza_Etichetta.ForeColor = COLORE_NERO Indirizzo_di_residenza_Etichetta.FontSize = 8 Indirizzo_di_residenza.FontSize = 8End SubSe si esce dalla casella di Indirizzo di residenza vengono definiti colore egrandezza scritta delletichetta e grandezza scritta nella casellaPrivate 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 = 8End Sub 41
  • Ingegneria del softwareSe si entra nella casella di Indirizzo di invio vengono definiti colore egrandezza scritta delletichetta e grandezza scritta nella casellaPrivate Sub Indirizzo_di_invio_Enter() Indirizzo_di_invio_Etichetta.ForeColor = COLORE_NERO Indirizzo_di_invio_Etichetta.FontSize = 8 Indirizzo_di_invio.FontSize = 8End SubSe si clicca nella casella di Indirizzo di invio vengono definiti colore egrandezza scritta delletichetta e grandezza scritta nella casellaPrivate Sub Indirizzo_di_invio_Click() Indirizzo_di_invio_Etichetta.ForeColor = COLORE_NERO Indirizzo_di_invio_Etichetta.FontSize = 8 Indirizzo_di_invio.FontSize = 8End SubSe si esce dalla casella di Indirizzo di invio vengono definiti colore egrandezza scritta delletichetta e grandezza scritta nella casellaPrivate 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 = 8End SubSe si entra nella casella di Telefono vengono definiti colore egrandezza scritta delletichetta e grandezza scritta nella casellaPrivate Sub Telefono_Enter() Telefono_Etichetta.ForeColor = COLORE_NERO Telefono_Etichetta.FontSize = 8 Telefono.FontSize = 8End SubSe si clicca nella casella di Telefono vengono definiti colore egrandezza scritta delletichetta e grandezza scritta nella casellaPrivate Sub Telefono_Click() Telefono_Etichetta.ForeColor = COLORE_NERO Telefono_Etichetta.FontSize = 8 Telefono.FontSize = 8End SubSe si esce dalla casella di Telefono vengono definiti colore egrandezza scritta delletichetta e grandezza scritta nella casellaPrivate Sub Telefono_Exit(Cancel As Integer) Telefono_Etichetta.ForeColor = COLORE_BIANCO Telefono_Etichetta.FontSize = 8 Telefono.FontSize = 8End SubSe si entra nella casella di Edizione vengono definiti colore egrandezza scritta delletichetta e grandezza scritta nella casellaPrivate Sub Edizione_Enter() Edizione_Etichetta.ForeColor = COLORE_NERO Edizione_Etichetta.FontSize = 8 Edizione.FontSize = 8End SubSe si clicca nella casella di Edizione vengono definiti colore egrandezza scritta delletichetta e grandezza scritta nella casellaPrivate Sub Edizione_Click() Edizione_Etichetta.ForeColor = COLORE_NERO Edizione_Etichetta.FontSize = 8 Edizione.FontSize = 8End SubSe si esce dalla casella di Edizione vengono definiti colore egrandezza scritta delletichetta egrandezza scritta nella casella 42
  • Ingegneria del softwarePrivate Sub Edizione_Exit(Cancel As Integer) Edizione_Etichetta.ForeColor = COLORE_BIANCO Edizione_Etichetta.FontSize = 8 Edizione.FontSize = 8End SubSe si entra nella casella di Note vengono definiti colore egrandezza scritta delletichetta e grandezza scritta nella casellaPrivate Sub Note_Enter() Note_Etichetta.ForeColor = COLORE_NERO Note_Etichetta.FontSize = 8 Note.FontSize = 8End SubSe si clicca nella casella di Note vengono definiti colore egrandezza scritta delletichetta e grandezza scritta nella casellaPrivate Sub Note_Click() Note_Etichetta.ForeColor = COLORE_NERO Note_Etichetta.FontSize = 8 Note.FontSize = 8End SubSe si esce dalla casella di Note vengono definiti colore egrandezza scritta delletichetta e grandezza scritta nella casellaPrivate Sub Note_Exit(Cancel As Integer) Note_Etichetta.ForeColor = COLORE_BIANCO Note_Etichetta.FontSize = 8 Note.FontSize = 8End SubSe si clicca sul pulsante InvioPrivate Sub Comando_Invio_Click()Se cè un errore salta alletichetta Err_Comando_Invio_Click e ne esegue il codiceOn Error GoTo Err_Comando_Invio_Click Variabili stringa Dim stLinkCriteria As String Dim stDocName As String Si sposta nellultimo 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 nellarchivio 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, , , stLinkCriteriaProcedura di uscitaExit_Comando_Invio_Click: Exit SubProcedura di intercettazione dellerrore:se il sistema invia il messaggio"Lazione ApplyFilter è stata annullata."si è verificata una violazione del vincolodi integrità dovuta alla mancanza dei dati utente nellarchivio corsisti autorizzati.Quindi salta alletichetta Utente_Non_Aut,segnala linabilitazione e chiude tutto.Se lerrore è di un altro tipo,esegue la normale procedura di errore ed esceErr_Comando_Invio_Click: If Err.Description = "Lazione ApplyFilter è stata annullata." Then GoTo Utente_Non_Aut End If 43
  • Ingegneria del software MsgBox Err.Description Resume Exit_Comando_Invio_ClickUtente_Non_Aut: MsgBox "UTENTE NON AUTORIZZATO" DoCmd.QuitEnd SubSe si clicca con il mouse sul pulsante Invio cambia il colore della scrittaPrivate Sub Comando_Invio_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Comando_Invio.ForeColor = COLORE_ROSSOEnd SubAl rilascio del tasto del mouse dopo il click sul pulsante Invio cambia il colore della scrittaPrivate Sub Comando_Invio_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) Comando_Invio.ForeColor = COLORE_BLUEnd SubSe ci si sposta con il mouse sopra il pulsante Invio cambia il colore e lo spessore della scrittaPrivate Sub Comando_Invio_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Comando_Invio.ForeColor = COLORE_NERO Comando_Invio.FontBold = TrueEnd SubSe si clicca con il mouse sul pulsante Chiudi cambia il colore della scrittaPrivate Sub Comando_Chiudi_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Comando_Chiudi.ForeColor = COLORE_ROSSOEnd SubAl rilascio del tasto del mouse dopo il click sul pulsante Chiudi cambia il colore della scrittaPrivate Sub Comando_Chiudi_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) Comando_Chiudi.ForeColor = COLORE_BLUEnd SubSe ci si sposta con il mouse sopra il pulsante Chiudi cambia il colore e lo spessore della scrittaPrivate Sub Comando_Chiudi_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Comando_Chiudi.ForeColor = COLORE_NERO Comando_Chiudi.FontBold = TrueEnd SubSe si clicca sul corpo della maschera cambia il colorePrivate Sub Corpo_Click() Corpo.BackColor = COLORE_DEFAULT Etichetta_Seleziona.BackColor = COLORE_DEFAULTEnd SubSe si clicca sul pulsante ChiudiPrivate Sub Comando_Chiudi_Click()On Error GoTo Err_Comando_Chiudi_Click Chiude la maschera DoCmd.CloseProcedura di uscitaExit_Comando_Chiudi_Click: Exit SubProcedura di errore:visualizza lerrore(description) ed esceErr_Comando_Chiudi_Click: MsgBox Err.Description Resume Exit_Comando_Chiudi_ClickEnd Sub Figura 23 44
  • Ingegneria del software MASCHERA RICHIEDI PASSWORD Figura 24 CODICE MASHERA RICHIEDI PASSWORDOption Compare Database=============================================================================================CODICE MASCHERA RICHIEDI PASSWORD=============================================================================================Tutte le Sub eseguite sono procedure interneLe costanti usate sono STRINGA_PASSWORD e le COSTANTI per i coloriAll apertura del file viene eseguito il codice Form_Open che in automatico chiama la machera principalePrivate Sub Form_Open(Cancel As Integer) Allapertura imposta il colore dello sfondo maschera,la grandezza delletichetta informativa,il colore della scritta del comando Invia password e il colore delletichetta del campo password Corpo.BackColor = COLORE_BIANCO Etichetta_Inserisci_Password.FontSize = 14 Comando_Invia_Password.ForeColor = COLORE_ROSSO Password_Etichetta.ForeColor = COLORE_NEROEnd SubSe si clicca sul pulsante Invia passwordPrivate Sub Comando_Invia_Password_Click()Se cè un errore salta alletichetta Err_Comando_Invia_Password_Click e ne esegue il codiceOn 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" 45
  • Ingegneria del software 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, , , stLinkCriteriaProcedura di uscitaExit_Comando_Invia_Password_Click: Exit SubProcedura di errore:visualizza lerrore(description) ed esceErr_Comando_Invia_Password_Click: MsgBox Err.Description Resume Exit_Comando_Invia_Password_ClickEnd SubSe ci si sposta col mouse nel campo o etichetta Password ingrandisce il carattere delle scritte di entrambiPrivate Sub Password_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Password_Etichetta.FontSize = 10 Password.FontSize = 10End SubSe si entra nella casella di Password vengono definiti colore egrandezza scritta delletichetta e grandezza scritta nella casellaPrivate Sub Password_Enter() Password_Etichetta.ForeColor = COLORE_NERO Password_Etichetta.FontSize = 8 Password.FontSize = 8End SubSe si clicca nella casella di Password vengono definiti colore egrandezza scritta delletichetta e grandezza scritta nella casellaPrivate Sub Password_Click() Password_Etichetta.ForeColor = COLORE_NERO Password_Etichetta.FontSize = 8 Password.FontSize = 8End SubSe si esce dalla casella di Password vengono definiti colore egrandezza scritta delletichetta e grandezza scritta nella casellaPrivate Sub Password_Exit(Cancel As Integer) Password_Etichetta.ForeColor = COLORE_BIANCO Password_Etichetta.FontSize = 8 Password.FontSize = 8End SubSe si clicca con il mouse sul pulsante Invia password cambia il colore della scrittaPrivate Sub Comando_Invia_Password_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Comando_Invia_Password.ForeColor = COLORE_ROSSOEnd SubAl rilascio del tasto del mouse dopo il click sul pulsante Invia password cambia il colore della scrittaPrivate Sub Comando_Invia_Password_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) Comando_Invia_Password.ForeColor = COLORE_BLUEnd SubSe ci si sposta con il mouse sopra il pulsante Invia password cambia il colore e lo spessore della scrittaPrivate 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 = TrueEnd SubSe si clicca sul corpo della maschera cambia il colorePrivate Sub Corpo_Click() Corpo.BackColor = COLORE_DEFAULTEnd Sub Figura 25 46
  • Ingegneria del software MASCHERA PASSWORD Figura 26 CODICE MASCHERA PASSWORDOption Compare Database=============================================================================================CODICE MASCHERA PASSWORD=============================================================================================Tutte le Sub eseguite sono procedure interneLe costanti usate sono STRINGA_PASSWORD e le COSTANTI dei coloriAll apertura del file viene eseguito il codice Form_Open che in automatico chiama la machera principalePrivate Sub Form_Open(Cancel As Integer) Allapertura imposta il colore dello sfondo maschera,la grandezza delletichetta informativa,il colore della scritta del comando Torna al sito(Identificativo Chiudi) e il colore delletichetta del campo password Corpo.BackColor = COLORE_BIANCO Etichetta_Ripeti_Password.FontSize = 14 Comando_Chiudi.ForeColor = COLORE_ROSSO Password_Etichetta.ForeColor = COLORE_NEROEnd SubSe si clicca sul pulsante Torna al sito(Id.Chiudi)Private Sub Comando_Chiudi_Click()Se cè un errore salta alletichetta Err_Comando_Chiudi_Click e ne esegue il codiceOn Error GoTo Err_Comando_Chiudi_Click Se la password ridigitata non coincide con quella memorizzata precedentemente viene inviato un messaggio allutente,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 47
  • Ingegneria del software Messaggio allutente 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.QuitProcedura di uscitaExit_Comando_Chiudi_Click: Exit SubProcedura di errore:visualizza lerrore(description) ed esceErr_Comando_Chiudi_Click: MsgBox Err.Description Resume Exit_Comando_Chiudi_ClickEnd SubSe ci si sposta col mouse nel campo o etichetta Password ingrandisce il carattere delle scritte di entrambiPrivate Sub Password_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Password_Etichetta.FontSize = 10 Password.FontSize = 10End SubSe si entra nella casella di Password vengono definiti colore egrandezza scritta delletichetta e grandezza scritta nella casellaPrivate Sub Password_Enter() Password_Etichetta.ForeColor = COLORE_NERO Password_Etichetta.FontSize = 8 Password.FontSize = 8End SubSe si clicca nella casella di Password vengono definiti colore egrandezza scritta delletichetta e grandezza scritta nella casellaPrivate Sub Password_Click() Password_Etichetta.ForeColor = COLORE_NERO Password_Etichetta.FontSize = 8 Password.FontSize = 8End SubSe si esce dalla casella di Password vengono definiti colore egrandezza scritta delletichetta e grandezza scritta nella casellaPrivate Sub Password_Exit(Cancel As Integer) Password_Etichetta.ForeColor = COLORE_BIANCO Password_Etichetta.FontSize = 8 Password.FontSize = 8End SubSe si clicca con il mouse sul pulsante Torna al sito cambia(Id.Chiudi) il colore della scrittaPrivate Sub Comando_Chiudi_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Comando_Chiudi.ForeColor = COLORE_ROSSOEnd SubAl rilascio del tasto del mouse dopo il click sul pulsante Torna al sito(Id.Chiudi)cambia il colore della scrittaPrivate Sub Comando_Chiudi_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) Comando_Chiudi.ForeColor = COLORE_BLUEnd SubSe ci si sposta con il mouse sopra il pulsante Torna al sito(Id.Chiudi)cambia il colore e lo spessore della scrittaPrivate Sub Comando_Chiudi_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Comando_Chiudi.ForeColor = COLORE_NERO Comando_Chiudi.FontBold = TrueEnd Sub 48
  • Ingegneria del softwareSe si clicca sul corpo della maschera cambia il colorePrivate Sub Corpo_Click() Corpo.BackColor = COLORE_DEFAULTEnd Sub Figura 27Segue il codice di modulo1(fig.28) dichiarante costanti e variabili impiegati nelprogramma. CODICE MODULO1Option 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 = 16711680Definizione di form attivoPublic FORM_ATTIVO As BooleanDefinizione di una stringa per memorizzazione il nome e verificare che sia un corsistaPublic STRINGA_NOME As StringDefinizione di una stringa per memorizzare il cognome e verificare che sia un corsistaPublic STRINGA_COGNOME As StringDefinizione di una stringa per memorizzare la password e verificare che sia ripetuta correttamentePublic 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”. 49
  • Ingegneria del software PAGINA Alumni.asp SPOSTAMENTO CONNESSIONE AL ALL’ULTIMO DATABASE CONTROLLO RECORD AGGIUNTA RECORD OK NON OK MESSAGGIO NON AUTORIZZATO CONNESSIONE USCITA CON CHIUSURA Carica pagina Psswrd2.asp PAGINA Psswrd2.asp AGGIUNTA CONNESSIONE AL SPOSTAMENTO AL PASSWORD AL DATABASE CONTROLLO RECORD UTENTE RECORD OK NON OK CONNESSIONE CON MESSAGGIO NON AUTORIZZATO USCITA CON MESSAGGIO CHIUSURA Figura 29 INTERFACCIA ALUMNI.ASPIscriviti allassociazione AT AlumniE-Mail*:Nome*:Cognome*:Riempi i campi sottostanti 50
  • Ingegneria del softwareIndirizzo diresidenza*:Indirizzo per inviocorrispondenza*:Telefono*:Corso frequentato*:CPAT=Corso di Perfezionamento in CPATAssistive Technology MATMAT=Master in Assistive Technology Seleziona quale corso hai frequentatoEdizione*: Inserisci l’anno accademico dell’edizione frequentataNote: 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 ExplicitDim objConn oggetto creato per la connessioneDim rsIscritti recorset per la tabella IscrittiDim rsCorsi_Master recordset per la tabella Corsi_Master 51
  • Ingegneria del softwareDim rsCorsisti recordset per la tabella CorsistiDim strDatab percorso databasestrDatab="/data/Iscritti.mdb" assegnazione 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 allassociazione 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="TRUE" 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="String" 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="TRUE" 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-Data-Type="String" B-Allow-Letters="TRUE" B-Allow-Digits="TRUE" 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="String" B-Allow-Digits="TRUE" B-Value-Required="TRUE" I-Minimum-Length="9" I-Maximum-Length="14" --><inputtype="text" name="Telefono" size="20" maxlength="14"></td> 52
  • Ingegneria del software </tr> <tr> <td width="256" height="76"> <p>Corso frequentato*:</p> <p>CPAT=Corso di Perfezionamentoin&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="Integer" 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 equal 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;" creadei recordset delle tabelle set rsIscritti=Server.CreateObject("ADODB.Recordset") set rsCorsi_Master=Server.CreateObject("ADODB.Recordset") set rsCorsisti=Server.CreateObject("ADODB.Recordset") set rsIscritti=objConn.OpenRecordset("Iscritti",dbOpenTable) set rsCorsi_Master=objConn.OpenRecodset("Corsi_Master",dbopenTable) set rsCorsisti=objConn.OpenRecodset("Corsisti",dbopenTable) On Error Resume Next secè errore esce Do while not rsCorsisti.EOF If rsCorsisti.Fields(“Nome”)=[Nome] AND rsCorsisti.Fields(“Cognome”)=Cognome Thencontrolla autorizzazione rsIscritti.MoveLastsposta il puntatore nellultimo rsCorsi_Master.MoveLastrecord che diventa il corrente, rsIscritti.AddNew loaggiunge e rsCorsi_Master.AddNew rsIscritti.Fields(“E-Mail”)=[E_Mail] rsIscritti.Fields(“Nome”)=[Nome] rsIscritti.Fields(“Cognome”)=[Cognome] rsIscritti.Fields(“Indirizzo_di_residenza”)=[Indirizzo_di_residenza] rsIscritti.Fields(“Indirizzo_di_invio”)=[Indirizzo_di_invio] rsIscritti.Fields(“Telefono”)=[Telefono] rsIscritti.Fields(“Note”)=[Note] 53
  • Ingegneria del software rsCorsi_Master.Fields(“Tipo”)=[R1] rsCorsi_Master.Fields(“Edizione”)=[Edizione] rsIscritti.Updateaggiorna rsCorsi_Master.Update Else MsgBox "UTENTE NON AUTORIZZATO" se nonautorizzato esce con Exitmessaggio di errore End If Loop rsCorsisti.Close chiudei recordset e rsIscritti.Close rsCorsi_Master.Close objConn.Closeloggetto 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.ASPInserisci una password di massimo 9 caratteriPassword*: InviaTorna al sito: http://www.ing.units.it/bca Figura 32 CODICE PSSWRD2.ASP<!-- #include file="adovbs.inc" --><%Option ExplicitDim SEL_NOME stringa nomeDim SEL_COGNOME stringa cognomeDim rs recordset per la tabella IscrittiDim objConn oggetto per la connessioneDim strDatab percorso 54
  • Ingegneria del softwarestrDatab="/data/Iscritti.mdb" assegnazione 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="Password" S-Data-Type="String" B-Allow-Letters="TRUE" B-Allow-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_NOMEdiventa il nome assegnatogli SEL_COGNOME=Request.Form("Cognome")SEL_COGNOME diventa il cognome assegnatogli set objConn=Server.CreateObject("ADODB.Connection") crea unaconnessione 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 unrecorset per la tabella Iscritti set rs=objConn.OpenRecordset("Iscritti",dbOpenTable) On Error Resume Next se cè unerrore Do while not rs.EOF cerca ilnome tra i corsisti If rs.Fields(“Nome”)=SEL_NOME AND rs.Fields(“Cognome”)=SEL_COGNOME Thense lo trova esce dal ciclo con il puntatore a quel record Exit Do Else MsgBox "NON AUTORIZZATO" altrimentiesce con messaggio informativo Exit End If Loop Rs.Fields(“Password”)=[Password] rs.Update aggiornala tabella MsgBox "REGISTRAZIONE ESEGUITA CON SUCCESSO" rs.Close chiude ilrecorset e la connessione objConn.Close %> <p>&nbsp; <input type="submit" value="Invia" name="Invio_password"></p> <p>Torna al sito: <ahref="http://www.ing.units.it/bca">http://www.ing.units.it/bca</a></p></form></body></html> Figura 33 55
  • Ingegneria del software 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 renderebbesconsigliabile la scelta di impostare come chiave primaria i cognomi dell’archivioiscritti.Tuttavia anche qualora si verificasse un caso di omonimia del cognome,latabella non permetterebbe equivoci sugli attributi,dal momento che espletaesclusivamente funzione di verifica autorizzazione e non contiene altri attributi.Inquesto modo l’applicazione guadagna un’ulteriore grado di affidabilità,non consentendoregistrazioni di utenti con un cognome corrispondente anche in caso di errorefiltraggio,per violazione dell’integrità referenziale. Vi è una correttezza generale del file realizzato in MS Access e deicollegamenti,verificata con alcuni test. La robustezza e l’usabilità sono garantite grazie alle funzionalità e interfaccefornite 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 diadattarla o eventualmente correggerla qualora emergano alcuni errori non riscontrati inun primo tempo. Naturalmente è anche migliorabile con una serie di interventi.Per esempio sulcodice “Visual Basic” delle maschere,un buon intervento sarebbe creare delleprocedure(Sub) di eventi comuni(es.MouseMove) da applicare poi ai vari oggetti.Usareuna procedura diversa per ogni oggetto anche per un evento simile determina unaumento delle linee di codice e un’exploit meno performante. Un altra miglioria potrebbe interessare la gestione del databaseautomatizzandolo attraverso delle procedure(ad es. ApriSolaLettura) costruite inpagine .asp o addirittura in .aspx con ASP.NET(linguaggio più Object Oriented e menoibrido). 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 futurilavori di manutenzione. 56