Version 6.0 Geändert
Type (FeldVar) Numerisch
Parameter | Typ | Beschreibung | |
FeldVar | Feld | Variable | Zu testendes Feld oder Variable | |
Funktionsergebnis | Numerisch | Datentypnummer |
Beschreibung
Die Funktion Type gibt einen Wert zwischen 0 und 30 zurück, der den in FeldVar übergebenen Typ des Datenfelds bzw. der Variablen angibt.
4th Dimension bietet folgende vordefinierten Konstanten:
Konstante | Typ | Wert |
Is Alpha Field | Lange Ganzzahl | 0 |
Is String Var | Lange Ganzzahl | 24 |
Is Text | Lange Ganzzahl | 2 |
Is Real | Lange Ganzzahl | 1 |
Is Integer | Lange Ganzzahl | 8 |
Is LongInt | Lange Ganzzahl | 9 |
Is Date | Lange Ganzzahl | 4 |
Is Time | Lange Ganzzahl | 11 |
Is Boolean | Lange Ganzzahl | 6 |
Is Picture | Lange Ganzzahl | 3 |
Is Subtable | Lange Ganzzahl | 7 |
Is BLOB | Lange Ganzzahl | 30 |
Is Undefined | Lange Ganzzahl | 5 |
Is Pointer | Lange Ganzzahl | 23 |
String array | Lange Ganzzahl | 21 |
Text array | Lange Ganzzahl | 18 |
Real array | Lange Ganzzahl | 14 |
Integer array | Lange Ganzzahl | 15 |
LongInt array | Lange Ganzzahl | 16 |
Date array | Lange Ganzzahl | 17 |
Boolean array | Lange Ganzzahl | 22 |
Picture array | Lange Ganzzahl | 19 |
Pointer array | Lange Ganzzahl | 20 |
Array 2D | Lange Ganzzahl | 13 |
Hinweis zur Kompatibilität: Bei Anwendung auf eine mit dem Befehl C_GRAPH deklarierte Variable des Typs Diagramm gab Typ in früheren Versionen von 4D den Wert 3 (Is Picture) zurück. Ab Version 6 gibt Typ dafür den Wert 9 (Is LongInt) zurück.
Sie können Typ anwenden auf Felder, Interprozessvariablen, Prozessvariablen, lokale Variablen, sowie dereferenzierte Zeiger auf diese Objekttypen.
Hinweis zu Version 6: Ab Version 6 können Sie Typ auch auf Parameter ($1,$2..., ${...}), Projektmethoden oder Funktionsergebnisse ($0) anwenden.
Beispiele
1. Siehe Beispiel zum Befehl APPEND TO CLIPBOARD.
2. Siehe Beispiel zum Befehl DRAG AND DROP PROPERTIES.
3. Folgende Projektmethode leert einige oder alle Felder des aktuellen Datensatzes der Tabelle mit einem als Zeiger übergebenen Parameter:
` Projektmethode EMPTY RECORD ` EMPTY RECORD ( Zeiger {; Lang } ) ` EMPTY RECORD ( -> [Tabelle] { ; Typ Flags } ) C_POINTER ($1) C_LONGINT ($2;$vlTypFlags) If (Count parameters>=2) $vlTypFlags:=$2 Else $vlTypFlags:=0xFFFFFFFF End if For ($vlField;1;Count fields($1)) $vpField:=Field(Table($1);$vlField) $vlFieldType:=Type($vpField->) If ( $vlTypeFlags ?? $vlFieldType ) Case of : (($vlFieldType=Is Alpha Field)|($vlFieldType=Is Text)) $vpField->:="" : (($vlFieldType=Is Real)|($vlFieldType=Is Integer)|($vlFieldType=Is LongInt)) $vpField->:=0 : ($vlFieldType=Is Date) $vpField->:=!00/00/00! : ($vlFieldType=Is Time) $vpField->:=?00:00:00? : ($vlFieldType=Is Boolean) $vpField->:=False : ($vlFieldType=Is Picture) C_PICTURE($vgEmptyPicture) $vpField->:=$vgEmptyPicture : ($vlFieldType=Is Subtable) Repeat ALL SUBRECORDS($vpField->) DELETE SUBRECORD($vpField->) Until(Records in subselection($vpField->)=0) : ($vlFieldType=Is BLOB) SET BLOB SIZE($vpField->;0) End case End if End for
Mit dieser Projektmethode in Ihrer Datenbank können Sie schreiben:
` Leere den gesamten aktuellen Datensatz der Tabelle [Dinge tun] EMPTY RECORD (->[Dinge tun]) ` Leere Text, BLOB und Bildfelder für den aktuellen Datensatz der Tabelle [Dinge tun] EMPTY RECORD (->[Dinge tun]; 0 ?+ Is Text ?+ Is BLOB ?+ Is Picture ) ` Leere den gesamten aktuellen Datensatz der Tabelle [Dinge tun] außer alphanumerische Felder EMPTY RECORD (->[Dinge tun]; -1 ?- Is Alpha Field )
Referenz