Dataset only; ComboBoxColumn nach dem Wert einer vorherigen ComboBoxColumn filtern

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von Alutec300.

    Dataset only; ComboBoxColumn nach dem Wert einer vorherigen ComboBoxColumn filtern

    Um die Zeit meines nun angetretenen Ruhestandes sinnvoll und doch zeitvertreibend zu füllen, habe ich beschlossen, viele Dinge, die ich momentan mit Papier und Bleistift festhalte, zu digitalisieren.
    Ich bin leidenschaftlicher Sportschütze und Jäger (seht es mir bitte nach) und stelle meine Munition selbst her. So, wir nähern uns dem eigentlichen Thema.
    Ich weiß nicht, wie ich eine Grafik hochladen kann, deshalb schreibe ich ein paar Zeilen mehr :)
    Das Datenmodel (andeutungsweise): So eine Patrone gehört zu einer bestimmten Waffe und daraus ergibt sich ein konkretes Kaliber. In einer DGVComboBoxCulomn kann die Waffe ausgewählt werden. Im Stammsatz zur Waffe ist das Kaliber (über eine ID) angegeben. Über dieses Kaliber sollen nun die Werte für Hülsen (sind kaliberspezifisch) und Projektile (sind ebenfalls kaliberspezifisch), die in den weiteren DGVComboBoxColumn auswählbar sind, bereits gefiltert werden. Dieses Filtern bekomme ich in einem DGV nicht hin.

    Geht das überhaupt in einem DGV oder muss ich da cascadieren?

    Ich versuche hier eine Lösung in der Art Dataset only, da mich das Thema interssiert. Das ganze Thema ist natürlich weitaus komplexer bis die ganze Laborierung für eine Patrone festgehalten ist. Zudem soll noch eine grafische Auswertung der eingescanten Schussbilder das Ganze abrunfen. Viel zu tun und ich stehe ganz am Anfang und habe schon Probleme :(

    Danke schon mal vorab für eure Hilfe! Die sehr guten Filme um 4 views herum habe ich mir angeschaut, aber für mein Problem keinen Lösungsansatz gefunden.

    Viele Grüße
    Jürgen
    Klick nicht auf [Antworten], sondern auf [+ Erweiterte Antwort]. Da kannst Du Bilder etc. hochladen. Dann al mal bitte ein Bild, wie das aussehen soll, wenn's fertig ist, inkl. tDS-Designer-Screenshot.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Danke für die Tipps!

    So anbei das Datenmodell (DMWLDB.PNG). Nun wollte ich ein DGV zur Tabelle tblLabo mit je einem DataGridViewComboBoxColumn je Fremdschlüssel zu den Stammdatentabellen. Im Beispiel (LABO.PNG) sind nur zwei FK enthalten, ID_Kaliber und ID_Hülsen. Nachtrag: in der Datei CB.PNG sind die Einstellungen zur ComboBoxColumn. Funktioniert alles prima, nur meine Vorstellung, dass, wenn man das Kaliber ausgewählt hat, nur noch Hülsen von eben diesem Kaliber zur Auswahl in der entsprechenden DataGridViewComboBoxColumn angezeigt werden, bekomme ich nicht realisiert. Es werden immer alle Hülsen angezeigt bzw. zur Auswahl angeboten. Habe ich das verständlich formuliert??

    In einer bestehenden Lösung auf Basis ACCESS habe ich das so realisiert, dass ich eine Cascade von Combo-Boxen habe und immer auf der Eingabe der vorherigen Box das SQl-Statement für die nächste "zusammen bastle" und dann erst diese ComboBox einblende - also nach ErfinderDesRades -"voll pfui". Seine Filme über die 4 Views haben mich dann angeregt, das gleiche nochmal unter VB.net zu machen - nur besser natürlich :) (Und die grafische Auswertung geht unter Access nun gar nicht)
    Wenn es aber so gar nicht geht, lasse ich die Verwaltung der Laborierungen unter Access und hole mir die Laborierungsdaten zur Beschriftung der Scheibe (PDF-Dokument) in das VB.Net-programm und erledige dort den restlichen grafischen Teil. (Einscannen Schussbild, Berechnung der Fläche des Polygons , welches durch die Einschusslöcher gebildet wird. Je kleiner die Fläche, umso besser meine Muni)


    Viele Grüße
    Jürgen
    Bilder
    • DM_WLDB.PNG

      31,69 kB, 772×481, 94 mal angesehen
    • Labo.PNG

      8,75 kB, 514×307, 102 mal angesehen
    • CB.PNG

      17,61 kB, 586×384, 94 mal angesehen

    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „Alutec300“ ()

    Über ein DGV ist das - wenn ich Dein Anliegen richtig verstanden habe - nicht möglich. In einer DGV-Zeile legst Du ja die Eigenschaften/Zellwerte einer DataTable-Zeile fest. Das hat ja nix mit Filtern zu tun, die DGV-ComboBoxColumn ist ja nur dafür da, um zu sehen, was sich in einer anderen Tabelle hinter einer ID verbirgt. Für das Filtern müsstest Du mehrere DGVs oder ComboBoxen/ListBoxen mit je einer BindingSource verwenden. Das ist aber in den VVV (vier View Videos) auch mit drin.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Hi,

    vielen Dank für Deine Antwort. Hatte schon den Verdacht, dass ich auf dem falschen Weg unterwegs bin. Ich habe insgeheim darauf gehofft, dass es vielleicht irgendein Ereignis für Comboboxcolumn.ausgewählt gibt, mit Hilfe dessen ich dann einen Filter in der BindingSource der nachfolgenden Spalte hätte setzen können.

    Also nochmals ein Danke schöööön!!!!

    Alutec300 schrieb:

    dass, wenn man das Kaliber ausgewählt hat, nur noch Hülsen von eben diesem Kaliber zur Auswahl
    Da besteht also offensichtlich eine Beziehung zwischen Kaliber und Hülse.
    Das sollte sich so auch im Datenmodell wiederspiegeln.

    Dein Sonderwunsch mit Spezial-Einschränkung der Hülsen-Auswahl in Abhängigkeit zur Kaliber-Auswahl in derselben DGV-Zeile ist damit natürlich noch nicht befriedigt, aber ein richtigeres Datenmodell ist immer ein Fortschritt.

    Ich hab glaub auch mal iwo sowas zusammen-gehackt - es ging glaub darum, dass Dinge nur einmalig ausgewählt werden durften.
    Müsste ich suchen, wo das ist - vermutlich iwo bei die Datenbank-tuts.
    Aber ist ziemlich gehackt - ich glaub, ich hab beim DropDown_Opende temporär die Bindung aufgelöst, und beim DropDown_Closed wieder hingemacht.
    Hallo Erfinder des Rades,

    da gibt es noch einige Beziehungen mehr, zum Beispiel Projektil zu Kaliber, Hülse zu Waffe etc., ist an den ID's erkennbar, für mein aktuelles Problem habe ich nur einen Teil dargestellt. Aber richtig erkannt, das Datenmodell ist nicht komplett dargestellt!
    Den Beitrag zum Einschränken der ComboBox-Auswahl schaue ich mir mal an.
    Die DropDown-Ereignisse habe ich nur auf Ebene des DGVGridViews selbst gefunden, nicht auf den DGVComboBoxColumns - schaue ich mir aber auch nochmasl an.

    Danke für die Tipps!

    Viele Grüße
    Jürgen