LENGUAJE VISUAL



Visual FoxPro
Visual FoxPro es un lenguaje de programación procedural, orientado a objetos que posee un Sistema Gestor de Bases de datos o Database Management System (DBMS) y Sistema administrador de bases de datos relacionales, producido por Microsoft.

CREATE DATABASE 

Crea una base de datos y la abre

"Parámetros"

Especifica el nombre de la base de datos que se va a crear.
Si SAFETY está establecido en ON y el nombre de la base de datos que especifica tiene la misma ruta de acceso y el mismo nombre que una base de datos existente, Visual FoxPro muestra un cuadro de diálogo de advertencia que le pide que especifique una ruta de acceso o un nombre nuevos para la base de datos.
Muestra el cuadro de diálogo Crear en el que puede especificar el nombre de la base de datos que desea crear.

" Ejemplo "
El ejemplo siguiente crea una base de datos llamada people. Se crea una tabla llamada friends y se agrega automáticamente a la base de datos. Se usa DISPLAY TABLES para mostrar las tablas de la base de datos y DISPLAY DATABASES para mostrar información acerca de las tablas de la base de datos.
CREATE DATABASE people
CREATE TABLE friends (FirstName C(20), LastName C(20))
CLEAR
DISPLAY TABLES  && Displays tables in the database
DISPLAY DATABASES  && Displays table information

CLOSE 

Cierra varios tipos de archivo
CLOSE [ALL | ALTERNATE | DATABASES [ALL] | DEBUGGER | FORMAT | INDEXES
   | PROCEDURE | TABLES [ALL]]

" Parámetros "

ALL
Cierra todas las bases de datos, tablas e índices abiertos en la sesión de datos actual y en todas las sesiones de datos inactivas y selecciona el área de trabajo 1. CLOSE ALL también cierra los archivos abiertos con las funciones de archivo de bajo nivel FCREATE( ) y FOPEN( ). CLOSE ALL no cierra un archivo abierto con SET PRINT.

CLOSE TABLES [ALL]

Cierra todas las tablas de la base de datos seleccionada actualmente. CLOSE TABLES cierra todas las tablas libres de todas las áreas de trabajo en caso de que no haya una base de datos abierta.
Incluya ALL para cerrar todas las tablas en todas las bases de datos y todas las tablas independientes. Todas las bases de datos permanecen abiertas.
CLOSE TABLES no debe ejecutarse cuando hay una transacción en progreso, porque Visual FoxPro generará un mensaje de error.

CLOSE ALL también cierra lo siguiente:
·         Diseñador de formularios
·         Administrador de proyectos
·         Diseñador de etiquetas
·         Diseñador de informes
·         Diseñador de consultas
CLOSE ALL no cierra lo siguiente:
·         La ventana Comandos
·         La ventana Depuración
·         Ayuda
·         La ventana Seguimiento


QUIT

Termina la Sesión actual de Visual FoxPro y devuelve el mando al Sistema Operativo
SALIR

" Observaciones "


Para Finalizar Una Sesión de Visual FoxPro, debe utilizar Siempre el comando QUIT. Si Apaga El equipo pecado ejecutar QUIT, sí pueden danar LOS Archivos abiertos Ÿ Perder Datos. Ademas, Florerias Dejar en el disco de Archivos Temporales de Trabajo Que normalmente sí eliminarían.

USE 
Abre una tabla y sus archivos de índice asociados, o una vista SQL

  " Parámetros "


Especifica el nombre de la tabla que se va a abrir. Puesto que los espacios en blanco son importantes en los nombres de archivo de Microsoft Windows 98 y posteriores, evite usar espacios adicionales en TableName. Si un nombre de tabla contiene espacios, escríbalo entre comillas (" " o ' ')
Para abrir una tabla fuera de la base de datos actual, califique la tabla con el nombre de la base de datos, con un signo de exclamación (!) para separar el nombre de la base de datos del nombre de la tabla. Si no califica una tabla con un nombre de base de datos, Microsoft Visual FoxPro sólo podrá abrir las tablas de la base de datos actual. Si el nombre de la base de datos, el nombre de la tabla o ambos contienen espacios, escriba el nombre de la base de datos y el nombre de la tabla entre comillas (" " o ' ')
Nota   Visual FoxPro no reconocerá correctamente un nombre de ruta de acceso si el nombre del disco o del directorio contiene un signo de exclamación (!).


