Guten Abend,
schreibe gerade ein kleines Programm die Kundenkontakte aus einer DB anzeigt. Die User sollen die möglichkeit nach Kundengruppe und -status zu filtern, aber auch nach Land, nach PLZ und nach Umsatz.
Ich habe eig. kein Problem nur ein Teil meines Codes kommt mir zu "Spaghetti" vor, und bin sicher es gibt eine bessere, elegantere Lösung und deshalb frage mal in die Runde nach Tipps/Verbesserungsvorschläge.
Hier den Code zu einer der Filtermethoden. Es muss erkennen ob es schon ein Filter vorhanden ist (z.B Land oder PLZ)und wenn vorhanden, dann den gewünschten neuen Filter mit einer 'AND'-Verknüpfung "addieren". Ist der Filter leer dann einfach den Filter setzen.
Bisher habe ich BindingSource.FIlter benutzt, ist das überhaupt die beste Idee.
Hier den Code
Danke im Voraus und schönen Abend noch
schreibe gerade ein kleines Programm die Kundenkontakte aus einer DB anzeigt. Die User sollen die möglichkeit nach Kundengruppe und -status zu filtern, aber auch nach Land, nach PLZ und nach Umsatz.
Ich habe eig. kein Problem nur ein Teil meines Codes kommt mir zu "Spaghetti" vor, und bin sicher es gibt eine bessere, elegantere Lösung und deshalb frage mal in die Runde nach Tipps/Verbesserungsvorschläge.
Hier den Code zu einer der Filtermethoden. Es muss erkennen ob es schon ein Filter vorhanden ist (z.B Land oder PLZ)und wenn vorhanden, dann den gewünschten neuen Filter mit einer 'AND'-Verknüpfung "addieren". Ist der Filter leer dann einfach den Filter setzen.
Bisher habe ich BindingSource.FIlter benutzt, ist das überhaupt die beste Idee.
Hier den Code
VB.NET-Quellcode
- Private Sub TsDdBtnFilterKGruppe_Click(sender As Object, e As EventArgs) Handles TsDdBtnFilterKGruppe.Click
- Dim dialog As New MFormFilterKGruppe()
- Dim result As DialogResult = dialog.ShowDialog(Me)
- If result = DialogResult.OK Then
- If dialog.FilterType = "Kundengruppe" Then
- If Not String.IsNullOrEmpty(AdrKommBindingSource.Filter) Then
- AdrKommBindingSource.Filter += $" AND KGruppe='{dialog.KGruppe}'"
- Else
- AdrKommBindingSource.Filter += $"KGruppe='{dialog.KGruppe}'"
- End If
- ElseIf dialog.FilterType = "Kundenstatus" Then
- If Not String.IsNullOrEmpty(AdrKommBindingSource.Filter) Then
- AdrKommBindingSource.Filter += $" AND KStatus='{dialog.KStatus}'"
- Else
- AdrKommBindingSource.Filter += $"KStatus='{dialog.KStatus}'"
- End If
- Else
- AdrKommBindingSource.Filter += $"KGruppe='{dialog.KGruppe} AND KStatus={dialog.KStatus}'"
- End If
- End If
- dialog.Dispose()
- End Sub
Danke im Voraus und schönen Abend noch
Life doesn't give you a datasheet. Sometimes the docs are wrong and you have to try it.
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „rgomez“ ()