Hallo Alfred,
Ich habe den Eindruck, dass Dir hierzu noch grundlegendes Wissen zu relationalen Datenbanken fehlt, insbesondere über die Normalisierung von Daten, 1:n-Beziehungen und n:m-Beziehungen sowie deren Auflösung. Diese Themen sind nicht schwer zu verstehen, aber man muss sich dazu ein wenig belesen, um die gewünschte Datenbank sinnvoll aufbauen zu können. Vielleicht findest Du bei Gelegenheit einige Anleitungen im Netz (im Umfeld von MySQL oder Postgres sollte etwas zu finden sein). Ich selbst habe diese Dinge mit Hilfe eines Buches über relationale Datenbanken gelernt.
Für die reine Datensammlung und -organisation hat Papyrus eigentlich alle notwendigen Funktionen. Um sich mit der Sache vertraut zu machen, kann man ohne weiteres damit anfangen. Problematischer wird es erst bei der komplexen Auswertung der Daten und ggf. auch bei der Bedienbarkeit einer solchen Datenbank. Wenn man an diesem Punkt angekommen ist und merkt, dass es mit Papyrus nicht mehr weiter geht, kann man die Daten aber relativ problemlos exportieren, sofern sie auch in Papyrus vorausschauend angelegt worden sind.
Beginne mit einem einfachen, überschaubaren Problem, das ganz am Anfang Deiner Prozesskette steht. Damit schaffst Du die Grundlage für Erweiterungen zu den nachfolgenden Schritten. Da es um Rezepturen geht, die typischerweise aus verschiedenen Stoffen oder Substanzen bestehen, müssen diese zunächst mal beschafft bzw. eingekauft werden. Am Anfang würde ich also den Beschaffungsprozess sehen.
Ein Beispiel für eine solche Beschaffungsdatenbank befindet sich im Anhang dieses Beitrags. Es handelt sich dabei um eine Datenbank, die ich selbst fast täglich verwende, um Bestellungen per Fax zu erzeugen oder auch um Online-Bestellungen zu erfassen (allerdings habe ich den Großteil der Daten verständlicherweise gelöscht)
Aufbau der Datenbank
Es gibt 7 Tabellen:
Produkte
Liste der benötigten Produkte, Stoffe, Substanzen
Lieferanten
Liste der Lieferanten, ihrer Adressen und unserer Kundennummer beim jeweiligen Lieferant
Sortiment
Hier werden Produkte und Lieferanten zusammengeführt. Jeder Datensatz in dieser Tabelle verknüpft ein Produkt mit einem passenden Lieferanten und speichert ggf. die entsprechende Artikelnummer, Verpackungseinheit und Preis. Ein Produkt kann dabei mehrfach in dieser Tabelle auftauchen, z.B. weil ein Lieferant hierfür mehrere Verpackungseinheiten anbietet oder weil das Produkt von mehreren Lieferanten erhältlich ist. Im Datenbankjargon wird hier eine m:n-Beziehung abgebildet (m Produkte werden mit n Lieferanten verknüpft).
Klassen
Hier sind mögliche Lieferantenklassen aufgelistet. Den Lieferanten kann eine Klasse zugeordnet werden, um sie als Hauptlieferant, Ausweichlieferant oder sonstiger Lieferant zu kennzeichnen. Diese Klassifizierung wird in der Tabelle Sortiment eingetragen.
Einheiten
Eine Liste möglicher Einheiten, also kg, g, Stück etc. Die Einheiten werden für die Bestellpositionen verwendet.
Bestellungen
Hier werden alle Bestellungen eingetragen, nummeriert und mit einem Lieferanten verknüpft (1:n-Beziehung). Außerdem ist die Festlegung eines Liefertermins sowie von Liefer- und Zahlungsbedingungen möglich.
Bestellpositionen
Jeder Bestellung kann hier eine beliebige Anzahl Bestellpositionen zugeordnet werden. Es wird also die Nummer der Bestellung mit Einträgen aus der Sortimentstabelle verknüpft.
Bedienung der Datenbank
Sofern Produkte, Lieferanten und Sortiment eingetragen sind, ist die Erstellung einer neuen Bestellung relativ einfach:
- In der Tabelle Bestellungen wird ein neuer Datensatz angelegt. Dabei wird die Bestellungsnummer automatisch um eins erhöht und das aktuelle Datum eingetragen. Es muss der Lieferant ausgewählt und ggf. Liefer- und Zahlungsbedingungen sowie der gewünschte Liefertermin festgelegt werden. Im Feld Bestelltext kann man bei Bedarf beliebige Texte eingeben, was bei manchen Bestellungen erforderlich sein kann, die sich nicht streng an einem bestimmten Sortimentskatalog ortientieren.
Nach Bestätigung der Daten erzeugt man den Report „Bestellung-Fax“ und bekommt einen ausgefüllten Briefkopf mit Lieferantenadresse, Datum, Bestellungsnummer, Kundennummer, Liefertermin, etc.
- In der Tabelle Bestellpositionen legt man fest, was eigentlich bestellt werden soll. Für jede Position legt man einen neuen Datensatz an und verknüpft diesen mit der Bestellung und mit einem Sortimentseintrag. Nach Festlegung der Menge berechnet ein solcher Datensatz automatisch den Gesamtpreis für diese Position, wobei auf den Einzelpreis aus der Sortimentstabelle zurückgegriffen wird. Der Einzelpreis kann aber auch manuell abgeändert werden, falls es kurzfristig zu Preisänderungen gekommen ist.
Wenn alle Bestellpositionen festgelegt sind, markiert man diese im Tabellenfenster und ruft den Report „Bestellpositionen-Tabelle“ auf. Dieser wird direkt in den unter (1) erzeugten Vordruck eingefügt. Vor dem Einfügen sollte man deshalb ggf. den Textcursor im Vordruck an die richtige Stelle setzen. Die eingefügte Tabelle der Bestellpositionen berechnet automatisch die Gesamtsumme über alle Positionen, Mehrwertsteuer und den Gesamtbetrag.
Danach kann man die Bestellung noch manuell verändern oder einfach abspeichern, ausdrucken und auf’s Fax legen.
Schau Dir die Datenbank genau an und versuche zu verstehen, wie ihre einzelnen Bestandteile miteinander verknüpft sind. Probiere ein paar eigene Produkte, Lieferanten und Sortimentspositionen einzutragen und daraus eine Bestellung zu generieren. Wenn diese Beziehungen und Vorgänge einigermaßen klar sind, kann es an die Erweiterung in Richtung Rezepturerfassung gehen.
Viel Spaß
beschaffung-demo.zip (23.2 KB)