vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Brandneu! sevEingabe v3.0 - Das Eingabecontrol der Superlative!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Fortgeschrittene
Checkbox-Filter 
Autor: ERBRU
Datum: 18.10.17 08:03

Hallo zusammen,

habe in meiner DGV Datatable 3 Spalten gefunden, erledigt, ueberführt als CheckBox

nun möchte ich die Konstulationen Filtern:

ich denke das es bei mir falsch ist, da es nicht plausibel gefiltert wird.

wer hat solch ähnliche Filterungen schon mal gemacht? und kann mir helfen?

wenn in einer ColumnTextBox ein Eintrag steht setze ich die Spalte gefunden auf True
wenn diese leer Ist wird Benutzer abgfragt "nicht gefunden" erledigt, in dem Fall setze ich die Spalte erledigt auf True, das gleiche mit der Spalte überführt




  Dim fltErledigt As String = String.Empty
 
 
        'Alle
        'abgearbeitet
        'nicht abgearbeitet
        'nach MAXIMO ueberfuehrt
 
        'Beg: erledigt
        Dim col_gefunden = LagerDB.Lagerliste.INMAXIMOColumn.ColumnName
        Dim col_abgearbeitet = LagerDB.Lagerliste.abgearbeitetColumn.ColumnName
        Dim col_ueberfuehrt = LagerDB.Lagerliste.NACHMAXIMOColumn.ColumnName
        Me.Cursor = Cursors.WaitCursor
        Select Case cbx_Status_Filter.SelectedIndex
            Case 0 : fltErledigt = String.Empty                                 _
                                                                                _
                  'Alle
            Case 1 : fltErledigt = String.Format("[{0}] = '{1}'", _
            col_abgearbeitet, True, String.Format("[{0}] = '{1}'", _
            col_gefunden, False))        'abgearbeitet
            Case 2 : fltErledigt = String.Format("[{0}] = '{1}'", _
            col_abgearbeitet, False, String.Format("[{0}] = '{1}'", _
            col_gefunden, False))       'nicht abgearbeitet
            Case 3 : fltErledigt = String.Format("[{0}] = '{1}'", _
            col_ueberfuehrt, True, String.Format("[{0}] = '{1}'", col_gefunden, _
            True))          'nach MAXIMO-Ueberfuehrt
 
        End Select
        'End: erledigt
        BS_Lagerliste.Filter = fltErledigt
        Me.Cursor = Cursors.Default
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Checkbox-Filter 
Autor: Manfred X
Datum: 18.10.17 11:22

Hallo!

Ohne zu wissen, was Du wie filtern möchtest, wage ich eine Vermutung:

 flterledigt = String.Format("[{0}] = '{1}'", _
    col_abgearbeitet, True) & " AND " & String.Format("[{0}] = '{1}'", _
    col_gefunden, False)
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Checkbox-Filter 
Autor: ERBRU
Datum: 18.10.17 13:35

ach mano, Danke dir mein Freund.

genau was mir gefehlt hat & "AND" & ich bin hiermit AndAlso auf die Nase gefallen.

erledigt
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Checkbox-Filter 
Autor: Manfred X
Datum: 18.10.17 14:38

Die Filter-Eigenschaft der Bindingsource kennt keinen
VB-Code. [I]"Die zulässige Filtersyntax hängt von der
zugrundeliegenden Datenquelle ab.
Wenn die Datenquelle (...) eine Datatable ist, können
boolsche Ausdrücke mit der für die Datacolumn.Expression-
Eigenschaft dokumentierten Syntax angegeben werden."[/I]
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Checkbox-Filter 
Autor: ERBRU
Datum: 15.11.17 19:47

Hallo ManfredX,

bin ein bisschen am Verzweifeln Sorry das ich dich zu dem Thema noch mal abfrage

der Filter kriegt das bei mir nicht auf die Reihe




  Private Sub RadioButton1_Click(sender As Object, e As EventArgs) Handles _
        RadioButton1.Click, RadioButton2.Click, RadioButton3.Click, _
        RadioButton4.Click
        Dim _gefunden As String = String.Empty
        Dim _abgearbeitet As String = String.Empty
 
        Dim rad As RadioButton = CType(sender, RadioButton)
        Dim col_gefunden = LagerlisteDB.Lagerliste.INMAXIMOColumn.ColumnName
        Dim col_abgearbeitet = _
          LagerlisteDB.Lagerliste.abgearbeitetColumn.ColumnName
 
 
        Select Case rad.Name
 
            Case RadioButton1.Name
                _gefunden = String.Format("[{0}] = '{1}'", col_gefunden, True)
                BS_Lagerliste.Filter = _gefunden
 
            Case RadioButton2.Name
 
                _abgearbeitet = String.Format("[{0}] = '{1}'", _
                                  col_abgearbeitet, True) & " AND " & _
                                  String.Format("[{0}] = '{1}'", _
                                  col_gefunden, True)
 
                BS_Lagerliste.Filter = _abgearbeitet
            Case RadioButton3.Name
 
            Case RadioButton4.Name
 
        End Select
    End Sub
mache ich es so herum, dann stimmt der Wert nicht statt 350 spuckt der Filter nur 348 aus
 _abgearbeitet = String.Format("[{0}] = '{1}'", _
                                  col_abgearbeitet, True) & " AND " & _
                                  String.Format("[{0}] = '{1}'", _
                                  col_gefunden, False)
 
                BS_Lagerliste.Filter = _abgearbeitet
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Checkbox-Filter 
Autor: Manfred X
Datum: 16.11.17 00:32

Hallo!

Auf Deinen Thumbnails kann ich nichts erkennen.

Das Filtern anhand von BOOL-Spalten ist - wie gezeigt -
eine triviale Angelegenheit.

Der Fehler liegt vermutlich schon hier irgendwo:
[I]Wenn in einer ColumnTextBox ein Eintrag steht,
setze ich die Spalte gefunden auf "True".
Wenn diese leer ist, wird Benutzer abgefragt
"nicht gefunden" erledigt.
In dem Fall setze ich die Spalte erledigt auf "True",
das gleiche mit der Spalte überführt.[/I]

Eindeutig verständlich sind diese Formulierungen nicht!
Eventuell mußt Du mit AND bzw. OR alle drei Spalten
beim Filtern einbeziehen.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Checkbox-Filter 
Autor: ERBRU
Datum: 16.11.17 17:57

Danke Manfred,

aber ich habe es so geregelt:

Wenn gefunden wird eine "MAXIMO-NUMMER eingetragen die Zeile ist dann auch gleich abgearbeitet gekennzeichnet, und das Filtern ist nun auch besser zu handhaben. Logisch wenn Benutzer eine Nummer eingibt hat er

1. die Zeile abgearbeitet
2. ja eine Maximo gefunden
3. findet er keine dann ist die Zeile abgearbeitet und Gut ist

so kann ich die gefundenen Filtern, aber auch die abgearbeiteten.
die Gruppierung passt nun auch. Super

Danke! jetzt möchte ich gleiches mit gleichem Vergleichen automatisch kennzeichnen
ohne eine "Suche einzugeben" haste eine Idee?

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel