Lade...
 

SetLevels

SetLevels

SetLevels(windowID, oboxID), SetLevels(, oboxID), SetLevels

Parameter:  Bezeichner eines Windows und einer Objektbox

Stack
Stack Position Beschreibung
Stack(In) Top n
Stack(Out) Top -

Werden in einer ObjectBox strukturierte Daten dargestellt (vor allem im ObjectTree), so begrenzt der Aufruf von SetLevels die Hierarchietiefe, in der Objekte automatisch eingelesen und intern Repräsentiert (aus der Datenbank geladen) werden.
Alle Objekte, die unterhalb dieser Tiefe angeordnet sind, sind jedoch durch interaktives Aufklappen der übergeordneten Stufe auf der Oberfläche und durch Aufruf von OboxExpand auch nachträglich darstellbar. Für den Benutzer ist dieses verzögerte Verhalten sogar transparent, da die Icons zur Expansion, genauso wie bei vollständig eingelesenen Strukturen, nur erscheinen, wenn sich am jeweiligen Objekt auch untergeordnete Objekte befinden.

Die wichtigste Einschränkung gegenüber verzögert eingelesenen Objekten besteht darin, dass diese für das System erst nach dem Einlesen als vorhanden behandelt werden (GetCollection bringt nur genau die Objekte, die bereits einmal angezeigt wurden). So schlägt vor dem ersten Aufklappen des obersten Knoten bei 1 SetLevels ein Select mit einem untergeordneten Objekt immer fehl. Klappt der Anwender den obersten Knoten kurzfristig auf und wieder zu, wird ein Select mit einem Object der 2. Ebene dann erfolgreich sein. Das Verhalten in diesem Beispiel kann durch 2 SetLevels behoben, wobei ein entsprechendes Problem eine Stufe später jedoch bestehen bleibt.

Ausgeschaltet wird dieses verzögerte Einlesen von Objekten durch den Parameter 0: 0 SetLevels.
Nun liefert GetCollection alle Objekte, die in der Liste angezeigt würden, wenn alle Knoten aufgeklappt wären.

Der Default-Wert für SetLevels ist 1, da so der schnellste Bildschirmaufbau gewährleistet ist.
Die Zählung der Stufen (Levels) beginnt bei den Elementen gleich unter dem (virtuellen) Hauptknoten (Root).

Code-Beispiel:
ObjectTree(CX_APPLICATION_SCHEDULE::this, ENTIRE, NO_DRAIN, AUTO_POSITION, 8, 12, 165, 22)
[ INITIALIZE: [ "CX_TRANSACTION::subTransactions" NODE ] SetFormat
              [ "CX_TRANSACTION::uniqueID" COLOR LIGHTRED ] SetFormat
              [ "CX_TRANSACTION::personInCharge.idInitials" COLOR CYAN ] SetFormat
              [ "CX_TRANSACTION::mlShortName" COLOR LIGHTBLUE ] SetFormat
              [ "CX_TRANSACTION::mlDescription" COLOR CYAN ] SetFormat

              0 SetLevels // Disable quick display and load all items into list at once!
]

Siehe auch

InstantView