Seite 1 von 1

xclass dsxbrowse Linksklick auf Spaltenkopf Indexsortierung

Verfasst: Mo, 30. Jun 2008 10:39
von stevie
Hallo,

Ich möchte gern, statt mit einem Rechtsklick auf den Spaltenkopf die Indexsortierung mit einem Linksklick durchführen. Dafür gibt es zwar headerlbup, aber ich will statt mit einem Doppelklick das Ganze mit einem einfachen Linksklick regeln.

Verfasst: Mo, 30. Jun 2008 11:06
von Martin Altmann
Hallo Stevie,
ich hatte auf meine Anfrage bei DS-Datasoft bezüglich meines anderen Problemes von Marcus eine Antwort bekommen, die mir zwar nicht hilft, aber vielleicht für Dich interessant ist:
Marcus Herz hat geschrieben:Hallo Martin

Nach Spalten umsortieren ist eigentlich ganz einfach:

dbServer := OpenDbServer(...)
dbServer :OrdListAdd(CurDrive() + ":" + quellpfad + "xxx")
dbServer :OrdListAdd(CurDrive() + ":" + quellpfad + "xxxx")

::oBrowse:Connect(dbServer)

::oBrowse:enableSelectIndex(.t.)
::oBrowse:enableSwitchDescend(.t.)

aCol := ::oBrowse:AddColumnDB({;
{"Land", "national"},;
{"PLZ", "plz"},;
{"Ort", "ort"}})

aCol[1]:setindex(1)
aCol[3]:setindex(2)


Jetzt kannst du mit Klick der Maustaste in Splatenübeschrift
umsortieren. Als Suchblock kannst du den internen verwenden.
Das sollte so funktionieren.
Viele Grüße,
Martin

Verfasst: Mo, 30. Jun 2008 13:24
von stevie
Martin Altmann hat geschrieben:Hallo Stevie,
ich hatte auf meine Anfrage bei DS-Datasoft bezüglich meines anderen Problemes von Marcus eine Antwort bekommen, die mir zwar nicht hilft, aber vielleicht für Dich interessant ist:
Marcus Herz hat geschrieben:Hallo Martin

Nach Spalten umsortieren ist eigentlich ganz einfach:

dbServer := OpenDbServer(...)
dbServer :OrdListAdd(CurDrive() + ":" + quellpfad + "xxx")
dbServer :OrdListAdd(CurDrive() + ":" + quellpfad + "xxxx")

::oBrowse:Connect(dbServer)

::oBrowse:enableSelectIndex(.t.)
::oBrowse:enableSwitchDescend(.t.)

aCol := ::oBrowse:AddColumnDB({;
{"Land", "national"},;
{"PLZ", "plz"},;
{"Ort", "ort"}})

aCol[1]:setindex(1)
aCol[3]:setindex(2)


Jetzt kannst du mit Klick der Maustaste in Splatenübeschrift
umsortieren. Als Suchblock kannst du den internen verwenden.
Das sollte so funktionieren.
Viele Grüße,
Martin
Das geht aber nur mit Rechts oder langem Linksklick.
Zurzeit habe ich eine Funktion auf headerrbdown laufen, die das für rechts regelt.
Bei Xbase wurde das über oCol:heading:lbdown geregelt, aber bei xclass?

Verfasst: Mo, 30. Jun 2008 13:27
von Martin Altmann
Hallo Stevie,
tut mir leid - habe es ja nicht probiert, da ich es nicht brauche.
Aber XClass++ ist Xbase++ - was unter XBase++ geht, kannst Du genau so auch unter XClass++ machen.
Versuche es doch einfach mal mit dem von Dir genannten oCol:heading:lbdown

Viel Erfolg,
Martin

Verfasst: Mo, 30. Jun 2008 13:32
von stevie
Martin Altmann hat geschrieben:Hallo Stevie,
tut mir leid - habe es ja nicht probiert, da ich es nicht brauche.
Aber XClass++ ist Xbase++ - was unter XBase++ geht, kannst Du genau so auch unter XClass++ machen.
Versuche es doch einfach mal mit dem von Dir genannten oCol:heading:lbdown

Viel Erfolg,
Martin
Das stimmt nicht ganz, der dsxbrowse ist eine komplett eigene Klasse, die nicht von xbpbrowse stammt. heading heißt hier header und das lbdown gibt es in dem Spaltenkopfobjekt nicht.
Hab mal den Support angeschrieben.

Verfasst: Mo, 30. Jun 2008 16:35
von J.Renseler
Hallo,

so ganz einfach ist das bei dem dsXBrowse nicht. Am einfachsten müsste es sein wenn du das ganze direkt im Sourcecodes des dsXBrowse änderst.

Ansonsten kommst du über die dsXColumn Klasse an das Headerobjekt selber dran.
Dort müsstest du dann einen Codeblock für lbClick hinterlegen können.

Also theoretisch: oCol[1]:header:oXArea:LbClick := {|| MsgBox("Hello World")}

Gruß,
Jannik

Verfasst: Mi, 02. Jul 2008 7:53
von stevie
J.Renseler hat geschrieben:Hallo,

so ganz einfach ist das bei dem dsXBrowse nicht. Am einfachsten müsste es sein wenn du das ganze direkt im Sourcecodes des dsXBrowse änderst.

Ansonsten kommst du über die dsXColumn Klasse an das Headerobjekt selber dran.
Dort müsstest du dann einen Codeblock für lbClick hinterlegen können.

Also theoretisch: oCol[1]:header:oXArea:LbClick := {|| MsgBox("Hello World")}

Gruß,
Jannik
oxArea ist natürlich protected

Verfasst: Mi, 02. Jul 2008 9:54
von stevie
Martin Altmann hat geschrieben:Hallo Stevie,
ich hatte auf meine Anfrage bei DS-Datasoft bezüglich meines anderen Problemes von Marcus eine Antwort bekommen, die mir zwar nicht hilft, aber vielleicht für Dich interessant ist:
Marcus Herz hat geschrieben:Hallo Martin

Nach Spalten umsortieren ist eigentlich ganz einfach:

dbServer := OpenDbServer(...)
dbServer :OrdListAdd(CurDrive() + ":" + quellpfad + "xxx")
dbServer :OrdListAdd(CurDrive() + ":" + quellpfad + "xxxx")

::oBrowse:Connect(dbServer)

::oBrowse:enableSelectIndex(.t.)
::oBrowse:enableSwitchDescend(.t.)

aCol := ::oBrowse:AddColumnDB({;
{"Land", "national"},;
{"PLZ", "plz"},;
{"Ort", "ort"}})

aCol[1]:setindex(1)
aCol[3]:setindex(2)


Jetzt kannst du mit Klick der Maustaste in Splatenübeschrift
umsortieren. Als Suchblock kannst du den internen verwenden.
Das sollte so funktionieren.
Viele Grüße,
Martin
Das funktioniert doch so.
Man muss nur vor Initialisierung des Browsers ein
SetBrowseSelectIndex(xbeM_LbUp)
angeben und dann wird der Index auf Linksklick umgeschaltet.
Die Funktion hatte ich vorher später und da klappte das dann eben nicht.