58
FLEET MANAGEMENT Wirtschaftsinformatik Projekt WS 2012-13 1 Benny Brand | Paul Fuchs | Gui Rong Ko | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld

FLEET MANAGEMENT Wirtschaftsinformatik Projekt WS 2012-13 1 Benny Brand | Paul Fuchs | Gui Rong Ko | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias

Embed Size (px)

Citation preview

1

FLEET MANAGEMENT

Wirtschaftsinformatik ProjektWS 2012-13

Benny Brand | Paul Fuchs | Gui Rong Ko | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld

Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld

2

Gliederung

• Fleet Management• Xtreme Programming • Aufbau Java

• MVC, Singleton- Patterns• Funktionen

• Fahrzeuge• Reservierungen• Werkstatt• Statistiken• PDF-Generator• Testfälle (J-Unit-Tests)

• Web-Applikation (PHP)

Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld

3

Fleet Management Tool

• Einfach Möglichkeit den firmeninternen Fuhrpark zu verwalten– Ausleihe– Reservierung–Mitarbeiterverwaltung– Statistiken– Zusätzliche Weboberfläche

Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld

4

ER-Model

Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld

5

Xtreme ProgrammingRollen Aufgaben BeispielProduktbesitzer Hat Verantwortung, setzt

Prioritäten, Entscheider für bestes ROI

Produktmanagement, Marketing, ein Benutzer, Kunde, Manager des Benutzers, Analyst, Sponsor

Kunde Entscheidet, was gemacht wird, gibt Rückmeldung, Auftraggeber

Auftraggeber, kann auch Produktbesitzer sein

Entwickler Entwickelt das Produkt Programmierer, Tester, DB-Experte, Architekt, Designer

Projektmanager Führung des Teams Normalerweise Produktbesitzer, kann auch Entwickler sein

Benutzer Wird das zu erstellende Produkt nutzen

Nutzer des Produkts

Quelle: http://de.wikipedia.org/wiki/Extreme_Programming

Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld

6

User Stories

Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld

7

Pair-Programming

• Wechselnde Paare• Höherer Wissenstransfer• Anfänger kommen schneller rein• Ständiger Codereview• Ziel: Bessere Codequalität

Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld

8

MySQL: Stored Procedures

Termin für Reparatur vereinbaren Status

Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld

9

MySQL: Stored Procedures

Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld

10

MySQL: Stored Procedures

Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld

11

MySQL: Stored Procedures

Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld

12

MySQL: Function

Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld

13

MySQL: Function

Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld

14

MySQL: Function

Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld

15

Aufbau Java

• MVC und Singleton Pattern

Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld

MVC

• MVC Pattern– Flexible Programmierung

View Controller Model DAO

Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld

17

Singleton

• Singleton Pattern– Nur ein Objekt der Klasse darf existieren

Singleton-instance: Singleton

-Singleton()+ getInstance(): Singleton

Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld

18

Singleton

Beispiel:package com.hsulm.wf5.fleetmanagement.model;

public class FahrzeugDAO implements InterfaceDAO<Fahrzeug> {

private Ausstattung ausstattung;

// Singleton // nur ein Objekt der Klasse kann erzeugt werdenprivate static FahrzeugDAO instance = new FahrzeugDAO();

Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld

19

Fahrzeuge

Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld

20

Fahrzeuge

Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld

21

Fahrzeuge

Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld

22

package com.hsulm.wf5.fleetmanagement.view.FahrzeugBearbeiten.java

JButton btnHinzufgen = new JButton("Hinzuf\u00FCgen"); btnHinzufgen.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent arg0) { String kennzeichen = kennzeichenTextField.getText(); String standort = standortTextField.getText(); String farbe = farbeTextField.getText(); String erstzulassung = erstzulassungTextField.getText(); String kraftstoffart = kraftstoffartTextField.getText(); int sitzplaetze = Integer.parseInt(sitzplaetzeTextField.getText()); DateFormat formater = new SimpleDateFormat(); Date vertragsbeginn = null; String tuev = null; try { vertragsbeginn = (Date) formater.parse(vertragsbeginnTextField.getText()); } catch (ParseException e) { e.printStackTrace(); return; } tuev = tuevTextField.getText(); int serviceintervall = Integer.parseInt(serviceintervallTextField.getText()); String getriebe = getriebeTextField.getText(); int vertragslaufzeit = Integer.parseInt(vertragslaufzeitTextField.getText()); int herstellerId = Integer.parseInt(herstellerIdTextField.getText()); int werkstattId = Integer.parseInt(werkstattIdTextField.getText()); int kilometerstand = Integer.parseInt(kilometerstandTextField.getText()); String vertragsart = vertragsartTextField.getText(); String model = modelTextField.getText(); FahrzeugController fc = FahrzeugController.getInstance();

} });

Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld

