Run CardPage mit Recordset und absteigender Sortierung

22. Januar 2018 11:18

Hallo Leute,

ich möchte zu einem Datensatz in Tabelle A alle verknüpften Datensätze in Tabelle B in einer CardPage (zum durchblättern) öffnen. Die Datensätze in Tabelle B haben zusätzliche Attribute, wie Version (1..n) und Zeitstempel (Datetime).
Wird die Page geöffnet, soll immer der letzte, aktuellste Datensatz zuerst angezeigt werden.

Egal was ich versuche, mir wird immer der älteste Datensatz zuerst angezeigt.
Meine aktuelle Lösung (s.u.) schränkt auf den letzten, aktuellsten Datensatz ein. Dann kann ich aber nicht mehr blättern... :-(

Code:
xy - OnAction()
tabB_l.SETCURRENTKEY("Version No.","ID");
//tabB_l.SETASCENDING("Version No.", TRUE); --> hilft nicht wirklich weiter, weder TRUE noch FALSE
tabB_l.SETRANGE(ToolstarXMLHeader_l.ID, ID);
tabB_l.FINDSET;
tabB_l.SETRANGE("Version No.", tabB_l."Version No.");
tabB_l.SETTABLEVIEW(tabB_l);
cardB_l.RUNMODAL;

In der Ziel-Page ist kein Code definiert, der dazwischen schießt.

Hat jemand dazu vielleicht einen kleinen Tipp?!?

Vielen Dank!
Zuletzt geändert von freqnz am 24. Januar 2018 08:35, insgesamt 1-mal geändert.

Re: Run CardPage mit Recordset und absteigender Sortierung

23. Januar 2018 19:20

Guten Abend!
Hat denn keiner eine Idee? Oder habe ich gegen die Forumsregeln verstoßen? :shock:

Bin wirklich für jeden Tipp dankbar. :wink:

Viele Grüße
Carsten

Re: Run CardPage mit Recordset und absteigender Sortierung

23. Januar 2018 22:18

freqnz hat geschrieben:In der Ziel-Page ist kein Code definiert, der dazwischen schießt.

Auf dem Primärschlüsselfeld jeder hartgefilterten Cardpage muss ein SETRANGE ohne Parameter erfolgen, damit man weiterblättern kann (im OnAfterGetRecord)
Das FINDSET zwischen den beiden SETRANGES kann so auch nicht funktionieren. Da kann ja nur maximal ein Datensatz übrigbleiben
(falls die Versionsnr. sich nicht wiederholt, ohne Daten ist das nicht zu beurteilen).
Den gefilterten Wertebereich der Versionen mit GETRANGEMIN und GETRANGEMAX ermitteln und dann SETRANGE bei der zweiten Filterung mit diesen beiden Parametern anwenden (also von-bis), das ganze aber auf einer weiteren Instanz der Tabelle, die dann wiederum die Page aufruft.