Lade...
 

SetFormatName

SetFormatName

SetFormatName(windowID, oboxID), SetFormatName(, oboxID), SetFormatName

Parameter:  Bezeichner eines Windows und einer Objektbox

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

Sämtliche ObjectBoxen können formatiert werden. Mit den Befehlen SetFormat und ClearFormat kann eine Liste von Formaten zugefügt bzw. entfernt werden. Standardmäßig gibt es nur eine solche Liste, die für alle Listeneinträge verwendet wird.
Mit SetFormatName kann eine weitere Liste anlegt werden, bzw. zu eine bereits bestehenden wieder aktiviert werden. 

Alle diese Listen, identifiziert über ihren Namen, existieren ungestört parallel nebeneinander und neben der Standardliste, Name: "DEFAULT".

Sobald SetFormatName aufgerufen wurde, beziehen sich alle folgenden Befehle SetFormat, ClearFormat, FillObox und UpdateObox auf die damit eingestellte Liste, d.h.:

  • Wird ein bisher nicht verwandter Namen benutzt, wird eine neue Liste angelegt. Jetzt verhält sich die Objectbox als wären keine Formate gesetzt worden, d.h. sie ist leer. 
    Sollen bereits bestehende Formate übernommen werden, so ist AddFormatName zu verwenden.
  • Mit SetFormat wird das neue Format nur für die neue Liste gesetzt. Es steht in keiner anderen Liste. Existiert ein Format mit gleichem Zugriffsausdruck bereits für diese Liste, wird dieser nur für die aktuelle Liste ersetzt. Besteht ein gleicher Zugriffsausdruck (auch) für eine andere Liste, bleibt dieser unangetastet.
  • ClearFormat bezieht sich wie SetFormat nur auf die neue Liste.
  • FillObox und UpdateObox fügen einen Eintrag ein bzw. aktualisieren ihn inklusive seiner FormatListe. Mit anderen Worten: Jeder Eintrag der Liste kennt die Formatliste, mit der er formatiert wurde.
    Ändert sich eine Liste (über SetFormat oder ClearFormat) wird die Formatierung für alle Elemente geändert, die diese als Formatliste haben. Bei der ObjectListView wird die Veränderung sofort sichtbar. (Wird der Eintrag neu gezeichnet.)

    Durch die Sequenz:

        "Liste2" SetFormatName
        GetObject UpdateObox
    wird für einen bereits vorhandenen Eintrag (ggf.) seine Formatliste geändert. Dies kann benutzt werden, um beispielsweise per Tastendruck zusätzliche Daten für einen selektierten Eintrag anzuzeigen.

 

Beispiel:

ClearObox(,obx) // Clear the list box first
 

// Define three different list formats

"red" SetFormatName(,obx)
["CX_PERSON::name" COLOR RED ] SetFormat(,obx)
["CX_PERSON::firstName" COLOR LIGHTRED ] SetFormat(,obx)

"blue" SetFormatName(,obx)
["CX_PERSON::name" COLOR BLUE ] SetFormat(,obx)
["CX_PERSON::firstName" COLOR LIGHTBLUE ] SetFormat(,obx)

"green" SetFormatName(,obx)
["CX_PERSON::name" COLOR GREEN ] SetFormat(,obx)
["CX_PERSON::firstName" COLOR LIGHTGREEN ] SetFormat(,obx)

// Fill the list and set the matching format for each entry
FindAll(CX_PERSON) iterate
{
  Index 1 + 3 Mod case
    0: "red"
    1: "blue"
    2: "green"
  endCase
  SetFormatName(,obx) // Set the list format depending on the index of the iteration
  FillObox(,obx) // Fill the entry into the list box now!
}

 

SetFormatName vs. ResetWindow

SetFormatName wird dazu benutzt um zwischen verschiedenen definierten Listenformaten hin und her zu schalten. Es ist beispielsweise aber nicht möglich die Header zu überschreiben.

ResetWindow setzt die Liste komplett zurück und es lässt sich somit ein frisches Format definieren. Beispielsweise wenn die Darstellung der Liste vom gerade selektierten Eintrag abhängt und man nicht weiß welche Spalten vorher gebraucht werden.  Siehe auch ResetWindow

Siehe auch

InstantView