edu-senex/edu/content/cheatsheets/notation-cheatsheet.md

88 Zeilen
3 KiB
Markdown

# Omnis $-Notation Cheat Sheet
## Navigation durch die Hierarchie
```
$root Die Omnis-Wurzel
.$libs Alle geoeffneten Libraries
.myLib Bestimmte Library
.$classes Alle Klassen
.myClass Bestimmte Klasse
.$methods Alle Methoden
.$objs Alle UI-Objekte
.$ivars Alle Instanz-Variablen
```
## Kontext-Shortcuts
| Pfad | Bedeutung | JS-Aequivalent |
|------|-----------|---------------|
| `$cinst` | Aktuelle Instanz | `this` |
| `$cclass` | Aktuelle Klasse | `this.constructor` |
| `$clib` | Aktuelle Library | - |
| `$ctask` | Aktueller Task | Global scope |
| `$cmethod` | Aktuelle Methode | - |
| `$cwind` | Aktuelles Window | `window` |
## UI-Objekte
```omnis
$cinst.$objs.feldName.$contents Wert lesen
$cinst.$objs.feldName.$contents.$assign(x) Wert setzen
$cinst.$objs.feldName.$visible Sichtbar?
$cinst.$objs.feldName.$enabled Aktiv?
$cinst.$objs.feldName.$textcolor Textfarbe
$cinst.$objs.feldName.$backcolor Hintergrundfarbe
$cinst.$objs.feldName.$font Schriftart
$cinst.$objs.feldName.$tooltip Tooltip-Text
$cinst.$objs.feldName.$dataname Gebundene Variable
```
## Listen-Notation
```omnis
lList.$linecount Anzahl Zeilen
lList.$line Aktuelle Zeile (1-basiert)
lList.$colcount Anzahl Spalten
lList.$cols Spalten-Collection
lList.$cols.$add(...) Spalte hinzufuegen
lList.$add() Zeile hinzufuegen
lList.$remove(n) Zeile n entfernen
lList.$clear() Alle Zeilen loeschen
lList.$search(expr) Suchen
lList.$sort(col, asc) Sortieren
lList.$sendall(expr) Auf alle Zeilen anwenden
lList.$merge(other) Listen zusammenfuegen
lList.$selected Auswahl-Flag der akt. Zeile
lList.[3].colname Spalte in Zeile 3
lList.colname Spalte in aktueller Zeile
```
## Methoden aufrufen
```omnis
Do iObj.$method() Ohne Rueckgabe
Do iObj.$method() Returns lResult Mit Rueckgabe
Do iObj.$method(p1, p2) Returns lR Mit Parametern
Do $cinst.$objs.btn.$visible.$assign(kTrue) Property setzen
Do inherited Super-Methode
```
## Wichtige Konstanten
```
kTrue / kFalse Boolean
kCharacter String-Typ
kInteger Ganzzahl-Typ
kNumber Dezimal-Typ
kDate Datum-Typ
kList Listen-Typ
kRow Row-Typ
kBoolean Boolean-Typ
kFetchAll Alle Zeilen holen
kFetchOne Eine Zeile holen
kSimplechar Einfacher String-Subtyp
k2dp 2 Dezimalstellen
```
## Merkhilfe: LESEN vs SETZEN
```
LESEN: Calculate lVal as $cinst.$objs.feld.$contents
SETZEN: Do $cinst.$objs.feld.$contents.$assign(lVal)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Nie = verwenden! Immer $assign() !
```