Gestione Riparazioni Presso Domicilio Clienti

54
FacoltàdiIngegneri a Informatica A.A. 2015/16 Gestione Riparazioni Presso Domicilio Clienti Sunto Trattasi 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.

description

Trattasi 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.

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