[Gelöst] Lookup mit temporären Datensätzen

15. November 2012 19:20

Vielleicht hat das einer schon MS gemeldet oder kennt den Workaround für mich:

Ich öffne eine Lookup-Page-List per C/AL. Die Records sind temporär.
Nach dem erfolgten LookupOK schaffe ich es jedoch nicht, an den zuletzt gewählten Datensatz zu kommen. Es wird immer der letzte Datensatz innerhalb der Liste genommen.
Es ist dabei völlig egal, ob die Page per PAGE.RUNMODAL oder per Pagevariable aufgerufen wird.
Bei der zweiten Lösung habe ich sogar eine eigene GetSelectedRecord-Funktion in der Page erstellt (nachdem es die GETRECORD nicht getan hat), aber selbst die gibt mir den letzten Datensatz aus.
Es ist auch egal, ob der Page per übergebener Recordvariable oder per SourceTableTemporäry = Yes mitgeteilt wird, dass der Inhalt temporär ist.

Hilfe :-(

Re: Lookup mit temporären Datensätzen

15. November 2012 19:29

Lösung selbst gefunden.
Es handelte sich um eine transformierte Page, die noch ergänzt werden musste. Das Problem hat offensichtlich schon in Forms der früheren Versionen bestanden.

Die Lösung besteht darin, zwischen dem RUNMODAL und dem GETRECORD eine neue Funktion aufzurufen, die alle temporären Datensätze außer dem gewählten löscht.

Dies geht sogar ohne Page-Variable:
Die neue Page-Funktion im OnQueryClosePage-Trigger platzieren:

Code:
IF CloseAction = ACTION::LookupOK THEN BEGIN
  AlleAnderenDatensätzeLöschen;
  FINDLAST; // <-- Ganz wichtig!
END;