Indagine statistica

Materie:Appunti
Categoria:Informatica

Voto:

1.5 (2)
Download:348
Data:22.03.2001
Numero di pagine:66
Formato di file:.doc (Microsoft Word)
Download   Anteprima
indagine-statistica_1.zip (Dimensione: 685.36 Kb)
readme.txt     59 Bytes
trucheck.it_indagine-statistica.doc     6176.5 Kb


Testo

Acquisizione e gestione dati
Tesina di Sistemi e Informatica
INDICE
1. Obiettivi e descrizione generale del progetto pag. 3
1.1 Acquisizione dei dati: schema a blocchi pag. 4
1.2 Schema relazionale del progetto pag. 5
2. Hardware utilizzato pag. 6
2.1. Penna ottica
2.2. Modem
3. Software utilizzato pag. 7
3.1. Microsoft FrontPage M
3.2. Borland Delphi B versione 3.2
3.2.1. Database desktop
3.2.2. SQL
3.3. Microsoft Internet Explorer M versione 4.0
4. Gestione della base di dati pag. 9
4.1. Struttura database relazionale
4.2. Procedure di gestione
4.3. Interfaccia grafica con l’utente operatore pag. 11
5. Acquisizione dati pag.17
5.1. Supporto cartaceo
5.1.1 Questionario
5.1.2 Software associato alla raccolta dati mediante penna ottica pag. 20
5.2. Via Internet pag. 21
5.2.1 Grafica del sito Web
5.2.2 Questionario pag. 22
5.2.3 Software associato alla raccolta dei dati via Internet pag. 27
6. Diffusione risultati pag. 28
6.1 Risultati questionari
7. Manuale utente pag. 30
8. Conclusioni pag. 31
9. Appendice pag. 32
9.1. Tabelle del database pag. 34
9.2. Listati dei programmi pag. 44
1. OBBIETTIVI
Acquisizione e gestione dei dati relativi ad un sondaggio sulla qualità della scuola sottoposto agli studenti e diplomati del nostro istituto, con pubblicazione dei risultati ottenuti.
DESCRIZIONE GENERALE DEL PROGETTO
Questo progetto prevede l’acquisizione (vedi pag.4 fig. 1.1) e la gestione dei dati relativi ad un sondaggio sottoposto agli studenti e diplomati del nostro istituto. Tale sondaggio è costituito da due diversi questionari:

⇨ uno, diffuso tramite supporto cartaceo e diretto agli studenti frequentanti l’istituto, costituito da 12 domande inerenti alla loro frequenza, alla loro impressione sul tipo di scuola e sul grado di qualità trovato;
⇨ un altro, diffuso via internet e diretto agli studenti diplomati che hanno concluso il loro corso, costituito da 22 domande complessive: le prime 12 simili al questionario precedente (quello rivolto agli studenti), mentre le rimanenti mirate a conoscere il loro approccio ed inserimento nel mondo universitario o lavorativo.
Il 1° questionario è stampato e diffuso tramite supporto cartaceo ad un campione degli alunni, opportunamente scelto tra tutti i frequentanti questo istituto; le domande prevedono un numero limitato di risposte codificate mediante un codice a barre per rendere possibile la loro lettura mediante la penna ottica.
Il 2° questionario invece, costituito da domande a numero chiuso come il precedente, è inserito all’interno del sito della scuola ed è indirizzato agli studenti già diplomati.
I due questionari mirano a reperire le osservazioni e le impressioni degli studenti inerenti al loro corso di studi secondario, mettendo in luce attraverso le domande il loro rapporto con i docenti ed il personale scolastico in genere, le loro valutazioni sui servizi offerti dalla scuola e un’analisi del loro impegno personale.
Il nostro obbiettivo non è quello di svolgere un’indagine statistica precisa ed accurata, ma di riuscire a gestirla attraverso gli elementi software ed hardware di nostra conoscenza. I nostri studi verteranno principalmente sull’applicazione informatica che sta alla base dell’acquisizione e dell’elaborazione dei dati. Abbiamo preso poco in considerazione le tecniche di analisi statistica e per tale motivo il progetto potrebbe risultare incompleto da questo punto di vista.
I risultati di tali sondaggi vengono raccolti in un database, gestito con routine di interrogazioni e modifica, direttamente collegato a tabelle in grado di offrire una consultazione semplificata dei dati. A richiesta, come sarà spiegato nel manuale utente, avviene la stampa a video di tali tabelle a scopo di consultazione e pubblicazione.
DATA INIZIO: 19 Marzo 1999
DATA ULTIMAZIONE: 4 Giugno 1999
Acquisizione dei dati: schema a blocchi
Fig. 1.1 – Schema a blocchi dell’acquisizione dei dati
Schema Relazionale del progetto
Domande penna ottica
Domande su internet
Risposte su internet
Codice-1
Codice-2
Codice-2
Descrizione
Descrizione
Codice Risposta
Descrizione della risposta
Totale
Risposte penna ottica
Risultati internet
Risposte penna ottica
Codice-1
Numero questionario
Numero questionario
Codice Risposta
Sesso
Sesso
Descrizione della risposta
Età
Età
Totale
Anni di frequenza
Anni di frequenza
Risp_1
Risp_1
Risp_2
Risp_2
……
……
Risp_22
Risp_12
Invia
Fatte
2. HARDWARE UTILIZZATO
2.1 PENNA OTTICA
Dispositivo di selezione, costituito da un'asticciola collegata al computer; l'operatore seleziona i codici a barre appoggiando l'estremità della penna ed esercitando una leggera pressione sul foglio dove sono stampati (queste operazioni equivalgono ad un input da tastiera ). L'asticciola contiene sensori ottici e invia un segnale al computer ogni volta che rileva un codice a barre, ossia una combinazione particolare di spazi e di linee scure parallele utilizzata per codificare una informazione in base allo spessore e alla spaziatura dei segni. Questa informazione è direttamente leggibile da appositi dispositivi, come la penna ottica stessa, ed i codici a barre rappresentano uno dei sistemi più efficienti per l’acquisizione automatica di dati.
Nel nostro caso il codice a barre utilizzato è il Code39 che necessita di due caratteri di controllo indicanti inizio e fine del codice. Il carattere di controllo è ‘e’. Ad esempio: il codice 010200 per essere letto dovrà essere codificato in e010200e. Per produrre il questionario su supporto cartaceo i codici vengono stampati con un particolare font in dotazione del Word.
2.2 MODEM
Dispositivo che converte segnali analogici in segnali digitali e viceversa. I segnali digitali, utilizzati dai computer, sono costituiti da serie di cifre binarie (0 e 1), mentre i segnali analogici variano con continuità in un range di valori possibili, con aspetto ondulatorio.
I modem sono spesso usati per permettere le comunicazioni tra computer tramite le linee telefoniche. Un modem converte i segnali digitali del computer trasmittente in segnali analogici che possono essere inviati tramite le linee; quando il segnale raggiunge la destinazione, un altro modem ricostruisce il segnale digitale originale, che viene elaborato dal computer ricevente.
I modem che possono trasmettersi dati a vicenda in modo simultaneo operano in duplex totale, mentre quando solo un modem per volta può trasmettere dati, si parla di semiduplex o halfduplex.
Per convertire un segnale digitale in analogico, il modem genera un'onda portante, modulata in conformità con il segnale digitale. Il tipo di modulazione utilizzata dipende dall'applicazione utilizzata e dalla velocità del modem. Molti modem ad alta velocità, ad esempio, usano una combinazione di modulazione d'ampiezza, dove viene modificata l'ampiezza della portante per codificare l'informazione digitale, e di modulazione di fase, dov'è la fase della portante a essere variata con lo stesso scopo. Il procedimento di ricezione e riconversione del segnale analogico in digitale è chiamato demodulazione. Il nome "modem" è una contrazione dei termini indicanti le due funzioni fondamentali di questo apparecchio: modulazione e demodulazione.
I primi modem erano voluminosi e potevano trasmettere dati a una velocità di soli 100 bit al secondo, mentre i modem moderni raggiungono velocità molto più elevate e hanno l'aspetto di piccole schede da inserire all'interno di un personal computer. Sono disponibili anche modem più sofisticati, ad esempio modem fax che permettono a un PC di comunicare direttamente con un fax, ovvero di spedire e ricevere messaggi via fax.

3. SOFTWARE UTILIZZATO
3.1 MICROSOFT FRONTPAGE 3
Microsoft FrontPage M è un programma di Web Publishing, semplice e veloce, con il quale è possibile progettare e gestire i siti Web di qualità professionale. Si possono generare delle barre di navigazione che tengono aggiornati gli utenti dopo qualsiasi modifica del sito, disegnare tabelle con la massima precisione grafica e semplicità, visualizzare una pagina Web in creazione con differenti effetti e forme grafiche, inserire nuovi componenti preprogrammati per aggiungere funzionalità complesse come l'invio delle informazioni di un modulo di registrazione ad uno specifico Email o l'aggiunta di un contatore di visitatori. Inoltre è possibile importare all'interno di FrontPage siti esistenti sui quali intervenire direttamente con operazioni di modifica e di aggiornamento
3.2 BORLAND DELPHI 3 versione 3.2
Borland Delphi B versione 3.2 è un linguaggio di programmazione ad alto livello di tipo visuale. Questo tipo di approccio visuale alla programmazione permette al programmatore di creare le proprie finestre di interfaccia con l’utente in modalità grafica con l’ausilio del mouse. Ad ogni componente (ad esempio pulsanti, memo, pop-up menu, etc..) è possibile associare uno svariato numero di eventi. Gli eventi sono gestiti da routine in linguaggio Pascal che il programmatore produce. Il risultato è un programma graficamente proponibile in ambiente Windows con tutte le funzionalità di cui si dispone in ambiente DOS. Inoltre il Delphi fornisce numerose routine di gestione di componenti già create che permettono una facile e veloce programmazione.
3.2.1 DATABASE DESKTOP
Database Desktop è un software applicativo contenuto nel pacchetto Borland Delphi. In particolare Database Desktop è uno strumento di creazione e gestione di Database. Con questo applicativo si possono creare tabelle per l’archiviazione di dati di diversi tipi (nel nostro caso Paradox7) totalmente compatibili con il linguaggio Delphi dal quale possono essere gestite run - time.
3.2.2 SQL (In inglese, Structured Query Language)
E’ un linguaggio d'interrogazione strutturato, derivato da un progetto di ricerca della IBM, usato per interrogare, aggiornare e gestire database relazionali. SQL è ormai accettato come standard nei prodotti per database e, pur non essendo un linguaggio di programmazione nello stesso senso in cui lo sono il C o il Pascal, può essere usato sia per la formulazione di domande interattive, sia essere inserito in un programma applicativo come gruppo di istruzioni per manipolare dati. Lo standard SQL contiene anche componenti per definire, modificare, controllare e proteggere dati. Esso è progettato sia per l'utenza tecnica, sia per l'utenza generica.
3.3 MICROSOFT INTERNET EXPLORER 3 versione 4.0
Internet Explorer 4.0 consente di esplorare il World Wide Web in modo semplice ed entusiasmante grazie all'integrazione delle potenzialità del PC con gli interessanti contenuti disponibili su Internet. Per raggiungere tale risultato la Microsoft ha puntato sullo sviluppo di tre tecnologie fondamentali: il browser più facile da usare, la comunicazione ottimale l'integrazione completa tra il PC e il Web. Queste nuove tecnologie migliorano notevolmente l'esplorazione del Web o dei dati presenti sul computer e rendono Internet Explorer un programma utile e completo per l'esplorazione del World Wide Web. Tramite Internet Explorer 4.0 è possibile riprodurre video, scegliere canali, ascoltare trasmissioni in tempo reale e riprodurre giochi grazie al supporto di tutti i maggiori standard Internet, quali l’HTML dinamico, Java e lo standard CDF (Channel Definition Format).
4. GESTIONE DELLA BASE DI DATI
4.1 STRUTTURA DATABASE RELAZIONALE
E’ un tipo di database, o di sistema di gestione di database, che immagazzina informazioni in tabelle organizzate in righe e colonne di dati, e permette ricerche usando i dati di specifiche colonne di una tabella per trovare dati archiviati in un'altra tabella. In un database relazionale, le righe di una tabella rappresentano i "record" o “tuple” (raccolte di informazioni su singoli soggetti) e le colonne rappresentano i "campi" (particolari attributi di un record). Nel condurre le ricerche, un database relazionale unisce le informazioni di un campo di una tabella con quelle di un campo corrispondente di un'altra, per produrre una terza tabella che combina i dati desiderati di entrambe. In altre parole, un database relazionale usa elementi di confronto tra due tabelle per correlare le informazioni contenute nell'una e nell'altra. All’interno di questo progetto vengono gestite 6 diverse tabelle (vedi appendice), così suddivise:
Due tabelle domande: contengono tutte le domande, contraddistinte univocamente da un codice.
➢ ‘Domande.db’. Quelle che sono presenti nel sondaggio diffuso agli studenti su supporto cartaceo (cioè le prime dodici);
➢ ‘Domandeint.db’. Quelle che sono presenti nel sondaggio diffuso via Internet.
Due tabelle Risposte: contengono tutte le risposte possibili, contraddistinte univocamente da un codice.
➢ ‘Risposte.db’. Quelle presenti all’interno del questionario diffuso agli studenti su supporto cartaceo;
➢ ‘Risposteint.db’. Quelle diffuse via Internet presenti nel sito WEB.

Tabella Risultati penna ottica: contiene i risultati di tutti i questionari memorizzati e letti dalla penna ottica.
Tabella risultati per Internet: contiene i risultati di tutti i questionari memorizzati sui file di testo dal sito WEB.
4.2 PROCEDURE DI GESTIONE
Per la gestione del Database sono state usate delle routine in linguaggio Pascal fornite dal programma Delphi.
⇨ funzione Locate(nome campi; vettore di ricerca; opzioni): Boolean.
Questa funzione ricerca nella tabella alla quale è applicata un particolare record con accesso diretto al file restituendo vero o falso a seconda che l’esito della ricerca sia stato positivo o negativo. La chiave di accesso deve essere inserita nel ‘vettore di ricerca’ che è di tipo variant.
I campi della tabella da ricercare vengono invece specificati in ‘nome campi’ separati l’uno dall’altro dal carattere ’;’. In ‘opzioni’ si possono specificare alcuni criteri di ricerca.
⇨ procedura Append.
Accoda alla tabella alla quale è applicata una tupla vuota.
⇨ procedura Delete.
Cancella la tupla attiva dalla tabella alla quale è applicata.
⇨ procedura Edit.
Abilita la tabella alla quale è applicata alle operazioni di modifica. Questa procedura deve essere sempre chiamata prima di eseguire qualsiasi modifica alla tabella.
⇨ procedura First.
Fa in modo che sia attivo il primo record della tabella.
⇨ procedura Next.
Attiva il record successivo a quello attivo al momento della chiamata.
⇨ procedura Post.
Applica le modifiche fatte alla tabella. Quando si chiama questa procedura vengono salvate le modifiche alla tabella.
4.3 INTERFACCIA GRAFICA CON L’UTENTE OPERATORE
Una volta lanciato il programma comparirà a video la form principale (fig. 4.1) contenente un menù, grazie al quale l’utente operatore potrà selezionare la voce a lui più congeniale (Dati, Grafici, Tabelle, Help). L’operatore interagisce con il sistema di elaborazione mediante comandi inviati con selezione da menù, quindi a lui non viene richiesta una conoscenza informatica specifica in quanto i programmi sono semplici e immediati da utilizzare.
Form principale:
Fig. 4.1 – Form1
In base alla scelta da lui effettuata comparirà a video una delle seguenti form:
Form di acquisizione dati mediante penna ottica: Fig. 4.2 – Ottica1
Al comparire della form alla pagina precedente (fig. 4.2), viene inizializzata la procedura di acquisizione dati mediante penna ottica (vedi 5.1.2).
Questa form appare a video cliccando sul menu ‘Dati’ alla voce ‘Aggiorna da PC’.

