edu-senex/edu/content/flashcards/deck-notation.md

5,9 KiB

Flashcard Deck: $ Notation

Thema: Das Omnis $-Notationssystem Schwierigkeit: Anfaenger -> Fortgeschritten Karten: 30


Karte 1 | Basis

Q: Was bedeutet $cinst in Omnis? A: Die aktuelle Instanz - aequivalent zu this in JavaScript oder self in Python. Zeigt auf das aktuelle Window/Objekt.


Karte 2 | Basis

Q: Wie liest du den Inhalt eines Feldes "customerName" auf dem aktuellen Window? A: Calculate lVal as $cinst.$objs.customerName.$contents


Karte 3 | Basis

Q: Wie SETZT du den Inhalt eines Feldes? Warum geht = nicht? A: Do $cinst.$objs.customerName.$contents.$assign("Meier") - Man muss $assign() verwenden, weil Notation-Pfade Objekte sind, keine einfachen Variablen.


Karte 4 | Basis

Q: Was ist der Unterschied zwischen $objs und $bobjs? A: $objs = Objekte auf dem aktuellen Fenster/Form. $bobjs = "Background objects" / Objekte auf einer Superklasse (geerbte Objekte).


Karte 5 | Basis

Q: Was gibt $clib zurueck? A: Die aktuelle Library (das Omnis-Projekt / .lbs Datei), in der der Code laeuft.


Karte 6 | Basis

Q: Wie greifst du auf eine andere Klasse in der gleichen Library zu? A: Do $clib.$classes.ClassName.$open() Returns lRef


Karte 7 | Mittel

Q: Was bedeutet $ctask? A: Der aktuelle Task - eine Art globaler Kontext/Session. Task-Variablen (tVar) leben hier.


Karte 8 | Mittel

Q: Wie machst du ein Feld unsichtbar? A: Do $cinst.$objs.fieldName.$visible.$assign(kFalse)


Karte 9 | Mittel

Q: Wie rufst du eine Methode auf einem anderen Objekt auf? A: Do iMyObject.$methodName(param1, param2) Returns lResult


Karte 10 | Mittel

Q: Was ist $cols bei einer Liste? A: Die Spalten-Sammlung einer Liste. lList.$cols.$add('name', kCharacter, kSimplechar, 255) fuegt eine Spalte hinzu.


Karte 11 | Mittel

Q: Wie zaehlt man die Zeilen einer Liste? A: Calculate lCount as lList.$linecount


Karte 12 | Mittel

Q: Was macht $line? A: Gibt die aktuelle Zeilennummer einer Liste zurueck oder setzt sie. Do lList.$line.$assign(5) springt zu Zeile 5.


Karte 13 | Mittel

Q: Wie greifst du auf den Wert einer Spalte "price" in der aktuellen Zeile einer Liste zu? A: Calculate lPrice as lList.price (wenn $line gesetzt ist) oder Calculate lPrice as lList.[lRow].price fuer eine bestimmte Zeile.


Karte 14 | Fortgeschritten

Q: Was ist $sendall()? A: Fuehrt einen Befehl fuer ALLE Zeilen einer Liste aus - wie forEach in JS. Beispiel: Do lList.$sendall($ref.price.$assign($ref.price * 1.19)) (19% MwSt auf alle Preise)


Karte 15 | Fortgeschritten

Q: Was bedeutet $ref in $sendall? A: $ref ist die Referenz auf die aktuelle Zeile innerhalb von $sendall - wie der Callback-Parameter in Array.forEach(item => ...).


Karte 16 | Fortgeschritten

Q: Wie findest du eine Zeile in einer Liste per Suche? A: Do lList.$search(lList.id = lSearchID) - Setzt $line auf die gefundene Zeile. #F (Flag) zeigt Erfolg.


Karte 17 | Fortgeschritten

Q: Was ist $getAllCols()? A: Laedt alle Spalten einer Datenbankabfrage in die Liste, ohne sie einzeln zu benennen.


Karte 18 | Basis

Q: Was macht kTrue vs kFalse? A: Omnis-Konstanten fuer Boolean true/false. Immer mit k-Praefix (k = Konstante).


Karte 19 | Mittel

Q: Wie oeffnest du ein Window (Fenster)? A: Do $clib.$windows.wMyWindow.$open('*') Returns lWinRef


Karte 20 | Mittel

Q: Was bedeutet der '*' Parameter bei $open? A: Oeffnet das Fenster als neue Instanz. Ohne '*' wird eine bestehende Instanz wiederverwendet.


Karte 21 | Fortgeschritten

Q: Wie iterierst du ueber alle Objekte auf einem Window? A: For each $cinst.$objs as lObj - wie for (const el of document.querySelectorAll('*')) in JS.


Karte 22 | Fortgeschritten

Q: Was ist der Unterschied zwischen $cclass und $cinst? A: $cclass = die Klasse (Bauplan/Template), $cinst = die konkrete Instanz (laufendes Objekt). Wie MyClass vs myInstance in JS.


Karte 23 | Basis

Q: Wie gibt eine Methode einen Wert zurueck? A: Quit method lReturnValue - aequivalent zu return lReturnValue in JS.


Karte 24 | Mittel

Q: Was ist $event? A: Die Standard-Event-Handler-Methode einer Klasse. Wird bei UI-Events aufgerufen (wie onClick). Parameter pEventCode enthaelt den Event-Typ.


Karte 25 | Fortgeschritten

Q: Unterschied $event vs $eventclient bei Remote Forms? A: $event = laeuft auf dem SERVER. $eventclient = laeuft im BROWSER (JavaScript). Fuer schnelle UI-Reaktionen $eventclient verwenden.


Karte 26 | Fortgeschritten

Q: Wie greifst du von einer Instanz auf die Instanz-Variable eines anderen offenen Windows zu? A: Calculate lVal as $iwindows.wOtherWindow.$ivar.iMyVariable


Karte 27 | Mittel

Q: Was macht $add() bei einer Liste? A: Fuegt eine neue leere Zeile am Ende hinzu. Do lList.$add(). Danach Werte setzen mit Calculate lList.colName as "wert".


Karte 28 | Mittel

Q: Wie loeschst du eine Zeile aus einer Liste? A: Do lList.$remove(lList.$line) - entfernt die aktuelle Zeile. Oder Do lList.$remove(5) fuer Zeile 5.


Karte 29 | Fortgeschritten

Q: Was ist $define() bei einem Schema/Query? A: Definiert die Spaltenstruktur. Do lSchema.$define(col1, col2, ...) - wie ein CREATE TABLE fuer eine Omnis-Datenstruktur.


Karte 30 | Fortgeschritten

Q: Wie navigierst du durch die gesamte Omnis-Objekthierarchie? A: Von oben: $root -> $libs -> Library -> $classes -> Class -> $methods / $objs / $ivars. Alles ist ein Baum mit $ Pfaden!


Spaced Repetition Tracking

Karte Zuletzt Naechste Schwierigkeit
(wird beim Ueben gefuellt)