Gestione Riparazioni Presso Domicilio Clienti
-
Upload
stefano-pucci -
Category
Documents
-
view
218 -
download
1
description
Transcript of Gestione Riparazioni Presso Domicilio Clienti
FacoltàdiIngegneriaInformatica
A.A. 2015/16
Gestione Riparazioni Presso Domicilio Clienti
SuntoTrattasi di un software che permette al personale del negozio, una volta
ricevuta la richiesta di intervento, di individuare il tecnico esperto e
disponibile ad effettuare la riparazione; contemporaneamente il
programma invierà in automatico la richiesta al riparatore. Sarà poi
necessario tracciare lo storico di ogni movimento in un database in
modo da poter controllare tempistiche, qualità e quantità delle
lavorazioni effettuate.
Il programma prevede inoltre la registrazione dei dati contabili per
effettuare verifiche riguardanti lo stato dei pagamenti, le modalità scelte,
le informazioni sugli interventi, sui ricambi e le relative garanzie.
Candidato:Stefano Pucci
Relatrice:Prof.ssaGigliolaVaglini
Stefano PucciGestione Riparazioni
Presso Domicilio Clienti
SOMMARIO
1. - Introduzione...........................................................................................................3
1.1-Internet................................................................................................................3
1.2- RetiAziendali......................................................................................................6
1.3 - Html e Browser.................................................................................................7
2. -IL Progetto.............................................................................................................10
3.- Descrizione delle procedure..................................................................................13
3.1 -Interfaccia operatore.........................................................................................13
3.1.1 - Gestione Clienti.............................................................................................13
3.1.2 - Gestione Tecnici.......................................................................................14
3.1.3 - Gestione Aziende.....................................................................................15
3.1.4- Gestione Intervento...................................................................................16
4.- Interfaccia Tecnico................................................................................................19
5. - ASP.......………………………………………………………………..……………….20
6. - Comandi ASP.......................................................................................................26
7.-CSS..........29
8. - Codici Principali Funzioni......................................................................................31
8.1 - Visualizzazione Clienti......................................................................................31
8.2 - Inserimento Nuovo Tecnico..............................................................................32
8.3 - Modifica Dati Ditta............................................................................................34
8.3 - Statistica Intervento..........................................................................................35
9.- Principali Videate...................................................................................................38
10.-Conclusione.........................................................................................................40
2
UNIVERSITÀ DIPISAFacoltàdi Ingegneria Informatica
1. - INTRODUZIONE
1.1-INTERNET
Il progetto effettuato durante il tirocinio non sarebbe stato possibile realizzarlo senza il
mezzo di comunicazione denominato "Internet".
Questa rete ha permesso di poter far comunicare tra loro tecnici ed operatori per lo
scambio di informazioni relative alle richieste di intervento. Infatti, grazie alla
memorizzazione di sorgenti e dati in un server della ditta, Internet ha permesso di
renderli condivisibili anche a persone autorizzate situate in luoghi diversi.
Ma che cos'è Internet? E’ un insieme di componenti di base hardware e software. E'
una rete di calcolatori che interconnette centinaia di milioni di dispositivi di calcolo in
tutto il mondo: un tempo questi dispositivi di elaborazione erano fondamentalmente
PC tradizionali, workstation Linux o server che immagazzinavano o trasmettevano
informazioni quali pagine web e messaggi di posta elettronica. Oggi invece vengono
connessi dispositivi di elaborazione non tradizionali come portatili, smartphone, tablet,
TV, console di gioco, sensori, cornici digitali, elettrodomestici e sistemi di sicurezza.
Questi dispositivi vengono definiti host (ospiti) o sistemi periferici (end system). Questi
vengono connessi tra loro mediante una rete di collegamenti (communication link) e
commutatori di pacchetti (packet swift). Questi collegamenti possono avvenire con
diverse modalità: per mezzo di fili di rame, fibre ottiche e onde elettromagnetiche. Ad
ogni tipo di collegamento abbiamo un trasferimento di dati ad una velocità differente
che viene detta velocità di trasmissione (transmission rate) e viene misurata in
bit/secondo (bps).
Lo scambio dei messaggi tra i sistemi periferici della rete avviene mediante dei
pacchetti, che sono un insieme di bit (frame). Questi vengono inviati e ricevuti dai
commutatori di pacchetti che prendono un pacchetto che arriva da un segmento in
ingresso e lo ritrasmettono su uno di quelli in uscita. I sistemi periferici, commutatori di
pacchetto e altre parti di Internet, fanno uso di protocolli che controllano l'invio e la
ricezione di informazioni all'interno della rete.
3
Stefano PucciGestione Riparazioni
Presso Domicilio Clienti
Due dei principali protocolli di Internet sono il transmission controll protocol (TCP) e
l'Internet protocol (IP); l'IP specifica il formato dei pacchetti scambiati tra router e
sistemi periferici, mentre il procollo TCP è un servizio affidabile utilizzato dalle
applicazioni per lo scambio di messaggi nello stesso ordine in cui vengono inviate, e
soprattutto prive di errori. Sono due principali commutatori usufruiti da Internet: il
router ed i commutatori a livello di collegamento (link -layer -switch). Entrambe le
tipologie instradano i pachetti verso la loro destinazione finale, con la differenza che
quest'ultimi vengono solitamente usati nelle reti di accesso, mentre i router nel nucleo
della rete. I pacchetti, dal momento della spedizione da un sistema mittente a quello
di ricezione, sono trasferiti attraverso una sequenza di collegamenti e di commutatori
di pacchetto, nota come percorso (route o path) attraverso la rete.
I sistemi periferici accedono a Internet tramite i cosiddetti Internet service provider
(ISP), che comprendono ISP residenziali quali le compagnie telefoniche, ISP
aziendali, ISP universitari, ecc ecc. Un provider è un insieme di commutatori di
pacchetto e di collegamenti. Essi forniscono ai sistemi periferici svariti tipi di accesso
alla rete, tra cui uno tramite il cavo coassiale, un altro in rete locale ad alta velocità
(fibra ottica) ed infine uno senza fili (wireless).
La connessione mediante cavo coassiale è costituita da due conduttori in rame,
concentrici.
Questi cavi permettono, grazie ad uno speciale isolamento e ad una schermatura, di
poter raggiungere alte frequenze di trasmissione. Vengono abbinati a modem via
cavo per fornire agli utenti residenziali accesso a Internet a velocità di decine di Mbps.
Questo cavo permette la connessione ad Internet di più sistemi periferici.
La connessione mediante fibra ottica è costituita da singole fibre che conducono
impulsi di luce, ciascuna delle quali rappresenta un bit. Una singola fibra può
supportare enormi velocità trasmissive, fino a decine o centinaia di gigabit al secondo.
Questo mezzo è immune all'interferenza elettromagnetica.
4
UNIVERSITÀ DIPISAFacoltàdi Ingegneria Informatica
Ogni rete di un ISP fa uso del protocollo IP e si conforma a determinate convenzioni
riguardo a nomi e a indirizzi.
I sistemi periferici collegati ad Internet forniscono delle API (application programming
interface), che specificano come la parte di software eseguita su un sistema periferico
possa chiedere ad Internet di recapitare dati ad un altro specifico software su un altro
sistema periferico. Le API INTERNET, pertanto, costituiscono un insieme di regole
che il modulo software mittente deve seguire in modo che i dati siano recapitati al
programma di destinazione.
5
Stefano PucciGestione Riparazioni
Presso Domicilio Clienti
1.2- RETE AZIENDALE
Per lo scambio di dati tra i vari computer della ditta viene creata una rete locale di tipo
LAN (local area network). Il collegamento LAN avviene principalmente utilizzando
collegamenti di tipo Ethernet. Questo modello di collegamento prevedel’uso di un
doppino di rame intrecciato per collegare numerosi sistemi periferici tra loro e
connetterli ad uno switch Ethernet. Lo switch Ethernet viene poi connesso ad Internet.
L'accesso tramite Ethernet ha generalmente la velocità di 100 Mbps, che possono
arrivare fino a 1 o anche 10 Gbps. I computer connessi in questa maniera sono
principalmente i computer fissi.
Un altro tipo di collegamento LAN che viene utilizzato è una LAN wireless che
permette la connessione ad internet da parte di dispositivi come smartphone, portatili
ed altri dispositivi. In questa rete gli utenti ricevono e trasmettono pacchetti da e verso
un access point wireless (detto anche stazione base o base station) entro un raggio di
poche decine di metri, connesso a sua volta alla rete aziendale che è, a sua
volta,collegata ad Internet. Le LAN wireless sono basate sulla tecologia IEEE 802.11,
nota come WI-FI.
6
UNIVERSITÀ DIPISAFacoltàdi Ingegneria Informatica
Nel router è presente un firewall (muro). La funzionalità principale in sostanza è quella
di creare un filtro sulle connessioni entranti ed uscenti, innalzando il livello di
sicurezza della rete e permettendo sia agli utenti interni che a quelli esterni di operare
nel massimo della sicurezza. Il firewall agisce infatti sui pacchetti in transito da e per
la zona interna, potendo eseguire su di essi operazioni di:
controllo
modifica
monitoraggi
1.3- HTML e BROWSER
Per la visualizzazione dei vari dati sono state create delle pagine web,utilizzando un
apposito linguaggiodi markup chiamato "Html".
Il linguaggio Html (Hyper Text Markup Language) nasce da un'intuizione di Tim
Berners-Lee, del Cern di Ginevra. Egli si pose il problema di sviluppare il codice che
potesse permettere lo scambio di dati di natura scentifica, usando i collegamenti a
distanza tra computer anche su macchine con sistemi operativi differenti.
Un documento html non è nient’altro infatti che un file di testo con delle indicazioni sul
colore delle scritte, sulla posizione delle immagini all’interno della pagina, su come far
scorrere il testo, e altre cose di questa tipologia.
In ogni computer deve essere installato un programma che permette di visualizzare le
pagine scritte in questo linguaggio: il Browser.
Esso svolge principalmente due compiti:
- scarica i vari file che si trovano su un computer remoto (il server) e che fanno
riferimento a un certo indirizzo;
7
Stefano PucciGestione Riparazioni
Presso Domicilio Clienti
- legge i documenti scritti in html, ed a seconda delle indicazioni ivi contenute,
visualizza la pagina in un modo piuttosto che in un altro; inoltre i vari files
associati a quel documento (ad esempio le immagini, o i filmati in flash)
vengono disposti in base alle indicazioni del codice html.
Il Browser più diffuso è Internet Explorer, realizzato dalla Microsoft, e fornito assieme
al sistema operativo Windows. Esistono anche Browser open source come Mozilla,
che nasce da Netscape, Chrome, creato da Google, Opera, e molti altri. Ovviamente
esistono anche molti altri browser. Per ciascuno di essi sono presenti poi differenti
versioni, a seconda del sistema operativo (Windows, Mac OS, Linux, o altri).
Il creatore di pagine HTML, detto webmaster, deve possedere una mentalità multi-
browser, in quanto deve essere in grado di creare un codice che sia compatibile in
termini di visualizzazione con i vari tipi di browser e dispositivi. Una delle parti più
difficili del progetto è stata quella di riuscire a far vedere correttamente il proprio sito
con i vari browser e le svariate piattaforme.
La visualizzazione di un file html da parte del browser prende il nome
di rendering della pagina. Il Motore di rendering è dunque quella sezione del browser
che si occupa di mostrare sul video la pagina.
8
UNIVERSITÀ DIPISAFacoltàdi Ingegneria Informatica
Il compito del linguaggio HTML è dunque quello di spiegare al browser come i vari
files relativi al documento in esame devono essere disposti all’interno della pagina
che stiamo visualizzando.
In qualsiasi momento è possibile visualizzare il codice HTML delle pagine che stiamo
visitando semplicemente premendo assieme i tasti CTRL + U della tastiera (su sistemi
Windows), oppure si può effettuare la stessa operazione utilizzando il tasto destro del
mouse,al fine di visualizzare il menu a tendina, scegliendo poi la voce corrispondente.
L’organizzazione che si occupa di standardizzare la sintassi del linguaggio HTML è il
"W3C: World Wide Web Consortium", che ha rilasciato diverse versioni di questo
linguaggio (HTML 2.0, HTML 3.2, HTML 4.0, HTML 5.0); da un certo punto in poi,
l’HTML si è evoluto in XHTML (si tratta dell’HTML riformulato come linguaggio XML,
del quale ne sono già state rilasciate due versioni).
La versione dell’HTML che è stata utilizzata per la realizzazione del progetto è HTML
4.0 abbinata al linguaggio di scripting ASP. Il tuttor aziendale mi ha suggerito di
effettuare la stesura del lavoro con questa versione, in quanto è più facile da
utilizzare, soprattutto per una persona che si affaccia per la prima volta in questo
settore. In futuro, ci siamo promessi di sviluppare questo software, utilizzando l'ultima
versione contenente una ricca gamma di funzioni.
9
Stefano PucciGestione Riparazioni
Presso Domicilio Clienti
2. -Il Progetto
Il progetto nasce per poter fornire alle aziende nuovi strumenti di potenziamento
attraverso i nuovi mezzi tecnologici che lo sviluppo dell'informatica ha messo a
disposizione.
In particolare è stato realizzato un programma per la società Solidamente s.r.l. , ma è
stato strutturato in modo da poterlo adattare alle esigenze di altre aziende con poche
modifiche.Attraverso gli strumenti forniti da internet ed il linguaggio Html è stato creato
un software gestionale per evadere le richieste di assistenza e fornire al cliente un
servizio di riparazione adeguato e più veloce.
In pratica, per ogni richiesta di intervento l'operatore riceve la lista dei tecnici, indica al
cliente il primo disponibile, apre una pratica registrando i dati del cliente (se non già
presenti), il tipo di riparazione ed il nome dell'azienda/tecnico che la effettuerà.
Automaticamente il programma registra i termini della garanzia sia sui pezzi sostituiti
che sul lavoro effettuato.
Quella descritta è la parte relativa al rapporto azienda/cliente.
Vi è poi un'altra parte del programma che riguarda il rapporto tecnico/azienda, nella
quale il riparatore viene avvisato della chiamata; inoltre sia il tecnico che l'operatore
possono visualizzare la cronologia delle operazioni effettuate, le pratiche attualmente
in corso, la soddisfazione del cliente e le eventuali criticità.
I programmi software che sono serviti per la realizzazione dell’intero lavoro sono:
MySql Server, utilizzato per la creazione dei database contenente le informazioni sui
clienti, tecnici e ditte collaboratrici.
Css (Cascading Style Sheet), ovvero il linguaggio di programmazione utlizzato per
curare la formattazione delle pagine web che ho realizzato in HTML, ma che è
possibile utilizzare anche in documenti XHTML e XML.
10
UNIVERSITÀ DIPISAFacoltàdi Ingegneria Informatica
Prima della realizzazione vera e propria, ho dovuto effettuare un lavoro di
progettazione, dove ho ascoltato ed analizzato le varie richieste che mi hanno posto i
dirigenti dell’azienda. Per questo ho costruito delle mappe concettuali che di giorno in
giorno ho ampliato inserendo via via sempre più procedure, informazioni, ogni
qualvolta si presentavano possibili migliorie o semplificazioni. E’ capitato anche, per
inesperienza, di essermi dimenticato un paio di procedure, ma grazie al vigile
supporto che mi è stato offerto costantemente dal mio tutor, sono riuscito a inviduarle
ed a implementarle. Questo mi ha permesso di poter migliorare sempre di più il lavoro
svolto.
Il primo schema è stato molto semplice ed ho analizzato i vari gruppi di persone che
avrebbero utilizzato e trovato beneficio da questa realizzazione (come mostrato nella
figura sottostante): l’operatore, i tecnici, i clienti. Dopodichè sono passato ad
effettuare l’analisi di ogni singola classe di persone, ponendomi le domande su come
essi avrebbero interagito col programma stesso ed il loro compito al suo interno: il
programmatore/operatore avrebbe avuto un controllo totale sul programma, potendo
modificare, visualizzare, cancellare tutte le informazioni poste all’interno dei vari
database ed avrebbe inoltre potuto aprire “bandi di lavoro” per i tecnici censiti.
I tecnici sono in grado di analizzare solamente la loro situazione lavorativa, quindi lo
storico, o i lavori in attesa di essere portati a termine; mentre i clienti possono
interagire soltanto passivamente con il programma, potendo ricevere esclusivamente
una e-mail di conferma o un messaggio contenente l’orario di svolgimento del lavoro,
il giorno e le credenziali del tecnico associato.
11
Stefano PucciGestione Riparazioni
Presso Domicilio Clienti
Operatore
ClienteTecnico
Una volta completato questo primo studio ad alto livello, sono passato all’analisi delle
varie interfacce, descrivendo le varie procedure che sarebbero servite sia per
l’Interfaccia Operatore che per l’Interfaccia Tecnici.
12
GESTIONE RIPARAZIONI.
UNIVERSITÀ DIPISAFacoltàdi Ingegneria Informatica
3-DESCRIZIONE DELLE PROCEDURE
3.1-INTERFACCIA OPERATORE
3.1.1 -GESTIONE CLIENTI
Questa procedura serve per la gestione dei clienti dell'azienda. Ad ogni richiesta
d'intervento vengono registrate le informazioni del cliente, se non presenti nel
database. In generale, l'operatore, può visualizzare, modificare o ricercare i record in
base ad un determinato parametro. Una volta effettuata la procedura di un nuovo
inserimento, viene inviato un messaggio a video indicante l'esito dell'operazione.
All'interno della funzione visualizza è stata prevista la possibilità di inserimento di un
nuovo cliente e la cancellazione dello stesso.
13
Messaggio a video: "Inserimento avvenuto con successo"
Cliente
Inserimento
presente
Modifica - Visualizza
RicercaCancellazio
ne
Stefano PucciGestione Riparazioni
Presso Domicilio Clienti
La struttura dati utilizzata è la seguente:
3.1.2 -GESTIONE TECNICI
Questa procedura serve per la gestione dei tecnici associati all'azienda. Ogni volta
che la ditta si accorda con un nuovo specialista, per ampliare l'offerta verso il cliente,
vengono inseriti i dati all'interno del database. Il programma prevede anche di poter
collegare il riparatore ad una ditta già registrata. L'operatore può in qualsiasi momento
modificare, ricercare un dato tecnico oppure visualizzare l'elenco dei tecnici con cui è
stato trovato l'accordo. E' anche possibile cancellare un tecnico che non presta più
servizio di riparazione.
14
Messaggio a video: "Inserimento avvenuto con successo"
Tecnico
Inserimento
presente
Modifica - Visualizza
RicercaCancellazio
ne
UNIVERSITÀ DIPISAFacoltàdi Ingegneria Informatica
La struttura dati utilizzata è la seguente:
3.1.3 -GESTIONE AZIENDE
Vengono gestite tutte le aziende coinvolte nel progetto di riparazione; ogni azienda può operarein uno o più settori. Ogni ditta può mettere a disposizione tutti o parte dei propri tecnici. Quando necessario, l'operatore può modificare i dati dell'azienda e/o dei relativi tecnici. Una volta terminato il rapporto di collaborazione è possibile eliminare dal database i dati relativi.
15
Messaggio a video: "Inserimento avvenuto con successo"
Azienda
Inserimento
presente
Modifica RicercaCancellazio
ne
Gestione Tecnici Azienda
Visualizza
Stefano PucciGestione Riparazioni
Presso Domicilio Clienti
La struttura dati utilizzata è la seguente:
3.1.4 -GESTIONE INTERVENTO
Per la gestione degli interventi l'operatore ha a disposizione le procedure sotto
descritte:
- Visualizza Interventi: viene utilizzata per esaminare le pratiche aperte ed il lorostato
di avanzamento. E' anche possibile effettuare un nuovo
inserimento e/o modificare manualmente lo stato associato.
- Ricerca: determina gli interventi in base a determinati parametri.
- Storico:mostra i lavori portati a termine.
- Statistica: permette di poter ricercare pratiche effettuate in un determinato
periodo oppure svolte verso uncliente o eseguite da un datotecnico.
16
UNIVERSITÀ DIPISAFacoltàdi Ingegneria Informatica
La struttura dati utilizzata è la seguente:
17
Intervento
Visualizza Ricerca
CancellazioneModifica Inserimento
Storico Statistica
Variazione Stato
Intervento
Stefano PucciGestione Riparazioni
Presso Domicilio Clienti
La procedura Modifica Dati Intervento utilizza anche altre due tabelle dati. Nella prima
vengono specificati i vari tipi di intervento possibili(Elettrico, Idraulico, Informatico,
ecc...), nella seconda viene riportato, per ogni lavoro, il relativo stato di avanzamento (
0 Chiusura, 1 Apertura, 2 Richiesta Tecnico, ecc...).
4.-INTERFACCIA TECNICO
18
UNIVERSITÀ DIPISAFacoltàdi Ingegneria Informatica
Ad ogni tecnico vengono associati un identificatore ed una password. Si ha la
possibilità di poter visualizzare gli interventi svolti e quelli in corso d'opera. La pagina
che visualizza il tecnico viene realizzata mediante l'utilizzo del metodo View. Questo è
un oggetto logico che consente di avere una rappresentazione dei dati
“personalizzata” dagli utenti.
Per ottenere informazioni ricavate da più tabelle, si costruisce una query più
complessa contenente join, alias, nidificazioni, etc.
La vista può essere intesa come un modo veloce di eseguire una certa query. Se la
query deve essere definita ogni volta e non viene memorizzata in nessuna struttura
fisica o logica, la vista invece è un oggetto creato dall’utente e memorizzato nel
dizionario dei dati. Ciò che resta archiviato è solo la definizione della query e non i
dati, che continuano ad essere raccolti nelle rispettive tabelle. Le tabelle interrogate
sono le seguenti: scheda intervento, scheda anagrafica, scheda ditta, scheda tecnico.
Le tabelle interrogate da una vistasono chiamate base tables, cioè tabelle di base.
Descrizione Views:
SQLSECURITY DEFINER VIEW `qryinterventi` AS (SELECT
`scheda_intervento`.`Cod_Intervento` AS `Cod_Intervento`,
‘scheda_intervento`.`CF_Cliente` AS `CF_Cliente`,
`scheda_intervento`.`CF_Tecnico` AS `CF_Tecnico`,
`scheda_intervento`.`Tipo_Intervento` AS `Tipo_Intervento`,
`scheda_intervento`.`Componenti_sostituiti` AS `Componenti_sostituiti`,
`scheda_intervento`.`Garanzia` AS `Garanzia`,
`scheda_intervento`.`Cod_rapporto_tecnico` AS `Cod_rapporto_tecnico`,
`scheda_intervento`.`Data_Intervento` AS `Data_Intervento`,
`scheda_intervento`.`Feedback_Cliente` AS `Feedback_Cliente`,
`scheda_intervento`.`Costo_intervento` AS `Costo_intervento`,
19
Stefano PucciGestione Riparazioni
Presso Domicilio Clienti
`scheda_intervento`.`Stato` AS `Stato`,
`scheda_anagrafica`.`Nome` AS `Nome`,
`scheda_anagrafica`.`Indirizzo` AS `Indirizzo`,
`scheda_anagrafica`.`Comune` AS `Comune`,
`scheda_anagrafica`.`Cognome` AS `Cognome`,
`scheda_anagrafica`.`N_Cellulare` AS `N_Cellulare`,
`scheda_anagrafica`.`Tel_Casa` AS `Tel_Casa`,
`scheda_anagrafica`.`Email` AS `Email`,
`scheda_tecnico`.`Nome` AS `NomeTecnico`,
`scheda_tecnico`.`Cognome` AS `CognomeTecnico`,
`scheda_tecnico`.`N_Cellulare` AS `N_CellulareTecnico`,
`scheda_tecnico`.`Email` AS `EmailTecnico`,
`scheda_tecnico`.`Qualifica` AS `Qualifica`,
`tipo_intervento`.`Descrizione` AS `DescrizioneTipoIntervento`,
`scheda_ditta`.`Nome` AS `RagioneSocialeDitta`
FROM
((((`scheda_intervento` left join `scheda_anagrafica`
on((`scheda_intervento`.`CF_Cliente` = `scheda_anagrafica`.`Cod_Fiscale`)))
left join `scheda_tecnico`
on((`scheda_intervento`.`CF_Tecnico` = `scheda_tecnico`.`Cod_Fiscale`)))
left join `tipo_intervento`
20
UNIVERSITÀ DIPISAFacoltàdi Ingegneria Informatica
on ((`scheda_intervento`.`Tipo_Intervento` = `tipo_intervento`.`id`)))
left join `scheda_ditta`
on ((`scheda_tecnico`.`Id_Ditta` = `scheda_ditta`.`Id_Ditta`))))
5. - ASP
Le pagine web possono essere statiche o dinamiche. Quelle dinamiche hanno le
21
Stefano PucciGestione Riparazioni
Presso Domicilio Clienti
pagine contenente il codice html che viene generato immediatamente da
un’elaborazione sul server. Ad ogni richiesta di tipo diverso, il codice ricevuto ed
interpretato dal Browser è sempre differente. L’utilizzatore finale della pagina web non
si accorgerà mai di questoelemento poiché il codice, girando sul server, è
completamente nascosto. Le classiche applicazioni che utilizzano questo tipo di
pagina sono per esempio: motori di ricerca, Faq, forum, eccetera.
I due linguaggi chiave utilizzati per la loro realizzazione sono l’ ASP oppure il PHP.
L’ASP (Active Server Pages), rappresenta la soluzione Microsoft per lo sviluppo delle
pagine web dinamiche, pagine che in molti siti Web hanno sostituito le obsolete
pagine html statiche. Queste pagine comprendono sia righe di puro htlm che veri e
propri programmi scritti in un particolare linguaggio di scripting. Un linguaggio di
scripting è un insieme di parole chiave e regole di scrittura per eseguire programmi
normalmente interpretati. Un programma scritto con un linguaggio di scripting viene
detto script. Quello supportato dalle Asp e da me utilizzato nella realizzazione di una
pagina di “conferma cancellazione” è il VBScript ( Visual Basic Script), ma ne esistono
altri, come il JavaScript oppure il Python. Un file ASP, inoltre, ha come
estensione .asp.
Internet si basa su un modello Client-Server: il computer client richiede delle
informazioni al server. Il server fornisce queste informazioni al client che a sua volta le
elabora. In un ambiente Internet, il server si chiama web server, mentre il client,
normalmente, è un computer con un web browser. Un web server è un computer nel
quale sono memorizzate tutte le pagine web di un sito; inoltre vi si trova un software
in grado di invare le pagine richieste ai vari browser client.
Mentre per visualizzare una pagina html statica si devono effettuare i seguenti passi:
22
UNIVERSITÀ DIPISAFacoltàdi Ingegneria Informatica
- Il client individua il Web server specificato nella prima parte dell’url
(http://www2.ing.unipi.it);
- Il client richiede la pagina specificata nella seconda parte dell’url
(/~a008149/corsi/osor/);
- Il server invia al client il contenuto della pagina richiesta in formato html;
- Il client riceve il file e lo visualizza all’interno della finestra del browser;
Invece per realizzare una pagina ASP come quelle da me prodotte, che contenga sia
codice html che righe di programma (quindi attiva), il server deve elaborare tale
codice prima di spedire la pagina al browser.
I passi che vengono eseguiti sono:
- Il client individua il Web server specificato nella prima parte dell’url
(http://www2.ing.unipi.it);
- Il client richiede la pagina specificata nella seconda parte dell’url
(/~a008149/corsi/osor/);
- Il server legge il file ASP e ne elabora il codice;
- Il server invia al client il contenuto della pagina richiesta in formato html;
- Il client riceve il file e lo visualizza all’interno della finestra del browser.
Il client non nota alcuna differenza tra una pagina html statica e una pagina ASP, in
quanto riceve unicamente un codice html. Tutto il programma contenuto nella pagina
ASP viene elaborato dal server, nessuna riga di programma viene invata al browser.
Il server distingue una pagina statica da una attiva grazie all’estensione (.htm o .html
23
Stefano PucciGestione Riparazioni
Presso Domicilio Clienti
e .asp).
La differenza tra codice html e codice ASP consiste nel fatto che quest’ultimo viene
sempre raccchiuso tra <% e %>.
Quando viene richiesta una pagina ASP, il server elabora tutto il codice racchiuso tra
<% e %> prima di inviare l’output al client. La prima riga del codice indica al server
quale linguaggio di scripting viene utilizzato ( Esempio <% Language = VBSCRIPT
%> ).
Per eseguire una pagina ASP ho dovuto connettermi al Server dell’azienda. Infatti,
per poterla mandare su un computer, deve essere in esecuzione sullo stesso un
server web. Se questo server web non è installato sul PC che funge da server quando
un client richiede una pagina ASP, viene chiesto all’utente cosa vuole fare con il file
ASP.
Le soluzioni proposte da Microsoft sono due:
- Internet Information Server (IIS): software professionale, adatto ad essere
installato su macchine, che effettivamente funzionano come server.
- Personal Web Server (PWS): versione ridotta di IIS, adatta sicuramente
all’utilizzo domestico delle ASP. Con il PWS in esecuzione il nostro computer
può funzionare come un piccolo server.
Ci sono anche altri software non inerenti a Microsoft che permettono l’esecuzione di
pagine ASP, come i software iASP e Chili!Asp.
Per la creazione di una pagina ASP ho utilizzato l’ultima versione di frontpage, editor
per pagine Web e InterDev, pacchetto per la creazione di pagine web complesse che
supportano, tra l’altro, il codice Asp.
Quando una pagina è stata creata ed ultimata per poterla visualizzare sul browser
24
UNIVERSITÀ DIPISAFacoltàdi Ingegneria Informatica
vengono effettuati i seguenti passi:
- Richiesta: il browser contatta il server e richiede una pagina ASP;
- Elaborazione: il file ASP.dll esegue una elaborazione dello script richiesto;
- Esecuzione: il motore di scripting esegue le istruzioni dello script;
- Conversione: il risultato viene convertito in html;
- Visualizzazione: l’html viene inviato al browser che elabora i tag e visualizza la
pagina.
6. -COMANDI ASP
I comandi e le strutture che ho usato per la realizzazione dell’elaborato sono
25
Stefano PucciGestione Riparazioni
Presso Domicilio Clienti
veramente tanti, ma i più importanti sono i seguenti:
Comando Response: utilizzato per inviare risultati ai client, esiti che possono
essere informazioni visualizzate nella finestra del client, oppure dati dei cookie o
ancora dati relativi a come le pagine vengono inviate e memorizzate.
Ci sono vari tipi di Response tra questi:
- Response.wirte: utilizzato per inviare dati al client, dati che vengono
visualizzati come parte di una pagina web;
- Response.Redirect: utilizzato per passare da una pagina ad un’altra in modo
automatico, non appena la prima pagina è stata caricata.
Moduli Form: permettono di raccogliere le informazioni dall’utente e di inviarle ad
una particolare pagina per la loro elaborazione o memorizzazione in un database,
oppure di inviarle ad una casella di posta elettronica.
Utilizzato per:
- L’utente invia ad un motore di ricerca delle parole chiave e il motore gli invia gli
url cercati;
- L’utente invia i suoi dati personali che il server memorizza in un database;
- L’utente raccoglie le informazioni sugli ordini d’acquisto in un negozio online.
Se una pagina ASP riceve dei dati dall’utente, è in grado di elaborarli e di spedire al
browser solo le informazioni richieste o di limitare l’accesso sulla base di nome utente
e password o altri criteri di validazione.
Il modulo Form dispone di due proprietà:
26
UNIVERSITÀ DIPISAFacoltàdi Ingegneria Informatica
- Method : che ha valore di Post o Gest
- Action: indica la pagina che deve ricevere i dati
Un modulo viene inviato quando l’utente conferma i dati immessi mediante un
pulsante.
Oggetto Session: permette di mantenere, sul server, lo stato per i singoli utenti.
Ad ogni utente viene assegnato il proprio “oggetto Session”, dove possono essere
memorizzate informazioni relative a quell’ultente. Ogni pagina ASP visitata dall’utente
può inserire o togliere dati nello spazio riservato all’utente stesso. In pratica viene
creata “un’istanta dell’oggetto Session”,ideata per l’utente quando questo si collega al
sito.
Poiché ad ogni utente viene assegnata una propria Session, questa dev’ essere
univocamente identificata: un identificatore numerico (SessionID) viene utilizzato per
identificare una particolare Session appartentente ad un certo utente.
Esempio:
<% Response.Write “Il tuo SessionID vale” & Session.SessionID & “ <br> %>
Il sessionID viene memorizzato sul web server e sul computer del client, sotto forma
di un cookie. Quando un client richiede una certa pagina, invia nell’intestazione http
anche i propri cookie, che vengono riconosciuti dal server: tra i cookie c’è Session ID,
per cui il server riconosce l’utente con quell’ID e accede alla Session di quell’utente.
Se però il browser non accetta i cookie nascono dei problemi, che possono essere
parzialmente risolti con un software aggiuntivo da installare sul server, che riesce a
identificare comunque gli accessi di un determinato utente (filtro ISAPI: Internet
Server Application Programming Interface detto Cookie Munger), rallentando però il
27
Stefano PucciGestione Riparazioni
Presso Domicilio Clienti
funzionamento del server stesso.
Poiché ogni istanza dell’oggetto Session occupa memoria, è bene liberare memoria
quando l’utente non è più collegato. Ma il server non sa quando un utente chiude il
collegamento.
E’ possibile però determinare quando è avvenuto l’ultimo accesso e , se trascorso un
certo tempo, liberare la memoria dalla session. Il tempo che intercorre prima che la
memoria sia liberata si chiama Timeout della sessione.
Esempio:
Session. Timeout = numerominuti
Per distruggere l’oggetto Session prima del timeout si utilizza il metodo
Session.Abandon.
7.-CSS
CSS (Cascading Style Sheets - Fogli di stile a cascata) è uno dei fondamentali
linguaggi standard del W3C. La sua storia cammina su binari paralleli rispetto a quelli
di HTML, di cui vuole essere l'ideale complemento. Da sempre, infatti, viene visto
28
UNIVERSITÀ DIPISAFacoltàdi Ingegneria Informatica
semplicemente come un linguaggio strutturale. Per questo obiettivo, ovvero arricchire
l'aspetto visuale ed estetico di una pagina, lo strumento designato è appunto il CSS.
L'ideale perseguito da anni si può sintetizzare con una nota espressione: separare il
contenuto dalla presentazione. La prima specifica ufficiale di CSS (CSS1) risale al
dicembre del 1996. Nel maggio 1998 è stata la volta della seconda versione: CSS2.
Niente stravolgimenti, ma molte aggiunte rispetto alla prima. CSS2 non è altro che
CSS1 più alcune nuove proprietà, valori di proprietà e definizioni per stili non canonici
come quelli rivolti alla stampa o alla definizione di contenuti audio. E' attualmente allo
stato di Working Draft la nuova specifica CSS3. Viene utilizato, ad esempio, per dare
al testo delle pagine un aspetto da wordprocessor: non solo con il colore o i font, ma
con un sistema di interlinea pratico e funzionale, con le decorazioni, riuscendo a
spaziare lettere e parole, impostando stili diversi per titoli e paragrafi, sfruttando i
benefici dell'indentatura o della giustificazione. Si utilizza per distanziare gli elementi
della vostra pagina in maniera semplice ed intuitiva con un potente meccanismo di
gestione dei margini. Inoltre, permette di inserire i bordi non solo alle tabelle, ma a
tutti
gli elementi di una pagina. Ci consente anche di poter inserire, nella posizione che
desideriamo, una qualsiasi immagine, disegno di qualunque dimensione, di una
qualsivoglia pagina, specificando la grandezza di pixel (per esempio: 600x400 pixel).
I CSS sono separati dal documento. Si deve creare un apposito file salvato in formato
.css, che contiene direttamente le modifiche grafiche che vogliamo applicare alla
pagine o alle pagine: si può quindi inserire le specifiche grafiche riguardanti lo stile, i
colori da utilizzare, le dimensioni delle immagini.
Una regola importante che ho utilizzato nell’utilizzo del CSS è quello relativo
all’impiego di una struttura ad albero di un documento. Il meccanismo fondamentale
dei CSS è infatti l'ereditarietà. Esso fa sì che molte proprietà impostate per un
elemento siano autamaticamente ereditate dai suoi discendenti.
29
Stefano PucciGestione Riparazioni
Presso Domicilio Clienti
La struttura delle pagine che ho reallizzato è un insieme di elementi ordinati che
hanno tra di loro una relazione del tipo genitore-figlio (parent-child). Ogni elemento è
genitore e/o figlio di un altro. Un elemento si dice genitore (parent) quando contiene
altri elementi. Si dice figlio (child) quando è racchiuso in un altro elemento. Una
Pagina deve essere sempre contenuta tra i tag HTML, dentro i quali troviamo il tag
HEAD, nel quale viene specificato il titolo della pagina ed il tag BODY, che contiene al
suo interno tutto il corpo della pagina. Al suo interno troviamo i tag H1, DIV e P, che
servono per la suddivisione della pagina: paragrafi, ecc. Quest'ultimo è a sua volta
genitore di un elemento B.
8.-CODICE PRINCIPALI FUNZIONI
8.1-VISUALIZZAZIONE CLIENTI
30
UNIVERSITÀ DIPISAFacoltàdi Ingegneria Informatica
<%
sAzione = Request.Querystring("Azione")
sChiamante = Request.Querystring("chiamante")
if sAzione = "RIC" then
sCerca = Request.form("search")
sSQL = "Select COUNT(*) from scheda_anagrafica "
sSQL = sSQL & " where Cod_Fiscale like '%" & sCerca & "%' or Nome
like '%" &sCerca & "%' or Cognome like '%" & sCerca & "%' or
Comune like '%" &sCerca & "%'"
'Response.Write("<p>sChiamante = " & schiamante & "</p>")
set rs = Server.CreateObject("ADODB.Recordset")
rs.ActiveConnection = cn
rs.Source = sSql
rs.CursorType = adOpenStatic
rs.CursorLocation = adUseServer
rs.LockType = adLockReadOnly
rs.Open()
'Response.Write("<p>sSql = " & ssql & "</p>")
'Response.Write("<p>rs.eof = " & rs.eof & "</p>")
if rs.state = adStateOpen then
if not rs.EOF then
lrecords = clng(rs.fields(0))
Else
lrecords = 0
Response.Redirect("Errore.asp?Messaggio=Nessun
Cliente Trovato!!...&Pagina=RicercaCliente.asp")
End if
Else
Response.Redirect("Errore.asp?Messaggio=APERTURA
31
Stefano PucciGestione Riparazioni
Presso Domicilio Clienti
RECORDSETFALLITA!!...&Pagina=MenuPrincipale.asp")
End if
sSQL = "Select * from scheda_anagrafica "
sSQL = sSQL & " where Cod_Fiscale like '%" & sCerca & "%' or Nome like '%"
& sCerca & "%' or Cognome like '%" & sCerca & "%' or Comune like '%" &
sCerca & "%'" sSQL = sSQL & " ORDER BY Cognome,Nome"
Else
sSql = "Select * from scheda_anagrafica ORDER BY Cognome, Nome"
End if
%>
8.2-INSERIMENTO NUOVO TECNICO
<%
dim Cod_Fiscale
Cod_Fiscale = request.form("Cfc")
dim Nome
Nome = request.form("Nome")
dim Cognome
Cognome = request.form("Cognome")
dim Indirizzo
Indirizzo = request.form("Indirizzo")
dim Comune
Comune = request.form("Comune")
dim Provincia
Provincia = request.form("Provincia")
dim Cap
Cap = request.form("cap")
dim Cellulare
Cellulare = request.form("Cellulare")
dim Tel
32
UNIVERSITÀ DIPISAFacoltàdi Ingegneria Informatica
Tel = request.form("Casa")
dim Email
Email = request.form("Email")
if (Cod_Fiscale <> "" AND Nome <>"" AND Cognome <>"") then
sSql= "INSERT INTO scheda_anagrafica
(Cod_Fiscale,Nome,Cognome,Indirizzo,Comune,Provincia,Cap,"
sSql = sSql & "N_Cellulare,Tel_Casa,Email) VALUES("
sSql = sSql & "'" & Cod_Fiscale & "', "
sSql = sSql & "'" & Nome & "', "
sSql = sSql & "'" & Cognome & "', "
sSql = sSql & "'" & Indirizzo & "', "
sSql = sSql & "'" & Comune & "', "
sSql = sSql & "'" & Provincia & "', "
sSql = sSql & "'" & Cap & "', "
sSql = sSql & "'" & Cellulare & "', "
sSql = sSql & "'" & Casa & "', "
sSql = sSql & "'" & Email & "')"
'Response.Write("<p>Stringa Sql = " & ssql & "</p>")
bEsito = QueryExecute(sSql, cn)
else
Response.Redirect("Errore.asp?Messaggio = Inserire almeno i campi:
Cod_Fiscale, Nome , Cognome &Pagina=MenuPrincipale.asp")
end if
%>
33
Stefano PucciGestione Riparazioni
Presso Domicilio Clienti
8.3-MODIFICA DATI DITTE
<%
dim sPi
sPi = request.form("Pi")
dim sNome
sNome = request.form("Rs")
dim sIndirizzo
sIndirizzo = request.form("Indirizzo")
dim sComune
sComune = request.form("Comune")
dim sProvincia
sProvincia = request.form("Provincia")
dim sCap
sCap = request.form("Cap")
dim sCellulare
sCellulare = request.form("Cellulare")
dim sEmail
sEmail = request.form("Email")
sSql= "UPDATE scheda_ditta SET "
sSql = sSql & "Nome = '" & sNome & "', "
sSql = sSql & "N_Cellulare = '" & sCellulare & "', "
sSql = sSql & "Email = '" & sEmail & "', "
sSql = sSql & "Indirizzo = '" & sIndirizzo & "', "
sSql = sSql & "Comune = '" & sComune & "', "
sSql = sSql & "Cap = '" & sCap & "', "
sSql = sSql & "Provincia = '" & sProvincia & "' "
sSql = sSql & " WHERE Partita_Iva = '" & sPi & "'"
'Response.Write("<p>Stringa Sql = " & ssql & "</p>")
bEsito = QueryExecute(sSql, cn)
%>
34
UNIVERSITÀ DIPISAFacoltàdi Ingegneria Informatica
8.4-STATISTICA INTERVENTO
<%
dim DataA
DataA = request.form("Data_Apertura")
dim DataC
DataC = request.form("Data_Chiusura")
dim CfT
CfT = request.form("Cod_FiscaleT")
dim CfC
CfC = request.form("Cod_FiscaleC")
sCond = ""
if (DataA <> "" AND DataC <> "") then
sCond = "Data_Intervento >= '" & formattaData(DataA) & "' AND
Data_Intervento <='" & formattaData(DataC) & "'"
elseif (DataA <> "" AND DataC = "") then
sCond = "Data_Intervento >= '" & formattaData(DataA) & "'"
elseif (DataA = "" AND DataC <> "") then
sCond = "Data_Intervento <='" & formattaData(DataC) & "'"
end if
if CfT <> "" then
if (sCond = "") then
sCond = "CF_Tecnico ='" & CfT & "'"
else
sCond = sCond & " AND CF_Tecnico ='" & CfT & "'"
end if
end if
35
Stefano PucciGestione Riparazioni
Presso Domicilio Clienti
if CfC <> "" then
if (sCond = "") then
sCond = "CF_Cliente ='" & CfC & "'"
else
sCond = sCond & " AND CF_Cliente ='" & CfC & "'"
end if
end if
sSQL = "Select COUNT(*) from qryInterventi"
if (sCond <> "") then
sSQL = sSQL & " where " & sCond & " ORDER BY Data_Intervento"
else
sSQL = sSQL & " ORDER BY Data_Intervento"
end if
set rs = Server.CreateObject("ADODB.Recordset")
rs.ActiveConnection = cn
rs.Source = sSql
rs.CursorType = adOpenStatic
rs.CursorLocation = adUseServer
rs.LockType = adLockReadOnly
rs.Open()
'Response.Write("<p>sSql = " & ssql & "</p>")
'Response.Write("<p>rs.eof = " & rs.eof & "</p>")
36
UNIVERSITÀ DIPISAFacoltàdi Ingegneria Informatica
if rs.state = adStateOpen then
if not rs.EOF then
lrecords = clng(rs.fields(0))
Else
lrecords = 0
End if
Else
Response.Redirect("Errore.asp?Messaggio=APERTURA RECORDSET
FALLITA!!...&Pagina=MenuPrincipale.asp")
End if
%>
9.-PRINCIPALI VIDEATE
37
Stefano PucciGestione Riparazioni
Presso Domicilio Clienti
Statistica Internvento
Modifica dati Anagrafici della Ditta
Visualizzazione Clienti Censiti
38
UNIVERSITÀ DIPISAFacoltàdi Ingegneria Informatica
Menu Principale
10.-CONCLUSIONE
In futuro le procedure potranno essere migliorate mediante l'impiego del linguaggio di
programmazione html 5 di ultima generazione e potenziando la comunicazione tra
39
Stefano PucciGestione Riparazioni
Presso Domicilio Clienti
azienda e tecnici,in modo da sostituire la forma attuale con l'invio di sms previo
l’acquistodi un’apposita suite software.
Anche la parte grafica può essere migliorata così come l'esperienza d'uso, nella
ricerca di rendere più semplice la gestione delle varie procedure che non ho potuto
ottimizzare per mancanza di tempo.
La realizzazione del progetto mi ha permesso di ampliare le conoscenze informatiche
applicando nella realtà molti concetti studiati solo teoricamente.
Ringrazio il tutor Sale Gianni per la disponibilità mostrata e per avermi aiutato a
superare le difficoltà volta volta incontrate.
40