/* HAUPTPROGRAMM */
Déclarer Handle gb, btn1, btn2, btn3, btn4, btn5, btn6, Long ende
Fenêtre 600, 400
btn1 = Créer("Button", %HWnd, "ASC", 10, 10, 60, 25)
btn2 = Créer("Button", %HWnd, "DESC", 10, 40, 60, 25)
btn3 = Créer("Button", %HWnd, "ASC", 100, 10, 60, 25)
btn4 = Créer("Button", %HWnd, "DESC", 100, 40, 60, 25)
btn5 = Créer("Button", %HWnd, "ASC", 190, 10, 60, 25)
btn6 = Créer("Button", %HWnd, "DESC", 190, 40, 60, 25)
gb = Créer("Gridbox",%HWnd, "DATUM;0;80;MENGE;0;80;ARTIKEL;0;120", 0, 10, 70, 300, 150)
AddStrings(gb, "20.10.2015|500|Tomaten")
AddStrings(gb, "15.12.2017|200|Birnen")
AddStrings(gb, "22.11.2015|100|Ananas")
AddStrings(gb, "10.04.2016|50|Äpfel")
AddStrings(gb, "11.10.2017|1000|Zitronen")
AddStrings(gb, "01.04.2017|1500|Kirschen")
' SetHeader_SetArrow(gb, 0, 0)
ende = 0
WhileNot ende
WaitInput
Si Clicked(btn1)
SortListview(gb, 0, 2, 0)
ElseIf Clicked(btn2)
SortListview(gb, 0, 2, 1)
ElseIf Clicked(btn3)
SortListview(gb, 1, 3, 0)
ElseIf Clicked(btn4)
SortListview(gb, 1, 3, 1)
Elseif Clicked(btn5)
SortListview(gb, 2, 1, 0)
ElseIf Clicked(btn6)
SortListview(gb, 2, 1, 1)
EndIf
Cas %Key = 2 : ende = 1
Endwhile
FIN
PROC SortListview
' ACHTUNG : verwendet qui interne Listboxliste (eigene données auparavant avec Move o.ä. sichern)
' lv : Handle qui Gridbox
' spalte : Nullbasierend (1. Spalte = 0)
' SortType : Spalteninhalt (1 = STRINGS, 2 = DATUM (tt.mm.jjjj), 3 = ZAHLEN)
' l'ordre : 0 = aufsteigend, 1 = absteigend
Paramètres Handle lv, Long spalte, SortType, l'ordre
DECLARE Handle liste, LONG sOrder, sTyp, STRING item, la ligne, Float date
liste = Créer("List", 0)
SELECT SortType
CASEOF 1
sTyp = 4' entsprechend Gebietsschema
CASEOF 2
sTyp = 5
CASEOF 3
sTyp = 5
ENDSELECT
Select l'ordre
CaseOf 0
sOrder = 1
CASEOF 1
sOrder = -1
ENDSELECT
IF SortType = 2' DATUM - SORTIERUNG
CLEARLIST 0
MOVE("HandleToList", lv)
WHILELOOP 0, GETCOUNT(0) -1
item = $ Substr(GetSTRING$(0, &LOOP), spalte + 1, "|")
date = Str$(DT("SetDate", item))
la ligne = Translate$(GetString$(0, &LOOP), item, Str$(date))
AddStrings(liste, la ligne)
ENDWHILE
CLEARLIST 0
MOVE("HandleToList", liste)
SortList "|", spalte + 1, (sTyp * sOrder)
CLEARLIST liste
MOVE("ListToHandle", liste)
CLEARLIST 0
WHILELOOP 0, GETCOUNT(liste) - 1
item = $ Substr(GetString$(liste, &LOOP), spalte + 1, "|")
la ligne = Translate$(GetString$(liste, &LOOP), item, DT("GetDate", 0, VAL(item)))
AddStrings(0, la ligne)
ENDWHILE
ELSE
CLEARLIST 0
MOVE("HandleToList", lv)
SortList "|", spalte + 1, (sTyp * sOrder)
ENDIF
CLEARLIST lv
MOVE("ListToHandle", lv)
CLEARLIST 0
ENDPROC