Konventionen

4D - Documentation   Français   English   German   English   4D Programmiersprache, Befehle nach Themen   4D Programmiersprache, Befehle alphabetisch   4D Programmiersprache, Konstanten nach Themen   Back   Previous   Next

Version 11 (Geändert)


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 beginnen.

Der Name kann Buchstaben, Zahlen, Leerzeichen und den Unterstrich enthalten.

Punkte, Schrägstriche, Anführungszeichen und Kommas sind nicht erlaubt.

Zeichen für Operatoren, wie z.B. * und + sind nicht erlaubt.

4D ignoriert alle führenden Leerzeichen.

Groß- und Kleinbuchstaben werden nicht unterschieden, hallo = HALLO

Der Name kann Umlaute wie ä, ö, ü enthalten, sie werden jedoch nicht unterschieden, 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 Grossbuchstaben 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.

Tabellen


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

Beispiele:

   DEFAULT TABLE ([Orders])
   INPUT FORM ([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.

Ein Datenfeld darf nicht mit einem Unterstrich beginnen (_). Der Unterstrich ist für Plug-Ins reserviert. Findet 4D im Methodeneditor einen Unterstrich zu Beginn eines Datenfeldes, wird dieser gelöscht.

Beispiele:

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

Interprozessvariablen


Eine Interprozessvariable kennzeichnen Sie mit dem vorangestellten Symbol (<>) — 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 + Buchstabe v).

Eine Interprozessvariable kann ohne die vorangestellten Symbole max. 31 Zeichen lang sein.

Beispiele:

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

Prozessvariablen


Eine Prozessvariable kennzeichnen Sie durch ihren Namen. (Er kann nicht mit den Symbolen <> oder $ beginnen). Ein Prozessvariablenname kann max. 31 Zeichen lang sein.

Beispiele:

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

Lokale Variablen


Eine lokale Variable kennzeichnen Sie durch das vorangestellte Dollarzeichen ($). Der Name einer lokalen Variable kann ohne Dollarzeichen max. 31 Zeichen lang sein.

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 /Umschalttaste + Buchstabe v).

Der Name einer Interprozessvariablen kann ohne die vorangestellten Symbole max. 31 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 max. 30 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 max. 31 Zeichen lang sein.

Beispiele:

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

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})}

Formulare


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")
   OUTPUT FORM([People]; "Output")
   DIALOG([Storage];"Note box"+String($vlStage))

Methoden


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 Statement
   APPLY TO SELECTION ([Employees];INCREASE SALARIES)
      ` Dieser Befehl erwartet einen Methodennamen
   ON EVENT CALL ("HANDLE EVENTS")
      ` Dieser Plug-In Befehl erwartet einen Methodennamen
   WR ON ERROR ("WR HANDLE ERRORS")

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")

Plug-In Befehle (Externe Prozeduren, Funktionen und Bereiche)


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

Beispiele:

   WR BACKSPACE  (wrArea; 0)
   $spNewArea:=SP New offscreen area

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 + Buchstabe 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)

Temporäre Auswahlen


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 + Buchstabe 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")

Prozesse


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")

Zusammenfassung der Namenskonventionen


TypMax. LängeBeispiel
Tabelle31[Invoices]
Datenfeld31[Employees]Last Name
Interprozessvariable<> + 31<>vlNextProcessID
Prozessvariable31vsCurrentName
Lokale Variable$ + 31$vlLocalCounter
Formular31"My Custom Web Input"
Interprozess-Array<> + 31<>apTables
Prozess-Array31asGender
Lokales Array$ + 30$atValues
Methode 31M_ADD_CUSTOMERS
Plug-in Routine31WR INSERT TEXT
Interprozessmenge<> + 255"<>Records to be Archived"
Prozessmenge255"Current selected records"
Client-Menge$ + 255"$Previous Subjects"
Temporäre Auswahl255"Employees A to Z"
Temporäre Interprozessauswahl<> + 255"<>Employees Z to A"
Lokaler Prozess$ + 255"$Follow Events"
Globaler Prozess255"P_INVOICES_MODULE"
Semaphore255"mysemaphore"

Namenskonflikte beheben


Hat ein spezifisches Objekt denselben Namen wie ein bereits benannter anderer Objekttyp (zum Beispiel, ein Datenfeld mit Namen Person und eine Variable mit demselben Namen Person) identifiziert 4D das Objekt nach einem Prioritätensystem. Sie müssen selbst darauf achten, daß die Namen für Objekte in Ihrer Datenbank einmalig sind.

4D identifiziert Namen in Methoden 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, sieht 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 dem Befehl Date zu benutzen.

Referenz

Datentypen, Einführung in Arrays, Konstanten, Methoden, Operatoren, Variablen, Zeiger.


4D - Documentation   Français   English   German   English   4D Programmiersprache, Befehle nach Themen   4D Programmiersprache, Befehle alphabetisch   4D Programmiersprache, Konstanten nach Themen   Back   Previous   Next