23

package com.hsulm.wf5.fleetmanagement.controller.FahrzeugController.java

public void fahrzeugUpdaten(int arrayID, String vertragsart, int serviceintervall, String kennzeichen, String standort, String tuev, String vertragsbeginn, int vertragslaufzeit, int werkstattId, int kilometerstand) throws ClassNotFoundException, InstantiationException, IllegalAccessException, UnsupportedLookAndFeelException {

Fahrzeug fahrzeug = fahrzeuge.get(arrayID);

fahrzeug.setKennzeichen(kennzeichen); fahrzeug.setKilometerstand(kilometerstand); fahrzeug.setStandort(standort); fahrzeug.setTuev(tuev); fahrzeug.setVertragsBeginn(vertragsbeginn); fahrzeug.setVertragsLaufzeitMonate(vertragslaufzeit); fahrzeug.setWerkstattId(werkstattId); fahrzeug.setVertragsart(vertragsart); fahrzeug.setServiceIntervall_KM(serviceintervall);

System.out.println("controller" + fahrzeug.getKilometerstand());

// fahrzeug updaten fahrzeug.objektUpdaten(fahrzeug); }

Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld

24

package com.hsulm.wf5.fleetmanagement.model.Fahrzeug.java

public void objektUpdaten(Fahrzeug fahrzeug) { dao.objektUpdaten(fahrzeug);

}

Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld

25

package com.hsulm.wf5.fleetmanagement.model.FahrzeugDao.java

public void objektUpdaten(Fahrzeug object) {

try { java.sql.Connection conn = Connection.connect(); PreparedStatement preStmt = conn.prepareStatement("CALL updateFahrzeug(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)");

java.sql.Date vertragsbeginn=null; if(!object.getVertragsBeginn().equals("null")){vertragsbeginn = java.sql.Date.valueOf(object.getVertragsBeginn());}

preStmt.setString(1, object.getKennzeichen()); preStmt.setString(2, object.getStandort()); preStmt.setString(3, object.getFarbe()); preStmt.setString(4, object.getErstzulassung()); preStmt.setString(5, object.getKraftstoffart()); preStmt.setInt(6, object.getSitzplaetze()); preStmt.setString(7, object.getTuev()); preStmt.setInt(8, object.getServiceIntervall_KM()); preStmt.setString(9, object.getGetriebe()); preStmt.setString(10, object.getVertragsart()); preStmt.setDate(11, vertragsbeginn); preStmt.setInt(12, object.getVertragsLaufzeitMonate()); preStmt.setInt(13, object.getWerkstattId()); preStmt.setInt(14, object.getHerstellerId()); preStmt.setString(15, object.getModell()); preStmt.setInt(16, object.getKilometerstand());

preStmt.executeUpdate(); preStmt.close(); conn.close();

} catch (SQLException sqle) {

sqle.printStackTrace(); }}

Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld

26

Suchfunktion

Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld

27

package com.hsulm.wf5.fleetmanagement.view.MainGui.java

public JTextField sucheFahrzeug; this.sucheFahrzeug = new JTextField(); public void set_fahrzeugsucheListener(KeyListener l){ sucheFahrzeug.addKeyListener(l); }

Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld

28

package com.hsulm.wf5.fleetmanagement.controller.FahrzeugController.java

public void Fahrzeuginit() { MainGUI.getInstance().getTable_2().setRowSorter(null); MainGUI.getInstance().sucheFahrzeug.setText(""); MainGUI.getInstance().set_fahrzeugsucheListener(new fahrzeug_sucheListener()); }

class fahrzeug_sucheListener implements KeyListener{ public void keyReleased(KeyEvent e) { TableRowSorter<TableModel> sorter = new TableRowSorter<TableModel>(MainGUI.getInstance().getTable_2().getModel()); MainGUI.getInstance().getTable_2().setRowSorter(sorter); filter(MainGUI.getInstance().sucheFahrzeug.getText(),sorter); } public void filter (String text,TableRowSorter sorter) { if (text.length() == 0) { sorter.setRowFilter(null); } else { try { sorter.setRowFilter(RowFilter.regexFilter("(?i)"+text)); } catch (PatternSyntaxException e) { System.out.println(e.getPattern()); } } }

Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld

29

Reservierungen

Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld

30

Reservierungen

Controller Werkstatt updaten

      Werkstatt ws = werkstattarray.get(werkstattId);       ws.setName(name);      ws.setAnsprechpartner(ansprechpartner);      ws.setTelefonnummer(telefonnummer);      ws.seteMail(email);      ws.setStrasse(strasse);      ws.setPlz(plz);      ws.setOrt(ort);      ws.setLand(land);         ws.objektUpdaten(ws);}   

Controller Werkstatt anlegen

//neue Werkstatt anlegen      boolean flag = false;      for (int i = 0; i < werkstattarray.size()-1; i++) {         if (plz ==(werkstattarray.get(i).getPlz())) {            ws.setOrt(werkstattarray.get(i).getOrt());            ws.setLand(werkstattarray.get(i).getLand());            flag = true;         }      }      if (flag == true) {               ws.objektAnlegen(ws);}      else {         ws.werkstattcityanlegen(ws);         ws.objektAnlegen(ws);

Controller WerkstattBearbeiten Felder

//Werkstattbearbeitenframe befüllen   public void WerkstattBearbeiten(int row) {      Werkstatt werkstatt = werkstattarray.get(row);      WerkstattBearbeiten wb = WerkstattBearbeiten.getInstance();

      wb.get_namef().setText(werkstatt.getName());      wb.get_plzf().setText(""+werkstatt.getPlz());      wb.get_telef().setText(werkstatt.getTelefonnummer());      wb.get_strasf().setText(werkstatt.getStrasse());      wb.get_anspf().setText(werkstatt.getAnsprechpartner());      wb.get_emaif().setText(werkstatt.getEmail());      wb.get_ortf().setText(werkstatt.getOrt());      wb.get_landf().setText(werkstatt.getLand());      wb.setArrayID(row);   }

