Databas för enkel sökning samt tillägg av körblad

Storlek: px
Starta visningen från sidan:

Download "Databas för enkel sökning samt tillägg av körblad"

Transkript

1 Databas för enkel sökning samt tillägg av körblad Database for easy search and input of test data Mikael Lidström EXAMENSARBETE Datateknik 2005 Nr: E3136 D

2 EXAMENSARBETE, C-nivå Datateknik Program Reg nr Omfattning Industriell datateknik, 120 p E 3136 D 10 p Namn Datum Mikael Lidström Handledare Examinator Thomas Kvist Ernst Nordström Företag/Institution ABB High Power Laboratory Titel Databas för enkel sökning samt tillägg av körblad Nyckelord ABB, Databas, PHP, Webbutveckling Kontaktperson vid företaget/institutionen Shankar Subramany Sammanfattning Detta examensarbete har gjorts på ABBs högeffektlaboratorium i Ludvika för att hjälpa provledarna i sin process med att finna provresultat, vilka kan användas som referens vid framtida provning. Provresultaten och kretsscheman används som referens för att det enklare ska gå att se hur det nya provet fortlöper, och lättare hitta fel. Problemet för provledarna är dock att det är väldigt svårt att hitta referenser som kan användas till just det prov dem ska till att starta. Alla provresultat sparas i laboratoriets arkiv och det provledarna gör är att leta där förhand, vilket kan ta väldigt lång tid. En databas skapades som håller reda på viss information från varje provresultat, som det sedan ska gå att söka på med ett webbgränssnitt. Webbgränssnittet sköter alla kopplingar mot databasen och det är därigenom provledarna lägger till, söker, modifierar och tar bort provresultat. Det finns även en statistikdel i webbgränssnittet som visar information från databasen. Databasen används när provledarna ska påbörja ett nytt prov, då söker de efter liknande prov i databasen för att ha som referens till det nya provet. Hittas ett resultat som passar ser dem vilket diarienummer det äldre provresultatet har och hämtar det från högeffektslaboratoriets arkiv, bara genom att leta efter diarienumret. Resultatet av detta examensarbete blev ett färdigt system som körs på ett nätverk vilket används av provledarna. Högskolan Dalarna Telefon: Röda vägen 3 Telefax: BORLÄNGE URL:

3 DEGREE PROJECT Computer Engineering Programme Reg number Extent Industrial Computer Engineering Name of student E 3136 D Year-Month-Day 15 ECTS Mikael Lidström Supervisor Examiner Thomas Kvist Ernst Nordström Company/Department ABB High Power Laboratory Title Database for search and input of test data Keywords ABB, Database, PHP, Webb development Supervisor at the Company/Department Shankar Subramany Summary This degree project have been made at ABB High Power Laboratory in Ludvika to help the personnel in their process to find old test results, that can be used as reference in future testing. The old test results and test circuit data are used as reference to make it easier to see how the new test is running, and make it easier to find errors. The problem for the personnel is that it is very hard to find old test results that can be used to the test they are about to start. All old tests are saved in the laboratory s archive and the personnel are looking there for the results, which can take very long time. A database was created that holds some information from every test result, which it will be possible to search from with a Webb interface. The Webb interface controls all the connections to the database and it is through the interface the personnel adds, search, modifies and removes test results. There is also a statistics part in the Webb interface that shows information from the database. The database is used when the personnel is about to start a new test, they then search for tests that are similar to the new test and can be used as reference in the database. If a result is found they can see which diarie number the result has and can easily get it from the labs archive, just by looking for that diarie number. The result of this degree project is a complete system that runs on a network which is used by the personnel.

4 Innehållsförteckning 1 INTRODUKTION BAKGRUND PROBLEMSTÄLLNING SYFTE MÅL AVGRÄNSNING KRAVSTÄLLNING METOD INSAMLING AV FAKTA UTVECKLING AV SYSTEMET PROGRAM- OCH SPRÅKVAL TEKNISK SPECIFIKATION BESKRIVNING AV SYSTEM PROGRAMSPECIFIKATION MySQL HTML PHP JavaScript Apache webbserver KOPPLING MELLAN ANVÄNDARE OCH DATABAS DISTRIBUERINGEN AV WEBBSIDAN DATABASDESIGN BACKUP AV DATABASEN INTERVALLEN I DROP-DOWN BOXARNA DESIGN DESIGN PÅ WEBBSIDORNA FÄRGDESIGN PÅ WEBBSIDORNA DET SNABBA GRÄNSSNITTET ADMINISTRATIONSDEL INMATNING AV DATA I DATABASEN SÖKNING AV DATA I DATABASEN TA BORT FUNKTIONEN MODIFIERING AV INLAGDA DATA STATISTIK FRÅN DATABASEN...27 Sidan 1 av 34