APPEND 

Agrega uno o más registros nuevos al final de una tabla


 " Parámetros "

BLANK
Agrega un registro en blanco al final de la tabla activa. Visual FoxPro no abre ninguna ventana de edición cuando usted ejecuta APPEND BLANK.
Es posible modificar los nuevos registros con BROWSE, CHANGE o EDIT.

Ejemplo


El siguiente ejemplo utiliza APPEND BLANK para crear una tabla con 10 registros que contienen valores aleatorios y, a continuación, muestra los valores máximo y mínimo de la tabla.
CLOSE DATABASES
CREATE TABLE Random (cValue N(3))
FOR nItem = 1 TO 10  && Append 10 records
   APPEND BLANK
   REPLACE cValue WITH 1 + 100 * RAND( )  && Insert random values
ENDFOR
 
CLEAR
LIST  && Display the values
gnMaximum = 1  && Initialize minimum value
gnMinimum = 100  && Initialize maximum value
SCAN 
   gnMinimum = MIN(gnMinimum, cValue)
   gnMaximum = MAX(gnMaximum, cValue)
ENDSCAN
? 'The minimum value is: ', gnMinimum  && Display minimum value
? 'The maximum value is: ', gnMaximum  && Display maximum value



GO | GOTO

Coloca el puntero de registro en el número de registro especificado de una tabla
" Parámetros "

Especificael número de registro físico al que desea mover el puntero de registro. 
Puede omitir por completo GO o GOTO y especificar simplemente el número de
registro.Si especifica solamente el número de registro, podrá mover el puntero
solamente en el área de trabajo actual.

" Observaciones "

GO y GOTO pueden utilizarse indistintamente. Estos comandos actúan sobre la tabla del área de trabajo actual a menos que especifique otra área de trabajo con lacláusula IN.
" Ejemplo "
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'data\testdata')
USE products  && Opens Products table
USE customer IN 0  && Opens Customer table
GO BOTTOM IN products
CLEAR
? RECNO('products')
GO TOP
? RECNO( )     && Displays 1
GO 5
? RECNO( )     && Displays 5

EDIT 
Muestra campos para edición

" Parámetros "

Especifica los campos que aparecen en la ventana Modificar. Los campos se muestran en el orden especificado en FieldList. En la lista de campos puede incluir campos de otras tablas relacionadas. Cuando incluya un campo de una tabla relacionada, incluya delante del nombre de campo su alias de tabla y un punto.

Si omite FIELDS, se muestran todos los campos de la tabla en el orden en el que aparecen dentro de laestructura de la tabla.

La lista de campos puede especificar cualquier combinación de campos o campos calculados, incluyendo los pertenecientes a tablas abiertas en otras áreas de trabajo. La sintaxis de la lista de campos es la siguiente:

" Ejemplo "

El ejemplo siguiente utiliza SET SKIP para crear una relación de uno a varios
entre dos tablas. Hay un único registro de la tabla (customer) para cada factura creada. La tabla secundaria (orders) contiene múltiples registros para cada registro de la tabla primaria.
Una vez creada la relación, se abre una ventana Modificar mostrando registros de ambas tablas.
CLEAR
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'data\testdata')
USE customer ORDER cust_id IN 0   && Parent table
USE orders ORDER cust_id IN 0  && Child table
SELECT customer     && Back to parent work area
SET RELATION TO cust_id INTO orders     && Establish relationship
SET SKIP TO orders  && One-to-many relationship
WAIT WINDOW 'Scroll to see shipping dates for each customer' NOWAIT
EDIT FIELDS customer.cust_id :H='Customer Number', ;
   customer.city :H='Customer City', orders.shipped_on
 BROWSE
