4D v16.3

Namenskonventionen

Home

 
4D v16.3
Namenskonventionen

Namenskonventionen  


 

 

Dieser Abschnitt beschreibt die Konventionen, die Sie beim Benennen von Objekten in der 4D Programmiersprache beachten müssen. Folgende Regeln gelten für alle Objekte:

  • Ein Name muss mit einem Buchstaben oder einem Unterstrich beginnen.
  • Der Name kann Buchstaben, Zahlen, Leerzeichen und den Unterstrich enthalten.
  • Punkte, Schrägstriche, Anführungszeichen und Kommas sind nicht erlaubt.
  • In Tabellen-, Feld- und Methodennamen sind Punkte (".") bzw. Klammern ("[ ]") nicht erlaubt, das gilt für Variablennamen, wenn die Objekt Notation aktiviert ist. (siehe Objektnotation)
  • Zeichen für Operatoren, wie z.B. * und + sind nicht erlaubt.
  • 4D ignoriert alle führenden Leerzeichen.
  • Der Name kann Umlaute wie ä, ö, ü enthalten, sie werden jedoch nicht berücksichtigt: mühle = muhle

Hinweis: Bei Objekten, die über SQL verwaltet werden, müssen Sie zusätzliche Regeln beachten. Zugelassen sind nur die Zeichen _0123456789abcdefghijklmnopqrstuvwxyz, der Name darf keine SQL Keywords, also Befehle, Attribute u.ä. enthalten. Der SQL Bereich des Inspektors im Struktureditor zeigt automatisch alle nicht erlaubten Zeichen bei Tabellen- oder Feldnamen an.

Befehle werden in einer speziellen Schrift und in Großbuchstaben geschrieben, zum Beispiel: ADD RECORD. 4D Funktionen werden mit großem Anfangsbuchstaben geschrieben, zum Beispiel: Records in selection.

Befehle, Funktionen und Anweisungen in Methoden oder Objektmethoden werden fett geschrieben. Befehle oder Funktionen von Plug-Ins haben eine spezifische Vorsilbe und werden zusätzlich kursiv geschrieben, um sie von den 4D Befehlen und Funktionen zu unterscheiden:

 QUERY([Vorlagen];[Vorlagen]ID=vNummer) ` 4D Befehl
 If(Records in selection([Vorlagen])=1)
    WR PICTURE TO AREA(Bereich;[Vorlagen]Dok) ` 4D Write Befehl
 End if

In einigen Beispielen dieses Handbuchs passen Code-Zeilen nicht in eine Zeile, sie müssen in einer zweiten, manchmal einer dritten Zeile fortgesetzt werden. Wenn Sie diese Beispiele übernehmen, nehmen Sie diese Zeilen als eine Einheit. Verwenden Sie hier keine Zeilenschaltung, denn das unterbricht den Programmierfluss.

Eine Tabelle kennzeichnen Sie durch eckige Klammern: [...]. Der Tabellenname kann max. 31 Zeichen lang sein.

Beispiele:

 DEFAULT TABLE([Orders])
 FORM SET INPUT([Clients];"Entry")
 ADD RECORD([Letters])

Felder  

Ein Datenfeld kennzeichnen Sie durch die vorangestellte Tabelle, zu der dieses Datenfeld gehört. Der Datenfeldname folgt unmittelbar auf die Tabelle. Der Datenfeldname kann max. 31 Zeichen lang sein.

Beispiele:

 [Orders]Total:=Sum([Line]Amount)
 QUERY([Clients];[Clients]Name="Meier")
 [Letters]Text:=Capitalize text([Letters]Text)

Eine Interprozessvariable kennzeichnen Sie mit dem vorangestellten Symbol (<>) — die Zeichen “kleiner als” und “größer als”.

Der Name einer Interprozessvariablen kann ohne die vorangestellten Symbole bis zu 255 Zeichen lang sein.
Die Länge ist auf 31 Zeichen beschränkt, wenn die Option für Kompatibilität "Sichere Methode in Unicode" nicht markiert ist (siehe Seite Kompatibilität).

