versión 11 (Modificado)
Type (campVar) Numérico
Parámetro | Tipo | Descripción | |
campVar | Campo | Variable | Campo o variable a probar | |
Resultado | Numérico | Número de tipo de datos |
Descripción
El comando Type devuelve un valor numérico que indica el tipo de campo o variable que usted pasa en campVar.
4D ofrece las siguientes constantes predefinidas:
Constante | Tipo | Valor |
Is Alpha Field | Entero largo | 0 |
Is String Var | Entero largo | 24 |
Is Text | Entero largo | 2 |
Is Real | Entero largo | 1 |
Is Integer | Entero largo | 8 |
Is LongInt | Entero largo | 9 |
Is Date | Entero largo | 4 |
Is Time | Entero largo | 11 |
Is Boolean | Entero largo | 6 |
Is Picture | Entero largo | 3 |
Is Subtable | Entero largo | 7 |
Is BLOB | Entero largo | 30 |
Is Undefined | Entero largo | 5 |
Is Pointer | Entero largo | 23 |
String Array | Entero largo | 21 |
Text Array | Entero largo | 18 |
Real Array | Entero largo | 14 |
Integer Array | Entero largo | 15 |
LongInt Array | Entero largo | 16 |
Date Array | Entero largo | 17 |
Boolean Array | Entero largo | 22 |
Picture Array | Entero largo | 19 |
Pointer Array | Entero largo | 20 |
Array 2D | Entero largo | 13 |
Notas:
Type devuelve 9 (Is LongInt) cuando se aplica a una variable de tipo gráfico.
A partir de la versión 11 de 4D, Type devuelve el tipo actual de un array cuando se aplica a una "fila" de un array 2D, en lugar de un Array 2D como antes (ver ejemplo 4).
Puede aplicar Type a campos, variables interproceso, variables proceso, variables locales y a los apuntadores sin referencia que hacen referencia a estos tipos de objetos. Puede aplicar Type a los parámetros ($1,$2..., ${...}), de un método de proyecto o a un resultado de una función ($0).
Ejemplos
1. Ver ejemplo del comando APPEND DATA TO PASTEBOARD.
2. Ver ejemplo del comando DRAG AND DROP PROPERTIES.
3. El siguiente método de proyecto borra una parte o la totalidad de los campos del registro actual de la tabla a la cual apunta el puntero pasado como parámetro. Hace esto sin borrar o cambiar el registro actual:
` Método de proyecto BORRAR REGISTRO ` BORRAR REGISTRO ( Puntero {; Entero largo } ) ` BORRAR REGISTRO ( -> [Tabla] { ; Tipo de valores } ) C_POINTER ($1) C_LONGINT ($2;$vlTipoVal) If (Count parameters>=2) $vlTipoVal:=$2 Else $vlTipoVal:=0xFFFFFFFF End if For ($vlCampo;1;Count fields($1)) $vpCampo:=Field(Table($1);$vlCampo) $vlTipoCampo:=Type($vpCampo->) If ( $vlTipoVal?? $vlTipoCampo ) Case of : (($vlTipoCampo =Is Alpha Field)|($vlTipoCampo =Is Text)) $vpCampo->:="" : (($vlTipoCampo =Is Real)|($vlTipoCampo=Is Integer)|($vlTipoCampo =Is LongInt)) $vpCampo->:=0 : ($vlTipoCampo =Is Date) $vpCampo->:=!00/00/00! : ($vlTipoCampo =Is Time) $vpCampo->:=?00:00:00? : ($vlTipoCampo =Is Boolean) $vpCampo->:=False : ($vlTipoCampo =Is Picture) C_PICTURE($vgImagenVacia) $vpCampo->:=$vgImagenVacia : ($vlTipoCampo =Is Subtable) Repeat ALL SUBRECORDS($vpCampo->) DELETE SUBRECORD($vpCampo->) Until(Records in subselection($vpCampo->)=0) : ($vlTipoCampo =Is BLOB) SET BLOB SIZE($vpCampo->;0) End case End if End for
Después de implementar este método de proyecto en su base de datos, puede escribir:
` Borrar todo el registro actual de la tabla [Cosas por hacer] BORRAR REGISTRO (->[Cosas por hacer]) ` Borrar los campos de tipo Texto, BLOB e Imagen del registro actual de la tabla [Cosas por hacer] BORRAR REGISTRO(->[Cosas por hacer]; 0 ?+ Is Text ?+ Is BLOB ?+ Is Picture ) ` Borrar la totalidad del registro actual de la tabla [Cosas por hacer] excepto los campos Alfa BORRAR REGISTRO (->[Cosas por hacer]; -1 ?- Is Alpha Field )4. En algunos casos, por ejemplo cuando se escribe código genérico, usted puede necesitar saber si un array es un array estándar independiente o una "fila" de un array 2D. En este caso, usted puede utilizar el siguiente código:
ptrmiArr:=->miArr{6} ` ¿Es miArr{6} la fila de un array 2D? RESOLVE POINTER (ptrmiArr;varNombre;numTabla;numCamp) If (varNombre#"") $ptr:=Get pointer (varNombre) $eltipo:=Type($ptr->) ` Si miArr{6} es una fila de un array 2D, $eltipo es igual a 13 End if
Ver también