Konventionen

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

Version 6.0


Dieser Abschnitt beschreibt die Konventionen, die Sie beim Benennen von Objekten in der 4th Dimension 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 und Kommas sind nicht erlaubt.

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

4th Dimension 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

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 4th Dimension Befehlen und Funktionen zu unterscheiden:

   QUERY([Vorlagen];[Vorlagen]ID=vNummer) ` 4th Dimension 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 4th Dimension 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)

Die Anordnung Tabellenname vor Datenfeldname in einer Tabelle, Objektmethode oder einem Formular ist zwar nicht unbedingt erforderlich, sie macht jedoch Ihre Programmierung übersichtlicher.

Untertabellen


Eine Untertabelle kennzeichnen Sie durch die vorangestellte Tabelle, zu der diese Untertabelle gehört. Der Untertabellenname folgt unmittelbar auf die Tabelle. Der Untertabellenname kann max. 31 Zeichen lang sein.

Beispiele:

   ALL SUBRECORDS ([People]Children)
   ADD SUBRECORD ([Clients]Phones;"Add One")
   NEXT SUBRECORD ([Letters]Keywords)

Eine Untertabelle wird wie ein Datenfeldtyp behandelt; demnach gelten dieselben Regeln wie für Datenfelder in einem Formular. Die Anordnung Tabelle vor Untertabelle in einer Tabelle, Objektmethode oder einem Formular ist zwar nicht unbedingt erforderlich, sie macht jedoch Ihre Programmierung übersichtlicher.

Unterdatenfelder


Ein Unterdatenfeld kennzeichnen Sie genauso wie ein Datenfeld. Nennen Sie zuerst die Untertabelle, zu der das Unterdatenfeld gehört. Dann folgt - getrennt durch einen Apostroph (') - der Unterdatenfeldname. Der Unterdatenfeldname kann max. 31 Zeichen lang sein.

Beispiele:

   [People]Children'First name:=Uppercase([People]Children'First Name)
   [Clients]Phones'Number:="408 555–1212"
   [Letters]Keywords'Word:=Capitalize text ([Letters]Keywords'Word)

Die Anordnung Untertabelle vor Unterdatenfeld in einer Tabelle, Objektmethode oder einem Formular ist zwar nicht unbedingt erforderlich, sie macht jedoch Ihre Programmierung übersichtlicher.

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 mit den Symbolen <> max. 30 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 mit den Symbolen max. 30 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 mit dem Dollarzeichen max. 30 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 mit den Symbolen <> max. 30 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 mit dem Dollarzeichen max. 30 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)

Tip: 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 80 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 80 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 80 Zeichen lang sein.

Hinweis: Vor 4D Version 6 wurde eine Menge im Client/Server-Betrieb auf dem Client-Rechner gehalten, der diese erzeugt hat. Ab Version 6 werden Mengen 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)
      ` Prozeßmengen
   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 80 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 80 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 max. 31 Zeichen lang sein.

Lokale Prozesse

Dem Namen eines lokalen Prozesses ist das Dollarzeichen ($) vorangestellt. Der Name des lokalen Prozesses kann ohne das Dollarzeichen max. 31 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
Untertabelle31[Employees]Kids
Unterdatenfeld31[Documents]Keyword'Keyword
Interprozessvariable<> + 29<>vlNextProcessID
Prozessvariable30vsCurrentName
Lokale Variable$ + 29$vlLocalCounter
Formular31"My Custom Web Input"
Interprozess-Array<> + 29<>apTables
Prozess-Array30asGender
Lokales Array$ + 29$atValues
Methode 31M_ADD_CUSTOMERS
Plug-in Routine31WR INSERT TEXT
Interprozessmenge<> + 80"<>Records to be Archived"
Prozessmenge80"Current selected records"
Client-Menge$ + 80"$Previous Subjects"
Temporäre Auswahl80"Employees A to Z"
Temporäre Interprozessauswahl<> + 80"<>Employees Z to A"
Lokaler Prozess$ + 31"$Follow Events"
Globaler Prozess31"P_INVOICES_MODULE"

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 4th Dimension das Objekt nach einem Prioritätensystem. Sie müssen selbst darauf achten, daß die Namen für Objekte in Ihrer Datenbank einmalig sind.

4th Dimension identifiziert Namen in Methoden in folgender Reihenfolge:

1. Datenfelder

2. Befehle

3. Methoden

4. Plug-In Routinen

5. Vordefinierte Konstanten

6. Variablen

Beispiel: In 4th Dimension gibt es den Befehl mit Namen Date. Hat eine Methode denselben Namen Date, sieht 4th Dimension 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 4th Dimension 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   4D Programmiersprache, Befehle nach Themen   4D Programmiersprache, Befehle alphabetisch   4D Programmiersprache, Konstanten nach Themen   Back   Previous   Next