Variables

4D - Documentation   Français   English   German   Español   English   4D v11 SQL, Comandos por temas   4D v11 SQL, Lista alfabética de comandos   4D v11 SQL, Constantes por temas   Regresar   Anterior   Siguiente

versión 11 (Modificado)


Los datos en 4D pueden almacenarse de dos maneras diferentes. Los campos almacenan los datos en el disco, de manera permanente; las variables almacenan los datos en memoria, de manera temporal.

Cuando define su base 4D, usted especifica los nombres y tipos de campos que quiere utilizar. Es prácticamente lo mismo para las variables—usted también les da diferentes nombres y tipos.

Los siguientes tipos de variables corresponden a cada uno de los tipos de datos:

Alfa(*) o texto: cadena alfanumérica de hasta 2GB de texto

Entero: número entero entre -32768 y 32767

Entero largo: número entero entre -2^31 y (2^31)-1

Real: número real entre ±1.7y±308 (15 dígitos)

Fecha: fecha entre 1/1/100 y 31/12/32767

Time: hora entre 00:00:00 y 596000:00:00 (segundos desde la media noche)

Booleano: Verdadero o Falso

Imagen: toda imagen Windows o Macintosh

BLOB (Objeto Binario Largo): Series de bytes hasta de 2 GB de tamaño

Puntero: un puntero hacia una tabla, campo, variable, Array, o elemento de Array

(*) En modo Unicode, los tipos de variable Alfa y Texto son idénticos. En modo no Unicode (modo compatibilidad), un Alfa es una cadena alfanumérica fija de hasta 255 caracteres.

Puede visualizar las variables (excepto punteros y BLOB) en la pantalla, introducir datos en ellas, e imprimirlas en informes. De estas formas, las variables editables y no editables se comportan como campos, y los mismos controles integrados están disponibles cuando las crea:

Formatos de salida

Validación de datos, tales como filtros de entrada y valores por defecto

Filtros de caracteres

Listas de selección (listas jerárquicas)

Valores editables y no editables

Las variables también pueden servir para:

controlar botones (botones, casillas de selección, botones radio, botones 3D, etc.)

controlar termómetros, reglas y dials

controlar áreas de desplazamiento, menús pop-up, y listas desplegables

controlar listas y menús jerárquicos

controlar las rejillas de botones, pestañas, botones de imagen, etc.

visualizar los resultados de cálculos que no necesitan guardarse.

Crear variables


Usted puede crear variables simplemente utilizándolas; no necesita definirlas formalmente como lo hace con los campos. Por ejemplo, si quiere crear una variable que contenga la fecha actual más 30 días, sólo tiene que escribir:

   MiFecha:=Current date+30

4D crea MiFecha y contiene la fecha que usted necesita. La línea de código se lee "MiFecha es igual a la fecha actual más 30 días." Puede utilizar MiFecha cada vez que la necesite en su base. Por ejemplo, podría necesitar guardar los datos de la variable en un campo del mismo tipo:

   [MiTabla]MiCampo:=MiFecha

Sin embargo, generalmente es recomendable definir explícitamente el tipo de una variable. Para mayor información sobre la declaración de variables en una base, consulte la sección Comandos del Compilador.

Asignar valores a las variables


Puede dar valores a las variables y recuperarlos. Dar un valor a una variable se llama asignar un valor a una variable y se hace con el operador de asignación (:=). El operador de asignación también se utiliza para asignar valores a los campos.

El operador de asignación es el primer medio para crear una variable y darle un valor. Usted escribe el nombre de la variable que quiere crear al lado izquierdo del operador de asignación. Por ejemplo:

   MiNúmero:=3

crea la variable MiNúmero y coloca el número 3 en ella. Si MiNúmero ya existe, sólo se coloca el número 3 en la variable.

Desde luego, las variables no serían muy útiles si no pudiera recuperar los valores que contienen. Una vez más, utilice el operador de asignación. Si necesita colocar el valor de MiNúmero en un campo llamado [Productos]Tamaño, basta con escribir MiNúmero a la derecha del operador de asignación:

   [Productos]Tamaño:=MiNúmero

En este caso, [Productos]Tamaño sería igual a 3. Este ejemplo es bastante sencillo, pero ilustra la forma fundamental en que los datos se transfieren de un lugar a otro utilizando el lenguaje.

Importante: no confunda el operador de asignación (:=) con el operador de comparación, igual (=). La asignación y la comparación son operaciones diferentes. Para mayor información sobre operadores de comparación, vea la sección Operadores.

Variables locales, proceso, e interproceso


Puede crear tres tipos de variables: variables locales, variables proceso, y variables interproceso. La diferencia entre los tres tipos de variables es su alcance, o los objetos para los cuales están disponibles.

Variables locales

Una variables local, como su nombre lo indica, es local a un método—accesible sólo dentro del método en el cual fue creada e inaccesible fuera de ese método. Una variable local a un método era llamada anteriormente "local en alcance." Las variables locales se utilizan para restringir una variable de manera que funciona sólo dentro del método.

Podría querer utilizar una variable local para:

Evitar conflictos de nombres con otras variables

Utilizar temporalmente los valores

Reducir el número de variables proceso

