• Non ci sono risultati.

Realizzazione degli oggetti del database

Obiettivo 8: Intensificazione delle attività di monitoraggio e misurazione sistematiche del

5 Relazione per l’applicativo utilizzato in Barsanti Macchine S.p.A per la gestione delle attività d

5.4 Realizzazione degli oggetti del database

Avendo a disposizione il database relazionale si sono dovute realizzare le interrogazioni necessarie per rendere le informazioni sensibili disponibili. Lo scopo dell'applicazione è quello di realizzare un applicazione userfriendly per gestire le attività di “manutenzione” (manutenzione delle macchine e degli strumenti di misura). Il database è abbastanza semplice e la parte più interessante del progetto è costituita dall'utilizzo delle Form – Maschere. Affinché funzionasse come scadenziario è stato necessario creare le query che verranno di seguito descritte ed effettuare alcune operazioni sui dati.

Manutenzioni programmate macchine eseguite max Manut_progr_macc_eseguite_max

In questa query si calcola la data massima dell'intervento di manutenzione programmata avvenuta tramite la funzione max del campo data della tabella Manut_progr_macc_eseguite.

Qry lista manutenzioni programmate macchina Qry_lista_manut_progr_macc

In questa query si utilizza il dato fornito dalla query precedente, data max, per calcolare il prossimo

intervento ovvero prossimo_intervento: IIf(IsNull([datamax]);Date();DateAdd("d";[frequenza];[datamax])) che è, appunto, pari alla data diurna

se non sono mai stati fatti interventi, altrimenti alla somma della data dell'ultimo intervento (appunto datamax) e del valore frequenza (espresso in giorni). Infine, si calcola l'intervallo di tempo al prossimo intervento. Ciò viene fatto con l'utilizzo di “datediff” tra i due termini usati anche nella precedente espressione, ovvero la data attuale e datamax+frequenza se datamax diverso da zero altrimenti la data

attuale: intervallo:

DateDiff("d";Date();IIf(IsNull([datamax]);Date();DateAdd("d";[frequenza];[datamax]))). I dati, oltre che dalla query “Manutenzioni programmate macchine eseguite max”, sono presi dall'anagrafica_macchinari, dall'anagrafica_manutenzioni per quanto riguarda la descrizione delle stesse, e dalla lista_manut_progr_macc. Tale tabella è inserita interamente. I legami (join) tra queste tabelle sono 1->1. Esiste legame 1->molti tra la tabella Lista_manut_progr_macc e la query Manut_progr_macc_eseguite_max. Ciò è necessario affinché l'interrogazione dia tra i risultati non solo le manutenzioni effettuate ma anche quelle che devono essere effettuate

Storico degli eventi manutenzione macchine

Manutenzioni avvenute.