5 6 RESULTAT RESULTAT JÄMTE KRAVSTÄLLNINGEN PROBLEM UNDER ARBETETS GÅNG UPPFYLLER PROGRAMMEN ALLA KRAV? HADE DET GÅTT ATT GÖRA DET BÄTTRE MED ANDRA PROGRAM? 29 7 SLUTSATS HUR FUNGERADE VERKTYGEN? FRAMTIDA KONTROLL AV DATABASEN FÖRBÄTTRINGSFÖRSLAG DATABAS WEBBGRÄNSSNITT FRAMTIDA ANVÄNDNING UNDERHÅLL SÄKERHETSASPEKTER REFERENSFÖRTECKNING REFERENSER WWW-KÄLLOR LITTERATUR APPENDIX ORDLISTA BILAGA...34 BILAGA 1 EXEMPEL PÅ HUR SPARAT DATA SER UT I DATABASEN...34 Sidan 2 av 34

6 Figurförteckning FIGUR 1-1 VISAR HÖGEFFEKTLABORATORIET PÅ ABB I LUDVIKA....4 FIGUR 4-1 ILLUSTRERAR HUR SYSTEMET SER UT...9 FIGUR 4-2 VISAR KOLUMNERNA SOM ANVÄNDS I DATABASEN FIGUR 5-1 VISAR DESIGNEN AV STARTSIDAN TILL SYSTEMET...18 FIGUR 5-2 VISAR ANVÄNDARENS VALMÖJLIGHETER...19 FIGUR 5-3 VISAR HUR DROP-DOWN BOXARNA SER UT...20 FIGUR 5-4 VISAR PHPMYADMIN SOM ÄR ADMINISTRATIONSPANELEN...21 FIGUR 5-5 VISAR VERIFIKATIONEN AV ETT TILLÄGG FIGUR 5-6 VISAR HUR SÖKSIDAN SER UT MED DEN GRÅ BAKGRUNDEN FIGUR 5-7 VISAR HUR RESULTATEN HÄMTAS VID EN SÖKNING...24 FIGUR 5-8 VISAR HUR TA BORT FUNKTIONEN SER UT FIGUR 5-9 VISAR HUR MODIFIERINGSSIDAN SER UT...26 FIGUR 5-10 VISAR HUR STATISTIKSIDAN SER UT I SYSTEMET Sidan 3 av 34

7 1 Introduktion Detta examensarbete har utförts på ABBs högeffektlaboratorium i Ludvika. Högeffektlaboratoriet testar högspänningsbrytare, både från ABBs egen koncern samt företag från världen över. Huvuduppgiften i detta examensarbete var att skapa en databas för körblad för att underlätta arbetet för provledarna. Körblad är en del av rapporteringen av ett prov. I körbladet noteras alla värden vilka resulteras från provningen och kretsschemat, det är körbladen som till största del vill användas som referens till nya prov för jämförelse av resultat. Kretsschemat är en ritning på hur provet är uppkopplat. 1.1 Bakgrund ABB Högeffektlaboratoriet i Ludvika är ett av de mest avancerade och effektiva högeffektlaboratorium i världen. Med utrustningen som finns i Ludvika går det att simulera kortslutning och switching i kraftnäten. Högeffektlaboratoriet utför tester och provning på högspänningsbrytare både från ABBs egen brytartillverkning och från företag världen runt. Brytare används i högeffektsledningar för att bryta ledningar som drabbas av t.ex. kortslutning då det minskar skadorna på elnäten. Eftersom många brytare från andra företag kan vara hemliga projekt, är laboratoriet en fristående del av ABB Ludvika och endast personalen som jobbar där har tillträde dit. Alla prover som utförs rapporteras och sparas i laboratoriets arkiv. Många av proverna som utförs på laboratoriet är återkommande eller liknar tidigare prov. Det är då bra att titta på tidigare provers testresultat och kretsschema för att jämföra de resultaten med de nya. Figur 1-1 visar Högeffektlaboratoriet på ABB i Ludvika. Sidan 4 av 34

8 1.2 Problemställning Examensarbete 10 p C Högskolan Dalarna Det tar för lång tid att hitta äldre provresultat som kan användas som referens till nya prov. Det är inte heller säkert att det hittas något körblad vilket kan användas som referens. Det provledarna får göra för att hitta gamla rapporter som de kan använda är att leta i arkivet själva, vilket kan vara ett väldigt tidskrävande arbete. 1.3 Syfte Syftet med detta examensarbete är att förenkla provledarnas process att finna tidigare provresultat som liknar det prov de ska till att påbörja. 1.4 Mål Att skapa en databas med ett lättarbetat gränssnitt för att spara dyrbar tid och göra jobbet effektivare för provledarna. 1.5 Avgränsning All information från körbladen ska inte sparas i databasen, bara väsentlig information som behövs för att kunna söka reda på just det specifika körbladet. Det behövs ingen extra säkerhetskontroll på vem som använder databasen, provledarna använder ett eget nätverk som endast används av dem. Alla provledare har därmed tillgång till databasen. Varje dator på det aktuella nätverket har användarnamn och lösenordskontroll vid inloggning, så en extra kontroll av det samma vid användning av databasen skulle bli onödigt. Sidan 5 av 34

