4D v13.4Type |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v13.4
Type
|
Type ( campVar ) -> Resultado | ||||||||
Parámetro | Tipo | Descripción | ||||||
campVar | Campo, Variable |
![]() |
Campo o variable a probar | |||||
Resultado | Entero largo |
![]() |
Número de tipo de datos | |||||
El comando Type devuelve un valor numérico que indica el tipo del campo o de la variable que pasa en campVar.
4D ofrece las siguientes constantes predefinidas:
Constante | Tipo | Valor |
Is Alpha Field | Entero largo | 0 |
Is Real | Entero largo | 1 |
Is Text | Entero largo | 2 |
Is Picture | Entero largo | 3 |
Is Date | Entero largo | 4 |
Is Undefined | Entero largo | 5 |
Is Boolean | Entero largo | 6 |
Is Subtable | Entero largo | 7 |
Is Integer | Entero largo | 8 |
Is LongInt | Entero largo | 9 |
Is Time | Entero largo | 11 |
Array 2D | Entero largo | 13 |
Real array | Entero largo | 14 |
Integer array | Entero largo | 15 |
LongInt array | Entero largo | 16 |
Date array | Entero largo | 17 |
Text array | Entero largo | 18 |
Picture array | Entero largo | 19 |
Pointer array | Entero largo | 20 |
String array | Entero largo | 21 |
Boolean array | Entero largo | 22 |
Is Pointer | Entero largo | 23 |
Is String Var | Entero largo | 24 |
Is Integer 64 bits | Entero largo | 25 |
Is BLOB | Entero largo | 30 |
Is Float | Entero largo | 35 |
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).
• A partir de la versión 11 de 4D, Type devuelve el tipo (Is text o Text array cuando se aplica respectivamente a una variable Alfa o a un array Alfa (a partir de esta versión, no hay diferencia entre una variable Alfa y Texto).
Ver ejemplo del comando APPEND DATA TO PASTEBOARD.
Ver ejemplo del comando DRAG AND DROP PROPERTIES.
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)
En algunos casos, por ejemplo cuando se escribe código genérico, puede necesitar saber si un array es un array estándar independiente o una "fila" de un array 2D. En este caso, 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
Producto: 4D
Tema: Lenguaje
Número
295
Lista alfabética de los comandos
Modificado: 4D v11 SQL