4D v14.3

Command name

Home

 
4D v14.3
Command name

Command name 


 

Command name ( Befehl ) -> Funktionsergebnis 
Parameter Typ   Beschreibung
Befehl  Lange Ganzzahl in Befehlsnummer
Funktionsergebnis  String in Lokalisierter Befehlsname

Die Funktion Command name gibt den ausgeschriebenen Befehlsnamen der in Befehl übergebenen Nummer zurück.

Hinweis: In der deutschen Programmiersprache gelten für Befehle, Funktionen, Konstanten etc. die englischen Bezeichnungen.

4D übersetzt die in Ihren Methoden eingesetzten Schlüsselwörter, Konstanten und Befehlsnamen je nach Version dynamisch. Sie schreiben zum Beispiel mit der englischen/deutschen Version von 4D:

 
 DEFAULT TABLE([MyTable])
 ALL RECORDS([MyTable])

Wird dieser Code mit der französischen Version von 4D geöffnet, erhalten Sie:

 TABLE PAR DEFAUT([MyTable])
 TOUT SELECTIONNER([MyTable])

Darüberhinaus enthält 4D den Befehl EXECUTE FORMULA, mit dem Sie Code "on the fly" erstellen und ausführen können, selbst wenn die Datenbank kompiliert ist.

Mit EXECUTE FORMULA lautet der Beispiel Code in Englisch/Deutsch:

 EXECUTE FORMULA("DEFAULT TABLE([MyTable])")
 EXECUTE FORMULA("ALL RECORDS([MyTable])")

Wird derselbe Code mit der französischen Version von 4D geöffnet, erhalten Sie:

 EXECUTER FORMULE("DEFAULT TABLE([MyTable])")
 EXECUTER FORMULE("ALL RECORDS([MyTable])")

4D übersetzt automatisch EXECUTE FORMULA (Englisch) in EXECUTER FORMULE (Französisch), kann jedoch nicht die im Befehl übergebenen Textanweisungen übersetzen.

Verwenden Sie EXECUTE FORMULA in Ihrer Anwendung, können Sie mit der Funktion Command name Unstimmigkeiten bei der Lokalisierung vermeiden, und so Ihre Anweisung von der jeweiligen Sprache unabhängig machen. Das bedeutet für unser Beispiel:

 EXECUTE FORMULA(Command name(46)+"([MyTable])")
 EXECUTE FORMULA(Command name(47)+"([MyTable])")

Mit einer französischen Version von 4D erhalten Sie:

 EXECUTER FORMULE(Nom commande(46)+"([MyTable])")
 EXECUTER FORMULE(Nom commande(47)+"([MyTable])")

Hinweis: Die entsprechende Nummer zum Befehlsnamen erscheint in jeder Datei in der rechten oberen Ecke unter Eigenschaften.

Command name setzt die Variable OK auf 1, wenn Befehl zu einer vorhandenen Befehlsnummer passt, andernfalls auf 0. Bei deaktivierten Befehlen gibt Command name einen leeren String zurück (siehe letztes Beispiel).

Für jede Tabelle Ihrer Datenbank gibt es ein Formular mit Namen “INPUT FORM” zur standardmäßigen Dateneingabe in jeder Tabelle. Sie wollen nun eine generische Projektmethode hinzufügen, die dieses Formular zum aktuellen Eingabeformular der Tabelle macht, dessen Zeiger bzw. Namen Sie übergeben. Sie schreiben:

  ` Projektmethode STANDARD INPUT FORM
  ` STANDARD INPUT FORM ( Zeiger {; String })
  ` STANDARD INPUT FORM ( ->Tabelle {; TabellenName })
 C_POINTER($1)
 C_STRING(31;$2)
 
 If(Count parameters>=2)
    EXECUTE FORMULA(Command name(55)+"(["+$2+"];"INPUT FORM")")
 Else
    If(Count parameters>=1)
       FORM SET INPUT($1->;"INPUT FORM")
    End if
 End if

Mit dieser Projektmethode in Ihrer Datenbank schreiben Sie:

 STANDARD INPUT FORM(->[Employees])
 STANDARD INPUT FORM("Employees")

Hinweis: Für generische Routinen empfiehlt es sich, Zeiger zu verwenden. Dann läuft der Code kompiliert, wenn die Datenbank kompiliert ist. Sind die Routinen nicht generisch, funktioniert Ihr Code unter Umständen nicht mehr richtig, wenn Sie die Tabelle umbenennen. Und der Befehl EXECUTE FORMULA kann das Problem nur in bestimmten Fällen lösen.

Sie wollen in einem Formular eine DropDown-Liste mit den Grundbefehlen für Summen füllen. Die Objektmethode dafür lautet:

 Case of
    :(Form event=On Before)
       ARRAY TEXT(asCommand;4)
       asCommand{1}:=Command name(1) ` Sum
       asCommand{2}:=Command name(2) ` Average
       asCommand{3}:=Command name(4) ` Min
       asCommand{4}:=Command name(3) ` Max
  ` ...
 End case

In der englischen/deutschen Version von 4D lautet die DropDown-Liste: Sum, Average, Min und Max. In der französischen Version lautet sie: Somme, Moyenne, Min und Max.

Mit folgendem Code können Sie alle gültigen 4D Befehle in ein Array laden:

 C_LONGINT($Lon_id)
 C_TEXT($Txt_command)
 ARRAY LONGINT($tLon_Command_IDs;0)
 ARRAY TEXT($tTxt_commands;0)
 
 Repeat
    $Lon_id:=$Lon_id+1
    $Txt_command:=Command name($Lon_id)
    If(OK=1) //Befehlsnummer existiert
       If(Length($Txt_command)>0) //Befehl ist nicht deaktiviert
          APPEND TO ARRAY($tTxt_commands;$Txt_command)
          APPEND TO ARRAY($tLon_Command_IDs;$Lon_id)
       End if
    End if
 Until(OK=0) //Ende der vorhandenen Befehle

 
EIGENSCHAFTEN 

Produkt: 4D
Thema: Programmiersprache
Nummer: 538

Dieser Befehl ändert die Systemvariable OK

 
GESCHICHTE 

Erstellt: 4D v6

 
SIEHE AUCH 

EXECUTE FORMULA

 
ARTIKELVERWENDUNG

4D Programmiersprache ( 4D v12.4)
4D Programmiersprache ( 4D v14 R2)
4D Programmiersprache ( 4D v14 R3)
4D Programmiersprache ( 4D v13.5)
4D Programmiersprache ( 4D v14.3)
4D Programmiersprache ( 4D v14 R4)

Geerbt von : Command name ( 4D v11 SQL Release 6)