commit 9fed48bdb9deca1fe876e2fd9f7f6061f4f3c3ba Author: DustVoice Date: Fri Jul 14 09:40:08 2023 +0200 First version diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a3fef77 --- /dev/null +++ b/.gitignore @@ -0,0 +1,8 @@ +/* +/*/ +!/.gitignore + +!/Benutzerhandbuch.typ +!/dustypst + +!/img/ diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..4b5fdf1 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "dustypst"] + path = dustypst + url = https://git.dustvoice.de/DustVoice/dustypst.git diff --git a/Benutzerhandbuch.typ b/Benutzerhandbuch.typ new file mode 100644 index 0000000..b69b308 --- /dev/null +++ b/Benutzerhandbuch.typ @@ -0,0 +1,735 @@ +#import "dustypst/lang_de.typ": default_lang, note, important, tip, warning, caution +#import "dustypst/dustypst.typ": userdoc_project, linkfn, filepath, fill-box, code + +#show: userdoc_project.with( + title: "Dokumentation VAMV - Benutzerhandbuch", + authors: ( + (name: "David Holland", email: "Holland.David@lsjv.rlp.de", affiliation: "Entwickler", phone: "3204"), + ), + lang: default_lang, + outlined: false, +) + +#let screenshot(name, filename: none, folder: "img", extension: ".png", width: 100%) = [ + #figure( + image(folder + "/" + if filename == none { name + extension } else { filename }, width: width), + caption: name + )#label(name + .replace(" ", "_") + .replace("(", "") + .replace(")", "") + .replace(",", "_") + ) +] + +#let heading_(level, content) = { + set heading(numbering: none) + heading(level: level, outlined: false)[#content] +} + +#let def(reference) = super[(#reference)] + +// === CONTENT START === + +#outline(title: "Inhaltsverzeichnis") +#outline(title: "Inhaltsverzeichnis Abbildungen", target: figure) + +#pagebreak(weak: true) + +#heading_(1)[Tipps zur Verwendung dieses Handbuchs] + +Dieses Handbuch verwendet einige Konventionen und Formatierungen, die es Ihnen erleichtern sollen die Informationen aufzunehmen. Außerdem ist beabsichtigt, dass Sie auch nach dem erstmaligen Durchlesen, Informationen schnell und zuverlässig wiederfinden können, um eine schrittweise Einführung in das Programm zu ermöglichen. + +#tip[ + Falls Sie diesen Abschnitt überspringen und direkt zur Präambel gehen möchten, klicken Sie bitte hier: + + #let preamble_loc = [@preamble].target + #link(preamble_loc)[*Springe zur Präambel*] +] + +#heading_(2)[Blöcke] + +Es gibt verschiedene Blöcke, die bestimmte Inhalte besonders hervorheben und beispielsweise entweder zusätzliche Informationen bereitstellen oder aber auch vor bestimmten häufigen Fehlern warnen. + +#note[ + Eine Anmerkung mit zusätzlichen Informationen oder Klarstellungen +] +#tip[ + Ein Hinweis oder Tipp zur besseren Verwendung oder Zusatzinformationen, die hilfreich sein können +] +#important[ + Wichtige Dinge, die es zu beachten gilt, oder die so nicht selbstverständlich sind +] +#warning[ + Warnungen, die vor häufigen Fehlern warnen und diese verhindern sollen. +] +#caution[ + Hier ist größte Vorsicht geboten, um nicht versehentlich genau das Gegenteil von dem zu tun, was beabsichtigt wurde. +] + +#heading_(2)[Begriffe] + +Dinge, die Sie genau so auf dem Bildschirm wiederfinden, oder im wörtlichen Sinne gemeint sind, bzw. feststehende Begrifflichkeiten darstellen, werden in der Regel in einer `Schreibmaschinenschrift` angezeigt. + +#heading_(2)[Links] + +Wenn es darum geht im Fließtext verschiedene Abschnitte (@preamble) zu erwähnen, oder Abbildungen (@Installations-Dialog) zu referenzieren, so sind diese immer mit einem Link versehen. +Sie können einfach auf den entsprechenden Text klicken, um zu der jeweiligen Stelle im Dokument zu springen. + +#note[ + Wenn Sie das PDF in einem hiermit kompatiblen Browser ansehen, können Sie i.d.R. sogar mit den "Seite vor / zurück" Knöpfen nach Klicken auf einen Link zurück zum Ausgangspunkt springen. +] + +#heading_(3)[Abschnitte] + +Falls es sich um einen Begriff handelt, der an anderer Stelle definiert / erklärt wurde, so wird dies in kleinerer Schrift angegeben: + +/ Beispiel: Wir haben die Installation#def[@install] zuvor besprochen. + +#note[ + Damit Sie diesem Link folgen können, müssen Sie in den meisten Programmen etwas unter den Text klicken +] + +#heading_(3)[Weblinks] + +Ein Weblink wird in der Fußnotenzeile immer nochmal separat als vollständiger Link angegeben: + +/ Beispiel: Hier geht es zur Webpräsenz des #linkfn("https://lsjv.rlp.de/de/startseite/")[LSJV]. + +#note[ + Der Link ist jedoch nach wie vor anklickbar +] + +#heading_(3)[Dateipfade] + +Wenn es sich um einen Dateipfad/-namen handelt, so ist dieser blau hinterlegt: + +/ Beispiel: #filepath("C:\\Windows") + +#note[ + Sie müssen den Dateipfad i.d.R. im Windows-Explorer öffnen, da dieser entweder nicht immer anklickbar ist, oder Ihr PDF-Programm das Öffnen von Datei-Links nicht unterstützt. +] + +#heading_(2)[Auflistungen mit Erklärungen] + +Falls eine Auflistung von Steuerelementen, Optionen, etc. eine Erklärung zu den einzelnen Punkten benötigt, sieht das in etwa so aus: + +/ Ja: Bestätigt den Dialog +/ Nein: Lehnt den Dialog ab +/ Abbrechen: Bricht den gesamten Vorgang ab + +#pagebreak(weak: true) + += Präambel + +Dieses Dokument dient der Einführung der Endanwender in die Software `VAMV` in der Programmversion `1.0.0` #text(.75em, linkfn("https://semver.org/")[(Semantische Versionierung)]), als auch als Dokumentation und Nachschlagewerk. + +Im Folgenden werden der Großteil aller Funktionalitäten aufgelistet und erläutert. +Besonderer Fokus liegt hierbei auch auf jenen Funktionen, deren vermehrte und einfache Verwendung und Bedienung eine Integration in den Arbeitsablauf empfiehlt. + +Das Dokument ist in mehrere Kapitel unterteilt, sodass eine sinngemäße Aufteilung, leichte Lesbarkeit und leichtes Wiederfinden von Informationen angestrebt wird. + += Installation + +Zunächst muss die Software auf dem PC installiert werden. + +#note[ + In der Regel werden hierfür keine Administrator-Berechtigungen benötigt. +] + +#important[ + Wenden Sie sich an den Ansprechpartner, falls Ihnen dies nicht möglich ist. +] + +Hierfür müssen Sie den `Explorer` öffnen und zu folgendem Dateipfad auf dem Laufwerk #link("file:///R:/")[#filepath("R:")] (mit dem Namen #code("Vorlagen$")) navigieren: #link("file:///R:/VAMV/Programmdateien/VAMV/")[#filepath("R:\\VAMV\\Programmdateien\\VAMV")]. + +Hier finden Sie eine Datei namens #link("file:///R:/VAMV/Programmdateien/VAMV/VAMV.application")[#filepath("VAMV.application")]. +Diese Datei müssen Sie nun öffnen. + +Infolgedessen erscheint indessen ein Bestätigungsfenster (@Installations-Dialog), wo Sie auf `Installieren` klicken müssen. + +#screenshot("Installations-Dialog", width: 80%) + +Die Installation sollte inzwischen automatisch durchlaufen, die Software downloaden und anschließend für Ihren Benutzer installieren und anschließend automatisch öffnen. + +#tip[ + Sie finden die Anwendung in Zukunft ganz einfach unter dem Namen _VAMV_ in der Windows-Suche. +] + += Updates + +Fall Sie die Software bereits installiert haben, brauchen Sie in der Regel nichts weiter tun, als das Programm zu öffnen. +Beim Start prüft das Programm automatisch auf Aktualisierungen und aktualisiert die Software, falls ein Update nötig ist. + +#important[ + Falls dies bei Ihnen nicht der Fall sein sollte, oder dieser Prozess fehlschlägt, setzen Sie sich bitte mit der Ansprechperson in Verbindung. +] + += Bedienung + +Nachdem Sie also die Software geöffnet haben, begrüßt Sie erstmal eine ziemlich schlichte Ansicht (@Programmstart) + +#screenshot("Programmstart") + +== Die Menüleiste + +In der oberen Zeile sehen Sie eine Menüleiste, über die Sie auf alle Teile des Programms zentral zugreifen können. + +/ Adressverwaltung#def[@address_man]: Hierüber gelangen Sie zur Adressdatenverwaltung, wo Sie die Adressdatensätze verwalten können + +/ Veranstaltungsmanagement: _In der aktuellen Version deaktiviert_ + +/ Teilnahmen: _In der aktuellen Version deaktiviert_ + +/ Suchwort#def[@such_man]: Hierüber gelangen Sie zur Suchwortverwaltung, wo sie Suchworte verwalten können + +/ Admin -> Benutzerverwaltung#def[@user_man]: Hier können Sie die Nutzer dieses Programms verwalten, falls Sie über die notwendigen Berechtigungen verfügen (@Menü_Benutzerverwaltung) + +/ ? -> Info#def[@prog_info]: Hier findet sich u.A. die Version die Sie aktuell verwenden, sowie weitere Informationen über das Programm (@Menü_Info) + +#screenshot("Menü Benutzerverwaltung", width: 40%) +#screenshot("Menü Info", width: 20%) + +Wenn Sie jetzt eines der Elemente anklicken, gelangen Sie zum jeweiligen Programmabschnitt. + +#note[ + Hierbei schließt sich das Fenster nicht, sondern es wird ein neuer Tab für die jeweilige Bedienung geöffnet. + Somit können Sie optimal Multitasken. +] + +#tip[ + Sie können sogar auch innerhalb eines Programmabschnitts Bedienungen in einem anderen Abschnitt vornehmen, ohne den Datensatz, den Sie gerade bearbeiten, verlassen zu müssen. + + + Sie finden dazu aber mehr in @cascading. +] + +== Die Tab-Leiste + +Verschiedene Programmoperationen öffnen (Unter-)Tabs in der Oberfläche. +Diese Tabs sind anwählbar, um das entsprechende Unterfenster anzuzeigen. + +Weiterhin sind diese Tabs mithilfe von Drag-and-drop verschieb- und sortierbar. +- Führen Sie hierzu einfach den Mauszeiger über einen Tab. +- Halten Sie nun die linke Maustaste gedrückt und ziehen Sie den Tab in einen vorhandenen Zwischenraum (zwischen zwei Tabs), oder an den Anfang, oder das Ende. +- Lassen Sie die Maus los + +Falls zu viele Tabs geöffnet sind, um in die Tab-Leiste zu passen, lässt sich die Leiste, mithilfe der dann erscheinenden Knöpfe, nach links und rechts scrollen (@Tab_Scroll). + +#screenshot("Tab Scroll") + +== Suchansicht + +(Exemplarisch @Suche_Adressdatensatz) + +/ Die Suchansicht#def[@master_view]: ist die erste Ansicht, die Sie beim Öffnen eines Programmabschnitts#def[@prog_part] zu Gesicht bekommen. + +/ Die Menüleiste#def[@menu_bar]: bleibt unverändert bestehen. + +/ Der Tabname: beginnt immer mit `Suche`. Unter dem Tabnamen sind zwei Knöpfe:\ + #box[ + / Schließen: Schließt die Suchansicht + / Eintrag hinzufügen: Erstellt einen leeren Datensatz + ] + +Darunter befindet sich eine tabellarische Auflistung aller Datensätze. + +#note[ + Für genauere Informationen zur Bedienung dieser Tabellenansichten, siehe @tables. +] + +Hier können Sie die Datensätze durchsuchen und ansehen + +=== Öffnen eines Datensatzes + +Sie gelangen in der Regel über einen Doppelklick zur Detailansicht#def[@detail_view] des entsprechenden Programmteils. + +#tip[ + Alternativ lässt sich ein Datensatz auch mithilfe der Tastatur öffnen, hierzu mehr in @keyboard_nav. +] + +== Detailansicht + +(Exemplarisch @Adressdatensatz_Detailansicht_Hauptseite) + +Nachdem Sie einen Datensatz geöffnet haben, öffnet sich ein neuer Tab mit der Detailansicht des Datensatzes. + +Die Menüleiste#def[@menu_bar] bleibt auch hier unverändert bestehen. + +Der Tabname beginnt immer mit einer Beschreibung des Datensatztyps (z.B. `Adressdatensatz [...]`), gefolgt von einer Beschreibung des Datensatzes (z.B. der Name). + +=== Knöpfe + +Unter dem Tabnamen sind drei Knöpfe: + +/ Schließen: Schließt den Adressdatensatz +/ Schließen und Speichern: Verhält sich wie eine Kombination aus `Speichern` und `Schließen` in einem Handgriff/Knopfdruck. In der Regel praktischer als beides separat zu bedienen +/ Speichern: Speichert die Daten aus der aktuellen Ansicht in die Datenbank +/ Löschen: Löscht den Datensatz unwiderruflich aus der Datenbank + +#warning[ + Es ist wichtig, zwischen `Schließen` und `Speichern und Schließen` zu unterscheiden. + + `Schließen` schließt die Ansicht ohne Rückfrage, um versehentliches Speichern von u.U. versehentlich modifizierten Daten zu vermeiden! + + Wenn Sie also Ihre Änderungen gespeichert haben wollen, ist hier immer `Speichern und Schließen` die richtige Wahl. + + Falls Sie den Datensatz jedoch nur zum Lesen geöffnet und keine Modifizierung vorgenommen haben, ist `Schließen` sogar die bessere Option, da hier ein versehentliches Überschreiben von Daten vermieden wird. +] + +==== Speichern + +Vor dem Speichern vergewissert sich das Programm, dass Sie tatsächlich speichern möchten (@Speichern_Dialog). +Haben Sie das Speichern initiiert, klicken Sie einfach auf `Ja`. +Sind Sie versehentlich auf `Speichern` gekommen, klicken Sie einfach auf `Nein` und der Speichervorgang wird abgebrochen. +Beide Fälle quittiert das Programm (@Speichern_Bestätigung, @Speichern_Abbruch). + +#screenshot("Speichern Dialog", width: 60%) +#screenshot("Speichern Bestätigung", width: 50%) +#screenshot("Speichern Abbruch", width: 80%) + +Vor dem Speichern wird weiterhin kontrolliert, ob alle Pflichtfelder befüllt sind und im Falle eines Adressdatensatzes, ob die E-Mail-Adresse korrekt ist. + +Ist dies nicht der Fall, wird der Speichervorgang abgebrochen (@E-Mail_falsch). + +#screenshot("E-Mail falsch", width: 70%) + +#warning[ + Wenn Sie den Vorgang abgebrochen haben oder das Programm die Speicherung verweigert hat, sind Ihre Daten noch ungespeichert. + + Sie müssen die Daten erst in irgendeiner Form (berichtigen und) speichern, damit diese beim Schließen nicht verloren gehen! +] + +=== Tabs + +Darunter befinden sich weitere Tabs, die die Detailansicht in weitere Sektionen unterteilen. Hier sind je nach Programmabschnitt (und je nach deaktivierten Programmteilen, siehe @prog_part) verschiedene Tabs sichtbar und verfügbar + +/ Hauptseite#def[@hauptseite]: Hier sind ein Großteil der Daten aus dem Datensatz erfasst +/ Subtabs#def[@subtab]:\ + #box[ + / Suchworte: Hierüber lassen sich dem Datensatz Suchworte#def[@such_man] zuweisen + / Veranstaltungen: Hierüber lassen sich z.B. Teilnahmen zuweisen + / Adressdatensätze: Hierüber lassen sich dem Datensatz Adressdatensätze#def[@address_man] zuweisen + ] + +==== Hauptseite + +Hier sind der Großteil der Felder des Datensatzes abgebildet und stehen zum Lesen oder zur Bearbeitung zur Verfügung. + +Dabei lassen sich + +- Textfelder normal editieren + + #important[ + Alle Felder mit einem gelben Hintergrund, vor allem das häufig vorhandene Feld `Nummer`, lassen sich nicht bearbeiten! + + Diese Felder sind in der Regel automatisch generiert und deshalb nicht von der Anwenderseite aus modifizierbar! + ] + +- Felder mit einem kleinen Pfeil nach unten (#sym.arrowhead.b) am rechten Rand des Feldes aufklappen und erweitert bearbeiten + +- Felder mit einem kleinen Pfeil nach unten (#sym.triangle.filled.small.b) in der Mitte des Feldes anklicken und öffnen damit den entsprechenden Tab + +==== Weitere Tabs + +In diesen Tabs, wie z.B. `Suchworte` oder `Adressdatensätze`, lassen sich einem Datensatz andere Datensätze aus einem anderen Programmteil zuweisen. + +#note[ + Wenn Ihnen die Tabellen und die Ansicht unter diesen Tabs bekannt vorkommt, liegen Sie genau richtig. + + Der einzige Unterschied zur Suchansicht#def[@master_view] ist hier, dass eine zusätzliche Spalte ganz links hinzukommt, die es ermöglicht, die Datensätze zu (de-)selektieren. +] + +Hier können Sie nun über Haken-Kästchen Datensätze an- bzw. abwählen. +Um die Zuweisung zu speichern, müssen Sie einfach den Datensatz speichern#def[@detail_view_buttons]. + += Programmabschnitte + +Das Programm ist in mehrere Abschnitte unterteilt, die eine Trennung der Daten, sowie eine unterschiedliche Bedienung bewirken, jedoch miteinander zusammenarbeiten. + +Im Folgenden werden diese verschiedenen Abschnitte besprochen. + +== Datenintegrität + +In der Regel sollten Sie über dieses Thema nicht allzu viel nachdenken müssen, denn die Daten synchronisiert das Programm automatisch bei Änderungen zwischen den einzelnen Teilen und Tabs. + +#note[ + Dies geschieht soweit möglich, sprich bei lokalen Änderungen o.Ä., ganz ohne Datenbankzugriff, was in vielen Aspekten die Performance steigert und die Server vor unnötiger Auslastung schützt. +] + +#important[ + Wenn Sie jedoch ganz sicher sein wollen, dass Sie tatsächlich die aktuellen Daten aus der Datenbank vorliegen haben, beispielsweise wenn Ihr(e) Kolleg:in eine Änderung an einem Datensatz vorgenommen hat, kommen Sie zwangsläufig nicht um ein erneutes Holen der Daten aus der Datenbank nicht umhin. + + Hierzu schließen Sie einfach den entsprechenden Tab und öffnen ihn anschließend neu. + Dies sorgt in der Regel für eine Aktualisierung der lokalen Daten. +] + +== Die Adressdatenverwaltung + +=== Suchansicht + +Wenn Sie die Adressverwaltung öffnen, sehen Sie zunächst die *Suchansicht* (@Suche_Adressdatensatz). + +#screenshot("Suche Adressdatensatz") + +Wenn Sie in dieser nun einen Datensatz öffnen#def[@open_detail_view], öffnet sich ein neuer Tab mit der Detailansicht + +=== Detailansicht + +Wenn Sie einen Adressdatensatz öffnen (@Adressdatensatz_Detailansicht_Hauptseite), oder einen neuen Adressdatensatz anlegen (@Adressdatensatz_Detailansicht_Hauptseite__neuer_Eintrag) sehen Sie nun die Hauptseite der Detailansicht des Datensatzes. + +#screenshot("Adressdatensatz Detailansicht (Hauptseite)") +#screenshot("Adressdatensatz Detailansicht (Hauptseite, neuer Eintrag)") + +Ein Adressdatensatz kann verschiedene Felder haben. +Pflichtfelder sind im Folgenden mit einem #emoji.lock markiert. + +/ Institution 1 / 2 / 3: Hierüber kann die Zugehörigkeit eines Adressdatensatzes zu einer (oder mehreren) Institutionen vermerkt werden. (z.B. `Kreisverwaltung Mainz-Bingen`) +/ Anrede #emoji.lock: Drei hauptsächlich verwendeten Anreden stehen zur Auswahl: `Herr`, `Frau` und `(Div.)` für alle weiteren Fälle. Zum Spezialfall `(Inst.)` finden Sie mehr in @inst_datensatz +/ Titel: Titel wie z.B. `Dr. rer. nat.`, `Dipl. Ing.`, etc. +/ Vorname: Der Vorname +/ Nachname #emoji.lock: Der (Nach-)Name (siehe ebenfalls @inst_datensatz für den Spezialfall) +/ Telefon: Die Telefonnummer als Zeichenfolge +/ Fax: Die Faxnummer als Zeichenfolge +/ E-Mail: Die E-Mail-Adresse (wird vor dem Speichern auf Richtigkeit überprüft) +/ Straße: Die Straße der Anschrift +/ Hausnummer: Die Hausnummer der Anschriftsadresse +/ Postleitzahl: Die Postleitzahl der Anschriftsadresse +/ Ort: Der Ort der Anschriftsadresse +/ Suchworte: Öffnet den `Suchworte` Tab + +==== `Suchworte`-Tab + +Hier können Sie über die Haken-Kästchen verschiedene Suchworte zu einem Adressdatensatz zuweisen (@Adressdatensatz_Detailansicht_Suchwort-Tab). + +Ein Haken bedeutet hierbei, dass dieses Suchwort dem Adressdatensatz zugeordnet ist, ein leeres Kästchen, dass keine Verknüpfung besteht. + +#screenshot("Adressdatensatz Detailansicht (Suchwort-Tab)") + +#note[ + Im Ursprungszustand der Datenbank gab es lediglich die Zuweisung zu zwei Suchworten. + + Zum einen zu einem Suchwort, welches die Herkunft-Excel-Tabelle, welcher der Datensatz entstammt, angibt. + Zum Anderen u.U. dem speziellen Suchwort `X`, welches signalisiert, dass diese Person mittlerweile (aus der Institution) ausgeschieden ist. +] + +==== Sonderfälle + +Bei den Adressdatensätzen kann es zu manchen Sonderszenarien kommen, die separat behandelt werden müssen, um einen geregelten Programmablauf und die Integrität der Daten sicherstellen zu können. + +===== Institution als Datensatz + +Wie zuvor in @address_man_detail_view erwähnt, sind sowohl die Anrede als auch der (Nach-)Name Pflichtfelder eines jeden Datensatzes und die Institutionen-Felder lediglich zur groben Zuordnung einer Person zu einer Institution. + +Was ist aber nun die Vorgehensweise, falls man eine Institution als Solches als Datensatz eingetragen werden muss, da es beispielsweise keinen konkreten Ansprechpartner gibt, welcher erfasst werden könnte? + +Ganz einfach, hier kommt die zusätzliche "Anrede" ins Spiel. + +Wählen Sie zum Erstellen eines solchen Datensatzes einfach `(Inst.)` als Anrede aus und tragen den Namen der Firma / Behörde / ... im Feld `Nachname` ein. + +===== Dopplung von Datensätzen + +Es sind zum großen Teil zwei Szenarien denkbar, die zur Folge haben, dass ein neu angelegter Datensatz in Konflikt mit einem schon vorhandenen Datensatz in der Datenbank steht. + +====== Die Person hat denselben Namen + +Je nach Name ist es durchaus gar nicht so unüblich, dass zwei unterschiedliche Personen denselben Namen tragen. +So sind Allerweltsnamen wie z.B. _Fr. Anna Meyer_ häufiger in der Bevölkerung vertreten. + +In diesem Beispiel nehmen wir an, dass schon eine _Fr. Anna Meyer_ mit Wohnort _Mainz_ in der Datenbank erfasst ist. +Nun wollen wir aber einen Datensatz für eine _Fr. Anna Meyer_ aus _Trier_ anlegen, was mit der Dame aus _Mainz_ in Konflikt steht (@Konflikt_Szenario_Neu) + +#screenshot("Konflikt Szenario Neu") + +====== Die Daten haben sich geändert + +Es kann auch vorkommen, dass eigentlich gar nicht beabsichtigt wurde einen komplett neuen Datensatz anzulegen und eigentlich die Aktualisierung des schon in der Datenbank vorhandenen Datensatzes beabsichtigt war. +In diesem Fall ist ein erneutes Abändern der Daten nicht vonnöten. +Das Vorgehen wird im Folgenden @dup_resolve besprochen. + +In diesem Beispiel nehmen wir an, dass schon eine _Fr. Anna Meyer_ mit Wohnort _Mainz_ in der Datenbank erfasst ist. +Nun ist eine Mail der Fr. Meyer eingegangen, in der Sie darüber informiert, dass Sie ab sofort einer neuen Institution angehörig ist und übermittelt ihre aktuellen Daten (@Konflikt_Szenario_Aktualisieren). + +#screenshot("Konflikt Szenario Aktualisieren") + +#note[ + Ebenfalls denkbar wäre ein Umzug, etc. +] + +====== Konfliktresolution + +Um diese Szenarien jedoch aufzulösen, bemerkt das Programm den Konflikt und meldet sich mit einer Fehlermeldung zu Wort (@Konflikt_Dialog). + +#screenshot("Konflikt Dialog", width: 70%) + +Hierbei gibt es nun drei Schaltflächen und damit Möglichkeiten den Konflikt zu beheben + +/ Ja: Signalisiert dem Programm, dass ein vorhandener Eintrag aus der Datenbank *überschrieben* werden soll und öffnet den Auswahl-Dialog (@Konflikt_Auswahl-Dialog) -> passend zu Szenario in @changed_data +/ Nein: Signalisiert dem Programm, dass ein *neuer* Datensatz erstellt werden soll und speichert diesen in die Datenbank -> passend zu Szenario in @same_person +/ Abbrechen: Bricht den Vorgang ab, *erhält jedoch die Daten im aktuellen Tab*, sodass Sie unbesorgt noch einmal in der Suchansicht die vorhandenen Datensätze abgleichen, oder sich Ihre nun *ungespeicherten* Änderungen anderweitig zunutze machen können (z.B. manuell mit dem vorhandenen Datensatz zusammenführen, Stichwort Copy&Paste) + +#screenshot("Konflikt Auswahl-Dialog") + +Im Auswahl-Dialog, falls Sie sich für `Ja` entschieden haben, bekommen Sie alle Datensätze, die im Namen mit dem neuen Datensatz übereinstimmten angezeigt. + +Wenn Sie den Datensatz, den Sie überschreiben wollen, ausfindig gemacht haben, drücken Sie einfach auf das Ordner #emoji.folder Symbol in der Spalte `Auswählen` und in der Zeile des entsprechenden Datensatzes, um diesen mit den neuen Daten zu überschreiben. + +Über `Abbrechen` gelangen Sie in jedem Fall wieder zurück zur Detailansicht und brechen den Vorgang somit komplett ab. + +#warning[ + Wenn Sie den Vorgang abgebrochen haben, sind Ihre Daten noch ungespeichert. + + Sie müssen die Daten erst in irgendeiner Form speichern, damit diese beim Schließen nicht verloren gehen! +] + +#caution[ + Wenn sie über `Ja` zum Auswahl-Dialog gelangt sind und jetzt einen Datensatz auswählen, wird dieser *überschrieben*! + + Wenn Sie die Daten jedoch *zusammenführen* und damit *nicht überschreiben* wollen, wählen Sie hier *keinen Datensatz* aus (kein Klick auf eines der Ordnersymbole #emoji.folder), sondern stattdessen *#emoji.crossmark Abbrechen*. + + - Öffnen Sie dann die _Suchansicht_ + - Suchen Sie den betreffenden _Datensatz_ raus + - _Öffnen_ Sie diesen (der Tab mit Ihren ungespeicherten Änderungen bleibt geöffnet) + - _Überführen_ Sie die Daten _manuell_! + - Schließen Sie u.U. den Tab mit dem ursprünglich beabsichtigten neuen Datensatz ohne Speicherung, da Sie die Daten ja jetzt manuell zusammengeführt haben +] + +// == Das Veranstaltungsmanagement +// === Workshops +// === Teilnahmen + +== Die Suchwortverwaltung + +=== Suchansicht + +Wenn Sie die Suchwortverwaltung öffnen, sehen Sie zunächst die *Suchansicht* (@Suche_Suchwort). + +#screenshot("Suche Suchwort") + +Wenn Sie in dieser nun einen Datensatz öffnen#def[@open_detail_view], öffnet sich ein neuer Tab mit der Detailansicht + +=== Detailansicht + +Wenn Sie ein Suchwort öffnen (@Suchwort_Detailansicht_Hauptseite), oder ein neues Suchwort anlegen (@Suchwort_Detailansicht_Hauptseite__neuer_Eintrag) sehen Sie nun die Hauptseite der Detailansicht des Datensatzes. + +#screenshot("Suchwort Detailansicht (Hauptseite)") +#screenshot("Suchwort Detailansicht (Hauptseite, neuer Eintrag)") + +Ein Suchwort kann verschiedene Felder haben. +Pflichtfelder sind im Folgenden mit einem #emoji.lock markiert. + +/ Bezeichnung #emoji.lock: Der Name des Suchwortes. Dieses muss eindeutig sein (es sind also keine Duplikate erlaubt), sollte aussagekräftig sein, jedoch eher kurz gehalten werden. Für ausführliche Dokumentation des Zwecks steht das Feld `Beschreibung` zur Verfügung +/ Beschreibung: Ein großes (ausklappbares, siehe @Suchwort_Detailansicht_Hauptseite__Beschreibung) Textfeld zur ausführlichen Beschreibung eines Suchwortes und u.U. Dokumentation des Zwecks. +/ Adressdaten: Öffnet den `Adressdatensätze` Tab + +#screenshot("Suchwort Detailansicht (Hauptseite, Beschreibung)") + +==== `Adressdatensätze`-Tab + +Hier können Sie über die Haken-Kästchen verschiedene Suchworte zu einem Adressdatensatz zuweisen (@Suchwort_Detailansicht_Adressdatensätze-Tab). + +Ein Haken bedeutet hierbei, dass dieser Adressdatensatz dem entsprechenden Suchwort zugeordnet ist, ein leeres Kästchen, dass keine Verknüpfung besteht. + +#screenshot("Suchwort Detailansicht (Adressdatensätze-Tab)") + +#note[ + Im Ursprungszustand der Datenbank gab es lediglich eine Menge an Suchworten, welche die Herkunft-Excel-Tabelle beschreiben, welchen die Adressdatensätze entstammen, angibt. + + Weiterhin gibt es das spezielle Suchwort `X`, welches signalisiert, dass die dem Suchwort zugewiesenen Personen mittlerweile (aus der Institution) ausgeschieden sind. +] + +== Die Benutzerverwaltung + +=== Suchansicht + +Wenn Sie die Benutzerverwaltung öffnen, sehen Sie zunächst die *Suchansicht* (@Suche_Zuständige). + +#screenshot("Suche Zuständige") + +Wenn Sie in dieser nun einen Datensatz öffnen#def[@open_detail_view], öffnet sich ein neuer Tab mit der Detailansicht + +=== Detailansicht + +Wenn Sie einen Benutzer öffnen (@Benutzerverwaltung_Detailansicht_Hauptseite), oder einen neuen Benutzer anlegen (@Benutzerverwaltung_Detailansicht_Hauptseite__neuer_Eintrag) sehen Sie nun die Hauptseite der Detailansicht des Datensatzes. + +#screenshot("Benutzerverwaltung Detailansicht (Hauptseite)") +#screenshot("Benutzerverwaltung Detailansicht (Hauptseite, neuer Eintrag)") + +Ein Benutzer kann verschiedene Felder haben. +Pflichtfelder sind im Folgenden mit einem #emoji.lock markiert. + +/ Anrede #emoji.lock: Drei hauptsächlich verwendeten Anreden stehen zur Auswahl: `Herr`, `Frau` und `(Div.)` für alle weiteren Fälle. `(Inst.)` wird an dieser Stelle *nicht* verwendet +/ Vorname: Der Vorname +/ Nachname #emoji.lock: Der (Nach-)Name +/ Login #emoji.lock: Der Windows-Login Name +/ Recht #emoji.lock: Ein (ausklappbares, siehe @Benutzerverwaltung_Detailansicht_Hauptseite__Recht) Feld zur Festlegung des Berechtigungslevels () +/ Telefon: Die Telefonnummer als Zeichenfolge +/ Fax: Die Faxnummer als Zeichenfolge +/ Email: Die E-Mail-Adresse (wird vor dem Speichern auf Richtigkeit überprüft) +/ Aktenzeichen: Möglichkeit zum Vermerken eines Aktenzeichens + +#screenshot("Benutzerverwaltung Detailansicht (Hauptseite, Recht)") + +#important[ + Die Korrektheit des Windows-Login Namen ist von ausschlaggebender Bedeutung! + + Wenn dieser nicht korrekt eingetragen ist, hat der entsprechende Benutzer keinen Zugang zum Programm! + + #tip[ + Sie können den Anmeldenamen ganz einfach herausfinden. + + - Melden Sie sich hierfür einfach auf Ihrem PC unter dem entsprechenden Benutzer an. + - Gehen Sie dann auf die Windows-Einstellungen (z.B. über das Startmenü und dann auf das Zahnrad-Symbol #emoji.gear). + - Gehen Sie auf *Konten* (@Windows-Einstellungen) + - Nun können Sie Ihre Anmeldenamen ganz einfach nach dem Schrägstrich ablesen (davor steht `LSJV-RP\\`) (@Kontoinformation) + ] +] + +#screenshot("Windows-Einstellungen", width: 75%) +#screenshot("Kontoinformation", width: 60%) + +== Programminformationen + +Über die Menüleiste und die Schaltflächen `?` -> `Info`, öffnet sich ein Dialogfeld, welches u.A. die Programmversion ausgibt (@Programminformationen) + +#screenshot("Programminformationen", width: 40%) + += Erweiterte Bedienungen + +Für den erfahrenen und gewandten Benutzer bietet das Programm einige, wenn nicht sogar zahlreiche Möglichkeiten, die Bedienung noch schneller und komfortabler zu gestalten. + +Diese erweiterte Bedienung, die jedoch zur Verwendung des Programms nicht zwangsläufig vonnöten ist, wird in den folgenden Abschnitten erläutert. + +#note[ + Ich gehe in diesen Abschnitten selbstverständlich nicht auf alle möglichen Bedienungsmöglichkeiten ein. + + In der Regel sollten diese aber auch relativ selbsterklärend sein, sodass der abenteuerlustige Anwender gerne dazu eingeladen ist, die hier nicht oder nur wenig erklärten Funktionalitäten zu erkunden. +] + +== Tabellenansicht + +Die Tabellenansicht findet vielfache Verwendung im Programm. +Dabei handelt es sich nicht einfach nur um eine simple Ansicht, sondern um eine hoch-komplexe Steueroberfläche, die viele Aufgaben erledigt. + +In diesem Abschnitt werden die vermutlich am häufigsten benutzten Funktionen kurz erläutert. + +#important[ + Alle Änderungen an der Tabellenansicht sind ausschließlich in diesem Tab wirksam und nach dem Schließen wieder auf die Standardwerte zurückgesetzt. +] + +=== Kopfzeile + +Ganz oben in der Tabelle (@Tabelle_Oben) befindet sich (soweit nicht ausgeblendet) die Gruppierungszeile. Darauf gehe ich in @group_columns ein. + +Die Tabellenspalten#def[@columns] sind durch die entsprechenden Überschriften, die größtenteils mit den Feldern aus der jeweiligen Detailansicht#def[@detail_view] übereinstimmen, gekennzeichnet. + +Darunter befindet sich die sogenannte Filterzeile#def[@filter_row], die ein bequemes, komfortables Filtern der Datensätze ermöglicht. + +Darunter wiederum fangen die eigentlichen Daten an. + +#screenshot("Tabelle Oben") + +==== Spalten + +Durch Links-Klicken auf die Tabellenspalten-Überschriften, lassen sich die Daten in Auf-/Absteigender Reihenfolge gemäß dieser Spalte sortieren. + +Ein Rechts-Klick öffnet ein Kontext-Menü, welches weitere Optionen preisgibt (@Tabelle_Spalte_Detail). + +#screenshot("Tabelle Spalte Detail", width: 80%) + +#important[ + Es sei erwähnt, dass wenn man eine Spalte entfernt, diese nur wieder zurückgeholt werden kann, wenn man über das Kontext-Menü (@Tabelle_Spalte_Detail) die `Spaltenauswahl` öffnet und die betreffende Spalte wieder in die Spaltenzeile zieht. +] + +==== Filterzeile + +Die Filterzeile ist die wohl nützlichste Funktionalität, da diese allerhand Manipulationen der Datenansicht erlaubt und ein feinkörniges Suchen ermöglicht (@Tabelle_Filter). + +#screenshot("Tabelle Filter") + +Hierbei können (im Gegensatz zur auf-/absteigenden Sortierung) Filterungen von verschiedenen Spalten kinderleicht kombiniert werden. + +Auch die Konditionen zu denen gefiltert werden soll, können mit einem Klick auf die Schaltfläche vor dem Textfeld (i.d.R. standardmäßig #text(size: 0.75em, weight: "light")[A#fill-box(green)[B]C]) angepasst werden (@Tabelle_Filter_Detail). + +#screenshot("Tabelle Filter Detail") + +Die Filterkonditionen werden in der Fußzeile angezeigt und können dort auch bearbeitet und gelöscht werden (@Tabelle_Filter_Löschen) + +#screenshot("Tabelle Filter Löschen") + +=== Gruppieren von Spalten + +Wenn man im Kontext-Menü der Spaltenüberschriften (@Tabelle_Spalte_Detail) den Punkt `Nach dieser Spalte gruppieren` auswählt, so gruppiert die Tabelle automatisch alle Datensätze, die in dieser Spalte den gleichen Wert haben (@Tabelle_Gruppierung). + +#tip[ + Alternativ kann man auch die Spaltenüberschrift in die Gruppierungszeile (soweit eingeblendet) ziehen. +] + +#screenshot("Tabelle Gruppierung") + +Um die Gruppierung aufzuheben, genügt ein Rechts-Klick auf die Spaltenüberschrift, nach der gruppiert wird und die Auswahl des Punkts `nicht nach dieser Spalte gruppieren` (@Tabelle_Gruppierung_Detail). + +#screenshot("Tabelle Gruppierung Detail", width: 80%) + +#tip[ + Äquivalent lässt sich die Spaltenüberschrift auch einfach wieder in die Tabelle ziehen. +] + +=== Verschieben / Umsortieren von Spalten + +Diese Funktionalität ist einfach mittels des Ziehens der Spaltenüberschriften vorhanden. So lassen sich die Spalten beliebig sortieren + +=== Suchfeld + +Zur gröberen, schnelleren und allgemeineren Suche, bietet das Programm ein universelles Suchfeld, welches ähnlich der Suchfunktion in Word, Excel oder dem Internetbrowser funktioniert (@Tabelle_Suche). + +#screenshot("Tabelle Suche") + +== Geschachtelte Ansichten + +Wie schon an anderer Stelle zuvor erwähnt#def[@subtab], sollten Ihnen die Untertabs aus der Detailansicht durchaus bekannt vorkommen. + +Dadurch, dass die Suchansicht und die Untertabs nahezu identisch sind, ergibt sich eine äußerst praktische und effiziente Bedienungsmöglichkeit in Form von geschachtelt Ansichten. + +Um dies etwas bildlicher zu erläutern, ein kleines Anwendungsbeispiel: + +=== Anwendungsbeispiel + ++ Sie erstellen einen neuen Adressdatensatz und füllen die Hauptseite#def[@address_man_detail_view] aus. ++ Nun wechseln Sie auf den Suchwort-Tab#def[@address_man_such_tab] und weisen dem neuen Datensatz einige Suchwörter hinzu. ++ Nun fällt Ihnen allerdings auf, dass eines der beabsichtigten Suchwörter gar nicht angelegt ist. + +Die vermutlich intuitive Herangehensweise ist + +#enum(start: 4, + [Über die Menüleiste#def[@menu_bar] die Suchwortverwaltung#def[@such_man] zu öffnen], + [Ein neues Suchwort#def[@such_man_detail_view] anzulegen], + [Zurück zum unvollendeten Adressdatensatz zu wechseln und hier das Suchwort hinzufügen (vorausgesetzt es taucht in der Auflistung auf)], +) + +Dies verkompliziert unweigerlich den ganzen Prozess und behindert eine reibungslose Datenerfassung. +Dabei geht es viel einfacher! + +Anknüpfend an Schritt 3 + +#enum(start: 4, + [Klicken Sie einfach im Suchworte-Tab auf `neues Suchwort anlegen`], + [Es öffnet sich ein neuer Tab, in dem Sie das Suchwort anlegen können], + [Speichern (& Schließen) Sie das neue Suchwort], + [Markieren Sie das neue Suchwort im Suchwort-Tab], +) + +Durch diese rekursive / geschachtelte Arbeitsmöglichkeit sind solche Situationen wesentlich schneller und eleganter zu bewältigen. + +== Tastaturbedienung + +Viele Elemente und Funktionen des Programms sind ergonomischer und barrierefreier mit der Tastatur zu bedienen. +Das Programm versucht, dies in großen Teilen zu verwirklichen. + +So sind in den Detailansichten#def[@detail_view] die verschiedenen Felder i.d.R. mit der Tabulatortaste #sym.arrows.lr ansteuerbar. + +Ebenso lassen sich die Einträge in der Tabellenansicht#def[@tables] mit den Pfeiltasten durchwählen und anschließend entweder im Falle der Suchansicht#def[@master_view] mit der Enter-Taste #sym.arrow.curve.l öffnen, oder im Falle der Detailansicht, spezifischer des Untertabs#def[@subtab] mit der Leertaste #sym.bracket.b an- und abwählen. + +=== Tastenkombinationen Menüführung + +_Ausstehend_ \ No newline at end of file diff --git a/dustypst b/dustypst new file mode 160000 index 0000000..204f0b6 --- /dev/null +++ b/dustypst @@ -0,0 +1 @@ +Subproject commit 204f0b6b34ab544bfdb0386bd6fabd4ba70706d1 diff --git a/img/Adressdatensatz Detailansicht (Hauptseite).png b/img/Adressdatensatz Detailansicht (Hauptseite).png new file mode 100644 index 0000000..e9cd721 Binary files /dev/null and b/img/Adressdatensatz Detailansicht (Hauptseite).png differ diff --git a/img/Adressdatensatz Detailansicht (Hauptseite, neuer Eintrag).png b/img/Adressdatensatz Detailansicht (Hauptseite, neuer Eintrag).png new file mode 100644 index 0000000..5868387 Binary files /dev/null and b/img/Adressdatensatz Detailansicht (Hauptseite, neuer Eintrag).png differ diff --git a/img/Adressdatensatz Detailansicht (Suchwort-Tab).png b/img/Adressdatensatz Detailansicht (Suchwort-Tab).png new file mode 100644 index 0000000..bc6f120 Binary files /dev/null and b/img/Adressdatensatz Detailansicht (Suchwort-Tab).png differ diff --git a/img/Benutzerverwaltung Detailansicht (Hauptseite).png b/img/Benutzerverwaltung Detailansicht (Hauptseite).png new file mode 100644 index 0000000..8abdea6 Binary files /dev/null and b/img/Benutzerverwaltung Detailansicht (Hauptseite).png differ diff --git a/img/Benutzerverwaltung Detailansicht (Hauptseite, Recht).png b/img/Benutzerverwaltung Detailansicht (Hauptseite, Recht).png new file mode 100644 index 0000000..6b75e53 Binary files /dev/null and b/img/Benutzerverwaltung Detailansicht (Hauptseite, Recht).png differ diff --git a/img/Benutzerverwaltung Detailansicht (Hauptseite, neuer Eintrag).png b/img/Benutzerverwaltung Detailansicht (Hauptseite, neuer Eintrag).png new file mode 100644 index 0000000..a635b4b Binary files /dev/null and b/img/Benutzerverwaltung Detailansicht (Hauptseite, neuer Eintrag).png differ diff --git a/img/E-Mail falsch.png b/img/E-Mail falsch.png new file mode 100644 index 0000000..7429514 Binary files /dev/null and b/img/E-Mail falsch.png differ diff --git a/img/Installations-Dialog.png b/img/Installations-Dialog.png new file mode 100644 index 0000000..b3c1707 Binary files /dev/null and b/img/Installations-Dialog.png differ diff --git a/img/Konflikt Auswahl-Dialog.png b/img/Konflikt Auswahl-Dialog.png new file mode 100644 index 0000000..e249be1 Binary files /dev/null and b/img/Konflikt Auswahl-Dialog.png differ diff --git a/img/Konflikt Dialog.png b/img/Konflikt Dialog.png new file mode 100644 index 0000000..2ec10e1 Binary files /dev/null and b/img/Konflikt Dialog.png differ diff --git a/img/Konflikt Szenario Aktualisieren.png b/img/Konflikt Szenario Aktualisieren.png new file mode 100644 index 0000000..66b5707 Binary files /dev/null and b/img/Konflikt Szenario Aktualisieren.png differ diff --git a/img/Konflikt Szenario Neu.png b/img/Konflikt Szenario Neu.png new file mode 100644 index 0000000..c12ff1c Binary files /dev/null and b/img/Konflikt Szenario Neu.png differ diff --git a/img/Kontoinformation.png b/img/Kontoinformation.png new file mode 100644 index 0000000..4bbfcf0 Binary files /dev/null and b/img/Kontoinformation.png differ diff --git a/img/Löschen Abbruch.png b/img/Löschen Abbruch.png new file mode 100644 index 0000000..c52fbc7 Binary files /dev/null and b/img/Löschen Abbruch.png differ diff --git a/img/Löschen Dialog.png b/img/Löschen Dialog.png new file mode 100644 index 0000000..f3ee3dc Binary files /dev/null and b/img/Löschen Dialog.png differ diff --git a/img/Menü Benutzerverwaltung.png b/img/Menü Benutzerverwaltung.png new file mode 100644 index 0000000..f764747 Binary files /dev/null and b/img/Menü Benutzerverwaltung.png differ diff --git a/img/Menü Info.png b/img/Menü Info.png new file mode 100644 index 0000000..cc8ed22 Binary files /dev/null and b/img/Menü Info.png differ diff --git a/img/Programminformationen.png b/img/Programminformationen.png new file mode 100644 index 0000000..6d67ef6 Binary files /dev/null and b/img/Programminformationen.png differ diff --git a/img/Programmstart.png b/img/Programmstart.png new file mode 100644 index 0000000..d83c4fb Binary files /dev/null and b/img/Programmstart.png differ diff --git a/img/Speichern Abbruch.png b/img/Speichern Abbruch.png new file mode 100644 index 0000000..c2693c7 Binary files /dev/null and b/img/Speichern Abbruch.png differ diff --git a/img/Speichern Bestätigung.png b/img/Speichern Bestätigung.png new file mode 100644 index 0000000..50fccbd Binary files /dev/null and b/img/Speichern Bestätigung.png differ diff --git a/img/Speichern Dialog.png b/img/Speichern Dialog.png new file mode 100644 index 0000000..76f894e Binary files /dev/null and b/img/Speichern Dialog.png differ diff --git a/img/Suche Adressdatensatz.png b/img/Suche Adressdatensatz.png new file mode 100644 index 0000000..fd5e1bc Binary files /dev/null and b/img/Suche Adressdatensatz.png differ diff --git a/img/Suche Suchwort.png b/img/Suche Suchwort.png new file mode 100644 index 0000000..d323c3d Binary files /dev/null and b/img/Suche Suchwort.png differ diff --git a/img/Suche Zuständige.png b/img/Suche Zuständige.png new file mode 100644 index 0000000..0bacb61 Binary files /dev/null and b/img/Suche Zuständige.png differ diff --git a/img/Suchwort Detailansicht (Adressdatensätze-Tab).png b/img/Suchwort Detailansicht (Adressdatensätze-Tab).png new file mode 100644 index 0000000..2197ba8 Binary files /dev/null and b/img/Suchwort Detailansicht (Adressdatensätze-Tab).png differ diff --git a/img/Suchwort Detailansicht (Hauptseite).png b/img/Suchwort Detailansicht (Hauptseite).png new file mode 100644 index 0000000..e170a21 Binary files /dev/null and b/img/Suchwort Detailansicht (Hauptseite).png differ diff --git a/img/Suchwort Detailansicht (Hauptseite, Beschreibung).png b/img/Suchwort Detailansicht (Hauptseite, Beschreibung).png new file mode 100644 index 0000000..e66f5bb Binary files /dev/null and b/img/Suchwort Detailansicht (Hauptseite, Beschreibung).png differ diff --git a/img/Suchwort Detailansicht (Hauptseite, neuer Eintrag).png b/img/Suchwort Detailansicht (Hauptseite, neuer Eintrag).png new file mode 100644 index 0000000..6131a52 Binary files /dev/null and b/img/Suchwort Detailansicht (Hauptseite, neuer Eintrag).png differ diff --git a/img/Tab Scroll.png b/img/Tab Scroll.png new file mode 100644 index 0000000..25718f4 Binary files /dev/null and b/img/Tab Scroll.png differ diff --git a/img/Tabelle Filter Detail.png b/img/Tabelle Filter Detail.png new file mode 100644 index 0000000..65f873d Binary files /dev/null and b/img/Tabelle Filter Detail.png differ diff --git a/img/Tabelle Filter Löschen.png b/img/Tabelle Filter Löschen.png new file mode 100644 index 0000000..9f55510 Binary files /dev/null and b/img/Tabelle Filter Löschen.png differ diff --git a/img/Tabelle Filter.png b/img/Tabelle Filter.png new file mode 100644 index 0000000..37b0b51 Binary files /dev/null and b/img/Tabelle Filter.png differ diff --git a/img/Tabelle Gruppierung Detail.png b/img/Tabelle Gruppierung Detail.png new file mode 100644 index 0000000..2ffb54a Binary files /dev/null and b/img/Tabelle Gruppierung Detail.png differ diff --git a/img/Tabelle Gruppierung.png b/img/Tabelle Gruppierung.png new file mode 100644 index 0000000..7e51f02 Binary files /dev/null and b/img/Tabelle Gruppierung.png differ diff --git a/img/Tabelle Oben.png b/img/Tabelle Oben.png new file mode 100644 index 0000000..4ee837e Binary files /dev/null and b/img/Tabelle Oben.png differ diff --git a/img/Tabelle Select.png b/img/Tabelle Select.png new file mode 100644 index 0000000..c054f54 Binary files /dev/null and b/img/Tabelle Select.png differ diff --git a/img/Tabelle Spalte Detail.png b/img/Tabelle Spalte Detail.png new file mode 100644 index 0000000..a8140d4 Binary files /dev/null and b/img/Tabelle Spalte Detail.png differ diff --git a/img/Tabelle Suche.png b/img/Tabelle Suche.png new file mode 100644 index 0000000..9a4cd85 Binary files /dev/null and b/img/Tabelle Suche.png differ diff --git a/img/Windows-Einstellungen.png b/img/Windows-Einstellungen.png new file mode 100644 index 0000000..a3f392d Binary files /dev/null and b/img/Windows-Einstellungen.png differ