Controller befüllen

//Werkstatt Combobox in Bearbeitenframe befüllen   public void fahrzeugBearbeiten() {      FahrzeugBearbeiten fb = FahrzeugBearbeiten.getInstance();      fb.get_Werk().removeAllItems();         for(int i =0;i<werkstattarray.size();i++){          fb.get_Werk().addItem(werkstattarray.get(i).getName());      }   }

Controller löschen

// Siherheitsabfrage      if(table5.getModel().removeRow(werkstattID)){          // Werkstatt aus Datenbank löschen         Werkstatt werkstatt = werkstattarray.get(werkstattID);         werkstatt.objektLoesche(werkstatt);          // Lösche aus ArrayList von werkstattController         werkstattarray.remove(werkstattID);         table5.getModel().fuelleModelmitDaten(werkstattarray);         table5.setRowSelectionInterval(0, 0);

Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld

36

Werkstattübersicht

Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld

37

Werkstattübersicht

Controller Werkstatt updaten

      Werkstatt ws = werkstattarray.get(werkstattId);       ws.setName(name);      ws.setAnsprechpartner(ansprechpartner);      ws.setTelefonnummer(telefonnummer);      ws.seteMail(email);      ws.setStrasse(strasse);      ws.setPlz(plz);      ws.setOrt(ort);      ws.setLand(land);         ws.objektUpdaten(ws);}   