El nombre de una variable local siempre comienza con el signo dólar ($) y puede contener hasta 31 caracteres adicionales. Si introduce un nombre más largo, 4D lo trunca a la longitud apropiada.

Cuando trabaja en una base con muchos métodos y variables, con frecuencia se encuentra con que necesita utilizar una variable sólo dentro del método en el que está trabajando. Puede crear y utilizar una variable local en el método sin preocuparse por la existencia de otra variable con el mismo nombre en otro método.

Con frecuencia, en una base de datos, el usuario necesita información puntual. El comando Request puede obtener esta información. Muestra una caja de diálogo con un mensaje que le pide al usuario responder. Cuando el usuario introduce la respuesta, el comando devuelve la información que el usuario introdujo. Generalmente no es necesario conservar esta información en sus métodos por mucho tiempo. Esta es una forma típica de utilizar una variable local. Este es un ejemplo:

   $vsID:=Request("Por favor introduzca su número de identificación ID:")
   If (OK=1)
      QUERY ([Personas];[Personas]ID =$vsID)
   End if

Este método simplemente le pide al usuario introducir un número de identificación. La respuesta está ubicada en una variable local, $vsID, y luego busca el número de identificación que el usuario introdujo. Cuando el método termina, la variable local $vsID se borra de la memoria. Este funcionamiento está bien, porque la variable sólo se necesita una vez y sólo en este método.

Variables proceso

Una variable proceso está disponible sólo dentro de un proceso. Es accesible en el método de proceso y en cualquier otro método llamado dentro del proceso.

Una variable proceso no tiene un prefijo antes de su nombre y puede tener hasta 31 caracteres.

En modo interpretado, las variables se mantienen dinámicamente, son creadas y borradas de la memoria "rápidamente." En modo compilado, todos los procesos que usted crea (procesos usuario) comparten la misma definición de variables proceso, pero cada proceso tiene su propia instancia para cada variable. Por ejemplo, la variable miVar es una variable en el proceso P_1 y otra en el proceso P_2.

Un proceso puede leer y escribir variables proceso de otros procesos utilizando los comandos GET PROCESS VARIABLE y SET PROCESS VARIABLE. Recomendamos restringir el uso de estos comandos a las situaciones para los cuales fueron creados en 4D:

Comunicación interprocesos en lugares específicos en su código

Gestión de interprocesos arrastrar y soltar

En cliente/servidor, comunicación entre los procesos en equipos cliente y los procesos guardados en ejecutados en el servidor.

Para mayor información, consulte la sección Procesos y la descripción de estos comandos.

Variables interproceso

Las variables interproceso están disponibles en toda la base y durante todos los procesos. Principalmente se utilizan para compartir información entre procesos.

El nombre de una variable interproceso siempre comienza con el símbolo (<>) — un signo "menor que" seguido por un signo "mayor que"— seguido por hasta 31 caracteres.

Nota: esta sintaxis puede utilizarse en Windows y Macintosh. Además, en Macintosh únicamente, puede utilizar el símbolo diamante (Opción-Mayús-V en teclado en castellano).

En cliente/servidor, cada equipo (equipos cliente y servidor) comparten la misma definición de variables interproceso, pero cada equipo tiene una instancia diferente para cada variable.

Variables objeto en formularios


En el editor de formularios, el hecho de dar un nombre a un objeto activo—botón, botón radio, casilla de selección, área de desplazamiento, termómetro, etc. —crea automáticamente una variable con el mismo nombre. Por ejemplo, si crea un botón llamado MiBoton, también se crea una variable llamada MiBoton. Observe que este nombre de variable no es la etiqueta del botón sino el nombre del botón.

Las variables de objeto de formulario le permiten controlar y monitorear los objetos. Por ejemplo, cuando se hace clic en un botón, su variable toma el valor 1; de lo contrario está en 0. La variable asociada a un termómetro o dial le permite leer y cambiar los valores actuales. Por ejemplo, si arrastra un termómetro a un nuevo valor, el valor de la variable cambia para reflejar el nuevo valor. De la misma forma, si un método cambia el valor de la variable, el termómetro se dibuja nuevamente para mostrar el nuevo valor.

Para mayor información sobre variables y formularios, consulte el Manual de Diseño 4D y la sección Eventos de formulario.

Variables de sistema


4D mantiene un número de variables llamadas variables de sistema. Estas variables le permiten controlar muchas operaciones. Todas las variables sistema son variables de proceso, disponibles al interior de un solo proceso.

La variable de sistema mas importante es la variable sistema OK. Como su nombre lo indica, esta variable le dice si todo está bien en un proceso en particular. ¿Se guardó el registro? ¿Se completó la operación de importación? ¿El usuario hizo clic en el botón OK? La variable sistema OK toma el valor 1 cuando una tarea se completa correctamente, y 0 cuando ocurre lo contrario.

Para mayor información sobre variables sistema, consulte la sección Variables de sistema.

Ver también

Arrays, Condiciones y bucles, Constantes, Convenciones, Métodos, Operadores, Punteros, Tipos de datos.


4D - Documentation   Français   English   German   Español   English   4D v11 SQL, Comandos por temas   4D v11 SQL, Lista alfabética de comandos   4D v11 SQL, Constantes por temas   Regresar   Anterior   Siguiente