Winforms Datagridview : Übernahme-Zeilen von einer Komponente zur anderen

  • VB.NET
  • .NET (FX) 4.0

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von Gunngir.

    Winforms Datagridview : Übernahme-Zeilen von einer Komponente zur anderen

    Hallo,

    Ich programmiere für meine Firma ein Programm mit denen Konstruktionsdaten ge-managed werden.
    mein Chef hatte mich vor kurzem vor eine Aufgabe gestellt, bei der ich mir nicht sicher bin, was der beste Lösungsansatz ist.

    Ausgangssituation:

    Tabelle von Elementen (Komponenten mit Baugruppen) in einer Liste
    Einzelne Komponenten können je nach gewähltem Knotenpunkt angezeigt werden.

    Beispiel:
    Ebene1
    Ebene2
    Ebene3
    Ebene4
    Ebene5 (Komponentenebene)

    Es kann also auch der Knotenpunkt von Ebene2 ausgewählt werden, dann werden alle untergeordneten Knotenpunkte (*Ebene1\Ebene2*) angezeigt.
    Ebenfalls können auch die Baugruppen einer ausgewählten Komponente angezeigt werden.

    Beides mal sollten dann auch die übernommenen Baugruppen angezeigt werden - von der orginalen Baugruppe aus - aber nicht editiert werden können.

    Hier ein Beispiel an Baugruppen wenn die Komponente im Programm geöffnet wird:
    Bezeichnung
    Beschreibung
    Kundennummer
    Links
    ...
    ZSB
    Beschr1
    KdNr1
    1
    ...
    Spanner1
    Gruppe1
    KdNr2
    1
    ...
    Spanner2
    Gruppe1
    KdNr3
    1
    ...
    ...
    ...
    ...
    ...
    ...







    Hier zur Frage:
    Wie kann man am Besten übernommene Baugruppen (Kinder einer Komponente, ebenfalls in der Tabelle elemente vorhanden) anzeigen?

    Lösungsansatz von mir bisher:
    neue Tabelle machen, und mit Union-Abfrage die übernommenen Baugruppen künstlich doppelt anzeigen.
    Dies hat jedoch den Nachteil, dass ich für die Gesamtliste nicht weiß, wie man hier die Union-Abfrage machen soll.

    Oder hat jemand einen besseren Ansatz?
    ich werde waaahrscheinlich folgendes machen (auch wenn die Lösung für den MySQL Server viel Leistung benötigt, da die ganze Liste durchsucht werden muss...)

    Komponente = Vater
    Baugruppe = Kind

    Eine neue Spalte anlegen: KopiertVonBaugruppenID (oder dergleichen)
    Bei jedem Speichern jeder Baugruppe mit einem Trigger nach Kopie-Baugruppen suchen
    und diese dann wie die Orginal-Baugruppe editieren.


    oder:
    Baugruppen-Liste machen welche Baugruppen von welchen kopiert wurden,
    Bei einem Speichern soll dann vom Programm nach den Klonen gesucht werden und die gleiche Info eingespeichert werden.

    Beide Antworten sind zwar nicht mal ansatzweise schön, aber bitte... hat jemand eine bessere Antwort?

    Leider hatte ich nichts in 2 Stunden suchen im Internet gefunden, wo das gleiche Problem gelöst wird.
    deine Problem-Beschreibung ist mir unverständlich.
    Wie wählt der User eine Ebene aus - was sind das für mysteriöse "Knotenpunkte", von denen du erzählst?

    Das hier ist mir vielfach unverständlich:
    Beides mal sollten dann auch die übernommenen Baugruppen angezeigt werden - von der orginalen Baugruppe aus - aber nicht editiert werden können.
    Was ist "übernommen", was ist die "originale", und wo und wieso gibt es weitere, nicht "originale" etc.??
    Gibts da auch nen sauberes Datenmodell dazu oder ne grafische skizze? Oder nem Praxisbeispiel was das ganze werden soll? Ich weiß leider anhand deiner Beachreibung nicht wirklich was du machen willst...
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen
    Okay, dann ein zweiter Versuch:

    Ich arbeite in einem Konstruktionsbüro. Hier werden Komponenten (Beispiel: Drehtisch oder Vorrichtung zum Spannen von Teilen eines Autos) konstruiert.
    Momentan läuft mein Programm und managed diese über Konstruktion, Simulation, Detaillierung bis hin zu Lieferung.

    Komponenten und Baugruppen sind in einer Liste "elemente" auf dem MySQL Server gespeichert.
    Komponenten sind die "Eltern", Baugruppen sind die "Kinder"

    Problemstellung: Momentan kann keine Baugruppe einer Komponente in einer anderen Komponente übernommen werden.

    Übernommen heißt: eine Baugruppe soll wo anders nochmals verbaut werden, in einer anderen Komponente.
    Die Baugruppe darf in den übernommenen Komponenten nicht verändert werden - nur in dem Orginal.

    Wie kann man dies am Besten bewerkstelligen?

    Leider habe ich kein sauberes Datenmodell,
    da alles sich in Eigenregie beigebracht wurde
    ... und ich offensichtlich beträchtliche Lücken in meinem Wissen habe, die langsam geflickt werden. :saint:
    @Gunngir Datenmodelle sind nicht mein Ding.
    Aber dies Problem ließe sich ggf. mit einem Verweis auf die Original-Baugruppe lösen.
    Die weiß dann, wo sie herkommt, wie sie aussieht und funktioniert und dass sie nicht editiert werden darf.
    Und wenn das Original editiert wird, werden alle Verweise aktualisiert.
    Dazu müsste allerdings das Original eine Liste von benutzten Verweisen bekommen.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!