Nach erfolgter Auswahl die Auswahlliste in einer DataGridViewComboBox ändern

  • VB.NET

Es gibt 37 Antworten in diesem Thema. Der letzte Beitrag () ist von VB1963.

    Danke @EDR:
    das muss ich erst in Ruhe ausprobieren und mich im typ. Dataset noch mehr vertiefen :whistling:
    bedeutet das jetzt, dass man hier mit der herkömmlichen DataGridViewComboBoxColumn arbeiten kann,
    die sich dann bei der Auswahlliste ohne den ominösen DGV-Fehler reduziert?

    @MarcoIT + @EDR:

    Ich meine das eigentlich so:

    Eine Maschine (PM) erzeugt ein Produkt (SortenListe als ParentTabelle)
    Der SortenCode besteht aus verschiedenen Farben (SortenListeFarbe als ChildTabelle)
    und verschiedenen Grammaturen (SortenListeGramm als ChildTabelle).

    Wobei die Childtabellen (Farbcode bzw. Gramm) ihre Werte aus Extratabellen (FarbListe, Grammaturen) beziehen
    und über eine DataGridViewComboBoxColumn ausgewählt werden sollen.
    Aber die ausgewählten Daten dürfen für sich nur einmal vorkommen!

    SortenCode mit bestimmter Farbe XXX und bestimmter Grammatur YYY --> definierte einmalige Sorte

    Ein Datenmodell ist immer schwierig zu erklären - hoffentlich habe ich mich da verständlich ausgedrückt.
    Das angehängte Bild zeigt das Datenmodell (hoffentlich richtig aufgebaut?)
    ... sowas hätte ich einmal vor umzusetzen z.B.: zum Auswählen einer Sorte etc.
    Bilder
    • SortenListe.jpg

      78,6 kB, 1.024×557, 140 mal angesehen
    ich empfehle, Entitäten in Singular zu denken. So weiß ich nicht, ob in deiner SortenListe-Tabelle Sorten drin sind oder Sortenlisten.

    Auch ist Singular günstiger für Schreibfaule.
    Ich nehme mal an, dass Sorten drin sind.
    Und eine Sorte enthält mehrere SortenListeFarben (auch hier scheint mir kürzer auch leichter verständlich: "SortenFarben")?

    VB1963 schrieb:

    Der SortenCode besteht aus verschiedenen Farben
    Was bedeutet das?
    Ich meine mit Sorte ein Produkt (Papier), dass mit einen bestimmten Namen und einer Nummer definiert ist,
    aber mit verschiedenen Farben hergestellt wird. Das selbe gilt für die Grammatur.

    --> Sorte zzz (Parent) mit Farbe (x0...xn) und Grammatur (y0...yn) ... (Farbe und Grammatur sind Child)

    z.B:
    zzz xxx yyy ---> definierte einmalig vorkommende Sorte
    910 007 080
    910 009 090
    910 015 100
    usw ....
    855 007 090
    855 009 110
    855 023 140
    usw ....

    Mit diesen 3 Zahlen als Kombination sollte man später dann Datensätze in anderen Tabellen (Maschineneinstellungen uvm.) behandeln können
    Grammatur = Gewicht eines Papierbogens je Quadratmeter

    eine Sorte kann verschiedene Farben haben, die Farbnummer darf aber je Sorte nur einmal vorkommen.
    d.h.: das Schlüsselchen muss daher zur anderen Seite (von Seite FarbListe zur Seite SortenListeFarbe),
    auch wenn in der SortenListeFarbe mehrere Sorten sich befinden können...
    Und das gleiche gilt bei Sorte zu Grammatur.
    Ich hätte geglaubt, da wäre eine m:n-Beziehung bei den mittigen Tabellen ... :S oder denke ich da verkehrt bei den Tabellen SortenListeFarbe und SortenListeGramm
    ... da muss ich einmal darüber schlafen ... :whistling:

    Vorerst einmal besten Dank @EDR
    nein, eine Sorte hat nur eine Farbe, und nur eine Grammatur.

    Wie soll eine Sorte mehrere Gewichte pro Quadratmeter haben?

    Ah - es fehlt eine 3. übergeordnete Tabelle.
    Ich konstruieremal:

    Tabellen
    Sorte (mit: SortenName (zb: "Reispapier", "Ölpapier", "Klopapier"), weitere Spalten...)

    SorteKonkret (was zuvor deine SortenListe war)

    Farbe (wie gehabt)

    Grammatur (wie gehabt)

    Relationen:

    Sorte->SorteKonkret

    Grammatur->SorteKonkret

    Farbe->SorteKonkret

    Gewisserweise ist SorteKonkret die MittlerTabelle einer M:N:L - Relation


    Jetzt hat jede SorteKonkret genau eine Sorte, eine Farbe, eine Grammatur

    Dieser Beitrag wurde bereits 6 mal editiert, zuletzt von „ErfinderDesRades“ ()

    Danke @EDR, jetzt wird das Ganze für mich langsam durchsichtig. :thumbup:
    Wenn man jetzt noch die Maschine dazuberücksichtigt, hat die Mittlertabelle nun 4 Relationen - glaub ich.

    Ich habe eine kurze und aussagekräftige Benamung versucht zu machen und das Datenmodell neu geordnet.
    Das Wort Liste wird nicht mehr verwendet. (siehe Bild Beziehungen mit Access erstellt)

    Das Projekt nenne ich SortenCodeGenerator

    Die Hilfstabellen, die alle möglichen Werte beinhalten, die der Generator braucht:
    PM (beinhaltet sämtliche Papiermaschinen)
    Technologien (beinhaltet sämtliche Nummern mit Namen für die Papiersorten, siehe Sorte bei obigen Tread)
    Grammaturen (alle möglichen Flächengewichte der Papiere)
    Farben (alle möglichen Farbnummern und -Namen für die Papiere und zugehörender Standardparameter)
    Farbtypen (alle Typen der Farben als Untertabelle)

    Die Haupttabellen, bei denen sich die Papiersorte nun endlich abbildet:
    Parenttabelle --> Papiersorte (siehe SorteKonkret, wo alle Relationen zusammenlaufen)
    und beide Childtabellen --> SorteGrammaturen und SorteFarben (desshalb Mehrzahl, weil mehrere Grammaturen und
    Farben bei einer Technologie sein können)

    Ein paar Konstruktionssätze für das Datenmodell:
    Eine eindeutige Papiersorte besitzt eine Grammatur und eine Farbe
    und seine Technologie beschreibt eine PapierSorte mit Nummer und Namen nur einmal.
    Es können mehrere PM eine Papiersorte produzieren.
    Der Farbtyp kann bei einer Farbe nur einmal definiert werden.
    Die Hilfstabellen besitzen sämtliche Daten, zur Generierung der Papiersorte und dürfen keine Duplikate aufweisen.
    Beim Löschen eines Wertes aus einer Hilfstabelle werden alle Papiersorten,
    die in Beziehung stehen, gelöscht bzw. aufgeräumt (da müsste man noch überlegen...).

    Ich glaube, so könnte das Ganze funktionieren...?
    Bilder
    • PapierSorteDataSet.jpg

      63,75 kB, 1.769×563, 116 mal angesehen

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „VB1963“ ()

    #dein ERM ist komisch: mal ist eine Relation mit 1----8 dargestellt, mal als Pfeil - was bedeutet diese Unterscheidung?

    #Im GG versteh ich das, nur SorteGrammatur und SorteFarbe nicht (wie gesagt: einheitlich Singular flexiert ist besser: ergibt kürzere Codenamen, einfacher zu Denken)

    #Welche Information fügt eine SorteGrammatur einer Grammatur hinzu?
    Also bei Grammatur verstehe ich: da gibts die Spalte "Gewicht"
    Aber welche Spalten hat eine SorteGrammatur, zusätzlich zum ForeignKey auf Grammatur?

    #Ebenso mit SorteFarbe
    Welche Information fügt eine SorteFarbe einer Farbe hinzu?
    Farbe verstehe ich - würde ich übrigens FarbStoff nennen.
    Also ein Farbstoff besteht aus einem TrägerMaterial eben in der Farbe.
    Aber welche Spalten kommen in "SorteFarbe" hinzu?

    Und PapierSorte ist wieder logisch (also jetzma die "komischen" Entitäten weggelassen);
    Eine PapeirSorte wird von einer Maschine gemacht, mit einer Technologie, in einer Grammatur, in einer Farbe.


    #Oh - doch noch offen: kann eine Papiersorte nicht von verschiedenen Maschinen gemacht wern?

    #Ach - auch noch offen: "Technologie" habichnich verstanden: Ich kenne SiebDruck, TiefDruck und sowas, und kann mir nicht vorstellen, dass man für verschiedene Technologien dieselbe Maschine hernehmen kann.
    Technologien ... Namen für die Papiersorten
    Der Name einer PapierSorte ist doch logisch eine Eigenschaft ( = Spalte) der PapierSorte, oder?
    Oder meint "Technologie" sowas wie "Rauhfaser", "matt", "Hochglanz"? - Das täte ich verstehen.

    Also dass man letztendlich hergehen kann und sagen: "Maschine 5 soll 500 qm Hochglanz herstellen, mit 50g/qm, mit blauer AcrylFarbe"


    (Du weist vlt. - ich bin nervig: bitte auf jede Frage (#) eingehen ;))

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

    Deine Fragen sind nicht nervig :) meine Fragen werden erst nervig werden ;)

    Also dann ...
    #dein ERM ist komisch:

    Ja da habe ich mit Access im Nachtdienst probiert und partout das Schlüsselchen mit 8 nicht vertauschen können, weis auch nicht warum?
    in der Nacht sollte man schlafen ;) ... habe es mit VB10 nochmals editiert und angehängt.

    #Im GG versteh ich das, nur SorteGrammatur und SorteFarbe nicht

    weil die Technologie nur quasi die Bezeichnung also nur einen Teil der Sorte darstellt und erst mit einer bestimmten Grammatur und einer bestimmten Farbe eine Sorte ergibt.

    #Welche Information fügt eine SorteGrammatur einer Grammatur hinzu?

    siehe obige 2. Erklärung --> eine Technologie mit vielen bestimmten Farben und bestimmten Grammaturen...
    d.h.: eine Technologie besitzt zumindest eine bis viele verschiedene Farben und Grammaturen, die extra ausgewählt werden können.
    (darum mein Problem mit der reduzierenden Auflistung in einer Combobox, die ja ihre Datenquelle in den Hilfstabellen Grammatur und Farbe sucht).

    #Ebenso mit SorteFarbe

    Farbe bedeutet nicht der Farbstoff sondern das farbige Aussehen des Papieres, es muss ja mit verschiedenen Farbstoffen gefärbt werden.
    Der Farbort ist nach Lab-Parametern definiert und dorthin muss hingefärbt werden ...

    #Oh - doch noch offen: kann eine Papiersorte nicht von verschiedenen Maschinen gemacht wern?

    Ja, hab ich eh in einem der Konstruktionssätze genannt (Es können mehrere PM eine Papiersorte produzieren.) :)

    #Ach - auch noch offen: "Technologie" habichnich verstanden

    Da liegst du gar nicht soweit daneben. Also flauschiges Hygienepapier geht nicht mit Schuhschachtelkarton auf einer Maschine - ist komplett eine andere Liga und auch eine ganz, ganz andere Papiersparte.
    Also die Technologie, die ich meine, sollte man nicht so grob different sehen --> Bürokommunikationspapiere, wie allgemeines Kopierpapier, spez. Digitaldruckpapier (Laser od. Inkjet) usw.
    sind da in ihren Eigenschaften fast nicht zum auseinanderkennen, hier liegen die verschiedenen Eigenschaften unsichtbar in der Oberfläche. Zu sehen ist die Farbe und in der Haptik spürt man die Grammatur usw.

    So, das war jetzt ein kleiner Papierdiskurs :)

    da sieht man erst, dass das gar nicht so leicht ist, was ein Papiertechniker so in ein Datenbankmodel stopfen will und dann auch für einen Datenbankprofi verständlich werden soll ...
    hoffe, ich habe genug erklären können...

    lei lei @EDR ;)
    Bilder
    • SortenListe (2).jpg

      56,36 kB, 1.024×398, 121 mal angesehen
    also dieses Datenmodell sagt aus:

    eine PapierSorte kann nur von einer Maschine hergestellt werden

    Bei Herstellung der Papiersorte werden mehrere Technologien angewendet.

    Es werden für dieselbe Papiersorte mehrere SorteFarben eingesetzt, jede mit mehreren Farben, und jede Farbe verwendet mehrere Farbtypen (das ist ja komplexer, als was Picasso an seiner Leinwand trieb!)

    Weiters hat dieselbe Papiersorte mehrere SorteGrammaturen, und jede SorteGrammatur besteht aus mehreren Grammaturen. (Das hätte selbst Boys net hinbekommen)

    Das musst du mir erklären ;)


    Tut mir leid.
    Ich kann Farbstoffe/FarbTräger (Acryl, Öl) von Farben (blau, rot) unterscheiden.

    Ich kann mw. Wichte (g/qm) von Grammatur (matt, glänzend) unterscheiden.

    Ich kann mir auch vorstellen, dasses verschiedene Herstellungsverfahren gibt (wobei ich denke, eine Maschine beherrscht nur ein Verfahren)

    Aber SorteFarbe habichn Problem: ist das ein Gemisch verschiedener Farbstoffe?

    Und wie das in deinem Modell mittnander zusammenhängt ist mir wie gesagt, gänzlich unerfindlich.

    Also am besten, du erklärst nochmal jede der Entitäten, möglichst mit praktisch vorstellbarem Beispiel.

    Also:
    Welche Werte kann Farbtyp annehmen?

    In welcher Weise kombiniert eine Farbe mehrere Farbtypen mit L(?), '(?), b(?) (was ist das L, ', b ühaupt?)?

    In welcher Weise kombiniert eine SorteFarbe mehrere solcher Farben?

    Welche Werte kann Grammatur annehmen?
    In welcher Weise kombiniert eine SorteGrammatur mehrere Grammaturen (glatt, rauh und hochglanz gleichzeitig)?

    Welche Werte kann Technologie annehmen?
    Wie vereinigt eine Papiersorte mehrere Technologien, mehrere SorteFarben, mehrere SorteGrammaturen?

    Wie kommts, dass eine Maschine so dermaßen unterschiedliche Papiersorten herstellen kann, insbesondere egal welche Technologien da drinstecken?

    So, Grammatur habichjetzt bei wiki geguckt - es ist, was ich als Wichte bezeichnet habe, einfach g/qm.
    IMO völlig unmöglich, mehrere Grammaturen in eine Papiersorte zu packen, und SorteGrammatur ?(


    Sowas etwa könnte ich verstehen:

    eine PapierSorte kann in verschiedenen Grammaturen von verschiedenen Maschinen hergestellt werden, deren jede nach einer Technologie arbeitet.
    gefärbt wird mit Farbanteilen, die angeben, welcher Farbstoff in welcher Menge zusammengerührt wird.

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „ErfinderDesRades“ ()

    unsere Posts werden immer länger, da läuft alles ganz falsch in meinem Datenmodel :)
    bleiben wir vorerst bei deiner ersten Feststellung

    also dieses Datenmodell sagt aus:

    eine PapierSorte kann nur von einer Maschine hergestellt werden


    Ich will aber, dass mehrere Maschinen die selbe Papiersorte machen können.
    Ist der Schlüssel auf der falschen Seite? 8|
    PM=übergeordnet und PapierSorte=untergeordnet?

    Ich glaube, nach all deinen Fragen sind bei mir alle auf der falschen Seite... :S

    Ist dass so :?:

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „VB1963“ ()

    Ich will aber, dass mehrere Maschinen die selbe Papiersorte machen können.
    Ist der Schlüssel auf der falschen Seite? 8|
    Ja.

    Ich glaube, nach all deinen Fragen sind bei mir alle auf der falschen Seite...
    Kann ich nix zu sagen, solange ich keinen Begriff von den Entitäten habe.


    Ein Modell mit Entitäten, die ich verstehen könnte, habichja gebastelt.
    kl. Verbesserung:

    Jetzt hast du mehrere Maschinen, die je eine Technologie beherrschen, und in einem MaschinenGang kann eine Maschine eine bestimmte Menge einer PapierSorte herstellen

    Dieser Beitrag wurde bereits 6 mal editiert, zuletzt von „ErfinderDesRades“ ()

    glaube, so kommen wir da nicht weiter...

    Ich werde eine Übersicht erstellen mit Bildern, wie ich mir das vorstelle.
    Und Beispiele der Struktur dazugeben.

    Es ist gar nicht so kompliziert, aber dafür brauche ich ein wenig Zeit.

    Melde mich wieder, wenn ich was dazu habe.
    Ich versuche jetzt nochmals genau zu erklären: :)

    In einer aufgeteilten Tabelle (Haupt- u. 2 Untertabellen) sollen verschiedene Sorten (Papier) definiert werden können.

    Eine Sorte besteht aus einer Technologienummer (Haupttabelle), einer Farbnummer und einer Grammatur (2 Untertabellen).

    Erklärungen:
    Eine Technologienummer deutet auf ein Gerät (Drucker, Kopierer etc.) hin, für das die Sorte geeignet ist bzw. verwendet werden soll.
    Die Technologie bezieht sich hier nicht auf das Herstellungsverfahren der Maschine!
    Es gibt eine Technologie mit verschiedenen Farben und Grammaturen (Flächengewichte) --> also es gibt verschiedene Sorten mit der selben Technologienummer!
    Die Farbnummer benennt einen Farbton (farbliches Aussehen) der Sorte (z.B.: ein definiertes Gelb) --> also es gibt nur einen Farbton je Sorte!
    Die Grammatur bezeichnet die Schwere der Sorte --> also es gibt nur ein Flächengewicht je Sorte!

    Es gibt verschiedene Maschinen (PM), die die selbe Sorte herstellen können. Aber es gibt auch Sorten die nur eine einzige Maschine herstellen kann.

    Zur Ergänzung:
    Mit Lab werden die vom Kunden geforderten Farbtöne (Farbnummern) definiert.
    Die Farbart ist hier untergeordnet --> kennzeichnet den Farbton als bunt, weiß, leuchtend, pastell- bzw. intensivfärbig.

    TechNr, FarbNr, Grammatur und PM werden in Hilfstabellen zur Verfügung gestellt und sollen via Comboboxen in den DGV (Haupt- u. Untertabellen) der betreffenden Collumn auswählbar sein.

    pp --> PM (Maschinennummer) --> Haupttabelle

    Struktur der Sorte, z.B:
    zzz --> TechNr --> Haupttabelle
    xxx --> FarbNr --> Untertabelle 1
    yyy --> Grammatur --> Untertabelle 2

    zzz xxx yyy ---> definierte Sorte
    910 007 080
    910 007 090
    910 015 100
    usw ....
    855 007 090
    855 009 110
    855 009 140
    usw ....

    Mit diesen 3 Zahlen als Kombination sollte man später dann Datensätze in anderen Tabellen (Maschineneinstellungen, Rezepte, Qualitätswerte uvm.) behandeln können.

    Wie kann hier das Datenmodell jetzt aussehen :?:

    PS: war 2 Wo im Urlaub, daher leider so verspätet ...

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „VB1963“ ()

    Komisch, dasses auf einmal so einfach ist.
    Ich glaub, das ist die Rede von den Nummern überall, anstatt dass gesagt wird, was die Nummern bedeuten.
    Eine Nummer erklärt garnix, höchstens ob sie Prim- oder Foreign-Key ist.
    Wichtig ist IMO, die Entitäten richtig aufzufassen, also die Wirklichkeit. Und nun vermeine ich verstanden zu haben, dass eine Papiersorte sich definiert über ihren Verwendungszweck (bitte nicht: "TechnologieNummer"), ihre Grammatur und ihre Farbe.

    Ist doch perfekt: Das sind jetzt 4 Entitäten - die Entität Papiersorte ist den anderen dreien untergeordnet:

    Und da hast du auch deine 3 Nummern, nur heißen sie nicht xxx, yyy, zzz, sondern VerwendungsZweckID, GrammaturID, FarbeID.
    Praktisch im Programm wird man diese IDs kaum jemals anfassen, weil man ja nicht die Nummern will, sondern die dadurch verlinkten Datensätze ("ihre Bedeutung").

    Ich habe sie spaßeshalber als zusammengesetzten PrimKey definiert - das macht v.a. deutlich, dass die Kombination der 3 ForeignKeys die Identität einer PapierSorte ausmacht.
    Hat aber auch den praktischen Grund, dass dadurch bewirkt ist, dass niemals ein Papiersorte-Datensatz mit derselben Nummer-Kombination zweimal angelegt werden kann.
    @EDR: vielen Dank für deine Geduld und Bemühungen

    Komisch, dasses auf einmal so einfach ist.

    lag an meinen vorigen ungenauen Beschreibungen...


    Ich werde dein Modell probieren :) Danke noch einmal

    Hat es einen Grund, warum die ID in der Tabelle Farbe keinen Schlüssel hat?
    Soda, jetzt habe ich dein Datenmodell via typisiertes Dataset (only) ausprobiert.
    Das Modell übertrifft sogar meine Anforderungen. Jetzt gehts ganz einfach und schnurgerade ohne Untertabellen
    und somit ist auch mein speziell abgeändertes und noch nicht ganz ausgereiftes ComboBoxColumn hinfällig :P
    Die Entität Maschine habe ich noch dazu eingebunden, wie du es mit den anderen gemacht hast.
    Den Sinn eines zusammengesetzten PrimKey's habe ich jetzt erst richtig verstanden. :rolleyes:

    Nochmals vielen Dank @EDR :thumbsup:

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „VB1963“ ()