Das beschriebene Verhalten ist bekannt – OnFilterRecord wirkt clientseitig, weshalb zunächst alle Detail-Datensätze geladen werden, was bei großen Datenmengen zu Speicherproblemen führt. Für große Datenmengen empfiehlt sich stattdessen serverseitiges Filtern, z. B. über Filter-Eigenschaft mit Filtered := True oder ein angepasstes
SQL mit WHERE-Klausel in einer TFDQuery.