lunes, 28 de octubre de 2019

INSTRUCCIONES DE ENTRADA Y SALIDA



@.. Say: El Comando @..Say le proporciona al usuario la posibilidad de presentar, mostrar o visualizar un campo, valor, dato o contenido de variable en una coordenada específica de pantalla. Se debe indicar la fila (0-38) y después la columna (0-225). Si se indica un valor mayor el programa envía un mensaje de error.
Si se necesita mostrar en pantalla más de una expresión, se deberá convertir todas las expresiones a carácter y luego  concatenarlas. De número a carácter usando STR( ) o de fecha a carácter usando DTOC( ).

Sintaxis: @ F,C Say [“Mensaje”][+] [Variable]
Ejemplos:
 @10,10 Say “Incluya su nombre”
 @15,20 Say Sueldo
 @20,20 Say “Total”+ str(Tot)
Explicación:
-          Presenta en la fila 10 columna 10 el literal Incluya su nombre
-          Presenta el contenido de la variable Sueldo en la fila 15 columna 20
-          Presenta en la fila 20 columna 20 la expresión Total y el valor numérico de la variable Tot pero convertida a carácter con str( ).

Transform( ) una expresión de cualquier tipo de dato (character, numeric, date, datetime,...) se convertirá a carácter, que se podrá concatenar a un mensaje de la sentencia @..say. El código de formato @R es un poco diferente que los demás. Le dice a VFP que lea una máscara de formato y la use para formatear la cadena resultante. Esto es útil para formatear datos numéricos o de caracteres que pueden requerir un formato específico, como valores de moneda, números de seguridad social y números de teléfono. 

El siguiente ejemplo muestra cómo usar Transform con @R y una máscara de formato para formatear un número de teléfono con código de área de la manera convencional.

Transform ("59372935521", "@R (999) 9-9999999") && El resultado es "(593) 7-2935521"

@..Get / Read: El comando Get permite ingresar, capturar o aceptar valores desde el teclado. El comando Read asigna los valores leídos a la variable o variables especificadas en la memoria del computador. Todo Get o grupo de Gets debe tener su correspondiente Read. Esto dos comandos se usan en la mayoría de los casos en combinación con el @..Say.
Sintaxis: @F,C Say [“Mensaje”] get Variable
                Read
Ejemplos:
@10,10 say “Introduzca su nombre “ Get Nombre
Read
@10,10 say “Incluya el monto de la venta “ Get Venta
@12,10 say “Indique el % de descuento “ Get Desc
Read

Picture: La cláusula picture permite establecer un formato (máscara) bien sea de entrada o de salida de los datos. El picture maneja distintas plantillas relacionadas con los diferentes tipos de datos que pueden ser incluidos.

Plantilla
Acción
A
Acepta solamente letras
9
Acepta exclusivamente dígitos y signos
!
Transforma todos los caracteres en mayúsculas
,
En los números indica la representa los miles
.
En los números indica la posición del punto decimal

Se pueden usar combinaciones de estas plantillas en un mismo picture.
Sintaxis: Picture “ plantilla(s)”
Ejemplos:
@ 5,10 say “ Incluya el promedio “ get Prom Pict “99.99”
@ 7,10 say “ Nombre del alumno “ get Nom Pict “@A!”

Explicación.
-          En la variable Prom se pueden almacenar solo dígitos y se ha establecido la posibilidad de especificar dos decimales.
-          En la variable Nom se puede escribir letras y se visualizan en mayúscula

Range: la cláusula range permite establecer o definir un rango de valores válidos para una variable numérica al momento de introducir datos por medio del teclado. Si el valor incluido sobrepasa o es menor al rango especificado, la ejecución del programa se detiene.
sintaxis: Range valor inicial, valor final
Ejemplos:
@ 5,25 say “Introduzca una calificación (de 1 a 20) ” get Nota Pict “99” range 1,20
@ 7,25 say “Introduzca edad del alumno “ get Edad Pict “99” range 6,18
Read
Explicación.
- El valor que puede ser asignado a la variable Nota va de 1 a 20
- El valor que toma la variable Edad va de 6 a 18

Valid: La cláusula  Valid permite validar / definir la entrada de datos a una variable character.
Sintaxis: Valid Variable$”items o datos válidos”
Ejemplo:
@ 5,5 say “Continua la ejecución del programa (S/N) “get Ru Pict “!” Valid Ru$”SN”
Explicación:
-          La variable Ru sólo acepta como posible contenido una S o una N, en caso que el usuario coloque otro carácter la ejecución del programa no continua

Color: Se usa para reportar los datos de una expresión con un color diferente al estándar.

COLOR
PROPÓSITO
I
U
X
W
N
W/N
B
BG
G
GR
GR+
R
RB
*
+
Video Inverso
Subrayado
Vacío (usado para el ingreso de claves)
Blanco
Negro
Video Normal
Azul
Cyan
Verde
Café
Amarillo
Rojo
Magenta
Parpadeante
Alta intensidad
Los Símbolos+ o * se deben utilizar después de especificar el color para la expresión, así: Color W/N+

Sentencia WAIT.- Permite detener la ejecución de un programa y espera el ingreso de información proveniente del teclado.
Sintaxis :
                     Wait [expresión] [Window][Timeout(expN)]
