4D v14.3

Konventionen

Home

 
4D v14.3
Konventionen

Konventionen  


 

 

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.
  • 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 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”.

Hinweis: Dieses Symbol gilt für Windows und Macintosh. 

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

Beispiele:

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

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:=""

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 Wahl-/Umschalttaste + 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})}

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

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

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 + 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[Invoices]
Datenfeld31[Employees]Last Name
Interprozessvariable<> + 31<>vlNextProcessID
Prozessvariable31vsCurrentName
Lokale Variable$ + 31$vlLocalCounter
Formular31"My Custom Web Input"
Formularobjekt31"MyButton"
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"

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, dass 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 des Befehls Date zu benutzen.

 
EIGENSCHAFTEN 

Produkt: 4D
Thema: Grundbegriffe

 
SIEHE AUCH 

Datentypen
Einführung in Arrays
Konstanten
Methoden
Operatoren
Variablen
Zeiger

 
ARTIKELVERWENDUNG

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

Geerbt von : Konventionen ( 4D v11 SQL Release 6)