German Frage an Filippo

Discussion in 'German Forum' started by newbie, Dec 29, 2008.

  1. newbie

    newbie Member Licensed User

    Hallo Filippo,

    das mit den Spalten ausblenden hat geklappt,
    aber ich verzweifle an folgenden Problemen:

    angenommen die Tabelle (Grid) hat eine Größe um 15 Zeilen darzustellen,
    ich habe aber bis zu 10.000 oder mehr Einträge

    - wie kann ich die Tabelle dazu bewegen auf einen bestimmten Eintrag zu
    scrollen
    - wie kann ich diesen Eintrag womöglich noch irgendwie hervorheben
    (RowIndikator oder farblich)
    - wie kann ich z.B. einen Mengeneintrag ändern OHNE die gesamte Tabelle
    sequenziell nach diesem Eintrag zu durchsuchen

    Gibts da irgendwie eine Möglichkeit das hinzubekommen,
    evtl. auch mit anderen libraries

    Grüße Newbie
     
  2. Filippo

    Filippo Expert Licensed User

    Hallo newbie,

    ich habe für dich ein Beispiel gemacht, schau es dir an.

    Da ist ein Button (Show Nr.) und ein NumUpDown mit dem du immer die eingestellte Zeile markieren und sichtbar machen kannst.


    Ciao,
    Filippo
     
  3. newbie

    newbie Member Licensed User

    Hallo Filippo,

    ich hatte es schon richtig gemacht, hab nur nach dem Update der Zeile den Focus wieder auf mein Eingabefeld gesetzt , dadurch wird das Highlight
    wieder von der Zeile genommen.
    Kann man da was machen, daß die Zeile hervorgehoben bleibt auch wenn
    Listview den Focus verliert.

    Grüße Newbie
     
  4. Filippo

    Filippo Expert Licensed User

    Hallo newbie,
    leider ist da nichts zu machen.
    Es ist aber so das die Zeile trotzdem markiert bleibt selbst wenn
    Listview den Focus verliert.;)

    Ciao,
    Filippo
     
  5. Paulsche

    Paulsche Well-Known Member Licensed User

    ListView Filter ?

    Hallo Filippo,

    gibt es inzwischen die Möglichkeit mit Listview einen Filter zu setzen, wie bei Table.filter ?

    sonst wäre es für mich ein großer Aufwand von Table auf Listview umzuwechseln.
     
  6. Filippo

    Filippo Expert Licensed User

  7. Paulsche

    Paulsche Well-Known Member Licensed User

    Hi Filippo,

    danke für die schnelle Antwort, hast du mir für diesen Befehl ein kurzes Beispiel wie ich die Tabelle filtern kann ? Finde in der Hilfe leider nichts dazu.

    Danke im vorraus.
     
  8. Filippo

    Filippo Expert Licensed User

    es sind ganz normale SQL-Commandos. Du findest in den Beispielen bestimmt etwas.
    z.B.: SELECT * FROM Persons WHERE FirstName='Tove'
     
  9. Paulsche

    Paulsche Well-Known Member Licensed User

    Danke.
     
  10. JOTHA

    JOTHA Well-Known Member Licensed User

    Hallo Filippo,

    Wenn ich die "ListView" ohne SQL nehme, kann ich dann auch wie in der Standard-Table einen Filter setzen?

    Dieses Beispiel ...
    Code:
    ListViewTabelleVMatGesamt.Filter  ("Vorgang LIKE '*bestellt*' ")
    ... funktioniert leider nicht.

    Kannst Du hier mal ein Beispiel (für die ListView ohne SQL) posten?

    Das wäre Super !
    Im Voraus vielen Dank !
     
  11. Filippo

    Filippo Expert Licensed User

  12. JOTHA

    JOTHA Well-Known Member Licensed User

    Hallo Filippo,

    danke für deine Mühe!
    Aber mit diesem Code ...
    Code:
    If txtFilter.Text<>"" Then
          
    If StrIndexOf(LvArray(0) & LvArray(1) & LvArray(2) & LvArray(3) , txtFilter.Text,0)>=0 Then
              lv.AddRow(LvArray())
          
    End If
       
    Else
           lv.AddRow(LvArray())
       
    End If
      
    Next
    ... scheint etwas nicht zu stimmen, jedenfalls filtert der was er will und nicht was ich will.

    Schade, das in deiner Listview.DLL kein Filter drin ist.

    Ich finde deine Listview sehr gut, vor allem daß man vorne die Check-Boxen hat, das man die Werte rechtsbündig ausrichten kann und natürlich die Sortierfunktion in der Tabelle.

    Jetzt fehlt eigentlich nur noch eine gute Filterfunktion ... ;)
     
  13. Filippo

    Filippo Expert Licensed User

    Hallo JOTHA,

    also die Filter-Funktion MUSS funktionieren!

    Du musst nur wissen welche Column du filtern willst. In den varablen "LvArray(0)" bis "LvArray(3)" sind die Werte enthalten.
    Suchst du in dem 1.Column so muss die Filter-Funktion so definiert werden:
    Code:
    If txtFilter.Text<>"" Then
       
    If StrIndexOf(LvArray(0), txtFilter.Text,0)>=0 Then
                lv.AddRow(LvArray())
       
    End If
    Else
       lv.AddRow(LvArray())
    End If
     
  14. JOTHA

    JOTHA Well-Known Member Licensed User

    Hallo Filippo,

    ... das tut Sie auch. Dank deiner Hilfe komme ich der Sache schon näher.
    Code:
    If txtFilter.Text<>"" Then
       
    If StrIndexOf(LvArray(2), txtFilter.Text, 0)>=0 Then
                lv.AddRow(LvArray())
       
    End If
        
    Else
       lv.AddRow(LvArray())
        
    End If
    ... damit suche ich jetzt in der 3. Spalte (column).
    Allerdings finde ich nur die exakt eingegebenen Begriffe, dabei kommt sogar auch auf die Groß- und Kleinschreibung an.

    Ich habe mit "Wildcards" (* und %) herumexperimentiert, leider habe ich nicht herausfinden können, wie man Wildcards einbaut. Somit ist man immer gezwungen, den exakten Begriff einzugeben.

    Gibt es da auch eine Lösung?
     
    Last edited: Sep 27, 2009
  15. Filippo

    Filippo Expert Licensed User

    Hallo JOTHA,

    Leider nicht.:(

    Aber such mal in Forum, vielleicht hat jemand dafür eine Lösung.
     
  16. JOTHA

    JOTHA Well-Known Member Licensed User

    Hallo Filippo,

    danke für deine Antwort und deine Mühe.
    wirklich schade, denn dann wäre deine ListView die absolut perfekte Lösung!

    In der Standard-Tabelle geht z.B: im Textfeld folgendes:
    ... übertragen auf den oberen Code müsste dann
    Code:
    If StrIndexOf(LvArray(2), "*"&txtFilter.Text&"*"0)>=0 Then
    ...funktionieren. Tut es aber nicht!

    Kennt jemand eine Lösung?

    :confused:
     
  17. specci48

    specci48 Well-Known Member Licensed User

    Selbst in den ControlsExDesktop und ControlsExDevice Dll's von Agraham ist bei der ListView die Filter-Option nicht enthalten. Scheint also nicht standardmäßig verfügbar zu sein.

    Eine unschöne Lösung wäre mit zwei ListView's zu arbeiten. Einer "internen", die immer sämtliche Einträge enthält, und einer "externen", welche an der Oberfläche die jeweils gewünschten (gefilterten) Einträge anzeigt.

    Der Nachteil:
    Bearbeitet man Einträge in der "externen", d.h. der angezeigten ListView, so muss man im Hintergrund auch immer in der "internen" ListView den passenden Eintrag aktualisieren.


    Gruß
    specci48
     
Loading...
  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice