[Inhalt] [Zurück] [Weiter] [Thema] [Index]

NewDBListe()


Syntax:

NewDBListe(S name, Real xpos, Real ypos, Real breite, Real hoehe, Bool offen, S azurprg, S relation, S keyfeld, S dispfeld [, Bool ohneleerzeile] [, Bool mitcb]])
name: Name der Liste
xpos: Koordinaten in Pixeln, relativ zur linken
ypos: oberen Ecke des Windows
breite: Breite der Liste in Pixeln
hoehe: Höhe der offenen Liste in Pixeln
offen: TRUE=die Liste ist geöffnet
azurprg: Azurprogramm oder ""
relation: Mem-Relation
keyfeld: Schlüsselfeld
dispfeld: darzustellende(s) Feld(er)
ohneleerzeile: optional: erzeuge keine Leerzeile am Ende der Listen, Voreinstellung: False
mitcb: optional: Soll eine Checkbox in jedes Listenelement integriert werden, Voreinstellung: False

Beispiel:

NewDBListe("Farbe", 20,270, 100, 200, FALSE, "", Str(memrel), "Nummer", "Name")

Beschreibung:

Erzeugt auf dem aktuellen AGWindow eine neue DBListe.

Die Einträge werden aus einer Relation ausgelesen. Dargestellt werden die Felder mit Namen dispfeld. dispfeld kann auch den Namen mehrerer Felder enthalten, die durch + getrennt sind. Angezeigt werden dann pro Zeile der Inhalt dieser Felder durch ein Leerzeichen getrennt.

Es gibt zwei weitere Prozeduren, um Listen zuerstellen: NewListe() und NewMultiListe().

Als Inhalt der Liste wird an ein Azurprogram der Inhalt des Feldes keyfeld des ausgewählten Tupels übergeben.

relation ist der Str() der Mem-Relation (siehe Beispiel).

NewDBListe("Farbe", 20,270, 100, 200, FALSE, "", \
Str(memrel), "Nummer", "Name")

eine Liste erzeugt.

Wenn das erste Zeichen von dispfeld ein @ ist, so wird der Rest des Strings als Name einer Azurfunktion betrachtet. Diese Azurfunktion muss als Parameter ein Tupel bekommen und als Ergebnis einen String liefern. Beim Aufbau der Liste wird dann für jedes Tupel diese Funktion aufgerufen und deren jeweiliger Ergebnisstring als Listeninhalt gesetzt.

Beispiel:

    NewDBListe ("Farbe", 20,270, 100, 200, FALSE, "", \
                Str(memrel), "Nummer", "@MacheInhalt")

    #------------------------------------

    MacheInhalt (Tupel tup) : String
       RETURN (GetText(tup,"Name"))
    END
    

Sortierreihenfolge

Standardmäßig wird die Liste nach dem dargestellten Inhalt sortiert. Soll die Liste nicht sortiert werden, die Tupel also in der Reihenfolge durchlaufen werden, in der sie in die Mem-Relation gelangt sind, muss man den Str() der Mem-Relation in Kleinbuchstaben wandeln (mit LowCase(Str(memrel))).

Die Liste kann auch nach dem Schlüsselfeld sortiert dargestellt werden. Dies wird erreicht, indem man dem Schlüsselfeld ein ! voranstellt (z.B. "!Nummer").

Wenn die Liste erzeugt ist, verhält sie sich in der Folge genau wie eine normale Liste. Deshalb weiterlesen bei NewListe().



toposoft 16.04.2024