🙏 Helfen Sie jetzt mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀

❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

Bauteile, Baugruppen & Stücklisten

Base ermöglicht es Ihnen, Ihre Daten in einer Datenbank direkt mit LibreOffice zu bearbeiten.
Antworten
Petyr
Beiträge: 17
Registriert: Fr 3. Aug 2012, 08:32

Bauteile, Baugruppen & Stücklisten

Beitrag von Petyr » Mi 8. Aug 2012, 12:40

Mahlzeit euch allen!

Ich versuche gerade mir hier das Leben ein wenig leichter zu machen und würde dazu gerne auf LO Base zurück greifen. Leider bin ich mir über Struktur und Implementierung noch nicht im klaren und bitte daher um euren Rat.

Einleitung
Von einem unserer Zulieferer bekommen wir zum Nachsehen und Bestellen immer ein riesiges Excel-Sheet. Das Ding ist so mit Makros vollgestopft, dass es schon beim Öffnen auf einer CAD-Workstation fast eine Minute benötigt, bis es geöffnet ist. Noch schlimmer wird's dann, wenn man Daten eingibt, bzw. etwas nachschlagen will.

Struktur
Es wird bei uns unterschieden zwischen Einzelteilen und Blöcken (=Baugruppe aus Einzelteilen). Mit dem Excel-Sheet wird es uns ermöglicht, Blöcke wie auch Einzelteile zu wählen. Die Blöcke werden für den Bestellvorgang wieder in Einzelteile aufgelöst.

Vorhaben
Da wir mit der Excel-Lösung aber sowas von überhaupt nicht glücklich sind, vor allem, wenn man nur schnell mal was nachsehen will, habe ich mich dazu entschlossen, die Sache zumindest in Teilen in eine Datenbank zu übertragen. Ich habe bereits eine Liste mit Einzelteilen und kenne in großen Teilen auch die Zusammensetzung der Blöcke, bzw. will ich einige nach unserer Vorstellung gestalten. Relevant sind im Endeffekt nur die Produkt-IDs, bzw. die Block-IDs. Diese sind sozusagen unsere "Schnittstelle".

Ich möchte meiner Abteilung also eine Datenbank zur Verfügung stellen (eventuell mit Bildern, bzw. mit Pfaden zum Bild), von der ich überzeugt bin, dass es schneller arbeitet als die bisherige Lösung und auch einfacher zu warten ist, als eine 7MB große Excel-Liste.

Meine Gedanken im Moment sind wie folgt:
  • Es gibt eine Tabelle für die Einzelteile mit Spalten für ID, Name, Preis, Einheit, .... (die üblichen Verdächtigen)
  • Es gibt eine Tabelle für die Blöcke mit Spalten für ID, Name, ....
  • Es sollte eine Tabelle geben, die "mapped" wie die Blöcke mit den Einzelteilen verbunden sind. Also ID, Block_ID, Einzelteil_ID, ...
Mein Problem:
ich weiß zum einen nicht, ob mein Gedankengang so richtig ist. Es könnte durchaus sein, dass ich die Datenbank später noch um Tabellen für diverse Vorgänge erweitern muss und da will ich bei der Planung keine Fehler machen, wenn möglich.

Meine eigentliche Frage (tut mir leid, dass es so ausschweifend wurde, aber ich will keine wichtigen Infos vorenthalten):
wie mache ich das in einem Formular.
Ich habe bereits ein Formular zum eingeben neuer Einzelteile. Das war keine große Sache, denke ich. Aber wie muss ich ein Formular zur Eingabe von Blöcken gestalten?
Ich muss einen neuen Block anlegen und aus einer Liste mit Einzelteilen wählen können, welche und wie viel darin vorkommen. Dazu ein Mockup:
Bild

Wie geht man sowas denn am Besten an? Hat jemand eine Starthilfe für mich?

Ich bedanke mich schon mal und verbleibe
viele Grüße,

Petyr

