4,8 KiB
Flashcard Deck: Listen & Rows
Thema: Omnis Listen - der universelle Datencontainer Schwierigkeit: Anfaenger -> Fortgeschritten Karten: 20
Karte 1 | Basis
Q: Was ist eine "List" in Omnis? A: Ein zweidimensionaler Datencontainer mit benannten, typisierten Spalten und beliebig vielen Zeilen. Wie ein Array von Objects in JS, ein DataFrame in Python, oder ein RecordSet in VB.
Karte 2 | Basis
Q: Was ist eine "Row" in Omnis? A: Eine einzelne Datenzeile mit benannten Spalten. Wie ein Object/Dictionary. Eine List besteht aus vielen Rows.
Karte 3 | Basis
Q: Wie erstellst du eine Liste mit Spalten? A:
Do lList.$cols.$add('id', kInteger)
Do lList.$cols.$add('name', kCharacter, kSimplechar, 100)
Do lList.$cols.$add('price', kNumber, k2dp, 10)
Karte 4 | Basis
Q: Wie fuegst du eine Zeile zu einer Liste hinzu? A:
Do lList.$add()
Calculate lList.id as 1
Calculate lList.name as "Produkt A"
Calculate lList.price as 29.99
$add() fuegt eine Zeile hinzu UND macht sie zur aktuellen Zeile.
Karte 5 | Basis
Q: Wie iterierst du ueber alle Zeilen einer Liste? A:
For each line in list from 1 to lList.$linecount step 1
# lList.spaltenname gibt den Wert der aktuellen Zeile
Calculate lTotal as lTotal + lList.price
End For
Karte 6 | Mittel
Q: Wie suchst du in einer Liste?
A: Do lList.$search(lList.name = "Produkt A") - Setzt $line auf den Treffer. If flag true prueft ob gefunden.
Karte 7 | Mittel
Q: Wie sortierst du eine Liste?
A: Do lList.$sort(lList.name, kTrue) - Sortiert nach Spalte "name". kTrue = aufsteigend, kFalse = absteigend.
Karte 8 | Mittel
Q: Wie entfernst du eine Zeile aus einer Liste?
A: Do lList.$remove(lList.$line) entfernt die aktuelle Zeile. Do lList.$remove(3) entfernt Zeile 3. Do lList.$clear() leert alle Zeilen.
Karte 9 | Mittel
Q: Was ist $linecount?
A: Die Anzahl der Zeilen in einer Liste. Calculate lAnzahl as lList.$linecount. Wie array.length in JS.
Karte 10 | Mittel
Q: Was ist $line?
A: Die aktuelle Zeilennummer einer Liste (1-basiert!). Wird durch $search, $add, Klick auf Grid gesetzt. 0 = keine Zeile gewaehlt.
Karte 11 | Mittel
Q: Wie liest du eine bestimmte Zeile (nicht die aktuelle)?
A: Calculate lVal as lList.[3].name liest Spalte "name" von Zeile 3. Die eckigen Klammern addressieren die Zeilennummer.
Karte 12 | Fortgeschritten
Q: Was macht $sendall()?
A: Fuehrt einen Ausdruck fuer JEDE Zeile der Liste aus (wie forEach + map in einem):
Do lList.$sendall($ref.price.$assign($ref.price * 1.19))
$ref = aktuelle Zeile.
Karte 13 | Fortgeschritten
Q: Wie filterst du eine Liste?
A: $search mit kTrue im 2. Parameter zeigt nur Treffer:
Do lList.$search(lList.status = 'active', kTrue)
Nicht-Treffer werden "ausgeblendet" (nicht geloescht). Do lList.$search(kTrue) zeigt wieder alle.
Karte 14 | Fortgeschritten
Q: Was ist der Unterschied zwischen $merge() und $add()?
A: $add() fuegt eine leere Zeile hinzu. $merge(lOtherList) fuegt ALLE Zeilen einer anderen Liste hinzu - wie array.concat() in JS.
Karte 15 | Fortgeschritten
Q: Wie definierst du eine Liste aus einer Schema-Klasse?
A: Do lList.$definefromsqlclass('scMySchema') - Uebernimmt die Spaltenstruktur aus dem Schema. Wie ein Typ/Interface fuer die Liste.
Karte 16 | Fortgeschritten
Q: Was ist $colcount?
A: Die Anzahl der Spalten einer Liste. Calculate lCols as lList.$colcount. Fuer dynamische Listen nuetzlich.
Karte 17 | Fortgeschritten
Q: Wie kopierst du eine Liste?
A: Calculate lCopy as lOriginal erstellt eine Kopie (nicht Referenz!). Omnis-Listen sind Value-Types, nicht Reference-Types wie in JS!
Karte 18 | Fortgeschritten
Q: Wie befuellst du eine Liste aus SQL? A:
Do lStmt.$execdirect('SELECT * FROM orders') Returns #F
If flag true
Do lStmt.$fetch(lList, kFetchAll) Returns #F
End If
kFetchAll holt alle Zeilen auf einmal.
Karte 19 | Fortgeschritten
Q: Was ist $selected bei einer Liste?
A: Ein Boolean-Flag pro Zeile, das anzeigt ob die Zeile "ausgewaehlt" ist (z.B. per Checkbox im Grid). lList.$selected liest/setzt den Wert der aktuellen Zeile.
Karte 20 | Fortgeschritten
Q: Was ist der Unterschied zwischen Listen und Rows beim SQL-Fetch?
A: $fetch(lList, kFetchAll) holt mehrere Zeilen in eine Liste. $fetch(lRow, kFetchOne) holt nur eine Zeile in eine Row. Row = einzelner Datensatz, Liste = Ergebnismenge.
Spaced Repetition Tracking
| Karte | Zuletzt | Naechste | Schwierigkeit |
|---|---|---|---|
| (wird beim Ueben gefuellt) |