Source: http://docplayer.it/442427-Lo-standard-internazionale-iso-9001-e-strumenti-di-produzione-normativa-open-source-del-sistema-di-gestione-integrato.html
Timestamp: 2018-12-11 20:35:49+00:00
Document Index: 74722792

Matched Legal Cases: ['arte 1', 'arte 2', 'arte 3', 'arte 2', 'arte 1', 'arte 3', 'arte 1', 'arte 2', 'arte 3']

Lo standard internazionale ISO 9001 e strumenti di produzione normativa open source del sistema di gestione integrato. - PDF
Lo standard internazionale ISO 9001 e strumenti di produzione normativa open source del sistema di gestione integrato.
Download "Lo standard internazionale ISO 9001 e strumenti di produzione normativa open source del sistema di gestione integrato."
1 Lo standard internazionale ISO 9001 e strumenti di produzione normativa open source del sistema di gestione integrato. Può il software open source aiutare un'organizzazione complessa a costruire un sistema di produzione normativa ISO 9001 sempre aggiornato? Alessandro Olsson, Giacinto Piero Tartaglia, Marcello Nassi 2013 Report EUR EN
2 European Commission Joint Research Centre Ispra Site Management Contact information Alessandro Olsson Address: Joint Research Centre, Via Enrico Fermi 2749, TP 590, Ispra (VA), Italy Tel.: Giacinto Piero Tartaglia Address: Joint Research Centre, Via Enrico Fermi 2749, TP 421, Ispra (VA), Italy Tel.: Marcello Nassi Address: Joint Research Centre, Via Enrico Fermi 2749, TP 590, Ispra (VA), Italy Tel.: This publication is a Technical Report by the Joint Research Centre of the European Commission. Legal Notice This publication is a Technical Report by the Joint Research Centre, the European Commission s in-house science service. It aims to provide evidence-based scientific support to the European policy-making process. The scientific output expressed does not imply a policy position of the European Commission.Neither the European Commission nor any person acting on behalf of the Commission is responsible for the use which might be made of this publication. JRC85515 EUR EN ISBN (PDF) ISBN (print) ISSN (print) ISSN (online) doi: /41857 Luxembourg: Publications Office of the European Union, 2013 European Union, 2013 Reproduction is authorised provided the source is acknowledged. Printed in Luxembourg
3 Prefazione L'Organizzazione internazionale per la normazione (International Organization for Standardization - ISO) ha emesso una serie di normative della famiglia ISO 9000, le quali stabiliscono le caratteristiche che deve avere un sistema di gestione della qualità al fine di identificare i processi aziendali, migliorare l'efficienza nella realizzazione dei prodotti o nell'erogazione dei servizi e, infine, aumentare la soddisfazione del cliente finale. La normativa ISO 9001:2008 "Sistemi di gestione per la qualità Requisiti", in particolare, definisce i requisiti che deve avere un sistema di gestione della qualità per una organizzazione. In questo contesto, può il software open source aiutare un'organizzazione complessa a costruire un sistema di produzione normativo ISO 9001 sempre aggiornato? L'applicazione del sistema ISO ad un'organizzazione prevede che debbano essere emesse delle Procedure relative ai processi tali che il sistema stesso possa essere monitorato, controllato ed eventualmente migliorato e corretto in maniera continua con azioni dedicate. La produzione normativa interna a un'organizzazione può essere composta sia a livello gerarchico (Procedure di 1 e di 2 livello) che a livello ramificato, dove ogni Procedura può fare riferimento ad altre di grado qualsiasi. 2 In strutture di lavoro più articolate e di tipo piramidale l'emissione normativa può avvenire contemporaneamente da più membri del livello di base, che dovranno riferirsi per la parte generale alle procedure di rango superiore, per la parte specifica, e, se necessario, a quelle di rango differente presenti nel sistema. Inoltre, in un sistema complesso, le strutture di livello di base possono avere norme condivise tra i membri o, comunque, una normativa che si riferisce ad altre produzioni normative esterne alla struttura stessa. Si capisce bene che per le strutture complesse è difficile il controllo effettivo del sistema, e che, l'aggiornamento di una norma potrà avere conseguenze dirette sulle altre norme appartenenti al sistema stesso. Il testo e la struttura delle Procedure sono organizzati per capitoli. Ad esempio, possono essere composte da un titolo ed un nome univoco caratterizzante, un elenco di acronimi, uno scopo specifico, le responsabilità, il corpo normativo vero e proprio, le modalità di archiviazione ed infine l'elenco degli allegati. Ognuno di questi capitoli che compongono le Procedure è separato e indipendente. Spesso tali capitoli possono essere ricorrenti e quindi presenti nelle varie Procedure. Una struttura molto eterogenea, dovrebbe permettere ai membri di agire in autonomia e separatamente, andando a migliorare il sistema normativo stesso, condividendo in maniera attiva le informazioni e/o le parti simili tra loro. Ciò può essere agevolato dall'uso di un server aziendale in cui sono disponibili tutte le informazioni necessarie A..Olsson, G.P.Tartaglia, M.Nassi Page 1
4 Con il sistema proposto, l'intera struttura accoglie le modifiche, si aggiorna costantemente, si adatta e cresce secondo le esigenze, e infine, tenderà a semplificarsi in maniera dinamica. La produzione normativa sarà quindi sempre aggiornata e in linea con le esigenze dell'organizzazione e della Direzione. Tra le possibili soluzioni per la Gestione del Sistema di Qualità, si è cercato di utilizzare alcuni software Open Source che permettono la modifica rapida e l'adattamento alle necessità dell'utente, la condivisione dei dati e la collaborazione tra gli attori coinvolti nell'organizzazione stessa. Nel caso in esame, la struttura organizzata della base di dati, la sua posizione su un server aziendale, la possibilità di produrre tutti i Report (Procedure e Istruzioni Operative), la funzione di rappresentazione grafica di tutto il sistema, permette di fare alcune considerazioni: 1. Il sistema Database-Front end permetterà di aggiornare costantemente e in maniera veloce le norme da postazioni di lavoro remote in maniera collaborativa tra tutti gli attori coinvolti; 2. Il sistema consentirà alla Direzione (Struttura di vertice) un controllo immediato e costante per un miglioramento continuo, con abbattimento dei costi di produzione del servizio e ottimizzazione dell'efficienza generale della struttura; 3. Il Report Tool collegandosi direttamente alla base di dati aiuterà a produrre le normative aggiornate (Procedure ed Istruzioni) secondo un template predeterminato di aspetto professionale, il risultato potrà essere fornito nei vari formati più diffusi; 4. La Network visualisation library aiuterà la visualizzazione grafica dell'universo normativo, l'organizzazione gerarchica e tutte le interconnessioni tra le norme stesse; 5. L'intero sistema avrà dei costi prossimi allo zero l'utilizzo del software open source, infatti, permetterà di ridurre tutti i costi di acquisto di prodotti analoghi esistenti in commercio; 6. I vari software utilizzati potranno essere sostituiti con altri dalle caratteristiche simili senza avere effetto sul risultato finale dello schema del sistema. Non solo, ma gli sviluppi futuri del sistema renderanno evidente tutta la versatilità e l'adattabilità dello stesso al cosiddetto "Integrated Management System", lasciando alla Direzione la sola scelta della struttura organizzativa generale in cui inquadrare le norme. In particolare è immaginabile che il sistema: 1. Potrà agevolare l'integrazione degli standard internazionali ISO 9001, ISO e OHSAS 18001; 2. Diventerà flessibile e permeabile verso i cambiamenti imposti (leggi, direttive o regolamenti), crescendo, modificandosi costantemente e adeguandosi alla struttura organizzativa impostata dalla Direzione; 3. Potrà essere migliorato direttamente dagli utenti finali con tutte le modifiche che riterranno utili e indispensabili, in quanto, il sistema di produzione normativo è un reale sistema collaborativo. A..Olsson, G.P.Tartaglia, M.Nassi Page 2
5 Indice dei contenuti 01. INTRODUZIONE APPLICABILITA' IL SISTEMA Requisiti generali del sistema Scelta del Software del sistema Installazione del Software del sistema SOFTWARE Sistema Operativo Web server Database Hypertext Preprocessor Front end Report Tool Network visualisation library Database Management STRUTTURA Procedure e Istruzioni Operative Record e Paragrafi rilevanti Identificativo alfanumerico e nome del documento Integrazione di altri sistemi DATA BASE La base di dati ISO Tabelle Principali Tabelle Secondarie Relazioni tra le Tabelle Schema grafico del database Corrispondenza dei Capitoli con le Tabelle FRONT END Accesso VFront Main Menu VFront Table 0 ISTRUZIONE OPERATIVA Subform of 0 ISTRUZIONE OPERATIVA A..Olsson, G.P.Tartaglia, M.Nassi Page 3
6 07.5. Modifica o inserimento di un dato esistente Uso dell'editor di testo Dettaglio VFront - MySQL Parametri grafici Parametro di stampa Considerazioni sul sistema REPORT TOOL Collegamento alla base di dati MySQL Report e sub report Query di estrazione dei dati Risultato finale dei Report NETWORK VISUALISATION LIBRARY Il file: Connessione.php Il file: CytoscapeWeb.html Il file: REVISO9001.xgmml Risultato grafico finale COSTRUIRE UNA NUOVA NORMA Inserimento della norma Connessioni della norma nel sistema Gli altri subform Generare il grafico Visualizzare il grafico MODIFICARE UNA NORMA CONCLUSIONI Ringraziamenti A..Olsson, G.P.Tartaglia, M.Nassi Page 4
7 Indice delle figure Figura 1 "Struttura Base di dati ISO9001" Figura 2 "Struttura del sistema ISO9001" Figura 3 "Struttura della Tabella Principale 0_ISTRUZIONE" Figura 4 "Struttura della Tabella Principale 1_ACRONIMI" Figura 5 "Struttura della Tabella Secondaria U_1 ACRONIMI" Figura 6 "Schema grafico della Base di dati ISO9001" Figura 7 "Pagina di accesso VFront" Figura 8 "Pagina Principale di VFront" Figura 9 "Pagina Generale della Procedura o Istruzione Operativa- VFront" Figura 10 "Subform ACRONIMI - VFront" Figura 11 "Subform ACRONIMI Vfront modifica, Inserimento e scelta del Record" Figura 12 "Table 7_TESTI Editor di Testi interno al sistema" Figura 13 "VFront administration" Figura 14 "Groups/registries menu" Figura 15 "Rules table group" Figura 16 "Table settings 0_ISTRUZIONE" Figura 17 "Table subform rules 0_ISTRUZIONE Parte 1" Figura 18 "Table subform rules 0_ISTRUZIONE Parte 2" Figura 19 "Table subform rules 0_ISTRUZIONE Parte 3" Figura 20 "Table Parametri Grafici" Figura 21 "Table Parametro di stampa" Figura 22 "Schermata iniziale ireport e Report Datasources" Figura 23 "Schermata Connections / Datasources" Figura 24 "Schermata sorgente dati" Figura 25 "Schermata Database JDBC connection" Figura 26 "Schermata ireport Designer" A..Olsson, G.P.Tartaglia, M.Nassi Page 5
8 Figura 27 "Aspetto del Report finale 1" Figura 28 "Aspetto del Report finale 2" Figura 29 "Aspetto del Report finale 3" Figura 30 "Aspetto grafico CytoscapeWeb - INTRANET" Indice delle tabelle Table 1 "Software download and installation" Table 2 "Tipologie di Paragrafi nei Capitoli" Table 3 "Modifica dei Paragrafi" Table 4 "Modifica dell'identificativo" Table 5 "Corrispondenza Capitoli/Tabelle MySQL" A..Olsson, G.P.Tartaglia, M.Nassi Page 6
9 01. INTRODUZIONE Il presente rapporto tecnico nasce dalla necessità di avere un sistema di produzione normativo nel campo dello standard ISO Il sistema dovrà aggiornare le norme, stampare le stesse in vari formati, e infine pubblicare in maniera automatica una rappresentazione grafica di tutte le interazioni tra le norme stesse. Per ottenere questo risultato si è scelto di usare solo software open source, poiché permette la modifica e la personalizzazione secondo le proprie esigenze e di risparmiare considerevoli risorse economiche dell'organizzazione stessa. La struttura gerarchica di organizzazioni complesse può generare una produzione normativa con molteplici interazioni a più livelli. È possibile immaginare un sistema composto da Procedure di livello di vertice emesse dal management dell'organizzazione che avranno un valore prescrittivo e conformativo rispetto a quelle di rango inferiore emesse dalle varie parti che compongono l'organizzazione stessa. L'analisi di questa complessità deve portare a soluzioni che possono rendere più veloce l'aggiornamento normativo, flessibile e permeabile verso i cambiamenti imposti e infine crescere e modificarsi costantemente adeguandosi alla struttura organizzativa impostata dalla Direzione. A..Olsson, G.P.Tartaglia, M.Nassi Page 7
10 02. APPLICABILITA' La struttura proposta può essere applicata a piccole e medie organizzazioni con il risultato di avere il sistema Normativo ISO 9001 sotto controllo e costantemente aggiornato da parte della Direzione o dei suoi delegati. A..Olsson, G.P.Tartaglia, M.Nassi Page 8
11 03. IL SISTEMA Un sistema dovrebbe essere organizzato in maniera tale da permettere alla Direzione un controllo immediato e costante per un miglioramento continuo, con abbattimento dei costi di produzione del servizio e miglioramento dell'efficienza generale della struttura. La norma ISO9001 lascia ampia libertà all'organizzazione di stabilire come costruire un sistema di verifica, controllo attivo, di registrazione documentale ed organizzazione delle archiviazioni degli atti. Tutti i documenti prodotti al fine di una lavorazione, dovrebbero avere una rintracciabilità in qualsiasi momento e/o fase della lavorazione stessa e una certificazione che una determinata fase sia registrata in modo adeguato. Non solo, ma i sistemi standard internazionali ISO 9001, ISO e OHSAS 18001, dovrebbero integrarsi tra loro per arrivare ad avere un sistema unico di certificazione, così come le norme di standardizzazione agevolano e suggeriscono alle organizzazioni stesse Requisiti generali del sistema Per quanto detto, si ritiene che, un sistema integrato di produzione normativa debba soddisfare i seguenti requisiti principali: 1. Essere condiviso e di libero accesso; 2. Consentire la produzione normativa in vari formati; 3. Consentire la visualizzazione delle interconnessioni normative; 4. Essere modificabile e incrementabile; 5. Consentire un'integrazione dei diversi standard internazionali; 6. Avere costi contenuti per l'organizzazione Scelta del Software del sistema Il software scelto per aderire ai requisiti generali del sistema, è il seguente: 1. Sistema Operativo: Ubuntu LTS 3 ; 2. Web server: Apache ; 3. Database: MySQL ; 4. Hypertext Preprocessor: PHP ; A..Olsson, G.P.Tartaglia, M.Nassi Page 9
12 5. Front end: VFront-0.96c 7 ; 6. Report Tool: ireport Designer ; 7. Network visualisation library: Cytoscape Web ; 8. Database Management: PhpMyAdmin Installazione del Software del sistema Per l'installazione del software necessario al funzionamento del sistema, devono essere seguite le guide ufficiali di riferimento, ricavabili agli indirizzi internet riguardanti il software stesso, dove sono riportate anche le problematiche e le particolarità dei software stessi. Nella Table 1 "Software download and installation", si riportano gli indirizzi internet da dove è possibile scaricare il software, trovare le note d'installazione e le licenze d'uso. Software Download Note di installazione Licenza-Crediti Sistema Operativo: Ubuntu LTS download/desktop /desktop/install-desktop-longterm-support ut-ubuntu/licensing Web server: Apache ownload.cgi nstall.html ense.html Database: MySQL wnloads/mysql/ 5.6/en/installing.html mysql/ Hypertext PHP Preprocessor: loads.php Front end: VFront-0.96c ojects/vfront/ _installation_guide _di_riferimento#licenza_del_soft ware_vfront Report Tool: ireport Designer ojects/ireport/files/irepo rt/ireport-5.1.0/ wiki/installation-steps-installerdistribution os/ireportfornetbeans/tags/5.1.0/i Report/LICENSE_ireport.txt Network visualisation library: Cytoscape Web scape.org/download g/tutorial /about/license Database PhpMyAdmin Management: net/home_page/downloa ds.php test/ _page/license.php Table 1 "Software download and installation" A..Olsson, G.P.Tartaglia, M.Nassi Page 10
13 04. SOFTWARE Descriviamo in breve i vari software che compongono il sistema Sistema Operativo Il Sistema Operativo Open Source del Personal Computer su cui è stato eseguito il test dei software è Ubuntu LTS (esiste anche una versione specifica per server). La scelta è stata fatta perché il Sistema Operativo è veloce, sicuro, facile da usare, con migliaia di software applicativi da cui scegliere, diffuso a livello mondiale e comparato con Sistemi Operativi commerciali, è del tutto gratuito Web server Quale server web è stato scelto Apache, per semplicità d'uso, diffusione mondiale, affidabilità e supporto di installazione disponibile. Il software, installato in locale, crea una cartella di lavoro sul proprio Personal Computer (WWW) che rende accessibili i siti e/o le risorse in essa contenuti. Con un browser qualsiasi, nella barra dell'indirizzo è necessario digitare o seguito dal nome della cartella posta nel server e dal nome del file che dobbiamo aprire per lanciare l'applicazione. Se il Personal Computer appartiene ad una rete Intranet, la cartella WWW sarà raggiungibile da qualsiasi altra postazione di lavoro, semplicemente digitando il Numero di Identificazione del Personal Computer (IP) al posto di localhost o Database Oracle MySql è un Relational Database Management System (RDBMS), tra i più diffusi ed affidabili Open Source. Il progetto è adesso sotto lo sviluppo di Oracle Corporation. Con questo software sarà possibile creare una base di dati condivisa composta da molte tabelle, a cui potranno accedere i membri dell'organizzazione. Per semplicità, le tabelle che compongono la base di dati corrisponderanno ai titoli dei capitoli che formeranno le normative vere e proprie Hypertext Preprocessor "PHP, che significa "PHP: Hypertext Preprocessor", è un linguaggio di scripting general-purpose Open Source molto utilizzato, è specialmente indicato per lo sviluppo Web e può essere integrato nell'html. La sua sintassi è basata su quella di C, Java e Perl, ed è molto semplice da usare. L'obiettivo principale del A..Olsson, G.P.Tartaglia, M.Nassi Page 11
14 linguaggio è quello di permettere agli sviluppatori web di scrivere velocemente pagine web dinamiche, ma con PHP si possono fare molte altre cose." Front end "VFront è un front-end gratuito ed open source per database MySQL o PostgreSQL, sviluppato in PHP e Javascript. Con VFront è possibile creare maschere per gestire dati in stile AJAX, gestire differenti ruoli e privilegi per gruppi di utenti, generare report dinamici in XML, HTML, PDF, statistiche e molto altro." 12 Questo software residente sul server, sarà l'interfaccia di dialogo user friendly con la base di dati MySQL Report Tool "ireport is the free, open source report designer for JasperReports and JasperReports Server. Create very sophisticated layouts containing charts, images, subreports, crosstabs and much more. Access your data through JDBC, TableModels, JavaBeans, XML, Hibernate, CSV, and custom sources. Then publish your reports as PDF, RTF, XML, XLS, CSV, HTML, XHTML, text, DOCX, or OpenOffice." 13 Questo software installato sul Personal Computer, potrà connettersi con la base di dati MySQL residente sul server, riuscendo a comporre la reportistica che costituisce il testo normativo del sistema stesso (Procedure ed Istruzioni Operative). Per il suo funzionamento è richiesta l'installazione di openjdk-7 14 ("FAQ. What is JDK 7? -JDK 7 is the name of Oracle's implementation of the next version of the Java SE platform. The JDK 7 Project in the OpenJDK open-source Community is the where Oracle, in concert with the broader Java and open-source community is working on implementing the features to be specified in the recently-approved Java SE 7 JSR") Network visualisation library " Cytoscape Web is a network visualisation library that you can use to embed networks onto a webpage. It is not a stand-alone application for users; it is a tool for developers to display networks on the web." 15 Il software residente sul server, sarà connesso alla base di dati MySQL, produrrà una visualizzazione grafica completa e sempre aggiornata delle varie normative che compongono il sistema e tutte le interconnessioni relative, e sarà raggiungibile da qualsiasi postazione di lavoro remota A..Olsson, G.P.Tartaglia, M.Nassi Page 12
15 04.8. Database Management "PhpMyAdmin is a free software tool written in PHP, intended to handle the administration of MySQL over the Web. phpmyadmin supports a wide range of operations on MySQL, MariaDB and Drizzle. Frequently used operations (managing databases, tables, columns, relations, indexes, users, permissions, etc) can be performed via the user interface, while you still have the ability to directly execute any SQL statement." 16 Questo software è una interfaccia grafica che consente di amministrare completamente una base di dati MySQL. Permette di creare un nuovo data base, aggiungere e modificare tabelle, campi e contenuti, di definire le caratteristiche generali di funzionamento A..Olsson, G.P.Tartaglia, M.Nassi Page 13
16 05. STRUTTURA La forma delle Procedure e Istruzioni Operative è normalmente strutturata per capitoli e paragrafi Procedure e Istruzioni Operative La struttura finale delle Procedure e Istruzioni Operative è molto simile tra loro; la stessa è composta da un identificativo unico e vari capitoli. Nel dettaglio si possono avere i seguenti capitoli: 1) 00. Procedure or Working Istruction 2) 01. Acronyms 3) 02. References 4) 03. Definitions 5) Index 6) 04. Purpose 7) 05. Roles and responsibilities 8) 06. Human resources 9) 07. Activities description 10) 08. Applicable forms and records control 11) 09. Archiving 12) 10. Attachments Ciò detto, il database MySQL dovrà contenere tante tabelle quanti Capitoli comporranno le normative stesse, ogni tabella potrà avere tutti i campi necessari. Questa parte è liberamente incrementabile dall'utente secondo le proprie esigenze. Per comodità abbiamo chiamato il Database MySQL nel modo seguente: "ISO9001". In esso sono contenute tutte le Tabelle corrispondenti ai Capitoli così come indicati nell'elenco di cui sopra dai punti 1 a 12 (si veda Figura 1 "Struttura Base di dati ISO9001). A..Olsson, G.P.Tartaglia, M.Nassi Page 14
17 Figura 1 "Struttura Base di dati ISO9001" Record e Paragrafi rilevanti È importante definire un identificativo numerico unico progressivo per ogni record che compone la tabella, ed ogni record conterrà i Paragrafi delle norme. Ogni capitolo di una Procedura o Istruzione Operativa, quindi, conterrà tanti Paragrafi che saranno identificati attraverso una numerazione unica. Si potranno avere le tre possibilità Indicate nella Table 2 "Tipologie di Paragrafi nei Capitoli". Tipologia Paragrafi 1- Non condiviso Univoci (I Paragrafi appartengono a quella sola norma) Es.: La Norma 1 avrà il Capitolo 2 con tanti Paragrafi unici. 2 - Condiviso Non Univoci (I Paragrafi sono condivisi con altre norme) Es.: Le Norme 1 e 12 avranno il Capitolo 2 con tanti Paragrafi condivisi. 3 - Misto Misti (I Paragrafi possono essere Univoci e Non Univoci) Es.: La Norma 1 avrà il Capitolo 2 con alcuni Paragrafi Univoci ed altri condivisi con altre Norme. Table 2 "Tipologie di Paragrafi nei Capitoli" La costruzione della base di dati come sopra riportata permetterà di modificare o aggiungere velocemente solo i Paragrafi necessari al sistema stesso. Le modifiche al singolo Paragrafo avranno riflesso su tutte le norme che utilizzano tali condivisioni. Ad esempio, in caso di una nuova Legislazione di riferimento contenuta in un Paragrafo, sarà sufficiente modificare solo quel Paragrafo nella base di dati per aggiornare tutte le norme che si riferiscono a quella specifica Legislazione. Si veda ad esempio la Table 3 "Modifica dei Paragrafi". A..Olsson, G.P.Tartaglia, M.Nassi Page 15
18 Paragrafo Originale La presente Istruzione operativa si riferisce alla Legge n. 1 del 1990, relativa a Paragrafo Modificato La presente Istruzione operativa si riferisce alla Legge n. 144 del 2013, relativa a Table 3 "Modifica dei Paragrafi" L'effetto della modifica sarà istantaneo per quante norme usano quella specifica frase. L'aggiornamento dell'intero sistema diventerà immediato e collaborativo. Potrebbe capitare che nel testo siano presenti alcuni errori di battitura, sarà dunque sufficiente una segnalazione da parte degli utenti per aggiornare e migliorare il sistema stesso Identificativo alfanumerico e nome del documento Particolare attenzione dovrà essere prestata all'identificativo della Norma. La tabella creata nella base di dati MySQL rappresenta la testata univoca del documento sotto la quale si troveranno gli altri Capitoli e Paragrafi. In altre parole, rappresenta l'elenco completo di tutte le Norme appartenenti al sistema ISO9001 dell'organizzazione. Tale tabella farà riferimento a se stessa in maniera tale da ottenere che una Norma possa essere direttamente legata ad altre Norme utilizzando un unico elenco. La modifica della struttura dell'organizzazione, ad esempio l'esternalizzazione o il transito di un servizio tra un settore e un altro, renderà veloce l'espulsione della Norma stessa dal Sistema oppure il cambio del titolo di riferimento con la conseguenza che il sistema riconoscerà la nuova Norma immediatamente. Identificativo Originale ISTR "Esecuzione delle lavorazioni preliminari in magazzino" Identificativo Modificato PROC "Esecuzione delle lavorazioni preliminari in magazzino" Table 4 "Modifica dell'identificativo" Nell'esempio riportato nella Table 4 "Modifica dell'identificativo" si capisce che l'oggetto "Esecuzione delle lavorazioni preliminari in magazzino" resta invariato. Viene modificato solo l'identificativo alfanumerico della stessa Norma, magari perché la Norma sale di livello (da Istruzione diventa Procedura), oppure perché la Norma di questo servizio si traferisce da un settore ad un altro con propria nuova identificazione alfanumerica; ad ogni modo, tutte le Norme che facevano riferimento a quella Originale, faranno immediatamente riferimento alla nuova Norma, con il risultato che il sistema resterà sempre aggiornato Integrazione di altri sistemi Il sistema organizzato come spiegato sopra, permette, inoltre, in maniera agevole l'inclusione di altri sistemi come ad esempio ISO relativo alla Gestione Ambientale, perché anche quel sistema si basa su Procedure e Istruzioni Operative. Sarà quindi sufficiente indicare nelle Norme di un sistema quali sono i riferimenti alle Norme dell'altro sistema ottenendo, di fatto, A..Olsson, G.P.Tartaglia, M.Nassi Page 16
19 l'integrazione tra loro. Non solo: se si desidera, è possibile avere un'unica base di dati condivisa per tutti i sistemi. Ciò detto, dobbiamo far dialogare i vari software tra loro, in maniera tale da riuscire ad ottenere un risparmio di tempo e di denaro, rendendo veloce la costruzione e la modifica del sistema stesso. A..Olsson, G.P.Tartaglia, M.Nassi Page 17
20 06. DATA BASE Dopo aver installato tutti i software seguendo le istruzioni relative e verificato che tutte le installazioni siano andate a buon fine, è necessario cominciare a costruire la base di dati e tutte le connessioni necessarie, al fine di ottenere un sistema funzionante che, schematicamente, si riporta in Figura 2 "Struttura del sistema ISO9001". Si può notare che il cuore del sistema è la base di dati MySQL "ISO9001" composta da tutte le varie tabelle e residente sul server. Il cuore del sistema produrrà due tipi di output: uno grafico su intranet e/o internet (CytoscapeWeb) e l'altro solamente testuale in intranet attraverso il reporting tool (ireport) che deve risiedere sul Personal Computer dell'utente. Il dialogo con la base di dati MySQL si avrà con un front-end residente sul server e raggiungibile da qualsiasi postazione di lavoro (VFront). Figura 2 "Struttura del sistema ISO9001" Si organizza quindi il sistema per farlo dialogare e funzionare La base di dati ISO9001 La base di dati ISO9001 residente sul server di appoggio, dovrà essere formata da tante tabelle quante sono necessarie alla successiva generazione dei Capitoli e Paragrafi relativi. A..Olsson, G.P.Tartaglia, M.Nassi Page 18
21 In generale queste tabelle dovrebbero avere come motore di archiviazione "InnoDB" 17, in quanto consente migliori performance del sistema. Il manuale di riferimento MySQL descrive nel dettaglio le caratteristiche del motore. Per la creazione della base di dati, è utile l'utilizzo del software PhpMyAdmin, che ne consente la creazione in maniera piuttosto rapida e sicura, ma è possibile utilizzare altri metodi a scelta dell'utente Tabelle Principali Le Tabelle Principali corrispondono alle Norme e ai Capitoli. Queste sono strutturate con un indice numerico univoco (Chiave Primaria) e tanti altri Campi che definiscono il contenuto del Capitolo (normalmente alfanumerici), tulle le righe corrispondono ai Paragrafi del Capitolo. Nel caso sviluppato, la Tabella principale "0_ISTRUZIONE" contiene il campo ID_ISTRU come Chiave Primaria numerica univoca. Si veda la Figura 3 "Struttura della Tabella Principale 0_ISTRUZIONE". Figura 3 "Struttura della Tabella Principale 0_ISTRUZIONE" Tabelle Secondarie Abbiamo visto che ogni tabella della base di dati ISO9001 ha un proprio indice numerico unico che identifica ogni record presente nella tabella stessa. A ogni Procedura e/o Istruzione sono legate le tabelle che corrispondono ai Capitoli e ogni Capitolo è composto da uno o più Paragrafi numerati. Per esempio, la Tabella Principale contenente l'elenco degli Acronimi presenti nel testo avrà anche questa una Chiave Primaria, cioè ogni Acronimo è unico ed è legato al Campo ID_ACR ( Vedi Figura 4 "Struttura della Tabella Principale 1_ACRONIMI") 17 A..Olsson, G.P.Tartaglia, M.Nassi Page 19
22 Figura 4 "Struttura della Tabella Principale 1_ACRONIMI" La relazione che si ha tra le Procedure/Istruzioni e le tabelle è del tipo Uno a molti, significando che per ogni norma possono esserci molte tabelle con uno o più paragrafi. Per realizzare questo tipo di relazione, sono state utilizzate Tabelle di Passaggio, identificate per nostra convenzione con la lettera U (Unione), composte da un indice numerico unico, e due colonne numeriche che puntano agli indici della Tabella Principale (Procedure/Istruzioni) e agli indici delle Tabelle Secondarie (Capitoli), cosicché le Tabelle di Passaggio riescono a "legare" la tabella Principale a quelle Secondarie (Capitoli). A questo proposito si veda la Figura 5 "Struttura della Tabella Secondaria U_1 ACRONIMI". Figura 5 "Struttura della Tabella Secondaria U_1 ACRONIMI" In particolare si nota che la Chiave Primaria è unica ID_UACR, e la Tabella contiene solamente altri due campi con valore numerico (ID_ISTRU e ID_ACR) che legano le Relazioni tra le due tabelle Principali (Chiavi Esterne) A..Olsson, G.P.Tartaglia, M.Nassi Page 20
23 06.4. Relazioni tra le Tabelle Come abbiamo visto, la base di dati ISO9001 contiene una tabella principale a valenza generale che definisce in maniera unica il titolo della Procedura/Istruzione (Figura 3 "Struttura della Tabella Principale 0_ISTRUZIONE"), molte altre tabelle principali (Capitoli) con contenuti univoci dei paragrafi (ad es: Figura 4 "Struttura della Tabella Principale 1_ACRONIMI") e tante Tabelle di Passaggio quante sono necessarie per mettere in relazione la Tabella Principale Generale 0_ISTRUZIONE con le altre (ad es: Figura 5 "Struttura della Tabella Secondaria U_1 ACRONIMI") Schema grafico del database Possiamo vedere più nel dettaglio la base di dati ISO9001 e tutte le connessioni tra le tabelle che vi appartengono, si noterà che, come dalla Figura 6 "Schema grafico della Base di dati ISO9001", il "cuore" del sistema è la Tabella "0_ISTRUZIONE" (al centro), alla quale sono legate tutte le altre in relazione "uno a molti" tramite le Tabelle secondarie del tipo "U_" (al lato). Figura 6 "Schema grafico della Base di dati ISO9001" Da quanto detto sopra possiamo notare alcune cose: 1. La Tabella Secondaria "U10_RIFERIMENTI" è particolare in quanto permette di creare una relazione del tipo "molti a molti" con la Tabella "0_ISTRUZIONE". Ciò è molto importante perché consente ad una norma di riferirsi ad un'altra senza duplicazione della tabella stessa. Inoltre, la modifica del nome della norma avrà effetto immediato nell'intero sistema (si veda ad es. Table 4 "Modifica dell'identificativo"); 2. La Tabella "VARIABILE" è una tabella di appoggio che in seguito ci permetterà l'estrazione dei dati secondo il valore numerico unico che identifica la norma; 3. Nella Tabella "GRAPH" sono contenute tutte le variabili che permetteranno di generare un grafico di visualizzazione generale delle norme e di tutte le connessioni tra di esse; 4. Infine sono evidenti i valori testo o numerico che devono assumere i campi contenuti in tutte le tabelle. A..Olsson, G.P.Tartaglia, M.Nassi Page 21
24 06.6. Corrispondenza dei Capitoli con le Tabelle Per una visione più chiara è importante mostrare la corrispondenza tra i Capitoli che compongono le norme (Capitolo 05, paragrafo 05.1 Procedure e Istruzioni Operative) e le tabelle della base di dati MySQL. Nome Capitoli Nome Tabelle MySQL ISO9001 1) 00.Procedure or Working Istruction 0_ISTRUZIONE 2) 01.Acronyms 1_ACRONIMI 3) 02.References U10_RIFERIMENTI / 0_ISTRUZIONE 4) 03.Definitions 6_DEFINIZIONI 5) Indice ===== 6) 04.Purpose 2_SCOPO 7) 05.Roles and responsibilities 3_RESPONSABILITA 8) 06.Human resources 8_RISORSE 9) 07.Activities description 7_TESTI 10) 08.Applicable forms and records control 9_MODULISTICA 11) 09.Archiving 4_ARCHIVIAZIONE 12) 10.Attachments 5_ALLEGATI ===== VARIABILE ===== GRAPH ===== Le tabelle secondarie: U_1ACRONIMI U_2SCOPO U_3RESPONSABILITA U_4ARCHIVIAZIONE U_5ALLEGATI U_6DEFINIZIONI U_7TESTI U_8RISORSE U_9MODULISTICA U_10RIFERIMENTI Table 5 "Corrispondenza Capitoli/Tabelle MySQL" A..Olsson, G.P.Tartaglia, M.Nassi Page 22
25 07. FRONT END Avendo costruito il data base ISO9001 con tutte le Tabelle annesse e avendo installato il Software VFront, sarà possibile adesso far dialogare l'interfaccia grafica con la base di dati MySQL organizzare le tabelle e le viste secondo le esigenze di un utente che desidera avere un'interfaccia user-friendly. "Le tre leggi di VFront Rubando la forma del titolo di questo paragrafo da Asimov, sono qui enunciati i principi generali secondo i quali si è cercato di sviluppare VFront: 1. VFront non sporcherà il vostro database, non creerà tabelle o viste aggiuntive sul vostro DB e non modificherà i dati delle tabelle, a meno che non lo si voglia esplicitamente fare attraverso maschere. Creerà invece un suo discreto database di regole (o un suo schema su PostgreSQL). Non prende possesso del vostro database, ma permette di usarlo. 2. VFront non bypasserà le regole che sono state impostate nel vostro database. Con VFront è possibile creare nuovi vincoli più restrittivi di quelli che avete creato sul database (in termini di chiavi esterne, input accettabili sui tipi di campi, etc.), ma mai il contrario. 3. VFront funzionerà tanto meglio quanto è stata più rigorosa la definizione del vostro database. A VFront piacciono la normalizzazione, le chiavi esterne, le chiavi primarie possibilmente numeriche, i commenti sulle tabelle e sui campi, etc... Garbage in, garbage out: non si scappa." Accesso VFront A questo punto, il Front-end VFront ha preso il controllo della base di dati MySQL ISO9001, pertanto è possibile vederne il contenuto organizzato in maniera semplice. Si ricorderà che l'installazione di prova è avvenuta in locale, quindi sarà sufficiente aprire un browser web qualsiasi e digitare nella barra degli indirizzi il seguente: c/index.php per avere la schermata di accesso dove dovranno essere digitati i dati quali E- mail e Password (vedi Figura 7 "Pagina di accesso VFront") A..Olsson, G.P.Tartaglia, M.Nassi Page 23
26 Figura 7 "Pagina di accesso VFront" Main Menu VFront Una volta inserite le credenziali di accesso, si aprirà la seguente schermata con l'elenco di tutte le tabelle disponibili in aggiornamento e modifica dal lato Utente (vedi Figura 8 "Pagina Principale di VFront") Figura 8 "Pagina Principale di VFront" La tabella principale alla quale tutte le altre sono collegate è "0 ISTRUZIONE OPERATIVA", basterà cliccare due volte con il tasto sinistro del mouse per vederne il contenuto Table 0 ISTRUZIONE OPERATIVA La maschera relativa alla Tabella "0 ISTRUZIONE OPERATIVA" è composta da alcune parti principali (si veda Figura 9 "Pagina Generale della Procedura o Istruzione Operativa- VFront"): 1 la navigazione tra i Record; 2 Subform presenti nei vari Capitoli; 3 Dati Identificativi della Procedura/Istruzione; 4 Accessori. A..Olsson, G.P.Tartaglia, M.Nassi Page 24
27 4 Accessori 1 Navigazione tra i Record 2 Numero Subform presenti nei Capitoli 3 Identificativi della Procedura/Istruzione Figura 9 "Pagina Generale della Procedura o Istruzione Operativa- VFront" La prima parte serve per la navigazione tra i Record che avviene tramite i pulsanti. Tali pulsanti permettono anche il Nuovo inserimento, la modifica dell'esistente, la cancellazione, il salvataggio dei dati e infine la ricerca tra i Record. Nella seconda parte sono indicati tutti i Capitoli che faranno parte della Procedura/Istruzione, con un numero tra parentesi che evidenzia quanti Paragrafi appartengono a quella stessa Procedura/Istruzione. Oltre a tutto sono presenti altri due pulsanti evidenziati in Celeste "1 Genera Grafico" e 2 "Crea Grafico", se cliccati, il primo aggiorna un file grafico tipo testuale xgmml, il secondo visualizza il Grafico vero e proprio. La terza parte fornisce l'identificativo numerico unico della Procedura/Istruzione rappresentato dal Campo ID_ISTRU e altri dati che la caratterizzeranno in maniera univoca. La quarta parte è utile per l'amministrazione, l'inserimento di alcuni link ad altri documenti, per tornare alla pagina principale e per uscire dal sistema Subform of 0 ISTRUZIONE OPERATIVA Se a questo punto si clicca nella Table 0 ISTRUZIONE OPERATIVA un qualsiasi tasto presente nella parte 2 relativa ai subform si aprirà una maschera del tipo Figura 10 "Subform ACRONIMI - VFront", dove è presente l'elenco di tutti gli acronimi usati nella Procedura/Istruzione. È possibile aggiungere alla Procedura/Istruzione di riferimento tutti gli acronimi che vogliamo elencare e già presenti nella Tabella "1 ACRONIMI". Per di più è possibile modificare un acronimo con un altro o cancellarlo completamente dall'elenco. A..Olsson, G.P.Tartaglia, M.Nassi Page 25
28 Figura 10 "Subform ACRONIMI - VFront" Modifica o inserimento di un dato esistente Se dobbiamo modificare un acronimo sarà sufficiente cliccare sul tasto di modifica e un menu a tendina ci fornirà l'elenco completo di tutti gli acronimi presenti nel sistema. Scelto l'acronimo dobbiamo solamente salvare la modifica affinché questa abbia effetto. Con il tasto "New record", analogamente, possiamo inserire un nuovo record presente nella tabella "1 ACRONIMI". Figura 11 "Subform ACRONIMI Vfront modifica, Inserimento e scelta del Record" Se l'acronimo non è presente nel sistema, dobbiamo tornare alla pagina principale, aprire la tabella "1 ACRONIMI" inserire un nuovo record e salvare. I passi successivi saranno uguali a quelli indicati poco sopra Uso dell'editor di testo Per agevolare la modifica e l'inserimento di dati in Tabelle con Campi di testo molto lunghi, si è data la possibilità di usare un piccolo e veloce editor di testo che permette, ad esempio, di sottolineare un testo, metterlo in grassetto e altre utilità di scrittura (si veda la Figura 12 "Table 7_TESTI Editor di Testi interno al sistema"). A..Olsson, G.P.Tartaglia, M.Nassi Page 26
29 Figura 12 "Table 7_TESTI Editor di Testi interno al sistema" Dettaglio VFront - MySQL Le conoscenze di base del linguaggio SQL permettono di collegare materialmente le tabelle tra loro. Per fare questo bisogna entrare nel sistema come Amministratori (si veda la Figura 9 "Pagina Generale della Procedura o Istruzione Operativa- VFront" in alto a destra "administration"), si aprirà la schermata Figura 13 "VFront administration" da cui è necessario selezionare il link "Registries menu" in alto a sinistra. Figura 13 "VFront administration" Si aprirà la schermata di Figura 14 "Groups/registries menu", nella quale occorrerà selezionare il link "administer". A..Olsson, G.P.Tartaglia, M.Nassi Page 27
30 Figura 14 "Groups/registries menu" A questo punto si può aprire la tabella di amministrazione "Rules table group" dove sono elencate tutte le tabelle presenti nel sistema, sia quelle visibili che invisibili agli utenti ( vedi Figura 15 "Rules table group"). Figura 15 "Rules table group" È necessario selezionare il link "O_ISTRUZIONE" per aprire la tabella come amministratore e vedere tutte le regole applicate alla medesima, nonché vedere le regole applicate a tutti i subform che vi appartengono. Si aprirà la finestra di cui alla Figura 16 "Table settings 0_ISTRUZIONE". Selezionando la linguetta "Subforms settings" in alto, si otterrà l'elenco delle tabelle secondarie necessarie al funzionamento del sistema (vedi Figura 17 "Table subform rules 0_ISTRUZIONE Parte 1") A..Olsson, G.P.Tartaglia, M.Nassi Page 28
31 Figura 16 "Table settings 0_ISTRUZIONE" Selezionando il link "U_1ACRONIMI" si può scorrere tra le impostazioni della tabella ( vedi Figura 19 "Table subform rules 0_ISTRUZIONE Parte 3" constatando che la tabella secondaria andrà a prendere i dati attraverso una piccola istruzione SQL: [1] SELECT ID_ACR, ACRONIMO FROM 1_ACRONIMI La funzione [1] estrae tutti i campi ID_ACR e ACRONIMO dalla Tabella "1_ACRONIMI" e restituirà tutti i valori dei campi. Figura 17 "Table subform rules 0_ISTRUZIONE Parte 1" A..Olsson, G.P.Tartaglia, M.Nassi Page 29
32 Figura 18 "Table subform rules 0_ISTRUZIONE Parte 2" Figura 19 "Table subform rules 0_ISTRUZIONE Parte 3" Per ogni subform andrà scritta un'analoga istruzione cambiando di volta in volta i riferimenti in modo tale da legare tutte le Tabelle secondarie a quella Principale Parametri grafici Al fine di generare un grafico contenente tutte le norme e le loro interconnessioni, è stato necessario creare un'altra tabella contenente i parametri grafici che definiranno le norme. Il campo ID_GRAPH rappresenta il numero univoco di identificazione, nel campo COMMENTO è stata inserita la gerarchia delle norme, il tipo di forma che rappresenterà la norma è scritto nel campo TYPE, i campi H e W sono le dimensioni dell'oggetto grafico, i campi FILL e OUTLINE rappresentano rispettivamente i colori interni e della linea esterna della figura, mentre WIDTH rappresenta lo spessore della linea esterna (vedi Figura 20 "Table Parametri Grafici"). A..Olsson, G.P.Tartaglia, M.Nassi Page 30
33 Figura 20 "Table Parametri Grafici" Per convenzione, il "TYPE" di oggetto sarà sempre "Circle", le dimensioni dell'oggetto (H e W) sono ordinate secondo l'importanza nel sistema, mentre per i colori, si rimanda ad una qualsiasi tabella dei colori con indicati i codici esadecimali (noi ci siamo riferiti a Dunque, a seconda della posizione che la norma occupa nella scala gerarchica del sistema, si possono assegnare un indice corrispondente al Parametro Grafico scelto Parametro di stampa Con lo scopo di estrarre solamente la documentazione legata ad una determinata norma ed al fine ultimo della sua stampa, abbiamo creato un'altra tabella contenente un solo campo modificabile "N", cosicché una volta modificato e salvato il numero corrispondente alla norma, sarà possibile estrarre solamente i dati relativi alla norma stessa ( vedi Figura 21 "Table Parametro di stampa"). Figura 21 "Table Parametro di stampa" Considerazioni sul sistema È chiaro che questo tipo di impostazione creerà dei contenitori che, man mano che vengono popolati, avranno contenuti sempre migliori essendo stati generati con il contributo di tutti gli attori delle produzioni normative e ottenendo di fatto il miglioramento continuo del sistema. Le informazioni tenderanno a non essere più duplicate e ridondanti. Sarà, infatti, preferibile usare le parti già esistenti e collaudate per l'organizzazione rispetto all'introduzione di parti nuove. A..Olsson, G.P.Tartaglia, M.Nassi Page 31
34 La modifica di un dato o di un Paragrafo, comunque, avrà effetto immediato su tutto il sistema che usa quel determinato dato o Paragrafo, ottenendo quanto indicato nella Table 3 "Modifica dei Paragrafi" e nella Table 4 "Modifica dell'identificativo". Il risultato sarà un sistema sempre aggiornato, collaborativo e funzionante per l'intera organizzazione. A..Olsson, G.P.Tartaglia, M.Nassi Page 32
35 08. REPORT TOOL Il software di reportistica dovrebbe garantire il dialogo con la base di dati MySQL e permettere: l'estrazione dei dati in Report principale e sub Report direttamente connessi al principale, la composizione della pagina di stampa ed infine il salvataggio nei formati testuali più diffusi. Si ricorderà che ogni norma (Procedure o Istruzioni operative) è composta di più Capitoli (Tabelle) che possono includere uno o più paragrafi (record) Per ogni Paragrafo, appartenendo ad un contenitore unico, è necessario identificarlo con il suo indice numerico unico (ID). La costruzione delle norme effettuata in questo modo permetterà la veloce consultazione delle parti simili tra loro, la modifica e l'aggiunta di nuove parti. È stato scelto il software ireport perché consente: il collegamento alla base di dati MySQL, la creazione e l'impostazione di sub report che appartengono ad un report principale e la stampa nei formati più diffusi. L'installazione di questo software deve essere fatta sul proprio Personal Computer in locale e funziona se è presente un ambiente tipo openjdk. Sono presenti in internet alcuni tutorial che spiegano il funzionamento di base del software 19 e che spiegano meglio come comporre Report e sub report Collegamento alla base di dati MySQL Una volta installato e lanciato ireport, si aprirà con una schermata generale di controllo. A questo punto dobbiamo fornire i parametri di connessione alla base di dati che abbiamo precedentemente creato con MySQL. Il tasto "Report Datasources" aprirà delle finestre di dialogo in cui impostare i parametri (vedi la Figura 22 "Schermata iniziale ireport e Report Datasources") A..Olsson, G.P.Tartaglia, M.Nassi Page 33
36 Figura 22 "Schermata iniziale ireport e Report Datasources" Nella prima finestra di dialogo è necessario selezionare "New" per poter accedere ai parametri di connessione (Vedi Figura 23 "Schermata Connections / Datasources"). Figura 23 "Schermata Connections / Datasources" Nella finestra di dialogo che si riferisce alla "Sorgente dati" dobbiamo selezionare "Database JDBC connection" per la scelta del tipo di base di dati a cui il software si collegherà (vedi Figura 24 "Schermata sorgente dati"). A questo punto bisogna selezionare il tasto "Avanti". Figura 24 "Schermata sorgente dati" A..Olsson, G.P.Tartaglia, M.Nassi Page 34
37 Nell'ultima finestra di dialogo bisogna inserire manualmente i dati veri e propri della connessione e del data base al quale ci si vuole connettere, con tanto di nome Utente e Password (vedi Figura 25 "Schermata Database JDBC connection"), ed infine salvare il tutto. Figura 25 "Schermata Database JDBC connection" Da notare che, per prova, tutto il sistema è residente su un Personal Computer in locale. Pertanto, se si è installato il database MySQL su un server: 1. il nome della connessione può essere un nome qualsiasi; per comodità si chiamerà "ISO9001"; 2. il JDBC Driver dovrà essere scelto tra quelli presenti nel menu a tendina "MySQL (comm.mysql.jdbc.driver)", 3. l'indirizzo del database MySQL sarà quello reale; in altre parole bisogna sostituire a "localhost" l'indirizzo del server dove si trova il database MySQL; 4. il nome Utente e la password saranno quelle di accesso alla base di dati MySQL. A questo punto si avrà la connessione diretta al nostro database MySQL con tutti i parametri configurati correttamente e si è pronti per dialogare con il sistema per produrre ed estrarre i Report che sono necessari Report e sub report Il tutorial presente al seguente indirizzo spiega bene come costruire un report ed un sub report seguendo alcuni semplici passi. Pertanto si rimanda al tutorial per comprendere come fare. È importante creare e comporre un Report Principale in cui sono contenuti tutti i sub report (Capitoli) di cui si ha bisogno. Infatti, una volta salvata la composizione, questa costituirà il template di stampa utilizzabile per tutte le Procedure e/o Istruzioni operative presenti nel sistema. A..Olsson, G.P.Tartaglia, M.Nassi Page 35
38 08.3. Query di estrazione dei dati Si riportano le query SQL che sono state scritte e che consentono l'estrazione dei dati secondo la necessità dell'amministratore del sistema e secondo un parametro di stampa numerico unico. L'estrazione dei dati avviene in base al parametro selezionato "N" della tabella relativa al "Parametro di Stampa" (vedi la Figura 21 "Table Parametro di stampa"). Le query da utilizzare per ogni singolo report, nel dettaglio sono: # QUERY DI TESTATA O PRINCIPALE SELECT * FROM `ISO9001`.`0_ISTRUZIONE` WHERE `ID_ISTRU` = ( SELECT `N` FROM `ISO9001`.`VARIABILE` ) #QUERY DEGLI ACRONIMI SELECT * FROM `ISO9001`.`U_1ACRONIMI`,`1_ACRONIMI` WHERE `ID_ISTRU` = ( SELECT `N` FROM `ISO9001`.`VARIABILE` ) AND ( `U_1ACRONIMI`.`ID_ACR`=`1_ACRONIMI`.`ID_ACR`) #QUERY DI SCOPO SELECT * FROM `ISO9001`.`U_2SCOPO`,`2_SCOPO` WHERE `ID_ISTRU` = ( SELECT `N` FROM `ISO9001`.`VARIABILE` ) AND ( `U_2SCOPO`.`ID_SCO`=`2_SCOPO`.`ID_SCO`) #QUERY DI RESPONSABILITA' SELECT * FROM `ISO9001`.`U_3RESPONSABILITA`,`3_RESPONSABILITA` WHERE `ID_ISTRU` = ( SELECT `N` FROM `ISO9001`.`VARIABILE` ) AND ( `U_3RESPONSABILITA`.`ID_RES`=`3_RESPONSABILITA`.`ID_RES`) #QUERY DI ARCHIVIAZIONE SELECT * FROM `ISO9001`.`U_4ARCHIVIAZIONE`,`4_ARCHIVIAZIONE` WHERE `ID_ISTRU` = ( SELECT `N` FROM `ISO9001`.`VARIABILE` ) AND ( `U_4ARCHIVIAZIONE`.`ID_ARC`=`4_ARCHIVIAZIONE`.`ID_ARC`) #QUERY DI ALLEGATI SELECT * FROM `ISO9001`.`U_5ALLEGATI`,`5_ALLEGATI` WHERE `ID_ISTRU` = ( SELECT `N` FROM `ISO9001`.`VARIABILE` ) AND ( `U_5ALLEGATI`.`ID_ALL`=`5_ALLEGATI`.`ID_ALL`) #QUERY DI DEFINIZIONI SELECT * FROM `ISO9001`.`U_6DEFINIZIONI`,`6_DEFINIZIONI` WHERE `ID_ISTRU` = ( SELECT `N` FROM `ISO9001`.`VARIABILE` ) AND ( `U_6DEFINIZIONI`.`ID_DEF`=`6_DEFINIZIONI`.`ID_DEF`) #QUERY DI CORPO DEL TESTO SELECT * FROM `ISO9001`.`U_7TESTI`,`7_TESTI` WHERE `ID_ISTRU` = ( SELECT `N` FROM `ISO9001`.`VARIABILE` ) AND ( `U_7TESTI`.`ID_TES`=`7_TESTI`.`ID_TES`) #QUERY DELLE RISORSE UMANE SELECT * FROM `ISO9001`.`U_8RISORSE`,`8_RISORSE` WHERE `ID_ISTRU` = ( SELECT `N` FROM `ISO9001`.`VARIABILE` ) AND ( `U_8RISORSE`.`ID_RIS`=`8_RISORSE`.`ID_RIS`) #QUERY DI MODULISTICA SELECT * FROM `ISO9001`.`U_9MODULISTICA`,`9_MODULISTICA` WHERE `ID_ISTRU` = ( SELECT `N` FROM `ISO9001`.`VARIABILE` ) AND ( `U_9MODULISTICA`.`ID_MOD`=`9_MODULISTICA`.`ID_MOD`) #QUERY DI RIFERIMENTO AD ALTRE ISTRUZIONI*** SELECT `U10_RIFERIMENTI`. `ID_RIF`,`0_ISTRUZIONE`.`ID_ISTRU`, `0_ISTRUZIONE_1`.`ID_ISTRU`, `0_ISTRUZIONE_1`.`GRADO`, `0_ISTRUZIONE_1`.`Riferimento`, `0_ISTRUZIONE_1`.`Titolo`, `0_ISTRUZIONE_1`.`Rev`, `0_ISTRUZIONE_1`.`Emissione` FROM `ISO9001`.`U10_RIFERIMENTI` AS `U10_RIFERIMENTI`, `ISO9001`.`0_ISTRUZIONE` AS `0_ISTRUZIONE`, `ISO9001`.`0_ISTRUZIONE` AS `0_ISTRUZIONE_1` WHERE `U10_RIFERIMENTI`.`ID_ISTRU` = `0_ISTRUZIONE`.`ID_ISTRU` AND `0_ISTRUZIONE_1`.`ID_ISTRU` = `U10_RIFERIMENTI`.`ID_RIF` AND `0_ISTRUZIONE`.`ID_ISTRU` = ( SELECT `N` FROM `ISO9001`.`VARIABILE` ) A..Olsson, G.P.Tartaglia, M.Nassi Page 36
39 È certamente possibile migliorare le query, integrarle ed aggiungere quante parti necessarie per un miglior funzionamento del sistema Risultato finale dei Report Attraverso ireport è possibile modificare, comporre e disegnare secondo le proprie preferenze un Report finale contenente tutte le informazioni di cui si ha bisogno. Nella Figura 26 "Schermata ireport Designer", ad esempio, in modalità "Designer" si vede che è stato composto un Report principale, con alcune immagini grafiche e testi riproducibili costantemente. Si noterà che in basso a sinistra della figura sono presenti delle barre grafiche che rappresentano i sub report (disegnati in precedenza) ed il loro ordine di visualizzazione all'interno del Report principale. Figura 26 "Schermata ireport Designer" Il risultato finale di produzione normativa sarà quello riportato nelle figure seguenti ( Figure n "Aspetto del Report finale"), che rappresentano solamente a titolo di prova e con dati non verificati, l'aspetto grafico di tutta la produzione normativa, creata con VFront su un database MySQL e con dati estratti da ireport in maniera standard ed uguale per tutta l'organizzazione complessa. Ogni Paragrafo ha un proprio indice numerico che lo identifica univocamente scritto a sinistra. A..Olsson, G.P.Tartaglia, M.Nassi Page 37
40 Figura 27 "Aspetto del Report finale 1" Figura 28 "Aspetto del Report finale 2" A..Olsson, G.P.Tartaglia, M.Nassi Page 38