Datensatz zu jeder Artikelrevision mit eindeutiger Nr.

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

cwilms
Beiträge: 8
Registriert: Do, 02.03.2017 14:55

Datensatz zu jeder Artikelrevision mit eindeutiger Nr.

Beitrag von cwilms »

Guten Tag Forums-Mitglieder,

ich arbeite seit ca. 2 Jahren (in Etappen) an einer abgespeckten Version eines ERP-Systems zum Privaten Gebrauch. Bislang enthält die HSQL-Datenbank die Funktion der Artikel-Nummern Erzeugung und Pflege einiger weniger Artikeleigenschaften wie z.B. Werkstoff, Projektzugehörigkeit etc. sowie eine ausführliche Suche/Abfrage in einem Formular.

Bevor ich nun weitere Elemente wie z.B. Lagerbestand einfügen kann muss ich die Differenzierung einzelner Revisionen der Artikel einbinden. Derzeit habe ich als Art.-Nr. einen Integer mit Autowert als Primärschlüssel und ein Textfeld mit der aktuellen Revisionsnummer. Zukünftig brauche ich für jede Revision in der Historie der Art.-Nr. einen eigenen Datensatz (siehe Auszug Dateianhang).

Zukünftig möchte ich in meinem Formular folgende zwei Schaltflächen einbringen.
1. "Neu - Artikel" => Neuer Datensatz mit automatisch erzeugter, eindeutiger Art.-Nr. und Rev.-Nr.=Defaultwert
2. "Neu - Revision" => Neuer Datensatz mit selber Art.-Nr. wie der zur zeit ausgewählte Datensatz aber mit neuer Rev.-Nr. (ggf. automatische Eingabe mit Zahlen und Buchstaben kombiniert).

Verschiedene versuche über Primärschlüssel und Autowert sind gescheitert.
Hat einer von den Profis eine Idee wie das machbar ist?

Vielen dank im Voraus.

cwilms
Dateianhänge
Auszug Artikelbeispiele revisioniert.ods
(11.43 KiB) 122-mal heruntergeladen
F3K Total
********
Beiträge: 3704
Registriert: Mo, 28.02.2011 17:49

Re: Datensatz zu jeder Artikelrevision mit eindeutiger Nr.

Beitrag von F3K Total »

Hi,
anbei ein Beispiel, oben werden die Eingaben gemacht, unten per Abfrage eine Übersicht generiert, schau mal in Extras/Beziehungen und den Aufbau des Formulares über den Formularnavigator an.

Gruß R
Dateianhänge
ERP.odb
(13.42 KiB) 109-mal heruntergeladen
cwilms
Beiträge: 8
Registriert: Do, 02.03.2017 14:55

Re: Datensatz zu jeder Artikelrevision mit eindeutiger Nr.

Beitrag von cwilms »

Hallo F3K Total,

danke für die schnelle Antwort. Das Grundkonzept hatte ich so auch schon im Kopf, habe es dann aber wieder verworfen weil ich in der Tabelle Artikel in der von mir benötigten Art keine Datensätze anlegen kann da dort nur die Art.-Nr. erzeugt würde. Alles andere ändert sich ggf. und würde somit in der Tabelle Artikel-Revisionen eingetragen werden. Des weiteren müsste zu jeder neuen Art.-Nr. automatisch in der Tabelle Artikel-Revisionen ein dazugehöriger Datensatz erzeugt werden. Zusehen ist dies in der angefügten Datei ERP-0.odt. Das Problem in der Tabelle Artikel lässt sich sicher lösen aber ich wüsste keinen weg in der Tabelle Artikel-Revisionen automatisch einen passenden Datensatz anzulegen. Es muss also mit jeder Neuen Art.-Nr. eine dazugehörige UrRevision erzeugt werden.

Gruß cwilms
Dateianhänge
ERP-0.odb
(3.66 KiB) 127-mal heruntergeladen
F3K Total
********
Beiträge: 3704
Registriert: Mo, 28.02.2011 17:49

