DGV Auswahl einer bestimmten Form zuweisen

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    DGV Auswahl einer bestimmten Form zuweisen

    Guten Morgen liebes Forum

    Ich versucht in einer Form (Lager) über die DGV einen bestimmten Artikel einer Form zuzuweisen.

    Beispiel:

    120mm mit NUT = FormWalze 1
    120mm ohne NUT = FormWalze2
    125mm ohne NUT = FormWalze3

    Hier ist mein Ansatz für die Auswahl als Code:

    VB.NET-Quellcode

    1. Private Sub BtnWalzenpass_Click(sender As Object, e As EventArgs) Handles BtnWalzenpass.Click
    2. If DataGridView1.RowCount = 0 Then
    3. MsgBox("Walzenpass anzeigen nicht möglich, Tabellendaten sind leer", MsgBoxStyle.Critical, "Fehlermeldung")
    4. Return
    5. End If
    6. If DataGridView1.SelectedRows.Count = 0 Then
    7. MsgBox("Walzenpass anzeigen nicht möglich. Wählen Sie zuerst eine Walzenart aus", MsgBoxStyle.Critical, "Fehlermeldung")
    8. Return
    9. End If
    10. Try
    11. con.Open()
    12. Catch ex As Exception
    13. MessageBox.Show("Verbindung fehlgeschlagen !!!" & vbCrLf & "Bitte überprüfen Sie, ob der Server bereit ist !!!", "Fehlermeldung", MessageBoxButtons.OK, MessageBoxIcon.Error)
    14. Return
    15. End Try
    16. Try
    17. For Each row As DataGridViewRow In DataGridView1.SelectedRows
    18. If row.Selected = True Then
    19. ' Hier wird die Auswahl für den Walzenpass getroffen
    20. End If
    21. Next
    22. Catch ex As Exception
    23. MsgBox("Fehler beim anzeigen des Walzenpasses" & vbCr & ex.Message, MsgBoxStyle.Critical, "Fehlermeldung")
    24. con.Close()
    25. End Try
    26. con.Close()
    27. End Sub


    Ich denke das man die Walzenart über die Eindeutige "Lager-Nummer" zuweisen muss, aber da hänge ich jetzt.

    Vielleicht kann mir jemand ein weiteren Ansatz dafür geben.

    Grüßen und Danke

    Gebhard
    Bilder
    • Walzenpass.jpg

      406,52 kB, 2.406×1.522, 114 mal angesehen
    Mach da ein anständiges Datenmodel rein. Wenn ich sehe, wie hier die Leute ständig so wie du mit den DGV Zeilen und Cells hantieren, da frag ich mich: Warum tun die sich das an?

    Warum hast du nicht einfach alle möglichen Artikel in deinen Daten, so das eine eindeutige "Produkt-ID" da ist. Dann aber nicht für jeden Artikel ein seperates Form anlegen, nur 1 einziges, dort dann die Details des Datensatzes mit dieser Produkt-ID anzeigen.

    Ich denke du hast das von Grund auf nicht richtig gemacht.
    Zitat von mir 2023:
    Was interessiert mich Rechtschreibung? Der Compiler wird meckern wenn nötig :D

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

    Guten Morgen

    DTF schrieb:

    Mach da ein anständiges Datenmodel rein.


    Ich habe mir gestern den Beitrag vom ErfinderDesRades über Grundlagen: Relationale Datenmodellierung angesehen.

    Ich denke das ich dieses Beispiel auch auf mein (Lager) übertragen könnte.

    DTF schrieb:

    Dann aber nicht für jeden Artikel ein seperates Form anlegen, nur 1 einziges


    Da wird es für mich schwierig. Wie realisier ich es, in einer Form 8 verschiedene Artikel anzeigen zu lassen?

    DTF schrieb:

    Ich denke du hast das von Grund auf nicht richtig gemacht.


    Ich habe mehr oder weniger mein ganzes "Projekt" über DGV Zeilen, Cells und co. aufgebaut. Somit muss ich jetzt wieder von ganz vorne beginnen.

    Grüße Gebhard

    Typhoon schrieb:

    in einer Form 8 verschiedene Artikel anzeigen zu lassen?


    Du musst Objekt-Orientiert denken. Du hast du etwas, das hat verschiedenes was du anzeigen lassen willst. Das könnte sowas wie eine Id sein, ein Name, eine Beschreibung. Dieses "etwas" nennen wir einen Datensatz. In diesem Datensatz hast du dann Id, Name etc... Diese Details willst du anzeigen lassen, da hast du mehrere Möglichkeiten, auf dem Form wo das gezeigt werden soll, die nötigen Controls dazu hinzufügen. Willst du den name anzeigen lassen ein Label drauf, dessen TexProperty dann an das Feld im Datensatz binden.

    Alternativ eine Sub in die Klasse des Forms, wobei DataBinding zu lernen der bessere Weg ist.

    VB.NET-Quellcode

    1. Sub DisplayData(datenHalter as DatenHalterKlasse) //DatenHalterKlasse könnte eine DataRow sein. Schau dir das mit den typisierten Dataset in den Tutorials an.
    2. labelName.Text = datenHalter.Name
    3. pictureboxProductphoto.Image = .....
    4. .....
    5. end sub



    Zitat von mir 2023:
    Was interessiert mich Rechtschreibung? Der Compiler wird meckern wenn nötig :D
    ich würde empfehlen, nicht nur objektorientiert zu denken, sondern sogar relational.
    Und dann den Kopf freimachen von Forms und Controls, und überhaupt erstmal die Realität in den Blick nehmen.
    Mir scheint, in Post#1 gibt es Werkstücke und Walzen - Daraus ergäben sich die Entitäten (und später DataTables): Werkstueck und Walze
    gibt es in der Realität noch mehr, was damit zu tun hat?
    Ah, es gibt noch "Lager" - ist da zwischen Kugellager und Gleitlager zu unterscheiden?