Seite 1 von 1
Artikelsuche in Stücklisten
Verfasst: Fr, 08.08.2014 12:41
von flo.sonneborn
Hallo zusammen,
ich habe eine komplexe Aufgabe zu lösen und bin auf der Suche nach der richtigen Software.
Ich bekomme Daten in folgendem Format angeliefert (als MS Excel Tabelle):
Code: Alles auswählen
Artikel 1
-Untergruppe1
--Untergruppenartikel1
--Untergruppenartikel2
-Untergruppe2
Artikel2
-Untergruppe1
-Untergruppe2
.
.
.
Jeder Artikel kann eine andere Struktur haben.
Meine Aufgabe besteht nun darin, es zu ermöglichen mehrere Untergruppen/Untergruppenartikel in einer Stückliste zu suchen.
Beispiel:
Code: Alles auswählen
Teil 1:
- Brett mit Nagel und Schraube (Hauptartikel)
-- Brett (Untergruppenartikel1)
-- Nägel (Untergruppenartikel2)
-- Schraube (Untergruppenartikel2)
Teil 2:
- Schraube mit Mutter (Hauptartikel)
-- Schraube
-- Mutter
Teil 3:
- Brett mit Loch und Nagel
-- Brett
-- Loch
-- Nagel
Teil 4:
- Brett mit Riss
-- Brett
-- Riss
Wenn ich nun also alle Artikel sehen möchte, die ein Brett und einen Nagel enthalten, sollten Artikel 1 und 3 angezeigt werden.
Kann ich das Ganze theoretisch mit Base lösen oder sollte ich mich da eher in Richtung PHP/MySQL bewegen?
Danke für eure Meinung!
Re: Artikelsuche in Stücklisten
Verfasst: Fr, 08.08.2014 22:20
von F3K Total
Hi,
flo.sonneborn hat geschrieben:Kann ich das Ganze theoretisch mit Base lösen oder sollte ich mich da eher in Richtung PHP/MySQL bewegen?
Das ist keine Frage des Frontends oder der verwendeten Datenbank, sondern eher eine Frage der Datenstruktur. In einer relationalen Datenbank, HSQL (Base) und MySql, arbeitet man mit Tabellen und Fremdschlüsseln, also z.B. eine Tabelle Artikel, eine Tabelle Artikel_Untergruppen, eine Tabelle Untergruppen_Untergruppenartikel und eine Tabelle Untergruppenartikel.
Wobei ein Artikel quasi genau "weiss" (über Fremdschlüssel) welche Untergruppen zu ihm gehören, während eine Untergruppe wieder weiß, welche Untergruppelartikel zu ihr gehören.
Je nach Verschachtelungstiefe braucht man dann mehr oder weniger Tabellen. Um das zu verstehen, solltest du dich mit
http://de.wikipedia.org/wiki/Relationale_Datenbank beschäftigen.
Deine Excel-Tabelle ist alles andere als in dieser Struktur. Das Hauptproblem ist also, wie du die Daten aus einer Tabelle, sinnvoll verknüpft, in mehrere Tabellen überführen kannst. Hast du das, dann kannst du alle Einzelteile und Kombinationen finden, die du suchst.
Besser wäre wahrlich, wenn du an die ursprüngliche Datenbank, aus der die Daten sicherlich kommen, herankommen würdest.
Kurz und gut, die Excel-Tabelle ist für diesen Fall Bullshit.
Gruß R
Re: Artikelsuche in Stücklisten
Verfasst: Mo, 11.08.2014 11:40
von flo.sonneborn
Hi,
ok, soweit verstanden. An die DB komme ich nicht ran. Folglich müsste ich versuchen über VBA die Tabelle so zu formatieren, dass ich einzelne Tabellen bekomme, welche ich dann in Relationen setzen kann...
Das wird spannend...
Danke für die Antwort.
Re: Artikelsuche in Stücklisten
Verfasst: Mo, 11.08.2014 12:23
von WSO
Hallo Flo,
Die Stücklisttenauflösung ist ein Klassiker aus der Wirtschaftsinformatik. Das Netz ist voll davon mit Beispielen.
Z.B. hier:
http://www.herber.de/forum/archiv/1212t ... esung.html
Um eine Stückliste abzubilden braucht du zwei Tabellen:
1. Artikel: Artikelnummer(ID), Bezeichnung, ...
2. Stückliste: ID, Artikelnummer_Kopf, Artikelnummer_Komponente, Menge
Die beiden Artikelnummern sollen indiziert sein.
Von Artikel(Artikelnummer) legst du auf Stückliste(Artikelnummer_Kopf) eine 1:n Beziehung an.
Mittels einer rekursiven Schleife über "Artikelnummer_Kopf" kannst du dann die Stückliste Mehrstufig auflösen und nach deinen Komponententeil suchen..
Gleiche Methode über "Artikelnummer_Komponente" lifert dir einen mehrstufigen Teileverwendungsnachweis, meint: in welche Baugruppen/Endprodukte geht ein bestiummtes Teil ein.
Achtung: Bei Fehlern in der Stücklistenstruktur (wenn z.B. "Artikel-1" wiederum "Artikel-1" direkt oder indirekt enthält läuft dein Proramm in eine Endlosschleife. Einfachste Möglichkeit das zu verhindern, ist eine maximale Anzahl der Strukturstufen festzulegen. Ist die Anzahl der druchlaufenen Auflösungen größer als das Maximum kannst du die Verarbeitung mit Fehlermaldung abbrechen.
Hoffe, das hilft dir etwas weiter.
Gruss,
WSO
Re: Artikelsuche in Stücklisten
Verfasst: Mo, 11.08.2014 14:26
von flo.sonneborn
Hej WSO,
danke für deinen Beitrag.
Den Ansatz habe ich eben auch schon verfolgt.
Nun habe ich folgendes Problem:
Die mir vorliegenden Daten sehen nach einer 1. Bereinigung aus wie im Anhang 1:
- UG.xlsb
- Anhang 1
- (21.6 KiB) 164-mal heruntergeladen
Die benötigten Daten sollten aber wie in Anhang 2 ausehen:
- UG2.xlsb
- Anhang 2
- (9.23 KiB) 173-mal heruntergeladen
Eine Idee, wie ich das bei 85.000 Zeilen zügig erledigen kann?
Danke und Gruß!
Re: Artikelsuche in Stücklisten
Verfasst: Mo, 11.08.2014 15:35
von flo.sonneborn
Hallo,
habe es mit ein paar einfachen Mitteln und einem kleinen Makro bereits selber hinbekommen.
Danke erstmal! Werde mich sicherlich morgen nochmal mit weiteren Fargen melden..
Re: Artikelsuche in Stücklisten
Verfasst: Di, 12.08.2014 12:08
von flo.sonneborn
Hallo zusammen,
habe jetzt die 3 Tabellen, verstehe aber noch nicht so richtig, wie ich das Ganze in Relation setzen kann.
Folgende Fragen tun sich mir auf:
1. Tabellen
Die Tabelle 3 (ID| Art. Nr. Baugruppe | Art. Nr. Einzelteile | Menge) ist ja ganz nett, aber eigentlich sollte Sie doch wie folgt aufgebaut sein:
ID | ID Baugruppe | ID Einzelteil | Menge
Gibt es eine Möglichkeit diese Tabelle 3 automatisch zu generieren?
2. Abfragen
Wie genau kann ich denn die Abfrage in der Entwurfsansicht erstellen? Da ich ja nach mehreren Einzelteilen in der Stückliste suche und mir die Artikelnummer der Baugruppe angezeigt werden soll befürchte ich, dass ich das mit den 3 Tabellen gar nicht hinbekomme...
Ich bin dankbar für jeden Denkanstoß. Momentan komm ich nicht weiter...
Re: Artikelsuche in Stücklisten
Verfasst: Di, 12.08.2014 15:27
von WSO
Leg doch erst mal die benötigte Datenbank mit den Tabellen Artikelstamm und Stückliste(deine Tabelle 3) an.
Wozu du eine dritte Tabellen haben willst ist mir nicht verständlich.
Wenn du deine spreatsheets entsprechend der Tabellenstruktur anpasst, kannst du diese ganz einfach in die Datenbank übernehmen:
Die Tabelle in Excel oder Calc markieren, - kopieren.
In Base-Datei wechseln, dort in den Bereich "Tabellen" gehen, Bearbeiten - Einfügen. Es öffnet sich ein Assistent, der dir dann weiterhilft.
Speziell hierzu gibt es ein Vidiotutorial:
viewtopic.php?f=27&t=54234
Vielleicht schaust du dir das für Einsteiger wirklich gute Base-Handbuch mal intensiv an, hilft sehr beim Einstieg in das Thema:
http://de.libreoffice.org/hilfe-kontakt/handbuecher/
Gruss,
WSO
Re: Artikelsuche in Stücklisten
Verfasst: Do, 14.08.2014 06:50
von flo.sonneborn
Guten Morgen WSO,
habe nun die beiden Tabellen eingefügt und mich bereits mit ein paar einfachen Abfragen beschäftigt. Das klappt soweit ganz gut.
mit der Abfrage:
Code: Alles auswählen
SELECT "Stufe 1", "Artikel" FROM "Baugruppen" WHERE "Stufe 1" IN ( 'suchbegriff1', 'suchbegriff2' )
Erreiche ich auch die Anzeige der Baugruppen die ich suche.
Allerdings werden dann auch die Artikel angezeigt, die nur einen der Suchbegriffe enthalten.
Es sollten aber nur die angezeigt werden, welche BEIDE Artikel enthalten...
Wie könnte ich das lösen?
Re: Artikelsuche in Stücklisten
Verfasst: Do, 14.08.2014 07:16
von flo.sonneborn
Eine Idee die mir gerade kam:
die ausgegebene Tabelle aus der Abfrage:
Code: Alles auswählen
SELECT "Stufe 1", "Artikel" FROM "Baugruppen" WHERE "Stufe 1" IN ( 'suchbegriff1', 'suchbegriff2' )
müsste wie folgt gefiltert werden:
Alle Baugruppenartikelnummern, welche nur 1x vorhanden sind --> ausblenden
Alle Baugruppenartikelnummern, welche > "anzahl der Suchbegriffe" -1 vorhanden sind --> anzeigen
Vermutlich gibt es elegantere Lösungen. Bin für jeden Ansatz dankbar.
Re: Artikelsuche in Stücklisten
Verfasst: Do, 14.08.2014 10:05
von F3K Total
Ein Schuss ins Blaue,
eine Beispieldatei wäre hilfreich.
Code: Alles auswählen
SELECT "Stufe 1", "Artikel" FROM "Baugruppen" WHERE "Stufe 1" = 'suchbegriff1' AND "Stufe 1" = 'suchbegriff2'
Gruß R
Re: Artikelsuche in Stücklisten
Verfasst: Do, 14.08.2014 10:13
von WSO
bin mir nicht ganz sicher was du meinst.
Wenn du nur nach den Artikeln suchst, die mehrfach verwendet werden, kannst du die eine zweite Abfrage bauen, die die Anzahl des Vorkommens eines Artikels ermittelt (SQL: COUNT), im Abrageeditor: Fuktion --> Anzahl.
Darüber kannst du dann beliebig filtern.
Gruss,
WSO
Re: Artikelsuche in Stücklisten
Verfasst: Do, 14.08.2014 15:10
von flo.sonneborn
Hey,
ich hab's mit der folgenden Abfrage hinbekommen:
Code: Alles auswählen
SELECT "Artikel" FROM "Baugruppen" WHERE "Stufe 1" IN ( 'ZS00100', 'FS00202', 'G300306', 'ZL00100' ) GROUP BY "Artikel" HAVING COUNT("Artikel")=4
Jetzt muss ich das Ganze nur noch schön verpacken...
Danke für die Hilfestellungen.