RobertG
* LO-Experte *
Beiträge: 2884
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Bauteile, Baugruppen & Stücklisten

Beitrag von RobertG » Mi 8. Aug 2012, 20:55

Hallo Petyr,
Petyr hat geschrieben: Meine Gedanken im Moment sind wie folgt:
  • Es gibt eine Tabelle für die Einzelteile mit Spalten für ID, Name, Preis, Einheit, .... (die üblichen Verdächtigen)
  • Es gibt eine Tabelle für die Blöcke mit Spalten für ID, Name, ....
  • Es sollte eine Tabelle geben, die "mapped" wie die Blöcke mit den Einzelteilen verbunden sind. Also ID, Block_ID, Einzelteil_ID, ...
Das Zentrum der Datenbank, die Tabellen, richtig zu setzen ist natürlich das Wichtigste. Deswegen hier nur eine kurze Frage: Die Blöcke sind nicht den Einzelteilen übergeordnet, so dass ein Einzelteil nur in einem Block erscheinen kann? - anders gefragt: Es gibt das gleiche Einzelteil in unterschiedlichen Blöcken und ein Block besteht natürlich aus unterschiedlichen Einzelteilen?

Einen ersten Einblick in das, was ich meine, können die die Handbücher von LO im Netz vermitteln. Sowohl im Handbuch "Erste Schritte Base" als auch im Gesamthandbuch dazu (Kapitel "Tabellen") werden die Beziehungen zwischen Tabellen (1:n, 1:1, n:m) erklärt. Die Handbücher findest Du hier: http://de.libreoffice.org/hilfe-kontakt/handbuecher/

Gruß

Robert
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare

Petyr
Beiträge: 17
Registriert: Fr 3. Aug 2012, 08:32

Re: Bauteile, Baugruppen & Stücklisten

Beitrag von Petyr » Do 9. Aug 2012, 08:07

Deswegen hier nur eine kurze Frage: Die Blöcke sind nicht den Einzelteilen übergeordnet, so dass ein Einzelteil nur in einem Block erscheinen kann? - anders gefragt: Es gibt das gleiche Einzelteil in unterschiedlichen Blöcken und ein Block besteht natürlich aus unterschiedlichen Einzelteilen?
Korrekt. Das gleiche Einzelteil kann mehrmals in unterschiedlichen Blöcken vorkommen.
Beispiel: eine Schraube M5 x 30 kann in mehreren Baugruppen unterschiedlich oft vorkommen.
Einen ersten Einblick in das, was ich meine, können die die Handbücher von LO im Netz vermitteln. Sowohl im Handbuch "Erste Schritte Base" als auch im Gesamthandbuch dazu (Kapitel "Tabellen") werden die Beziehungen zwischen Tabellen (1:n, 1:1, n:m) erklärt. Die Handbücher findest Du hier: http://de.libreoffice.org/hilfe-kontakt/handbuecher/
Danke, die Handbücher hab' ich schon hier auf der Platte. Aber bisher habe ich keinen Hinweis drauf finden können, WIE ich die funktionalität Bereitstellen kann die Eingaben im Formular so zu machen, sodass die Aktionen auch in den Tabellen ausgeführt werden.
Auch die Beziehungen zwischen den Tabellen habe ich in einer Test-DB schon angelegt, nur weiß ich eben nicht, wie man das ganze nun triggert.
viele Grüße,

Petyr

RobertG
* LO-Experte *
Beiträge: 2884
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Bauteile, Baugruppen & Stücklisten

Beitrag von RobertG » Do 9. Aug 2012, 09:58

Hallo Petyr,