9 2 Kravställning En databas skall skapas för underlättande av arbetet för provledarna. Det ska vara enkelt och gå snabbt att använda databasen. Det ska gå att: lägga till information från körblad i databasen. söka körblad i databasen. ta bort körblad ur databasen. modifiera körblad i databasen. ta backup av databasen. få fram statistik från databasen. använda drop-down boxar för snabb hantering med pekdonet. enkelt och snabbt använda systemet. Sidan 6 av 34

10 3 Metod I detta kapitel tas det upp hur information och fakta samlades in och i vilken ordning utvecklingen av systemet genomfördes. 3.1 Insamling av fakta För att få en övergripande förståelse för uppgiften intervjuades Shankar Subramany. Shankar Subramany är chef för provledarna på ABB och är därför kontaktpersonen från provledarna som ska använda den slutgiltiga lösningen. Internet användes för att hitta information om databashanterare samt programmeringsspråk och hur de fungerar. Det finns många bra gratis kurser för olika databashanterare och programmeringsspråk på Internet. De webbsidor som användes vid insamling av information var: 64bits.se Idg.se Php.net För att få en djupare inlärning om kopplingen mellan PHP och MySQL lästes boken PHP and MySQL Web Development. Sidan 7 av 34

11 3.2 Utveckling av systemet Systemet utvecklades först genom att det grafiska gränssnittet skapades, så att provledarna fick chansen att ge sina synpunkter innan den slutgiltiga lösningen var klar. Det gav dem en bra chans att komma med förslag på ändringar, innan själva kopplingen till databasen programmerades. Utgångspunkten på designen var att det skulle vara så enkelt och lättanvändligt som möjligt, samt att det skulle gå snabbt att använda. Grunddesignen som först visades för provledarna togs fram i samarbete med Shankar Subramany med åtanke på kravet att det skulle vara så enkelt och användarvänligt som möjligt. Detta för att användningen av systemet ska gå smidigt och inte inverka betungande på provledarnas arbete. När väl gränssnittet till databasen var klart började schemaläggningen av databasen. Det blev en enkel uppgift då det framgick precis vad som behövdes för att gränssnittet skulle kunna användas. 3.3 Program- och språkval Programmen som valdes till uppgiften var sådana program som författaren redan hade använt en del innan arbetet började. Detta för att minska inlärningstiden för nya program och minimera eventuell tidsbrist i planeringen. Sidan 8 av 34

12 4 Teknisk specifikation I detta kapitel tas det upp hur olika tekniska funktioner fungerar i lösningen och hur de svarar mot kravställningen. 4.1 Beskrivning av system Det färdiga systemet fungerar så att det är en webbserver på en Windows maskin som kör webbsidan som kopplar användaren via HTML och PHP till databasen. Användarna öppnar webbsidorna med en webbläsare från vilken mätdator som helst i det lokala nätverket och ansluter med hjälp av den till databasen. Det tas en backup av databasen den första dagen varje månad klockan 12.00, som sedan skickas till en mätserver för lagring och möjlighet till återställning av databasen. När provledaren har hittat ett körblad som ska användas hämtas det från arkivet snabbt och enkelt med hjälp av diarienumret. Figur 4-1 illustrerar hur systemet ser ut. Sidan 9 av 34

13 4.2 Programspecifikation Här följer information om de olika programmen och programspråken som valdes att användas i systemet, samt fördelar och varför just de programmen valdes MySQL MySQL är världens mest populära Open Source databashanterare. Den använder SQL, det vanligaste språket för tillägg, åtkomst och bearbetning av datahantering i en databas. MySQL utvecklas av det svenska företaget MySQL AB. Över fem miljoner installationer använder MySQL för få åtkomst till data på hemsidor. Några av de ledande företag som använder MySQL är The Associated Press, Google, NASA, Sabre Holdings och Suzuki (MySQL ). MySQL är ett attraktivt alternativ mot dyrare och mer komplexa databaser, och kan köras på Linux, Unix och Microsoft operativsystem. MySQL är en del av LAMP (Linux, Apache, MySQL, PHP / Pearl / Python), en snabbt växande Open Source grupp. Som fungerar mycket bra med varandra (MySQL ). Fördelar: MySQL har många styrkor, inkluderat hög prestanda, låg kostnad, lätt att konfigurera och lära, portabel och källkoden är tillgänglig. Hög prestanda. MySQL är onekligen snabb. På tillverkarens hemsida finns mätningar som visar att databashanteraren är många gånger snabbare än konkurrenterna, läs mer på Låg kostnad. MySQL är tillgänglig till ingen kostnad, under Open Source Licens. Eller till liten kostnad till kommersiell lisens om det är nödvändigt för sin lösning. Sidan 10 av 34