Re: Datensatz zu jeder Artikelrevision mit eindeutiger Nr.

Beitrag von F3K Total »

Hi,
deine DB enthält keine Daten. Was du vor hast ist machbar, es gibt mehrere Lösungsansätze, z.B.:
  • Urdatensatz per Makro erzeugen
  • HSQL Datenbank aus der .odb extrahieren und auf eine höhere Version 2.xx upgraden, dann sind Trigger möglich, mit denen man das von dir gewünschte Verhalten erziehlen kann. Siehe z.B. hier
Gruß R
cwilms
Beiträge: 8
Registriert: Do, 02.03.2017 14:55

Re: Datensatz zu jeder Artikelrevision mit eindeutiger Nr.

Beitrag von cwilms »

Hallo F3K Total,

die 2. Variante hört sich wirklich klasse an. Wenn ich das richtig verstanden habe ist das wie es in diesem Video https://www.youtube.com/watch?v=zwpbEFOcKxk + Upgrade Version 2.xx + Trigger.
Habe ich das richtig verstanden ?
Ich kann dann auch die Tabellen wie gehabt bearbeiten, z.B. nachträglich weitere Spalten und Tabellen ergänzen um die Datenbank auszubauen, oder ?

Werde mir die Anleitung auf jeden Fall genau anschauen und googeln.

Gruß cwilms
F3K Total
********
Beiträge: 3704
Registriert: Mo, 28.02.2011 17:49

Re: Datensatz zu jeder Artikelrevision mit eindeutiger Nr.

Beitrag von F3K Total »

Ja du hast es richtig verstanden.
Man kann die Tabellen weiter bearbeiten, etwas erschwert, nicht mehr über die grafische Benutzeroberfläche aber über Extras/SQL ... mit den richtigen SQL-Befehlen. Frage nach, wenn dir was fehlt, geht einfach.
Aber: Tabellenstruktur erst so weit wie möglich entwickeln und dann in Front- und Backend teilen ...

Gruß R
cwilms
Beiträge: 8
Registriert: Do, 02.03.2017 14:55

Re: Datensatz zu jeder Artikelrevision mit eindeutiger Nr.

Beitrag von cwilms »

Hallo F3K Total,

vielleicht kannst du dich auch mal zu folgender Idee äußern:

1. Ich erstelle wie bereits besprochen zwei Tabellen: Artikel, Artikel-Revisionen
2. Im Formular erstelle ich eine Schaltfläche "Neu" und hinterlege ein Makro das...
2.1 mir in Tabelle "Artikel" einen neuen Artikel anlegt indem es z.B. meinen Benutzernamen einträgt (Art.-Nr. als Autowert und Primärschlüssel)
2.1.1 ggf. Formular aktualisieren
2.2 mir die Art.-Nr. in die Tabelle "Artikel-Revisionen" kopiert und den neuen Datensatz speichert. Dabei würden alle anderen Zellen automatisch mit dem vordefinierten Defaultwert beschrieben werden.
2.3 sofern erforderlich wählt das Makro noch den neuen Datensatz aus damit dieser sofort bearbeitet werden kann.

Für den Revisionierungsprozess brauche ich sowieso eine Schaltfläche mit Makro welches mir den Datensatz mit neuer Revision abspeichert. Des weiteren könnte ich dann, sofern das geht, dann die Datenbank als HSQL-DB weiterentwickeln und wäre trotzdem voll funktionsfähig.
Habe von Makros aber leider (noch) keine Ahnung.

cwilms
F3K Total
********
Beiträge: 3704
Registriert: Mo, 28.02.2011 17:49

Re: Datensatz zu jeder Artikelrevision mit eindeutiger Nr.

Beitrag von F3K Total »

Jo,
das ginge
Gruß R
cwilms
Beiträge: 8
Registriert: Do, 02.03.2017 14:55

