Dokumentation IAV08/10 RDF-Nürnberg Dokumentation zur Projektarbeit Software für den Spendenverein „Wasser braucht Leben“ zum Verwalten der Vereinsdaten Fächerübergreifende Projektarbeit in den Fächern „Objektorientierte und strukturierte Programmierung“ und „Datenbanken“ an der Rudolf Diesel Fachschule Nürnberg Autorin: Version: Marion Heilig 1.0.0 Marion Heilig 29.03.10 Seite 1 von 55 Dokumentation IAV08/10 RDF-Nürnberg Inhaltsverzeichnis 1Projektplan........................................................................................4 1.1 Projektbeschreibung...................................................................... 4 1.2 Soll-Konzept................................................................................. 4 1.2.1 Datenbank.............................................................................4 1.2.2 Programm .............................................................................4 1.3 Dauer des Projekts........................................................................ 5 2 Benutzerdokumentation...................................................................5 2.1 Systemvoraussetzungen................................................................. 5 2.2 Installation................................................................................... 5 2.2.1 Installation von Xampp............................................................5 2.2.2 Einbinden der Datenbank ........................................................5 2.2.3 Installation der Software „Leben braucht Wasser“........................7 3 Betriebsanleitung.............................................................................8 3.1 Menüleiste ................................................................................... 8 3.1.1 Aktuelle Termine.....................................................................8 3.1.2 Hilfe......................................................................................8 3.1.3 Exit.......................................................................................8 3.2 Daten.......................................................................................... 8 3.2.1 Kontakte................................................................................9 3.2.2 Vereinsdaten....................................................................... .10 3.2.3 Bankverbindung................................................................... .11 3.2.4 Import und Export................................................................ .11 3.2.4.1 Import ...........................................................................11 3.2.4.2 Export............................................................................13 3.3 Verwaltung.................................................................................14 3.3.1 3.3.1 Beiträge.................................................................... .14 3.3.2 3.3.2 Reisekosten............................................................... .15 3.3.3 3.3.3 Veranstaltung............................................................ .16 3.3.4 3.3.4 Jubiläum ................................................................... .16 3.3.5 3.3.5 Forderungen .............................................................. .17 3.3.6 3.3.6 DTAUS....................................................................... .18 3.3.7 3.3.7 Vorlage...................................................................... .18 3.3.8 3.3.8 Spende...................................................................... .19 3.3.9 3.3.9 Archiv....................................................................... .20 4 Entwicklerdokumentation...............................................................20 4.1 Datenbank..................................................................................20 4.1.1 Installation MySQL-Server und XAMPP..................................... .21 4.1.2 Relationenschema................................................................ .21 4.1.3 Datenbank anlegen.............................................................. .22 4.2 Software ...................................................................................27 4.2.1 Übersicht der Windows Forms, ihre Funktionen und Eventhandler..27 4.2.1.1 Form „Main“....................................................................27 4.2.1.2 Daten ............................................................................29 4.2.1.2.1 UserControl „Kontakt“.................................................29 4.2.1.2.2 Form „Staffelung wählen“............................................32 4.2.1.2.3 UserControl „Vereinsdaten“..........................................32 4.2.1.2.4 UserControl „Bankverbindung“.....................................33 4.2.1.2.5 UserControl „Im/Export“.............................................34 Marion Heilig 29.03.10 Seite 2 von 55 Dokumentation IAV08/10 RDF-Nürnberg 4.2.1.2.5.1 Import .............................................................34 4.2.1.2.5.2 Export ..............................................................34 4.2.2 Verwaltung.......................................................................... .35 4.2.2.1 UserControl „Beiträge“......................................................35 4.2.2.2 UserControl „Reisekosten“.................................................36 4.2.2.3 UserControl „Veranstaltung“...............................................38 4.2.2.4 UserControl „Jubiläum“.....................................................39 4.2.2.5 UserControl „Forderungen“................................................40 4.2.2.6 UserControl „DTAUS“........................................................41 4.2.2.7 UserControl „Vorlage“.......................................................42 4.2.2.8 UserControl „Spende“.......................................................42 4.2.2.9 UserControl „Archiv“.........................................................44 4.2.2.10 Form „Archivanzeigen“....................................................45 4.2.2.11 Form „Mitglied-Spendersuche“..........................................45 4.2.2.12 Form „Mitgliedsuchen“....................................................46 4.2.2.13 From „Vorlageauswählen“................................................47 4.2.2.14 Form „Termine“..............................................................48 4.2.2.15 Form „Vorlageauswaehlen................................................48 4.2.2.16 Form „DruckZuwendungsbescheidMitglied“.........................49 4.2.2.17 Form „DruckZuwendungsbescheidSpende“.........................50 4.2.2.18 Form „Liste_Forderung“...................................................50 4.2.2.19 Form „Liste_Jubilaeum“...................................................51 4.2.2.20 Form „Liste_Mitglied“......................................................51 4.2.2.21 Form „Liste_Reisekosten“................................................51 4.2.2.22 Form „Liste_Spender“.....................................................52 4.2.2.23 Form „Liste_Veranstaltung“..............................................52 4.2.2.24 Form „Liste_Vorlage“......................................................53 4.2.2.25 Klasse „DBHandler“........................................................54 4.2.2.26 Klasse „pruefe“..............................................................54 4.2.2.27 Klasse „Schreiben“.........................................................54 4.2.2.28 Klasse „Personenreport“..................................................55 4.2.2.29 CrystalReportviewer........................................................55 5 Quellen...........................................................................................56 Marion Heilig 29.03.10 Seite 3 von 55 Dokumentation IAV08/10 RDF-Nürnberg 1 Projektplan 1.1 Projektbeschreibung Es soll dem Vereinsverwalter die Möglichkeit gegeben werden, den Verein leichter verwalten zu können. Kontakte der aktiven Spender (Mitglieder) und der einmaligen Spender sollen in einer Datenbank gespeichert werden. 1.2 Soll-Konzept 1.2.1 Datenbank • Relationenschema für die Datenbank entwickeln • Datenbank erstellen • MySql-Connector 6.0 soll verwendet werden 1.2.2 Programm • Grafische Benutzeroberfläche soll mit C# .NET entwickelt werden • Entwicklungsumgebung: Visual Studio 2005 Die Software soll folgende Funktionen enthalten: Im Bereich der Daten: • • • • • • • • Erfassen neuer Spender/Mitglieder Ändern der Spender- und Mitgliederdaten Löschen der Spender- und Mitgliederdaten Zuweisen verschiedener Beitragsklassen der Mitglieder Erfassen der Vereinsdaten Erfassen der Bankverbindung des Vereins Im- und Exportieren der Daten in ein anderes Programm z.B. Excel Drucken der Spender- und Mitgliederliste Im Bereich der Verwaltung: • • • Erstellen von Briefvorlagen Verschiedene Beitragsstaffelungen erstellen Drucken verschiedener Listen Marion Heilig 29.03.10 Seite 4 von 55 Dokumentation • • • • • • • • • IAV08/10 RDF-Nürnberg DTA (Datenträgeraustausch) – Dateien erstellen Spenden erfassen Zuwendungsbescheide Drucken Jubiläen der Spender/Mitglieder anzeigen Gesendete Schreiben aufrufen Reisekosten des Mitglieds erfassen Veranstaltungen und die dortigen Einnahmen und Ausgaben erfassen Anzeigen von offenen und gezahlten Forderungen Übersicht der erstellten Schreiben 1.3 Dauer des Projekts Circa 5 Monate bei einer durchschnittlichen täglichen Arbeitszeit von 4 Stunden. 2 Benutzerdokumentation 2.1 Systemvoraussetzungen Die Minimalen Systemvoraussetzungen für die Software betragen: • • • • 2 GHz Prozessor 1 GB Arbeitsspeicher (RAM) 505 KB freier Festplattenspeicher Betriebssystem: Microsoft Windows XP/Vista mit .Net Framework 2.0 oder höher 2.2 Installation 2.2.1 Installation von Xampp Installieren Sie Xampp (im Verzeichnis Tools der CD) nach C:\xampp. 2.2.2 Einbinden der Datenbank Nach der Installation von Xampp starten Sie die „xampp-control.exe“ und starten Sie die Dienste Apache und MySql. Marion Heilig 29.03.10 Seite 5 von 55 Dokumentation IAV08/10 RDF-Nürnberg Öffnen Sie ihren Internet Browser und geben Sie „127.0.0.1“ oder „localhost“ in die Adresszeile ein. Nachdem sich die Seite geöffnet hat klicken Sie auf „phpMyAdmin“. Marion Heilig 29.03.10 Seite 6 von 55 Dokumentation IAV08/10 RDF-Nürnberg Klicken Sie auf den Reiter „Importieren“, klicken Sie anschließend auf „Durchsuchen“ und wählen Sie den Zielpfad der Datei aus (befindet sich auf der CD im Verzeichnis Datenbank). Bestätigen Sie diesen Schritt mit „OK“ und somit ist die Datenbank importiert. Über den Reiter „Exportieren“ können Sie die Datenbank auch unter anderem Namen als Sicherung abspeichern. Nun können Sie Ihren Internet Browser wieder schließen. 2.2.3 Installation der Software „Vereinsverwaltung“ Führen Sie die Datei Setup aus und folgen Sie den Anweisungen. Nun können Sie das Programm starten. Vergewissern Sie sich jedoch nochmals zuvor, dass Sie in Xampp den MySql-Dienst gestartet haben. Wichtig: Diese Dienste Xampp und MySql müssen bei jedem Programmstart ausgeführt werden. Marion Heilig 29.03.10 Seite 7 von 55 Dokumentation IAV08/10 RDF-Nürnberg 3 Betriebsanleitung 3.1 Menüleiste 3.1.1 Aktuelle Termine Zeigt Jubiläen und Geburtstage des aktuellen Monats an. 3.1.2 Hilfe Hier können Sie sowohl das Handbuch als auch Informationen zur Version des Programms aufrufen. 3.1.3 Exit Beenden des Programms. Beim Anklicken der Buttons „Daten“ und „Verwaltung“ öffnen sich weitere Menüpunkte. 3.2 Daten Im Bereich „Daten“ können die Menüpunkte „Kontakte“, „Vereinsdaten“, „Bankverbindung“, „Import/Export“ ausgewählt werden. Marion Heilig 29.03.10 Seite 8 von 55 Dokumentation 3.2.1 IAV08/10 RDF-Nürnberg Kontakte Nach dem Anklicken des Buttons „Kontakte“ öffnet sich ein Fenster, in dem Sie die Daten Ihrer Mitglieder und Spender verwalten können. – Um einen neuen Kontakt anzulegen, wählen Sie erst die Kategorie aus, zu der Ihr Kontakt zugeordnet werden soll (Mitglied, Spender). - Geben Sie nun die Daten Ihrer Kontakte in die dafür vorgesehenen Felder ein. Anschließend können Sie den Kontakt abspeichern. - Haben Sie ein neues Mitglied angelegt, können Sie diesem beim Speichern eine Beitragsklasse zuweisen (ein Pop-up-Fenster öffnet sich beim Speichern). Außerdem hat man die Möglichkeit, bei bereits existierenden Mitgliedern über den Button „wählen“ die Beitragsklasse zu ändern oder zu löschen. - Sie haben die Möglichkeit einen Kontakt zu suchen, in dem Sie in die Felder „Vorname“ und/oder „Nachname“ den entsprechende Namen eingeben und den Button „suchen“ auswählen. Wollen Sie sich nach der Anzeige des Suchergebnisses alle Kontakte der Datenbank anzeigen lassen, klicken Sie unter „Anzeige“ die Option „alle“ an. Des weiteren lassen sich über den Filter auch einzelne Gruppen anzeigen. Klicken Sie hierfür im Feld „anzeigen“ die entsprechende Gruppe an (Mitglieder oder Spender). - Über die Buttons „Mitgliederliste“ und „Spenderliste“ lassen sich die entsprechenden Listen anzeigen und ausdrucken. Außerdem können sie als unterschiedliche Dateitypen gespeichert werden (wie z.B. als Word- oder PDF-Datei). – Marion Heilig 29.03.10 Seite 9 von 55 Dokumentation IAV08/10 RDF-Nürnberg Wichtig! - Änderungen der Beitragsklasse werden nach Zuordnung automatisch gespeichert. Änderungen der Kontaktdaten müssen jedoch über den Button „Speichern“ gesichert werden. 3.2.2 Vereinsdaten - Hier können Sie die Stammdaten Ihres Vereins anlegen, die auf den Formularen erscheinen. - Tragen Sie Ihre Daten in die entsprechenden Felder und wählen Sie anschließend „speichern“. So erscheinen diese Daten immer wieder beim Aufruf der Vereinsdaten. Marion Heilig 29.03.10 Seite 10 von 55 Dokumentation 3.2.3 IAV08/10 RDF-Nürnberg Bankverbindung – In diesem Bereich können Sie Ihre Bankverbindungen eingeben, abspeichern und auch löschen. 3.2.4 3.2.4.1 Import und Export Import Marion Heilig 29.03.10 Seite 11 von 55 Dokumentation IAV08/10 RDF-Nürnberg - Um eine Datei zu importieren, klicken Sie den Button „durchsuchen“ und wählen Sie dann die gewünschte csv-Datei aus. Bestätigen Sie dann mit „öffnen“, damit der entsprechende Pfad im Textfeld angezeigt wird. - Über den Button „OK“ werden die Daten in die Tabelle geladen. - Die Daten werden in Anführungszeichen (“ “) angezeigt. Sind diese korrekt, starten Sie den Import über den Button „Import starten“. Die Daten sind somit in die Datenbank importiert. Wichtig: Beim Importieren darf die zu importierende Datei nicht geöffnet sein. Es können folgende Datensätze importiert werden: Anrede Vorname Name Straße Hausnummer Ort PLZ Telefonnummer Fax Handy E-Mail Kontonummer Bankleitzahl Typ Eintrittsdatum Geburtstag Zudem sollten in der csv-Datei jeweils über den Daten der Name des Typs stehen: z.B: Marion Heilig 29.03.10 Seite 12 von 55 Dokumentation 3.2.4.2 IAV08/10 RDF-Nürnberg Export Wählen Sie den zweiten Reiter „Export“ - Geben Sie einen Dateinamen als Ziel für den Export und die Quelldaten ein, die Sie exportieren möchten. Wählen Sie die Felder aus, die Sie exportieren möchten. - Klicken Sie anschließend auf „Export starten“. - Des weiteren können sie bestimmen, mit welcher Art von Trennzeichen die Datensätze in die Datei geschrieben werden sollen. Wichtig: Wenn die Datei, in die Sie exportieren möchten, schon vorhanden ist, wird diese durch die neue überschrieben. Marion Heilig 29.03.10 Seite 13 von 55 Dokumentation IAV08/10 RDF-Nürnberg 3.3 Verwaltung Im Bereich „Verwaltung“ können die Menüpunkte „Beiträge“, „Reisekosten“, „Veranstaltung“, „Jubiläum“, „Forderungen“, „DTAUS“, „Vorlage“, „Spende“, „Archiv“, gewählt werden. 3.3.1 Beiträge - Unter dem Menüpunkt „Beiträge“ können Sie verschiedene Beitragsklassen anlegen, die Sie in der Kontaktverwaltung den einzelnen Mitgliedern zuweisen können. - Im Feld Bezeichnung legen Sie eine neue Beitragsklasse an und können ihr den entsprechenden Betrag und das Fälligkeitsdatum zuweisen. - Das Datum darf dabei nicht in der Vergangenheit liegen. - Nach Auswahl des Datums werden unter Berücksichtigung des Zahlungsintervalls Forderungen erstellt. Diese können Sie unter „Forderungen“ verwalten. Marion Heilig 29.03.10 Seite 14 von 55 Dokumentation 3.3.2 IAV08/10 RDF-Nürnberg Reisekosten - Hier können Sie die entsprechenden Felder auswählen und einem Mitglied Reisekosten zuordnen. - Mithilfe des Buttons „Mitglied wählen“ können Sie den gewünschten Kontakt suchen. - Von den Reisekosten kann eine Liste gedruckt werden, was die entsprechende Reise mit Datum und Kosten aufweist. Die Liste kann in verschiedenen Formaten gespeichert werden (wie z.B. als Word- oder PDFDatei). Marion Heilig 29.03.10 Seite 15 von 55 Dokumentation 3.3.3 IAV08/10 RDF-Nürnberg Veranstaltung - Hier können Sie die entsprechenden Felder auswählen und einem Mitglied Veranstaltung zuordnen. - Mithilfe des Buttons „Mitglied wählen“ können Sie den gewünschten Kontakt suchen. - Von den Veranstaltungskosten kann eine Liste gedruckt werden. Die Liste kann in verschiedenen Formaten gespeichert werden (wie z.B. als Word- oder PDF-Datei). 3.3.4 Jubiläum Marion Heilig 29.03.10 Seite 16 von 55 Dokumentation IAV08/10 RDF-Nürnberg - Hier können Sie die Jubiläen der Mitglieder einsehen. Die Daten können Sie unter „Anzeige“ unterschiedlich sortieren lassen (Mitgliedsjahre, Geburtstage) - Über die Buttons „Geburtstag“ und „Mitgliedsjahr“ lassen sich die entsprechenden Listen anzeigen und ausdrucken. Außerdem können sie als unterschiedliche Dateitypen gespeichert werden (wie z.B. als Word- oder PDF-Datei). −Nach Auswahl des Kontakts für den ein Schreiben erstellt werden soll, können Sie mithilfe des Buttons „Schreiben wählen“ eine Vorlage suchen. Diese können Sie unter dem Punkt „Vorlage“ anlegen. −Das ausgewählte Schreiben kann durch anklicken von „drucken“ gedruckt werden. 3.3.5 Forderungen - Hier lassen sich über den Filter auch der Status und die Zahlungsart anzeigen. Klicken Sie hierfür den entsprechenden Punkt unter „anzeigen Status“ oder „anzeigen Zahlungsart“ an. - Von den Forderungen kann eine Liste gedruckt werden. Welche die offenen Forderungen aufweist. Die Liste kann in verschiedenen Formaten gespeichert werden (wie z.B. als Word- oder PDF-Datei). - Nach Auswahl des Kontakts für den ein Schreiben erstellt werden soll, können Sie mithilfe des Buttons „Schreiben wählen“ eine Vorlage suchen. Diese können Sie unter dem Punkt „Vorlage“ anlegen. - Das ausgewählte Schreiben kann durch anklicken von „drucken“ gedruckt werden. - Außerdem kann mit dem entsprechenden Button auch ein hinterlegter Zuwendungsbescheid gedruckt werden. Marion Heilig 29.03.10 Seite 17 von 55 Dokumentation 3.3.6 IAV08/10 RDF-Nürnberg DTAUS Die Funktion ist ab der Version 2.0.0 verfügbar. 3.3.7 Vorlage - Hier können Sie die Vorlage für einen Brief anlegen. - Der Name den Sie eingeben, wird nach dem speichern links in der Vorlagenliste angezeigt. - Sie können hier die Texte noch bearbeiten 3.3.8 Spende - Hier können Sie Spenden der Mitglieder und der Spender erfassen, bearbeiten und löschen. - Das Schreiben kann nur auf die ausgewählte Person erstellt werden. D.h. Sie müssen die Person erst zuweisen. Nach dem Speichern der Person erscheint Marion Heilig 29.03.10 Seite 18 von 55 Dokumentation IAV08/10 RDF-Nürnberg der Button „Schreiben“, somit können Sie das Schreiben zuweisen und drucken. 3.3.9 Archiv - Hier haben Sie einen Überblick aller Schreiben, die erstellt wurden. - Alle jemals gespeicherten Versionen werden hier gespeichert, sodass Sie auch auf ältere Dokumente Zugriff haben. - Über „Anzeige“ sehen Sie den damalig verfassten Inhalt. - Sie können die Schreiben auch über den Button „Löschen“ aus der Datenbank löschen Marion Heilig 29.03.10 Seite 19 von 55 Dokumentation IAV08/10 RDF-Nürnberg 4 Entwicklerdokumentation 4.1 Datenbank Die Datenbank Vereinsverwaltung besteht aus 16 Tabellen: − Vereinsdaten − Reisekosten − Personreisekosten − Person − Veanstaltungsspender − Veranstaltung − Beitragsstaffelung − Personbeitrag − Spende − Spendeschreiben − Schreiben − Schreibenvorlage − ForderungsSchreiben − Forderungen − Juiläum − Jubilaenschreiben 4.1.1 Installation MySQL-Server und XAMPP Siehe Punkt: 2.2 Installation Marion Heilig 29.03.10 Seite 20 von 55 Dokumentation 4.1.2 IAV08/10 RDF-Nürnberg Relationenschema Marion Heilig 29.03.10 Seite 21 von 55 Dokumentation 4.1.3 IAV08/10 RDF-Nürnberg Datenbank anlegen drop database vereinsverwaltung; create database if not exists vereinsverwaltung; use vereinsverwaltung; Tabelle Vereinsdaten CREATE TABLE Vereinsdaten( Vereins_ID int Auto_increment, Anrede char(50), Name char(50), Ansprechpartner char(100), Strasse char(50), Ort char(50), PLZ char(10), Telefonnummer char(50), Fax char(50), Steuernummer char(50), Finanzamt char(50), Kontonummer char(50), BLZ char(50), IBAN char(50), BIC char(50), Bank char (50), EMail char(50), Primary key (Vereins_ID))engine=InnoDB; Tabelle Beitragsstaffelung CREATE TABLE Beitragsstaffelung( Beitrags_ID int Auto_increment, Betrag double, Zahlungsintervall int, Bezeichnung char(50), Startdatum date, Primary key(Beitrags_ID))engine=InnoDB; Tabelle Veranstaltung CREATE TABLE Veranstaltung( Veranstaltung_ID int Auto_increment, Ausgaben double, Einnahmen double, Name char(50), Datum Date, Marion Heilig 29.03.10 Seite 22 von 55 Dokumentation IAV08/10 RDF-Nürnberg Primary key(Veranstaltung_ID))engine=InnoDB; Tabelle Reisekosten CREATE TABLE Reisekosten( Kosten_ID int Auto_increment, Datum Date, Grund char(50), Kosten double, Ziel char(50), Primary key(Kosten_ID))engine=InnoDB; Tabelle Person CREATE TABLE Person( Person_Nr int Auto_increment, Anrede char(50), Name char(50), Vorname char(50), Strasse char(50), Hausnummer char(10), Ort char(50), PLZ char(10), Geburtstag Date, Eintrittsdatum Date, Kontonummer char(50), BLZ char(20), Telefonnummer char(50), Fax char(50), Handy char(50), EMail char(50), Typ enum("Spender","Mitglied"), Zahlungsart enum("Überweisung","Bar","Einzugsermächtigung"), Primary key (Person_Nr))engine=InnoDB; Tabelle Personbeitrag CREATE TABLE Personbeitrag( PBeitrag_ID int Auto_increment, Beitrags_ID int, Person_Nr int, Primary Key(PBeitrag_ID), Foreign Key(Beitrags_ID) References Beitragsstaffelung(Beitrags_ID), Foreign Key(Person_Nr) References Person(Person_Nr) ON DELETE CASCADE ON UPDATE CASCADE )engine=InnoDB; Marion Heilig 29.03.10 Seite 23 von 55 Dokumentation IAV08/10 RDF-Nürnberg Tabelle Personreisekosten CREATE TABLE Personreisekosten( PRK_ID int Auto_increment, Kosten_ID int , Person_Nr int, Primary Key(PRK_ID), Foreign Key(Kosten_ID) References Reisekosten(Kosten_ID) ON DELETE CASCADE ON UPDATE CASCADE, Foreign Key(Person_Nr) References Person(Person_Nr) ON DELETE SET NULL )engine=InnoDB; Tabelle Veranstaltungsspender CREATE TABLE Veranstaltungsspender( VerSpend_ID int Auto_increment, Person_Nr int, Veranstaltung_ID int, Primary Key(VerSpend_ID), Foreign Key(Person_Nr) References Person(Person_Nr) ON DELETE SET NULL, Foreign Key(Veranstaltung_ID) References Veranstaltung(Veranstaltung_ID) ON DELETE CASCADE ON UPDATE CASCADE)engine=InnoDB; Tabelle Spende CREATE TABLE Spende( Spender_NR int Auto_increment, Person_Nr int, Datum Date, Betrag double, Zuwendungsbescheid Date, Primary key (Spender_NR), Foreign Key(Person_Nr) References Person(Person_NR) ON DELETE SET NULL)engine=InnoDB; Tabelle Jubilaeum CREATE TABLE Jubilaeum( Jubi_ID int Auto_increment, Person_Nr int, Typ enum("Alter","Mitgliedsjahre"), Anzahl int(50), Primary Key(Jubi_ID), Foreign Key(Person_Nr) References Person(Person_Nr) ON DELETE SET NULL)engine=InnoDB; Marion Heilig 29.03.10 Seite 24 von 55 Dokumentation IAV08/10 RDF-Nürnberg Tabelle Forderungen CREATE TABLE Forderungen( Ford_ID int Auto_increment, Person_NR int, Beitrags_ID int, Kommentar char(100), Datum Date, Gezahlt enum("ja","nein"), Zuwendungsbescheid Date, Primary key(Ford_ID), Foreign key(Beitrags_ID) References Beitragsstaffelung(Beitrags_ID) ON DELETE SET NULL, Foreign key(Person_Nr) References Person(Person_NR) ON DELETE CASCADE ON UPDATE CASCADE)engine=InnoDB; Tabelle Schreibenvorlage CREATE TABLE Schreibenvorlage( Schreibenvorlage_ID int Auto_increment, Text Text, Name char(50), Primary key(Schreibenvorlage_ID))engine=InnoDB; Tabelle Schreiben CREATE TABLE Schreiben( Schreiben_ID int Auto_increment, Text Text, Name char(50), Gedruckt enum("ja","nein"), Datum date, Schreibenvorlage_ID int, Foreign Key(Schreibenvorlage_ID) References Schreibenvorlage(Schreibenvorlage_ID) ON DELETE SET NULL, Primary key(Schreiben_ID))engine=InnoDB; Tabelle Jubilaenschreiben CREATE TABLE Jubilaenschreiben( Jubilaenschreiben_ID int Auto_increment, Jubi_ID int, Schreiben_ID int, Foreign Key(Jubi_ID) References Jubilaeum(Jubi_ID) ON DELETE SET NULL, Foreign Key(Schreiben_ID) References Schreiben(Schreiben_ID) ON DELETE SET NULL, Marion Heilig 29.03.10 Seite 25 von 55 Dokumentation IAV08/10 RDF-Nürnberg Primary key(Jubilaenschreiben_ID))engine=InnoDB; Tabelle Spendeschreiben CREATE TABLE Spendeschreiben( Spendeschreiben_ID int Auto_increment, Spender_Nr int, Schreiben_ID int, Foreign Key(Spender_Nr) References Spende(Spender_Nr) ON DELETE SET NULL, Foreign Key(Schreiben_ID) References Schreiben(Schreiben_ID) ON DELETE SET NULL, Primary key(Spendeschreiben_ID))engine=InnoDB; Tabelle Forderungsschreiben CREATE TABLE ForderungsSchreiben( Forderungsschreiben_ID int Auto_increment, Ford_ID int, Schreiben_ID int, Foreign Key(Ford_ID) References Forderungen(Ford_ID) ON DELETE SET NULL, Foreign Key(Schreiben_ID) References Schreiben(Schreiben_ID) ON DELETE SET NULL, Primary key(Forderungsschreiben_ID))engine=InnoDB; 4.2 Software Entwicklungsumgebung: Programmiersprache: Datenbank: MySql-Server: Framework: Marion Heilig Visual Studio 2005 C# MySql Xampp .NET 29.03.10 Seite 26 von 55 Dokumentation IAV08/10 RDF-Nürnberg 4.2.1 Übersicht der Windows Forms, ihre Funktionen und Eventhandler 4.2.1.1 Form „Main“ Methoden public Mainformular() Beim Start werden die Buttons ein und ausgeblendet. UserControl aktuelleForm wird neu angelegt. Die Objekte des Designers werden initialisiert. Die Funktion pruefeforderung.forderungen() wird aufgerufen. public void verwaltung() Buttons für den Bereich Verwaltung werden ein-, für Daten ausgeblendet. public void daten() Buttons für den Bereich Daten werden ein-, für Verwaltung ausgeblendet. Ereignisbehandlungsroutinen private void Main_Load(object sender, Lädt das UserControl „Welcome“ in das EventArgs e) Panel. private void buttonDaten_Click(object Die Funktion daten() wird aufgerufen. sender, EventArgs e) private void Die Funktion verwaltung() wird buttonVerwaltung_Click(object sender, aufgerufen. EventArgs e) private void Lädt das UserControl „aktuelleTermine“ aktuelleTermineToolStripMenuItem_Cli in das Panel. ck(object sender, EventArgs e) private void Aufruf für das Handbuch des toolStripMenuItemHandbuch_Click(obj Programms. ect sender, EventArgs e) private void toolStripMenuItemInfo_Click(object sender, EventArgs e) Form Info wird aufgerufen. private void Die Anwendung wird beendet. exitToolStripMenuItemExit_Click(objec t sender, EventArgs e) private void buttonBeitraege_Click(object sender, EventArgs e) Marion Heilig Lädt das UserControl „Beiträge“ in das Panel. Ruft die Funktionen empty() und update() des UserControls 29.03.10 Seite 27 von 55 Dokumentation IAV08/10 RDF-Nürnberg „Beiträge“ auf. private void buttonReisekosten_Click(object sender, EventArgs e) Lädt das UserControl „Reisekosten“ in das Panel. Ruft die Funktionen empty() und update() des UserControls „Reisekosten“ auf. private void buttonVeranstaltung_Click(object sender, EventArgs e) Lädt das UserControl „Veranstaltung“ in das Panel. Ruft die Funktionen empty() und update() des UserControls „Veranstaltung“ auf. private void buttonJubilaeum_Click(object sender, EventArgs e) Lädt das UserControl „Jubilaeum“ in das Panel. Ruft die Funktion update() des UserControls „Jubilaeum“ auf. private void buttonForderungen_Click(object sender, EventArgs e) Lädt das UserControl „Forderungen“ in das Panel. Ruft die Funktion update() des UserControls „Forderungen“ auf. private void buttonDTAUS_Click(object Lädt das UserControl „DTAUS“ in das sender, EventArgs e) Panel private void buttonSchreiben_Click(object sender, EventArgs e) Lädt das UserControl „Schreiben“ in das Panel. Ruft die Funktionen empty() und update() des UserControls „Schreiben“ auf. private void buttonSpende_Click(object sender, EventArgs e) Lädt das UserControl „Spende“ in das Panel. Ruft die Funktionen empty() und update() des UserControls „Spende“ auf. private void buttonArchiv_Click(object Lädt das UserControl „Archiv“ in das sender, EventArgs e) Panel. private void buttonKontakt_Click(object sender, EventArgs e) Lädt das UserControl „Kontkat“ in das Panel. Ruft die Funktionen empty() und update() des UserControls „Kontakt“ auf. private void buttonVereinsdaten_Click(object sender, EventArgs e) Lädt das UserControl „Vereinsdaten“ in das Panel. Ruft die Funktion update() des UserControls „Vereinsdaten“ auf. private void buttonBankverbindung_Click(object sender, EventArgs e) Lädt das UserControl „Bankverbindung“ in das Panel. Ruft die Funktionen empty() und update() des UserControls „Bankverbindung“ auf. private void buttonImExport_Click(object sender, EventArgs e) Lädt das UserControl „ImExport“ in das Panel. private void buttonVerwaltungback_Click(object Die Funktion verwaltung() wird aufgerufen. Marion Heilig 29.03.10 Seite 28 von 55 Dokumentation IAV08/10 RDF-Nürnberg sender, EventArgs e) 4.2.1.2 Daten 4.2.1.2.1 UserControl „Kontakt“ Methoden public Kontakt() Die Objekte des Designers werden initialisiert. Die „ComboBoxAnrede“ wird mit Datensätzen gefüllt. private void fill(int index) Daten werden in die Felder geladen und die entsprechenden Elemente werden nach Datensatz ein- oder ausgeblendet. public void update() Lädt die Daten aus der Datenbank in das DataGridView. Die Funktion show() wird aufgerufen. Die zu makierenden Zeilen des DataGridView werden ausgewählt. private void showspender() Spender werden aus der Datenbank abgerufen und die Datensätze werden dem DataGridView zugewiesen. Die Funktion show() wird aufgerufen. private void showmitglied() Mitglieder werden aus der Datenbank abgerufen und die Datensätze werden dem DataGridView zugewiesen. Die Funktion show() wird aufgerufen. private void show() Im DataGridView werden die entsprechenden Felder ausgeblendet. public void empty() Felder werden geleert. private void delete() Entsprechender Kontakt wird gelöscht. private void datumsabfragegeb() Datum wird in der Datenbank auf Null gesetzt falls ein Datum vorhanden ist. private void datumsabfrageeint() Datum wird in der Datenbank auf Null gesetzt falls ein Datum vorhanden ist. private void jub() Datensatz wird aus der Tabelle Jubilaeum gelöscht. EventHandler private void Marion Heilig Spender wird zugeordnet und 29.03.10 Seite 29 von 55 Dokumentation IAV08/10 RDF-Nürnberg radioButtonSpender_CheckedChanged zusätzlich aus der Datenbank gelöscht. (object sender, EventArgs e) private void Mitglied wird zugeordnet. Bei radioButtonMitglied_CheckedChanged( Neuanlage eines Mitglieds die object sender, EventArgs e) „groupboxBeitrag“ nicht mit angezeigt. private void Prüft die Datensätze im DataGridView dataGridViewKontakt_CellClick(object und füllt die Felder. sender, DataGridViewCellEventArgs e) private void Prüft die Datensätze im DataGridView dataGridViewKontakt_SelectionChange und füllt die leeren Felder. d(object sender, EventArgs e) private void Die Funktionen update() und empty() radioButtonanzeigenAlle_CheckedChan werden aufgerufen. ged(object sender, EventArgs e) private void Die Funktionen showmitglied() und radioButtonAnzeigenMitglied_Checked empty() werden aufgerufen. Changed(object sender, EventArgs e) private void Die Funktionen showmitglied() und radioButtonAnzeigenSpender_Checked empty() werden aufgerufen. Changed(object sender, EventArgs e) private void buttonMitglied_Click(object sender, EventArgs e) Hier wird die Form Liste_Mitglied aufgerufen. private void buttonSpender_Click(object sender, EventArgs e) Hier wird die Form Liste_Spender aufgerufen. private void buttonspeichern_Click(object sender, EventArgs e) Hier werden die Datensätze entsprechend gespeichert oder upgedatet. Bei Neuanlage eines Mitglieds wird der Form „Staffelungwaehlen” die aktuelle Personennummer mit übergeben und die Varibale x wird aus der Form zurückgeben. private void buttonneu_Click(object sender, EventArgs e) Die Funktion empty() wird aufgerufen. private void buttonloeschen_Click(object sender, EventArgs e) Funktion delete() und empty() wird aufgerufen. private void Aktuelle UserControl wird geschlossen. buttonAbbrechen_Click(object sender, EventArgs e) private void buttonBeitrag_Click(object sender, Marion Heilig Hier wird die Form “Staffelungwaehlen” aufgerufen und 29.03.10 Seite 30 von 55 Dokumentation IAV08/10 RDF-Nürnberg EventArgs e) die aktuelle aktuellePersonNr mit übergeben. Die Funktion waehlen.getx() wird aufgerufen und liefert einen Wert zurück. private void buttonSuchen_Click(object sender, EventArgs e) Hier wird nach Vor- und nach Nachname gesucht, welche in den Feldern Vor- und Nachname angegeben wurden. 4.2.1.2.2 Form „Staffelung wählen“ Methoden public Staffelungwaehlen( int Person_ID ) Die Objekte des Designers werden initialisiert. Die übergebene Variable wird der lokalen Variable zugewiesen. public int getx() Variable int x wird zurückgeben. Ereignisbehandlungsroutinen private void buttonadd_Click(object sender, EventArgs e) Von der Listbox „nichtzugew“ werden Datensätze der Listbox „zugew“ zugordnet. Die Funktion pruefeforderung.forderungen() wird aufgerufen . private void buttonremove_Click(object sender, EventArgs e) Von der Listbox „zugew“ werden Datensätze der Listbox „nichtzugew“ zugordnet. private void Staffelungwaehlen_Load(object sender, EventArgs e) Datensätze werden in die Listboxen aus der Datenbank angezeigt. private void Datensätze werden von den Listboxen Staffelungwaehlen_FormClosing(objec ausgelesen und mit den Datensätzen t sender, FormClosingEventArgs e) aus der Datenbank verglichen und entsprechend gelöscht oder hinzugefügt. 4.2.1.2.3 UserControl „Vereinsdaten“ Methoden Marion Heilig 29.03.10 Seite 31 von 55 Dokumentation IAV08/10 RDF-Nürnberg public Vereinsdaten() Die Objekte des Designers werden initialisiert. private void fill(int index) Daten werden in die Felder geladen. public void update() Lädt die Daten aus der Datenbank und ruft die Funktion fill() auf. private void empty() Felder werden geleert. private void delete() Vereinsdaten werden aus der Datenbank gelöscht. Ereignisbehandlungsroutinen private void buttonspeichern_Click(object sender, EventArgs e) Hier werden die Datensätze entsprechend gespeichert oder upgedatet. private void buttonloeschen_Click(object sender, EventArgs e) Die Funktion delete() und empty() werden aufgerufen. private void Aktuelle UserControl wird geschlossen. buttonAbbrechen_Click(object sender, EventArgs e) private void buttonNeu_Click(object sender, EventArgs e) 4.2.1.2.4 Die Funktion empty() wird aufgerufen. UserControl „Bankverbindung“ Methoden public Bankverbindung() Die Objekte des Designers werden initialisiert. private void fill(int index) Daten werden in die Felder geladen. public void update() Lädt die Daten aus der Datenbank in das DataGridView. private void empty() Felder werden geleert. private void delete() Entsprechend gewählte Bankverbindung wird gelöscht. Ereignisbehandlungsroutinen private void buttonspeichern_Click(object sender, EventArgs e) Marion Heilig Hier werden die Datensätze entsprechend gespeichert oder upgedatet. 29.03.10 Seite 32 von 55 Dokumentation IAV08/10 RDF-Nürnberg private void buttonneu_Click(object sender, EventArgs e) Die Funktion empty() wird aufgerufen. private void buttonloeschen_Click(object sender, EventArgs e) Die Funktionen delete() und empty() werden aufgerufen. private void Aktuelle UserControl wird geschlossen. buttonAbbrechen_Click(object sender, EventArgs e) private void Prüft die Datensätze im DataGridView dataGridViewBank_SelectionChanged( und ruft die Funktion fill() auf. object sender, EventArgs e) 4.2.1.2.5 UserControl „Im/Export“ 4.2.1.2.5.1 Import Methoden public ImExport() Die Objekte des Designers werden initialisiert. RadioButtons werden auf “true” gesetzt. private DataTable GetDataTable(string Die Datei wird mit dem path, char seperator) entsprechenden Trennzeichen getrennt und das DataTable zurückgegeben Ereignisbehandlungsroutinen private void Durch Anklicken des Buttons buttondurchsuchenimport_Click(object „durchsuchen“ öffnet sich der OpenFile sender, EventArgs e) Dialog. Der ausgewählte Pfad wird in die Textbox geladen. private void buttonImport_Click(object Daten aus dem DataGridView werden sender, EventArgs e) in die Datenbank eingefügt. Beim Datum werden, falls die Felder leer waren, die Datensätze auf Null -Werte abgeändert. private void buttonok_Click(object sender, EventArgs e) Hier wird der Inhalt der Datei in das DataGridView geladen. private void Trennzeichen „;“ wird ausgewählt. radioButtonIMSemikolon_CheckedCha nged(object sender, EventArgs e) private void Trennzeichen „,“ wird ausgewählt. radioButtonIMKomma_CheckedChange Marion Heilig 29.03.10 Seite 33 von 55 Dokumentation IAV08/10 RDF-Nürnberg d(object sender, EventArgs e) private void Trennzeichen „->“ wird ausgewählt. radioButtonIMTabulator_CheckedChan ged(object sender, EventArgs e) private void Das Trennzeichen das angegeben wird, radioButtonIMBenutzerdef_CheckedCh wird ausgewählt. anged(object sender, EventArgs e) 4.2.1.2.5.2 Export Methoden private void empty() Felder werden geleert. Ereignisbehandlungsroutinen private void buttonexport_Click(object Die Daten vom DataGridView werden sender, EventArgs e) ausgelesen und in die Datenbank exportiert. Die Funktion empty() wird aufgerufen. private void buttondurchsuchen_Click(object sender, EventArgs e) Durch Anklicken des Buttons „durchsuchen“ öffnet sich der OpenFile Dialog. Der ausgewählte Pfad wird gespeichert. private void Trennzeichen „;“ wird ausgewählt. radioButtonSemikolon_CheckedChang ed(object sender, EventArgs e) private void Trennzeichen „,“ wird ausgewählt. radioButtonKomma_CheckedChanged( object sender, EventArgs e) private void Trennzeichen „->“ wird ausgewählt. radioButtonTabulator_CheckedChange d(object sender, EventArgs e) private void Das Trennzeichen das angegeben wird, radioButtonBenutzerdef_CheckedChan wird ausgewählt. ged(object sender, EventArgs e) Marion Heilig 29.03.10 Seite 34 von 55 Dokumentation IAV08/10 4.2.2 Verwaltung 4.2.2.1 UserControl „Beiträge“ RDF-Nürnberg Methoden public Beitraege() Die Objekte des Designers werden initialisiert. private void fill(int index) Daten werden in die Felder geladen. public void update() Lädt die Daten aus der Datenbank und fügt sie der comobox hinzu und lädt sie in das DataGridView. Die zu makierenden Zeilen des DataGridView werden ausgewählt. public void empty() Alle Felder werden auf Leer zurückgesetzt. private void delete() Der ausgewählte Datensatz wird gelöscht. Ereignisbehandlungsroutinen private void buttonspeichern_Click(object sender, EventArgs e) Hier werden die Datensätze entsprechend gespeichert oder upgedatet. private void buttonloeschen_Click(object sender, EventArgs e) Die Funktionen delete() und empty() werden aufgerufen. private void buttonneu_Click(object sender, EventArgs e) Die Funktion empty() wird aufgerufen. private void UserControl wird geschlossen. buttonAbbrechen_Click(object sender, EventArgs e) private void Der variable „Zahlungsintervall“ wird 1 radioButtonmonatlich_CheckedChange zugewiesen. d(object sender, EventArgs e) private void Der variable „Zahlungsintervall“ wird 3 radioButtonvierteljährlich_CheckedCha zugewiesen. nged(object sender, EventArgs e) private void Der variable „Zahlungsintervall“ wird 6 radioButtonhalbjährlich_CheckedChan zugewiesen. ged(object sender, EventArgs e) private void Der variable „Zahlungsintervall“ wird radioButtonjährlich_CheckedChanged( 12 zugewiesen. Marion Heilig 29.03.10 Seite 35 von 55 Dokumentation IAV08/10 RDF-Nürnberg object sender, EventArgs e) private void Prüft die Datensätze im DataGridView dataGridViewBeitrag_SelectionChange und ruft die Funktion fill() auf. d(object sender, EventArgs e) private void Prüft die Datensätze im DataGridView dataGridViewBeitrag_CellClick(object und ruft die Funktion fill() auf. sender, DataGridViewCellEventArgs e) 4.2.2.2 UserControl „Reisekosten“ Methoden public Reisekosten() Die Objekte des Designers werden initialisiert. private void fill(int index) Daten werden in die Felder geladen. public void update() Lädt die Daten aus der Datenbank in das DataGridView. Die zu makierenden Zeilen des DataGridView werden ausgwählt. public void empty() Felder werden geleert. private void delete() Ausgewählte Reisekosten werden gelöscht. private void ohneDatumInsert() Daten werden ohne Datum in die Datenbank angefügt. private void mitDatumInsert() Daten werden mit Datum in die Datenbank angefügt. private void insertid() Hier werden die Datensätze entsprechend gespeichert oder upgedatet. private void datumsabfrage() Hier wird das Datum mit der Datenbank abgeglichen und falls eins vorhanden ist, wird dies auf „NULL“ gesetzt. private void updatedatum() Daten werden mit Datum in die Datenbank upgedatet. private void updateohnedatum() Daten werden ohne Datum in die Datenbank upgedatet. Ereignisbehandlungsroutinen private void Marion Heilig Hier werden die Datensätze 29.03.10 Seite 36 von 55 Dokumentation IAV08/10 RDF-Nürnberg buttonspeichern_Click(object sender, EventArgs e) entsprechend gespeichert oder upgedatet mit den verschiedenen Funktionen ( ohneDatumInsert(), mitDatumInsert(), datumsabfrage(), updatedatum(), insertid(), updateohnedatum() ) private void buttonneu_Click(object sender, EventArgs e) Die Funktion empty() wird aufgerufen. private void buttonloeschen_Click(object sender, EventArgs e) Die Funktionen delete() und empty() werde aufgerufen. private void buttonsuchen_Click(object sender, EventArgs e) Die Form „Mitgliedsuchen“ wird aufgerufen und bekommt von dieser die PersonenID zurück. private void Aktuelle UserControl wird geschlossen. buttonAbbrechen_Click(object sender, EventArgs e) private void buttondrucken_Click(object sender, EventArgs e) Hier wird die Form Liste_Reisekosten aufgerufen. private void Prüft die Datensätze im DataGridView dataGridViewReisekosten_CellClick(obj und ruft die Funktion fill() auf. ect sender, DataGridViewCellEventArgs e) private void Prüft die Datensätze im DataGridView dataGridViewReisekosten_SelectionCh und ruft die Funktion fill() auf. anged(object sender, EventArgs e) 4.2.2.3 UserControl „Veranstaltung“ Methoden public Reisekosten() Die Objekte des Designers werden initialisiert. private void fill(int index) Daten werden in die Felder geladen. public void update() Lädt die Daten aus der Datenbank in das DataGridView. Die zu makierenden Zeilen des DataGridView werden ausgewählt. public void empty() Felder werden geleert. private void delete() Ausgewählte Reisekosten werden gelöscht. Marion Heilig 29.03.10 Seite 37 von 55 Dokumentation IAV08/10 RDF-Nürnberg private void ohneDatumInsert() Daten werden ohne Datum in die Datenbank angefügt. private void mitDatumInsert() Daten werden mit Datum in die Datenbank angefügt. private void insertid() Hier werden die Datensätze entsprechend gespeichert oder upgedatet. private void datumsabfrage() Hier wird das Datum mit der Datenbank abgeglichen und falls eins vorhanden ist, wird dies auf „NULL“ gesetzt. Ereignisbehandlungsroutinen private void buttonspeichern_Click(object sender, EventArgs e) Hier werden die Datensätze entsprechend gespeichert oder upgedatet mit den verschiedenen Funktionen ( ohneDatumInsert(), mitDatumInsert(), datumsabfrage(), updatedatum(), insertid(), updateohnedatum() ) private void buttonneu_Click(object sender, EventArgs e) Die Funktion empty() wird aufgerufen. private void buttonloeschen_Click(object sender, EventArgs e) Die Funktionen delete() und empty() werden aufgerufen. private void buttonwaehlen_Click(object sender, EventArgs e) Die Form „Mitgliedsuchen“ wird aufgerufen und bekommt von dieser die PersonenID zurück. private void Aktuelle UserControl wird geschlossen. buttonAbbrechen_Click(object sender, EventArgs e) private void buttondrucken_Click(object sender, EventArgs e) Hier wird die Form Liste_Veranstaltung aufgerufen. private void Prüft die Datensätze im DataGridView dataGridViewVeranstaltung_CellClick(o und ruft die Funktion fill() auf. bject sender, DataGridViewCellEventArgs e) private void Prüft die Datensätze im DataGridView dataGridViewKontakt_SelectionChange und ruft die Funktion fill() auf. d(object sender, EventArgs e) Marion Heilig 29.03.10 Seite 38 von 55 Dokumentation 4.2.2.4 IAV08/10 RDF-Nürnberg UserControl „Jubiläum“ Methoden public Jubilaeum() Die Objekte des Designers werden initialisiert. Setzt den Button ausgewählt auf „selected“. public void update() Alle Jubiläen werden in das DataGridView geladen. Ereignisbehandlungsroutinen private void Aktuelle UserControl wird geschlossen. buttonAbbrechen_Click(object sender, EventArgs e) private void buttonwaehlen_Click(object sender, EventArgs e) Die Form “Vorlageauswaehlen” wird aufgerufen. Dieser werden 3 Variablen übergeben. AktuelleJubi = aktuelle Jubi_ID (der Datenbank) 2 für Jubiläum und die aktuelle Personen_NR = aktuellePersonID private void buttonGeb_Click(object sender, EventArgs e) Ruft die Form “Liste_Jubilaeum” auf und übergibt "Alter". private void buttonMitgliedsjahre_Click(object sender, EventArgs e) Ruft die Form “Liste_Jubilaeum” auf und übergibt "Mitgliedsjahre". private void Prüft die Datensätze im DataGridView dataGridViewJubi_SelectionChanged(o und ruft die Funktion fill() auf. bject sender, EventArgs e) private void Ruft die Funktion update() auf. radioButtonAlle_CheckedChanged(obje ct sender, EventArgs e) private void Weißt dem DataGridView die radioButtonGeburtstag_CheckedChang entsprechende Sql Abfrage zu. ed(object sender, EventArgs e) private void Weißt dem DataGridView die radioButtonMitgliedsjahr_CheckedCha entsprechende Sql Abfrage zu. nged(object sender, EventArgs e) Marion Heilig 29.03.10 Seite 39 von 55 Dokumentation 4.2.2.5 IAV08/10 RDF-Nürnberg UserControl „Forderungen“ Methoden public Forderungen() Die Objekte des Designers werden initialisiert. private void fill(int index) Aktuelle Ford_ID, Personen_ID wird aus Datenbank in die Variablen gespeichert. public void update() Lädt die Daten aus der Datenbank in das DataGridView. private void select() Lädt die Daten aus der Datenbank in das DataGridView. private void check() Überprüft die RadioButtons und füllt die dem entsprechenden Variablen mit Werten. Ereignisbehandlungsroutinen private void Ruft die Funktion check() auf. radioButtonanzeigenAlle_CheckedChan ged(object sender, EventArgs e) private void Ruft die Funktion check() auf. radioButtonAnzeigenEinzug_CheckedC hanged(object sender, EventArgs e) private void Ruft die Funktion check() auf. radioButtonUeberweisung_CheckedCh anged(object sender, EventArgs e) private void Ruft die Funktion check() auf. radioButtonbar_CheckedChanged(obje ct sender, EventArgs e) private void Ruft die Funktion check() auf. radioButtonoffen_CheckedChanged(ob ject sender, EventArgs e) private void Ruft die Funktion check() auf. radioButtongezahlt_CheckedChanged( object sender, EventArgs e) private void buttonListe_Click(object sender, EventArgs e) Ruft die Form “Liste_Forderung” auf. private void buttonwaehlen_Click(object sender, EventArgs e) Die Form “Vorlageauswaehlen” wird aufgerufen. Dieser werden 3 Variablen übergeben. Marion Heilig 29.03.10 Seite 40 von 55 Dokumentation IAV08/10 RDF-Nürnberg aktuelleFordID = aktuelle Ford_ID (der Datenbank) 1 für Forderung und die aktuelle Personen_NR = aktuellePersonID. private void Prüft die Datensätze im DataGridView dataGridViewForderung_SelectionChan und ruft die Funktion fill() auf. ged(object sender, EventArgs e) private void Ändert den Datensatz in der checkBoxgez_CheckedChanged(object Datenbank. sender, EventArgs e) 4.2.2.6 UserControl „DTAUS“ Wurde aus Zeitgründen nicht realisiert. 4.2.2.7 UserControl „Vorlage“ Methoden public Vorlagen() Die Objekte des Designers werden initialisiert. Die Funktion update() wird aufgerufen. public void update() Hier wird die Listbox neu mit den Daten geladen. private void delete() Hier wird der gewählte Datensatz von der Listbox und der Datenbank gelöscht. private void empty() Felder werden geleert. Ereignisbehandlungsroutinen private void buttonSpeichern_Click(object sender, EventArgs e) Hier werden die Datensätze entsprechend gespeichert oder upgedatet. private void buttonloeschen_Click(object sender, EventArgs e) Die Funktion delete() wird aufgerufen. private void buttonneu_Click(object sender, EventArgs e) Die Funktion empty() wird aufgerufen. private void Aktuelle UserControl wird geschlossen. buttonAbbrechen_Click(object sender, Marion Heilig 29.03.10 Seite 41 von 55 Dokumentation IAV08/10 RDF-Nürnberg EventArgs e) private void Hier wird zu dem gewählten Schreiben listBoxVorlagen_SelectedIndexChange in der ListBox der Name und der Text d(object sender, EventArgs e) in den entsprechenden Feldern angezeigt. 4.2.2.8 UserControl „Spende“ Methoden public Spende() Die Objekte des Designers werden initialisiert. private void fill(int index) Daten werden in die Felder geladen. public void update() Lädt die Daten aus der Datenbank in das DataGridView. public void empty() Felder werden geleert. private void delete() Ausgewählte Spende wird gelöscht. private void ohneDatumInsert() Daten werden ohne Datum in die Datenbank angefügt. private void mitDatumInsert() Daten werden mit Datum in die Datenbank angefügt. private void datumsabfrage() Hier wird das Datum mit der Datenbank abgeglichen und falls eins vorhanden ist, wird dies auf „NULL“ gesetzt. private void updatedatum() Daten werden mit Datum in der Datenbank upgedatet. private void updateohnedatum() Daten werden ohne Datum in der Datenbank upgedatet. Ereignisbehandlungsroutinen private void buttonspeichern_Click(object sender, EventArgs e) Hier werden die Datensätze entsprechend gespeichert oder upgedatet mit den verschiedenen Funktionen ( ohneDatumInsert(), mitDatumInsert(), datumsabfrage(), updatedatum(), updateohnedatum() ) private void buttonneu_Click(object sender, EventArgs e) Die Funktion empty() wird aufgerufen. private void Die Funktion delete() und empty() Marion Heilig 29.03.10 Seite 42 von 55 Dokumentation IAV08/10 RDF-Nürnberg buttonloeschen_Click(object sender, EventArgs e) werden aufgerufen. private void buttonwaehlen_Click(object sender, EventArgs e) Die Form „Mitglied_Spendersuchen“ wird aufgerufen und bekommt von dieser die PersonenID zurück. private void Aktuelle UserControl wird geschlossen. buttonAbbrechen_Click(object sender, EventArgs e) private void buttonwaehlen_Click(object sender, EventArgs e) Die Form “Vorlageauswaehlen” wird aufgerufen. Dieser werden 3 Variablen übergeben. aktuelleSpenderId= aktuelle Spender_Nr (der Datenbank) 0 für Spende und die aktuelle Personen_NR = PNR private void Prüft die Datensätze im DataGridView dataGridViewVeranstaltung_CellClick(o und ruft die Funktion fill() auf. bject sender, DataGridViewCellEventArgs e) private void Prüft die Datensätze im DataGridView dataGridViewKontakt_SelectionChange und ruft die Funktion fill() auf. d(object sender, EventArgs e) 4.2.2.9 UserControl „Archiv“ Methoden public Archiv() Die Objekte des Designers werden initialisiert. private void spende() Daten werden in die Tabelle geladen. private void forderungen() Daten werden in die Tabelle geladen. private void jubilaen() Daten werden in die Tabelle geladen. private void show() Hier wird die Form „Archivanzeigen“ aufgerufen. Dieser werden die Variablen „name“ für den Namen des Schreibens und „text“ für den Inhalt des Schreibens übergeben. private void zuwendmitglied() Daten werden in die Tabelle geladen. private void zuwendspender() Daten werden in die Tabelle geladen. Marion Heilig 29.03.10 Seite 43 von 55 Dokumentation IAV08/10 RDF-Nürnberg Ereignisbehandlungsroutinen private void Die Funktion spende() wird radioButtonSpende_CheckedChanged( aufgerufen. object sender, EventArgs e) private void radioButtonForderung_CheckedChang ed(object sender, EventArgs e) Die Funktion forderungen() wird aufgerufen. private void Die Funktion jubilaen() wird radioButtonJubi_CheckedChanged(obj aufgerufen. ect sender, EventArgs e) private void buttonloeschen_Click(object sender, EventArgs e) Datensatz wird aus der Datenbank gelöscht. Je nach dem welcher RadioButton ausgewählt ist, wird die entsprechende Funktion aufgerufen. private void buttonAnzeigen_Click(object sender, EventArgs e) Die Funktion show() wird aufgerufen. private void Prüft die Datensätze im DataGridView dataGridViewArchiv_SelectionChanged und füllt die Variablen. (object sender, EventArgs e) private void Prüft die RadioButtons und ruft bei dataGridViewArchiv_CellDoubleClick(o den entsprechenden RadioButtons die bject sender, Funktion show() auf. DataGridViewCellEventArgs e) private void Die Funktion zuwendmitglied() wird radioButtonZMitglied_CheckedChange aufgerufen. d(object sender, EventArgs e) private void Die Funktion zuwendspender() wird radioButtonZSpender_CheckedChange aufgerufen. d(object sender, EventArgs e) 4.2.2.10 Form „Archivanzeigen“ Methoden public Archivanzeigen(string name, string text) Marion Heilig Übergebene Variablen werden den lokalen Variablen zugewiesen. Die Objekte des Designers werden initialisiert. 29.03.10 Seite 44 von 55 Dokumentation IAV08/10 RDF-Nürnberg Ereignisbehandlungsroutinen private void Archivanzeigen_Load(object sender, EventArgs e) Die Felder werden mit den Datensätzen gefüllt. 4.2.2.11 Form „Mitglied-Spendersuche“ Methoden public Mitglied_Spendersuchen() Die Objekte des Designers werden initialisiert. public void search() Sucht nach eingegebenen Vorund/oder Nachnamen. Und zeigt die Daten im DataGridView an. public void update() Zeigt alle Daten aus der Tabelle „Person“ im DataGridView an. private void fill(int index) Daten werden in die Felder geladen. public int getID() Gibt die id zurück. Ereignisbehandlungsroutinen private void Prüft die Datensätze im DataGridView dataGridViewKontakt_SelectionChange und ruft die Funktion fill() auf d(object sender, EventArgs e) private void Id wird der aktuell ausgewählten Zeile dataGridViewSuchen_CellDoubleClick( zugewiesen. object sender, Form wird geschlossen. DataGridViewCellEventArgs e) private void buttonalle_Click(object sender, EventArgs e) Ruft die Funktion update() auf. private void buttonsuchen_Click(object sender, EventArgs e) Ruft die Funktion search() auf. private void Aktuelle Form wird geschlossen. buttonAbbrechen_Click(object sender, EventArgs e) private void buttonuebernehmen_Click(object sender, EventArgs e) Marion Heilig Falls eine Zeile (Person) ausgewählt wurde, wird die Personennummer in der „id“ zugewiesen. Aktuelle Form wird geschlossen. 29.03.10 Seite 45 von 55 Dokumentation IAV08/10 RDF-Nürnberg 4.2.2.12 Form „Mitgliedsuchen“ Methoden public Mitgliedsuchen() Die Objekte des Designers werden initialisiert. public void search() Sucht nach eingegebenen Vorund/oder Nachnamen. Und zeigt die Daten im DataGridView an. public void update() Zeigt alle Daten aus der Tabelle „Person“ im DataGridView an. private void fill(int index) Daten werden in die Felder geladen. public int getID() Gibt die id zurück. private void speichern() Falls eine Zeile (Person) ausgewählt wurde, wird die Personennummer in der „id“ zugewiesen. Aktuelle Form wird geschlossen. Ereignisbehandlungsroutinen private void Prüft die Datensätze im DataGridView dataGridViewKontakt_SelectionChange und ruft die Funktion fill() auf d(object sender, EventArgs e) private void Id wird der aktuell ausgewählten Zeile dataGridViewSuchen_CellDoubleClick( zugewiesen. object sender, Form wird geschlossen. DataGridViewCellEventArgs e) private void buttonalle_Click(object sender, EventArgs e) Ruft die Funktion update() auf. private void buttonsuchen_Click(object sender, EventArgs e) Ruft die Funktion search() auf. private void Aktuelle Form wird geschlossen. buttonAbbrechen_Click(object sender, EventArgs e) private void buttonuebernehmen_Click(object sender, EventArgs e) Marion Heilig Funktion speichern() wird aufgerufen. 29.03.10 Seite 46 von 55 Dokumentation IAV08/10 RDF-Nürnberg 4.2.2.13 From „Vorlageauswählen“ Methoden private void speichern() Fügt den Datensatz in die entsprechende Tabelle ein. private void search() Sucht den eingegeben Namen und gibt den Datensatz im DataGridView aus. Ereignisbehandlungsroutinen private void Aktuelle UserControl wird geschlossen. buttonAbbrechen_Click(object sender, EventArgs e) private void buttonsuchen_Click(object sender, EventArgs e) Ruft die Funktion search() auf. private void buttonuebernehmen_Click(object sender, EventArgs e) Ruft die Funktion speichern() auf und schließt die aktuelle Form. private void buttonalle_Click(object sender, EventArgs e) Zeigt alle vorhandenen Datensätze der Tabelle im DataGridView an. private void Ruft die Funktion speichern() auf und dataGridViewSchreiben_CellDoubleClic schließt die aktuelle Form. k(object sender, DataGridViewCellEventArgs e) 4.2.2.14 Form „Termine“ public Termine() Die Objekte des Designers werden initialisiert. public void update() Beide DataGridViews werden mit den entsprechenden Daten gefüllt. 4.2.2.15 Form „Vorlageauswaehlen Methoden public Vorlageauswaehlen(int id, int typ, int PersonID) Marion Heilig Hier werden die übergebenen Variablen den lokalen Variablen zugewiesen. 29.03.10 Seite 47 von 55 Dokumentation IAV08/10 RDF-Nürnberg private void speichern() Entsprechend welche Werte übergeben wurden, werden verschiedene Datenbankeinträge gemacht und die Form „Druck.Liste_Vorlage“ aufgerufen. Dieser werden die Personennummer, den Typ (Spendeschreiben,Jubilaenschreiben,F orderungsschreiben) und die VorlagenID übergeben. private void search() Sucht den eingegeben Namen und gibt den Datensatz im DataGridView aus. Ereignisbehandlungsroutinen private void Aktuelle Form wird geschossen. buttonAbbrechen_Click(object sender, EventArgs e) private void buttonsuchen_Click(object sender, EventArgs e) Die Funktion search() wird aufgerufen. private void buttonDrucken_Click(object sender, EventArgs e) Überprüft die Anzahl der Zeilen, sind diese nicht 0 wird die Funktion speichern() aufgerufen. private void buttonalle_Click(object sender, EventArgs e) DataGridView wird mit entsprechenden Daten gefüllt. private void Ist die Variable Typ = 0 wird die Form buttonZuwendungsbescheid_Click(obj „Druck.DruckZuwendungsbescheidSpe ect sender, EventArgs e) nde“ aufgerufen. Ist die Variableyp = 1 wird die Form „Druck.DruckZuwendungsbescheidMitg lied“ aufgerufen. Beiden werden die Personennummer mit übergeben. private void Prüft das DataGridView und die dataGridViewSchreiben_CellClick(obje entsprechenden Variablen werden mit ct sender, DataGridViewCellEventArgs Daten gefüllt. e) Marion Heilig 29.03.10 Seite 48 von 55 Dokumentation IAV08/10 RDF-Nürnberg 4.2.2.16 Form „DruckZuwendungsbescheidMitglied“ Methode public Die übergebene Variable wird der DruckZuwendungsbescheidMitglied(int lokalen Variable zugewiesen. Die id) Objekte des Designers werden initialisiert. Ereignisbehandlungsroutinen private void Die Klasse Personenreport() wird DruckZuwendungsbescheidMitglied_Lo aufgerufen, dieser werden die id für ad(object sender, EventArgs e) Personennummer und eine 1 für Mitglied übergeben. Die Funktion GetPersonenrep() wird aufgerufen und gibt die entsprechenden Daten zurück, welche im ReportViewer angezeigt werden. private void reportViewer1_Print(object sender, CancelEventArgs e) In der Tabelle „Forderungen“ wird der aktuelle Datensatz mit dem aktuellen Datum aktualisiert. 4.2.2.17 Form „DruckZuwendungsbescheidSpende“ Methode public Die übergebene Variable wird der DruckZuwendungsbescheidSpende(int lokalen Variable zugewiesen. Die id) Objekte des Designers werden initialisiert. Ereignisbehandlungsroutinen private void reportViewer1_Load(object sender, EventArgs e) Die Klasse Personenreport() wird aufgerufen, dieser werden die id für Personennummer und eine 2 für Spender übergeben. Die Funktion GetPersonenrep() wird aufgerufen und gibt die entsprechenden Daten zurück, welche im ReportViewer angezeigt werden. private void reportViewer1_Print(object sender, In der Tabelle „Spende“ wird der aktuelle Datensatz mit dem aktuellen Marion Heilig 29.03.10 Seite 49 von 55 Dokumentation IAV08/10 CancelEventArgs e) RDF-Nürnberg Datum aktualisiert. 4.2.2.18 Form „Liste_Forderung“ Methoden public Liste_Forderung() Die übergebene Variable wird der lokalen Variable zugewiesen. Die Objekte des Designers werden initialisiert. private void daten() SQL-Abfrage wird ausgeführt und in das DataTable gespeichert. Ereignisbehandlungsroutinen private void crystalReportViewerFord_Load(object sender, EventArgs e) Ruft die Funktion daten() auf. CrystalReportViewer wird mit den aktuellen Daten aufgerufen. 4.2.2.19 Form „Liste_Jubilaeum“ Methoden public Liste_Jubilaeum(string wahl) Die übergebene Variable wird der lokalen Variable zugewiesen. Die Objekte des Designers werden initialisiert. private void daten() Je nach Inhalt der Variable „wahl“ werden verschiedene Sql-Abfragen erstellt und diese werden in das DataTable gespeichert. CrystalReportViewer wird mit den aktuellen Daten aufgerufen. Ereignisbehandlungsroutinen private void crystalReportViewer1_Load(object sender, EventArgs e) Marion Heilig Ruft die Funktion daten() auf. 29.03.10 Seite 50 von 55 Dokumentation IAV08/10 RDF-Nürnberg 4.2.2.20 Form „Liste_Mitglied“ Methoden public Liste_Mitglied() Die Objekte des Designers werden initialisiert. private void daten() SQL-Abfrage wird ausgeführt und in das DataTable gespeichert. Ereignisbehandlungsroutinen private void Ruft die Funktion daten() auf. crystalReportViewerMitglied_Load(obje CrystalReportViewer wird mit den ct sender, EventArgs e) aktuellen Daten aufgerufen. 4.2.2.21 Form „Liste_Reisekosten“ Methoden public Liste_Reisekosten() Die Objekte des Designers werden initialisiert. private void daten() SQL-Abfrage wird ausgeführt und in das DataTable gespeichert. Ereignisbehandlungsroutinen private void crystalReportReiseliste_Load(object sender, EventArgs e) Marion Heilig Ruft die Funktion daten() auf. CrystalReportViewer wird mit den aktuellen Daten aufgerufen. 29.03.10 Seite 51 von 55 Dokumentation IAV08/10 RDF-Nürnberg 4.2.2.22 Form „Liste_Spender“ Methoden public Liste_Spender() Die Objekte des Designers werden initialisiert. private void daten() SQL-Abfrage wird ausgeführt und in das DataTable gespeichert. Ereignisbehandlungsroutinen private void crystalReportSpender_Load(object sender, EventArgs e) Ruft die Funktion daten() auf. CrystalReportViewer wird mit den aktuellen Daten aufgerufen. 4.2.2.23 Form „Liste_Veranstaltung“ Methoden public Liste_Veranstaltung() Die Objekte des Designers werden initialisiert. private void daten() SQL-Abfrage wird ausgeführt und in das DataTable gespeichert. Ereignisbehandlungsroutinen private void crystalReportViewerVeranstaltung_Load(objec t sender, EventArgs e) Marion Heilig Ruft die Funktion daten() auf. CrystalReportViewer wird mit den aktuellen Daten aufgerufen. 29.03.10 Seite 52 von 55 Dokumentation IAV08/10 RDF-Nürnberg 4.2.2.24 Form „Liste_Vorlage“ Methoden public Liste_Vorlage(int id,int typ, int vorlage) Die übergebenen Variablen werden den lokalen Variablen zugewiesen. Die Objekte des Designers werden initialisiert. Ereignisbehandlungsroutinen private void Liste_Vorlage_FormClosing(object sender, FormClosingEventArgs e) „MessageBox“ wird aufgerufen. private void reportViewer1_Load(object sender, EventArgs e) Die Klasse Vorlageschreiben wird aufgerufen, dieser werden 3 Variablen übergeben. (Id = Personennummer, typ =Spende,Forderung,Jubiläum und vorlage = Vorlagen_ID) Die Funktion getschreiben() wird aufgerufen und gibt die entsprechenden Daten zurück, welche im ReportViewer angezeigt werden. private void reportViewer1_Print(object sender, CancelEventArgs e) Das aktuelle Datum wird in die Tabelle Schreiben hinzugefügt. 4.2.2.25 Klasse „DBHandler“ private MySqlConnection Connection() Stellt die Verbindung zur Datenbank her. public MySqlCommand execute(string sql) Öffnet die Verbindung zur Datenbank. Prüft ob diese besteht und gibt eventuell eine Fehlermeldung aus. public DataTable read(string sql) Liest den Datensatz aus der Tabelle. public void write_delete(string sql) Öffnet die Verbindung zur Datenbank. Methoden zum Ausführen von insert,update und delete Befehlen. public double get_value(string sql) Öffnet die Verbindung zur Datenbank. Liest einen Wert aus einer Tabelle aus und gibt ihn als Double zurück. Marion Heilig 29.03.10 Seite 53 von 55 Dokumentation IAV08/10 RDF-Nürnberg 4.2.2.26 Klasse „pruefe“ class pruefeforderung Hier werden die zugewiesenen Beitragsklassen einer Person überprüft und entsprechende Forderungen erstellt. class dropboxcontainer Gibt die Variable name zurück. class jub Prüft die Datenbank der Geburtstage und Jubiläen, errechnet die Daten und erstellt, falls noch nicht vorhanden, verschiedene Einträge in die Tabelle Jubiläum. 4.2.2.27 Klasse „Schreiben“ class Schreiben Set- und Get-Methoden der Klasse. class Vorlageschreiben Liste wird anhand entsprechender Werte angelegt und zurückgegeben. 4.2.2.28 Klasse „Personenreport“ class Personreport Set- und Get-Methoden der Klasse. class Personenreport Liste wird anhand entsprechender Werte angelegt und zurückgegeben. 4.2.2.29 CrystalReportviewer Für die Listen mit den ReportViewer wurde die Datei Data.xsd erstellt. Hier wurden je nach Liste ein DataTable mit den entsprechenden SQL-Abfragen erstellt. In den Formen „Liste_Mitglied“, „Liste_Reisekosten“, „Liste_Veranstaltung“, „Liste_Forderungen“, „Liste_Jubilaeum“ werden die entsprechenden DataTables verwendet. Marion Heilig 29.03.10 Seite 54 von 55 Dokumentation IAV08/10 RDF-Nürnberg 5 Quellen Buch: Windows Forms mit Visual C++ ISBN 978-3-935042-88-8 Internet: http://msdn.microsoft.com Internet: www.dev.mysql.com Internet: http://openbook.galileocomputing.de/visual_csharp/ Marion Heilig 29.03.10 Seite 55 von 55