4D v14.3Command name |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v14.3
Command name
|
Command name ( Befehl ) -> Funktionsergebnis | ||||||||
Parameter | Typ | Beschreibung | ||||||
Befehl | Lange Ganzzahl |
![]() |
Befehlsnummer | |||||
Funktionsergebnis | String |
![]() |
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
Produkt: 4D
Thema: Programmiersprache
Nummer:
538
Erstellt: 4D v6
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)