Donde:
expresión :    Es un mensaje ilustrativo para el usuario. Si se omite, FOXPRO enviará el mensaje por defecto, que es: "Press any key to continue...".

Window :    Se utiliza para enviar el mensaje dentro de una ventana de mensajes, en la esquina superior derecha.

Timeout expnEs el tiempo en segundos que estará la orden WAIT sin que se reciba información.
Ejemplos:
              Wait
               - Detiene la ejecución de un programa enviará el mensaje por defecto:
    Press any key to continue...

       Wait "Presione ENTER para seguir..."
        - Puede especificar un mensaje diferente

        Wait Window “Espere unos segundos..” Timeout 5

- Detiene la ejecución del programa por 5 segundos y enviará el mensaje Espere unos segundos..


martes, 1 de octubre de 2019

VISUAL FOXPRO COMO SGBD Y LENGUAJE DE PROGRAMACIÓN AN & OO


Visual Foxpro  es uno de los gestores de Bases de Datos relacionales más rápido y flexible del mercado, disponiendo de un complejo entorno de desarrollo totalmente orientado al objeto y altamente integrado en el sistema operativo Windows. Soporta interfaces MDI, barras de herramientas, ayuda sensible al contexto, múltiples fuentes, acceso a bibliotecas de enlace dinámico (DLL), etc.


El Foxpro en modo programación, es la forma como se puede almacenar un conjunto de órdenes en un archivo llamado programa, el cual posteriormente será ejecutado.

MODIFY COMMAND:   Permite crear y editar un programa en Foxpro (con extensión .PRG), o también cualquier archivo de texto.
Sintaxis:  :
                MODIFY COMMAND [D:][CAMINO]NOMBRE[.EXT]

Si la unidad y el camino no son especificados, se asumirá la unidad y camino por defecto.cuando se usa Modify Command, Foxpro busca el archivo indicado; si el archivo no existe entonces se crea uno, de lo contrario éste será editado. Cada vez que un archivo es grabado la versión previa es grabado en un archivo de seguridad con extensión .BAK. Al crear un programa, para grabarlo presionaremos las teclas [Ctrl]+[W]. Si desea salir sin grabar presionaremos la tecla [Esc].

DO: Permite ejecutar un programa anteriormente creado.
Sintaxis:  :
                DO [D:][CAMINO]NOMBRE[.EXT]

ESTRUCTURA DE UN PROGRAMA
Encabezados
Contiene información tal como: el nombre del programa, que hace, quién lo escribió, la fecha y una breve historia sobre su edición. Se antepone el * (asterisco) como parte de un comentario que no incide en el resultado final del programa.
Ejemplo:
                *PROGRAMA : STOCK.PRG
                *DESCRIPCION: CONTROL DE STOCK
                *AUTOR : LUIS LOZADA PORTAL
                *FECHA : 05 DE NOVIEMBRE DE 1998
                *--------------------------------------------------------------------------------------*
Área de Seteos
Define los comandos SET que el programa necesita para trabajar eficientemente. En esta parte se puede especificar las relaciones entre las bases de datos, activar los archivos indexados así como inicialización de las variables de memoria, etc.
Ejemplo:
                  SET STATUS off
                  USE personal INDEX codi
                   STORE 0 TO NUM

Para modificar el entorno de Foxpro y ajustarlo a nuestras necesidades, debemos usar las órdenes Sets denominadas también Seteos. La opción por defecto está en mayúscula.

SET STATUS on/OFF.-  Activa la línea de estado.
SET HEADING on/off.- Muestra el nombre de los campos cuando se usa las órdenes List o Display.
SET TALK on/off.- Muestra los mensajes interactivos que retornan órdenes como Replace, Index, Copy, Calculate, Locate, etc.
SET BELL on/off.- Emite un sonido cuando el cursor alcanza el final de un campo.
SET SCOREBOARD on/off.- Muestra el estado de las teclas CapsLock, Ins y Numlock en la fila cero cuando se desactiva la línea de estado.

DECLARACIÓN DE VARIABLES DE MEMORIA
Las variables son espacios de memoria que permiten almacenar datos temporalmente fuera de la estructura de la Base de Datos. Estos espacios de memoria poseen un nombre que los identifica y quedan definidos según el tipo dato que almacenan.

Orden STORE.- Permite asignar un tipo dato a un conjunto de variables.
Sintaxis:
                STORE [DATO] TO [LISTA DE VARIABLES]
Ejemplo:
Si desea inicializar con 0 a las variables N1, N2 y N3, procederíamos de la siguiente manera:
       N1=0
       N2=0
       N3=0
Mejor hubiera sido inicializar simultáneamente el 0 a éstas variables, así:
      STORE 0 TO N1, N2, N3

Ejemplos de creación de variables según su tipo:
CLASE="FOXPRO"  o     STORE “FOXPRO” TO CLASE
Variable cuyo nombre es CLASE de tipo carácter y cuyo contenido es "FOXPRO".

 NUM=0  o   STORE 0 TO NUM     
Variable cuyo nombre es NUM de tipo numérica y cuyo contenido es 0.

FEC={02/10/2019}   o   STORE {02/10/2019} TO FEC
Variable cuyo nombre es FEC de tipo fecha y almacena la fecha 02 de Octubre de 2019.
            
VAR=.T.   o  STORE .T. TO VAR
Variable cuyo nombre es VAR de tipo lógico con un estado de verdad .T..