das Ganze ist dann ja eine n:m-Beziehung. Du hast bereits Einzelteile und Blöcke vorliegen. Die Verbindung zwischen diesen beiden Tabellen erfolgt über eine dritte Tabelle, nenne ich hier einfach einmal rel_Einzel_Block. In dieser Tabelle werden in der Hauptsache die beiden Fremdschlüssel der Tabellen "Einzelteile" und "Block" zusammengeführt. Also mindestens 2 Felder, "EinzelID" und "BlockID", die zusammen den Primärschlüssel ergeben.
In einem Formular kannst Du n:m-Beziehungen so darstellen, dass Du die entsprechende Tabelle mit Hilfe von Listenfeldern füllst - eins für den Block, eins für die Einzelteile.
Du kannst das auch so regeln, dass Du den Block in einem Hauptformular liegen hast. Dann wird an ein Unterformular mit der Tabelle rel_Einzel_Block der entsprechende Schlüsselwert weitergegeben. Und in diesem Unterformular existiert ein Tabellenkontrollfeld, in dem Du die Einzelteile auswählen kannst.
Du musst nicht, wie in Deinem Mockup, Einzelteile auswählen, die dann mit irgendwelchen Makrokünsten in eine andere Tabelle übertragen werden.

Gruß

Robert
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare

Petyr
Beiträge: 17
Registriert: Fr 3. Aug 2012, 08:32

Re: Bauteile, Baugruppen & Stücklisten

Beitrag von Petyr » Do 9. Aug 2012, 11:08

RobertG hat geschrieben:Die Verbindung zwischen diesen beiden Tabellen erfolgt über eine dritte Tabelle, nenne ich hier einfach einmal rel_Einzel_Block. In dieser Tabelle werden in der Hauptsache die beiden Fremdschlüssel der Tabellen "Einzelteile" und "Block" zusammengeführt. Also mindestens 2 Felder, "EinzelID" und "BlockID", die zusammen den Primärschlüssel ergeben.
ich hat geschrieben:Meine Gedanken im Moment sind wie folgt ...
... Es sollte eine Tabelle geben, die "mapped" wie die Blöcke mit den Einzelteilen verbunden sind. Also ID, Block_ID, Einzelteil_ID, ...
Sowas habe ich bereits. Ich habe zwar noch ein paar Änderungen, aber eine Relation n:m habe ich schon berücksichtigt.
RobertG hat geschrieben:Also mindestens 2 Felder, "EinzelID" und "BlockID", die zusammen den Primärschlüssel ergeben.
Ok, das hatte ich nicht gewusst. Block+EinzelID ergeben den PrimaryKey für die rel-Tabelle!
RobertG hat geschrieben:In einem Formular kannst Du n:m-Beziehungen so darstellen, dass Du die entsprechende Tabelle mit Hilfe von Listenfeldern füllst - eins für den Block, eins für die Einzelteile.
Du kannst das auch so regeln, dass Du den Block in einem Hauptformular liegen hast. Dann wird an ein Unterformular mit der Tabelle rel_Einzel_Block der entsprechende Schlüsselwert weitergegeben. Und in diesem Unterformular existiert ein Tabellenkontrollfeld, in dem Du die Einzelteile auswählen kannst.
Du musst nicht, wie in Deinem Mockup, Einzelteile auswählen, die dann mit irgendwelchen Makrokünsten in eine andere Tabelle übertragen werden.
Ok, ich befürchte, dies ist jetzt der Punkt, den ich so gar nicht verstehe. Wie gebe ich diesen Schlüsselwert weiter? Wie "sage" ich dem Kontrollfeld im Formular, was es zu tun hat, oder wie es sich verhalten muss!? Geht das "intuitiv", oder muss ich für alle meine Vorhaben SQL-Befehle absetzen?
viele Grüße,

Petyr

RobertG
* LO-Experte *
Beiträge: 2884
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Bauteile, Baugruppen & Stücklisten

Beitrag von RobertG » Do 9. Aug 2012, 15:29

