Klasse zum Sortieren im Endlosformular

Diskussionen über den Quellcode (Module, Klassenstruktur, Schnittstellen u.s.w.) der Access Code Library

Re: Neue Klasse zum Sortieren im Endlosformular

Beitragvon Josef Pötzl » Mo 22. Jun 2015, 10:10

Hallo!

Ah, Split(SplitString(0), " ") hab ich übersehen.
Dann gibt es aber ein Problem bei Feldnamen mit Leerzeichen. Klar, die sollte man nicht verwenden, was ist aber, wenn sie doch vorhanden sind?

Ich finde die Variante mit der zusätzlichen optionalen OrderBy-Angabe besser, da die keinen "Regelbruch" innerhalb eines Parameter-Wertes hat.

Was ich mir auch noch vorstellen könnte:

Sobald "ASC" oder "DESC" im String vorgegeben sind, wird nichts dynamisch angefügt. Ansonsten wird Desc ergänzt, wenn absteigend sortiert werden soll.

Prinzip:
Statt wie bisher:
Code: Alles auswählen
.Add Me.labFamilienname, "Familienname [DESC], Vorname [DESC], LaenderCode, Ort, PLZ, Strasse"

=> anzupassende Datenfelder für Richtungswechsel sind gekennzeichnet.

Nun:
Code: Alles auswählen
.Add Me.labFamilienname, "Familienname, Vorname, LaenderCode ASC, Ort ASC, PLZ ASC, Strasse ASC"

=> Felder, bei denen die Richtung nicht geändert werden darf, sind gekennzeichnet.


Generell ist noch zu überlegen:
Will man eventuell bei bestimmten "Spalten-Überschriften" den Richtungswechsel beim Sortieren auch deaktivieren können?
Sobald in der Definition des String eine einheitliche Regel verwendet wird, kann man das umsetzen.

LG
Josef
Josef Pötzl
Moderator
 
Beiträge: 805
Registriert: Mo 30. Nov 2009, 10:08
Wohnort: Klagenfurt
Accessversion: 2016

Re: Klasse zum Sortieren im Endlosformular

Beitragvon Andreas Vogt » Mo 22. Jun 2015, 12:38

Hallo,
was das Problem bei Formularen mit Layout angeht, das lässt sich doch einfach lösen indem man die Top-Position des SortSymbolLabels ändert.
In der Prozedur SetSortSymbolPos ans Ende angehängt:
m_SortSymbolLabel.Top = ControlRef.Top

Dann noch den Rahmen des Labels auf unsichtbar stellen und fertig.
Gruß Andreas
Andreas Vogt
Entwickler
 
Beiträge: 165
Registriert: Do 18. Mär 2010, 18:00
Wohnort: Offenburg
Accessversion: 2.0, 97, 2002, 2003, 2007, 2010
Access-Erfahrung: Fortgeschritten

Re: Klasse zum Sortieren im Endlosformular

Beitragvon Josef Pötzl » Mo 22. Jun 2015, 12:58

Das Problem mit dem Layout ist nicht die Top-Position, sondern die Left-Position, wenn das Formular vergrößert wird.

LG
Josef
Josef Pötzl
Moderator
 
Beiträge: 805
Registriert: Mo 30. Nov 2009, 10:08
Wohnort: Klagenfurt
Accessversion: 2016

Re: Klasse zum Sortieren im Endlosformular

Beitragvon Andreas Vogt » Mo 22. Jun 2015, 13:17

Ein Problem ist zumindest dieser Aufruf:
SetSortSymbolPos m_ActiveSortingControl
Weil m_ActiveSortingControl nirgends gesetzt wird und daher die nachfolgende Prozedur abgebrochen wird.

Andreas
Andreas Vogt
Entwickler
 
Beiträge: 165
Registriert: Do 18. Mär 2010, 18:00
Wohnort: Offenburg
Accessversion: 2.0, 97, 2002, 2003, 2007, 2010
Access-Erfahrung: Fortgeschritten

Re: Klasse zum Sortieren im Endlosformular

Beitragvon Josef Pötzl » Mo 22. Jun 2015, 16:25

m_ActiveSortingControl wird gesetzt, sobald auf ein Label geklickt wird.
Wenn im Formular eine STandardsortierung aktiv ist, muss das noch der Klasse mitgeteilt werden.
.. entweder als optionaler Parameter in der Add-Methode oder eventuell als extra Property oder man nimmt einfach den erste Add-Eintrag als Standard an.

Das Problem mit dem Layout hat aber damit nichts zu tun. Das entsteht, weil ich keinen Code fand, die exakte Position der "angehefteten" Steuerelemente zu bestimmen, wenn das Formular vergrößert wurde.

LG
Josef
Josef Pötzl
Moderator
 
Beiträge: 805
Registriert: Mo 30. Nov 2009, 10:08
Wohnort: Klagenfurt
Accessversion: 2016

Re: Klasse zum Sortieren im Endlosformular

Beitragvon Andreas Vogt » Mo 22. Jun 2015, 16:34

Ja - aber wenn ich das Form resize oder maximiere wird es eben nicht mehr gesetzt und die Referenz ist Nothing.
Andreas Vogt
Entwickler
 
Beiträge: 165
Registriert: Do 18. Mär 2010, 18:00
Wohnort: Offenburg
Accessversion: 2.0, 97, 2002, 2003, 2007, 2010
Access-Erfahrung: Fortgeschritten

Re: Klasse zum Sortieren im Endlosformular

Beitragvon Josef Pötzl » Mo 22. Jun 2015, 16:53

m_ActiveSortingControl wird derzeit nicht beim Einstellen der Controls gesetzt.
m_ActiveSortingControl ist derzeit nur vorhanden, sobald mindestens 1x auf ein Label geklickt wurde.

=> daher schrieb ich, dass da noch eine Einstellung bei Add oder anderswo benötigt wird, um die Standard-Formulareinstellung an die Klasse weiterzugeben.

ABER: Das hat nichts mit dem Layout-Problem zu tun. Um das zu testen, muss man nur einmal auf ein Label klicken und danach das Formular vergrößern.
Im Formular fKontaktListe funktioniert das bei mir. Im fKontaktListe_mit_Layout komme ich nur annähernd an die Position.
Das Problem ist nicht das Antriggern der Positionierung sondern die Positionierung selbst.
Josef Pötzl
Moderator
 
Beiträge: 805
Registriert: Mo 30. Nov 2009, 10:08
Wohnort: Klagenfurt
Accessversion: 2016

Vorherige

Zurück zu Quellcode

cron