4D v16.3

Sequence number

Home

 
4D v16.3
Sequence number

Sequence number 


 

Sequence number {( Tabellenname )} -> Funktionsergebnis 
Parameter Typ   Beschreibung
Tabellenname  Tabelle in Tabelle, für deren Datensätze eine fortlaufende Nummer vergeben wird
Ohne Angabe Haupttabelle
Funktionsergebnis  Lange Ganzzahl in Sequenznummer

Sequence number gibt die nächste Sequenznummer für Tabellenname zurück. Die Sequenznummer ist für jede Tabelle einmalig und wird für jeden neu angelegten Datensatz der Tabelle um 1 (*) erhöht.

(*) Aus Optimierungsgründen startet die Erhöhung nur beim ersten Aufruf von Sequence number oder über ein Feature mit Zugang zur Sequenznummer (siehe unten). Außerdem lässt sich die Nummerierung über den Befehl SET DATABASE PARAMETER verändern. Von daher lässt sich der zurückgegebene Wert nicht als Zählen von Datensätzen der Tabelle Tabellenname bewerten.

Die Nummerierung beginnt standardmäßig bei 1. Über den Befehl SET DATABASE PARAMETER können Sie die Nummerierung für eine Tabelle ändern.

Hinweis: Gibt es keinen aktuellen Datensatz und wurde die Nummerierung über den Befehl SET DATABASE PARAMETER geändert, wird diese Nummer zum Erstellen des nächsten Datensatzes reserviert, aber von der Funktion Sequence number nur zurückgegeben, wenn aktuell der Befehl SAVE RECORD aufgerufen wurde.   

Die Funktion Sequence number ist hilfreich, wenn:

  • nicht in Einer-Schritten hochgezählt werden soll.
  • die Nummer Teil eines Codes sein soll, z.B. einer Artikelnummer

Um eine Sequenznummer über eine Methode zu speichern, erstellen Sie ein Datenfeld vom Typ Lange Ganzzahl in der Tabelle und weisen die Nummer diesem Feld zu.

Die von dieser Funktion für Tabellenname zurückgegebene Sequenznummer ist dieselbe Nummer, die über die Option Autoincrement in den Feldeigenschaften des Inspektors oder über das Symbol #N als Standardwert für ein Feld dieser Tabelle in einem Formular zugewiesen wurde. Weitere Informationen dazu finden Sie im Abschnitt Standardwerte des Handbuchs 4D Designmodus.

Hinweis: Die automatische Erhöhung der Nummer lässt sich auch über das SQL Attribut AUTO_INCREMENT setzen.

Soll die Sequenznummer nicht mit 1 beginnen, müssen Sie lediglich die Differenz zu Sequence number hinzufügen. Folgende Methode lässt die Nummerierung der Datensätze mit 1000 beginnen:

 [Table1]Seq Field :=Sequence number([Table1])+999

Folgendes Beispiel ist Teil einer Formularmethode. Sie testet, ob es ein neuer Datensatz ist; z.B. ob die Rechnungsnummer ein leerer String ist. Ist der Datensatz neu, weist die Methode eine Nummer zu. Diese Nummer setzt sich aus zwei Teilen zusammen: Der Sequenznummer und dem Benutzerkürzel, das beim Öffnen der Datenbank eingegeben wird. Die Sequenznummer wird als fünfstelliger String formatiert:

 If([Invoices]Invoice No="")
  ` Ist Rechnungsnummer leer, erstelle neue Rechnungsnummer
  ` Rechnungsnummer ist String, der mit Benutzerkürzel endet.
    [Invoices]Invoice No:=String(Sequence number;"00000")+[Invoices]OpID
 End if



Siehe auch 

Datensatznummern
Record number
Selected record number

 
EIGENSCHAFTEN 

Produkt: 4D
Thema: Datensätze
Nummer: 244

This command can be run in preemptive processes

 
GESCHICHTE 

Geändert: 4D 2004.1

 
ARTIKELVERWENDUNG

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