Form di acquisizione dati via Internet:
Fig. 4.3 – Internet
A questa form (fig. 4.3) è associata l’acquisizione delle risposte al questionario pervenute via Internet (vedi 5.2.2).
Questa form appare cliccando nel menu ‘Dati’ alla voce ‘Aggiorna da Internet’.
Form di visualizzazione dati significativi mediante penna ottica:
Fig. 4.4 – Ottica2
La form alla pagina 12 (fig. 4.4) viene chiamata dalla voce ‘Diplomanti’ del sotto - menu di ‘Statistiche’ nel menu ‘Tabelle’.
La procedura associata a questa form accede alla tabella dei risultati di acquisizione mediante penna ottica ed evidenzia i dati di:
➢ Numero totale dei questionari compilati;
➢ Numero di persone di sesso maschile compilanti il questionario;
➢ Numero di persone di sesso femminile compilanti il questionario;
➢ Numero di persone compilanti il questionario divise in fasce di età di un anno (18,19,…,22);
➢ Numero di persone compilanti il questionario divise in fasce di anni di frequenza (4, 5,…, 8).
Questi dati sono ottenuti grazie ad un conteggio delle tuple memorizzate nella tabella di acquisizione incrementando la variabile di somma parziale corrispondente ad ogni titolo descritto nell’elenco sopracitato.
Form di visualizzazione dati significativi via Internet:
Fig. 4.5 – Statint
La form in figura (fig. 4.5) appare sullo schermo cliccando dal menu ‘Tabelle’ la voce ‘Statistiche’ e, all’apparire del sotto - menu di ‘Statistiche’, la voce ‘Post diplomati’.
Le funzioni di questa form sono molto simili a quelle presentate per la form precedente (fig. 4.4). La differenza sostanziale sta nel fatto che i valori significativi vengono prelevati dalla tabella di risposte memorizzate in seguito all’acquisizione via Internet.
Form di visualizzazione dati relativi ai questionari acquisiti mediante penna ottica:
Fig. 4.6 – Ottica4
Cliccando sul pulsante ‘Tabella risposte’ della form ‘Ottica2’ viene visualizzata la form in figura (fig. 4.6).
Tale form visualizza nella griglia le tuple della tabella di acquisizione dati mediante penna ottica.
Form di distribuzione percentuale della risposte ottenute mediante penna ottica:
Fig. 4.7 – Ottica3
La comparsa a video di questa form (fig. 4.7) avviene cliccando sul pulsante ‘Distribuzione risposte’ nella form ‘Ottica2’.
Visualizza, nel memo superiore, il testo della domanda del questionario per i diplomanti e negli spazi edit sottostanti, le varie opzioni affiancate dalla percentuale di risposte date di quel tipo.
Per calcolare le percentuali si deve accedere alla tabella delle risposte e leggere il valore del campo ‘totale’ corrispondente a quella domanda ed a quel tipo di risposta. Il valore di ‘Totale’ dovrà essere confrontato con la somma dei totali delle opzioni per quella domanda.
In questo modo, considerando il rapporto tra ‘Totale’ di quella risposta e la somma dei campi ‘Totale’ di quella domanda, e moltiplicandoli per 100, si ha la percentuale per quella risposta.
Si procede così per ogni valore di ogni domanda per tutte le tuple della tabella. I pulsanti ‘Avanti’ e ‘Indietro’ cambiano la domanda che si analizza (‘Avanti’ passa alle domande successive, ‘Indietro’ a quelle precedenti).
Form di distribuzione in percentuale delle risposte acquisite via Internet:
*** vedi fig. 4.7 ***
Il tipo di form è lo stesso utilizzato per la distribuzione risultati ottenuti dall’acquisizione mediante penna ottica (cambia ovviamente il nome della form ed il titolo visualizzato in alto).
Anche la procedura di compilazione dei risultati in percentuale è la stessa con la differenza della tabella utilizzata, che sarà relativa all’acquisizione via Internet.
5. ACQUISIZIONE DATI
5.1 SUPPORTO CARTACEO
5.1.1 Questionario
SONDAGGIO SCOLASTICO
Suggerimenti per la compilazione:
Le domande sono tutte a risposte unica fatta eccezione per quella dove è espressamente indicato ‘puoi sceglierne più di una’ (la n°10).
Per selezionare una risposta segnare con una ‘x’ la pallina vuota a sinistra della risposta scelta.
Le domande n° 6 e 9 sono domande multiple. Significa che si deve selezionare una delle opzioni principali (quelle allineate a sinistra) e, all’interno dell’opzione principale scelta, si può selezionare una delle risposte secondarie (quelle allineate più a destra e sottostanti l’opzione principale segnata).
Ogni errore di compilazione o ogni risposta selezionata con un segno non previsto comporteranno l’annullamento della domanda.
Questionario:
Sesso M F Anni di frequenza ____ Età ____
Rapporto alunni – docenti
1. Ciò che impari a scuola dipende soprattutto da:
 impegno personale e010100e
 rapporto soddisfacente con i docenti e010200e
 rapporto di collaborazione con i compagni e010300e
 possibilità che ti offriva la scuola e010400e
 possibilità che ti offriva la famiglia e010500e
 sussidi didattici (biblioteca, testi vari, aule speciali) e010600e
2. Se devi chiedere un'informazione in classe, hai paura:
 del giudizio dei tuoi insegnanti e020100e
 del giudizio dei tuoi compagni e020200e
 di vincere la tua timidezza e020300e
 di niente e020400e
3. Il sostegno didattico, orientato al recupero e mirato all'approfondimento, fornito dalla tua scuola, è:
 Sufficiente e030100e
 Insufficiente e030200e
 Buono e030300e
4. Quali di questi aspetti ti fa maggiormente apprezzare il lavoro svolto dai tuoi insegnanti:
 Preparazione e040100e
 Disponibilità e040200e
 Autorevolezza e040300e
 Coerenza e040400e
 Intelligenza e040500e
 Comprensione e040600e
 Elasticità e040700e
Rapporto scuola – alunno
5. Frequentando questa scuola:
 ti sei convinto della validità della tua scelta e050100e
 hai dubitato della validità della tua scelta e050200e
 ti sei pentito della tua scelta e050300e
6. Ti è servito conseguire il diploma di un indirizzo sperimentale?
 si, dal punto di vista della:
(Rispondi solo se hai selezionato la voce 'si')
➢ preparazione tecnica – professionale e610100e
➢ preparazione teorica e610200e
➢ capacità di orientamento e scelta e610300e
 no, dal punto di vista della:
(Rispondi solo se hai selezionato la voce 'no')
➢ preparazione tecnica - professionale e620400e
➢ preparazione teorica e620500e
➢ capacità di orientamento e scelta e620600e

Servizi offerti dalla scuola
7. I laboratori e le attrezzature della scuola vengono utilizzati in modo:
 Scarso e070100e
 Sufficiente e070200e
 Buono e070300e
Valutazioni personali dell'allievo
8. Alla fine del tuo corso di diploma ti sembra di aver scelto l'indirizzo di studio a te più congeniale?
 Si e080100e
 No e080200e
9. Dopo il diploma che cosa hai scelto ( o comunque hai intenzione) di fare?
 frequentare l'università o un corso di diploma ad indirizzo
