Lade...
 

CX_OBJECT_MANAGER::LinkAtPosition

CX_OBJECT_MANAGER::LinkAtPosition

Beschreibung:

LinkAtPosition arbeitet wie der InstantView®-Befehl Link. Zusätzlich kann bestimmt werden, wo genau in der Collection die Referenz zum anderen Objekt eingetragen werden soll. Die Position in der Collection der Rückreferenz lässt sich hiermit nicht steuern.

Diese Funktion arbeitet nur mit Collection vom Typ LIST oder ARRAY korrekt. Wenn das Positionsobjekt NULL oder gar nicht in der Liste vorhanden ist, wird das referenzierte Objekt ans Ende der Collection gestellt. Das entspricht dem Verhalten von Link.

LinkAtPosition verhält sich auch dann wie Link, wenn der Referenz- und/oder Rückreferenztyp keine Collection, sondern ein Zeiger ist. Link und LinkAtPosition basieren auf dem gleichen Code und können beliebig ausgetauscht werden.

Code-Beispiel:
Var(obj1, obj2, obj3, obj4, obj5) CreateTransObject(CX_TEST_OBJECT) -> obj1 CreateTransObject(CX_TEST_OBJECT) -> obj2 CreateTransObject(CX_TEST_OBJECT) -> obj3 CreateTransObject(CX_TEST_OBJECT) -> obj4 CreateTransObject(CX_TEST_OBJECT) -> obj5 obj1 "testColl" NULL obj2 NULL FALSE GetManager(OBJECT) Call(LinkAtPosition) // obj1.testColl enthält einen Eintrag: obj2 obj1 "testColl" NULL obj3 obj2 TRUE GetManager(OBJECT) Call(LinkAtPosition) // obj1.testColl: obj3 obj2 obj1 "testColl" NULL obj4 obj2 FALSE GetManager(OBJECT) Call(LinkAtPosition) // obj1.testColl: obj3 obj2 obj4 obj1 "testColl" NULL obj5 obj1 TRUE GetManager(OBJECT) Call(LinkAtPosition) // obj1.testColl: obj3 obj2 obj4 obj5 // (obj1 ist nicht in der Collection enthalten, obj5 wird ans Ende gestellt)

 

Stack
Stack Position Objekttyp Kurzbeschreibung
Stack(In) Top CX_OBJECT_MANAGER Objekt-Manager
  Top-1 INTEGER Vor (TRUE) oder nach (FALSE) der Position einfügen?
  Top-2 OBJECT Vor oder nach welchem Objekt in die Collection einfügen?
  Top-3 OBJECT Referenziertes Objekt
  Top-4 STRING Rückreferenz
  Top-5 STRING Zugriffspfad
  Top-6 OBJECT Referenzierendes Objekt
Stack(Out) Top    
Funktionsaufruf: Call(LinkAtPosition)