Projektdokumentation Frisc Thomas Dudek Frisc Die Friseurverwaltung Projektdokumentation zur fächerübergreifenden Projektarbeit der Fächer Datenbanken, Objekt- und strukturierte Programmierung. Thomas Dudek IAV 4 Rudolf-Diesel-Fachschule für Techniker Nürnberg Seite 1 von 51 Projektdokumentation Frisc Thomas Dudek Inhalt 1. 2. Projektbeschreibung ......................................................................................................................................................... 4 1.1 Kundenverwaltung .................................................................................................................................................. 4 1.2 Mitarbeiterverwaltung ............................................................................................................................................ 4 1.3 Produktverwaltung ................................................................................................................................................. 4 1.4 Farbenverwaltung ................................................................................................................................................... 5 1.5 Frisurverwaltung ..................................................................................................................................................... 5 1.6 Gutscheinverwaltung .............................................................................................................................................. 5 1.7 Rechnungsverwaltung ............................................................................................................................................. 5 1.8 Rechnungserstellung ............................................................................................................................................... 5 Lösungsstrategien/Umsetzung ......................................................................................................................................... 6 2.1 3. Benutzerdokumentation................................................................................................................................................... 7 3.1 Systemvoraussetzungen ......................................................................................................................................... 7 3.2 Clientprogramme .................................................................................................................................................... 7 3.2.1 Installation von Xampp .................................................................................................................................. 7 3.2.2 Einbinden der Datenbank .............................................................................................................................. 7 3.2.3 Installation von Frisc ...................................................................................................................................... 8 3.2.4 Starten des Programms ................................................................................................................................. 9 3.3 Bedienung von Frisc ................................................................................................................................................ 9 3.3.1 Menüpunkt Datei .......................................................................................................................................... 9 3.3.2 Menüpunkt Verwaltung .............................................................................................................................. 10 3.3.3 Menüpunkt Rechnung ................................................................................................................................. 13 3.3.4 Menüpunkt ? ............................................................................................................................................... 13 3.3.5 Kunde/Mitarbeiter/Farben/Frisuren/Gutschein suchen ............................................................................. 14 3.3.6 Kunde anlegen / Kundendetails .................................................................................................................. 15 3.3.7 Mitarbeiter anlegen / Mitarbeiterdetails .................................................................................................... 16 3.3.8 Farbe anlegen / Farbendetails ..................................................................................................................... 16 3.3.9 Frisur anlegen / Frisurdetails ....................................................................................................................... 17 3.3.10 Gutschein anlegen /Gutscheindetails .......................................................................................................... 17 3.3.11 Produkt suchen ........................................................................................................................................... 18 3.3.12 Produkt anlegen / Produktdetails ............................................................................................................... 19 3.3.13 Produktlinie anlegen / Produktliniendetails ................................................................................................ 19 3.4 4. Dauer des Projekts .................................................................................................................................................. 6 Rechnungserstellung ............................................................................................................................................. 20 3.4.1 Nachlass per Eingabe................................................................................................................................... 21 3.4.2 Rechnung suchen ........................................................................................................................................ 22 Entwicklerdokumentation .............................................................................................................................................. 22 4.1 Entwicklungsumgebung, Programmiersprache und Clientprogramme ................................................................ 22 4.2 Datenbank ............................................................................................................................................................. 22 4.2.1 Seite 2 von 51 Tabellen der Datenbank .............................................................................................................................. 23 Projektdokumentation Frisc 4.2.2 Relationenschema ....................................................................................................................................... 24 4.2.3 Quellcode der Datenbank............................................................................................................................ 24 4.3 Form Übersicht ..................................................................................................................................................... 27 4.3.1 Form Browser .............................................................................................................................................. 27 4.3.2 Form Browser_klein .................................................................................................................................... 27 4.3.3 Form Main ................................................................................................................................................... 28 4.4 UserControl Übersicht .......................................................................................................................................... 30 4.4.1 UserControl Farbe_details........................................................................................................................... 30 4.4.2 UserControl Farben_suchen ........................................................................................................................ 31 4.4.3 UserControl Frisur_details ........................................................................................................................... 31 4.4.4 UserControl Frisur_suchen .......................................................................................................................... 33 4.4.5 UserControl GridView_letzte_Rechnungen................................................................................................. 33 4.4.6 UserControl Gutschein_Details ................................................................................................................... 34 4.4.7 UserControl Gutschein_suchen ................................................................................................................... 34 4.4.8 UserControl Kunde_auswahl ....................................................................................................................... 35 4.4.9 UserControl Kunde_suchen ......................................................................................................................... 36 4.4.10 UserControl Kunden_details ....................................................................................................................... 37 4.4.11 UserControl Mitarbeiter_auswahl............................................................................................................... 37 4.4.12 UserControl Mitarbeiter_details ................................................................................................................. 38 4.4.13 UserControl Mitarbeiter_suchen ................................................................................................................ 39 4.4.14 UserControl Produkt_details ....................................................................................................................... 39 4.4.15 UserControl Produkt_suchen ...................................................................................................................... 40 4.4.16 UserControl Produktlinie_anlegen .............................................................................................................. 41 4.4.17 UserControl Rabatteingabe ......................................................................................................................... 42 4.4.18 UserControl Rechnung_erstellen ................................................................................................................ 42 4.4.19 UserControl Rechnung_suchen ................................................................................................................... 44 4.4.20 UserControl Startform ................................................................................................................................. 45 4.5 5. Thomas Dudek Klassenübersicht ................................................................................................................................................... 45 4.5.1 Klasse dbHandler ......................................................................................................................................... 45 4.5.2 Klasse Farbe ................................................................................................................................................. 46 4.5.3 Klasse Frisur ................................................................................................................................................. 46 4.5.4 Klasse Gutschein .......................................................................................................................................... 47 4.5.5 Klasse Kunde ............................................................................................................................................... 47 4.5.6 Klasse Mitarbeiter ....................................................................................................................................... 48 4.5.7 Klasse Produkt ............................................................................................................................................. 49 4.5.8 Klasse Produktlinie ...................................................................................................................................... 49 4.5.9 Klasse Rechnung_drucken ........................................................................................................................... 50 4.5.10 Klasse Rechnungen ...................................................................................................................................... 50 Quellen ........................................................................................................................................................................... 51 Seite 3 von 51 Projektdokumentation Frisc 1. Thomas Dudek Projektbeschreibung Ziel des Projekts ist eine funktionsfähige Software für den Einsatz in einem Friseursalon. Die Software soll die Möglichkeit bieten, Kunden, Mitarbeiter, Produkte-/Produktlinien, Gutscheine, Dienstleistungen (Schnitte, Farben) und Rechnungen zu verwalten. Rechnungen können per Mausklick erstellt, gespeichert und ausgedruckt werden. 1.1 Kundenverwaltung Im Bereich der Kundenverwaltung werden die Kunden mit Hilfe einer Datenbank gespeichert. Es soll die Möglichkeit bestehen, Kunden zu suchen, zu ändern, neue Kunden anzulegen und Kunden löschen zu können. Wird ein Kunde per Doppelklick oder durch einen Auswahlbutton ausgewählt, werden die Details des Kunden angezeigt und er kann bearbeitet werden. Des Weiteren werden die letzten drei Rechnungen angezeigt. Diese können ausgedruckt werden. Von den Kunden werden folgende Attribute in der Datenbank gespeichert: - Vorname - Nachname - Anschrift - Geburtstag - Geschlecht - Bemerkung 1.2 Mitarbeiterverwaltung Im Bereich der Mitarbeiterverwaltung werden die Mitarbeiter mit Hilfe einer Datenbank gespeichert. Es soll die Möglichkeit bestehen, Mitarbeiter zu suchen, zu ändern, neue Mitarbeiter anzulegen und Mitarbeiter löschen zu können. Wird ein Mitarbeiter per Doppelklick oder durch einen Auswahlbutton ausgewählt, werden die Details des Mitarbeiters angezeigt und er kann bearbeitet werden. Von den Mitarbeitern werden folgenden Attribute in der Datenbank gespeichert: - Vorname - Nachname 1.3 Produktverwaltung Im Bereich der Produktverwaltung werden die Produkte und die dazugehörige Produktlinie (Hersteller) mit Hilfe einer Datenbank gespeichert. Es soll die Möglichkeit bestehen, sowohl Produkte als auch Produktlinien zu suchen, zu ändern, neu anzulegen und löschen zu können. Wird ein Produkt per Doppelklick oder durch einen Auswahlbutton ausgewählt, werden die Details des Produkts angezeigt und es kann bearbeitet werden. Für das Anlegen eines Produktes und einer Produktlinie stehen verschiedene Eingabemasken zur Verfügung. Wird eine Produktlinie gelöscht, werden die dazugehörigen Produkte automatisch aus dem System entfernt. Von Produkten werden folgende Attribute in der Datenbank gespeichert: - Bezeichnung - Bestand - Preis - Verweis auf die Produktlinie In der Tabelle Produktlinie wird nur die Bezeichnung gespeichert. Seite 4 von 51 Projektdokumentation Frisc Thomas Dudek 1.4 Farbenverwaltung Im Bereich der Farbenverwaltung werden die Farben mit Hilfe einer Datenbank gespeichert. Es soll die Möglichkeit bestehen, Farben zu suchen, zu ändern, neue Farben anzulegen und Farben löschen zu können. Wird eine Farbe per Doppelklick oder durch einen Auswahlbutton ausgewählt, werden die Details der Farbe angezeigt und sie kann bearbeitet werden. Von den Farben werden folgenden Attribute in der Datenbank gespeichert: - Bezeichnung - Preis - Länge 1.5 Frisurverwaltung Im Bereich der Frisurverwaltung werden die Frisuren mit Hilfe einer Datenbank gespeichert. Es soll die Möglichkeit bestehen, Frisuren zu suchen, zu ändern, neue Frisuren anzulegen und Frisuren löschen zu können. Wird eine Frisur per Doppelklick oder durch einen Auswahlbutton ausgewählt, werden die Details der Frisur angezeigt und sie kann bearbeitet werden. Von den Frisuren werden folgenden Attribute in der Datenbank gespeichert: - Bezeichnung - Preis - Länge - nass oder trocken 1.6 Gutscheinverwaltung Im Bereich der Gutscheinverwaltung werden die Gutscheine mit Hilfe einer Datenbank gespeichert. Es soll die Möglichkeit bestehen, Gutscheine zu suchen, zu ändern, neue Gutscheine anzulegen und Gutscheine löschen zu können. Wird ein Gutschein per Doppelklick oder durch einen Auswahlbutton ausgewählt, werden die Details des Gutscheins angezeigt und er kann bearbeitet werden. Von den Gutscheinen werden folgenden Attribute in der Datenbank gespeichert: - Bezeichnung - Preis 1.7 Rechnungsverwaltung Im Bereich der Rechnungsverwaltung können existierende Rechnungen anhand verschiedener Kriterien gesucht werden (Datum, Mitarbeiter, Kunde). Rechnungen können gelöscht werden. Durch einen Doppelklick werden die Kunden- und Rechnungsdetails angezeigt. Diese Rechnung kann auf Wunsch ausgedruckt werden. 1.8 Rechnungserstellung Im Bereich der Rechnungserstellung kann ein bereits existierender Kunde gesucht und ausgewählt werden. Ist der Kunde nicht vorhanden und wird dieser auch nicht angelegt, muss der „Default“ Kunde ausgewählt werden, damit die Rechnung im System gespeichert werden kann. Zusätzlich kann der Mitarbeiter ausgewählt werden, der den Kunden bedient hat. Beide Angaben sind notwendig, um die Rechnung abspeichern zu können. Die Rechnung wird anhand von einer Auswahl aus einem DataGridView erstellt. Durch Anklicken verschiedener Buttons (Frau/Mann, nass/trocken, Kurzhaar/Langhaar) wird die Anzeige selektiert. Farben, Produkte und Gutscheine müssen extra ausgewählt werden. Wird ein Produkt ausgewählt Seite 5 von 51 Projektdokumentation Frisc Thomas Dudek wird der Bestand verringert. Wird das Produkt von der Rechnung wieder entfernt, erhöht sich der Bestand. Ist ein Produkt nicht mehr vorrätig, erscheint eine Fehlermeldung und das Produkt erscheint nicht auf der Rechnung. Auf Wunsch kann ein Nachlass auf den Gesamtbetrag der Rechnung gewährt werden (5%, 10%, händische Eingabe). Die erstellte Rechnung kann nun gedruckt und gespeichert werden. Von der Rechnung werden folgende Attribute in mehreren Tabellen der Datenbank gespeichert. - Name des Kunden - Name des Mitarbeiters - Rechnungsnummer - Rechnungsdatum - gewährter Nachlass - Rechnungsposten - Stückzahl - Preis Die Rechnungsposten werden in vier Untergruppen gruppiert: 1. Dienstleistung Schnitt/Frisur 2. Dienstleistung Farbe 3. Verkauf von Produkten 4. Verkauf eines Gutscheins 2. Lösungsstrategien/Umsetzung Die Datenbank soll mit Hilfe MySQL erstellt werden. Die grafische Benutzeroberfläche soll mit C# .NET erstellt werden. Als Connector wird der MySQL-Connector 6.0 verwendet. Die Entwicklungsumgebung ist Visual Studio 2005. Lösungsstrategie: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Entwerfen des Relationenschemas für die Datenbank Entwerfen der Datenbank Füllen der Datenbank mit Werten Grundlegende Abfragen erstellen Grafische Oberfläche mit C# erstellt und erste Abfrageversuche durchgeführt Entwerfen der grafischen Benutzeroberfläche Datenstruktur für die verschiedenen Klassen entworfen Erstellen des ersten Prototyps Abändern des Prototyps und Entwickeln der Endversion Testen der Endversion Erstellen der Dokumentation 2.1 Dauer des Projekts Circa 5 Monate bei einer durchschnittlichen täglichen Arbeitszeit von 3 Stunden. Seite 6 von 51 Projektdokumentation Frisc 3. Thomas Dudek Benutzerdokumentation 3.1 Systemvoraussetzungen Die minimalen Systemvoraussetzungen betragen: • 1 GHz Prozessor • 512 MB Arbeitsspeicher (RAM) • 500 MB Festplattenspeicher • Microsoft Betriebssystem (XP/Vista) mit .Net Framework 2.0 oder höher • Internetzugang um gegebenenfalls das .Net Framework herunterladen zu können • Bildschirmauflösung von mindestens 1024x786 Pixel 3.2 Clientprogramme • Xampp • .Net Framework 3.5 3.2.1 Installation von Xampp Installieren Sie Xampp (im Verzeichnis Tools der CD) nach c:\xampp (Standardpfad). 3.2.2 Einbinden der Datenbank Starten Sie Xampp und starten Sie die Dienste Apache und MySql. Öffnen Sie Ihren Internet Browser und geben Sie in der Adresszeile „localhost“ bzw. 127.0.0.1 ein. Seite 7 von 51 Projektdokumentation Frisc Thomas Dudek Klicken Sie auf der linken Seite auf „phpMyAdmin“. Nach dem sich die Seite geöffnet hat, klicken Sie auf den Reiter „Importieren“ und binden dort die Datenbank ein. Klicken Sie auf „Durchsuchen“, und wählen die Datenbank aus (im Verzeichnis Datenbank der CD). Klicken Sie anschließend auf „OK“. Nach erfolgreichem Abschluss dieses Schrittes ist die Datenbank auf dem System gespeichert. 3.2.3 Installation von Frisc Führen Sie die Datei Setup aus und folgen Sie den Installationsanweisungen. Sollten Sie das Microsoft .Net Framework 3.5 nicht installiert haben, wird es aus dem Internet heruntergeladen. Alternativ ist das .Net Framework auf der CD im Verzeichnis Tools zu finden. Seite 8 von 51 Projektdokumentation Frisc Thomas Dudek 3.2.4 Starten des Programms Vergewissern Sie sich, dass im Xampp Control Panel der MySql Dienst gestartet worden ist. Wechseln Sie in den Ordner, in den Sie das Programm installiert haben und führen Sie Datei Frisc.exe aus. Viel Spaß mit der Anwendung! 3.3 Bedienung von Frisc Die komplette Bedienung von Frisc erfolgt über die Menüleiste oder den Unterpunkten der einzelnen Fenster. In der Menüleiste befinden sich die Punkte Datei, Verwaltung, Rechnung und Information. 3.3.1 Menüpunkt Datei Datenbank sichern: Es kann ein Backup der Datenbank erzeugt werden. Datenbank laden: Es kann ein vorhandenes Backup der Datenbank geladen. Neustarten: Die Anwendung wird beendet und neu gestartet. Beenden: Die Anwendung wird beendet. Seite 9 von 51 Projektdokumentation Frisc Thomas Dudek 3.3.2 Menüpunkt Verwaltung Kunde: Kunde -> Suchen: Alle gespeicherten Kunden werden angezeigt. Kunden können gesucht, gelöscht, bearbeitet und angelegt werden. Kunde -> Anlegen: Es öffnet sich ein Fenster in dem ein neuer Kunde angelegt werden kann. Mitarbeiter: Mitarbeiter -> Suchen: Alle gespeicherten Mitarbeiter werden angezeigt. Mitarbeiter können gesucht, gelöscht, bearbeitet und angelegt werden. Mitarbeiter -> Anlegen: Es öffnet sich ein Fenster, in dem ein neuer Mitarbeiter angelegt werden kann. Seite 10 von 51 Projektdokumentation Frisc Thomas Dudek Produkte: Produkte -> Suchen: Alle gespeicherten Produkte und Produktlinien werden angezeigt. Produkte und Produktlinien können gesucht, gelöscht, bearbeitet und angelegt werden. Produkte -> Anlegen -> Produkt/Produktlinie: Es öffnet sich jeweils ein Fenster, in dem ein neues Produkt bzw. eine neue Produktlinie angelegt werden kann. Farben: Farben -> Suchen: Alle gespeicherten Farben werden angezeigt. Farben können gesucht, gelöscht, bearbeitet und angelegt werden. Farben -> Anlegen: Es öffnet sich ein Fenster, in dem eine neue Farbe angelegt werden kann. Seite 11 von 51 Projektdokumentation Frisc Thomas Dudek Frisuren: Frisuren -> Suchen: Alle gespeicherten Frisuren werden angezeigt. Frisuren können gesucht, gelöscht, bearbeitet und angelegt werden. Frisuren -> Anlegen: Es öffnet sich ein Fenster, in dem eine neue Frisur angelegt werden kann. Gutscheine Gutschein -> Suchen: Alle gespeicherten Gutscheine werden angezeigt. Gutscheine können gesucht, gelöscht, bearbeitet und angelegt werden. Gutschein -> Anlegen: Es öffnet sich ein Fenster, in dem eine neuer Gutschein angelegt werden kann. Seite 12 von 51 Projektdokumentation Frisc Thomas Dudek 3.3.3 Menüpunkt Rechnung Erstellen Rechnung -> Erstellen: Eine Rechnung kann per Mausklicks erstellt werden. Die ausgewählten Rechnungsposten werden aufgelistet. Posten können wieder entfernt werden. Auf den Rechnungsbetrag kann ein Rabatt/Nachlass vergeben werden. Die Rechnung kann gedruckt und gespeichert werden. Dazu müssen ein Kunde und ein Mitarbeiter ausgewählt worden sein. Rechnung -> Suchen: Alle gespeicherten Rechnungen werden angezeigt. Rechnungen können gesucht und gelöscht werden. Durch einen Doppelklick erscheinen die Rechnungsdetails. Diese Rechnung kann auf Wunsch ausgedruckt werden. 3.3.4 Menüpunkt ? Es erscheint ein Informationsfenster über Frisc und den Autor des Programms. Seite 13 von 51 Projektdokumentation Frisc Thomas Dudek 3.3.5 Kunde/Mitarbeiter/Farben/Frisuren/Gutschein suchen Alle Datensätze des jeweiligen Bereichs werden im Fenster angezeigt. Es besteht die Möglichkeit per Name bzw. Bezeichnung nach Einträgen zu suchen. Ist ein Datensatz markiert, kann dieser gelöscht oder bearbeitet werden. Per Doppelklick oder den Button „Bearbeiten“ erscheinen die Details des Datensatzes in einem neuen Fenster. Durch den Button „Anlegen“ öffnet sich ein Fenster, in dem ein neuer Datensatz angelegt werden kann. Seite 14 von 51 Projektdokumentation Frisc Thomas Dudek 3.3.6 Kunde anlegen / Kundendetails In dem Fenster Kunde anlegen bzw. Kundendetails werden die Daten des ausgewählten Kunden angezeigt. Änderungen können übernommen werden. Die letzten drei Rechnungen des Kunden werden angezeigt. Diese können ausgedruckt werden. Wenn ein neuer Kunde angelegt werden soll, müssen die Daten des Kunden erfasst werden. Das Speichern erfolgt durch den „Speichern“ Button. Um einen Kunden speichern zu können, wird mindestens der Nachname benötigt. Seite 15 von 51 Projektdokumentation Frisc Thomas Dudek 3.3.7 Mitarbeiter anlegen / Mitarbeiterdetails In dem Fenster Mitarbeiter anlegen bzw. Mitarbeiterdetails werden der Vor- und Nachname des ausgewählten Mitarbeiters angezeigt. Änderungen können übernommen werden. Wenn ein neuer Mitarbeiter angelegt werden soll, muss der Name des Mitarbeiters eingeben werden. Das Speichern erfolgt durch den „Speichern“ Button. 3.3.8 Farbe anlegen / Farbendetails In dem Fenster Farbe anlegen bzw. Farbendetails wird die Bezeichnung, der Preis und die Haarlänge der ausgewählten Farben angezeigt. Änderungen können übernommen werden. Wenn eine neue Farbe angelegt werden soll, müssen die Felder Bezeichnung und Preis ausgefüllt werden. Eine Angabe über die Haarlänge ist nicht zwingend notwendig. Das Speichern erfolgt durch den „Speichern“ Button. Seite 16 von 51 Projektdokumentation Frisc Thomas Dudek 3.3.9 Frisur anlegen / Frisurdetails In dem Fenster Frisur anlegen bzw. Frisurdetails wird die Bezeichnung, der Preis, die Haarlänge, die Art (nass/trocken) und das Geschlecht der ausgewählten Frisur angezeigt. Änderungen können übernommen werden. Wenn eine neue Frisur angelegt werden soll, müssen die Felder Bezeichnung und Preis ausgefüllt werden. Angaben über die Haarlänge, Art (nass/trocken) und das Geschlecht sind nicht zwingend notwendig. Das Speichern erfolgt durch den „Speichern“ Button. 3.3.10 Gutschein anlegen /Gutscheindetails In dem Fenster Gutschein anlegen bzw. Gutscheindetails wird die Bezeichnung und der Preis des ausgewählten Gutscheins angezeigt. Änderungen können übernommen werden. Seite 17 von 51 Projektdokumentation Frisc Thomas Dudek Wenn ein neuer Gutschein angelegt werden soll, müssen die Felder Bezeichnung und Preis ausgefüllt werden. Das Speichern erfolgt durch den „Speichern“ Button. 3.3.11 Produkt suchen Alle Produkte und die dazugehörige Produktlinien der Datenbank werden im Fenster angezeigt. Es besteht die Möglichkeit per Bezeichnung nach Einträgen zu suchen. Durch das Dropdown Fenster kann die Produktlinie vorselektiert werden. Ist ein Produkt markiert, kann sowohl das Produkt als auch die Produktlinie über die entsprechenden Buttons gelöscht oder bearbeitet werden. Wird eine Produktlinie gelöscht, werden sämtliche dazugehörigen Produkte gelöscht. Per Doppelklick werden die Details des Produktes in einem neuen Fenster angezeigt. Durch den Button „Anlegen“ öffnet sich ein Fenster, in dem je nach gedrücktem Button ein Produkt oder eine Produktline angelegt werden kann. Eine Produktlinie muss nicht zwingend Produkte haben, jedoch kann kein Produkt ohne Produktlinie erstellt werden. Seite 18 von 51 Projektdokumentation Frisc Thomas Dudek 3.3.12 Produkt anlegen / Produktdetails In dem Fenster Produkt anlegen bzw. Produktdetails wird die Bezeichnung, die Produktlinie der Preis und der Bestand der ausgewählten Frisur angezeigt. Änderungen können übernommen werden. Wenn ein neues Produkt angelegt werden soll, müssen die Felder Bezeichnung, Produktlinie und Preis ausgefüllt werden. Ist die Produktlinie noch nicht vorhanden, kann Sie über den Button „Anlegen“ angelegt werden (neues Fenster). Das Speichern erfolgt durch den „Speichern“ Button. 3.3.13 Produktlinie anlegen / Produktliniendetails In dem Fenster Produktlinie anlegen bzw. Produktliniendetails wird die Bezeichnung der ausgewählten Produktlinie angezeigt. Änderungen können übernommen werden. Wenn Seite 19 von 51 Projektdokumentation Frisc Thomas Dudek eine neue Produktlinie angelegt werden soll, muss das Feld Bezeichnung ausgefüllt werden. Das Speichern erfolgt durch den „Speichern“ Button. 3.4 Rechnungserstellung Im Bereich der Rechnungserstellung wird die Rechnung per Mausklicks erstellt. Über die sechs verschiedenen Schnittbuttons wird die Schnittauswahl vorselektiert. Farben und Gutscheine erscheinen in der Auswahl nach Drücken des jeweiligen Buttons. Produkte werden nach einer Auswahl über das Dropdownmenü angezeigt. Ein Rechnungsposten wird anhand eines Doppelklicks in die Rechnung übernommen. Steht ein Posten bereits auf der Rechnung, erhöht sich die Stückzahl und der Gesamtpreis. Soll ein Rechnungsposten von der Auswahl wieder entfernt werden, muss der entsprechende Posten markiert werden und auf den Button „Posten löschen“ geklickt werden. Der entsprechende Posten verschwindet bzw. dessen Stückzahl wird um eins verringert. Gegebenenfalls erhöht sich durch diesen Vorgang der Bestand des Produkts. Des Weiteren besteht die Möglichkeit einen Rabatt/Nachlass auf den Gesamtbetrag zu vergeben. Die Vorgabe ist 5% oder 10%. Falls ein individueller Nachlass erwünscht ist, kann dieser über den Button „per Eingabe“ eingegeben werden. Danach öffnet sich ein Fenster, in dem der Nachlass (Euro oder in Prozent) eingegeben werden kann. Die Deselektierung erfolgt durch ein weiteres Drücken des Buttons. Auf Wunsch kann die Rechnung ausgedruckt werden. Dies erfolgt über den Button „Drucken“ bzw. „Druckvorschau“. Wurde die Rechnung komplett erstellt, kann sie über den Button „Speichern“ gespeichert werden. Dadurch schließt sich die Form. Für die Funktionen Speichern und Drucken muss sowohl ein Kunde als auch ein Mitarbeiter ausgewählt worden sein. Hierfür öffnen sich jeweils ein „Browserfenster“ zum Auswählen des Kunden bzw. Mitarbeiters. Seite 20 von 51 Projektdokumentation Frisc Thomas Dudek 3.4.1 Nachlass per Eingabe In dem Fenster Rabatt kann der Rabatt individuell vergeben werden. Über das Dropdownmenü muss die Art (Euro oder Prozent) ausgewählt werden. Durch den Button „Übernehmen“ wird der Nachlass mit dem Gesamtbetrag verrechnet. Seite 21 von 51 Projektdokumentation Frisc Thomas Dudek 3.4.2 Rechnung suchen Im Bereich „Rechnung suchen“ werden alle Rechnungen, sortiert nach Ausstellungsdatum, angezeigt. Der Benutzer kann gezielt nach Rechnungen suchen. Die Rechnungen können anhand des Datums, des Kunden und des Mitarbeiters (auch kombiniert) selektiert werden. Durch einen Doppelklick erscheinen die Kundendetails und die ausgewählte Rechnung. Diese kann auf Wunsch ausgedruckt werden. 4. Entwicklerdokumentation 4.1 Entwicklungsumgebung, Programmiersprache und Clientprogramme 1. 2. 3. 4. 5. Entwicklungsumgebung: Visual Studio 2005 Programmiersprache: C# Framework: .NET Datenbank: MySQL MySQL-Server: Xampp 4.2 Datenbank Als Datenbank wird eine MySQL Datenbank verwendet. Die Datenbank besteht aus insgesamt 12 Tabellen. Seite 22 von 51 Projektdokumentation Frisc Thomas Dudek 4.2.1 Tabellen der Datenbank Tabelle Kunde: In der Tabelle Kunde werden die Daten des Kunden erfasst. Tabelle Mitarbeiter: In der Tabelle Mitarbeiter wird der Vor- und Nachname des Mitarbeiters erfasst. Tabelle Rechnung: In der Tabelle Rechnung werden die Kunden- und Mitarbeiter-ID, der Gesamtbetrag, der Rabatt und das Datum der Rechnungserstellung erfasst. Tabelle Frisur: In der Tabelle Frisur werden die Attribute der Frisuren erfasst. Tabelle Rechnung_Frisur: In der Tabelle Rechnung_Frisur werden die Rechnungs- und Frisur ID, die Bezeichnung, der Gesamtbetrag und die Stückzahl erfasst. Sie dient als Verbindungstabelle zwischen Frisur und Rechnung. Tabelle Gutschein: In der Tabelle Gutschein werden die Bezeichnung und der Betrag erfasst. Tabelle Rechnung_Gutschein: In der Tabelle Rechnung_Gutschein werden die Rechnungs- und Gutscheins-ID, die Bezeichnung, der Gesamtbetrag und die Stückzahl erfasst. Sie dient als Verbindungstabelle zwischen Gutschein und Rechnung. Tabelle Farbe: In der Tabelle Farbe werden die Attribute der Farben erfasst. Tabelle Rechnung_Farbe: In der Tabelle Rechnung_Farbe werden die Rechungs- und Gutschein ID, die Bezeichnung, der Gesamtbetrag und die Stückzahl erfasst. Sie dient als Verbindungstabelle zwischen Farbe und Rechnung. Tabelle Produktlinie: In der Tabelle Produktlinie wird die Bezeichnung erfasst. Tabelle Produkt: In der Tabelle Produkt wird die Produktlinien ID und die Attribute des Produkts erfasst. Tabelle Rechnung_Produkt: In der Tabelle Rechnung_Produkt werden die Rechnungs- und Produkt ID, die Bezeichnung, der Gesamtbetrag und die Stückzahl erfasst. Sie dient als Verbindungstabelle zwischen Produkt und Rechnung. Seite 23 von 51 Projektdokumentation Frisc 4.2.2 Relationenschema 4.2.3 Quellcode der Datenbank Erstellen der Datenbank create database if not exists frisc; use frisc; Tabelle Frisur create table Frisur( Frisur_ID int Auto_increment, Bezeichnung char(50), Laenge enum('kurz','lang', ''), Preis double, Nass_Trocken enum('nass','trocken', ''), Geschlecht enum('m','w','k', ''), Primary Key(Frisur_ID))engine=InnoDB; Tabelle Kunde create table Kunde( Kunden_ID int Auto_increment, Vorname char(50), Nachname char(50), Seite 24 von 51 Thomas Dudek Projektdokumentation Frisc Thomas Dudek Strasse char(50), Hausnummer char(10), Postleitzahl char(5), Ort char(50), Geburtstag Date, Geschlecht enum('m','w','k'), Telefon char(20), Bemerkung char(250), Primary key (Kunden_ID))engine=InnoDB; Anlegen des Default-Kunden insert into Kunde(Kunden_ID,Vorname,Nachname) Values (NULL,"DEFAULT","DEFAULT“); Tabelle Mitarbeiter create table Mitarbeiter( Mitarbeiter_ID int Auto_increment, Vorname char(50), Nachname char(50), Primary Key(Mitarbeiter_ID))engine=InnoDB; Tabelle Produktlinie create table Produktlinie( Produktlinie_ID int Auto_increment, Bezeichnung char(50), Primary Key (Produktlinie_ID))engine=InnoDB; Tabelle Produkt create table Produkt( Produkt_ID int Auto_increment, Bezeichnung char(50), Preis double, Bestand int, Produktlinie_ID int, Primary Key(Produkt_ID), Foreign Key(Produktlinie_ID) References Produktlinie(Produktlinie_ID) on delete cascade)engine=InnoDB; Tabelle Farbe create table Farbe( Farbe_ID int Auto_increment, Bezeichnung char(50), Preis double, Laenge enum('kurz','lang', ''), Primary Key(Farbe_ID))engine=InnoDB; Seite 25 von 51 Projektdokumentation Frisc Thomas Dudek Tabelle Gutschein create table Gutschein( Gutschein_ID int Auto_increment, Bezeichnung char(50), Preis double, Primary Key(Gutschein_ID))engine=InnoDB; Tabelle Rechnung create table Rechnung( Rechnung_ID int Auto_increment, Gesamtbetrag double, Rabatt char(30), Datum Date, Kunden_ID int, Mitarbeiter_ID int, Primary Key(Rechnung_ID), Foreign Key(Mitarbeiter_ID) References Mitarbeiter(Mitarbeiter_ID) on delete set NULL)engine=Innodb; Tabelle Rechnungsposten_Gutschein create table Rechnungsposten_Gutschein( Rechnungsposten_ID int Auto_increment, Beschreibung char(100), Stueck int, Betrag double, Gutschein_ID int, Rechnung_ID int, Primary Key(Rechnungsposten_ID), Foreign Key(Gutschein_ID) References Gutschein(Gutschein_ID) on delete set NULL, Foreign Key(Rechnung_ID) References Rechnung(Rechnung_ID)on delete cascade)engine=InnoDB; Tabelle Rechnungsposten_Produkt create table Rechnungsposten_Produkt( Rechnungsposten_ID int Auto_increment, Beschreibung char(100), Stueck int, Betrag double, Produkt_ID int, Rechnung_ID int, Primary Key(Rechnungsposten_ID), Foreign Key(Produkt_ID) References Produkt(Produkt_ID) on delete set NULL, Foreign Key(Rechnung_ID) References Rechnung(Rechnung_ID)on delete cascade)engine=InnoDB; Seite 26 von 51 Projektdokumentation Frisc Thomas Dudek Tabelle Rechnungsposten_Farbe create table Rechnungsposten_Farbe( Rechnungsposten_ID int Auto_increment, Beschreibung char(100), Stueck int, Betrag double, Farbe_ID int, Rechnung_ID int, Primary Key(Rechnungsposten_ID), Foreign Key(Rechnung_ID) References Rechnung(Rechnung_ID)on delete cascade, Foreign Key(Farbe_ID) References Farbe(Farbe_ID)on delete set NULL)engine=InnoDB;; Tabelle Rechnungsposten_Frisur create table Rechnungsposten_Frisur( Rechnungsposten_ID int Auto_increment, Beschreibung char(100), Stueck int, Betrag double, Frisur_ID int, Rechnung_ID int, Primary Key(Rechnungsposten_ID), Foreign Key(Frisur_ID) References Frisur(Frisur_ID)on delete set NULL, Foreign Key(Rechnung_ID) References Rechnung(Rechnung_ID)on delete cascade)engine=InnoDB; 4.3 Form Übersicht 4.3.1 Form Browser Variablen: private UserControl current; Variable zum Zuweisen des übergegebenen UserControl. Methoden: public Browser() public void loadelement(UserControl Form) Konstruktor der Klasse Browser – Initialisierung der Variablen. Lädt das übergebene UserControl ins Panel. Event-Handler Methoden: private void panelbrowser_ControlRemoved(object sender, ControlEventArgs e) Schließt die Form, wenn ein UserControl entfernt wird. 4.3.2 Form Browser_klein Variablen: private UserControl current; Methoden: Seite 27 von 51 Variable zum Zuweisen des übergegebenen UserControll. Projektdokumentation Frisc Thomas Dudek public Browser_klein() public void loadelement(UserControl Form) Konstruktor der Klasse Browser_klein – Initialisierung der Variablen. Lädt das übergebene UserControl in das Panel. Event-Handler Methoden: private void panelbrowserklein_ControlRemoved(object sender, ControlEventArgs e) Schließt die Form, wenn ein UserControl entfernt wird. 4.3.3 Form Main Variablen: private UserControl current; private bool freigabe; static static static static static static static private private private private private private private BindingSource Kunden; BindingSource Farben; BindingSource Gutscheine; BindingSource Frisuren; BindingSource Produkte; BindingSource Mitarbeiter; DataTable Produktlinien; Variable zum Zuweisen des übergegebenen UserControl. Variable zur Überprüfung, ob die Rechnung_erstellen Form geschlossen worden ist. Variablen zur Speicherung der Abfragen der Datenbank. Methoden: public Main() static public void loadFarben() static public void loadGutscheine() static public void loadFrisuren() static public void loadKunden() static public void loadProdukte() static public void loadMitarbeiter() static public void loadProduktlinien() static static static static static static public public public public public public Seite 28 von 51 BindingSource BindingSource BindingSource BindingSource BindingSource BindingSource getFarben() getGutscheine() getFrisuren() getKunden() getProdukte() getMitarbeiter() Konstruktor der Klasse Main – Initialisierung der Variablen. Ruft alle Farben der Datenbank ab und weist der BindingSource „Farben“ den DataTable zu. Ruft alle Gutscheine der Datenbank ab und weist der BindingSource „Gutscheine“ den DataTable zu. Ruft alle Frisuren der Datenbank ab und weist der BindingSource „Frisuren“ den DataTable zu. Ruft alle Kunden der Datenbank ab und weist der BindingSource „Kunden“ den DataTable zu. Ruft alle Produkte der Datenbank ab und weist der BindingSource „Produkte“ den DataTable zu. Ruft alle Mitarbeiter der Datenbank ab und weist der BindingSource „Mitarbeiter“ den DataTable zu. Ruft alle Produktlinien der Datenbank ab und weist der Variablen „Produktlinie“ den DataTable zu. Liefert die jeweilige BindingSource bzw. DataTable zurück. Projektdokumentation Frisc static public DataTable getProduktlinien() public static DataGridView configureGridViewStyle(DataGridView dgv) Thomas Dudek Initialisiert ein DataGridView. Event-Handler Methoden: private void beendenToolStripMenuItem_Click(object sender, EventArgs e) private void erstellenToolStripMenuItem_Click(object sender, EventArgs e) private void suchenToolStripMenuItem_Click(object sender, EventArgs e) private void anlegenToolStripMenuItem_Click(object sender, EventArgs e) private void suchenToolStripMenuItem4_Click(object sender, EventArgs e) private void produktToolStripMenuItem2_Click(object sender, EventArgs e) private void produktlinieToolStripMenuItem1_Click(object sender, EventArgs e) private void suchenToolStripMenuItem1_Click(object sender, EventArgs e) private void anlegenToolStripMenuItem1_Click(object sender, EventArgs e) private void suchenToolStripMenuItem2_Click(object sender, EventArgs e) private void toolStripMenuItem1_Click(object sender, EventArgs e) private void suchenToolStripMenuItem3_Click(object sender, EventArgs e) private void anlegenToolStripMenuItem2_Click(object sender, EventArgs e) private void suchenToolStripMenuItem5_Click(object sender, EventArgs e) private void anlegenToolStripMenuItem4_Click(object sender, EventArgs e) private void suchenToolStripMenuItem6_Click(object sender, EventArgs e) private void anlegenToolStripMenuItem5_Click(object sender, EventArgs e) private void dBSpeichernToolStripMenuItem_Click(object sender, EventArgs e) private void dBLadenToolStripMenuItem_Click(object sender, EventArgs e) Seite 29 von 51 Beendet die Anwendung. Lädt das UserControl Rechnung_erstellen in das Panel. Lädt das UserControl in Kunde_suchen in das Panel. Lädt das UserControl Kunde_details in die Form Browser. Lädt das UserControl Produkt_suchen in das Panel. Lädt das UserControl Produkt_details in die Form Browser_klein. Lädt das UserControl Produktlinie_anlegen in die Form Browser_klein. Lädt das UserControl Mitarbeiter_suchen in das Panel. Lädt das UserControl Mitarbeiter_details in die Form Browser_klein. Lädt das UserControl Rechnung_suchen in das Panel. Zeigt die Form Info an. Lädt das UserControl Farben_suchen in das Panel. Lädt das UserControl Farbe_details in die Form Browser_klein. Lädt das UserControl Frisur_suchen in das Panel. Lädt das UserControl Frisur_details in die Form Browser_klein. Lädt das UserControl Gutschein_suchen in das Panel. Lädt das UserControl Gutschein_details in die Form Browser_klein. Erstellt einen mysqldump der Datenbank. Liest einen mysqldump ein. Projektdokumentation Frisc private void Form1_Load(object sender, EventArgs e) private void neustartenToolStripMenuItem_Click(object sender, EventArgs e) private void dump_erstellt(object sender, EventArgs e) private void Datenbank_eingelesen(object sender, EventArgs e) private void mainpanel_ControlRemoved(object sender, ControlEventArgs e) Thomas Dudek Lädt beim Starten des Programms die Startform. Schließt und öffnet die Anwendung neu. Wird ausgeführt, wenn der SQL-Dump erstellt worden ist. Wird ausgeführt, wenn der SQL-Dump eingelesen worden ist. Alle loadFunktionen werden erneut aufgerufen. Lädt die Startform, wenn „freigabe“ auf true gesetzt ist. 4.4 UserControl Übersicht 4.4.1 UserControl Farbe_details Variablen: private Farbe actual_Farbe; private bool Längenänderung; private bool freigabe; private bool validierung; Objekt der Klasse Farbe. Variable, um Änderungen zu erkennen. Variable, um die Änderungen zu ermöglichen. Variable, um fehlerhafte Eingabe abzufangen. Methoden: public Farbe_details() public void set_Farbe(Farbe tempF) private void update_Farbe() private void Farbespeichern() Konstruktor der Klasse Farben_details – Initialisierung der Variablen. Weist dem Objekt actual_Farbe ein übergebenes Objekt zu und füllt die Elemente des UserControls mit Werten. Überprüft die Eingaben und weist den Variablen der Klasse Werte zu. Speichert die neu angelegte Farbe bzw. übernimmt die Änderungen einer existierenden Farbe. Event-Handler Methoden: private void btn_abbrechen_Click(object sender, EventArgs e) private void btn_speichern_Click(object sender, EventArgs e) private void rb_lang_CheckedChanged(object sender, EventArgs e) private void rb_kurz_CheckedChanged(object sender, EventArgs e) private void rb_l_ka_CheckedChanged(object sender, EventArgs e) private void tb_Bezeichnung_KeyDown(object sender, KeyEventArgs e) Seite 30 von 51 Schließt die Form. Ruft die Funktion Farbespeichern() auf. Wird der RadioButton „lang“ aktiviert, wird die Variable „Längenänderung“ auf true gesetzt. Wird der RadioButton „kurz“ aktiviert, wird die Variable „Längenänderung“ auf true gesetzt. Wird der RadioButton „keine Angabe“ aktiviert, wird die Variable „Längenänderung“ auf true gesetzt. Nach Eingabe von Enter, wird die Funktion Farbespeichern() aufgerufen. Projektdokumentation Frisc Thomas Dudek 4.4.2 UserControl Farben_suchen Variablen: private Farbe tempF; private Browser_klein F_bearbeiten; Objekt der Klasse Farbe. Objekt der Klasse Browser_klein. Methoden: public Farben_suchen() private void refreshDataGridView() private void suchen() private void Farbe_auswaehlen() private void Buttons(bool status) private void bearbeiten() Konstruktor der Klasse Farben_suchen – Initialisierung der Variablen und Konfigurieren des DataGridView. Aktualisiert und überprüft den Inhalt des DataGridView. Filtert den Inhalt des DataGridView anhand des Inhalts der Suchbox. Die Attribute der Farbe werden in dem Objekt tempF gespeichert. Aktiviert bzw. deaktiviert anhand des Übergabeparameters die Buttons. Öffnet die Form Browser_ klein und füllt die Elemente des UserControls mit Werten. Event-Handler Methoden: private void btn_suchen_Click(object sender, EventArgs e) private void tb_suchen_KeyDown(object sender, KeyEventArgs e) private void tb_suchen_TextChanged(object sender, EventArgs e) private void btn_alle_Click(object sender, EventArgs e) private void btn_löschen_Click(object sender, EventArgs e) private void btn_bearbeiten_Click(object sender, EventArgs e) private void dataGridView_Farben_CellDoubleClick(object sender, DataGridViewCellEventArgs e) private void btn_anlegen_Click(object sender, EventArgs e) Ruft die Funktion suchen() auf. Nach Eingabe von Enter wird die Funktion suchen() aufgerufen. Ruft die Funktion suchen() auf. Entfernt den Filter, so dass alle Inhalte angezeigt werden und löscht den Inhalt der Suchbox. Löscht die markierte Farbe aus der Datenbank. Ruft die Funktion bearbeiten() auf. Ruft die Funktion bearbeiten() auf. Öffnet die Form Browser_klein und ermöglicht das Anlegen eines neuen Datenbankeintrags. 4.4.3 UserControl Frisur_details Variablen: private private private private private Frisur actual_Frisur; bool Längenänderung; bool NassTrockenänderung; bool Geschlechtsänderung; bool freigabe; private bool validierung; Seite 31 von 51 Objekt der Klasse Frisur. Variable, um Änderungen zu erkennen. Variable, um die Änderungen zu ermöglichen. Variable, um fehlerhafte Eingabe abzufangen. Projektdokumentation Frisc Thomas Dudek Methoden: public Frisur_details() public void set_Frisur(Frisur tempF) private void update_Frisur() private void Frisurspeichern() Konstruktor der Klasse Frisure_details – Initialisierung der Variablen. Weist dem Objekt actual_Frisur ein übergebenes Objekt zu und füllt die Elemente des UserControls mit Werten. Überprüft die Eingaben und weist den Variablen der Klasse Werte zu. Speichert die neu angelegte Frisur bzw. übernimmt die Änderungen einer existierenden Frisur. Event-Handler Methoden: private void btn_abbrechen_Click(object sender, EventArgs e) private void btn_speichern_Click(object sender, EventArgs e) private void rb_lang_CheckedChanged(object sender, EventArgs e) private void rb_kurz_CheckedChanged(object sender, EventArgs e) private void rb_l_ka_CheckedChanged(object sender, EventArgs e) private void rb_nass_CheckedChanged(object sender, EventArgs e) private void radioButton1_CheckedChanged(object sender, EventArgs e) private void rb_nt_ka_CheckedChanged(object sender, EventArgs e) private void rb_Frau_CheckedChanged(object sender, EventArgs e) private void rb_Mann_CheckedChanged(object sender, EventArgs e) private void rb_Kind_CheckedChanged(object sender, EventArgs e) private void rb_g_ka_CheckedChanged(object sender, EventArgs e) private void tb_Bezeichnung_KeyDown(object sender, KeyEventArgs e) Seite 32 von 51 Schließt die Form. Ruft die Funktion Frisurspeichern() auf. Wird der RadioButton „lang“ aktiviert, wird die Variable „Längenänderung“ auf true gesetzt. Wird der RadioButton „kurz“ aktiviert, wird die Variable „Längenänderung“ auf true gesetzt. Wird der RadioButton „keine Angabe“ aktiviert, wird die Variable „Längenänderung“ auf true gesetzt. Wird der RadioButton „nass“ aktiviert, wird die Variable „NassTrockenänderung“ auf true gesetzt. Wird der RadioButton „trocken“ aktiviert, wird die Variable „NassTrockenänderung“ auf true gesetzt. Wird der RadioButton „keine Angabe“ aktiviert, wird die Variable „NassTrockenänderung“ auf true gesetzt. Wird der RadioButton „Frau“ aktiviert, wird die Variable „Geschlechtsänderung“ auf true gesetzt. Wird der RadioButton „Mann“ aktiviert, wird die Variable „Geschlechtsänderung“ auf true gesetzt. Wird der RadioButton „Kind“ aktiviert, wird die Variable „Geschlechtsänderung“ auf true gesetzt. Wird der RadioButton keine Angabe aktiviert, wird die Variable „Geschlechtsänderung“ auf true gesetzt. Nach Eingabe von Enter, wird die Funktion Frisurspeichern() aufgerufen. Projektdokumentation Frisc Thomas Dudek 4.4.4 UserControl Frisur_suchen Variablen: private Frisur tempF; private Browser_klein F_bearbeiten; Objekt der Klasse Farbe. Objekt der Klasse Browser_klein. Methoden: public Farben_suchen() private void refreshDataGridView() private void suchen() private void Frisur_auswaehlen() private void Buttons(bool status) private void bearbeiten() Konstruktor der Klasse Farben_suchen – Initialisierung der Variablen und Konfigurieren des DataGridView. Aktualisiert und überprüft den Inhalt des DataGridView. Filtert den Inhalt des DataGridView anhand des Inhalts der Suchbox. Die Attribute der Frisur werden in dem Objekt tempF gespeichert. Aktiviert bzw. deaktiviert anhand des Übergabeparameters die Buttons. Öffnet die Form Browser_ klein und füllt die Elemente des UserControls mit Werten. Event-Handler Methoden: private void btn_suchen_Click(object sender, EventArgs e) private void tb_suchen_KeyDown(object sender, KeyEventArgs e) private void tb_suchen_TextChanged(object sender, EventArgs e) private void btn_alle_Click(object sender, EventArgs e) private void btn_löschen_Click(object sender, EventArgs e) private void btn_bearbeiten_Click(object sender, EventArgs e) private void dataGridView_Farben_CellDoubleClick(object sender, DataGridViewCellEventArgs e) private void btn_anlegen_Click(object sender, EventArgs e) Ruft die Funktion suchen() auf. Nach Eingabe von Enter wird die Funktion suchen() aufgerufen. Ruft die Funktion suchen() auf. Entfernt den Filter, so dass alle Inhalte angezeigt werden und löscht den Inhalt der Suchbox. Löscht die markierte Farbe aus der Datenbank. Ruft die Funktion bearbeiten() auf. Ruft die Funktion bearbeiten() auf. Öffnet die Form Browser_klein und ermöglicht das Anlegen eines neuen Datenbankeintrags. 4.4.5 UserControl GridView_letzte_Rechnungen Variablen: private private private private private Kunde tempK; double Gesamtbetrag; string Mitarbeiter; string Datum; string Rabatt; Objekt der Klasse Kunde. Variablen zum Speichern des: - Gesamtbetrages - Name des Mitarbeiters - Datum - Rabatt Methoden: public GridView_letzte_Rechnungen() Seite 33 von 51 Konstruktor der Klasse GridView_letzte_Rechnungen – Projektdokumentation Frisc public GridView_letzte_Rechnungen(DataTable daten, string M, string D, double Betrag, string Rabatt, Kunde Kunde) Thomas Dudek Initialisierung der Variablen und Konfigurieren des DataGridView. Überladener Konstruktor. Weist anhand der Übergabeparameter den Variablen die Werte zu und füllt das UserControl mit Werten. Event-Handler Methoden: private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e) private void btn_drucken_Click(object sender, EventArgs e) Ruft die statische Funktion print der Klasse Rechnung_drucken auf. Ruft die Funktion print() der Klasse printDocument1 auf. 4.4.6 UserControl Gutschein_Details Variablen: private Gutschein actual_Gutschein; private bool validierung; Objekt der Klasse Gutschein. Variable um fehlerhafte Eingabe abzufangen. Methoden: public Gutschein_details() public void set_Gutschein(Gutschein tempG) private void update_Gutschein() private void Gutscheinspeichern() Konstruktor der Klasse Gutschein_details – Initialisierung der Variablen. Weist dem Objekt actual_Gutschein ein übergebenes Objekt zu und füllt die Elemente des UserControls mit Werten. Überprüft die Eingaben und weist den Variablen der Klasse Werte zu. Speichert den neu angelegten Gutschein bzw. übernimmt die Änderungen eines existierenden Gutscheins. Event-Handler Methoden: private void btn_abbrechen_Click(object sender, EventArgs e) private void btn_speichern_Click(object sender, EventArgs e) private void Gutschein_details_KeyDown(object sender, KeyEventArgs e) Schließt die Form. Ruft die Funktion Gutscheinspeichern() auf. Nach Eingabe von Enter wird die Funktion Gutscheinspeichern() aufgerufen. 4.4.7 UserControl Gutschein_suchen Variablen: private Gutschein tempG; private Browser_klein G_bearbeiten; Objekt der Klasse Gutschein. Objekt der Klasse Browser_klein. Methoden: public Gutschein_suchen() private void refreshDataGridView() private void suchen() Seite 34 von 51 Konstruktor der Klasse Gutschein_suchen – Initialisierung der Variablen und Konfigurieren des DataGridView. Aktualisiert und überprüft den Inhalt des DataGridView. Filtert den Inhalt des DataGridView anhand des Inhalts der Suchbox. Projektdokumentation Frisc private void Gutschein_auswaehlen() private void Buttons(bool status) private void bearbeiten() Thomas Dudek Die Attribute des Gutscheins werden in dem Objekt tempG gespeichert. Aktiviert bzw. deaktiviert anhand des Übergabeparameters die Buttons. Öffnet die Form Browser_ klein und füllt die Elemente des UserControls mit den Werten. Event-Handler Methoden: private void btn_suchen_Click(object sender, EventArgs e) private void tb_suchen_KeyDown(object sender, KeyEventArgs e) private void btn_alle_Click(object sender, EventArgs e) private void tb_suchen_TextChanged(object sender, EventArgs e) private void btn_löschen_Click(object sender, EventArgs e) private void btn_bearbeiten_Click(object sender, EventArgs e) private void dataGridView_Gutschein_CellDoubleClick(object sender, DataGridViewCellEventArgs e) private void btn_anlegen_Click(object sender, EventArgs e) Ruft die Funktion suchen() auf. Nach Eingabe von Enter wird die Funktion suchen() aufgerufen. Entfernt den Filter, so dass alle Inhalte angezeigt werden und löscht den Inhalt der Suchbox. Ruft die Funktion suchen() auf. Löscht den markierten Gutschein aus der Datenbank. Ruft die Funktion bearbeiten() auf. Ruft die Funktion bearbeiten() auf. Öffnet die Form Browser_klein und ermöglicht das Anlegen eines neuen Datenbankeintrags. 4.4.8 UserControl Kunde_auswahl Variablen: private Kunde tempK; private Browser_klein G_bearbeiten; Objekt der Klasse Kunde. Objekt der Klasse Browser_klein. Methoden: public Kunde_auswahl() private void refreshDataGridView() private void suchen() private void Kunden_auswaehlen() private void Buttons(bool status) Konstruktor der Klasse Kunde_auswahl – Initialisierung der Variablen und Konfigurieren des DataGridView. Aktualisiert und überprüft den Inhalt des DataGridView. Filtert den Inhalt des DataGridView anhand des Inhalts der Suchbox. Die Attribute des Kunden werden in dem Objekt tempK gespeichert. Aktiviert bzw. deaktiviert anhand des Übergabeparameters die Buttons. Event-Handler Methoden: private void btn_suchen_Click(object sender, EventArgs e) private void tb_suchen_KeyDown(object sender, KeyEventArgs e) private void tb_suchen_TextChanged(object sender, EventArgs e) Seite 35 von 51 Ruft die Funktion suchen() auf. Nach Eingabe von Enter wird die Funktion suchen() aufgerufen. Ruft die Funktion suchen() auf. Projektdokumentation Frisc private void btn_alle_Click(object sender, EventArgs e) private void dataGridView_Kunden_CellContentDoubleClick(object sender, DataGridViewCellEventArgs e) private void btn_auswählen_Click(object sender, EventArgs e) private void bt_schliessen_Click_1(object sender, EventArgs e) Thomas Dudek Entfernt den Filter, so dass alle Inhalte angezeigt werden und löscht den Inhalt der Suchbox. Ruft die Funktion Kunde_auswaehlen() auf. Ruft die Funktion Kunde_auswaehlen() auf. Schließt die Form. 4.4.9 UserControl Kunde_suchen Variablen: private Kunde tempK; private Browser K_bearbeiten; Objekt der Klasse Kunde. Objekt der Klasse Browser. Methoden: public Kunde_suchen() private void refreshDataGridView() private void suchen() private void Kunden_auswaehlen() private void Buttons(bool status) private void bearbeiten() Konstruktor der Klasse Kunde_suchen – Initialisierung der Variablen und Konfigurieren des DataGridView. Aktualisiert und überprüft den Inhalt des DataGridView. Filtert den Inhalt des DataGridView anhand des Inhalts der Suchbox. Die Attribute des Kunden werden in dem Objekt tempK gespeichert. Aktiviert bzw. deaktiviert anhand des Übergabeparameters die Buttons. Öffnet die Form Browser und füllt die Elemente des UserControls mit den Werten. Event-Handler Methoden: private void btn_suchen_Click(object sender, EventArgs e) private void tb_suchen_KeyDown(object sender, KeyEventArgs e) private void btn_alle_Click(object sender, EventArgs e) private void tb_suchen_TextChanged(object sender, EventArgs e) private void btn_löschen_Click(object sender, EventArgs e) private void btn_bearbeiten_Click(object sender, EventArgs e) private void dataGridView_Kunden_CellDoubleClick(object sender, DataGridViewCellEventArgs e) private void btn_anlegen_Click(object sender, EventArgs e) Seite 36 von 51 Ruft die Funktion suchen() auf. Nach Eingabe von Enter wird die Funktion suchen() aufgerufen. Entfernt den Filter, so dass alle Inhalte angezeigt werden und löscht den Inhalt der Suchbox. Ruft die Funktion suchen() auf. Löscht den markierten Kunden aus der Datenbank. Ruft die Funktion bearbeiten() auf. Ruft die Funktion bearbeiten() auf. Öffnet die Form Browser und ermöglicht das Anlegen eines neuen Datenbankeintrags. Projektdokumentation Frisc Thomas Dudek 4.4.10 UserControl Kunden_details private Kunde actual_Kunde; private bool modified; private bool freigabe; private bool validierung; private private private private private private private private string fehler; string M_Name; string Datum; string Gesamtbetrag; string Rabatt; int counter; DataTable letzte_Rechnungen; DataTable buffer; Objekt der Klasse Kunde. Variable, um Änderungen zu erkennen. Variable, um die Änderungen zu ermöglichen. Variable, um fehlerhafte Eingabe abzufangen. String für die Fehlerausgabe. Variablen der Rechnung. Zählervariable Objekte der Klasse DataTable für die Anzeige der letzten drei Rechnungen. Methoden: public Kunde_details() public void set_Kunde(Kunde tempKunde) private void update_Kunde() public void rechnungladen() public void rechnungladen(int ID,string M,string D,string Gesamtbetrag,string Rabatt) Konstruktor der Klasse Kunde_details – Initialisierung der Variablen. Weist dem Objekt actual_Kunde ein übergebenes Objekt zu und füllt die Elemente des UserControls mit Werten. Überprüft die Eingaben und weist den Variablen der Klasse Werte zu. Lädt die letzten drei Rechnungen und erstellt die TabPages. Zeigt Detailierte Informationen zu einer gesuchten Rechnung an. Event-Handler Methoden: private void btn_abbrechen_Click(object sender, EventArgs e) private void btn_speichern_Click(object sender, EventArgs e) private void rb_k_CheckedChanged(object sender, EventArgs e) private void rb_w_CheckedChanged(object sender, EventArgs e) private void rb_m_CheckedChanged(object sender, EventArgs e) Schließt die Form. Speichert den neu angelegten Kunden bzw. übernimmt die Änderungen eines existierenden Kunden. Wird der RadioButton „Kind“ aktiviert, wird die Variable „modified“ auf true gesetzt. Wird der RadioButton „weiblich“ aktiviert, wird die Variable „modified“ auf true gesetzt. Wird der RadioButton „männlich“ aktiviert, wird die Variable „modified“ auf true gesetzt. 4.4.11 UserControl Mitarbeiter_auswahl Variablen: private Mitarbeiter tempM; Objekt der Klasse Mitarbeiter. Methoden: public Mitarbeiter_auswahl() Seite 37 von 51 Konstruktor der Klasse Mitarbeiter_auswahl – Initialisierung der Variablen und Konfigurieren des DataGridView. Projektdokumentation Frisc private void refreshDataGridView() private void suchen() private void Mitarbeiter_auswaehlen() private void Buttons(bool status) Thomas Dudek Aktualisiert und überprüft den Inhalt des DataGridView. Filtert den Inhalt des DataGridView anhand des Inhalts der Suchbox. Die Attribute des Mitarbeiters werden in dem Objekt tempM gespeichert. Aktiviert bzw. deaktiviert anhand des Übergabeparameters die Buttons. Event-Handler Methoden: private void btn_suchen_Click(object sender, EventArgs e) private void tb_suchen_KeyDown(object sender, KeyEventArgs e) private void tb_suchen_TextChanged(object sender, EventArgs e) private void btn_alle_Click(object sender, EventArgs e) private void dataGridView_Mitarbeiter_CellDoubleClick(object sender, DataGridViewCellEventArgs e) private void btn_auswählen_Click(object sender, EventArgs e) private void bt_schliessen_Click(object sender, EventArgs e) Ruft die Funktion suchen() auf. Nach Eingabe von Enter wird die Funktion suchen() aufgerufen. Ruft die Funktion suchen() auf. Entfernt den Filter, so dass alle Inhalte angezeigt werden und löscht den Inhalt der Suchbox. Ruft die Funktion Mitarbeiter_auswaehlen() auf. Ruft die Funktion Mitarbeiter_auswaehlen() auf. Schließt die Form. 4.4.12 UserControl Mitarbeiter_details private Mitarbeiter actual_Mitarbeiter; private bool validierung; private string fehler; Objekt der Klasse Mitarbeiter. Variable, um fehlerhafte Eingabe abzufangen. String für die Fehlerausgabe. Methoden: public Mitarbeiter_details() public void set_Mitarbeiter(Mitarbeiter tempMitarbeiter) public void update_Mitarbeiter() private void Mitarbeiterspeichern() Konstruktor der Klasse Mitarbeiter_detials – Initialisierung der Variablen. Weist dem Objekt actual_Mitarbeiter ein übergebenes Objekt zu und füllt die Elemente des UserControls mit Werten. Überprüft die Eingaben und weist den Variablen der Klasse Werte zu. Speichert den neu angelegten Mitarbeiter bzw. übernimmt die Änderungen eines existierenden Mitarbeiters. Event-Handler Methoden: private void btn_abbrechen_Click(object sender, EventArgs e) private void btn_speichern_Click(object sender, EventArgs e) private void tb_Vorname_KeyDown(object sender, KeyEventArgs e) Seite 38 von 51 Schließt die Form. Ruft die Funktion Mitarbeiterspeichern() auf. Ruft die Funktion Mitarbeiterspeichern() auf. Projektdokumentation Frisc Thomas Dudek 4.4.13 UserControl Mitarbeiter_suchen Variablen: private Mitarbeiter tempM; private Browser_klein M_bearbeiten; Objekt der Klasse Mitarbeiter. Objekt der Klasse Browser_klein. Methoden: public Mitarbeiter_suchen() private void refreshDataGridView() private void suchen() private void Mitarbeiter_auswaehlen() private void Buttons(bool status) private void bearbeiten() Konstruktor der Klasse Mitarbeiter_suchen – Initialisierung der Variablen und Konfigurieren des DataGridView. Aktualisiert und überprüft den Inhalt des DataGridView. Filtert den Inhalt des DataGridView anhand des Inhalts der Suchbox. Die Attribute des Mitarbeiters werden in dem Objekt tempM gespeichert. Aktiviert bzw. deaktiviert anhand des Übergabeparameters die Buttons. Öffnet die Form Browser_klein und füllt die Elemente des UserControls mit den Werten. Event-Handler Methoden: private void btn_suchen_Click(object sender, EventArgs e) private void tb_suchen_KeyDown(object sender, KeyEventArgs e) private void btn_alle_Click(object sender, EventArgs e) private void tb_suchen_TextChanged(object sender, EventArgs e) private void btn_löschen_Click(object sender, EventArgs e) private void btn_bearbeiten_Click(object sender, EventArgs e) private void dataGridView_Mitarbeiter_CellDoubleClick(object sender, DataGridViewCellEventArgs e) private void btn_anlegen_Click(object sender, EventArgs e) Ruft die Funktion suchen() auf. Nach Eingabe von Enter wird die Funktion suchen() aufgerufen. Entfernt den Filter, so dass alle Inhalte angezeigt werden und löscht den Inhalt der Suchbox. Ruft die Funktion suchen() auf. Löscht den markierten Mitarbeiter aus der Datenbank. Ruft die Funktion bearbeiten() auf. Ruft die Funktion bearbeiten() auf. Öffnet die Form Browser_klein und ermöglicht das Anlegen eines neuen Datenbankeintrags. 4.4.14 UserControl Produkt_details Variablen: private private private private Produkt actual_produkt; bool Bestandsänderung; bool Produktlinienänderung; bool freigabe; private bool validierung; private string fehler; Methoden: Seite 39 von 51 Objekt der Klasse Produkt. Variable, um Änderungen zu erkennen. Variable, um die Änderungen zu ermöglichen. Variable, um fehlerhafte Eingabe abzufangen. String für die Fehlerausgabe. Projektdokumentation Frisc public Produkt_details() public void set_Produkt(Produkt tempProdukt) private void update_Produkt() private void Produktspeichern() private void InitialisiereComboBox() Thomas Dudek Konstruktor der Klasse Produkt_details – Initialisierung der Variablen. Weist dem Objekt actual_Produkt ein übergebenes Objekt zu und füllt die Elemente des UserControls mit Werten. Überprüft die Eingaben und weist den Variablen der Klasse Werte zu. Speichert das neu angelegte Produkt bzw. übernimmt die Änderungen eines existierenden Produkts. Füllt die ComboBox mit den Produktlinien der Datenbank. Event-Handler Methoden: private void btn_abbrechen_Click(object sender, EventArgs e) private void btn_speichern_Click(object sender, EventArgs e) rivate void tb_Bezeichnung_KeyDown(object sender, KeyEventArgs e) private void nud_Bestand_ValueChanged(object sender, EventArgs e) private void cb_Produktlinie_SelectedIndexChanged(object sender, EventArgs e) private void button1_Click(object sender, EventArgs e) Schließt die Form. Ruft die Funktion Produktspeichern() auf. Nach Eingabe von Enter wird die Funktion Produktspeichern() aufgerufen. Wird der Bestand verändert, wird die Variable Bestandsänderung auf true gesetzt. Wird die Produktlinie verändert, wird die Variable Produktlinienänderung auf true gesetzt. Öffnet die Form Browser_klein und ermöglicht das Anlegen eines neuen Datenbankeintrags. 4.4.15 UserControl Produkt_suchen Variablen: private Produkt tempP; private Browser_klein P_bearbeiten; Objekt der Klasse Produkt. Objekt der Klasse Browser_klein. Methoden: public Produkt_suchen() private void refreshDataGridView() private void suchen(string name) private void Produktliniencheck(string Produktlinie, string name) private void InitialisiereComboBox() private void Produkt_auswahl() private void Buttons(bool status) private void bearbeiten() Seite 40 von 51 Konstruktor der Klasse Produkt_suchen – Initialisierung der Variablen und Konfigurieren des DataGridView. Aktualisiert und überprüft den Inhalt des DataGridView. Ruft die Funktion Produktliniencheck() auf und überprüft den Inhalt des DataGridView. Filtert den Inhalt des DataGridView anhand der übergebenen Variablen. Füllt die ComboBox mit den Produktlinien der Datenbank. Die Attribute des Produktes werden in dem Objekt tempP gespeichert. Aktiviert bzw. deaktiviert anhand des Übergabeparameters die Buttons. Öffnet die Form Browser_klein und füllt Projektdokumentation Frisc Thomas Dudek die Elemente des UserControls mit den Werten. Event-Handler Methoden: private void btn_suchen_Click(object sender, EventArgs e) private void tb_suchbox_KeyDown(object sender, KeyEventArgs e) private void btn_alle_Click(object sender, EventArgs e) private void tb_suchbox_TextChanged(object sender, EventArgs e) private void cb_produktlinie_SelectedIndexChanged(object sender, EventArgs e) private void btn_löschen_Click_1(object sender, EventArgs e) rivate void btn_l_löschen_Click(object sender, EventArgs e) private void btn_bearbeiten_Click_1(object sender, EventArgs e) private void btn_l_bearbeiten_Click(object sender, EventArgs e) private void dataGridView_Produktverwaltung_CellDoubleClick(ob ject sender, DataGridViewCellEventArgs e) private void btn_Produkt_anlegen_Click(object sender, EventArgs e) private void btn_linie_anlegen_Click(object sender, EventArgs e) private void dataGridView_Produktverwaltung_SelectionChanged(o bject sender, EventArgs e) Ruft die Funktion suchen() auf und übergibt den Inhalt der Suchbox. Nach Eingabe von Enter wird die Funktion suchen() aufgerufen und der Inhalt der Suchbox übergeben. Entfernt den Filter, so dass alle Inhalte angezeigt werden, setzt den Index der ComboBox auf die erste Position und löscht den Inhalt der Suchbox. Ruft die Funktion suchen() auf und übergibt den Inhalt der Suchbox. Ruft die Funktion suchen() auf und übergibt den Inhalt der Suchbox. Löscht das markierte Produkt aus der Datenbank. (Produkt) Löscht die markierte Produktlinie aus der Datenbank. (Produktlinie) Ruft die Funktion bearbeiten() auf. (Produkt) Öffnet die Form Browser_klein und füllt die Elemente des UserControls mit den Werten. (Produktlinie) Ruft die Funktion bearbeiten() auf. (Produkt) Öffnet die Form Browser_klein und ermöglicht das Anlegen eines neuen Datenbankeintrags. (Produkt) Öffnet die Form Browser_klein und ermöglicht das Anlegen eines neuen Datenbankeintrags. (Produktlinie) Überprüft den Inhalt des DataGridView. 4.4.16 UserControl Produktlinie_anlegen Variablen: private Produktlinie actual_produktlinie; private bool bearbeiten; Objekt der Klasse Produktlinie. Variable, um Änderungen zu erkennen. Methoden: public Produktlinie_anlegen() public void load_Produktlinie(Produkt tempP)) Seite 41 von 51 Konstruktor der Klasse Produtklinie_anlegen – Initialisierung der Variablen. Weist dem Objekt actual_Produktlinie anhand eines übergebenen Produktes Werte zu und füllt die Elemente des UserControls mit Werten. Projektdokumentation Frisc private void Produktliniespeichern() Thomas Dudek Speichert die neu angelegte Produktlinie bzw. übernimmt die Änderungen einer existierenden Produktlinie. Event-Handler Methoden: private void btn_abbrechen_Click(object sender, EventArgs e) private void btn_speichern_Click(object sender, EventArgs e) private €void tb_Bezeichnung_KeyDown(object sender, KeyEventArgs e) Schließt die Form. Ruft die Funktion Produktliniespeichern() auf. Nach Eingabe von Enter wird die Funktion Produktliniespeichern() aufgerufen. 4.4.17 UserControl Rabatteingabe Variablen: Rechnungen actual_Rechnung; private bool validierung; private double aktuellerPreis; Objekt der Klasse Rechnungen. Variable, um fehlerhafte Eingabe abzufangen. Variable, um den aktuellen Preis zu speichern. Methoden: public Rabatteingabe() public void setRechnung(Rechnungen tempR,double P) public double getPreis() Konstruktor der Klasse Rabatteingabe – Initialisierung der Variablen. Weist dem Objekt actual_Rechnung ein übergebenes Objekt und der Variable „aktuellerPreis“ ein Wert zu. Gibt den aktuellen Preis zurück. Event-Handler Methoden: private void btn_abbrechen_Click(object sender, EventArgs e) private void btn_speichern_Click(object sender, EventArgs e) Schließt die Form. Speichert den eingegebenen Nachlass und schließt die Form. 4.4.18 UserControl Rechnung_erstellen Variablen: private Browser Browserfenster; static private Kunde tempK; static private Mitarbeiter tempM; private Frisur Frisuren; private Produkt Produkte; private Farbe Farben; private Gutschein Gutscheine; private Rechnungen Rechnung; private bool Geschlecht_select_m; private bool Geschlecht_select_w; private bool Waschen_select; private bool Trocken_select; private bool Kurz_select; private bool Lang_select; private bool Rabatt5; private bool Rabatt10; public static bool Rabatt_per_hand = false; private string Tabelle; private string var1, var2, var3; Seite 42 von 51 Objekte der Klassen Browser, Kunde, Mitarbeiter, Frisure, Produkt, Farbe, Gutschein und Rechnungen. Variablen, um Änderungen zu erkennen. Variable, um die Herkunft zu ermitteln. Variablen, um die Frisuren zu selektieren. Projektdokumentation Frisc private int counter; private int stueck; private int Current_ID; Thomas Dudek Hilfsvariablen. Methoden: public Rechnung_erstellen() public static void set_kunde(Kunde k) public static void set_mitarbeiter(Mitarbeiter m) private void refreshDataGridView() private void create_dataGridView() private void Buttons(bool status) Private void checkselect() private void deselektierung() prviate void InitialisiereComboBox() private bool checkAuswahl() private void berechne_Gesamtbetrag(double p) private void summenLabelBeschriften() Konstruktor der Klasse Rechnung_erstellen – Initialisierung der Variablen und Konfigurieren des DataGridView. Weist dem Objekt tempK ein übergebenes Objekt zu. Weist dem Objekt tempM ein übergebenes Objekt zu. Aktualisiert den Inhalt des DataGridView. Erstellt das DataGridView zum Anzeigen der ausgewählten Schnitte/Produkte etc. Aktiviert bzw. deaktiviert anhand des Übergabeparameters die Buttons. Überprüft welche Buttons der Frisurauswahl aktiv sind und filtert die Anzeige der Frisuren. Deselektiert die Frisurauswahl. Füllt die ComboBox mit den Produktlinien der Datenbank. Überprüft, ob ein Kunde und Mitarbeiter ausgewählt worden ist. Berechnet den Gesamtbetrag der Rechnung. Zeigt den Gesamtbetrag unter Berücksichtigung eines eventuellen Nachlasses an. Event-Handler Methoden: private void button1_Click(object sender, EventArgs e) private void btn_M_auswahl_Click(object sender, EventArgs e) private void btn_Frauen_Click(object sender, EventArgs e) private void btn_Männer_Click(object sender, EventArgs e) private void btn_Waschen_Click(object sender, EventArgs e) private void btn_Trocken_Click(object sender, EventArgs e) private void btn_Kurzhaar_Click(object sender, EventArgs e) private void btn_Langhaar_Click(object sender, EventArgs e) Seite 43 von 51 Öffnet die Form Browser und ermöglicht die Auswahl eines Kunden. Öffnet die Form Browser und ermöglicht die Auswahl eines Mitarbeiters. Selektiert bzw. deselektiert den Button „Frauen“ und generiert den Filterstring für die Anzeige der Frisuren. Selektiert bzw. deselektiert den Button „Männer“ und generiert den Filterstring für die Anzeige der Frisuren. Selektiert bzw. deselektiert den Button „nass“ und generiert den Filterstring für die Anzeige der Frisuren. Selektiert bzw. deselektiert den Button „trocken“ und generiert den Filterstring für die Anzeige der Frisuren. Selektiert bzw. deselektiert den Button „Kurzhaar“ und generiert den Filterstring für die Anzeige der Frisuren. Selektiert bzw. deselektiert den Button „Langhaar“ und generiert den Filterstring Projektdokumentation Frisc Thomas Dudek für die Anzeige der Frisuren. private void cb_Produkte_SelectedIndexChanged(object sender, EventArgs e) private void btn_Farben_Click(object sender, EventArgs e) private void btn_specials_Click(object sender, EventArgs e) private void dataGridView_auswahl_CellContentDoubleClick(object sender, DataGridViewCellEventArgs e) private void btn_speichern_Click(object sender, EventArgs e) private void btn_löschen_Click(object sender, EventArgs e) private void btn_5Prozent_Click(object sender, EventArgs e) Zeigt in Abhängigkeit der ausgewählten Produktlinie die dazugehörigen Produkte im Auswahlfenster an und überprüft, ob das Produkt schon im Ergebnisfenster aufgelistet ist und korrigiert gegebenenfalls den Bestand. Zeigt alle Farben im Auswahlfenster an. Zeigt alle Gutscheine im Auswahlfenster an. Übernimmt das ausgewählte Produkt in die Ergebnisauswahl. Zusätzlich erfolgt eine Überprüfung, ob das Produkt schon in der Ergebnisauswahl aufgelistet ist und erhöht gegebenenfalls den Bestand. Ist der Bestand 0, kann das Produkt nicht mehr ausgewählt werden. Es erscheint eine Fehlermeldung. Die erstellte Rechnung wird gespeichert. Der markierte Eintrag der Ergebnisauswahl wird gelöscht bzw. der Bestand um 1 verringert. Der Gesamtbetrag wird angepasst. Der Gesamtbetrag wird um 5 % verringert. private void btn_10Prozent_Click(object sender, EventArgs e) Der Gesamtbetrag wird um 10 % verringert. private void btn_haendisch_Click(object sender, EventArgs e) Öffnet die Form Browser_klein und ermöglicht einen individuellen Preisnachlass auf den Gesamtbetrag zu vergeben. Öffnet die Druckvorschau. private void btn_vorschau_Click(object sender, EventArgs e) private void btn_drucken_Click(object sender, EventArgs e) Öffnet den Druckerauswahldialog und ruft die Funktion Rechnung_print.print() auf. private void Rechnung_Print_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e) Ruft die statische Funktion Rechnung_drucken.print() auf und druckt die Rechnung anhand der Übergabeparameter 4.4.19 UserControl Rechnung_suchen Variablen: private BindingSource Rechnungen; Seite 44 von 51 Variable zum Speichern der Abfrage aus der Datenbank. Projektdokumentation Frisc private Kunde tempK; private Rechnungen tempR; Thomas Dudek Objekt der Klasse Kunde. Objekt der Klasse Rechnungen. Methoden: public Rechnung_suchen() private void refreshDataGridView() private void suchen() private void rechnung_auswaehlen() private void Kunden_auswaehlen() private void Buttons(bool status) private DataTable checkDataTable(DataTable Datensatz) Konstruktor der Klasse Rechnung_suchen – Initialisierung der Variablen und Konfigurieren des DataGridView. Aktualisiert und überprüft den Inhalt des DataGridView. Filtert den Inhalt des DataGridView anhand des Inhalts der Suchboxen und des Datums. Die Attribute der Rechnung werden in dem Objekt tempR gespeichert. Anhand der Kunden_ID wird der Kunde aus der Datenbank geladen. Aktiviert bzw. deaktiviert anhand des Übergabeparameters die Buttons. Generiert den String „Kunde bzw. Mitarbeiter nicht mehr im System“, falls dieser gelöscht worden ist. Event-Handler Methoden: private void btn_suchen_Click(object sender, EventArgs e) private void dateTimePicker_CloseUp(object sender, EventArgs e) private void dateTimePicker_ValueChanged(object sender, EventArgs e) private void btn_löschen_Click(object sender, EventArgs e) private void btn_alle_Click(object sender, EventArgs e) private void dataGridView_Rechnungen_CellDoubleClick(object sender, DataGridViewCellEventArgs e) Ruft die Funktion suchen() auf. Ruft die Funktion suchen() auf. Ruft die Funktion suchen() auf bzw. entfernt den Filter. Löscht die markierte Rechnung aus der Datenbank. Entfernt den Filter und löscht den Inhalt der Suchboxen. Öffnet die Form Browser und zeigt den Kunden mit der ausgewählten Rechnung an. 4.4.20 UserControl Startform Methoden: public Startform() Konstruktor der Klasse Startform. Bemerkung: Dieses UserControl enthält lediglich die Grafik für den Programmstart. 4.5 Klassenübersicht 4.5.1 Klasse dbHandler Methoden: private static MySqlConnection getconnection() public static DataTable getData(string Sql_Statement) Seite 45 von 51 Erstellt den ConnectionString. Liefert anhand einer SQL-Abfrage ein DataTable mit dem Abfrageergebnis zurück. Projektdokumentation Frisc public static void sendCommand(string Sql_Statement) public static double getValue(string Sql_Statement) Thomas Dudek Methode zum Ausführen von Delete-, Update- und Insert-Befehlen. Liefert anhand einer SQL-Abfrage einen Zahlenwert zurück. 4.5.2 Klasse Farbe Variablen: private string Bezeichnung, Länge; private double Preis; private int Farbe_ID; Variablen, um die Attriubte der Farbe zu speichern. Variable, um den Preis zu speichern. Variable, um die ID der Farbe zu speichern. Methoden: public Farbe() public void load_Farbe(DataGridViewRow farbenRow) public void deleteFarbe(int id) public void saveFarbe() public bool checkFarbe() public public public public public public public string getBezeichnung() double getPreis() string getLänge() int getID() bool setBezeichnung(string bez) bool setPreis(string P) void setLänge(string art) Konstruktor der Klasse Farbe – Initialisierung der Variable. Anhand eines übergebenen DataGridViewRow werden die Variablen mit Werten belegt. Anhand einer übergebenen ID wird die Farbe gelöscht. Methode zum Speichern bzw. Updaten einer Farbe. Überprüfung, ob die Farbe im System bereits vorhanden ist. Get-Methoden der Klasse. Set-Methoden der Klasse inklusive Überprüfung der Eingaben. 4.5.3 Klasse Frisur Variablen: private string Bezeichnung, Länge, Nass_Trocken, Geschlecht; private double Preis; private int Frisur_ID; Variablen, um die Attribute der Frisur zu speichern. Variable, um den Preis zu speichern. Variable, um die ID der Frisur zu speichern. Methoden: public Frisur() public void load_Frisur(DataGridViewRow frisurRow) public void deleteFrisur(int id) public void saveFrisur() public bool checkFrisur() public string getBezeichnung() public double getPreis() Seite 46 von 51 Initialisierung der Variablen. Anhand eines übergebenen DataGridViewRow werden die Variablen mit Werten belegt. Anhand einer übergebenen ID wird die Frisur gelöscht. Methode zum Speichern bzw. Updaten einer Frisur. Überprüfung, ob die Frisur im System bereits vorhanden ist. Get-Methoden der Klasse. Projektdokumentation Frisc public public public public public public public public public string getLänge() string getNassTrocken() int getFrisurenID() string getGeschlecht() bool setBezeichnung(string Bez) bool setPreis(string P) void setLänge(string länge) void setGeschlecht(string geschlecht) void setArt(string art) Thomas Dudek Set-Methoden der Klasse inklusive Überprüfung der Eingaben. 4.5.4 Klasse Gutschein Variablen: private string Bezeichnung; private double Preis; private int Gutschein_ID; Variable, um die Bezeichnung des Gutscheins zu speichern Variable, um den Preis zu speichern. Variable, um die ID des Gutscheins zu speichern. Methoden: public Gutschein() public void load_Gutschein(DataGridViewRow GutscheinRow) public void deleteGutschein(int id) public void saveGutschein() public bool checkGutschein() public public public public public string getBezeichnung() double getPreis() int getID() bool setBezeichnung(string Bez) bool setPreis(string P) Konstruktor der Klasse Gutschein – Initialisierung der Variable. Anhand eines übergebenen DataGridViewRow werden die Variablen mit Werten belegt. Anhand einer übergebenen ID wird der Gutschein gelöscht. Methode zum Speichern bzw. Updaten eines Gutscheins. Überprüfung, ob der Gutschein im System bereits vorhanden ist. Get-Methoden der Klasse. Set-Methoden der Klasse inklusive Überprüfung der Eingaben. 4.5.5 Klasse Kunde Variablen: private string Vorname, Nachname, Strasse, Hausnummer, Postleitzahl, Ort, Geburtstag, Geschlecht, Telefon, Bemerkung; private int Kunden_ID; Variablen, um die Attribute des Kunden zu speichern. Variable, um die ID des Kunden zu speichern. Methoden: public Kunde() public void load_Kunde(DataGridViewRow kundenRow) public void load_Kunde(int ID) Seite 47 von 51 Konstruktor der Klasse Kunde – Initialisierung der Variablen. Anhand eines übergebenen DataGridViewRow werden die Variablen mit Werten belegt. Anhand einer übergebenen ID wird ein Kunde aus der Datenbank abgerufen. Die Variablen werden mit dessen Attributen Projektdokumentation Frisc public void saveKunde() public void deleteKunde(int id) public bool checkKunde() public DataTable getRechnung() public DataTable getRechnung(int Rechnungs_ID) public public public public public public public public public public public public public public public public public public public public public public public int getKunden_ID() string getVorname() string getNachname() string getStrasse() string getHausnummer() string getPostleitzahl() string getOrt() string getGeburtstag() string getGeschlecht() string getTelefon() string getBemerkung() string getAdresse() bool validierung50(string text) bool setVorname(string vorname) bool setNachname(string nachname) bool setStrasse(string strasse) bool setHausnummer(string hausnummer) bool setPostleitzahl(string postleitzahl) bool setOrt(string ort) bool setGeburtstag(string geburtstag) bool setGeschlecht(string geschlecht) bool setTelefon(string telefon) bool setBemerkung(string bemerkung) Thomas Dudek belegt. Methode zum Speichern bzw. Updaten eines Kunden. Anhand einer übergebenen ID wird der Kunde gelöscht. Überprüfung, ob der Kunde im System bereits vorhanden ist. Methode die die letzten drei Rechnungen eines Kunden zurückgibt. Gibt die Rechnungsdetails einer Rechnung anhand der Kunden- und Rechnungs_ID zurück. Get-Methoden der Klasse. Set-Methoden der Klasse inklusive Überprüfung der Eingaben. 4.5.6 Klasse Mitarbeiter Variablen: private string Vorname, Nachname; private int Mitarbeiter_ID; Variablen, um die Attribute des Mitarbeiters zu speichern. Variable, um die ID des Mitarbeiters zu speichern. Methoden: public Mitarbeiter() public void load_Mitarbeiter(DataGridViewRow mitarbeiterRow) public void deleteMitarbeiter(int id) public void saveMitarbeiter() public bool checkMitarbeiter() Seite 48 von 51 Konstruktor der Klasse Mitarbeiter – Initialisierung der Variablen. Anhand eines übergebenen DataGridViewRow werden die Variablen mit Werten belegt. Anhand einer übergebenen ID wird der Mitarbeiter gelöscht. Methode zum Speichern bzw. Updaten eines Mitarbeiters. Überprüfung, ob der Mitarbeiter im System bereits vorhanden ist. Projektdokumentation Frisc public public public public public int getMitarbeiter_ID() string getVorname() string getNachname() bool setVorname(string vorname) bool setNachname(string nachname) Thomas Dudek Get-Methoden der Klasse. Set-Methoden der Klasse inklusive Überprüfung der Eingaben. 4.5.7 Klasse Produkt Variablen: private DataTable Buffer; private int Produkt_ID,Produktlinien_ID; private decimal Bestand; private double Preis; private string Bezeichnung, Produktlinie; Variable, um eine Datenbankabfrage zu speichern. Variablen, um die ID des Produktes und der Produktlinie zu speichern. Variable, um den Bestand zu speichern. Variable, um den Preis zu speichern. Variablen, um die Bezeichnung eines Produktes und die Produktlinie zu speichern. Methoden: public Produkt() public void load_Produkt(DataGridViewRow produktRow) public DataTable getProduktForRechnung() public void deleteProdukt(int id)) public DataTable getProdukte(string linie) public void getProduktlinie_ID() public void saveProdukt() public bool checkProdukt() public public public public public public public public public public string getBezeichnung() string getProduktlinie() double getPreis() decimal getBestand() int getID() int getProduktlinieID() bool setBezeichnung(string Bez) bool setPreis(string P) void setBestand(decimal Best) bool setProduktlinie(string Linie) Konstruktor der Klasse Produkt – Initialisierung der Variablen. Anhand eines übergebenen DataGridViewRow werden die Variablen mit Werten belegt. Liefert alle Produkte aus der Datenbank zurück. Anhand einer übergebenen ID wird das Produkt gelöscht. Liefert anhand der Produktlinie alle Produkte der Datenbank zurück. Liefert anhand der Produktlinie die dazugehörige ID zurück. Methode zum Speichern bzw. Updaten eines Produktes. Überprüfung, ob das Produkt im System bereits vorhanden ist. Get-Methoden der Klasse. Set-Methoden der Klasse inklusive Überprüfung der Eingaben. 4.5.8 Klasse Produktlinie Variablen: private string Bezeichnung; private int Produktlinie_ID; Seite 49 von 51 Variable, um die Bezeichnung zu speichern. Variable, um die ID zu speichern. Projektdokumentation Frisc Thomas Dudek Methoden: public Produktlinie() public void deleteProduktlinie(int linienID) public void saveProduktlinie() public string getBezeichnung() public void setProduktlinien_ID public void setBezeichnung(string Bez) Konstruktor der Klasse Produktlinie – Initialisierung der Variablen. Anhand einer übergebenen ID wird Produktlinie gelöscht. Methode zum Speichern bzw. Updaten einer Produktlinie. Get-Methode der Klasse. Set-Methoden der Klasse. 4.5.9 Klasse Rechnung_drucken Methoden: public static void print(System.Drawing.Printing.PrintPageEventArgs e,DataGridView Daten,string Mitarbeiter,Kunde tempK,double Preis,string Date,string Rabatt) Anhand der übergebenen Parameter wird das Druckformular erstellt. 4.5.10 Klasse Rechnungen Variablen: private double Preis; private double PreisOhneNachlass; private double Rabatt; private int Rechnung_ID; private DateTime SystemDateTime; private private private private private private string string string string string string Datum; Kunde; Mitarbeiter; Prozentsatz; Rabattbetrag; Art; Variablen, um den aktuellen Preis, den Preis ohne Nachlass und den Rabatt zu speichern. Variable, um die ID der Rechnung zu speichern. Variable, um die Systemzeit speichern zu können. Variablen für die Rechnungserstellung. Methoden: public Rechnungen() public void load_Rechnung(DataGridViewRow rechnungRow) public DataTable getRechnung() public void deleteRechnung(int id) public public public public public public public public public double getPreis() string getDatum() int getRechnung_ID() string getMitarbeiter() string getKunde() string getRabattbetrag() double getPreisOhneNachlass() string getArt() string getProzentsatz() Seite 50 von 51 Konstruktor der Klasse Rechnungen – Initialisierung der Variablen. Anhand eines übergebenen DataGridViewRow werden die Variablen mit Werten belegt. Liefert alle Rechnungen aus der Datenbank zurück. Anhand einer übergebenen ID wird die Rechnung gelöscht. Get-Methoden der Klasse. Projektdokumentation Frisc public void setPreis() public void setPreisneu(double p) public bool setRabatt(string R) public bool setArt(string A) public void setRabatt() public double setRabattforLabel(double wert) public void saveRechnung(DataGridView Posten,Mitarbeiter tempM,Kunde tempK) 5. Thomas Dudek Set-Methoden der Klasse Speichert anhand der Übergabeparameter die Rechnung. Quellen Buch: Windows Forms mit Visual C++ ISBN 978-3-935042-88-8 Visual C#.NET Grundlagen und Profiwissen ISBN 3-446-22021-6 Internet: Seite 51 von 51 www.dev.mysql.com http://openbook.galileocomputing.de/visual_csharp/ http://msdn.microsoft.com