vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Schützen Sie Ihre Software vor Software-Piraterie - mit sevLock 1.0 DLL!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

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

Fortgeschrittene Programmierung
Re: MSFlexGrid und sortieren 
Autor: michi-bib
Datum: 30.01.04 09:32

Hallo kapp99 !

So sollte es eigentlich funzen:

Option Explicit
 
Private Sub Form_Load()
    'erstmal was reinbeamen
    flx.Rows = 4
    flx.Cols = 2
    flx.FixedCols = 0
    flx.FixedRows = 1
    flx.TextMatrix(0, 0) = "Datum"
    flx.TextMatrix(1, 0) = "05.06.2003"
    flx.TextMatrix(2, 0) = "05.06.2004"
    flx.TextMatrix(3, 0) = "07.06.2004"
    flx.ColWidth(0) = 2000
    flx.ColWidth(1) = 1500
End Sub
 
Private Sub flx_MouseDown(Button As Integer, Shift As Integer, x As Single, y _
  As Single)
    Dim h As Long
    Dim w As Long
    Dim i As Long
 
    h = flx.RowHeight(0)
    If y > 0 And y < h Then
        For i = 0 To flx.Cols
            If x > w And x < w + flx.ColWidth(i) Then Exit For
            w = w + flx.ColWidth(i)
        Next i
        MsgBox "Kopf Spalte " + CStr(i) + " wurde gedrückt", vbInformation
        If i = 0 Then 'es soll nur die gefüllte Spalte 0 sortiert werden
            flx.Col = i 'Sortierspalte einstellen
            flx.ColSel = i
            flx.Sort = 9 'flexSortCustom
        End If
    End If
End Sub
 
Private Sub flx_Compare(ByVal Row1 As Long, ByVal Row2 As Long, Cmp As Integer)
    Dim d1 As Date
    Dim d2 As Date
    Dim s1 As String
    Dim s2 As String
 
    d1 = CDate(flx.TextMatrix(Row1, 0))
    d2 = CDate(flx.TextMatrix(Row2, 0))
    s1 = Format(d1, "yyyymmdd")
    s2 = Format(d2, "yyyymmdd")
    If s1 > s2 Then Cmp = -1
    If s1 = s2 Then Cmp = 0
    If s1 < s2 Then Cmp = 1
End Sub
Ich bin mal von einer Kopfzeile ausgegangen und das Datumswerte
in Format dd.mm.yyyy in deinen Spalten stehen.

Flex.sort arbeitet zunächst erstmal nur numerisch oder stringmäßig.
Für eigene Sortierung (wie nach Datum) mußt du Flex.sort = 9
(CustomSort) einstellen. Dann wird das Compare-Ereignis des Flex
aufgerufen, in dem du praktisch die Sortierreihenfolge zweier
Zeilen des Flex festlegen mußt (siehe auch Hilfe).

Im MouseDown-Ereignis des Flex kannst du feststellen welche
Spalte in der Kopfzeile gedrückt wurde.

Ich habe übrigends früher auch öfter mit dem Flexgrid gearbeitet,
nehme aber jetzt fast immer den Listview.

Gru? Michi aus Hannover

1 + 1 = 3 f?r hinreichend gro?e 1

alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
MSFlexGrid und sortieren869kapp9929.01.04 18:26
Re: MSFlexGrid und sortieren694michi-bib30.01.04 09:32

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-2025 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