Controller Werkstatt anlegen

//neue Werkstatt anlegen      boolean flag = false;      for (int i = 0; i < werkstattarray.size()-1; i++) {         if (plz ==(werkstattarray.get(i).getPlz())) {            ws.setOrt(werkstattarray.get(i).getOrt());            ws.setLand(werkstattarray.get(i).getLand());            flag = true;         }      }      if (flag == true) {               ws.objektAnlegen(ws);}      else {         ws.werkstattcityanlegen(ws);         ws.objektAnlegen(ws);

Controller WerkstattBearbeiten Felder

//Werkstattbearbeitenframe befüllen   public void WerkstattBearbeiten(int row) {      Werkstatt werkstatt = werkstattarray.get(row);      WerkstattBearbeiten wb = WerkstattBearbeiten.getInstance();

      wb.get_namef().setText(werkstatt.getName());      wb.get_plzf().setText(""+werkstatt.getPlz());      wb.get_telef().setText(werkstatt.getTelefonnummer());      wb.get_strasf().setText(werkstatt.getStrasse());      wb.get_anspf().setText(werkstatt.getAnsprechpartner());      wb.get_emaif().setText(werkstatt.getEmail());      wb.get_ortf().setText(werkstatt.getOrt());      wb.get_landf().setText(werkstatt.getLand());      wb.setArrayID(row);   }

Controller befüllen

//Werkstatt Combobox in Bearbeitenframe befüllen   public void fahrzeugBearbeiten() {      FahrzeugBearbeiten fb = FahrzeugBearbeiten.getInstance();      fb.get_Werk().removeAllItems();         for(int i =0;i<werkstattarray.size();i++){          fb.get_Werk().addItem(werkstattarray.get(i).getName());      }   }

Controller löschen

// Siherheitsabfrage      if(table5.getModel().removeRow(werkstattID)){          // Werkstatt aus Datenbank löschen         Werkstatt werkstatt = werkstattarray.get(werkstattID);         werkstatt.objektLoesche(werkstatt);          // Lösche aus ArrayList von werkstattController         werkstattarray.remove(werkstattID);         table5.getModel().fuelleModelmitDaten(werkstattarray);         table5.setRowSelectionInterval(0, 0);

Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld

43

Statistiken

Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld

44

package com.hsulm.wf5.fleetmanagement.view.MainGui.java

