Browse mit Filter - Sortierungs Problem
Verfasst: Mo, 24. Okt 2016 18:40
Moin zusammen,
da ärgere ich mich schon eine Zeit lang mit rum. Wenn ich dieses Sinnlosprogramm starte kann ich durch einen Klick auf die Spaltenköpfe wie gewünscht sortieren. 1 x klick aufwärts dann 1 x klick auf die gleiche Spalte und es geht wieder abwärts. Alles super soweit. Nur wenn ich den Filter im Browse aktiviere ist Schluss damit. Ich kann 1 x auf die Spalte klicken und es wird richtig sortiert - beim 2. mal klicken auf die gleiche Spalte stürzt die Kiste ab.
Das passiert mir in jeder Anwendung, in der ich die Filteroption im Browse verwende. Ein möglicherweise hilfreiches errorlog wird nicht erzeugt.
Gibt es dafür wohl einen Lösung ?
Gruß
Ewald
da ärgere ich mich schon eine Zeit lang mit rum. Wenn ich dieses Sinnlosprogramm starte kann ich durch einen Klick auf die Spaltenköpfe wie gewünscht sortieren. 1 x klick aufwärts dann 1 x klick auf die gleiche Spalte und es geht wieder abwärts. Alles super soweit. Nur wenn ich den Filter im Browse aktiviere ist Schluss damit. Ich kann 1 x auf die Spalte klicken und es wird richtig sortiert - beim 2. mal klicken auf die gleiche Spalte stürzt die Kiste ab.
Das passiert mir in jeder Anwendung, in der ich die Filteroption im Browse verwende. Ein möglicherweise hilfreiches errorlog wird nicht erzeugt.
Gibt es dafür wohl einen Lösung ?
Gruß
Ewald
Code: Alles auswählen
#include "dcdialog.ch"
#include "appevent.ch"
#include 'xbp.ch'
proc main
local getlist:={}
aarr:={}
aadd(aarr,{"Franz","Meier","Castrop"})
aadd(aarr,{"Josef","Müller","Dortmund"})
aadd(aarr,{"Hein","Mück","Recklinghausen"})
bfilter={|a|!empty(a[1])}
bsortcol := {|a,n,o| fsort(aarr,n,getlist) }
*@ 01,01 dcbrowse ob1 data aarr size 10,7 fit filter bfilter // <--- Absturz
@ 01,01 dcbrowse ob1 data aarr size 10,7 fit // <--- funktioniert
dcbrowsecol element 1 header "Vorname" parent ob1 width 10 ;
sort bsortcol LEFTBUTTON
dcbrowsecol element 2 header "Name" parent ob1 width 10 ;
sort bsortcol LEFTBUTTON
dcbrowsecol element 3 header "Ort" parent ob1 width 10 ;
sort bsortcol LEFTBUTTON
@ 8,1 dcpushbutton caption "Ende " size 10,1 ;
action {||dc_readguievent(DCGUI_EXIT_OK,Getlist)}
dcread gui fit ;
title " "
return
*------------------------------------------------------
function fsort(aar,ncol,xlist)
asort ( aar,,, {|x,y|x[ncol] < y[ncol] } )
ob1:refreshall()
dc_getrefresh(xlist)
return .t.
*--------------------------------------------------------
proc appsys
return