Abre la ventana Examinar y muestra los registros de la tabla en uso o seleccionada

" Parámetros "

Especifica los campos que aparecerán en la ventana Examinar. Los campos se muestran en el orden especificado en FieldList.
En la lista de campos puede incluir campos de otras tablas relacionadas. Cuando
incluya un campo de una tabla relacionada, incluya delante del nombre de campo su alias de tabla y un punto.Si omite FIELDS, se mostrarán todos los campos de la tabla en el orden en que aparecen en la estructura de la tabla.
LIST 
Muestra continuamente información de tabla o de entorno
" Observaciones "
Estos comandos LIST son idénticos a los comandos DISPLAY, excepto en las diferencias siguientes:
ADDITIVE
Anexa al final del archivo especificado. Si omite ADDITIVE, se sobrescribirá el
archivo con el valor de la expresión.
El alcance
  • predeterminado de LIST es ALL (todos los registros).
  • LIST no le avisa después de llenar con información la ventana principal de Microsoft Visual FoxPro o una ventana definida por el usuario.
  • LIST no muestra los registros marcados para su eliminación cuando SET DELETED esté establecido en ON.
Para obtener más información acerca de los comandos LIST, vea los comandos DISPLAY 
correspondientes.

DISPLAY
Muestra información acerca de la tabla activa en la ventana principal de Visual FoxProo en la ventana  definida por el usuario.

" Observaciones "


DISPLAY muestra el contenido de los registros y los resultados de las expresiones de la tabla actual. Si existe más información de la que cabe en la ventana, se presentará la primera pantalla de información y Visual FoxPro se detendrá. Presione cualquier tecla o haga clic en cualquier parte para ver la siguiente pantalla de información. DISPLAY es similar a LIST, con la diferencia de que LIST muestra la misma información con un flujo continuo y sin detenerse.

DISPLAY puede utilizarse también para mostrar los resultados de expresiones, que pueden consistir en literales, variables de memoria, elementos de matrices, campos y campos memo. Se muestran los nombres de los campos y las expresiones a menos que SET HEADINGS esté establecido en ON.

" Ejemplo "

El ejemplo siguiente abre la tabla customer de la base de datos testdata. Se muestra
el contenido del primer registro.

CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'Data\testdata')
USE customer  && Opens Customer table
 
CLEAR
DISPLAY FIELD cust_id, company, contact OFF NEXT 10

 MODIFY STRUCTURE
Muestra el Diseñador de tablas, que permite modificar la estructura de una tabla
MODIFY STRUCTURE

" Observaciones "

En versiones anteriores de FoxPro, MODIFY STRUCTURE abría el cuadro de diálogo Estructura de la tabla.
Si no hay ninguna tabla abierta en el área de trabajo seleccionada actualmente, se
muestra el cuadro de diálogo Abrir, que permite elegir la tabla que se desea modificar.
Los cambios que puede efectuar en la estructura de una tabla incluyen agregar y eliminar campos, modificar el nombre, el tamaño y el tipo de datos de los campos, agregar, eliminar o modificar etiquetas de índice, y especificar el soporte de valores nulos en los campos.
También puede modificar la estructura de una tabla utilizando la interfaz. Para obtener
más información, vea Modificar la estructura de la tabla.
MODIFY COMMAND
Abre una ventana de edición de texto y le permite modificar o crear un archivo de
programa.
" Parámetros "
Especifica el nombre del archivo para el programa que se va a abrir o crear. Si no especifica una extensión para un nuevo archivo de programa, Visual FoxPro asigna automáticamente la extensión .prg. MODIFY COMMAND admite una estructura de archivo que contenga los caracteres comodín asterisco (*) e interrogación (?). Se abrirá una ventana de edición de texto para cada programa cuyo nombre coincida con la estructura de archivos.
Si omite el nombre del archivo, aparecerá una ventana de edición de texto para un archivo que inicialmente se llama Prog1.prg. Cuando cierre la ventana de edición de texto podrá guardar el archivo con un nombre diferente.
Muestrael cuadro de diálogo Abrir. Elija uno de los programas existentes o escriba el nombre de un programa nuevo que desee crear.
DELETE

