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

3,1 KiB

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

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

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

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

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)

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