(Rispondi solo se hai selezionato la voce 'frequentare l'università')
➢ artistico e910100e
➢ economico e910200e
➢ tecnico - scientifico e910300e
➢ umanistico – letterario e910400e
 cercare lavoro nel settore
(Rispondi solo se hai selezionato la voce 'cercare lavoro'):
➢ primario (aziende agricole) e920500e
➢ secondario (industrie) e920600e
➢ terziario (servizi, turismo, società private) e920700e
➢ sociale e920800e
 non hai ancora deciso e930900e
10. Qual è l'aspetto fondamentale che la scuola ha messo in luce durante i tuoi anni di frequenza?
(puoi sceglierne più di una)
 cultura generale e100100e
 formazione professionale e100200e
 formazione umana e100300e
 volontà di conoscere e imparare e100400e
11. Secondo te il maggiore pregio della scuola che frequenti è:
 disponibilità dell'ambiente in cui studiavi e110100e
(ricca presenza di aule, palestre, biblioteche...)
 disponibilità di laboratori all'avanguardia e110200e
 ricche occasioni di stage - rapporti con il mondo del lavoro e110300e
 buon rapporto con i docenti e i compagni e110400e
 validità delle materie di studio e110500e
12. Secondo te la maggiore carenza della scuola che frequenti è:
 inadeguatezza dell'ambiente in cui studiavi e120100e
(mancanza di aule, palestre, biblioteche...)
 indisponibilità di laboratori all'avanguardia e120200e
 poche occasioni di stage - rapporti con il mondo del lavoro e120300e
 rapporto difficile con i docenti e i compagni e120400e
 materie di studio poco coinvolgenti e120500e
5.1.2 Software associato alla raccolta dei dati mediante la penna ottica
Il programma è scritto in Borland Delphi I versione 3.1 ed ha il compito di gestire i dati (risultati dei questionari) letti dalla penna ottica, verificando la loro correttezza, attendibilità e segnalando eventuali errori durante il loro inserimento.
Il software per controllare tutto ciò ha bisogno di 3 tabelle:
1. Tabella Domande: questa tabella contiene tutte le domande, contraddistinte univocamente da un codice, che sono presenti nel sondaggio diffuso agli studenti su supporto cartaceo;
2. Tabella Risposte: questa tabella contiene tutte le risposte possibili, contraddistinte univocamente da un codice, presenti all’interno del questionario diffuso agli studenti su supporto cartaceo;
3. Tabella Risultati: questa tabella contiene i risultati di tutti i questionari memorizzati e varrà utilizzata per l’elaborazione dei dati (medie, percentuali, distribuzioni, ecc..).
Il programma richiede inizialmente l’input da tastiera di alcune generalità riguardanti chi compie il questionario:
• Sesso (‘M’ o ‘m’ se maschio, ‘F’ o ‘f’ se femmina);
• Età ( compresa tra i 18 ed i 22 anni);
• Anni di frequenza presso l’istituto coinvolto nel sondaggio “qualità” (compresi tra i 4 e 8 anni).
Ognuna di queste generalità viene memorizzata all’interno del campo associato nella tabella risultati; gli altri campi della stessa tabella sono destinati a contenere il valore delle risposte che l’utente ha dato nel sondaggio. Queste infatti sono codificate mediante un codice a barre costituito da 6 cifre così definite:
• Le prime due cifre codificano la domanda;
• La terza e la quarta cifra codificano la risposta;
• Le ultime due non vengono utilizzate.
In questo modo l’operatore può leggere in modo sequenziale i codici a barre conoscendo sempre la risposta effettuata dall’utente e la domanda ad essa associata, che verranno di volta in volta visualizzate a video per un ulteriore controllo visivo da parte dell’operatore stesso.
Il programma ogni volta che viene inserito un codice a barre controlla la sua correttezza, ricava il codice della domanda (prime due cifre codice a barre) e risale alla sua descrizione grazie alla tabella domande; di seguito ricava il codice della risposta ( terza e quarta cifra del codice a barre) e risale alla sua descrizione grazie alla tabella risposte. Una volta ottenuti questi dati la domanda e la risposta vengono visualizzate a video ed il codice della risposta memorizzato nella tabella risultati.
Terminato l’inserimento dei risultati di un questionario l’operatore mediante un pulsante confermerà la sua volontà di memorizzarli; questa operazione avverrà poi se e solo se l’utente avrà risposto ad un numero minimo previsto di domande. L’operatore inoltre avrà la possibilità di eliminare i risultati di un questionario già memorizzato all’interno della tabella risultati, di visualizzare la distribuzione delle risposte date o consultare i dati finora raccolti.
Per la consultazione dei listati vedere appendice.

5.2 VIA INTERNET
5.2.1 Grafica del sito Web
Home page.
Fig. 5.1 – Index.htm
Nella figura sovrastante (fig. 5.1) è rappresentata la Home page del sito Web che descrive le caratteristiche del sondaggio e le istruzioni per la compilazione. Mediante la home page si accede alle altre pagine del sito (quelle contenenti il questionario) semplicemente cliccando sulle espressioni evidenziate in giallo.
Prima parte del questionario comprendente le domande sulla qualità della scuola dal punto di vista di ex - studente.
Fig. 5.2 – Test1.htm
Nella pagina precedente è riportata la finestra grafica (fig. 5.2) della pagina contenente la prima parte del questionario per i diplomati. La pagina presenta le domande seguite dalle possibili opzioni di risposta da selezionare con un click del mouse.
Parte della pagina per i post – diplomati che frequentano un corso di studi universitario.
Fig. 5.3 – test2.htm#studio
La pagina web rappresentata in figura (fig. 5.3) presenta le domande del questionario che riguardano coloro che si sono diplomati e che al momento della compilazione frequentano un corso di studi di tipo universitario. Le modalità per la compilazione sono uguali a quelle della prima parte.
Parte della pagina per i post – diplomati che esercitano una qualsiasi attività lavorativa.
Fig. 5.4 – Test2.htm#lavoro
Nella pagina precedente (pag. 22) appare la seconda parte della pagina del sito (fig. 5.4) riservata ai diplomati. In particolare questa seconda e ultima serie di domande è per coloro che al momento della compilazione del questionario svolgono un’attività lavorativa di qualsiasi genere. Alla fine della pagina sono posizionati i pulsanti di conferma o annullamento dei dati come per la pagina Test1.htm.
5.2.2 Questionario: SONDAGGIO SCOLASTICO
Sesso M F Anni di frequenza ____ Età ____
Rapporto alunni – docenti
1. Ciò che hai imparato a scuola dipendeva soprattutto da:
 impegno personale
 rapporto soddisfacente con i docenti
 rapporto di collaborazione con i compagni
 possibilità che ti offriva la scuola
 possibilità che ti offriva la famiglia
 sussidi didattici (biblioteca, testi vari, aule speciali)
2. Se dovevi chiedere un'informazione in classe, avevi paura:
 del giudizio dei tuoi insegnanti
 del giudizio dei tuoi compagni
 di vincere la tua timidezza
 di niente
3. Il sostegno didattico, orientato al recupero e mirato all'approfondimento, fornito dalla tua scuola, era:
 Sufficiente
 Insufficiente
 Buono
4. Quali di questi aspetti ti ha fatto maggiormente apprezzare il lavoro svolto dai tuoi insegnanti:
 Preparazione
 Disponibilità
 Autorevolezza
 Coerenza
 Intelligenza
 Comprensione
 Elasticità
Rapporto scuola – alunno
5. Avendo frequentato questa scuola:
 ti sei convinto della validità della tua scelta
 hai dubitato della validità della tua scelta
 ti sei pentito della tua scelta
6. Ti è servito conseguire il diploma di un indirizzo sperimentale?
 si, dal punto di vista della:
(Rispondi solo se hai selezionato la voce 'si')
➢ preparazione tecnica - professionale
➢ preparazione teorica
➢ capacità di orientamento e scelta
 no, dal punto di vista della:
(Rispondi solo se hai selezionato la voce 'no')
➢ preparazione tecnica - professionale
➢ preparazione teorica
➢ capacità di orientamento e scelta

Servizi offerti dalla scuola
7. I laboratori e le attrezzature della scuola venivano utilizzati in modo:
 Scarso
 Sufficiente
 Buono
Valutazioni personali dell'allievo
8. Alla fine del tuo corso di diploma ti sembra di aver scelto l'indirizzo di studio a te più congeniale?
 Si
 No
9. Dopo il diploma che cosa hai scelto ( o comunque hai intenzione) di fare?
 frequentare l'università o un corso di diploma ad indirizzo
(Rispondi solo se hai selezionato la voce 'frequentare l'università')
➢ artistico
➢ economico
➢ tecnico - scientifico
➢ umanistico – letterario
 cercare lavoro nel settore
(Rispondi solo se hai selezionato la voce 'cercare lavoro'):
➢ primario (aziende agricole)
➢ secondario (industrie)
➢ terziario (servizi, turismo, società private)
➢ sociale
 non hai ancora deciso
10. Qual è l'aspetto fondamentale che la scuola ha messo in luce durante i tuoi anni di frequenza?
(puoi sceglierne più di una)
 cultura generale
 formazione professionale
 formazione umana
 volontà di conoscere e imparare
11. Secondo te il maggiore pregio della scuola che hai frequentato è stato:
 disponibilità dell'ambiente in cui studiavi
(ricca presenza di aule, palestre, biblioteche...)
 disponibilità di laboratori all'avanguardia
 ricche occasioni di stage - rapporti con il mondo del lavoro
 buon rapporto con i docenti e i compagni
 validità delle materie di studio
12. Secondo te la maggiore carenza della scuola che hai frequentato è stata:
 inadeguatezza dell'ambiente in cui studiavi
(mancanza di aule, palestre, biblioteche...)
 indisponibilità di laboratori all'avanguardia
 poche occasioni di stage - rapporti con il mondo del lavoro
 rapporto difficile con i docenti e i compagni
 materie di studio poco coinvolgenti
PARTE SCUOLA (UNIVERSITA’)
13. Che difficoltà hai trovato nel passaggio da scuola superiore a studi universitari ?
(puoi scegliere più di una risposta)
 scarsa preparazione
 inettitudine alla mole di studio richiesta
 incapacità nell'adattarsi ad un tipo di vita più indipendente
 mancanza di rapporti stretti con i docenti
 nessuna difficoltà
14. In che cosa, invece, la tua scuola superiore ti aveva già abituato aiutandoti nell'inserimento alla realtà universitaria ? (puoi scegliere più di una risposta)
 pianificazione dello studio individuale
 criteri di valutazione in linea con quelli universitari
 trattazione di alcuni argomenti di competenza universitaria
 sviluppo di progetti multidisciplinari
15. Il ramo didattico del tuo corso di laurea (o diploma universitario) è affine a quello del tuo diploma ?
 si
 no
16. Quello che hai studiato durante i cinque anni di scuola superiore, quanto influisce attualmente nei tuoi studi ?
 niente
 poco
 abbastanza
 molto
17. Pensi di avere le stesse conoscenze e competenze degli altri studenti, avendo frequentato il tuo corso di studi superiori in quel dato istituto?
 si, ho le stesse conoscenze e competenze
 no, ho maggiori conoscenze e competenze
 no, ho inferiori conoscenze e competenze
 non so
PARTE LAVORO
18. Che difficoltà hai trovato nel passaggio da scuola superiore a mondo lavorativo ?
( puoi scegliere più di una risposta)
 scarsa preparazione
 inettitudine alla mole di impegno richiesta
 incapacità nell'adattarsi ad un tipo di vita più indipendente
 mancanza di esperienza
 nessuna difficoltà
19. In che cosa la tua scuola superiore ti ha aiutato ad inserirti nella realtà lavorativa ?
(puoi scegliere più di una risposta)
 pianificazione dello studio individuale
 affidandoti compiti importanti per responsabilizzarti
 sviluppo di progetti che hanno arricchito la tua esperienza
 organizzazione di stage in alcune industrie
 abituandoti alla costanza, all'impegno e al sacrificio
20. Il lavoro che stai facendo è affine al corso di studi che hai fatto ?
 si
 no
21. Quello che hai studiato durante i cinque anni di scuola superiore, quanto influisce nel tuo lavoro ?
 molto
 abbastanza
 poco
 niente
22. Quanta difficoltà hai incontrato per trovare lavoro con il diploma che hai conseguito?
molta
 abbastanza
 poco
 no
5.2.3 Software associato alla raccolta dei dati via Internet
Premessa:
Il WEB salva i risultati in un file di nome ‘Risultati.txt’ con il seguente criterio:
- ogni risposta è identificata da doppie virgolette (es.: “v1”);
- la risposta al quesito ‘sesso’ è una “m” o una “f”;
- la risposta al quesito ‘età’ è un numero;
- la risposta al quesito ‘anni di frequenza’ è un numero;
- la risposta ai quesiti che possono dar luogo ad una sola opzione è un codice di due caratteri il cui primo è “v” ed il secondo il progressivo delle opzioni così come sono enumerate nel questionario (es.: “v1”,”v3”, etc…);
- la risposta ai quesiti che possono dar luogo a più di un’opzione è un codice di cinque caratteri il cui primo è “x” seguito poi dal numero identificativo della domanda e a sua volta seguito da “v” ed il progressivo dell’opzione scelta (es.: “x10v1”,”x10v3”,”x11v1”, etc…);
- le risposte sono separate fra loro da una virgola;
- l’ultima risposta è la parola “invia” che indica la fine delle risposte di un questionario.
In riferimento al codice associato:
La funzione è scritta in linguaggio Pascal.
Tale funzione viene avviata quando si clicca sull’opzione ‘Aggiorna da Internet’ nel menù della form.
Viene assegnato un puntatore al file ‘Risultati.txt’ (F) se questo esiste. In caso contrario viene visualizzato a video un messaggio d’errore.
Con un ciclo vengono letti e salvati in un buffer (textp) i caratteri del file uno per volta. Durante la lettura, che procede fino alla fine del file, vengono controllati i caratteri che si leggono e gestite le varie operazioni da svolgere.
Le doppie virgolette indicano l’inizio e la fine del codice di ogni risposta. Questo codice viene salvato in una stringa (appval) e distinto nei due tipi possibili: risposta unica o risposta multipla. Nel caso in cui si tratti di un codice a risposta unica, viene salvato direttamente nella tabella (tramite l’appoggio in app) ‘Table1’ memorizzata su disco nel file ‘Tabella.db’ nella tupla corrispondente e nella colonna riservata a quella particolare domanda identificata da un contatore (ndomande). Nel caso invece si tratti di un codice di una domanda a risposta multipla, viene identificato il numero della domanda dal secondo e terzo carattere ed il valore della risposta dal quarto e quinto carattere, senza aumentare il contatore delle domande (ndomande). Dopo ciò viene memorizzato il valore della risposta (app) nella tabella.
Il carattere “,” mi permette di aumentare il contatore delle domande (ndomande).
Il ciclo viene ripetuto finché non s’incontrano i caratteri di ritorno a capo.
Una volta letti tutti i risultati, prima di chiudere il file, viene visualizzato a video un messaggio di lettura completata.
Per la consultazione dei listati vedere appendice.
6. DIFFUSIONI DEI RISULTATI
6.1 RISULTATI DEI QUESTIONARI
I risultati di questi questionari sono stati ottenuti sottoponendo il test ad un campione di studenti che stanno frequentando l’istituto coinvolto nel sondaggio (le prime 12 domande) e raccogliendo dati via Internet con la compilazione del medesimo (tutte le 22 domande). In base alle risposte memorizzate il programma calcola automaticamente le informazioni utili al fine del sondaggio e le visualizza all’interno di alcune tabelle, a disposizione dell’operatore, come segue:
⇨ Numero di utenti maschi e femmine coinvolti
Sesso
Numero utenti
‘M’ (maschio)
253
‘F’ (femmina)
255
⇨ Distribuzione degli utenti per anni di frequenza
Anni di frequenza
Numero utenti
4
300
5
176
6
19
7
4
8
4
⇨ Distribuzione degli utenti per età
Età
Numero utenti
18
270
19
190
20
30
21
10
22
3
⇨ Distribuzione delle risposte in percentuale
Domanda
Se devi chiedere un'informazione in classe, hai paura:
Percentuale
Risposta
33%
Del giudizio dei tuoi insegnanti
24%
Del giudizio dei tuoi compagni
2%
Di vincere la tua timidezza
41%
Di niente
L’utente grazie a due bottoni “AVANTI” e “INDIETRO” può scorrere tutte le domande del questionario e vedere la distribuzione delle risposte date.
⇨ Distribuzione delle risposte in ogni questionario
N
Sesso
Età
Anni di frequenza
Risp1
Risp2
Risp3…..Risp12
1
M
19
5
V1
V3
….
2
F
18
4
V2
V1

N: numero del questionario;
RISP1: valore della risposta alla domanda n°1
RISP2: valore della risposta alla domanda n°2
7. MANUALE UTENTE
Una volta lanciato il programma principale comparirà a video una form contenente un menù e l’operatore non dovrà far altro che scegliere con il mouse la voce a lui più congeniale. In base alla scelta effettuata verrà attivata una particolare finestra all’interno della quale l’utente potrà operare. Per fare ciò non viene richiesta una conoscenza informatica specifica in quanto i programmi sono semplici e immediati da utilizzare. Generalmente all’interno di ogni form sono presenti dei bottoni che, se selezionati, abilitano l’esecuzione di determinati comandi. Se l’utente si dovesse trovare in difficoltà o non sapesse su quale bottone cliccare, basterà che rimanga fermo con il cursore del mouse sopra il componente (botton2, label, memo, ecc.) da lui prescelto, in modo da permettere la visualizzazione di una frase che delucidi l’utente stesso sulle operazioni da svolgere.
Tutte le operazioni che l’utente può volgere all’interno di una form sono controllate dal programma che di volta in volta, in base alla situazione, abilita o disabilita alcuni componenti quali pulsanti, tabelle, caselle edit, ecc.

REQUISITI MINIMI DI SISTEMA

• Sistema operativo Microsoft Windows 95 o successivi;
• Accesso a Internet;
• Penna ottica non seriale con emulazione tastiera.
INSTALLAZIONE

Per l’installazione basta lanciare il programma “install.exe” contenuto all’interno del floppy di setup; per ulteriori informazioni consultare il file “leggimi.txt” contenuto all’interno dello stesso dischetto.

8. CONCLUSIONI
Il tempo totale di realizzazione del progetto è stato in totale di 80 ore per persona.
70 ore per l’analisi, la produzione del software applicativo così suddivise:
• Lavoro individuale extra - scolastico (10 ore);
• Utilizzo del laboratorio di Sistemi (40 ore);
• Utilizzo del laboratorio di Informatica, Matematica e Calcolo (20 ore).
10 ore per la stesura della documentazione finale, in gran parte svolta a casa o in altri laboratori.
L’avanzamento del progetto è avvenuto con regolarità e senza particolari inconvenienti o problemi tecnici, fatta eccezione per la configurazione della penna ottica e la ricerca del font associato al codice a barre. Per la risoluzione di questo ed altri piccoli problemi abbiamo potuto contare sull’aiuto dei nostri docenti di teoria e laboratorio (Sistemi, Informatica).

L’esperienza si è rivelata costruttiva in quanto ci ha permesso di conseguire gli obiettivi da noi prefissati aumentando il nostro grado di competenza nella programmazione e la nostra esperienza nello sviluppo di un progetto pluridisciplinare di gruppo.

Nuovi sviluppi
E’ possibile arricchire il progetto con funzioni di visualizzazione grafica dei risultati, inserendo diagrammi vari, nuove tabelle e studi statistici più approfonditi
INDICE
1. Tabelle del database pag. 34
1.1 Domande gestite dalla penna ottica
1.2 Domande gestite via internet pag. 35
1.3 Risposte lette dalla penna ottica pag. 37
1.4 Risposte lette da internet pag. 39
1.5 Risultati pag. 43
2. Listati programmi pag. 44
2.1 Progetto pricipale: School.dpr
2.2 Acquisisci pag. 45
2.3 Aggiorna pag. 59
2.4 Dataint pag. 67
2.5 Datamodule pag. 68
2.6 Percentuali pag. 69
2.7 Questionari pag. 95
2.8 Stat pag. 96
2.9 Vis_Risposte pag. 99
2.10 Visualizza pag. 116
2.11 Unit1 pag. 119
TABELLE DEL DATABASE
⇨ ‘Domande.db’
Codice
Domanda
Descrizione della domanda
1
1. Ciò che hai imparato a scuola dipende soprattutto da:
2
2. Se devi chiedere un'informazione in classe, hai paura:
3
3. Il sostegno didattico, orientato al recupero e mirato all'approfondimento, fornito dalla tua scuola è:
4
4. Quali di questi aspetti ti fa maggiormente apprezzare il lavoro svolto dai tuoi insegnanti:
5
5. Frequentando questa scuola:
7
7. I laboratori e le attrezzature della scuola vengono utilizzati in modo:
8
8. Alla fine del tuo corso di diploma ti sembra di aver scelto l'indirizzo di studio a te più congeniale?
10
10. Qual è l'aspetto fondamentale che la scuola ha messo in luce durante i tuoi anni di frequenza?
11
11. Secondo te il maggiore pregio della scuola che frequenti è :
12
12. Secondo te la maggiore carenza della scuola che frequenti è :
61
6. Ti è servito conseguire il diploma di un indirizzo sperimentale dal punto di vista della:
62
6. Non ti è servito conseguire il diploma di un indirizzo sperimentale dal punto di vista della:
91
9. Dopo il diploma hai scelto ( o comunque hai intenzione) di frequentare l'università o un corso di diploma ad indirizzo
92
9. Dopo il diploma hai scelto ( o comunque hai intenzione) di cercare lavoro nel settore
93
9. Dopo il diploma che cosa hai scelto ( o comunque hai intenzione) di fare?
⇨ ‘Domandeint.db’
Codice
Domanda
Descrizione della domanda
1
1. Ciò che hai imparato a scuola dipende soprattutto da:
2
2. Se devi chiedere un'informazione in classe, hai paura:
3
3. Il sostegno didattico, orientato al recupero e mirato all'approfondimento, fornito dalla tua scuola è:
4
4. Quali di questi aspetti ti fa maggiormente apprezzare il lavoro svolto dai tuoi insegnanti:
5
5. Frequentando questa scuola:
7
7. I laboratori e le attrezzature della scuola vengono utilizzati in modo:
8
8. Alla fine del tuo corso di diploma ti sembra di aver scelto l'indirizzo di studio a te più congeniale?
10
10. Qual è l'aspetto fondamentale che la scuola ha messo in luce durante i tuoi anni di frequenza?
11
11. Secondo te il maggiore pregio della scuola che frequenti è :
12
12. Secondo te la maggiore carenza della scuola che frequenti è :
13
13. Che difficoltà hai trovato nel passaggio da scuola superiore a studi universitari ?
14
14. In che cosa, invece, la tua scuola superiore ti aveva già abituato aiutandoti
Nell'inserimento alla realtà universitaria ?
15
15. Il ramo didattico del tuo corso di laurea (o diploma universitario) è affine a
Quello del tuo diploma ?
16
16. Quello che hai studiato durante i cinque anni di scuola superiore, quanto
Influisce attualmente nei tuoi studi ?
17
17. Pensi di avere le stesse conoscenze e competenze degli altri studenti,
avendo frequentato il tuo corso di studi superiori in quel dato istituto?
18
18. Che difficoltà hai trovato nel passaggio da scuola superiore a mondo
Lavorativo ?
19
19. In che cosa la tua scuola superiore ti ha aiutato ad inserirti nella realtà lavorativa ?
20
20. Il lavoro che stai facendo è affine al corso di studi che hai fatto ?
21
21. Quello che hai studiato durante i cinque anni di scuola superiore, quanto
Influisce nel tuo lavoro ?
22
22. Quanta difficoltà hai incontrato per trovare lavoro con il diploma che hai
Conseguito?
61
6. Ti è servito conseguire il diploma di un indirizzo sperimentale dal punto di vista della:
62
6. Non ti è servito conseguire il diploma di un indirizzo sperimentale dal punto di vista della:
91
9. Dopo il diploma hai scelto ( o comunque hai intenzione) di frequentare l'università o un corso di diploma ad indirizzo
92
9. Dopo il diploma hai scelto ( o comunque hai intenzione) di cercare lavoro nel settore
93
9. Dopo il diploma che cosa hai scelto ( o comunque hai intenzione) di fare?
⇨ ‘Risposte.db’
(Il campo ‘Totale’ identifica il totale degli utenti che hanno selezionato quella particolare risposta)
Codice Domanda
Codice Risposta
Descrizione della risposta
Totale
1
V1
Impegno personale
10
1
V2
Rapporto soddisfacente con i docenti
4
1
V3
Rapporto di collaborazione con i compagni
1
1
V4
Possibilità che ti offriva la scuola
2
1
V5
Possibilità che ti offre la famiglia
1
1
V6
Sussidi didattici (biblioteca, testi vari, aule speciali).
2
2
V1
del giudizio dei tuoi insegnanti
5
2
V2
del giudizio dei tuoi compagni
5
2
V3
di vincere la tua timidezza
2
2
V4
di niente
8
3
V1
Sufficiente
8
3
V2
Insufficiente
2
3
V3
Buono
10
4
V1
Preparazione
7
4
V2
Disponibilità
2
4
V3
Autorevolezza
2
4
V4
Coerenza
3
4
V5
Intelligenza
2
4
V6
Comprensione
2
4
V7
Elasticità
1
5
V1
Ti sei convinto della validità della tua scelta
14
5
V2
hai dubitato della validità della tua scelta
3
5
V3
Ti sei pentito della tua scelta
3
7
V1
Scarso
3
7
V2
Sufficiente
6
7
V3
Buono
11
8
V1
Si
16
8
V2
No
4
10
V1
Cultura generale
14
10
V2
Formazione professionale
3
10
V3
Formazione umana
2
10
V4
Volontà di conoscere e imparare
1
11
V1
Disponibilità dell'ambiente in cui studi (ricca presenza di aule, palestre, biblioteche)
10
11
V2
Disponibilità di laboratori all'avanguardia
2
11
V3
Ricche occasioni di stage – rapporti con il mondo del lavoro
2
11
V4
buon rapporto con i docenti e i compagni
5
11
V5
Validità delle materie di studio
1
12
V1
Inadeguatezza dell'ambiente in cui studi (mancanza di aule, palestre, biblioteche...)
2
12
V2
Indisponibilità di laboratori all'avanguardia
4
12
V3
Poche occasioni di stage – rapporti con il mondo del lavoro
8
12
V4
Rapporto difficile con i docenti e i compagni
3
12
V5
Materie di studio poco coinvolgenti
6
61
V1
Preparazione tecnica – professionale
3
61
V2
Preparazione teorica
4
61
V3
Capacità di orientamento e scelta
2
62
V4
Preparazione tecnica-professionale
4
62
V5
Preparazione teorica
3
62
V6
Capacità di orientamento e scelta
3
91
V1
Artistico
1
91
v2
Economico
3
91
v3
Tecnico – scientifico
4
91
v4
Umanistico – letterario
2
92
v5
Primario (aziende agricole)
1
92
v6
Secondario (industrie)
2
92
v7
Terziario (servizi, turismo, società private)
4
92
v8
Sociale
2
93
v9
non hai ancora deciso
1
⇨ ‘Risposteint.db’
(Il campo ‘Totale’ identifica il totale degli utenti che hanno selezionato quella particolare risposta)
Codice Domanda
Codice Risposta
Descrizione della risposta
Totale
1
V1
Impegno personale
10
1
V2
Rapporto soddisfacente con i docenti
4
1
V3
Rapporto di collaborazione con i compagni
1
1
V4
Possibilità che ti offriva la scuola
2
1
V5
Possibilità che ti offre la famiglia
1
1
V6
Sussidi didattici (biblioteca, testi vari, aule speciali).
2
2
V1
del giudizio dei tuoi insegnanti
5
2
V2
del giudizio dei tuoi compagni
5
2
V3
di vincere la tua timidezza
2
2
V4
di niente
8
3
V1
Sufficiente
8
3
V2
Insufficiente
2
3
V3
Buono
10
4
V1
Preparazione
7
4
V2
Disponibilità
2
4
V3
Autorevolezza
2
4
V4
Coerenza
3
4
V5
Intelligenza
2
4
V6
Comprensione
2
4
V7
Elasticità
1
5
V1
Ti sei convinto della validità della tua scelta
14
5
V2
hai dubitato della validità della tua scelta
3
5
V3
Ti sei pentito della tua scelta
3
7
V1
Scarso
3
7
V2
Sufficiente
6
7
V3
Buono
11
8
V1
Si
16
8
V2
No
4
10
V1
Cultura generale
14
10
V2
Formazione professionale
3
10
V3
Formazione umana
2
10
V4
Volontà di conoscere e imparare
1
11
V1
Disponibilità dell'ambiente in cui studi (ricca presenza di aule, palestre, biblioteche)
10
11
V2
Disponibilità di laboratori all'avanguardia
2
11
V3
Ricche occasioni di stage – rapporti con il mondo del lavoro
2
11
V4
buon rapporto con i docenti e i compagni
5
11
V5
Validità delle materie di studio
1
12
V1
Inadeguatezza dell'ambiente in cui studi (mancanza di aule, palestre, biblioteche...)
2
12
V2
Indisponibilità di laboratori all'avanguardia
4
12
V3
Poche occasioni di stage – rapporti con il mondo del lavoro
8
12
V4
Rapporto difficile con i docenti e i compagni
3
12
V5
Materie di studio poco coinvolgenti
6
13
V1
Scarsa preparazione
6
13
V2
Inettitudine alla mole di lavoro richiesta
4
13
V3
Incapacità nell’adattarsi ad un tipo di vita più indipendente
10
13
V4
Mancanza di rapporti stretti con i docenti
2
13
V5
Nessuna difficoltà
1
14
V1
Pianificazione dello studio individuale
6
14
V2
Criteri di valutazione in linea con quelli universitari
5
14
V3
Trattazione di alcuni argomenti di competenza universitaria
3
14
V4
Sviluppo di progetti multidisciplinari
8
15
V1
Si
8
15
V2
No
12
16
V1
Niente
7
16
V2
Poco
10
16
V3
Abbastanza
6
16
V4
Molto
9
17
V1
Si, ho le stesse conoscenze e competenze
5
17
V2
No, ho maggiori conoscenze e competenze
5
17
V3
No, ho inferiori conoscenze e competenze
6
17
V4
Non so
3
18
V1
Scarsa preparazione
9
18
V2
Inettitudine alla mole di impegno richiesta
12
18
V3
Incapacità nell’adattarsi ad un tipo di vita più indipendente
8
18
V4
Mancanza di esperienza
7
18
V5
Nessuna difficoltà
8
19
V1
Pianificazione dello studio individuale
6
19
V2
Affidandoti compiti importanti per responsabilizzarti
1
19
V3
Sviluppo di progetti che hanno arricchito la tua esperienza
10
19
V4
Organizzazione di stage in alcune industrie
9
19
V5
Abituandoti alla costanza, all’impegno e al sacrificio
5
20
V1
Si
6
20
V2
No
8
21
V1
Molto
8
21
V2
Abbastanza
4
21
V3
Poco
2
21
V4
Niente
7
22
V1
Abbastanza
4
22
V2
Poco
2
22
V3
No
9
61
V1
Preparazione tecnica – professionale
3
61
V2
Preparazione teorica
4
61
V3
Capacità di orientamento e scelta
2
62
V4
Preparazione tecnica-professionale
4
62
V5
Preparazione teorica
3
62
V6
Capacità di orientamento e scelta
3
91
V1
Artistico
1
91
v2
Economico
3
91
v3
Tecnico – scientifico
4
91
v4
Umanistico – letterario
2
92
v5
Primario (aziende agricole)
1
92
v6
Secondario (industrie)
2
92
v7
Terziario (servizi, turismo, società private)
4
92
v8
Sociale
2
93
v9
non hai ancora deciso
1
⇨ ‘Risultati.db’
N
Sesso
Età
Annifreq
Risp1
Risp2
Risp3…..Risp12
Fatte
1
M
19
5
V1
V3
….
6
2
F
18
4
V2
V1

4
N: Codice che identifica il numero del questionario;
ANNIFREQ: Anni di frequenza presso l’istituto coinvolto nel sondaggio
RISP1: valore della risposta alla domanda n°1
RISP2: valore della risposta alla domanda n°2
FATTE: numero di risposte date nel questionario numero N.
⇨ ‘Tabella.db’
N
Sesso
Età
Anni di frequenza
Risp1
Risp2
Risp3…..Risp12
Invia
1
M
19
5
V1
V3
….
Invia
2
F
18
4
V2
V1

Invia
N: Codice che identifica il numero del questionario;
ANNI DI FREQUENZA: Anni di frequenza presso l’istituto coinvolto nel sondaggio
RISP1: valore della risposta alla domanda n°1
RISP2: valore della risposta alla domanda n°2
INVIA: sempre memorizzata la stringa ‘Invia’ che identifica la spedizione dei risultati.
LISTATI DEI PROGRAMMI
School.dpr
program school;
uses
Forms,
Unit1 in 'Unit1.pas' {Form1},
aggiorna in 'aggiorna.pas' {internet},
acquisisci in 'acquisisci.pas' {ottica1},
datamodule in 'datamodule.pas' {DataModule1: TDataModule},
questionari in 'questionari.pas' {ottica4},
vis_risposte in 'vis_risposte.pas' {ottica3},
visualizza in 'visualizza.pas' {ottica2},
stat in 'stat.pas' {statint},
percentuali in 'percentuali.pas' {perc},
dataint in 'dataint.pas' {DataModule2: TDataModule};
{$R *.RES}
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.CreateForm(Tinternet, internet);
Application.CreateForm(Tottica1, ottica1);
Application.CreateForm(TDataModule1, DataModule1);
Application.CreateForm(Tottica4, ottica4);
Application.CreateForm(Tottica3, ottica3);
Application.CreateForm(Tottica2, ottica2);
Application.CreateForm(Tstatint, statint);
Application.CreateForm(Tperc, perc);
Application.CreateForm(TDataModule2, DataModule2);
Application.Run;
end.
Acquisisci.pas
unit acquisisci;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Mask, DBCtrls, Db, DBTables, ExtCtrls, Grids, DBGrids, Buttons;
type
Tottica1 = class(TForm)
Panel1: TPanel;
Panel2: TPanel;
Panel3: TPanel;
Panel4: TPanel;
Panel5: TPanel;
Panel7: TPanel;
Panel6: TPanel;
Label1: TLabel;
Label2: TLabel;
Panel8: TPanel;
Panel9: TPanel;
Label4: TLabel;
Panel10: TPanel;
Panel11: TPanel;
Panel12: TPanel;
Panel13: TPanel;
Panel14: TPanel;
Panel15: TPanel;
Panel16: TPanel;
DBGrid1: TDBGrid;
Button1: TButton;
Panel17: TPanel;
Label5: TLabel;
Memo3: TMemo;
Panel18: TPanel;
Label6: TLabel;
DBMemo1: TDBMemo;
Button2: TButton;
Label7: TLabel;
DBMemo2: TDBMemo;
BitBtn1: TBitBtn;
DBEdit1: TDBEdit;
DBEdit2: TDBEdit;
DBEdit3: TDBEdit;
Button3: TButton;
Panel20: TPanel;
Panel19: TPanel;
DataSource1: TDataSource;
DataSource2: TDataSource;
DataSource3: TDataSource;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Memo3Change(Sender: TObject);
procedure trova_risp(nrisp:variant;var val:string);
procedure carica(ndom:integer;val:string);
procedure BitBtn1Click(Sender: TObject);
procedure DBEdit1KeyPress(Sender: TObject; var Key: Char);
procedure DBEdit2KeyPress(Sender: TObject; var Key: Char);
procedure DBEdit3KeyPress(Sender: TObject; var Key: Char);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Aggiorna;
private
{ Private declarations }
public
errore,nuovo,inserito,fatto:boolean;
str,comodo: string;
{ Public declarations }
end;
var
ottica1: Tottica1;
implementation
uses visualizza, datamodule;
{$R *.DFM}
procedure Tottica1.FormCreate(Sender: TObject);
begin
dbmemo1.clear;
dbmemo2.Clear;
comodo:='';
errore:=false;
nuovo:=false;
inserito:=false;
fatto:=false;
button1.enabled:=false;
end;
procedure tottica1.trova_risp(nrisp:variant;var val:string);
begin
case nrisp of
1: val:='v1';
2: val:='v2';
3: val:='v3';
4: val:='v4';
5: val:='v5';
6: val:='v6';
7: val:='v7';
8: val:='v8';
9: val:='v9';
end;
end;
procedure Tottica1.Button1Click(Sender: TObject);
begin
datamodule1.table3.edit;
if datamodule1.table3['fatte']=0 then
begin
Aggiorna;
datamodule1.table3.edit;
dbgrid1.enabled:=true;
nuovo:=false;
end
else
begin
errore:=false;
if (dbedit1.Text'm')and(dbedit1.Text'M')and(dbedit1.Text'f')and(dbedit1.Text'F')then
begin
errore:=true;
dbedit1.Clear;
showmessage('ATTENZIONE: il sesso nel questionario non è stato identificato dalla lettera M (maschio) o dalla lettera F (femmina)');
end;
if (dbedit2.Text'18')and(dbedit2.Text'19')and(dbedit2.Text'20')and(dbedit2.Text'21')
and (dbedit2.Text'22')then
begin
errore:=true;
dbedit2.Clear;
showmessage('ATTENZIONE: l''età non è compresa tra i 18 ed i 22 anni');
end;
if (dbedit3.Text'4')and(dbedit3.Text'5')and(dbedit3.Text'6')and(dbedit3.Text'7')and(dbedit3.Text'8')then
begin
errore:=true;
dbedit3.Clear;
showmessage('ATTENZIONE: gli anni di frequenza non sono compresi tra 4 e 8');
end;
if errore then
begin
showmessage('Il questionario non è stato memorizzato.Completare i dati errati e ripetere l''operazione di conferma dei risultati.');
errore:=false;
fatto:=false;
end
else
begin
if (datamodule1.table3['fatte']>8)and (datamodule1.table3['fatte']0 do
begin
ultimo:=copy(app2,1,2);
num:=length(app2);
app2:=copy(app2,3,num-2);
vet:=vararrayCreate([0,1],varvariant);
vet[0]:=dom;
vet[1]:=ultimo;
if datamodule2.risint.locate('NDomanda;NRisposta',vet,[loCaseInsensitive])=true then
begin
datamodule2.risint.edit;
datamodule2.risint['totale']:=datamodule2.risint['totale']-1;
datamodule2.risint.post;
end;
end; // chiude il while ... do
end; //chiude il for
datamodule2.int.delete;
end; // chiude la conferma
if datamodule2.int.IsEmpty=false then
dbgrid1.ReadOnly:=true;
end; // chiude if not eof
end;
procedure Tinternet.Button3Click(Sender: TObject);
begin
internet.close;
end;
procedure Tinternet.FormShow(Sender: TObject);
begin
datasource1.dataset:=datamodule2.int;
dbgrid1.ReadOnly:=true;
end;
end.
Dataint.pas
unit dataint;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Db, DBTables;
type
TDataModule2 = class(TDataModule)
int: TTable;
domint: TTable;
risint: TTable;
procedure DataModule2Create(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
DataModule2: TDataModule2;
implementation
{$R *.DFM}
procedure TDataModule2.DataModule2Create(Sender: TObject);
var
dir:string;
begin
getdir(0,dir);
int.databasename:=dir;
domint.databasename:=dir;
risint.databasename:=dir;
int.active:=true;
domint.active:=true;
risint.active:=true;
int.Edit;
risint.edit;
domint.edit;
end;
end.
Datamodule.pas
unit datamodule;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Db, DBTables;
type
TDataModule1 = class(TDataModule)
Table1: TTable;
Table2: TTable;
Table3: TTable;
procedure DataModule1Create(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
DataModule1: TDataModule1;
implementation
{$R *.DFM}
procedure TDataModule1.DataModule1Create(Sender: TObject);
var
dir:string;
begin
getdir(0,dir);
table1.databasename:=dir;
table2.databasename:=dir;
table3.databasename:=dir;
table1.active:=true;
table2.active:=true;
table3.active:=true;
table1.edit;
table2.edit;
table3.edit;
end;
end.
Percentuali.pas
unit percentuali;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ExtCtrls, Grids, DBGrids, Db, DBTables, StdCtrls, DBCtrls;
type
Tperc = class(TForm)
Panel1: TPanel;
Panel2: TPanel;
Panel3: TPanel;
Panel4: TPanel;
Panel5: TPanel;
Panel6: TPanel;
Panel8: TPanel;
Panel9: TPanel;
Panel10: TPanel;
Panel11: TPanel;
Panel12: TPanel;
Panel13: TPanel;
Panel14: TPanel;
Panel16: TPanel;
Panel15: TPanel;
Label1: TLabel;
Panel17: TPanel;
Panel18: TPanel;
Panel19: TPanel;
Panel20: TPanel;
Panel21: TPanel;
Panel22: TPanel;
Panel23: TPanel;
Panel24: TPanel;
Panel25: TPanel;
Panel26: TPanel;
Panel27: TPanel;
Panel28: TPanel;
Panel29: TPanel;
Button1: TButton;
DBMemo1: TDBMemo;
Button2: TButton;
Button3: TButton;
Label2: TLabel;
DataSource1: TDataSource;
Panel30: TPanel;
Panel31: TPanel;
Panel32: TPanel;
Panel33: TPanel;
Panel34: TPanel;
Panel35: TPanel;
Panel36: TPanel;
Panel37: TPanel;
Panel38: TPanel;
Panel39: TPanel;
Panel40: TPanel;
Panel41: TPanel;
Panel42: TPanel;
Panel43: TPanel;
Memo2: TMemo;
Memo3: TMemo;
Memo4: TMemo;
Memo5: TMemo;
Memo6: TMemo;
Memo7: TMemo;
Memo8: TMemo;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Panel7: TPanel;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure risposte;
procedure Button3Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure FormShow(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
nd,tot_risp1,tot_risp2,tot_risp3,tot_risp4,tot_risp5,tot_risp6:short;
tot_risp7,tot_risp8,tot_risp9,tot_risp10,tot_risp11,tot_risp12:short;
tot_risp13,tot_risp14,tot_risp15,tot_risp16,tot_risp17:short;
tot_risp18,tot_risp19,tot_risp20,tot_risp21,tot_risp22:short;
r:string;
vet: variant;
trovato:boolean;
end;
var
perc: Tperc;
implementation
uses datamodule, dataint;
{$R *.DFM}
procedure Tperc.Button1Click(Sender: TObject);
begin
perc.close;
end;
procedure Tperc.FormCreate(Sender: TObject);
begin
nd:=1;
button2.enabled:=false;
tot_risp1:=0; tot_risp2:=0; tot_risp3:=0; tot_risp4:=0; tot_risp5:=0; tot_risp6:=0;
tot_risp7:=0; tot_risp8:=0; tot_risp9:=0; tot_risp10:=0; tot_risp11:=0; tot_risp12:=0;
tot_risp13:=0; tot_risp14:=0; tot_risp15:=0; tot_risp16:=0; tot_risp17:=0;
tot_risp18:=0; tot_risp19:=0; tot_risp20:=0; tot_risp21:=0; tot_risp22:=0;
end;
procedure Tperc.risposte;
begin
trovato:=false;
vet:=vararrayCreate([0,1],varvariant);
if nd=1 then
begin
vet[0]:=1;
vet[1]:='v1';
trovato:=datamodule2.risint.locate('NDomanda;NRisposta',vet,[loCaseInsensitive]);
if trovato then
begin
if tot_risp10 then
label3.caption:=' '+inttostr((datamodule2.risint['totale']/tot_risp1)*100)+'% '
else label3.Caption:=' 0% ';
memo2.Text:=vartostr(datamodule2.risint['Descrizione']);
end;
vet[1]:='v2';
trovato:=datamodule2.risint.locate('NDomanda;NRisposta',vet,[loCaseInsensitive]);
if trovato then
begin
if tot_risp10 then
label4.caption:=' '+inttostr((datamodule2.risint['totale']/tot_risp1)*100)+'% '
else label4.Caption:=' 0% ';
memo3.Text:=vartostr(datamodule2.risint['Descrizione']);
end;
vet[1]:='v3';
trovato:=datamodule2.risint.locate('NDomanda;NRisposta',vet,[loCaseInsensitive]);
if trovato then
begin
if tot_risp10 then
label5.caption:=' '+inttostr((datamodule2.risint['totale']/tot_risp1)*100)+'% '
else label5.Caption:=' 0% ';
memo4.Text:=vartostr(datamodule2.risint['Descrizione']);
end;
vet[1]:='v4';
trovato:=datamodule2.risint.locate('NDomanda;NRisposta',vet,[loCaseInsensitive]);
if trovato then
begin
if tot_risp10 then
label6.caption:=' '+inttostr((datamodule2.risint['totale']/tot_risp1)*100)+'% '
else label6.Caption:=' 0% ';
memo5.Text:=vartostr(datamodule2.risint['Descrizione']);
end;
vet[1]:='v5';
trovato:=datamodule2.risint.locate('NDomanda;NRisposta',vet,[loCaseInsensitive]);
if trovato then
begin
if tot_risp10 then
label7.caption:=' '+inttostr((datamodule2.risint['totale']/tot_risp1)*100)+'% '
else label7.Caption:=' 0% ';
memo6.Text:=vartostr(datamodule2.risint['Descrizione']);
end;
vet[1]:='v6';
trovato:=datamodule2.risint.locate('NDomanda;NRisposta',vet,[loCaseInsensitive]);
if trovato then
begin
if tot_risp10 then
label8.caption:=' '+inttostr((datamodule2.risint['totale']/tot_risp1)*100)+'% '
else label8.Caption:=' 0% ';
memo7.Text:=vartostr(datamodule2.risint['Descrizione']);
end;
button2.enabled:=false;
nd:=1;
memo3.visible:=true;
memo4.visible:=true;
memo5.visible:=true;
memo6.visible:=true;
memo7.visible:=true;
memo8.visible:=false;
label3.visible:=true;
label4.visible:=true;
label5.visible:=true;
label6.visible:=true;
label7.visible:=true;
label8.visible:=true;
label9.visible:=false;
trovato:=datamodule2.domint.locate('NDomanda',nd,[loCaseInsensitive]);
end;
if nd=2 then
begin
vet[0]:=2;
vet[1]:='v1';
trovato:=datamodule2.risint.locate('NDomanda;NRisposta',vet,[loCaseInsensitive]);
if trovato then
begin
if tot_risp20 then
label3.caption:=' '+inttostr((datamodule2.risint['totale']/tot_risp2)*100)+'% '
else label3.Caption:=' 0% ';
memo2.Text:=vartostr(datamodule2.risint['Descrizione']);
end;
vet[1]:='v2';
trovato:=datamodule2.risint.locate('NDomanda;NRisposta',vet,[loCaseInsensitive]);
if trovato then
begin
if tot_risp20 then
label4.caption:=' '+inttostr((datamodule2.risint['totale']/tot_risp2)*100)+'% '
else label4.Caption:=' 0% ';
memo3.Text:=vartostr(datamodule2.risint['Descrizione']);
end;
vet[1]:='v3';
trovato:=datamodule2.risint.locate('NDomanda;NRisposta',vet,[loCaseInsensitive]);
if trovato then
begin
if tot_risp20 then
label5.caption:=' '+inttostr((datamodule2.risint['totale']/tot_risp2)*100)+'% '
else label5.Caption:=' 0% ';
memo4.Text:=vartostr(datamodule2.risint['Descrizione']);
end;
vet[1]:='v4';
trovato:=datamodule2.risint.locate('NDomanda;NRisposta',vet,[loCaseInsensitive]);
if trovato then
begin
if tot_risp20 then
label6.caption:=' '+inttostr((datamodule2.risint['totale']/tot_risp2)*100)+'% '
else label6.Caption:=' 0% ';
memo5.Text:=vartostr(datamodule2.risint['Descrizione']);
end;
memo3.visible:=true;
memo4.visible:=true;
memo5.visible:=true;
memo6.visible:=false;
memo7.visible:=false;
memo8.visible:=false;
label3.visible:=true;
label4.visible:=true;
label5.visible:=true;
label6.visible:=true;
label7.visible:=false;
label8.visible:=false;
label9.visible:=false;
button2.enabled:=true;
trovato:=datamodule2.domint.locate('NDomanda',nd,[loCaseInsensitive]);
end;
if nd=3 then
begin
vet[0]:=3;
vet[1]:='v1';
trovato:=datamodule2.risint.locate('NDomanda;NRisposta',vet,[loCaseInsensitive]);
if trovato then
begin
if tot_risp30 then
label3.caption:=' '+inttostr((datamodule2.risint['totale']/tot_risp3)*100)+'% '
else label3.Caption:=' 0% ';
memo2.Text:=vartostr(datamodule2.risint['Descrizione']);
end;
vet[1]:='v2';
trovato:=datamodule2.risint.locate('NDomanda;NRisposta',vet,[loCaseInsensitive]);
if trovato then
begin
if tot_risp30 then
label4.caption:=' '+inttostr((datamodule2.risint['totale']/tot_risp3)*100)+'% '
else label4.Caption:=' 0% ';
memo3.Text:=vartostr(datamodule2.risint['Descrizione']);
end;
vet[1]:='v3';
trovato:=datamodule2.risint.locate('NDomanda;NRisposta',vet,[loCaseInsensitive]);
if trovato then
begin
if tot_risp30 then
label5.caption:=' '+inttostr((datamodule2.risint['totale']/tot_risp3)*100)+'% '
else label5.Caption:=' 0% ';
memo4.Text:=vartostr(datamodule2.risint['Descrizione']);
end;
memo2.Visible:=true;
memo3.visible:=true;
memo4.visible:=true;
memo5.visible:=false;
memo6.visible:=false;
memo7.visible:=false;
memo8.visible:=false;
label3.visible:=true;
label4.visible:=true;
label5.visible:=true;
label6.visible:=false;
label7.visible:=false;
label8.visible:=false;
label9.visible:=false;
trovato:=datamodule2.domint.locate('NDomanda',nd,[loCaseInsensitive]);
end;
if nd=4 then
begin
vet[0]:=4;
vet[1]:='v1';
trovato:=datamodule2.risint.locate('NDomanda;NRisposta',vet,[loCaseInsensitive]);
if trovato then
begin
if tot_risp40 then
label3.caption:=' '+inttostr((datamodule2.risint['totale']/tot_risp4)*100)+'% '
else label3.Caption:=' 0% ';
memo2.Text:=vartostr(datamodule2.risint['Descrizione']);
end;
vet[1]:='v2';
trovato:=datamodule2.risint.locate('NDomanda;NRisposta',vet,[loCaseInsensitive]);
if trovato then
begin
if tot_risp40 then
label4.caption:=' '+inttostr((datamodule2.risint['totale']/tot_risp4)*100)+'% '
else label4.Caption:=' 0% ';
memo3.Text:=vartostr(datamodule2.risint['Descrizione']);
end;
vet[1]:='v3';
trovato:=datamodule2.risint.locate('NDomanda;NRisposta',vet,[loCaseInsensitive]);
if trovato then
begin
if tot_risp40 then
label5.caption:=' '+inttostr((datamodule2.risint['totale']/tot_risp4)*100)+'% '
else label5.Caption:=' 0% ';
memo4.Text:=vartostr(datamodule2.risint['Descrizione']);
end;
vet[1]:='v4';
trovato:=datamodule2.risint.locate('NDomanda;NRisposta',vet,[loCaseInsensitive]);
if trovato then
begin
if tot_risp40 then
label6.caption:=' '+inttostr((datamodule2.risint['totale']/tot_risp4)*100)+'% '
else label6.Caption:=' 0% ';
memo5.Text:=vartostr(datamodule2.risint['Descrizione']);
end;
vet[1]:='v5';
trovato:=datamodule2.risint.locate('NDomanda;NRisposta',vet,[loCaseInsensitive]);
if trovato then
begin
if tot_risp40 then
label7.caption:=' '+inttostr((datamodule2.risint['totale']/tot_risp4)*100)+'% '
else label7.Caption:=' 0% ';
memo6.Text:=vartostr(datamodule2.risint['Descrizione']);
end;
vet[1]:='v6';
trovato:=datamodule2.risint.locate('NDomanda;NRisposta',vet,[loCaseInsensitive]);
if trovato then
begin
if tot_risp40 then
label8.caption:=' '+inttostr((datamodule2.risint['totale']/tot_risp4)*100)+'% '
else label8.Caption:=' 0% ';
memo7.Text:=vartostr(datamodule2.risint['Descrizione']);
end;
vet[1]:='v7';
trovato:=datamodule2.risint.locate('NDomanda;NRisposta',vet,[loCaseInsensitive]);
if trovato then
begin
if tot_risp40 then
label9.caption:=' '+inttostr((datamodule2.risint['totale']/tot_risp4)*100)+'% '
else label9.Caption:=' 0% ';
memo8.Text:=vartostr(datamodule2.risint['Descrizione']);
end;
memo3.visible:=true;
memo4.visible:=true;
memo5.visible:=true;
memo6.visible:=true;
memo7.visible:=true;
memo8.visible:=true;
label3.visible:=true;
label4.visible:=true;
label5.visible:=true;
label6.visible:=true;
label7.visible:=true;
label8.visible:=true;
label9.visible:=true;
trovato:=datamodule2.domint.locate('NDomanda',nd,[loCaseInsensitive]);
end;
if nd=5 then
begin
vet[0]:=5;
vet[1]:='v1';
trovato:=datamodule2.risint.locate('NDomanda;NRisposta',vet,[loCaseInsensitive]);
if trovato then
begin
if tot_risp50 then
label3.caption:=' '+inttostr((datamodule2.risint['totale']/tot_risp5)*100)+'% '
else label3.Caption:=' 0% ';
memo2.Text:=vartostr(datamodule2.risint['Descrizione']);
end;
vet[1]:='v2';
trovato:=datamodule2.risint.locate('NDomanda;NRisposta',vet,[loCaseInsensitive]);
if trovato then
begin
if tot_risp50 then
label4.caption:=' '+inttostr((datamodule2.risint['totale']/tot_risp5)*100)+'% '
else label4.Caption:=' 0% ';
memo3.Text:=vartostr(datamodule2.risint['Descrizione']);
end;
vet[1]:='v3';
trovato:=datamodule2.risint.locate('NDomanda;NRisposta',vet,[loCaseInsensitive]);
if trovato then
begin
if tot_risp50 then
label5.caption:=' '+inttostr((datamodule2.risint['totale']/tot_risp5)*100)+'% '
else label5.Caption:=' 0% ';
memo4.Text:=vartostr(datamodule2.risint['Descrizione']);
end;
memo3.visible:=true;
memo4.visible:=true;
memo5.visible:=false;
memo6.visible:=false;
memo7.visible:=false;
memo8.visible:=false;
label3.visible:=true;
label4.visible:=true;
label5.visible:=true;
label6.visible:=false;
label7.visible:=false;
label8.visible:=false;
label9.visible:=false;
trovato:=datamodule2.domint.locate('NDomanda',nd,[loCaseInsensitive]);
end;
if nd=6 then
begin
vet[0]:=61;
vet[1]:='v1';
trovato:=datamodule2.risint.locate('NDomanda;NRisposta',vet,[loCaseInsensitive]);
if trovato then
begin
if tot_risp60 then
label3.caption:=' '+inttostr((datamodule2.risint['totale']/tot_risp6)*100)+'% '
else label3.Caption:=' 0% ';
memo2.Text:=vartostr(datamodule2.risint['Descrizione']);
end;
vet[1]:='v2';
trovato:=datamodule2.risint.locate('NDomanda;NRisposta',vet,[loCaseInsensitive]);
if trovato then
begin
if tot_risp60 then
label4.caption:=' '+inttostr((datamodule2.risint['totale']/tot_risp6)*100)+'% '
else label4.Caption:=' 0% ';
memo3.Text:=vartostr(datamodule2.risint['Descrizione']);
end;
vet[1]:='v3';
trovato:=datamodule2.risint.locate('NDomanda;NRisposta',vet,[loCaseInsensitive]);
if trovato then
begin
if tot_risp60 then
label5.caption:=' '+inttostr((datamodule2.risint['totale']/tot_risp6)*100)+'% '
else label5.Caption:=' 0% ';
memo4.Text:=vartostr(datamodule2.risint['Descrizione']);
end;
memo3.visible:=true;
memo4.visible:=true;
memo5.visible:=false;
memo6.visible:=false;
memo7.visible:=false;
memo8.visible:=false;
label3.visible:=true;
label4.visible:=true;
label5.visible:=true;
label6.visible:=false;
label7.visible:=false;
label8.visible:=false;
label9.visible:=false;
nd:=61;
trovato:=datamodule2.domint.locate('NDomanda',nd,[loCaseInsensitive]);
nd:=6;
end;
if nd=7 then
begin
vet[0]:=62;
vet[1]:='v4';
trovato:=datamodule2.risint.locate('NDomanda;NRisposta',vet,[loCaseInsensitive]);
if trovato then
begin
if tot_risp60 then
label3.caption:=' '+inttostr((datamodule2.risint['totale']/tot_risp6)*100)+'% '
else label3.Caption:=' 0% ';
memo2.Text:=vartostr(datamodule2.risint['Descrizione']);
end;
vet[1]:='v5';
trovato:=datamodule2.risint.locate('NDomanda;NRisposta',vet,[loCaseInsensitive]);
if trovato then
begin
if tot_risp60 then
label4.caption:=' '+inttostr((datamodule2.risint['totale']/tot_risp6)*100)+'% '
else label4.Caption:=' 0% ';
memo3.Text:=vartostr(datamodule2.risint['Descrizione']);
end;
vet[1]:='v6';
trovato:=datamodule2.risint.locate('NDomanda;NRisposta',vet,[loCaseInsensitive]);
if trovato then
begin
if tot_risp60 then
label5.caption:=' '+inttostr((datamodule2.risint['totale']/tot_risp6)*100)+'% '
else label5.Caption:=' 0% ';
memo4.Text:=vartostr(datamodule2.risint['Descrizione']);
end;
memo3.visible:=true;
memo4.visible:=true;
memo5.visible:=false;
memo6.visible:=false;
memo7.visible:=false;
memo8.visible:=false;
label3.visible:=true;
label4.visible:=true;
label5.visible:=true;
label6.visible:=false;
label7.visible:=false;
label8.visible:=false;
label9.visible:=false;
nd:=62;
trovato:=datamodule2.domint.locate('NDomanda',nd,[loCaseInsensitive]);
nd:=7;
end;
if nd=8 then
begin
vet[0]:=7;
vet[1]:='v1';
trovato:=datamodule2.risint.locate('NDomanda;NRisposta',vet,[loCaseInsensitive]);
if trovato then
begin
if tot_risp70 then
label3.caption:=' '+inttostr((datamodule2.risint['totale']/tot_risp7)*100)+'% '
else label3.Caption:=' 0% ';
memo2.Text:=vartostr(datamodule2.risint['Descrizione']);
end;
vet[1]:='v2';
trovato:=datamodule2.risint.locate('NDomanda;NRisposta',vet,[loCaseInsensitive]);
if trovato then
begin
if tot_risp70 then
label4.caption:=' '+inttostr((datamodule2.risint['totale']/tot_risp7)*100)+'% '
else label4.Caption:=' 0% ';
memo3.Text:=vartostr(datamodule2.risint['Descrizione']);
end;
vet[1]:='v3';
trovato:=datamodule2.risint.locate('NDomanda;NRisposta',vet,[loCaseInsensitive]);
if trovato then
begin
if tot_risp70 then
label4.caption:=' '+inttostr((datamodule2.risint['totale']/tot_risp7)*100)+'% '
else label5.Caption:=' 0% ';
memo4.Text:=vartostr(datamodule2.risint['Descrizione']);
end;
memo3.visible:=true;
memo4.visible:=true;
memo5.visible:=false;
memo6.visible:=false;
memo7.visible:=false;
memo8.visible:=false;
label3.visible:=true;
label4.visible:=true;
label5.visible:=true;
label6.visible:=false;
label7.visible:=false;
label8.visible:=false;
label9.visible:=false;
nd:=7;
trovato:=datamodule2.domint.locate('NDomanda',nd,[loCaseInsensitive]);
nd:=8;
end;
if nd=9 then
begin
vet[0]:=8;
vet[1]:='v1';
trovato:=datamodule2.risint.locate('NDomanda;NRisposta',vet,[loCaseInsensitive]);
if trovato then
begin
if tot_risp80 then
label3.caption:=' '+inttostr((datamodule2.risint['totale']/tot_risp8)*100)+'% '
else label3.Caption:=' 0% ';
memo2.Text:=vartostr(datamodule2.risint['Descrizione']);
end;
vet[1]:='v2';
trovato:=datamodule2.risint.locate('NDomanda;NRisposta',vet,[loCaseInsensitive]);
if trovato then
begin
if tot_risp80 then
label4.caption:=' '+inttostr((datamodule2.risint['totale']/tot_risp8)*100)+'% '
else label4.Caption:=' 0% ';
memo3.Text:=vartostr(datamodule2.risint['Descrizione']);
end;
memo3.visible:=true;
memo4.visible:=false;
memo5.visible:=false;
memo6.visible:=false;
memo7.visible:=false;
memo8.visible:=false;
label3.visible:=true;
label4.visible:=true;
label5.visible:=false;
label6.visible:=false;
label7.visible:=false;
label8.visible:=false;
label9.visible:=false;
nd:=8;
trovato:=datamodule2.domint.locate('NDomanda',nd,[loCaseInsensitive]);
nd:=9;
end;
if nd=10 then
begin
vet[0]:=91;
vet[1]:='v1';
trovato:=datamodule2.risint.locate('NDomanda;NRisposta',vet,[loCaseInsensitive]);
if trovato then
begin
if tot_risp90 then
label3.caption:=' '+inttostr((datamodule2.risint['totale']/tot_risp9)*100)+'% '
else label3.Caption:=' 0% ';
memo2.Text:=vartostr(datamodule2.risint['Descrizione']);
end;
vet[1]:='v2';
trovato:=datamodule2.risint.locate('NDomanda;NRisposta',vet,[loCaseInsensitive]);
if trovato then
begin
if tot_risp90 then
label4.caption:=' '+inttostr((datamodule2.risint['totale']/tot_risp9)*100)+'% '
else label4.Caption:=' 0% ';
memo3.Text:=vartostr(datamodule2.risint['Descrizione']);
end;
vet[1]:='v3';
trovato:=datamodule2.risint.locate('NDomanda;NRisposta',vet,[loCaseInsensitive]);
if trovato then
begin
if tot_risp90 then
label5.caption:=' '+inttostr((datamodule2.risint['totale']/tot_risp9)*100)+'% '
else label5.Caption:=' 0% ';
memo4.Text:=vartostr(datamodule2.risint['Descrizione']);
end;
vet[1]:='v4';
trovato:=datamodule2.risint.locate('NDomanda;NRisposta',vet,[loCaseInsensitive]);
if trovato then
begin
if tot_risp90 then
label6.caption:=' '+inttostr((datamodule2.risint['totale']/tot_risp9)*100)+'% '
else label6.Caption:=' 0% ';
memo5.Text:=vartostr(datamodule2.risint['Descrizione']);
end;
memo3.visible:=true;
memo4.visible:=true;
memo5.visible:=true;
memo6.visible:=false;
memo7.visible:=false;
memo8.visible:=false;
label3.visible:=true;
label4.visible:=true;
label5.visible:=true;
label6.visible:=true;
label7.visible:=false;
label8.visible:=false;
label9.visible:=false;
nd:=91;
trovato:=datamodule2.domint.locate('NDomanda',nd,[loCaseInsensitive]);
nd:=10;
end;
if nd=11 then
begin
vet[0]:=92;
vet[1]:='v5';
trovato:=datamodule2.risint.locate('NDomanda;NRisposta',vet,[loCaseInsensitive]);
if trovato then
begin
if tot_risp90 then
label3.caption:=' '+inttostr((datamodule2.risint['totale']/tot_risp9)*100)+'% '
else label3.Caption:=' 0% ';
memo2.Text:=vartostr(datamodule2.risint['Descrizione']);
end;
vet[1]:='v6';
trovato:=datamodule2.risint.locate('NDomanda;NRisposta',vet,[loCaseInsensitive]);
if trovato then
begin
if tot_risp90 then
label4.caption:=' '+inttostr((datamodule2.risint['totale']/tot_risp9)*100)+'% '
else label4.Caption:=' 0% ';
memo3.Text:=vartostr(datamodule2.risint['Descrizione']);
end;
vet[1]:='v7';
trovato:=datamodule2.risint.locate('NDomanda;NRisposta',vet,[loCaseInsensitive]);
if trovato then
begin
if tot_risp90 then
label5.caption:=' '+inttostr((datamodule2.risint['totale']/tot_risp9)*100)+'% '
else label5.Caption:=' 0% ';
memo4.Text:=vartostr(datamodule2.risint['Descrizione']);
end;
vet[1]:='v8';
trovato:=datamodule2.risint.locate('NDomanda;NRisposta',vet,[loCaseInsensitive]);
if trovato then
begin
if tot_risp90 then
label6.caption:=' '+inttostr((datamodule2.risint['totale']/tot_risp9)*100)+'% '
else label6.Caption:=' 0% ';
memo5.Text:=vartostr(datamodule2.risint['Descrizione']);
end;
memo3.visible:=true;
memo4.visible:=true;
memo5.visible:=true;
memo6.visible:=false;
memo7.visible:=false;
memo8.visible:=false;
label3.visible:=true;
label4.visible:=true;
label5.visible:=true;
label6.visible:=true;
label7.visible:=false;
label8.visible:=false;
label9.visible:=false;
nd:=92;
trovato:=datamodule2.domint.locate('NDomanda',nd,[loCaseInsensitive]);
nd:=11;
end;
if nd=12 then
begin
vet[0]:=93;
vet[1]:='v9';
trovato:=datamodule2.risint.locate('NDomanda;NRisposta',vet,[loCaseInsensitive]);
if trovato then
begin
if tot_risp90 then
label3.caption:=' '+inttostr((datamodule2.risint['totale']/tot_risp9)*100)+'% '
else label3.Caption:=' 0% ';
memo2.Text:=vartostr(datamodule2.risint['Descrizione']);
end;
memo3.visible:=false;
memo4.visible:=false;
memo5.visible:=false;
memo6.visible:=false;
memo7.visible:=false;
memo8.visible:=false;
label3.visible:=true;
label4.visible:=false;
label5.visible:=false;
label6.visible:=false;
label7.visible:=false;
label8.visible:=false;
label9.visible:=false;
nd:=93;
trovato:=datamodule2.domint.locate('NDomanda',nd,[loCaseInsensitive]);
nd:=12;
end;
if nd=13 then
begin
vet[0]:=10;
vet[1]:='v1';
trovato:=datamodule2.risint.locate('NDomanda;NRisposta',vet,[loCaseInsensitive]);
if trovato then
begin
if tot_risp100 then
label3.caption:=' '+inttostr((datamodule2.risint['totale']/tot_risp10)*100)+'% '
else label3.Caption:=' 0% ';
memo2.Text:=vartostr(datamodule2.risint['Descrizione']);
end;
vet[1]:='v2';
trovato:=datamodule2.risint.locate('NDomanda;NRisposta',vet,[loCaseInsensitive]);
if trovato then
begin
if tot_risp100 then
label4.caption:=' '+inttostr((datamodule2.risint['totale']/tot_risp10)*100)+'% '
else label4.Caption:=' 0% ';
memo3.Text:=vartostr(datamodule2.risint['Descrizione']);
end;
vet[1]:='v3';
trovato:=datamodule2.risint.locate('NDomanda;NRisposta',vet,[loCaseInsensitive]);
if trovato then
begin
if tot_risp100 then
label5.caption:=' '+inttostr((datamodule2.risint['totale']/tot_risp10)*100)+'% '
else label5.Caption:=' 0% ';
memo4.Text:=vartostr(datamodule2.risint['Descrizione']);
end;
vet[1]:='v4';
trovato:=datamodule2.risint.locate('NDomanda;NRisposta',vet,[loCaseInsensitive]);
if trovato then
begin
if tot_risp100 then
label6.caption:=' '+inttostr((datamodule2.risint['totale']/tot_risp10)*100)+'% '
else label6.Caption:=' 0% ';
memo5.Text:=vartostr(datamodule2.risint['Descrizione']);
end;
memo3.visible:=true;
memo4.visible:=true;
memo5.visible:=true;
memo6.visible:=false;
memo7.visible:=false;
memo8.visible:=false;
label3.visible:=true;
label4.visible:=true;
label5.visible:=true;
label6.visible:=true;
label7.visible:=false;
label8.visible:=false;
label9.visible:=false;
nd:=10;
trovato:=datamodule2.domint.locate('NDomanda',nd,[loCaseInsensitive]);
nd:=13;
end;
if nd=14 then
begin
vet[0]:=11;
vet[1]:='v1';
trovato:=datamodule2.risint.locate('NDomanda;NRisposta',vet,[loCaseInsensitive]);
if trovato then
begin
if tot_risp110 then
label3.caption:=' '+inttostr((datamodule2.risint['totale']/tot_risp11)*100)+'% '
else label3.Caption:=' 0% ';
memo2.Text:=vartostr(datamodule2.risint['Descrizione']);
end;
vet[1]:='v2';
trovato:=datamodule2.risint.locate('NDomanda;NRisposta',vet,[loCaseInsensitive]);
if trovato then
begin
if tot_risp110 then
label4.caption:=' '+inttostr((datamodule2.risint['totale']/tot_risp11)*100)+'% '
else label4.Caption:=' 0% ';
memo3.Text:=vartostr(datamodule2.risint['Descrizione']);
end;
vet[1]:='v3';
trovato:=datamodule2.risint.locate('NDomanda;NRisposta',vet,[loCaseInsensitive]);
if trovato then
begin
if tot_risp110 then
label5.caption:=' '+inttostr((datamodule2.risint['totale']/tot_risp11)*100)+'% '
else label5.Caption:=' 0% ';
memo4.Text:=vartostr(datamodule2.risint['Descrizione']);
end;
vet[1]:='v4';
trovato:=datamodule2.risint.locate('NDomanda;NRisposta',vet,[loCaseInsensitive]);
if trovato then
begin
if tot_risp110 then
label6.caption:=' '+inttostr((datamodule2.risint['totale']/tot_risp11)*100)+'% '
else label6.Caption:=' 0% ';
memo5.Text:=vartostr(datamodule2.risint['Descrizione']);
end;
vet[1]:='v5';
trovato:=datamodule2.risint.locate('NDomanda;NRisposta',vet,[loCaseInsensitive]);
if trovato then
begin
if tot_risp110 then
label7.caption:=' '+inttostr((datamodule2.risint['totale']/tot_risp11)*100)+'% '
else label7.Caption:=' 0% ';
memo6.Text:=vartostr(datamodule2.risint['Descrizione']);
end;
memo3.visible:=true;
memo4.visible:=true;
memo5.visible:=true;
memo6.visible:=true;
memo7.visible:=false;
memo8.visible:=false;
label3.visible:=true;
label4.visible:=true;
label5.visible:=true;
label6.visible:=true;
label7.visible:=true;
label8.visible:=false;
label9.visible:=false;
nd:=11;
trovato:=datamodule2.domint.locate('NDomanda',nd,[loCaseInsensitive]);
nd:=14;
end;
if nd=15 then
begin
vet[0]:=12;
vet[1]:='v1';
trovato:=datamodule2.risint.locate('NDomanda;NRisposta',vet,[loCaseInsensitive]);
if trovato then
begin
if tot_risp120 then
label3.caption:=' '+inttostr((datamodule2.risint['totale']/tot_risp12)*100)+'% '
else label3.Caption:=' 0% ';
memo2.Text:=vartostr(datamodule2.risint['Descrizione']);
end;
vet[1]:='v2';
trovato:=datamodule2.risint.locate('NDomanda;NRisposta',vet,[loCaseInsensitive]);
if trovato then
begin
if tot_risp120 then
label4.caption:=' '+inttostr((datamodule2.risint['totale']/tot_risp12)*100)+'% '
else label4.Caption:=' 0% ';
memo3.Text:=vartostr(datamodule2.risint['Descrizione']);
end;
vet[1]:='v3';
trovato:=datamodule2.risint.locate('NDomanda;NRisposta',vet,[loCaseInsensitive]);
if trovato then
begin
if tot_risp120 then
label5.caption:=' '+inttostr((datamodule2.risint['totale']/tot_risp12)*100)+'% '
else label5.Caption:=' 0% ';
memo4.Text:=vartostr(datamodule2.risint['Descrizione']);
end;
vet[1]:='v4';
trovato:=datamodule2.risint.locate('NDomanda;NRisposta',vet,[loCaseInsensitive]);
if trovato then
begin
if tot_risp120 then
label6.caption:=' '+inttostr((datamodule2.risint['totale']/tot_risp12)*100)+'% '
else label6.Caption:=' 0% ';
memo5.Text:=vartostr(datamodule2.risint['Descrizione']);
end;
vet[1]:='v5';
trovato:=datamodule2.risint.locate('NDomanda;NRisposta',vet,[loCaseInsensitive]);
if trovato then
begin
if tot_risp120 then
label7.caption:=' '+inttostr((datamodule2.risint['totale']/tot_risp12)*100)+'% '
else label7.Caption:=' 0% ';
memo6.Text:=vartostr(datamodule2.risint['Descrizione']);
end;
memo3.visible:=true;
memo4.visible:=true;
memo5.visible:=true;
memo6.visible:=true;
memo7.visible:=false;
memo8.visible:=false;
label3.visible:=true;
label4.visible:=true;
label5.visible:=true;
label6.visible:=true;
label7.visible:=true;
label8.visible:=false;
label9.visible:=false;
nd:=12;
trovato:=datamodule2.domint.locate('NDomanda',nd,[loCaseInsensitive]);
nd:=15;
end;
if nd=16 then
begin
vet[0]:=13;
vet[1]:='v1';
trovato:=datamodule2.risint.locate('NDomanda;NRisposta',vet,[loCaseInsensitive]);
if trovato then
begin
if tot_risp130 then
label3.caption:=' '+inttostr((datamodule2.risint['totale']/tot_risp13)*100)+'% '
else label3.Caption:=' 0% ';
memo2.Text:=vartostr(datamodule2.risint['Descrizione']);
end;
vet[1]:='v2';
trovato:=datamodule2.risint.locate('NDomanda;NRisposta',vet,[loCaseInsensitive]);
if trovato then
begin
if tot_risp130 then
label4.caption:=' '+inttostr((datamodule2.risint['totale']/tot_risp13)*100)+'% '
else label4.Caption:=' 0% ';
memo3.Text:=vartostr(datamodule2.risint['Descrizione']);
end;
vet[1]:='v3';
trovato:=datamodule2.risint.locate('NDomanda;NRisposta',vet,[loCaseInsensitive]);
if trovato then
begin
if tot_risp130 then
label5.caption:=' '+inttostr((datamodule2.risint['totale']/tot_risp13)*100)+'% '
else label5.Caption:=' 0% ';
memo4.Text:=vartostr(datamodule2.risint['Descrizione']);
end;
vet[1]:='v4';
trovato:=datamodule2.risint.locate('NDomanda;NRisposta',vet,[loCaseInsensitive]);
if trovato then
begin
if tot_risp130 then
label6.caption:=' '+inttostr((datamodule2.risint['totale']/tot_risp13)*100)+'% '
else label6.Caption:=' 0% ';
memo5.Text:=vartostr(datamodule2.risint['Descrizione']);
end;
vet[1]:='v5';
trovato:=datamodule2.risint.locate('NDomanda;NRisposta',vet,[loCaseInsensitive]);
if trovato then
begin
if tot_risp130 then
label7.caption:=' '+inttostr((datamodule2.risint['totale']/tot_risp13)*100)+'% '
else label7.Caption:=' 0% ';
memo6.Text:=vartostr(datamodule2.risint['Descrizione']);
end;
memo3.visible:=true;
memo4.visible:=true;
memo5.visible:=true;
memo6.visible:=true;
memo7.visible:=false;
memo8.visible:=false;
label3.visible:=true;
label4.visible:=true;
label5.visible:=true;
label6.visible:=true;
label7.visible:=true;
label8.visible:=false;
label9.visible:=false;
nd:=13;
trovato:=datamodule2.domint.locate('NDomanda',nd,[loCaseInsensitive]);
nd:=16;
end;
if nd=17 then
begin
vet[0]:=14;
vet[1]:='v1';
trovato:=datamodule2.risint.locate('NDomanda;NRisposta',vet,[loCaseInsensitive]);
if trovato then
begin
if tot_risp140 then
label3.caption:=' '+inttostr((datamodule2.risint['totale']/tot_risp14)*100)+'% '
else label3.Caption:=' 0% ';
memo2.Text:=vartostr(datamodule2.risint['Descrizione']);
end;
vet[1]:='v2';
trovato:=datamodule2.risint.locate('NDomanda;NRisposta',vet,[loCaseInsensitive]);
if trovato then
begin
if tot_risp140 then
label4.caption:=' '+inttostr((datamodule2.risint['totale']/tot_risp14)*100)+'% '
else label4.Caption:=' 0% ';
memo3.Text:=vartostr(datamodule2.risint['Descrizione']);
end;
vet[1]:='v3';
trovato:=datamodule2.risint.locate('NDomanda;NRisposta',vet,[loCaseInsensitive]);
if trovato then
begin
if tot_risp140 then
label5.caption:=' '+inttostr((datamodule2.risint['totale']/tot_risp14)*100)+'% '
else label5.Caption:=' 0% ';
memo4.Text:=vartostr(datamodule2.risint['Descrizione']);
end;
vet[1]:='v4';
trovato:=datamodule2.risint.locate('NDomanda;NRisposta',vet,[loCaseInsensitive]);
if trovato then
begin
if tot_risp140 then
label6.caption:=' '+inttostr((datamodule2.risint['totale']/tot_risp14)*100)+'% '
else label6.Caption:=' 0% ';
memo5.Text:=vartostr(datamodule2.risint['Descrizione']);
end;
memo3.visible:=true;
memo4.visible:=true;
memo5.visible:=true;
memo6.visible:=false;
memo7.visible:=false;
memo8.visible:=false;
label3.visible:=true;
label4.visible:=true;
label5.visible:=true;
label6.visible:=true;
label7.visible:=false;
label8.visible:=false;
label9.visible:=false;
nd:=14;
trovato:=datamodule2.domint.locate('NDomanda',nd,[loCaseInsensitive]);
nd:=17;
end;
if nd=18 then
begin
vet[0]:=15;
vet[1]:='v1';
trovato:=datamodule2.risint.locate('NDomanda;NRisposta',vet,[loCaseInsensitive]);
if trovato then
begin
if tot_risp150 then
label3.caption:=' '+inttostr((datamodule2.risint['totale']/tot_risp15)*100)+'% '
else label3.Caption:=' 0% ';
memo2.Text:=vartostr(datamodule2.risint['Descrizione']);
end;
vet[1]:='v2';
trovato:=datamodule2.risint.locate('NDomanda;NRisposta',vet,[loCaseInsensitive]);
if trovato then
begin
if tot_risp150 then
label4.caption:=' '+inttostr((datamodule2.risint['totale']/tot_risp15)*100)+'% '
else label4.Caption:=' 0% ';
memo3.Text:=vartostr(datamodule2.risint['Descrizione']);
end;
memo3.visible:=true;
memo4.visible:=false;
memo5.visible:=false;
memo6.visible:=false;
memo7.visible:=false;
memo8.visible:=false;
label3.visible:=true;
label4.visible:=true;
label5.visible:=false;
label6.visible:=false;
label7.visible:=false;
label8.visible:=false;
label9.visible:=false;
nd:=15;
trovato:=datamodule2.domint.locate('NDomanda',nd,[loCaseInsensitive]);
nd:=18;
end;
if nd=19 then
begin
vet[0]:=16;
vet[1]:='v1';
trovato:=datamodule2.risint.locate('NDomanda;NRisposta',vet,[loCaseInsensitive]);
if trovato then
begin
if tot_risp160 then
label3.caption:=' '+inttostr((datamodule2.risint['totale']/tot_risp16)*100)+'% '
else label3.Caption:=' 0% ';
memo2.Text:=vartostr(datamodule2.risint['Descrizione']);
end;
vet[1]:='v2';
trovato:=datamodule2.risint.locate('NDomanda;NRisposta',vet,[loCaseInsensitive]);
if trovato then
begin
if tot_risp160 then
label4.caption:=' '+inttostr((datamodule2.risint['totale']/tot_risp16)*100)+'% '
else label4.Caption:=' 0% ';
memo3.Text:=vartostr(datamodule2.risint['Descrizione']);
end;
vet[1]:='v3';
trovato:=datamodule2.risint.locate('NDomanda;NRisposta',vet,[loCaseInsensitive]);
if trovato then
begin
if tot_risp160 then
label5.caption:=' '+inttostr((datamodule2.risint['totale']/tot_risp16)*100)+'% '
else label5.Caption:=' 0% ';
memo4.Text:=vartostr(datamodule2.risint['Descrizione']);
end;
vet[1]:='v4';
trovato:=datamodule2.risint.locate('NDomanda;NRisposta',vet,[loCaseInsensitive]);
if trovato then
begin
if tot_risp160 then
label6.caption:=' '+inttostr((datamodule2.risint['totale']/tot_risp16)*100)+'% '
else label6.Caption:=' 0% ';
memo5.Text:=vartostr(datamodule2.risint['Descrizione']);
end;
memo3.visible:=true;
memo4.visible:=true;
memo5.visible:=true;
memo6.visible:=false;
memo7.visible:=false;
memo8.visible:=false;
label3.visible:=true;
label4.visible:=true;
label5.visible:=true;
label6.visible:=true;
label7.visible:=false;
label8.visible:=false;
label9.visible:=false;
nd:=16;
trovato:=datamodule2.domint.locate('NDomanda',nd,[loCaseInsensitive]);
nd:=19;
end;
if nd=20 then
begin
vet[0]:=17;
vet[1]:='v1';
trovato:=datamodule2.risint.locate('NDomanda;NRisposta',vet,[loCaseInsensitive]);
if trovato then
begin
if tot_risp170 then
label3.caption:=' '+inttostr((datamodule2.risint['totale']/tot_risp17)*100)+'% '
else label3.Caption:=' 0% ';
memo2.Text:=vartostr(datamodule2.risint['Descrizione']);
end;
vet[1]:='v2';
trovato:=datamodule2.risint.locate('NDomanda;NRisposta',vet,[loCaseInsensitive]);
if trovato then
begin
if tot_risp170 then
label4.caption:=' '+inttostr((datamodule2.risint['totale']/tot_risp17)*100)+'% '
else label4.Caption:=' 0% ';
memo3.Text:=vartostr(datamodule2.risint['Descrizione']);
end;
vet[1]:='v3';
trovato:=datamodule2.risint.locate('NDomanda;NRisposta',vet,[loCaseInsensitive]);
if trovato then
begin
if tot_risp170 then
label5.caption:=' '+inttostr((datamodule2.risint['totale']/tot_risp17)*100)+'% '
else label5.Caption:=' 0% ';
memo4.Text:=vartostr(datamodule2.risint['Descrizione']);
end;
vet[1]:='v4';
trovato:=datamodule2.risint.locate('NDomanda;NRisposta',vet,[loCaseInsensitive]);
if trovato then
begin
if tot_risp170 then
label6.caption:=' '+inttostr((datamodule2.risint['totale']/tot_risp17)*100)+'% '
else label6.Caption:=' 0% ';
memo5.Text:=vartostr(datamodule2.risint['Descrizione']);
end;
memo3.visible:=true;
memo4.visible:=true;
memo5.visible:=true;
memo6.visible:=false;
memo7.visible:=false;
memo8.visible:=false;
label3.visible:=true;
label4.visible:=true;
label5.visible:=true;
label6.visible:=true;
label7.visible:=false;
label8.visible:=false;
label9.visible:=false;
nd:=17;
trovato:=datamodule2.domint.locate('NDomanda',nd,[loCaseInsensitive]);
nd:=20;
end;
if nd=21 then
begin
vet[0]:=18;
vet[1]:='v1';
trovato:=datamodule2.risint.locate('NDomanda;NRisposta',vet,[loCaseInsensitive]);
if trovato then
begin
if tot_risp180 then
label3.caption:=' '+inttostr((datamodule2.risint['totale']/tot_risp18)*100)+'% '
else label3.Caption:=' 0% ';
memo2.Text:=vartostr(datamodule2.risint['Descrizione']);
end;
vet[1]:='v2';
trovato:=datamodule2.risint.locate('NDomanda;NRisposta',vet,[loCaseInsensitive]);
if trovato then
begin
if tot_risp180 then
label4.caption:=' '+inttostr((datamodule2.risint['totale']/tot_risp18)*100)+'% '
else label4.Caption:=' 0% ';
memo3.Text:=vartostr(datamodule2.risint['Descrizione']);
end;
vet[1]:='v3';
trovato:=datamodule2.risint.locate('NDomanda;NRisposta',vet,[loCaseInsensitive]);
if trovato then
begin
if tot_risp180 then
label5.caption:=' '+inttostr((datamodule2.risint['totale']/tot_risp18)*100)+'% '
else label5.Caption:=' 0% ';
memo4.Text:=vartostr(datamodule2.risint['Descrizione']);
end;
vet[1]:='v4';
trovato:=datamodule2.risint.locate('NDomanda;NRisposta',vet,[loCaseInsensitive]);
if trovato then
begin
if tot_risp180 then
label6.caption:=' '+inttostr((datamodule2.risint['totale']/tot_risp18)*100)+'% '
else label6.Caption:=' 0% ';
memo5.Text:=vartostr(datamodule2.risint['Descrizione']);
end;
vet[1]:='v5';
trovato:=datamodule2.risint.locate('NDomanda;NRisposta',vet,[loCaseInsensitive]);
if trovato then
begin
if tot_risp180 then
label7.caption:=' '+inttostr((datamodule2.risint['totale']/tot_risp18)*100)+'% '
else label7.Caption:=' 0% ';
memo6.Text:=vartostr(datamodule2.risint['Descrizione']);
end;
memo3.visible:=true;
memo4.visible:=true;
memo5.visible:=true;
memo6.visible:=true;
memo7.visible:=false;
memo8.visible:=false;
label3.visible:=true;
label4.visible:=true;
label5.visible:=true;
label6.visible:=true;
label7.visible:=true;
label8.visible:=false;
label9.visible:=false;
nd:=18;
trovato:=datamodule2.domint.locate('NDomanda',nd,[loCaseInsensitive]);
nd:=21;
end;
if nd=22 then
begin
vet[0]:=19;
vet[1]:='v1';
trovato:=datamodule2.risint.locate('NDomanda;NRisposta',vet,[loCaseInsensitive]);
if trovato then
begin
if tot_risp190 then
label3.caption:=' '+inttostr((datamodule2.risint['totale']/tot_risp19)*100)+'% '
else label3.Caption:=' 0% ';
memo2.Text:=vartostr(datamodule2.risint['Descrizione']);
end;
vet[1]:='v2';
trovato:=datamodule2.risint.locate('NDomanda;NRisposta',vet,[loCaseInsensitive]);
if trovato then
begin
if tot_risp190 then
label4.caption:=' '+inttostr((datamodule2.risint['totale']/tot_risp19)*100)+'% '
else label4.Caption:=' 0% ';
memo3.Text:=vartostr(datamodule2.risint['Descrizione']);
end;
vet[1]:='v3';
trovato:=datamodule2.risint.locate('NDomanda;NRisposta',vet,[loCaseInsensitive]);
if trovato then
begin
if tot_risp190 then
label5.caption:=' '+inttostr((datamodule2.risint['totale']/tot_risp19)*100)+'% '
else label5.Caption:=' 0% ';
memo4.Text:=vartostr(datamodule2.risint['Descrizione']);
end;
vet[1]:='v4';
trovato:=datamodule2.risint.locate('NDomanda;NRisposta',vet,[loCaseInsensitive]);
if trovato then
begin
if tot_risp190 then
label6.caption:=' '+inttostr((datamodule2.risint['totale']/tot_risp19)*100)+'% '
else label6.Caption:=' 0% ';
memo5.Text:=vartostr(datamodule2.risint['Descrizione']);
end;
vet[1]:='v5';
trovato:=datamodule2.risint.locate('NDomanda;NRisposta',vet,[loCaseInsensitive]);
if trovato then
begin
if tot_risp190 then
label7.caption:=' '+inttostr((datamodule2.risint['totale']/tot_risp19)*100)+'% '
else label7.Caption:=' 0% ';
memo6.Text:=vartostr(datamodule2.risint['Descrizione']);
end;
memo3.visible:=true;
memo4.visible:=true;
memo5.visible:=true;
memo6.visible:=true;
memo7.visible:=false;
memo8.visible:=false;
label3.visible:=true;
label4.visible:=true;
label5.visible:=true;
label6.visible:=true;
label7.visible:=true;
label8.visible:=false;
label9.visible:=false;
nd:=19;
trovato:=datamodule2.domint.locate('NDomanda',nd,[loCaseInsensitive]);
nd:=22;
end;
if nd=23 then
begin
vet[0]:=20;
vet[1]:='v1';
trovato:=datamodule2.risint.locate('NDomanda;NRisposta',vet,[loCaseInsensitive]);
if trovato then
begin
if tot_risp200 then
label3.caption:=' '+inttostr((datamodule2.risint['totale']/tot_risp20)*100)+'% '
else label3.Caption:=' 0% ';
memo2.Text:=vartostr(datamodule2.risint['Descrizione']);
end;
vet[1]:='v2';
trovato:=datamodule2.risint.locate('NDomanda;NRisposta',vet,[loCaseInsensitive]);
if trovato then
begin
if tot_risp200 then
label4.caption:=' '+inttostr((datamodule2.risint['totale']/tot_risp20)*100)+'% '
else label4.Caption:=' 0% ';
memo3.Text:=vartostr(datamodule2.risint['Descrizione']);
end;
memo3.visible:=true;
memo4.visible:=false;
memo5.visible:=false;
memo6.visible:=false;
memo7.visible:=false;
memo8.visible:=false;
label3.visible:=true;
label4.visible:=true;
label5.visible:=false;
label6.visible:=false;
label7.visible:=false;
label8.visible:=false;
label9.visible:=false;
nd:=20;
trovato:=datamodule2.domint.locate('NDomanda',nd,[loCaseInsensitive]);
nd:=23;
end;
if nd=24 then
begin
vet[0]:=21;
vet[1]:='v1';
trovato:=datamodule2.risint.locate('NDomanda;NRisposta',vet,[loCaseInsensitive]);
if trovato then
begin
if tot_risp210 then
label3.caption:=' '+inttostr((datamodule2.risint['totale']/tot_risp21)*100)+'% '
else label3.Caption:=' 0% ';
memo2.Text:=vartostr(datamodule2.risint['Descrizione']);
end;
vet[1]:='v2';
trovato:=datamodule2.risint.locate('NDomanda;NRisposta',vet,[loCaseInsensitive]);
if trovato then
begin
if tot_risp210 then
label4.caption:=' '+inttostr((datamodule2.risint['totale']/tot_risp21)*100)+'% '
else label4.Caption:=' 0% ';
memo3.Text:=vartostr(datamodule2.risint['Descrizione']);
end;
vet[1]:='v3';
trovato:=datamodule2.risint.locate('NDomanda;NRisposta',vet,[loCaseInsensitive]);
if trovato then
begin
if tot_risp210 then
label5.caption:=' '+inttostr((datamodule2.risint['totale']/tot_risp21)*100)+'% '
else label5.Caption:=' 0% ';
memo4.Text:=vartostr(datamodule2.risint['Descrizione']);
end;
vet[1]:='v4';
trovato:=datamodule2.risint.locate('NDomanda;NRisposta',vet,[loCaseInsensitive]);
if trovato then
begin
if tot_risp210 then
label6.caption:=' '+inttostr((datamodule2.risint['totale']/tot_risp21)*100)+'% '
else label6.Caption:=' 0% ';
memo5.Text:=vartostr(datamodule2.risint['Descrizione']);
end;
memo3.visible:=true;
memo4.visible:=true;
memo5.visible:=true;
memo6.visible:=false;
memo7.visible:=false;
memo8.visible:=false;
label3.visible:=true;
label4.visible:=true;
label5.visible:=true;
label6.visible:=true;
label7.visible:=false;
label8.visible:=false;
label9.visible:=false;
nd:=21;
trovato:=datamodule2.domint.locate('NDomanda',nd,[loCaseInsensitive]);
nd:=24;
end;
if nd=25 then
begin
vet[0]:=22;
vet[1]:='v1';
trovato:=datamodule2.risint.locate('NDomanda;NRisposta',vet,[loCaseInsensitive]);
if trovato then
begin
if tot_risp220 then
label3.caption:=' '+inttostr((datamodule2.risint['totale']/tot_risp22)*100)+'% '
else label3.Caption:=' 0% ';
memo2.Text:=vartostr(datamodule2.risint['Descrizione']);
end;
vet[1]:='v2';
trovato:=datamodule2.risint.locate('NDomanda;NRisposta',vet,[loCaseInsensitive]);
if trovato then
begin
if tot_risp220 then
label4.caption:=' '+inttostr((datamodule2.risint['totale']/tot_risp22)*100)+'% '
else label4.Caption:=' 0% ';
memo3.Text:=vartostr(datamodule2.risint['Descrizione']);
end;
vet[1]:='v3';
trovato:=datamodule2.risint.locate('NDomanda;NRisposta',vet,[loCaseInsensitive]);
if trovato then
begin
if tot_risp220 then
label5.caption:=' '+inttostr((datamodule2.risint['totale']/tot_risp22)*100)+'% '
else label5.Caption:=' 0% ';
memo4.Text:=vartostr(datamodule2.risint['Descrizione']);
end;
memo3.visible:=true;
memo4.visible:=true;
memo5.visible:=false;
memo6.visible:=false;
memo7.visible:=false;
memo8.visible:=false;
label3.visible:=true;
label4.visible:=true;
label5.visible:=true;
label6.visible:=false;
label7.visible:=false;
label8.visible:=false;
label9.visible:=false;
nd:=22;
trovato:=datamodule2.domint.locate('NDomanda',nd,[loCaseInsensitive]);
nd:=25;
end;
end;
procedure Tperc.Button3Click(Sender: TObject);
begin
if (nd>0) and (nd0) and (nd0) and (nd0) and (nd

Esempio