14 Lätt att konfigurera och använda. De flesta moderna databaser använder SQL. Det gör det lätt att sätta sig in i MySQL som också använder det. MySQL är också lättare att installera än många liknande produkter. Portabelt. MySQL kan köras både på Windows och Linux operativsystem. Källkod. Källkoden är fri att ändra HTML HTML (Hyper Text Markup Language) är ett standardformat för webbsidor som specificerats av W3C. Det uppfanns av forskaren Tim Berners-Lee som jobbar på CERN. Språket använder en mängd olika koder (tags) som indikerar hur text och bilder ska visas i webbläsaren. Dessa tags sparas i en fil på en webbserver för åtkomst och tolkning av webbläsarna, det kallas för clientside, för att det är klientens dator som tolkar koden. Detta gäller alla webbläsare, även om de är textbaserade som Lynx eller grafiska som t.ex. Netscape Navigator eller Microsoft Internet Explorer. Fördelar: HTML är en utbredd standard som används överallt på Internet. Det är lätt att lära. Nackdelar: Det har inget stöd för koppling mot databaser. Visar innehållet statiskt vilket gör det svårt att visa information som ofta förändras. Sidan 11 av 34

15 4.2.3 PHP PHP (Hypertext Preprocessor) är ett plattformsoberoende serverside HTML-inbäddat scriptspråk. Det vill säga att det kan användas oberoende val av webbserver, och operativsystem. HTML-sidan kan innehålla ett eller flera script (små inbakade program) som exekveras på en webbserver, och genererar HTML-kod innan sidan skickas till användaren, detta kallas serverside, för att webbservern tolkar och genererar koden innan det skickas vidare. Vanligtvis använder scripten indata från de val som användaren väljer att hämta från en databas. Från den hämtade datan byggs sedan HTML sidan upp generiskt innan den skickas till användaren med det färdiga resultatet (Techtarget Inc. 2004). PHP behöver nödvändigtvis inte användas i samarbete med en webbserver, utan är ett fullfjädrat scriptspråk i sig som kan användas för att uträtta saker på datorn i form av t.ex. ett shellscript. Det vanligaste användningsområdet för PHP är onekligen på en webbserver för att generera HTML (64bits 2003). PHP distribueras som öppen källkod och är fritt att använda. Fördelar: Några av PHPs huvudkonkurrenter är Pearl, Microsoft Active Server Pages (ASP), Java Server (JSP), och Allaire Cold Fusion. I jämförelse till dessa produkter har PHP många styrkor: Hög prestanda. PHP är väldigt effektivt. Med en simpel server går det att generera miljontals sidträffar/dag som skickas ut till besökarna. Gränssnitt till många olika databaser. PHP har många inbyggda kopplingar till olika databaser. Som tillägg till MySQL går det att direkt ansluta till databaser så som PostgreSQL, Oracle, dbm, filepro, Hyperwave, Informix, InterBase och Sybase databaser, bland många. Sidan 12 av 34

16 Inbyggda bibliotek för många vanliga webbuppgifter. PHP är designat för webb applikationer och har många inbyggda funktioner för att klara många användbara uppgifter. Det går att generera GIF-bilder direkt, ansluta till andra nätverkstjänster, skicka e-post, arbeta med cookies och generera PDF-dokument. Allt med bara några få rader kod. Låg kostnad. Senaste versionen av PHP kan laddas hem från fritt när som helst till ingen kostnad. Lätt att lära och använda. Syntaxen i PHP bygger på C och Pearl. Om man redan kan någon av dem, eller liknande språk som C++ eller Java blir man produktiv med PHP nästan omedelbart. Portabelt. PHP koden kan köras på både Windows och Linux operativsystem utan någon större ändring i koden. Tillgänglighet av källkod. Tillgängligheten av källkoden till PHP är bra att ha om det är någonting som kanske saknas eller bör förbättras. Ingen väntan behövs på att tillverkaren ska komma med uppdateringar, eller oroligheten att tillverkaren går i konkurs och slutar underhålla produkten. Nackdelar: Dåligt stöd för objektorientering. Dåligt stöd för matematiska funktioner. Sidan 13 av 34

17 4.2.4 JavaScript JavaScript är ett script språk skapat av Netscape. Det är likt Microsofts Visual Basic, Suns Tcl och IBM Rexx. Generellt är scriptspråk enklare och snabbare att programmera än mer strukturerade och kompilerade språk som C och C++. Scriptprogram tar vanligtvis längre tid att exekvera än kompilerade språk, men är i högsta grad användbara för mindre program (Techtarget Inc. 2004). JavaScript kan implementeras i HTML kod för att användas vid automatiskt ändrande av data på en hemsida. Scripten exekveras då i klientens webbläsare, så kallad clientside. JavaScript kan även exekveras på webbservern innan sidan skickas till klienten, så kallad serverside. Både Microsofts och Netscapes webbläsare kan tolka JavaScript, men ibland på något olika sätt (Techtarget Inc. 2004). Fördelar: Enkelt att lära. Bra för mindre program. Mycket information på Internet. Nackdelar: Långsam exekvering. Sidan 14 av 34

