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

82 Zeilen
3,1 KiB
Markdown

# Omnis Commands Cheat Sheet
## Die 10 wichtigsten Befehle
| # | Befehl | Was es tut | JS-Aequivalent |
|---|--------|-----------|----------------|
| 1 | `Calculate lX as expr` | Berechnung + Zuweisung | `let x = expr` |
| 2 | `Do obj.$method()` | Methodenaufruf | `obj.method()` |
| 3 | `If ... Else ... End If` | Bedingung | `if ... else ...` |
| 4 | `For i from a to b step c` | Zaehlschleife | `for (let i=a; i<=b; i+=c)` |
| 5 | `For each line in list` | Listen-Iteration | `for (const item of arr)` |
| 6 | `While ... End While` | Bedingungsschleife | `while (...)` |
| 7 | `Quit method lVal` | Methode beenden + Return | `return val` |
| 8 | `OK message {text}` | Nachricht anzeigen | `alert(text)` |
| 9 | `Switch ... Case ... End Switch` | Fallunterscheidung | `switch ... case` |
| 10 | `Do inherited` | Super-Methode rufen | `super.method()` |
## Variablen & Berechnung
```omnis
Calculate lName as "Harry" String zuweisen
Calculate lSum as lA + lB Berechnen
Calculate lText as con("Hallo ", lName) String verketten
Calculate lUpper as upp(lName) Grossbuchstaben
Calculate lLen as len(lName) String-Laenge
Calculate lSub as mid(lName, 2, 3) Substring
Calculate lPos as pos("r", lName) Zeichen finden
```
## Kontrollfluss
```omnis
If lAge >= 18 If lStatus = 'A' | lStatus = 'B'
# erwachsen # A oder B
Else If lAge >= 14 End If
# jugendlich
Else Switch lStatus
# kind Case 'A'
End If # aktiv
Case 'I'
While lX < 100 # inaktiv
Calculate lX as lX + 1 Default
End While # sonstiges
End Switch
For lI from 1 to 10 step 1
# lI = 1, 2, 3, ...10
End For
```
## Dialoge
```omnis
OK message {Fertig!} Info-Dialog
Yes/No message {Loeschen?} Ja/Nein Dialog
If flag true ... End If Ergebnis pruefen
Prompt for input {Name?} lName Eingabe-Dialog
No/Yes message {Abbrechen?} Nein/Ja (Default=Nein)
```
## Debugging
```omnis
Breakpoint Debugger oeffnen (= debugger; in JS)
OK message {Debug: [lVar]} Quick-Debug mit Message
Trace log {[lVar]} In Trace-Log schreiben
```
## SQL-Befehle (ueber Session/Statement)
```omnis
Do lSess.$logon(host, user, pw, 'sess') Returns #F Verbinden
Do lStmt.$prepare('SELECT...WHERE id=:1') Returns #F Vorbereiten
Do lStmt.$execute(lID) Returns #F Ausfuehren
Do lStmt.$fetch(lList, kFetchAll) Returns #F Ergebnis holen
Do lStmt.$execdirect('INSERT...') Returns #F Direkt ausfuehren
```
## Merkhilfe: Die Befehls-Familien
```
DATEN: Calculate, Do, Set current list
FLUSS: If/Else/End If, For/End For, While/End While, Switch/Case/End Switch
METHODE: Quit method, Do inherited, Quit all methods
DIALOG: OK message, Yes/No message, Prompt for input
FENSTER: Open window, Close window, Redraw, Enter data
SQL: $logon, $prepare, $execute, $fetch, $execdirect
```