ActionListener al7 = new ActionListener() { public void actionPerformed(ActionEvent e) { FahrzeugReserviert demo = new FahrzeugReserviert("Vergleich„, "Fahrzeuge, die am meisten reserviert wurden"); demo.FahrzeugReserviertStart(); demo.pack(); demo.setVisible(true); } };

Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld

45

package com.hsulm.wf5.fleetmanagement.statisticview.FahrzeugReserviert.java

ArrayList<Fahrzeug> fz;

public FahrzeugReserviert(String applicationTitle, String chartTitle) { super(applicationTitle);

fz = new ArrayList<Fahrzeug>(); fz = FahrzeugDAO.getInstance().fahrzeugeAmMeistenReserviert();

// This will create the dataset PieDataset dataset = createDataset(); // based on the dataset we create the chart chart = createChart(dataset, chartTitle); // we put the chart into a panel ChartPanel chartPanel = new ChartPanel(chart); // default size chartPanel.setPreferredSize(new java.awt.Dimension(600, 400)); // add it to our application this.FahrzeugReserviert = chartPanel; }

Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld

46

package com.hsulm.wf5.fleetmanagement.model.FahrzeugDao.java

public ArrayList<Fahrzeug> fahrzeugeAmMeistenReserviert() {

ArrayList<Fahrzeug> fahrzeugstat = new ArrayList<Fahrzeug>(); Fahrzeug fahrzeug;

try { java.sql.Connection con = Connection.connect(); CallableStatement cst; cst = con.prepareCall("Call FahrzeugAmMeistenReserviert()"); ResultSet rs = cst.executeQuery();

while (rs.next()) {

fahrzeug = new Fahrzeug(rs.getInt("AnzahlReservierungen"), rs.getString("Kennzeichen"), rs.getString("Name"), rs.getString("Modell")); fahrzeugstat.add(fahrzeug);

}

cst.close(); rs.close(); con.close(); } catch (SQLException e) { System.out.println(e.getMessage()); e.printStackTrace(); } return fahrzeugstat;

}

Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld

47

FahrzeugAmMeistenReserviert()

Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld

48

Chart: Fahrzeuge, die am meisten reserviert wurden

Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld

49

PDF-Generator

• Generation von PDFs– Tabellen• Fahrzeug• Reservierungen• Mitarbeiter

– Statistiken• Top 5 gefahrene Kilometer• Reservierte Fahrzeuge

Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld

50

PDF-Generator

Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld

51

PDF-Generator

Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld

52

PDF-Generator

Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld

53

PDF-Generator

• Programmierung– PDFGenerator.java• Erstellt PDF

– ExportPDFFrame.java (GUI)• Ruft Jtables auf

– Jtables-Klassen und Statistik-Klassen • Rufen PDFGenerator auf

Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld

54

package com.hsulm.wf5.fleetmanagement.view.ExportPDFFrame.java

ActionListener exp = new ActionListener() { @Override public void actionPerformed( ActionEvent e ) { if(FahrzeugeIsActive()) { MainGUI.getInstance().getTable_2().createPDF(); }

if(ReservierungenIsActive()){ MainGUI.getInstance().getTable_3().createPDF(); } if(MitarbeiterIsActive()) { MainGUI.getInstance().getTable_4().createPDF(); }

if(TopFuenfIsActive()) { erstelleMitarbeiterKMPDF(); }

if(ReservierteFahrzeugeIsActive()) { erstelleFahrzeugeReserviertPDF(); }

if(AlleIsActive()) { MainGUI.getInstance().getTable_2().createPDF(); MainGUI.getInstance().getTable_3().createPDF(); erstelleMitarbeiterKMPDF(); erstelleFahrzeugeReserviertPDF();

} }};

Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld

55

package com.hsulm.wf5.fleetmanagement.view.ExportPDFFrame.java

public void erstelleFahrzeugeReserviertPDF() { FahrzeugReserviert reservierteFahrzeuge; reservierteFahrzeuge = new FahrzeugReserviert("Vergleich", "Fahrzeuge, die am meisten reserviert wurden"); reservierteFahrzeuge.pack(); RefineryUtilities.centerFrameOnScreen(reservierteFahrzeuge); reservierteFahrzeuge.setVisible(false); reservierteFahrzeuge.createPDF(); }

Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld

56

package com.hsulm.wf5.fleetmanagement.statisticview.FahrzeugReserviert.java

public void createPDF() { PDFGenerator gen = new PDFGenerator(); PDFGenerator.writeChartToPDF(getChart(), 585, 312,

"Reservierte Fahrzeuge.pdf"); }

Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld

57

package com.hsulm.wf5.fleetmanagement.pdfgeneration.PDFGenerator.java

public static void writeChartToPDF(JFreeChart chart, int width, int height, String fileName) { PdfWriter writer = null; Document document = new Document(PageSize.A4.rotate(), 20, 15, 15, 15); try {

writer = PdfWriter.getInstance(document, new FileOutputStream(fileName)); document.open(); BufferedImage bufferedImage = chart.createBufferedImage(width, height); Image image = Image.getInstance(writer, bufferedImage, 1.0f); document.add(image);

document.close(); writer.close(); Runtime.getRuntime().exec("rundll32 url.dll,FileProtocolHandler " + fileName); } catch (Exception e) { e.printStackTrace(); } } }

Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld

58

PHP