Re: Datensatz zu jeder Artikelrevision mit eindeutiger Nr.

Beitrag von cwilms »

Hallo,

habe den ganzen Tag Recherchiert und habe einen Entwurf für das Makro erstellt und dieses mit der Schaltfläche gekoppelt. Leider Klappt damit gar nichts. Das mit dem Datensatz erstellen dachte ich hätte ich mittlerweile verstanden, aber war wohl nix. Bei dem Rest verstehe ich immer weniger je mehr ich lese.

Der Ansatz des Makro sieht bis jetzt so aus:

Code: Alles auswählen

Sub Main

SQL = "INSERT INTO "Artikel" (ART-PERSONEN) VALUES ('cwilms')" // SQL-Befehl zum erstellen des Datensatzes
SQL_Statement.executeUpdate(Sql)

// Kopieren der Art.-Nr.

Zwischenspeicher = ??? ZUGRIFF AUF ARTIKEL-NR??? // Variable als Zwischenspeicher für Art.-Nr.

SQL = "INSERT INTO "Artikel-Revisionen" (FK-ART-NR) VALUES (ZWISCHENSPEICHER)"
SQL_Statement.executeUpdate(Sql)

End Sub
Meine Fragen:
1. Bin ich auf dem richtigen weg?
2. Wie binde ich die SQL-Befehle korrekt ein?
3. Wie kann ich die Art.-Nr. am beste auslegen? Wenn das irgendwie als SQL-Abfrage eingebunden wäre ist das doch bestimmt viel zu rechenintensiv und bremst die Datenbank ordentlich aus, oder?

Mir raucht der Kopf und freue mich auf weiter Hilfe.
cwilms
Dateianhänge
ERP-System.odb
(28.24 KiB) 119-mal heruntergeladen
F3K Total
********
Beiträge: 3704
Registriert: Mo, 28.02.2011 17:49

Re: Datensatz zu jeder Artikelrevision mit eindeutiger Nr.

Beitrag von F3K Total »

Hi,
das, was du da als Makro vorschlägst ist ein Fragment, und dir jetzt hier die Makros zu schreiben, ist zumindest mir zuviel. Es gibt viele Beispiele hier im Forum, aber lernen muss man schon einiges, wenn man die Datenbank per Makro manipulieren möchte.

Du hast doch schon ein Beispiel von mir bekommen, was komplett ohne Makro auskommt, wo du dann eben die Revision -Nr. selber eintippen musst.
Das dort enthaltene Formular enthält verknüpfte Unterformulare, die ProjektID wird beim Anlegen eines Artikels automatisch übernommen, die Artikelnummer wird wiederum automatisch in die Revisionstabelle übernommen.
Eigentlich, bis auf das automatische Anlegen der Revisionsnummer genau das was du möchtest. Es gibt unter anderem auch Schaltflächen die man mit Funktionen wie "neuer Datensatz", "Datensatz speichern", "Datensatz löschen", usw. auf jedem Formular anlegen kann.
Ich empfehle dir, lieber etwas mehr zu tippen und zu versuchen ohne alles automatisieren zu wollen hinzukommen, dann läuft es am stabilsten.
Anbei nochmal meine Version mit ein paar Schaltflächen.
Gruß R
Dateianhänge
ERP.odb
(14.08 KiB) 125-mal heruntergeladen
cwilms
Beiträge: 8
Registriert: Do, 02.03.2017 14:55

Re: Datensatz zu jeder Artikelrevision mit eindeutiger Nr.

Beitrag von cwilms »

Hallo F3K Total,

vielen Dank für deine Hilfe und Einschätzung. Die Thematik ist offenbar erheblich komplexer und aufwändiger als ich dachte. Jetzt weiß ich auch warum wir das in der Firma nicht können.
Werde es erst mal ohne Makro implementieren und dieses dann irgend wann später einbauen.

cwilms
Antworten