2 Datagridviews grafisch verbinden

  • VB.NET

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von Rainman.

    2 Datagridviews grafisch verbinden

    Hallo zusammen.

    Ich habe heute mal wieder eine knifflige Aufgabe im Kopf.

    Folgende Situation:
    Ich habe 2 Datagridviews auf einer Form. Eines links, eines rechts. In beiden stehen (u.a.) Namen. Diese können vom Benutzer zugeordnet werden. Das muss ich jetzt irgendwie lösen. Am besten auch noch grafisch Darstellen (mit einer farbigen Linie von einem Datagridview zum anderen, auf der korrekten Höhe).

    Also z.B: steht in Datagridview1
    A
    B
    C
    D

    Und in Datagridview2
    1
    2
    3
    4
    5

    So soll der User eine Verbindung(/Beziehung) zwischen den Feldern herstellen können. z.B. A <=> 1 ; C <=> 5 ; B <=> 2 ... und so weiter.

    Ich hätte jetzt spontan gesagt ein Grafikfeld nehmen und dort die Striche reinzeichnen. Die Verbingung selbst per Drag'n'Drop oder per Klick machen. Klick auf Datagridview1.Row1.Cell1 und klick auf Datagridview2.Row2.Cell1 : Dann Verbindung A <=> 2 hergestellt.

    Aber gibt es vielleicht noch eine elgeantere Lösung?

    Für eine bildlichere Vorstellung: user.grg23vbs.ac.at/guenter.ob…Beziehungen_refIntegr.png
    Links ein Datagrid, rechts ein Datagrid und in der mitte Striche die die Verbindung zu den zugeordnetten Feldern 'sichtbar' machen.

    Viele Grüße
    Chaosprogrammierer

    Verschoben. ~Trade

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Chaosprogrammierer“ ()

    Hallo Erfinder.

    Sehr schönes Video!
    Leider hast Du vergessen was ist mit Bildern die einem nicht gehören. Ich vermute das wir da wohl Ärger bekommen wenn ich das hier so einfach einfüge. Urheberrecht und das Zeugs.
    Aber wenn Du auf den Link nicht klicken möchtest, dann hier die Google Images Anzeige (hier). Oder stelle Dir einfach eine grafisch Dargestellte x:n Kardinalität vor.

    Denn mir geht es ja mit dem Bild nur darum euch eine Vorstellung davon zu geben was ich mir Vorstelle.
    Möglicherweise kommen wir hier besser weiter, wenn du nur die Aufgabe beschreibst.
    Ohne eine halb vergorene Lösungsidee zu präsentieren, die ggf. das Problem gar nicht abdeckt.
    Du willst also Namen aus zwei Listen einander zuordnen - wie genau? Jedem Namen nur genau einen anderen?
    Oder darf einem Namen der einen Liste eine Menge von Namen zugeordnet werden?
    Oder sogar jeder Name jedem anderen (n:m)?
    Je nachdem gibts unterschiedliche Möglichkeiten zur Visualisierung, die auch ganz ohne "Striche" auskommen :saint:
    PS: habe mir das Bildchen aus genannten Gründen auch nicht angesehen.
    An manchen Tagen gibt es zu allem Überfluss auch noch Ärger!
    hmm... Ok, ich sehe es ein. Vergesst den Link und das Bild.

    Meine Aufgabe hatte ich im Eingangspost schon ausführlich beschrieben.
    Eine Form mit 2 Datagridviews. 1 links, 1 rechts. Benutzer muss eine Feldzuordnung vornehmen können und dies soll möglichst übersichtlich angezeigt werden. Am besten grafisch zwischen den Datagridviews (alternativen möglich).

    Genau, ein Eintrag in Liste 1 kann nur einem Eintrag in Liste 2 zugeordnet werden. Doppelt gibt es nicht. Einträge nicht zugeordnet lassen gibt es aber.

    Rainman schrieb:

    Je nachdem gibts unterschiedliche Möglichkeiten zur Visualisierung, die auch ganz ohne "Striche" auskommen


    Ich bin ganz Ohr :)
    Und das soll der User um-ordnen können?
    Das hieße ja, wenn der User eine Zuordnung setzt, dass dann eine vorherige Zuordnung gelöscht werden müsste.

    In meiner Welt müsste man sowas malwieder mit einem typisierten Dataset programmieren - da könnte man leicht eine Zuordnungstabelle anlegen.

    Und als Zuordnungs-Anzeige könnte man einfach machen, dass wenn im einen Dgv ein Datensatz selected ist, dass dann das andere Dgv den zugeordneten Datensatz auch selected.
    Hier mal ein Vorschlag, wie man mit nur einem DGV auskommt.
    Zwei Spalten nutzen, die linke Spalte wird mit den Namen gefüllt, also A,B,C,D,E siehe Post #1.
    Die rechte Spalte ist eine Combobox. Beim Draufklicksen wird 1,2,3,4,5 angezeigt und man kann einen
    Eintrag wählen, der daraufhin dauerhaft angezeigt wird. Wenn die 1 gewählt wird, dann steht für die
    anderen Zeilen nur noch 2,3,4,5 als Auswahl zur Verfügung. Viel Spaß beim Programmieren!
    Aufwand: easy, für den geübten Proggi die Fingerübung vor der Arbeit, zum Aufwärmen.
    Folge-Probleme ( z.B. Lesen & Speichern der Daten in einer DB) können wir im Anschluss behandeln.
    An manchen Tagen gibt es zu allem Überfluss auch noch Ärger!