Beispiele:

 <>vlProcessID:=Current process
 <>vsKey:=Char(KeyCode)
 If(<>vtName#"")

Eine Prozessvariable kennzeichnen Sie durch ihren Namen. (Er kann nicht mit den Symbolen <> oder $ beginnen). Der Name der Prozessvariablen kann bis zu 255 Zeichen lang sein.
Die Länge ist auf 31 Zeichen beschränkt, wenn die Option für Kompatibilität "Sichere Methode in Unicode" nicht markiert ist (siehe Seite Kompatibilität).

Beispiele:

 <>vrGrandTotal:=Sum([Accounts]Amount)
 If(bValidate=1)
    vsCurrentName:=""

Eine lokale Variable kennzeichnen Sie durch das vorangestellte Dollarzeichen ($). Der Name einer lokalen Variable kann ohne Dollarzeichen bis zu 255 Zeichen lang sein.
Die Länge ist auf 31 Zeichen beschränkt, wenn die Option für Kompatibilität "Sichere Methode in Unicode" nicht markiert ist (siehe Seite Kompatibilität).

Beispiele

 For($vlRecord;1;100)
    If($vsTempVar="No")
       $vsMyString:="Hello there"

Arrays  

Ein Array kennzeichnen Sie durch seinen Namen. Das ist der Name, den Sie beim Erstellen des Array übergeben haben (z.B. ARRAY LONGINT). Arrays sind Variablen, von daher gibt es auch drei Arten:

  •  Interprozess-Arrays
  •  Prozess-Arrays
  •  Lokale Arrays

Interprozess-Arrays
Dem Namen des Interprozess-Arrays ist das Symbol <> vorangestellt— die Zeichen “kleiner als” und “größer als”.

Hinweis: Dieses Symbol gilt für Windows und Macintosh. Auf Macintosh können Sie auch das Zeichen ◊ verwenden (Die Kombination Wahl-/Umschalttaste + v).

Der Name eines Interprozess-Arrays kann ohne die vorangestellten Symbole bis zu 255 Zeichen lang sein. (*)

Beispiele:

 ARRAY TEXT(<>atSubjects;Records in table([Topics]))
 SORT ARRAY(<>asKeywords;>)
 ARRAY INTEGER(<>aiBigArray;10000)

Prozess-Arrays
Ein Prozess-Array kennzeichnen Sie durch seinen Namen. (Er kann nicht mit den Symbolen <> oder $ beginnen). Der Name des Prozess-Array kann bis zu 255 Zeichen lang sein. (*)

Beispiele:

 ARRAY TEXT(atSubjects;Records in table([Topics]))
 SORT ARRAY(asKeywords;>)
 ARRAY INTEGER(aiBigArray;10000)

Lokale Arrays
Dem Namen des lokalen Array ist das Dollarzeichen ($) vorangestellt. Ein lokales Array kann ohne Dollarzeichen bis zu 255 Zeichen lang sein. (*)

Beispiele:

 ARRAY TEXT($atSubjects;Records in table([Topics]))
 SORT ARRAY($asKeywords;>)
 ARRAY INTEGER($aiBigArray;10000)

(*) Die Länge ist auf 31 Zeichen beschränkt, wenn die Option für Kompatibilität "Sichere Methode in Unicode" nicht markiert ist (siehe Seite Kompatibilität).

Elemente von Arrays
Sie verweisen auf ein Element eines Interprozess-, Prozess- oder lokalen Array mit geschweiften Klammern ({…}). Das angesprochene Element ist ein numerischer Ausdruck.

Beispiele:

  ` Element eines Interprozess-Array ansprechen
 If(<>asKeywords{1}="Stop")
    <>atSubjects{$vlElem}:=[Topics]Subject
    $viNextValue:=<>aiBigArray{Size of array(<>aiBigArray)}
 
  ` Element eines Prozess-Array ansprechen
    If(asKeywords{1}="Stop")
       atSubjects{$vlElem}:=[Topics]Subject
       $viNextValue:=aiBigArray{Size of array(aiBigArray)}
 
  ` Element eines lokalen Array ansprechen
       If($asKeywords{1}="Stop")
          $atSubjects{$vlElem}:=[Topics]Subject
          $viNextValue:=$aiBigArray{Size of array($aiBigArray)}

Elemente von zweidimensionalen Arrays
Sie verweisen auf ein Element eines Interprozess-, Prozess- oder lokalen Array mit doppelten geschweiften Klammern ({…}). Das angesprochene Element besteht aus zwei numerischen Ausdrücken in geschweiften Klammern.

Beispiele:

  ` Element eines zweidimensionalen Interprozess-Array ansprechen
 If(<>asKeywords{$vlNextRow}{1}="Stop")
    <>atSubjects{10}{$vlElem}:=[Topics]Subject
    $viNextValue:=<>aiBigArray{$vlSet}{Size of array(<>aiBigArray{$vlSet})}
 
  ` Element eines zweidimensionalen Prozess-Array ansprechen
    If(asKeywords{$vlNextRow}{1}="Stop")
       atSubjects{10}{$vlElem}:=[Topics]Subject
       $viNextValue:=aiBigArray{$vlSet}{Size of array(aiBigArray{$vlSet})}
 
  ` Element eines zweidimensionalen lokalen Array ansprechen
       If($asKeywords{$vlNextRow}{1}="Stop")
          $atSubjects{10}{$vlElem}:=[Topics]Subject
          $viNextValue:=$aiBigArray{$vlSet}{Size of array($aiBigArray{$vlSet})}

Ist Objekt Notation aktiviert (siehe Objektnotation), kennzeichnen Sie ein Objektattribut (auch Objekteigenschaft genannt) durch einen Punkt (".") zwischen dem Namen des Objekts (oder Attributs) und dem Attributsnamen. Ein Attributsname kann bis zu 255 Zeichen lang sein und unterscheidet zwischen Groß- und Kleinschreibung.

Beispiele:

 myObject.myAttribute:="10"
 $value:=$clientObj.data.address.city

Hinweis: Für Namen von Objektattributen gelten zusätzlich die Schreibregeln für JavaScript (ECMA Script standard). Weitere Informationen dazu finden Sie im Abschnitt Standard Objektnotation verwenden (Preview).

Ein Formular kennzeichnen Sie durch einen alphanumerischen Ausdruck, der dessen Namen darstellt. Ein Formularname kann max. 31 Zeichen lang sein.

Beispiele:

 INPUT FORM([People];"Input")
 FORM SET OUTPUT([People];"Output")
 DIALOG([Storage];"Note box"+String($vlStage))

Sie geben ein Formularobjekt über einen Namen als String mit vorangestelltem Parameter * an. Ein Objektname kann bis zu 255 bytes enthalten.

Beispiel:

 OBJECT SET FONT(*;"Binfo";"Times")

Weitere Informationen dazu finden Sie im Abschnitt Objekteigenschaften.

Hinweis: Verwechseln Sie nicht Formularobjekte (Schaltflächen, Listboxen, eingebbare Variablen, etc.) und Objekte in der 4D Programmiersprache. Diese werden über Objekt Notation oder spezifische Befehle erstellt und verwaltet (siehe Objekte (Sprache)).

Eine Methode (Prozedur und Funktion) kennzeichnen Sie durch ihren Namen. Ein Methodenname kann max. 31 Zeichen lang sein.

Hinweis: Eine Methode, die kein Ergebnis zurückgibt, heißt auch Prozedur. Eine Methode, die ein Ergebnis zurückgibt, heißt auch Funktion.

Beispiele:

 If(New client)
    DELETE DUPLICATED VALUES
    APPLY TO SELECTION([Employees];INCREASE SALARIES)

Tipp: Verwenden Sie zur besseren Übersicht dieselbe Namenskonvention wie bei den 4D Befehlen: Großschreibung für Methoden; Kleinschreibung mit großem Anfangsbuchstaben für Funktionen. Wenn Sie nun eine Datenbank nach einigen Monaten für eine Wartung öffnen, erkennen Sie im Explorer Fenster bereits an der Schreibweise des Namens, ob die Methode ein Ergebnis zurückgibt.

Hinweis: Wollen Sie eine Methode aufrufen, tippen Sie lediglich ihren Namen ein. Einige in 4D integrierten Befehle wie z.B. ON EVENT CALL, sowie alle Plug-In Befehle erwarten dagegen den Namen der Methode als Zeichenkette, wenn ein Parameter für die Methode übergeben wurde.

Beispiele:

  ` Dieser Befehl erwartet eine Methode (Funktion) oder Formel
 QUERY BY FORMULA([aTable];Special query)
  ` Dieser Befehl erwartet eine Methode (Prozedur) oder Anweisung
 APPLY TO SELECTION([Employees];INCREASE SALARIES)
  ` Dieser Befehl erwartet einen Methodennamen
 ON EVENT CALL("HANDLE EVENTS")

Methoden akzeptieren Parameter (Argumente). Parameter stehen in Klammern hinter dem Methodennamen. Sie sind durch Semikolon (;) voneinander getrennt. Die Parameter sind innerhalb der aufgerufenen Methode als durchnumerierte lokale Variablen verfügbar: $1, $2,…, $n. Mehrere aufeinanderfolgende (und letzte) Parameter können Sie mit der Syntax ${n} ansprechen, wobei n, der numerische Audruck, die Zahl des Parameters ist.

In einer Funktion enthält die lokale Variable $0 den zurückzugebenden Wert.

Beispiele:

  ` In DROP SPACES ist $1 ein Zeiger auf das Datenfeld [Employees]Name
 DROP SPACES(->[Employees]Name)
 
  ` In Calc Creator:
  ` - $1 ist numerisch und gleich 1
  ` - $2 ist numerisch und gleich 5
  ` - $3 ist Text oder Zeichenkette und gleich "Nice"
  ` - Der resultierende Wert wird $0 zugewiesen
 $vsResult:=Calc creator(1;5;"Nice")
 
  ` In Text Creator:
  ` - Die drei Parameter sind Text oder Zeichenkette
  ` - Sie können als $1, $2 oder $3 angesprochen werden
  ` - Sie können aber z.B. auch als ${$vlParam} angesprochen werden, wobei $vlParam 1, 2 oder 3 ist
  ` - Der resultierende Wert wird $0 zugewiesen
 vtClone:=Text Creator("ist";"der";"es")

Einen Plug-In Befehl kennzeichnen Sie durch den Namen, den das Plug-In definiert. Ein Plug-In kann max. 31 Zeichen lang sein.

Beispiel:

 $error:=SMTP_From($smtp_id;"henry@gmail.com")

Mengen  

Es gibt zwei Arten:

  • Interprozessmengen
  • Prozessmengen

4D Server enthält auch:

  • Client-Mengen

Interprozessmengen
Dem Namen einer Interprozessmenge wird das Symbol <> vorangestellt — die Zeichen “kleiner als” und “größer als”.

Hinweis: Dieses Symbol gilt für Windows und Macintosh. Auf Macintosh können Sie auch das Zeichen ◊ verwenden (Die Kombination Wahl-/Umschalttaste + v).

Der Name einer Interprozessmenge kann ohne das Symbol <> bis zu 255 Zeichen lang sein.

Prozessmengen
Eine Prozessmenge kennzeichnen Sie durch einen alphanumerischen Wert, der ihren Namen darstellt. (Er kann nicht mit den Symbolen <> oder $ beginnen). Der Name der Prozessmenge kann bis zu 255 Zeichen lang sein.

Client-Mengen
Dem Namen einer Client-Menge ist das Dollarzeichen ($) vorangestellt. Der Name der Client-Menge kann ohne das Dollarzeichen bis zu 255 Zeichen lang sein.

Hinweis: Mengen werden auf dem Server-Rechner gehalten. Benötigen Sie in bestimmten Fällen Mengen lokal auf dem Client-Rechner, arbeiten Sie mit Client-Mengen.

Beispiele

  ` Interprozessmengen
 USE SET("<>Deleted Records")
 CREATE SET([Customers];"<>Customer Orders")
 If(Records in set("<>Selection"+String($i))>0)
  ` Prozessmengen
    USE SET("Deleted Records")
    CREATE SET([Customers];"Customer Orders")
    If(Records in set("<>Selection"+String($i))>0)
  ` Client-Mengen
       USE SET("$Deleted Records")
       CREATE SET([Customers];"$Customer Orders")
       If(Records in set("$Selection"+String($i))>0)

Es gibt zwei Arten:

  • Temporäre Interprozessauswahlen
  • Temporäre Prozessauswahlen

Temporäre Interprozessauswahlen
Dem Namen von temporären Interprozessauswahlen ist das Symbol <> vorangestellt — die Zeichen “kleiner als” und “größer als”.

Hinweis: Dieses Symbol gilt für Windows und Macintosh. Auf Macintosh können Sie auch das Zeichen ◊ verwenden (Die Kombination Wahl-/Umschalttaste + v).

Der Name einer temporären Interprozessauswahl kann ohne das Symbol <> bis zu 255 Zeichen lang sein.

Temporäre Prozessauswahlen
Eine temporäre Prozessauswahl kennzeichnen Sie durch einen alphanumerischen Wert, der ihren Namen darstellt. (Er kann nicht mit den Symbolen <> oder $ beginnen). Der Name der temporären Prozessauswahl kann bis zu 255 Zeichen lang sein.

Beispiele:

  ` Temporäre Interprozessauswahl
 USE NAMED SELECTION([Customers];"<>ByZipcode")
  ` Temporäre Prozessauswahl
 USE NAMED SELECTION([Customers];"<>ByZipcode")

In der Einzelplatzversion bzw. auf der Client-Seite im Client/Server-Betrieb gibt es zwei Arten:

  • Globale Prozesse
  • Lokale Prozesse

Globale Prozesse
Sie kennzeichnen einen globalen Prozess durch einen alphanumerischen Wert, der seinen Namen darstellt. (Er kann nicht mit dem Dollarzeichen beginnen). Der Name des globalen Prozesses kann bis zu 255 Zeichen lang sein.

Lokale Prozesse
Dem Namen eines lokalen Prozesses ist das Dollarzeichen ($) vorangestellt. Der Name des lokalen Prozesses kann ohne das Dollarzeichen bis zu 255 Zeichen lang sein.

Beispiele

  ` Globalen Prozess "Add Customers" starten
 $vlProcessID:=New process("P_ADD_CUSTOMERS";48*1024;"Add Customers")
  ` Lokalen Prozess "$Follow Mouse Moves" starten
 $vlProcessID:=New process("P_MOUSE_SNIFFER";16*1024;"$Follow Mouse Moves")

TypMax. LängeBeispiel
Tabelle31[Rechnungen]
Datenfeld31[Angestellte]Nachname
Interprozessvariable<> + 255 (*)<>vlNächsteProzessID
Prozessvariable255 (*)vsAktuellerName
Lokale Variable$ + 255 (*)$vlLokalerZähler
Formular31"Meine Web Eingabe"
Formularobjekt255"MeineSchaltfläche"
Interprozess-Array<> + 31<>apTabellen
Prozess-Array31asGender
Lokales Array$ + 31$atWerte
Methode 31M_ADD_CUSTOMERS
Plug-in Routine31WR INSERT TEXT
Interprozessmenge<> + 255"<>Datensätze zum Archivieren"
Prozessmenge255"Aktuell ausgewählte Datensätze"
Client-Menge$ + 255"$VorigeSubjekte"
Temporäre Auswahl255"Angestellte A bis Z"
Temporäre Interprozessauswahl<> + 255"<>Angestellte Z bis A"
Lokaler Prozess$ + 255"$Ereignisse verfolgen"
Globaler Prozess255"P_INVOICES_MODULE"
Semaphore255"meineSemaphore"

(*) Die Länge ist auf 31 Zeichen beschränkt, wenn die Option für Kompatibilität "Sichere Methode in Unicode" nicht markiert ist (siehe Seite Kompatibilität).

Hinweis: Bei Verwenden nicht-romanischer Zeichen in Namen kann die max. Länge kürzer sein.

Achten Sie darauf, dass die Namen für Objekte in Ihrer Anwendung einmalig sind. Hat ein Objekt denselben Namen wie ein anderes Objekt (beispielsweise ein Datenfeld und eine Variable mit demselben Namen Person), verwendet 4D ein Prioritätensystem.

4D identifiziert Namen in Prozeduren in folgender Reihenfolge:

1. Datenfelder
2. Befehle
3. Methoden
4. Plug-In Routinen
5. Vordefinierte Konstanten
6. Variablen

Beispiel: In 4D gibt es den Befehl mit Namen Date. Hat eine Methode denselben Namen Date, wertet 4D diese als den integrierten Befehl Date und nicht als Methode. Die Methode wird nicht aufgerufen. Haben Sie dagegen ein Datenfeld mit dem Namen “Date”, angelegt, versucht 4D, dieses Datenfeld anstatt des Befehls Date zu benutzen.



Siehe auch 

Datentypen
Einführung in Arrays
Konstanten
Methoden
Operatoren
Variablen
Zeiger

 
EIGENSCHAFTEN 

Produkt: 4D
Thema: Grundbegriffe

 
GESCHICHTE 

 
ARTIKELVERWENDUNG

4D Programmiersprache ( 4D v16)
4D Programmiersprache ( 4D v16.1)
4D Programmiersprache ( 4D v16.2)
4D Programmiersprache ( 4D v16.3)