Con questa query si crea una tabella in cui si raccolgono tutti gli interventi effettuati sui macchinari (quindi si registrano i dati provenienti dalle tabelle manutenzioni programmate e manutenzioni straordinarie), creando il campo tipo_manutenzione per distinguerne la tipologia (evidenziare se provenienti da una tabella o dall'altra). È una query di unione.

Scadenziario strumenti di misura

Taratura strumenti di misura datamax

Come sopra, in questa query si calcola la data massima dell'intervento di taratura avvenuta tramite la funzione max del campo data della tabella Manut_progr_macc_eseguite.

Qry Lista taratura strumenti di misura

Come per le manutenzioni, in questa query si utilizza il dato fornito dalla query precedente, data max, per calcolare il prossimo intervento, pari alla data diurna se non sono mai stati fatti interventi, altrimenti alla somma della data dell'ultimo intervento (appunto datamax) e del valore frequenza (espresso in giorni) e l'intervallo di tempo fino al prossimo intervento.

Statistiche

Incidenza delle manutenzioni straordinarie (od ordinarie, il complementare ad esso)

Il risultato si ottiene realizzando alcune query: dalle tabelle di log delle manutenzioni avvenute (straordinarie e ordinarie) si calcolano le due quantità, le si sommano ed infine di fa il rapporto dell’una rispetto al totale o dell’altra, in funzione di cosa si vule ottenere.

Incidenza delle manutenzioni interne (od esterne, il complementare ad esso)

Il risultato si ottiene realizzando alcune query: dalle tabelle di log delle manutenzioni (straordinarie e ordinarie) si calcolano le quantità delle manutenzioni interne, le si sommano ed infine le si rapportano al totale delle manutenzioni effettuate, disponibile dal calcolo precedente.

Form

Lista macchine

È la form in cui sono presenti codice macchinario e descrizione. Oltre ad essere completamente priva di qualsiasi possibilità di editing di dati è anche priva delle opzioni di chiusura e ingrandimento e dunque di editing del formato. La funzione di questa form, infatti, è quella di accedere all'elenco delle macchine disponibili (lista), dal quale poter accedere a quella interessata, ovvero a quella su cui si devono effettuare operazioni. Per far ciò su entrambi i campi della form (codice e descrizione) è stato attivato l'evento “apri form anagrafica macchinario”. La form che deve essere aperta è quella dell'anagrafica del macchinario su cui si vuole lavorare (DoCmd.OpenForm "anagrafica_macchinari", acNormal, , " cod_macchinario= '" & Me.COD_MACCHINARIO.Value & "'")

Anagrafica macchinari

È sicuramente la form più complessa. In questa form sono presenti i dati caratteristici del macchinario (presi dall'anagrafica macchinario). Inoltre, sono presenti tre pulsanti, che consentono di bloccare e sbloccare i dati dell'anagrafica e di chiudere la form (pulsante indietro). Per sbloccare (consentire la modifica dei dati) è necessaria l'introduzione di una password. È stata creata una macro (modulo) per la verifica della password:

Function verifica_password(input_password) If input_password = "ciao1" Then

verifica_password = True Else

verifica_password = False End If

End Function

Private Sub Command18_Click()

VALORE = InputBox("dammi la password") If verifica_password(VALORE) Then Me.DISABILITATO.Locked = False ...

Else

MsgBox ("password errata") End If

End Sub

Inoltre, ho realizzato una procedura anche sull'open della form poiché ho voluto che lo stato di default dei dati fosse protetto da modifiche; quindi, con l'apertura della form, viene chiamata la procedura di blocco.

Ho inserito altri due tasti. Un tasto serve per inserire le manutenzioni straordinarie. Il sistema chiede di inserire i dati relativi all'intervento manutentivo quali note, data ed eseguito_da e poi li inserisce nella tabella manu_straordinarie_macc. L'ultimo tasto descritto è Stampa scheda macchine. Questo tasto apre il report chiamato anagrafica macchinari sfruttando il codice azienda e il codice macchinario dedotti dal percorso seguito. DoCmd.OpenReport "anagrafica_macchinari", acViewPreview, , " cod_azienda='" & cod_azienda & "' and cod_macchinario='" & cod_macchinario & "'"

L'apertura di questa form determina la chiusura della form lista macchinari.

Nella form infine ci sono ancora due importanti elementi. Nella maschera sono state infatti introdotte due sottomaschere:

Sottomaschera manutenzioni straordinarie macchine sottomaschera manu_straordinarie_macc

Altro non è che il log delle manutenzioni straordinarie effettuate. Questa form è stata sostituita (non c'è più) dalla form della query di unione manutenzioni_avvenute. È la form della tabella manutenzioni

Sottomaschera query lista manutenzioni programmate macchine sottomaschera_qry_lista_manut_progr_macc

Rappresenta il log delle manutenzioni programmate sui macchinari (da la lista delle manutenzioni per singola macchina). È la form della query in cui oltre a mettere i campi della manutenzione programmata per macchina ho inserito i parametri di frequenza, data max, prossimo intervento e intervallo. Ognuno dei campi di questo elemento attiva una procedura di inserimento (evasione) manutenzione programmata semplicemente cliccandoci due volte. Una procedura diversa, invece, è stata elaborata al doppio click dell'intera riga: in questo caso il responsabile può stampare il workorder – manutenzione programmata – per l'operatore di manutenzione

Form della query di unione manutenzioni_avvenute

Rappresenta il log degli interventi effettuati sui macchinari sia che essi siano di manutenzione ordinaria sia che essi siano in manutenzione straordinaria. L'unione di queste due tabelle ci consente di conoscere lo stato di vita del macchinario e di tutti gli interventi sapere: data, note, tipo manutenzione ed esecutore

Lista strumenti di misura

È la form in cui sono presenti codice strumento di misura e descrizione. Oltre ad essere completamente priva di qualsiasi possibilità di editing di dati è anche priva delle opzioni di chiusura e ingrandimento e dunque di editing del formato. La funzione di questa form, infatti, è quella di accedere all'elenco degli strumenti di misura disponibili (lista), dal quale poter accedere a quello d'interesse, ovvero a quello su cui si devono effettuare operazioni. Per far ciò su entrambi i campi della form (codice e descrizione) è stato attivato l'evento “apri form anagrafica macchinario”. La form che deve essere aperta è quella dell'anagrafica strumenti di misura su cui si vuole lavorare (DoCmd.OpenForm "anagrafica_strumenti_misura", acNormal, , " cod_strumenti_misura= '" & Me.COD_STRUMENTO_MISURA.Value & "'")

Anagrafica strumenti di misura

In questa form sono presenti i dati caratteristici del macchinario (presi dall'anagrafica macchinario). Inoltre, sono presenti tre pulsanti, che consentono di bloccare e sbloccare i dati dell'anagrafica e di

chiudere la form (pulsante indietro). Per sbloccare (consentire la modifica dei dati) è necessaria l'introduzione di una password. È stata chiamata la macro (modulo) per la verifica della password usata nella form_anagrafica_macchinari. Anche in questa condizione, come in precedenza, ho realizzato una procedura sull'open della form affinché lo stato di default dei dati fosse protetto da modifiche; quindi, con l'apertura della form, viene chiamata la procedura di blocco.

Ho inserito altri tre tasti. Un tasto serve per inserire le tarature, un altro per inserire le riparazioni. Il sistema chiede di inserire i dati relativi all'intervento “manutentivo” quali note, data ed esito, nel caso si stia registrando una taratura, data e descrizione intervento, nel caso di riparazioni. In quest' ultimo caso il numero riga si crea autonomamente. I dati inseriti dall'utente vengono registrati nelle tabelle relative. L'ultimo tasto descritto è Stampa scheda strumento. Questo tasto apre il report chiamato anagrafica strumenti di misura sfruttando il codice azienda e il codice strumento di misura dedotti dal percorso seguito. DoCmd.OpenReport "anagrafica_strumenti_misura", acPreview, , " cod_azienda='" & cod_azienda & "' and cod_strumento_misura='" & COD_STRUMENTO_MISURA & "'"

L'apertura di questa form determina la chiusura della form lista macchinari.

Nella form infine ci sono ancora due importanti elementi. Nella maschera sono state infatti introdotte due sottomaschere:

Sottomaschera tarature strumenti di misura

Altro non è che il log delle tarature effettuate. È la form creata dalla tabella tarature strumenti misura. Sottomaschera riparazioni strumenti di misura

Altro non è che il log delle riparazioni effettuate. È la form creata dalla tabella riparazioni strumenti misura.

Questa form consente di visualizzare tutte le informazioni necessarie del macchinario. Oltre quindi ai dati di anagrafica consente di visualizzare lo storico degli interventi effettuati. Il report viene aperto all'interno della form_anagrafica_macchinari, per questo motivo deve consentire di visualizzare solo le informazioni del macchinario “aperto”. Per questo motivo, come descritto nella form l'apertura del report è vincolata dai parametri cod_azienda e cod_macchinario. All'interno del report sono presenti le informazioni sulle manutenzioni avvenute e sulle manutenzioni programmate che devono essere eseguite sul macchinario. Per questo ho inserito i due subreport di seguito:

subquery_lista_manut_progr_macc

subquery_manutenzioni_avvenute_macchinari

Scheda completa di tutte le macchine

È il report anagrafica_macchinari visto sopra senza il vincolo legato ad un percorso; questo report quindi visualizza tutte le macchine disponibili con tutta le informazioni ad esse legate

Stato_manutenzioni

Questo report visualizza tutti i macchinari sottoposti a manutenzioni programmate. Nel report sono identificati, per ogni macchinario, i tempi residui al prossimo intervento e indicati con colori diversi i dati di ogni macchinario in funzione dell'intervallo di tempo disponibile (se è negativo o uguale a zero i dati sono riportati in rosso per evidenziare la gravità della situazione, se compreso nella settimana in giallo altrimenti in verde, significa che il tempo per eseguire l'intervento è considerevole)

Manutenzioni_eseguire

Per ogni macchinario sono riportate le “”sole” manutenzioni da eseguire, ovvero quelle programmate

Stampa_manutenzioni_da_eseguire

In pratica rappresenta il work order per gli operatori di manutenzione. Il responsabile manutenzione stampa questo report pe consegnarlo all'operatore per fornire le informazioni necessari per poter eseguire l'operazione

Report Scheda Strumento

In questo report abbiamo praticamente tutto: è il report inserito tramite un comando nella form anagrafica strumenti di misura. Per questo motivo l'apertura è condizionata dal percorso seguito, come abbiamo già sottolineato riprende il cod_azienda e il cod_strumento, ma riporta, oltre ai dati dell'anagrafica (che comprendono tutti i dati necessari per identificare lo strumento e l'operazione di taratura), anche lo storico degli interventi effettuati. Ciò consente di avere un quadro limpido dell'oggetto. Nel report quindi sono stati inseriti due subreport (tramite la “conservazione” dei campi cod_azienda e cod_strumento): tarature e riparazione strumenti.

Scheda tutti gli strumenti di misura

per tutti gli strumenti di misura sono riportati i dati dell'anagrafica e i dati storici degli interventi. È lo stesso report usato nella form anagrafica strumenti (scheda strumento) ma aggregato a tutto il parco strumenti disponibile

Stato Tarature

Questo report visualizza tutti gli strumenti di misura. Ogni strumento di misura deve periodicamente essere sottoposto a taratura. Nel report sono identificati, per ogni strumento, i tempi residui al prossimo intervento e indicati con colori diversi i dati di ogni strumento in funzione dell'intervallo di tempo disponibile (se è negativo o uguale a zero i dati sono riportati in rosso per evidenziare la gravità della situazione, se compreso nella settimana in giallo altrimenti in verde, significa che il tempo per eseguire l'intervento è considerevole)