18 4.2.5 Apache webbserver Apache är världens mest använda webbserver (Apache Org. 2004). Apache är fri programvara och ingår i LAMP. Apache utvecklades ursprungligen för Unix men finns nu också till Linux, Windows och Mac OS X. Enligt en undersökning som Netcraft ( gjorde 2001 använder 60 % av alla hemsidor Apache som webbserver. Fördelar: Fri att använda. Mycket information på Internet. Mest använda webbservern. 4.3 Koppling mellan användare och databas Kopplingen mellan användare och databas sker med webbsidor som innehåller PHP kod som är inbakad i HTML. Webbsidorna ligger i webbservern som skickar sidorna till användaren som besöker sidan via en webbläsare. Varje enskild PHP sida kopplar in sig på databasen med hjälp av lösenord, användarnamn och IP-nummer, sen hämtas de data som ska visas på just den sidan. Informationen som ska hämtas vid t.ex. en sökning görs av valen som användaren gör. Med hjälp av if-satser hämtas bara resultat vilka innehåller de val som är gjorda från sökningen till frågan mot databasen. 4.4 Distribueringen av webbsidan Webbsidan distribueras genom webbservern vilken skickar ut sidorna till användarens webbläsare. All information som skickas på nätverket går via TCP/IP. Sidan 15 av 34

19 4.5 Databasdesign Det finns olika typer av databaser. Den enklaste formen av databas består av en tabell som fungerar som ett register över samlade data. Det finns också en lite mer komplicerad typ av databas som består av flera tabeller som är kopplade till varandra på något sätt, en sådan kallas för relationsdatabas. Lösningen till databasen som gjordes till detta arbete gjordes så enkelt som möjligt och använder endast en tabell. Tabellen innehåller 19 kolumner, dem innehåller olika attribut till varje prov som blir sparat. Ett automatiskt uppräknande id är unikt för varje prov som sparas ( ID ), samt så måste diarienumret som består av DIARIEB, DIARIENR och DIARIEL också sparas, vilka är unika för varje nytt prov som görs och utan dem går det inte att spara någonting i databasen. Figur 4-2 Visar kolumnerna som används i databasen. Det id som räknas upp sker automatiskt av en MySQL funktion. Se exempel på hur inmatade data ser ut i bilaga 1. Ett diarienummers karaktär är av typen X-1234 y, det sista y:et finns med om det är flera körblad under samma original diarienummer. Det händer vid körning av olika prov på ett och samma provobjektet under samma diarienummer, vilket är ganska vanligt. Y:et används för att fortfarande ha ett unikt diarienummer för varje enskilt körblad. Sidan 16 av 34

20 Resterande kolumner innehåller vilka intervall provet har körts i. Det är de intervallen det går att söka på när ett referensprov behövs till ett nytt prov. Intervallen är framtagna av Shankar Subramany. 4.6 Backup av databasen Backup av databasen görs av ett script i Windows. Det använder en funktion i databashanteraren MySQL som dumpar alla data som är samlad i databasen i en text fil som senare kan läsas in igen med hjälp av en inläsningsfunktion. Scriptet genererar en ny fil med dagens datum innan databasinnehållet dumpas ner i filen. Sedan kopieras filen över till mätservern som sparar filerna på sin hårddisk. Samtliga backups sparas med ett nytt unikt filnamn, det innebär att det går att återställa databasen från tidigare datum ifall något skulle ha hänt databasen sedan senaste backupen. Scriptet körs med hjälp av Windows schemaläggare den första dagen varje månad klockan off set curndate=%date% set myvar1=%curndate:~0% c:\www\mysql\bin\mysqldump --add-drop-table -c -u root -proot testabb > testabb-backup-%myvar1%.sql copy "c:\www\apache2\htdocs\backup script\testabb-backup- %myvar1%.sql" "G:\databas_backup\" del "c:\www\apache2\htdocs\backup script\*.sql" Scriptet som sköter backupfunktionen. 4.7 Intervallen i drop-down boxarna Alla intervall som används är framtagna av Shankar Subramany och det är intervall vilka ska väljas till det körblad som ska sparas i databasen. Intervallen används som ett signalement till proven som blir sparade i databasen. Med hjälp av signalementen går det sedan att söka efter ett sådant körblad som vill hittas. Ett exempel på ett signalement som används är märkspänningen, den anger vilken spänning en brytare är gjord för att klara av att bryta. Ett exempel som det går att välja ett märkspännings intervall på är kv. Om nya intervall vill läggas till måste de läggas till direkt i HTML koden. Sidan 17 av 34

21 5 Design I detta kapitel visas designen på webbgränssnittet samt hur de olika sidorna ser ut och är uppbyggda. Grunden för hela webbgränssnittet är byggd efter en tabellstruktur. Det är ett vanligt sätt att strukturera upp webbsidor efter en tabell som sedan byggs vidare med nästlade tabeller. Med nästlade tabeller menas att det inuti en tabell skapas nya tabeller för att strukturera innehållet på ett bra sätt, det gör bland annat att innehållet på webbsidorna visas lika oberoende av skärmstorlek och upplösningen på användarens datorskärm. 5.1 Design på webbsidorna Tabellstrukturen på webbgränssnittet är uppdelat i tre delar. Överst i tabellen ligger statisk information med ABB logo och texten Högeffektlaboratoriet samt ett kryss som stänger ner hela Internet Explorer (del 1). Figur 5-1 visar designen av startsidan till systemet. Sidan 18 av 34

22 I mitten av tabellen öppnas de sidor som användaren väljer att visa. Det är HTML sidor med PHP kod som genererar sidor med data vilka hämtats från databasen, samt en lista med länkar till sidor som användaren kan välja överst i varje del sida (del 2). Den länkade listan syns i figur 5-1 som den gråa raden överst i del 2. Underst i tabellen finns en till statisk del (del 3) som innehåller två pilar, en vilken fungerar som en bakåtknapp och den andra som en framåtknapp precis som motsvarande pilar i t.ex. Internet Explorer. 5.2 Färgdesign på webbsidorna Färgdesignen på hemsidan liknar den ABB har på sin egen hemsida, detta för att användarna ska känna igen att det är en ABB produkt. Layouten på sidorna är gjorda så att det på ett enkelt och snabbt sätt ska gå att få överblick och kontroll. Det tar inte lång tid att sätta sig in i hemsidan då det finns en länklista över alla sidor på sidan användare index. Figur 5-2 visar användarens valmöjligheter. Sidan 19 av 34

23 5.3 Det snabba gränssnittet För att ej behöva släppa fokuseringen från skärmen för att skriva in information med tangentbordet är de flesta valen gjorda så att de väljs med pekdonet. Enda gången tangentbordet behövs är när speciell information skrivs om ett prov, eller när kommentarer och provledare skrivs in. De flesta diarienummer börja på bokstaven J, därför är den bokstaven förvald. Årtalet som ska väljas utses också automatiskt med hjälp av PHP som väljer det nuvarande året utifrån datorns datuminställning. Det går emellertid att byta dessa val om det skulle behövas med hjälp av drop-down boxarna. Figur 5-3 visar hur drop-down boxarna ser ut. Sidan 20 av 34

24 5.4 Administrationsdel Det behövs egentligen ingen administrativ del av hemsidan då alla användare har samma behörighet och åtkomst av databasen. Men det finns ändå en administrativ panel som hanterar databasen vid behov, den körs genom phpmyadmin. Till exempel om någonting har gått snett med systemet så att den måste installeras om, då används den administrativa delen för att läsa in backupfiler av databasen. För åtkomst av den administrativa delen krävs ett lösenord som endast administratorn känner till. Figur 5-4 visar phpmyadmin som är administrationspanelen. Sidan 21 av 34

25 5.5 Inmatning av data i databasen Inmatningen fungerar på så sätt att provledaren väljer de intervall som är angelägna för provet, så det skall gå att kunna söka på körbladet senare. För att det inte ska läggas in körblad utan någon unik skillnad så måste alltid diarienumret matas in som är unikt för varje prov, med hjälp av ett JavaScript kontrolleras det. Systemet kontrollerar ändå alltid om det redan finns något körblad inmatat med samma diarienummer. Påträffas det så genererar systemet ett felmeddelande, i annat fall läggs det nya körbladet in i databasen. När ett körblad är inmatat och sparat i databasen syns en verifikation på att allting gick som det skulle, och även vilka värden som lades in. Val som inte fått något värde är satta till not set. Figur 5-5 visar verifikationen av ett tillägg. Sidan 22 av 34

26 5.6 Sökning av data i databasen Sökningen av data från databasen sker liknande inmatningen av data, genom att intervallen väljs till det prov som vill hittas innan sökningen sker. Frågan som ställs mot databasen tar då endast med de intervall som det söktes på och resultaten blir förhoppningsvis betydelsefulla. Ju mindre precis sökningen är desto mer träffar ger resultatet från databasen, detta för att det är större chans att flera inmatade körblad har just ett likadant intervall. Samtidigt blir resultaten färre ju mer precis sökningen är. Det går även att få fram alla resultat genom att söka på * som första bokstav i diarienumret. Figur 5-6 visar hur söksidan ser ut med den grå bakgrunden. Sidan 23 av 34

27 Figur 5-7 visar hur resultaten hämtas vid en sökning. Bakgrundsfärgen på sökfönstret är grå för att användaren lättare ska se skillnad på att det är en sökning och inte ett tillägg på gång, se Figur 5-6. I resultatet från en sökning sorteras körbladen efter diarienummer, år och månad, se Figur 5-7. Sidan 24 av 34

28 5.7 Ta bort funktionen Ta bort funktionen fungerar så att användaren matar in diarienumret till det körblad som ska tas bort och väljer sök. Då hämtas informationen om det körbladet och användaren har valet att ta bort informationen från databasen genom att klicka på knappen radera. Innan borttagningen genomförs kontrolleras valet med hjälp av ett JavaScript som frågar ja eller nej. Figur 5-8 visar hur ta bort funktionen ser ut. Sidan 25 av 34

29 5.8 Modifiering av inlagda data Modifieringen av inlagd data sker liknande ta bort funktionen, med skillnaden att ingenting försvinner, utan bara modifieras. Ett inlagt körblad kan behöva modifieras om något intervall valdes fel eller att det blev något annat fel vid inmatningen av körbladet. Istället för att behöva ta bort det felaktiga körbladet och sedan lägga in det på nytt går det istället att modifiera de val som blev fel på ett enkelt sätt. Genom att först söka på det diarienummer som skall modifieras, då hämtas informationen om det körbladet och visas för användaren. Sedan väljer användaren vilka intervall som skall modifieras och klickar på ok. Då uppdateras de ändringar som gjorts och datat sparas på nytt i databasen. Efter en sökning eller ett tillägg finns även möjligheten att välja modifiera och komma till modifieringssidan direkt för det aktuella diarienumret. Figur 5-9 visar hur modifieringssidan ser ut. Sidan 26 av 34

30 5.9 Statistik från databasen Statistiken som hämtas från databasen är information om hur många prov som gjorts av dem olika typer av prov som finns, samt hur många körblad som är inmatade totalt från olika år. Det finns även statistik om hur många inmatade körblad det finns som innehåller olika intervall, detta för att få en liten överblick på vilka prov som är mest frekventa. Figur 5-10 visar hur statistiksidan ser ut i systemet. Sidan 27 av 34

31 6 Resultat Resultatet av detta examensarbete blev ett system som körs på ett nätverk vilket används av provledarna. Efter tre månaders användning av provledarna är drygt 60 provresultat är inmatade. Varje vecka läggs det in nya provresultat av provledarna vilka kan användas som referenser i framtiden. 6.1 Resultat jämte kravställningen Alla punkter vilka ställdes som krav är lösta. Databasen är skapad och webbgränssnittet sköter alla delar vilka det var krav på. Systemet är även gjort så att det ska vara enkelt och smidigt att använda. Det tar mindre än en minut att lägga till ett körblad för en rutinerad provledare. 6.2 Problem under arbetets gång Ett litet problem som stöttes på var när systemet skulle installeras på det slutgiltiga nätverket. Under utvecklingstiden låg systemet på en äldre dator med en skärm som inte klarade särskilt höga upplösningar, det ledde till att webbgränssnittet utvecklades till en upplösning av 1024*768 bildpunkter. När sedan systemet installerades på mätdatorerna var deras skärmar mycket större och bättre och klarade av mycket högre upplösningar (1600*1200), det gjorde att layouten först blev väldigt liten samt att texten rördes om i gränssnittet. Det åtgärdades dock enkelt i HTML koden. 6.3 Uppfyller programmen alla krav? Det fastställdes aldrig något krav på vilka program som skulle användas för systemet, utan mer vad som skulle kunna göras när det var klart. Med programmen och programspråken gick det att få fram en lösning som klart motsvarar kraven som ställdes, de uppfyller därmed alla krav. Sidan 28 av 34

32 6.4 Hade det gått att göra det bättre med andra program? Det går naturligtvis att göra systemet bättre med andra program, även med de program som har använts till lösningen. Men det är ingenting som har tagits under beaktning då valet av de program som valdes gjordes på tidigare erfarenheter som författaren hade av programmen och utvecklingsspråken, för att minska inlärningstid för nya program och eventuell tidsbrist i planeringen. 7 Slutsats Systemet gör det väldigt enkelt för provledaren att söka på de intervall som önskas och snabbt få upp ett resultat om någonting sådant finns. Det gör att det tidskrävande arbetet med att leta i arkivet efter resultat försvinner. Efter en sökning i databasen visas vilket diarienummer provet hade och det blir enkelt att hämta rätt pärm, eller om det inte finns något resultat behövs inget letande över huvud taget. Det krävs dock att alla prov som är värda att vara referens för framtida prov sparas i databasen, det bedöms av provledarna. Problemet uteblir om systemet används rätt. 7.1 Hur fungerade verktygen? Möjligheterna att bygga databaslösningar med PHP och MySQL är enkla och bra. Med enkelheten menas att båda programmeras och styrs med vanliga programmeringsspråk, PHP med C-syntax och MySQL med SQL-syntax, det är bland de vanligaste språken och relativt lätta att lära samt sätta sig in i. Sedan att det finns manualer på Internet för båda verktygen gör sökning efter funktioner och hjälp mycket enkel. Sidan 29 av 34

33 7.2 Framtida kontroll av databasen En säkerhetsåtgärd som bör finnas i åtanke är att systemet inte har någon kontroll på vilken användare som gör vad i databasen. Om t.ex. någon skulle börja radera sparad information från databasen via webbgränssnittet skulle ingen veta vem som låg bakom det p.g.a. att det inte finns någon som helst kontroll på användarna. Ett sätt att göra någonting åt det är att lägga in ett inloggningssystem som gör att det alltid kan loggas vilken användare som gör vad. Men det är i nuläget en åtgärd som bara finns i åtanke, innan organisationen blir så stor att det är svårt att hålla kontroll på vilka som har åtkomst till databasen. 8 Förbättringsförslag 8.1 Databas För att enklare ha möjligheten att ändra vilka intervall som skall kunna väljas vid sökning och tillägg skulle det skaffas fler tabeller i databasen, en för varje typ av kolumn som ska väljas. Därefter kan en administrativ sida skapas som sköter vilka intervall varje kolumn har att välja på. På det sättet undviks problem med att ändra intervallen direkt i HTML koden, vilket kräver mycket mera kännedom och kunskap om systemet. När sedan ett körblad matas in så skickas delar från varje instanstabell till den tabell som används nu för att spara körblad. 8.2 Webbgränssnitt Webbgränssnittet behöver inte förbättras på något sätt om inte förbättringsförslaget för databasen ändras, då kommer det att behövas nya sidor för webbsidan. Det skulle vara bra om varje sida hade en databaskopplingssida som innehåller information om kopplingen till databasen istället som det är nu att varje sida sköter den delen själv. Sidan 30 av 34

34 9 Framtida användning 9.1 Underhåll En lathund för hur hela systemet installeras, används och återställs har gjorts för dem anställda på ABB. Om någonting behöver programmeras måste en programmerare som kan HTML, PHP och MySQL behövas. 9.2 Säkerhetsaspekter Systemet används på ett nätverk som enbart har åtkomst av provledarna. Varje dator i nätverket kräver inloggning med användarnamn och lösenord så själva säkerhetsaspekterna till databasen är redan löst i den biten. Om en kontroll ändå skulle behövas för användningen av databasen har PHP och MySQL mycket bra funktioner för att sköta en sådan sak. Sidan 31 av 34

35 10 Referensförteckning 10.1 Referenser Shankar, Subramany (2004), Handledare, ABB Högeffektlaboratoriet, e-post: löpande kontakt WWW-källor The Apache Software Foundation, PHP: Hypertext Preprocessor, MySQL: The World s Most Popular Open Source Database, Whatis.com, the leading IT encyclopedia and learning center, Netcraft: 64bits.se: Idg.se: Litteratur Welling, Luke och Thomson, Laura (2001) PHP and MySQL Web Development. Indianapolis; Sams publishing - ISBN Sidan 32 av 34

36 11 Appendix 11.1 Ordlista C - Högnivaå programmeringsspråk. C++ - Högnivaå programmeringsspråk. Cookie - Liten text fil som skickar information över Internet. GIF bild - Grafisk bild med ett begränsat antal pixlar för små bilder anpassade till Internet. IBM Rexx - Högnivå programmeringsspråk utvecklat av IBM. If-sats - Om vilkor i programmering (om någonting ska inträffa). IP-nummer - Datorns identitet i ett nätverk. Java - Högnivå programmeringsspråk. Linux - Operativsystem med öppen källkod. Lynx - Textbaserad webbläsare i Linux. Mac OS X - Apples operativsystem. Microsoft IE - Microsofts webbläsare Internet Explorer. Netscape Navigator - Webbläsare utvecklad av Netscape, öppen källkod. PDF-dokument - PDF är en akronym för Portable Document Format och är ett sidbeskrivningsspråk från Adobe baserat på PostScript. Pearl - Process and Experiment Automation Realtime Language. Högnivå programmeringsspråk som är utvecklat för realtidssystem. Script - Litet program som sköter små funktioner, körs direkt i webbläsaren. Suns Tcl - Scriptspråk utvecklat av Sun. Unix - Operativsystem med öppen källkod. Windows - Microsofts operativsystem. Visual Basic - Programmeringsspråk utvecklat av Microsoft. Sidan 33 av 34

37 12 Bilaga Examensarbete 10 p C Högskolan Dalarna Bilaga 1 Exempel på hur sparat data ser ut i databasen. Sidan 34 av 34