Linq - Group Join - Synatax Probleme

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

Es gibt 160 Antworten in diesem Thema. Der letzte Beitrag () ist von StGo.

    Es hat noch einen Fehler aber im Grund läuft es. Werde das morgen bereinigen. Wenn jemand einen Blick wagen möchte ich hänge dasProjekt an.

    Die Dateistruktur ist etwas durcheinander. Leider habe ich beim Speichern kurz nicht aufgepasst. Funktioniert aber trotzdem.
    Dateien
    • Projects.zip

      (177,67 kB, 78 mal heruntergeladen, zuletzt: )

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

    Fehler 2 Die Moduldatei "C:\Users\Account1\Downloads\MasterDetailView\frmMasterDetailReiter.Designer.vb" kann nicht geöffnet werden: Das System kann die angegebene Datei nicht finden. C:\Users\Account1\Downloads\MasterDetailView\frmMasterDetailReiter.Designer.vb 1 1 MasterDetailView

    edit: hab nun stattdessen "frmMasterDetail.vb" - da gehts.
    und was ist der Fehler?
    Morgen,

    ich habe gestern das frmMasterDetailReiter.Designer.vb im falschen ordner gespeichert. Kleiner Fehler. jetzt habe ich das Projekt gerichtet. Momentan wir noch der falsche Reiter gewählt. Aber das werde ich gleich noch regeln. Wollte nur das die die diesen Thread verfolgen das sie auf dem aktuellen Stand bleiben.

    So hier das Projekt

    EDIT: funktioniert. Die Idee von EDR gefällt mir immer besser. Wenn ich jetzt noch die Tabs nach unten bekäme damit der Abstand nicht so groß ist wäre es glaube ich eine gute Lösung. Ich hänge die funktionierende Datei an.

    EDIT2: Alignment auf Bottum ändern und dann siehts gut aus: TabControl1.Alignment = TabAlignment.Bottom
    Dateien

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

    Hmm - von ordentlich Layout hälst du auch nicht so viel, was?
    Mindesten Dock.Fill könnte man bei allen SplitContainern und TabControls einstellen.
    Und SplitContainer.FixedPanel ist auch immer eine gern gesehene Option.
    Lass dich bisserl inspirieren: Layout in WinForms

    Aber v.a. - hast du 4-Views-Film#8 gesehen - Coden in typisierter Manier?
    Da ist gezeigt, wie man Daten auf typisierte Weise aus der Bindingsource holt, dass man nicht im DGV rumgrabschen muss, wo alle Zellen-Werte immer nur Typ Object haben.
    Aber ich mach auch nochmal vor:

    VB.NET-Quellcode

    1. Private Sub StammdatenBindingSource_CurrentChanged(sender As Object, e As EventArgs) Handles StammdatenBindingSource.CurrentChanged
    2. Dim rwStamm = DirectCast(DirectCast(StammdatenBindingSource.Current, DataRowView).Row, StammdatenRow)
    3. Select Case rwStamm.Dateityp
    4. Case "xls"
    5. Case "pdf"
    6. Case Else
    7. End Select
    8. End Sub

    Das Layout ist gerade nicht das wichtigste. Da habe ich mir keine Mühe gegeben. Aber da setzte ich mich nochmal dran.

    Das Video 8 habe ich noch nicht gesehen. Werde ich mir aber dann wohl noch zu geüte führen.

    Auf die BindingSource Idee wäre ich nie gekommen. Das werde ich gleich mal testen.

    Aber ich habe noch eine Frage:

    TabControl1.Appearance = TabAppearance.Buttons und TabControl1.Alignment = TabAlignment.Bottom vertragen sich nicht. Ich denke du hast TabAppearance.Buttons in deiner Vorlage genutzt damit man später nicht sehen kann, dass ein TabControl genutzt wurde. Wenn man die mormalen Reiter nutzt kann man es sehen. Hast du eine Idee wie ich das Problem lösen kann?

    Danke

    StGo schrieb:

    Das Video 8 habe ich noch nicht gesehen. Werde ich mir aber dann wohl noch zu geüte führen.

    Auf die BindingSource Idee wäre ich nie gekommen.


    Gibt es heute einen Wettbewerb oder was? Wer bringt mich am ehesten zur Verzweiflung? ;(

    @ErfinderDesRades
    Ich habe schon mal geschrieben, mir ist es unbegreiflich, woher du deine Engelsgeduld nimmst... Respekt! :thumbup:
    Das schönste an den Videos ist die trockene Art!

    ... Jetzt sieht man - sieht scheisse aus .... :)

    EDIT: Habe alles etwas aufgehübscht. Das Datenanzeigen funktioniert jetzt auch einbandfrei. Werde mich jetzt noch mit dem Ändern/Löschen/Speichern beschäftigen. Falls jemand das Projekt als Vorlage für sein Problem nutzen möchte dem sei der Download der aktuellen version ans Herz gelegt. Hinweise zur besseren Umsetzung nehme ich gerne entgegen.
    Dateien

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

    Ich habe da noch eine Frage. Wie fange ich das Problem ab das auf das Event erst reagiert wird wenn Daten geladen sind. Also ich mit leerem DataGridView starten möchte weil ich die Daten aus einem XML importieren möchte.

    Code von EDR:

    VB.NET-Quellcode

    1. Private Sub StammdatenBindingSource_CurrentChanged(sender As Object, e As EventArgs) Handles StammdatenBindingSource.CurrentChanged
    2. Dim rwStamm = DirectCast(DirectCast(StammdatenBindingSource.Current, DataRowView).Row, StammdatenRow)
    3. Select Case rwStamm.Dateityp
    4. Case "xls"
    5. Case "pdf"
    6. Case Else
    7. End Select
    8. End Sub


    Siehe Projektdatei

    EDIT: Nicht elegant wie ich finde aber es funktioniert

    VB.NET-Quellcode

    1. Private Sub StammdatenBindingSource_CurrentChanged(sender As Object, e As EventArgs) Handles StammdatenBindingSource.CurrentChanged
    2. 'Prüfung einbauen
    3. If StammdatenBindingSource.Count > 1 Then
    4. Dim rwStamm = DirectCast(DirectCast(StammdatenBindingSource.Current, DataRowView).Row, dsStammdaten.StammdatenRow)
    5. Select Case rwStamm.Dateityp
    6. Case "xls"
    7. TabControl1.SelectedIndex = 1
    8. TabControl2.SelectedIndex = 1
    9. Case "pdf"
    10. TabControl1.SelectedIndex = 2
    11. TabControl2.SelectedIndex = 2
    12. Case Else
    13. TabControl1.SelectedIndex = 0
    14. TabControl2.SelectedIndex = 0
    15. End Select
    16. End If
    17. End Sub

    Dateien

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

    Wenn ich beim Start des Programms keine Daten generiere greift trotzdem das Event auf der BindingSource. Siehe Code Abschnitt in meinem letzten editierten Beitrag. Alternativ kannst auch das Projekt ausgeführt werden.

    Danke
    Ich bekomme das gleiche Problem wenn ich einen Datensatz einfügen will.

    Als Beispiel:
    1. Im Fenster Stammdaten in die leere zeiel Klicken*
    2. Nr, Eingabepfad, Ausgabepfad und Dateityp eingeben
    3. Jetzt kann das programm entscheiden welcher "Tab" angezeigt wird damit die Detai-Informationen eingegeben werden können
    4. Speichern drücken

    *hier ensteht der Fehler da das Feld Dateityp leer ist
    fast! Jetzt entsteht der Fehler beim Laden des XML :)

    VB.NET-Quellcode

    1. Private Sub StammdatenBindingSource_CurrentChanged(sender As Object, e As EventArgs) Handles StammdatenBindingSource.CurrentChanged
    2. 'Prüfung einbauen
    3. 'If StammdatenBindingSource.Count > 1 Then
    4. Dim rwStamm = DirectCast(DirectCast(StammdatenBindingSource.Current, DataRowView).Row, dsStammdaten.StammdatenRow)
    5. If rwStamm.RowState <> DataRowState.Detached Then
    6. Select Case rwStamm.Dateityp
    7. Case "xls"
    8. TabControl1.SelectedIndex = 1
    9. TabControl2.SelectedIndex = 1
    10. Case "pdf"
    11. TabControl1.SelectedIndex = 2
    12. TabControl2.SelectedIndex = 2
    13. Case Else
    14. TabControl1.SelectedIndex = 0
    15. TabControl2.SelectedIndex = 0
    16. End Select
    17. End If
    18. End Sub
    Morgen zusammen,
    das die Lösung funktioniert ist klar. Habe ich ja direkt auf mein Probklem gepostet die Antwort. Dachte an eine elegantere Lösung :)


    Bei Zeile #3 die

    IF-Verzweigung

    wieder auskommentieren...


    Fehlermeldung nachgeliefert:

    In System.NullReferenceException ist eine Ausnahme vom Typ "MasterDetailView.exe" aufgetreten, doch wurde diese im Benutzercode nicht verarbeitet.

    Zusätzliche Informationen: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.

    Falls ein Handler für diese Ausnahme vorhanden ist, kann das Programm möglicherweise weiterhin sicher ausgeführt werden.