Marca los registros que se van a eliminar
" Observaciones "
Los registros marcados para su eliminación no se eliminarán físicamente de la tabla hasta que se ejecute PACK. Los registros marcados para su eliminación pueden recuperarse (o quitar las marcas) con RECALL.

" Ejemplo "

El ejemplo siguiente abre la tabla customer de la base de datos testdata. Se utiliza DELETE paramarcar para eliminación todos los registros en los que el campo country contenga
USA. Se muestran todos los registros marcados para ser eliminados. Se utiliza RECALL ALL para quitar las marcas de todos los registros marcados para eliminar.
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'Data\testdata')
USE customer  && Opens Customer table
 
DELETE FOR country = 'USA'  && Mark for deletion
CLEAR
LIST FIELDS company, country FOR DELETED( ) && List marked records
RECALL ALL  && Unmark all records marked for deletion

REPORT
Muestra o imprime un informe bajo el control de un archivo de definición de informe
creado con MODIFY REPORT o CREATE REPORT

" Parámetros "

Especifica el nombre del archivo de definición de informe que se va a imprimir. 
En esta versión de Visual FoxPro también se notifica este parámetro al cuadro de
diáogo C oldde impresión. Muestra el cuadro de diálogo Abrir, en el que puede elegir 
un archivo de informe.

zap 

Elimina todos los registros de la tabla actual y deja sólo la estructura de la tabla

     "Ejemplo"
 ZAP [IN nWorkArea | cTableAlias]


Pack 
Borra definitivamente todos los registros marcados para eliminar de la tabla actual y reduce el tamaño de un archivo memo asociado a la tabla.

" Ejemplo "

PACK [MEMO] [DBF] [Tablename ] [IN nWorkarea | cTableAlias]



Locate

Busca secuencialmente en la tabla el primer registro que coincida con la expresión lógica especificada.



" Ejemplo "
LOCATE [FOR lExpression1] [Scope] [WHILE] [NOOPTIMIZE]
   [IN nWorkArea | cTableAlias]


go top


Sitúa el puntero de registro en el primer registro de la tabla. 


                               


go bottom



Sitúa el puntero de registro en el último registro de la tabla. 



¿que es la programación estructurada?
La programación estructurada es un paradigma de programación orientado a mejorar la claridad, calidad y tiempo de desarrollo de un programa de computadora, utilizando únicamente subrutinas y tres estructuras:secuencia, selección (if y switch) e iteración (bucles for y while),considerando innecesario y contraproducente el uso de la instrucción de transferencia incondicional (GOTO), que podría conducir a "código espagueti", que es mucho más difícil de seguir y de mantener, y era la causa de muchos errores de programación.

¿Que es la programación orientada a objetos?

La programación orientada a objetos o POO, es un paradigma de programación que usa los objetos en sus interacciones, para diseñar aplicaciones y programas informáticos. Está basado en varias técnicas, incluyendo.
  • herencia
  • cohesión
  • abstracción
  • polimorfismo
  • acoplamiento
  • encapsulamiento.
¿Que es un formulario?
Un formulario es una clase contenedora. una colección de una o mas paginas que se comporta como una ventana o un cuadro de dialogo estándar. un formulario contiene controles para mostrar y modificar datos. los formularios pueden estar contenidos dentro de un conjunto de formularios.
¿Que es una etiqueta?
Guarda archivos de etiquetas (-lbx). Una etiqueta viene ser cualquiera de las entradas de indice contenidas en un archivo de indice compuesto.
¿Que es un cuadro de texto?
Crea un control TextBox, que se usa para almacenar una unica linea de texto que el usuario puede introducir o cambiar.

¿Que es un botón de comando?