Hallo Petyr,
Petyr hat geschrieben:
RobertG hat geschrieben:In einem Formular kannst Du n:m-Beziehungen so darstellen, dass Du die entsprechende Tabelle mit Hilfe von Listenfeldern füllst - eins für den Block, eins für die Einzelteile.
Du kannst das auch so regeln, dass Du den Block in einem Hauptformular liegen hast. Dann wird an ein Unterformular mit der Tabelle rel_Einzel_Block der entsprechende Schlüsselwert weitergegeben. Und in diesem Unterformular existiert ein Tabellenkontrollfeld, in dem Du die Einzelteile auswählen kannst.
Ok, ich befürchte, dies ist jetzt der Punkt, den ich so gar nicht verstehe. Wie gebe ich diesen Schlüsselwert weiter? Wie "sage" ich dem Kontrollfeld im Formular, was es zu tun hat, oder wie es sich verhalten muss!? Geht das "intuitiv", oder muss ich für alle meine Vorhaben SQL-Befehle absetzen?
Angenommen, Du hast ein Formular mit allen Blöcken und als Unterformular die Tabelle mit BlockID (als Verbindung Formular - Unterformular) und EinzelID. Jatzt müsstest Du im Formular "Block" den jeweiligen Begriff auswählen und im Unterformular dazu in die Tabelle den Fremdschlüssel aus "Einzel" eintragen. Wären also lauter Zahlen. Und da greift jetzt das Listenfeld ein. Statt Zahlen zeigt es Dir die Begriffe an. Das darunterliegende Feld wird aber immer noch mit den Zahlen versorgt.
Du musst also das Feld, was den Fremdschlüssel darstellen soll, durch ein Listenfeld ersetzen (rechte Maustaste, ersetzen durch ...). Dann musst Du in den Eigenschaften den Reiter "Daten" aufsuchen und einen SQL-Befehl eingeben. Diesen kannst Du mit Hilfe des Abfrageeditors erstellen (Button mit den 3 Punkten). Als erstes Feld wählst Du hier "Einzelteil", als zweites Feld "ID" aus der Einzelteiltabelle. Lass es noch sortieren nach den Einzelteilen, damit Du die auch wiederfindest. Dann kannst Du Einzelteile auswählen und die ID wird an das darunterliegende Feld weitergegeben.
Schau Dir einfach einmal das Handbuch zu Listenfeldern an. Die tauchen im Kapitel "Formular" nicht nur einmal auf.

Gruß

Robert
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare

Petyr
Beiträge: 17
Registriert: Fr 3. Aug 2012, 08:32

Re: Bauteile, Baugruppen & Stücklisten

Beitrag von Petyr » Fr 10. Aug 2012, 10:35

Ok, ich muss darüber wohl ein wenig brüten und mir das genau zu Gemüte führen. Im Moment bin ich leider etwas kurz angebunden, daher erst mal vielen Dank für deine Hilfe und ich meld' mich wieder, wenn ich nicht weiterkomme.
Danke.
viele Grüße,

Petyr

RobertG
* LO-Experte *
Beiträge: 2884
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Bauteile, Baugruppen & Stücklisten

Beitrag von RobertG » Fr 10. Aug 2012, 17:02

Hallo Petyr,

ich habe einmal so ein Beispiel mit Listfeld zusammengeklickt. Sind natürlich keine Daten drin.

Gruß

Robert
Dateianhänge
Block_Einzelteil.odb.zip
(13.58 KiB) 488-mal heruntergeladen
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare

Petyr
Beiträge: 17
Registriert: Fr 3. Aug 2012, 08:32

Re: Bauteile, Baugruppen & Stücklisten

Beitrag von Petyr » Di 14. Aug 2012, 14:51

Danke für das Beispiel. Jetzt weiß ich in welche Richtung ich muss und meine "Befürchtungen" haben sich bewahrheitet: ich muss da Abfragen reinklopfen. Ich hatte so sehr gehofft, dass ich mich elegant am Thema "vorbeischmuggeln" kann. ;)

Vielen, vielen Dank - jetzt weiß ich, wo ich ansetzen muss. Mann, es hat echt gedauert, bis ich begriffen hatte, dass man die Spaltenköpfe anklicken kann, um sie durch die Listen zu ersetzen. :oops:
viele Grüße,

Petyr


An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:


Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.



Antworten