Das sieht mir schwer nach einem Verständnisproblem aus:
Ein Dokument kann erst in der Ansicht gefunden werden, nachdem es mindestens einmal gespeichert wurde. Wenn Du also ein @DBLookup auf das Dokument selbst machst, dann wird das immer den Fehler "Eintrag im Index nicht gefunden" kriegen. Die Frage ist: Warum willst Du überhaupt ein Feld im Dokument über einen Lookup auf das selbe Dokument befüllen?
Nehmen wir mal ein Beispiel: Ich habe eine Maske mit 3 Feldern:
Category: Textfeld
Subject: TextFeld
AllSubjectsForCategory: Textfeld, mehrfachwerte, berechnet.
Im Feld AllSubjectsForCategory steht die Formel:
@DBLookup( "" : NoCache" ; ""; "LookupCategories" ; Category; "Subject" )
Jetzt erstellst Du ein Dokument:
Category: Erste Kategorie
Subject: Mein Thema
Wenn ein Dokument das erste in seiner Kategorie ist, dann wird im Feld AllSubjectsForCategory stehen: Eintrag im Index nicht gefunden.. Wenn Du dann nochmal speicherst, dann steht da "Mein Thema".
Wenn Du ein zweites Dokument erstellst mit diesen Werten:
Category: Erste Kategorie
Subject: Anderes Thema
dann steht beim ersten speichern im Feld AllSubjectsForCategory:
Mein Thema
beim zweiten speichern steht dann drin:
Mein Thema
Anderes Thema
Wenn Du schon beim ersten speichern beide Werte haben willst, dann musst Du einfach die Formel erweitern:
_lkp := @DBLookup( "" : NoCache" ; ""; "LookupCategories" ; Category; "Subject" );
@Trim( @Unique( Subject : @If( @IsError( _lkp ) ; "" ; _lkp ) ) )
Damit steht im Feld immer das Dokument selbst mit drin...
Über Sinn und Unsinn einer solchen Implementierung diskutiere ich allerdings nicht (die Daten in dem Feld sind ja ständig veraltet wenn andere Dokumente erstellt, geändert, oder gelöscht werden)
Grundsätzlich ist zu sagen: Einen @DBLookup benutzt man NIE, ohne ihn in ein @IsError zu wrappen... sonst hast Du im besten Fall Fehler im Feld, im dümmsten Fall geht wegen des fehlerhaften Lookups das ganze Dokument nicht mehr auf...