Crea un control commandbutton, que se usa para ejecutar un comando.
¿Que es un objeto?
Son cada uno de los elementos que contiene un sistema o aplicación.
¿Que es un procedimiento?
Los procedimientos y funciones permiten mantener en un único lugar el código que utiliza con frecuencia y llamarlo a través de su aplicaciones siempre que lo necesite. Esto hace que su código sea mas fácil de leer y mantener, ya que en un procedimiento el cambio se realiza una sola vez, no varias veces como ocurre en un programa.


                   " EJERCICIOS  VISUAL FOXPRO "

1.- En este primer ejercicio vamos a escribir un programa que lea tres números y determine el numero mayor, el numero central y el numero menor. Debemos asumir que los tres números son siempre distintos. 

close all
clear
? "Programador: Maria Xochilt Morales Cruz"
? "Programador: Carlos Vasquez Alducin"                
?

input "Introduzca el valor de A?" to nA
input "Introduzca el valor de B?" to nB
input "Introduzca el valor de C?" to nC
If nA > nB then
nMay = nA
nMen = nB
ELSE 
nMay= nB
nMen= nB
Endif
If nC > nMay then
nCen = nMay 
nMAY = nC 
else 
If nC > nMen Then 
nCen = nC 
else 
nCen = nMen 
nMen = nC 
  endif
endif 
? "mayor =" + str (nMay) 
? "Central =" + str (nCen)
? "Menor =" + str (nMen)

2.- Un restaurante ofrece un descuento del 10% para consumos entre $30.00 y $50.00; un descuento del 20% para consumos mayores a $50.00; para todos los demás casos no se aplica ningún tipo de descuento. el ejercicio consiste en elaborar un programa que permita determinar el importe a pagar por el consumidor.


close all
clear
? "programador: Maria Xochilt Morales Cruz" 
? "Programador: Carlos Vásquez Alducin" 
?
Do While .T. 
  Input "consumo:" to nConsumo 
  if type ("nConsumo")="N"
     Exit
 Endif 
EndDo 
Do case 
   case nConsumo >=30 and nConsumo <=50
        nImporte = nConsumo * 0.9 
   case nConsumo >50 
        nImporte = nConsumo * 0.8
   Otherwise 
        nImporte = nConsumo 
Endcase 
?"Importe a pagar:" + str (nImporte) 
   


3.- El ejercicio consiste en escribir un programa que lea "n" enteros y calcule la suma total, la media aritmética, el maximo y el mínimo de los datos. 


close all 
clear 
? "Programador: Carlos Vásquez Alducin" 
? "Programador: Maria Xochilt Morales"
?
input "ingrese cantidad de numeros?" to nN 
declare avector (nN)
For nI = 1 To nN 
    input "numero [" + str(nI) + "]?" to avector (nI) 
Next
nMax = aVector [1]
nMix = aVector [1]
nSuma = 0
For nI = 1 to nN
nSuma = nSuma + aVector [nI]
If aVector [nI] > nMax then 
  nMax = aVector [nI]
 Endif
 if aVector [nI] < nMin Then
   nMin= aVector [nI]
 Endif
Next
nMedia=nSuma/nN
? "Suma =" + Str (nSuma)
? "Media =" + Str (nMedia,10,2)
? "Maximo=" + Str (nMax)
? " Minimo=" + Str (nMin) 


4.- A continuación vamos a escribir una función que reciba como argumento de entrada una cadena de caracteres y la devuelva en forma inversa, Por ejemplo si ingresa la cadena CORAZÓN deberá retornar NOZAROC.   




Close All
Clear

? "Programador: Carlos Vásquez Alducin" 
? "Programador: Maria Xochilt Morales"
?
Accept "Ingrese una cadena?" To cCadena
?"Cadena invertida="+CadInv(cCadena)
Function CadInv
Parameters cCadena
nN=Len(Alltrim(cCadena))
Declare cTemporal(nN)
For nI=1 To nN
cTemporal(nI)=SubStr(cCadena, nI, 1)
Next
cInvertida=""
For nJ=nN To 1 Step -1
cInvertida=cInvertida+cTemporal(nJ)
Next J
Return cInvertida


No hay comentarios:

Publicar un comentario