Guis del Usuario Revista Compus Prácticas FoxPro INTRODUCCION En este módulo daremos a conocer al estudiante el lenguaje de programación Visual Fox Pro 6.0. Se pretende familiarizar al alumno con el entorno de desarrollo de aplicaciones para base de datos. Visual Fox Pro pertenece a la familia Xbase lo que hace que su programación sea sencilla, estructurada y más fácil de entender tanto para programadores principiantes como programadores expertos. Es una potente herramienta orientada a objetos para la creación y administración de bases de datos y para el desarrollo de aplicaciones profesionales. Ofrece todo lo necesario para organizar la información en tablas, realizar consultas, crear bases de datos relacionales, programar aplicaciones, informes, etc. Prof. José de La Rosa Página 1
Realiza conferencias de Computación e Informática full Windows todas las versiones: xp, vista, windows seven OFFICE(word, excel, power point, access, utilitarios) Diseño Web( fireword, dreamweaver, flash, action script ) Diseño Grafico(corelDraw, Indesing, Photoshop) Visual Basic.net Marketing en Redes Sociales Internet blogs forum posicionamiento canales virtuales Manejo de reportes(Google, Analytcs) trafico portales web portales virtuales .Impacto asi Dinamicas en Oratoria. contcatanos: [email protected] movil: 51-997675681
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Guis del Usuario Revista Compus Prácticas FoxPro
INTRODUCCION
En este módulo daremos a conocer al estudiante el lenguaje de programación
Visual Fox Pro 6.0. Se pretende familiarizar al alumno con el entorno de desarrollo de
aplicaciones para base de datos.
Visual Fox Pro pertenece a la familia Xbase lo que hace que su programación sea
sencilla, estructurada y más fácil de entender tanto para programadores principiantes como
programadores expertos.
Es una potente herramienta orientada a objetos para la creación y administración de
bases de datos y para el desarrollo de aplicaciones profesionales. Ofrece todo lo necesario
para organizar la información en tablas, realizar consultas, crear bases de datos
relacionales, programar aplicaciones, informes, etc.
Prof. José de La Rosa Página 1
Guis del Usuario Revista Compus Prácticas FoxPro
VISUAL FOXPRO
Visual FoxPro es un gestor de base de datos, orientado a la programación de
objetos. Se dice esto porque utiliza objetos prediseñados, a la vez Visual FoxPro es una
aplicación que permite gestionar y manipular información organizada en una base de datos.
Puede elaborar consultas, informes, pantallas, menús y proyectos sobre una o varias
tablas.
Desarrolla aplicaciones en un ambiente orientado a objetos con características
cliente/servidor.
CONCEPTOS BÁSICOS:
Base de Datos: Una base de datos o banco de datos es un conjunto de datos pertenecientes
a un mismo contexto y almacenados sistemáticamente para su posterior uso. En este
sentido, una biblioteca puede considerarse una base de datos compuesta en su mayoría por
documentos y textos impresos en papel e indexados para su consulta.
Existen unos programas denominados sistemas gestores de bases de datos, abreviado
SGBD, que permiten almacenar y posteriormente acceder a los datos de forma rápida y
estructurada. Las propiedades de estos SGBD, así como su utilización y administración, se
estudian dentro del ámbito de la informática. Las Bases de datos se agrupan en tablas.
Tablas o entidades: Tabla en las bases de datos, se refiere al tipo de modelamiento de
datos, donde se guardan los datos recolectados por un programa. Su estructura general se
asemeja a la vista general de un programa de Hoja de cálculo.
Las tablas se componen de dos estructuras:
Campo: Corresponde al nombre de la columna. Debe ser único y además de tener un tipo
de dato asociado.
Registro: Corresponde a cada fila que compone la tabla. Allí se componen los datos y los
registros. Eventualmente pueden ser nulos en su almacenamientos.
En la definición de cada campo, debe existir un nombre único, con su tipo de dato
correspondiente. Esto es útil a la hora de manejar varios campos en la tabla, ya que cada
nombre de campo debe ser distinto entre sí.
A los campos se les puede asignar, además, propiedades especiales que afectan a los
registros insertados. El campo puede ser definido como índice o autoincrementable, lo cual
permite que los datos de ese campo cambien solos o sean el principal indicar a la hora de
ordenar los datos contenidos.
Cada tabla creada debe tener un nombre único en la cada Base de Datos, haciéndola
accesible mediante su nombre o su sinónimo (dependiendo del tipo de base de datos
elegida).
Ingreso al programa:
Haga clic en el botón de Inicio.
Elija Programas.
Luego Microsoft Visual FoxPro.
Luego el icono de Microsoft Visual FoxPro 6.0
Descripción del Entorno del Programa:
BARRA DE MENÚS: Contiene órdenes para.
Archivo: Abrir, guardar, cerrar, revertir, importar, exportar, imprimir y preparar
página, abrir archivos utilizados recientemente y salir de un archivo o de
Visual FoxPro.
Edición: Deshacer operaciones, seleccionar y editar texto, buscar y reemplazar
características; vínculos e información sobre el objeto.
Ver: Visualizar las barras de herramientas.
Prof. José de La Rosa Página 3
Barra de TítuloBarra de Menús
Barra de Herramientas
Ventana de Comandos
Barra de Estado
Guis del Usuario Revista Compus Prácticas FoxPro
Herramientas: Asistentes, ortografía, macros, examinador de clases, ventanas de
seguimiento y de depuración y opciones.
Programa: Ejecutar, cancelar, reanudar, suspender y compilar.
Proyecto: Nuevo, agregar, modificar, ejecutar, quitar y cambiar nombre de archivos;
incluir, establecer principal y editar descripción; información de proyecto,
errores y generar; limpiar proyecto.
Ventana: Visualizar ventanas.
Ayuda: Contenido, búsqueda de ayuda y soporte técnico.
BARRA DE HERRAMIENTAS: Posee íconos para los accesos directos.
VENTANA COMANDOS: Se puede introducir órdenes para realizar unas tareas
específicas.
EL ADMINISTRADOR DE PROYECTOS:
EL Administrador de proyectos está organizado de forma muy parecida a un archivador.
Consta de varias fichas, tales como: TODO, DATOS, DOCUMENTOS, CLASES,
CODIGO y OTROS. Estas fichas le proporcionan un rápido y fácil acceso a los objetos
que utilizará en el proyecto. Cuando se desarrolla una aplicación se utilizan las técnicas de
ratón “señalar y pulsar” o “arrastrar y colocar” para poder acceder y manipular los
componentes de la aplicación.
PASOS PARA CREAR UN PROYECTO:
- Desde el Menú de Archivo de Visual FoxPro, seleccione NUEVO
- Debajo del Botón de tipo de Archivo, selecciones PROYECTO
Prof. José de La Rosa Página 4
Guis del Usuario Revista Compus Prácticas FoxPro
- Pulse el botón NUEVO ARCHIVO
- Introduzca el nombre del proyecto.
- Pulse el Botón CREAR.
- Establezca la vía de acceso del Proyecto desde la ventana de Comandos con la orden
SET DEFAULT TO ejemplo: SET DEFAULT TO D:\VFP\PROYEC1
Una recomendación, cree un directorio para su aplicación y dentro de el, uno para
las tablas, otro para los informes, formularios y recursos (archivos BMP, librerías, etc.), es
importante mantener un orden, le ahorrara dolores de cabeza para ubicar un archivo, o
diferenciar cuales son externos (que deben acompañar al ejecutable, como son las tablas,
librerías, archivos BMP, etc.)
COMANDOS BÁSICOS PARA TRABAJAR CON PROYECTOS:
Create Project: Crea un nuevo Proyecto
Modify Project: Modifica la estructura del proyecto.
He aquí algunos de los elementos que se fijan en la configuración del sistema:
SAFETY = OFF && no avisa antes de sobrescribir archivos
Prof. José de La Rosa Página 5
Guis del Usuario Revista Compus Prácticas FoxPro
TALK= OFF && no despliega el progreso
ECHO= OFF && inicialmente desactiva el rastreo
DEBUG= ON && habilita el rastreo y la depuración
RESOURCE=FOXUSER && elige un archivo de recursos
RESOURCE=OFF && no se use hasta que se solicite
COMMAND= DO PROG && corre PROG al inicio
Otros comandos de configuración son:
SET CENTURY ON/OFF
SET CLOCK ON/OFF
SET DATE
SET DELETE ON/OFF
SET ECHO ON/OFF
SET SYSMENU
CREACIÓN DE UNA BASE DE DATOS:
En un proyecto, una base de datos se crea colocando la información en tablas con sus
respectivas relaciones utilizando de ventana de diseño.
Desde el administrador de proyectos, pulse la ficha DATOS.
- Desde la lista de apartados de datos seleccione BASE DE DATOS.
- Pulse el Botón NUEVO.
Prof. José de La Rosa Página 6
Guis del Usuario Revista Compus Prácticas FoxPro
- Escriba el Nombre de la nueva base de datos.
- Pulse el botón CREAR (Debe aparecer la Ventana de Diseño de la Base de Datos )
Al comenzar un nuevo proyecto, el generador estará vacío. Se deben crear las
tablas para almacenar la información en contenedor (Ventana de Diseño) de la Base de
Datos y Luego se establecen la relaciones entre cada una de ellas.
Comandos Básicos para el manejo de de una Base de Datos
Create Database Crea una nueva Base de Datos.Modify Database Modifica la estructura de la Base de Datos.Open Database Abre una Base de Datos guardada.Close Database Cierra la Base de Datos.
Descripción de los botones de la Barra de herramientas (Diseñador de Base de
Datos):
Crear una nueva tabla.
Agregar una tabla existente
Eliminar una tabla seleccionada
Modificar una tabla seleccionada
Prof. José de La Rosa Página 7
Contendedor de la Base de Datos
Barra de herramientas para BD
Guis del Usuario Revista Compus Prácticas FoxPro
Creación de Vistas remotas
Creación de Vistas locales
Editar Procedimientos almacenados en la Base de Datos
Creación de Conexiones con vistas remotas
Examinar el contenido la tabla (BROWSE)
Los nombres de las tablas deben ser de una a ocho caracteres de largo y deben tener la
extensión predeterminada .dbf (database file: archivo de Base de Datos)
CREACIÓN DE TABLAS:
Las tablas pueden agregarse a una base de datos utilizando dos herramientas : El Asistente
de Tablas o el Generador de Tablas. Para realizarlo seguirm los pasos siguientes:
Click en el botón de Nueva tabla, aparecerá la ventana Nueva Tabla.
Se selecciona Nueva Tabla, luego aparece la ventana de guardar el archivo,
seleccione el directorio y el nombre de la tabla y luego presione el boton de guardar.
Nos aparecerá la ventana del Diseñador de tablas:
Comandos básicos para el manejo d las tablas:
Create <Nombre> Crea una nueva tabla.Use <Nombre> Selecciona la tabla respectiva.Use <Nombre> Alias <Alias> Abre la tabla y selecciona el área de trabajo en la cual se
desea trabajar.Use Cierra las tablas en el área de trabajo activo.
El comando INDEX ON crea una archivo índice llamado persona.idx, el cual tendrá el
índice de el archivo persona.
Una mejor forma de crear un índice y en el cual Fox trabaja a una mejor capacidad es
creando un índice compuesto.
INDEX ON nombre TAG persona
De la forma anterior se crea un archivo índice persona.CDX.
También se pueden crear índices combinados con dos o más campos por ejemplo: INDEX
ON UPPER(LEFT(apellido,10) + LEFT(nombre,10)) TO nombre.
Consultas:
Las consultas son pedidos de información a Base de Datos. Se utilizan las consultas
cuando queremos realizar pedidos de datos a una base de datos.
Creando una consulta: Para crear una nueva consulta se puede de ingresar al menú
Archivo, luego seleccionar el submenú Nuevo, y de la ventana que nos muestra seleccionar
la opción Consulta, seguidamente de Nuevo Archivo.
Creación de Consultas Por Asistente
Paso 1 - Seleccionar campos.
Prof. José de La Rosa Página 16
Guis del Usuario Revista Compus Prácticas FoxPro
En este caso como las tablas ya están relacionadas, según las estructuras de los índices indicados, el paso siguiente es el Paso 3 de filtro de registro. En Valor Vamos a Poner un dato de la tabla que corresponde al Código.
Paso 4 - Ordenar registros
Paso 4a -Limitar registros 5.Finalizar
Guarda la consulta con el nombre: consulta1Informes:
Los informes son la representación gráfica de las consultas y tablas que posee una Base de
datos, utilice el Diseñador de informes para crear y modificar informes.
Para crear rápidamente un diseño sencillo de info.
me, elija Informe rápido del menú Informe. Informe rápido le solicita la entrada de los
De forma predeterminada, el Diseñador de informes muestra tres bandas: Encabezado de
página, Detalle y Pie de página. En la parte inferior de cada banda hay una barra
separadora. El nombre de la banda aparece en la barra gris junto a una flecha azul, que
indica que la banda está encima, no debajo, de la barra gris.
Puede agregar las siguientes bandas a su informe.
Banda Se imprime Contenido típico
Encabezado de
columna
Una vez por columna Título de columna
Pie de columna Una vez por columna Resumen, totales
Encabezado de
grupo
Una vez por grupo Precede los datos siguientes
Pie de grupo Una vez por grupo Valores calculados para grupos de datos
Título Una vez por informe Título
Fecha o número de página
Logotipo de la compañía
Cuadro alrededor del título
Resumen Una vez por informe Totales
Texto como Suma total
Regla:
El Diseñador de informes tiene una regla vertical y otra horizontal que puede utilizar para
colocar de forma más precisa los objetos en las bandas. Utilice las reglas junto con el
comando Ver del menú Mostrar posición para ayudarle en la colocación de los objetos.
La escala de la regla viene determinada por las configuraciones de medidas de su sistema. Puede cambiar de la escala predeterminada del sistema (pulgadas o centímetros) a píxeles desde dentro de Visual FoxPro. Si desea cambiar al valor predeterminado del sistema, cambie la configuración de medidas de su sistema operativo.
Usualmente se agrupa el código fuente en archivos de programa. Un archivo de programa
esta compuesto de varias sentencias, que incluyen comandos, funciones y estructuras de
control de flujo.
El compilador traduce el contenido de estos archivos de texto ASCII a código interpretado.
En cuanto el compilador ha traducido el código fuente crea un archivo con extensión .FXP
que es el que va a utilizar a partir de ese momento. Cada vez que el programador
Prof. José de La Rosa Página 19
Guis del Usuario Revista Compus Prácticas FoxPro
introduce algún cambio en el archivo .PRG el compilador compara la fecha de ambos
archivos y crea una nueva versión compilada del programa.
Haciendo el código legible:
Espacios en blanco: Significan áreas vacías dentro del código de programa, también
espacios, tabulaciones o líneas vacías.
Sangrado: Sangrar es la mejor manera de optimizar el código. Es una práctica
común sangrar dentro de comandos pares anidados, por ejemplo:
DO… ENDDO
IF… ENDIF
SCAN..ENDSCAN
DOCASE...ENDCASE
WITH…ENDWITH
Mayúsculas y minúsculas: Muchos programadores utilizan mayúsculas y
minúsculas para distinguir entre los elementos del programa; mayúsculas para los
comandos y minúsculas para las variables.
Comentarios: Los comentarios pueden existir en una línea precedidos por un
asterisco y después de una línea de código, si están separados de && consecutivos.
Continuar líneas largas de código: Puede continuar líneas largas de código en la
siguiente línea insertando un “;” al final de la línea.
Una de las técnicas más útiles en la programación son los encabezados de programa, por
ejemplo:
* Nombre del programa : nombre
* Autor : Héctor Hernández
* Propósito : Dibujar cuadros en la pantalla
* Fecha : 12/12/2001
Comandos de Asignación:
Para crear variables de memoria y darles valores al mismo tiempo, escriba lo siguiente:
Input: Imprime por pantalla un mensaje y me da la opción para capturar un valor en una
variable.
X=3
STORE “lunes” TO día
Para solamente crearlas:
Prof. José de La Rosa Página 20
Guis del Usuario Revista Compus Prácticas FoxPro
PUBLIC a, b, c
PRIVATE x, y, z
LOCAL nombre, trabaja
DIMENSION nombres(3)
Declaración de Variables.
Las variables temporales se pueden declarar utilizando los comandos anteriores,
únicamente, hay que tomar en cuenta la forma en que se van a declarar o escribir, como
ejemplo: Nom_Empleado; NomEmpleado, si son variables de memoria se le puede
anteponer una ‘m ó x’ de la forma siguiente, mNom_Empleado; xNom_Empleado,
también se pueden declarar variables haciendo saber el tipo de datos que maneja por
ejemplo: cNom_Empleado, nSueldo_Empleado; dFecha_Ingreso, etc.
Operadores:
Los operadores + y – son, por supuesto, usados para añadir y substraer números, pero
también se pueden usar en campos de caracteres. El operador más eslabona dos
expresiones de caracteres, campos o variables de memoria, de forma que Fred + Smith;
producirá: FredSmith. El operador menos quita espacio rezagado.
Operadores cíclicos y ramificaciones:
Las operaciones cíclicas y de ramificación son los mecanismos para crear la lógica de un
programa, ejemplo:
FOR I=1 TO 10
? I && Imprime los números del 1 al 10
ENDFOR
SELECT clientes
SCAN
? Clientes.nombre&&Lee un archivo desde el inicio hasta el final
ENDSCAN
SELECT clientes
GO TOP
DO WHILE NOT EOF()
? Clientes.nombre&& Lee un archivo desde el inicio hasta el final
SKIP
ENNDO
Prof. José de La Rosa Página 21
Guis del Usuario Revista Compus Prácticas FoxPro
Puede salir de estas construcciones cíclicas en cualquier momento mediante el comando:
EXIT.
La ramificación en VF es controlada con la construcción IF.. ENDIF, por ejemplo:
IF I >10
? [El contador excedió 10]
ENDIF
Los contadores se utilizan a menudo para salir de operaciones cíclicas:
L=1
DO WHILE L=LEN(nombrelista)
IF [CRUZ]$ nombrelista(L)
SEEK nombrelista(L)
IF nombre= [John]
DO prgnombre
LOOP
ENDIF
ENDIF
ENDDO
Se recomienda que cuando se utiliza un operador cíclico, un operador condicional, o
cualquier otro operador que abra y cierre una estructura se escriba el comando primero y
luego se realice el proceso, esto para no perderse en la programación.
Tipos de comandos
Vamos a dividir los comandos según su funcionalidad en los siguientes tipos:
1. Base de datos: Todos los que sirven para manipular bases de datos, tablas y
campos.
2. Entorno: Entorno del sistema operativo y de Visual Fox Pro.
3. Acceso compartido a datos: Acceso multiusuario a tablas y base de datos.
4. Entrada y salida: Los que permiten la interfaz entre la computadora y el usuario.
5. Programación: Los que tienen relación con el entorno de desarrollo de aplicaciones.
4. FORMULARIOS:
Creando un Formulario:
Click en: Archivo > Nuevo > ( ) Formulario > Nuevo archivo
Diseñador de formulario
Prof. José de La Rosa Página 22
Guis del Usuario Revista Compus Prácticas FoxPro
Conceptos básicos:
Objeto: Una instancia de una clase que combina datos y procedimientos. Por ejemplo, un
control de un formulario en ejecución es un objeto.
Formulario: Se utilizan para visualizar e introducir cualquier tipo de información y son el
medio de comunicación entre el usuario y los datos.
Propiedades: Un atributo de un control, campo u objeto de base de datos que se establece
para definir una de las características del objeto o un aspecto de su comportamiento. Por
ejemplo, la propiedad Visible afecta a la visibilidad en tiempo de ejecución de un control.
Puede cambiar los valores de las propiedades de objeto mediante la ventana Propiedades.
Evento: Una acción, reconocida por un objeto, para la cual puede escribir código de
respuesta. Los eventos pueden estar generados por una acción del usuario, como hacer clic
con el mouse o presionar una tecla, por código de programa o por el sistema, como ocurre
con los cronómetros.
Método: Una acción que un objeto es capaz de realizar. Por ejemplo, los cuadros de lista
tienen métodos llamados AddItem, RemoveItem y Clear para mantener el contenido de las
listas.
Barra de herramientas: Una serie de botones en los que se hace clic para realizar tareas
frecuentes. Las barras de herramientas pueden flotar en su propia ventana o bien puede
acopladas en los extremos superior, inferior o laterales de la ventana principal de Visual
FoxPro. Puede personalizar las barras de herramientas suministradas con Visual FoxPro,
Prof. José de La Rosa Página 23
Guis del Usuario Revista Compus Prácticas FoxPro
así como crear barras de herramientas propias mediante la clase de base ToolBar incluida
con Visual FoxPro.
BARRAS DE HERRAMIENTAS:
Nos muestra los controles básicos y disponibles del Visual FoxPro,
estos son llamados clases bases.
Tipos de Controles: Los controles son aquellos objetos que se
colocan en un formulario.
VENTANA DE PROPIEDADES: Nos permite editar
las propiedades de un formulario o sus objetos. La
ventana de propiedades se compone de dos partes, la
sección de controles ubicado en la parte superior, en el
cual dentro de una lista desplegable se encuentran todos
los objetos seleccionados.
En la parte inferior se encuentran las propiedades
existentes, las cuales se pueden dividir en fichas.
VENTANA DE CÓDIGO (SCRIPT):
Al hacer doble clic en un objeto determinado, se
muestra la ventana de código. En esta ventana es donde se escriben las sentencias propias
de Visual FoxPro para detallar la aplicación generada.
Objetos y propiedades básicas
Form
El formulario es un objeto de tipo contenedor.
Prof. José de La Rosa Página 24
Guis del Usuario Revista Compus Prácticas FoxPro
Los conjuntos de formularios acogen a uno o más formularios, o incluso barra de
herramientas. Ala hora de ejecutar el conjunto de formularios, se activan todos los
formularios definidos en el mismo.
Propiedad UsoCaption Título de la ventana o formaAutocenter Centra el formularioShowTips Para que se muestren los TooltipsClosable Visualiza el botón cerrar de la ventanaMaxButton Visualiza el botón maximizarMinButton Visualiza el botón minimizar ControlBox Visualiza el menú de control de la ventanaEventos o Métodos UsoInit Se dispara a la hora que se inicializan todos los objetos del
formularioLoad Se dispara antes que se inicialicen los objetos del formularios
(antes que el init)Destroy Se dispara al cerrar el formularioUnload Se dispara después de Destroy
Viñetas y cuadros de textoLas viñetas o Labels se utilizan para escribir etiquetas a los objetos.
Propiedad UsoCaption Título de la ventana o formaAlignment Especifica la alinación del textoName Nombre del objetoBackColor Color de fondoForeColor Color de la letra
Evento o Método UsoClick Se dispara al dar clic en el objetoMouseDown El evento MouseDown se desencadena al presionar un botón del
mouseMouseUp Ocurren cuando el usuario presiona (MouseDown) o suelta
(MouseUp) un botón del mouse
Los cuadros de texto sirven para capturar los datos de los campos.
Propiedades UsoControlSource Es la variable o nombre del campo al cual se hace referenciaValue Contenido de la variable o campo referenciado al ControlSourceVisible Si el control es visible al usuarioEnabled Si el control esta habilitado o noEvento o Método UsoClick Se dispara al dar clic en el objetoGotFocus Cuando el control toma el enfoque
Prof. José de La Rosa Página 25
Guis del Usuario Revista Compus Prácticas FoxPro
LostFocus Cuando el control pierde el enfoque
Botones de comandoUn control que está asociado a un comando. Cuando hace clic en el botón de comando en tiempo de ejecución, el comando asociado al botón se ejecuta.Propiedades UsoCaptio Etiqueta del comandoVisible Si el control es visible al usuarioEnabled Si el control esta habilitado
Evento o Método UsoClick Se dispara al dar clic en el objetoSetlFocus El cursor se va al objetoLostFocus Cuando el control pierde el enfoqueRefresh Refresca el objetoInit Se dispara a la hora que se se inicializa el objeto
Botones de opción y casillas de verificaciónUn control OptionButton muestra una opción que se puede activar o desactivar.
Propiedades UsoControlSource Es la variable o nombre del campo al cual hace referenciaValue Contenido de la variable o campo referenciado en
ControlSourceVisible Si el control es visible al usuarioEnabled Si el control esta habilitado o no
Evento o Método UsoInteractiveChange Se dispara cuando modificamos el campoInit Se dispara a la hora en que se inicializa el objetoClick Se dispara al dar click en el objetoValid Se dispara después de presionar Enter o Tab, se utiliza para
validarRefresh Refresca el objeto
Un control CheckBox muestra una X cuando está activado; la X desaparece cuando el control CheckBox se desactiva. Utilice este control para ofrecer al usuario una opción de tipo Verdadero o Falso o Sí o No. Puede usar controles CheckBox en grupos para mostrar múltiples opciones entre las cuales el usuario puede seleccionar una o más. También puede establecer el valor de CheckBox mediante programación con la propiedad Value.
Listas y cuadros combinadosLos cuadros de lista y los cuadros combinados presentan al usuario una lista de opciones. De forma predeterminada, las opciones se muestran verticalmente en una única columna, aunque también puede establecer múltiples columnas. Si el número de elementos supera a los que se pueden mostrar en el cuadro combinado o el cuadro de lista, aparecen automáticamente barras de desplazamiento en el control. El usuario puede entonces desplazarse por la lista hacia arriba o hacia abajo o de izquierda a derecha.
Prof. José de La Rosa Página 26
Guis del Usuario Revista Compus Prácticas FoxPro
Los cuadros de lista y los cuadros combinados son una manera efectiva de presentar al usuario gran cantidad de opciones en un espacio limitado.Propiedades UsoControlSource Variable a que hace referencia (campo donde se almacena el
valor de la lista)RowSource Tabla o query de los elementos de la listarowSourceType Tipo de la fuente (si es tabla o query)Visible Si el control es visible al usuarioEnabled Si el control esta habilitado o noBoundColumn Valor que retorna la lisa (número de la columna de Rowsource)BoundTo Especifica si el valor de la lista esta determinado por los valores
o por la propiedad ListIndex
Evento o Método UsoClick Se dispara al dar clic en el objetoSetlFocus El cursor se va al objetoLostFocus Cuando el control pierde el enfoqueRefresh Refresca el objetoInit Se dispara a la hora que se se inicializa el objeto
Cuadrícula:Un control que crea una cuadrícula y que le permite presentar los datos en un formato tabular. Los controles de tipo cuadrícula contienen encabezados de columna, columnas y controles de columna.
Propiedades UsoRecordSource Nombre de la tablaVisible Si el control es viisible al usuarioEnabled Si el control esta habilitado o noColumnCount Número de columnas del GrisDeleteMark Permite registro para borrar (Aparece en la parte izquierda del
Gris
Evento o Método UsoClick Se dispara al dar clic en el objetoSetlFocus El cursor se va al objetoLostFocus Cuando el control pierde el enfoqueRefresh Refresca el objetoInit Se dispara a la hora que se inicializa el objeto
Imágenes, controles OLE, timer, Marcos de páginaUn control que le permite incluir imágenes en un formulario.Hipervinculo con cualquier tipo de aplicación.Un control Timer puede ejecutar código a intervalos periódicos produciendo un evento Timer.Un marco de página es un objeto contenedor que contiene páginas. A su vez, las páginas contienen controles. Las propiedades pueden establecerse a nivel de marco de página, de página o de control.
Prof. José de La Rosa Página 27
Guis del Usuario Revista Compus Prácticas FoxPro
Uso de Clases
Los diseñadores ActiveX pueden proporcionar interfaces visuales para tareas que, de otro
modo, requerirían una gran cantidad de código. Por ejemplo, el diseñador UserConnection
incluido en la Edición Empresarial de Visual Basic proporciona herramientas visuales para
definir consultas de bases de datos complejas. En tiempo de ejecución, dichas consultas se
pueden invocar con muy poco código.
Similitudes entre los diseñadores ActiveX y los diseñadores integrados
Los diseñadores ActiveX son como los diseñadores de formularios en los siguientes
aspectos:
Los diseñadores ActiveX producen clases a partir de las cuales puede crear
objetos. Estas clases aparecen en la ventana Proyecto, igual que las clases de
formulario.
Las clases creadas con un diseñador ActiveX tienen sus propios módulos de
código, en los que puede escribir código para los procedimientos de evento
proporcionados por el diseñador.
Puede personalizar una clase si agrega propiedades, métodos y eventos a los
proporcionados por el diseñador ActiveX.
Los objetos creados a partir de las clases diseñadas pueden tener
características diferentes en tiempo de diseño y en tiempo de ejecución.
La ventana de diseño del diseñador ActiveX está totalmente integrada en el
entorno de desarrollo. Puede modificar su tamaño y configurarla de la misma forma
que las ventanas de diseño incorporadas.
Puede agregar al proyecto tantas instancias de un diseñador ActiveX como
considere necesario, de la misma forma que puede agregar tantos diseñadores de
formularios como quiera.
Prof. José de La Rosa Página 28
Guis del Usuario Revista Compus Prácticas FoxPro
Prof. José de La Rosa Página 29
Guis del Usuario Revista Compus Prácticas FoxPro
PRACTICAS VISUAL FOXPRO
PRACTICA BASE DE DATOS:Realizar las siguientes tablas para la base de datos Pizzería:
Para llevar a cabo la Práctica Realiza los Siguientes pasos:
1. Crea un nuevo Proyecto con el nombre Pizza2. en el administrador de proyectos en la Ficha Datos, Selecciona la opción
Databases, y después la opción Nuevo, para crear la base de datos con el nombre Pizzería.
3. En el diseñador de Base de datos da un clic en la opción Nueva tabla. y haz lo sig;
4. Guarda esta tabla con el nombre de Pizza
Prof. José de La Rosa Página 30
En la Ficha Índices, selecciona Clave_pizza como principal.
Guis del Usuario Revista Compus Prácticas FoxPro
5. Ahora deberás crear otra tabla nueva con los siguientes campos.
6. Guarda esta tabla con el nombre de tamaños.
7. Ahora deberás crear una tercera tabla con los datos siguientes:
8. Guarda esta tabla con el nombre de Venta.
9. por ultimo deberás crear otra tabla como sigue:
10. Esta tabla la guardas con el nombre factura
Prof. José de La Rosa Página 31
En la Ficha Índices, selecciona Clave_tamaño como principal
Guis del Usuario Revista Compus Prácticas FoxPro
11. Crea las relaciones entre las tablas de tal form que te queden de la siguiente manera:
12. Ahora debemos introducir los datos a las tablas, comenzaremos por la tabla Pizza y la llenaremos como sigue:
Clave_Pizza Clave_Tamaño Precioan ch $ 20.00an me $ 25.00an gr $ 30.00pe ch $ 60.00pe me $ 65.00pe gr $ 80.00ha ch $ 55.00ha me $ 60.00ha gr $ 68.00sa ch $ 63.00sa me $ 87.00sa gr $ 98.00
15. ahora crearemos una tabla a partir de una consulta, en la ventana explorador de proyectos en la pestaña datos selecciona consulta y después nuevo
16. Visual Fox te preguntara que tablas quieres agregar para la realización de tu consulta, para eso tu debes agregar las siguientes tablas: Tamaña, Venta y Pizza.
Prof. José de La Rosa Página 32
Guis del Usuario Revista Compus Prácticas FoxPro
17. Una vez con las tablas agregadas, en la ventana diseñador de consultas en la ficha campos, debemos escoger cuales son los campos que nosotros queremos que nos muestre la consulta, pues bien vamos a seleccionar los siguientes: Pizza.nombre, tamaño.tamaño, Venta.Precio, por ultimo agregaremos una expresión como campo para esto en la misma ventana busca la opción funciones y expresiones y aparecerá la ventana siguiente:
18. Cuando esta ventana aparezca lo primero que debemos de hacer es seleccionar de la parte funciones Cadena, la opción “texto”, Luego en la parte de abajo donde dice Desde tabla Selecciona la tabla Pizza, en el cuadro campos aparecerán los campos de la tabla pizza de ese cuadro da doble clic al campo clave_pizza, una vez esto hecho en el cuadro expresión deberá de aparecer el siguiente texto: “Pizza.cleve.pizza”, una ves con esto ve otra vez a la lista Cadena y ahora selecciona el símbolo +, el símbolo aparecerá dentro de las comillas, salte de las comillas y pon un guion(-), la expresión deberá quedar: “Pizza.cleve.pizza+”-, ahora con lo que ya vimos has que la expresión final quede de la siguiente forma, recuerda que para sacar los campo de Tamaño primero debes seleccionar la tabla tamaño de Desde tabla.
Prof. José de La Rosa Página 33
Guis del Usuario Revista Compus Prácticas FoxPro
19. Una vez que tengas la Expresión da un clic al botón aceptar y después un clic en Agregar. Te deberá quedar como en la pantalla siguiente:
20. Realizar consultas diferentes para la base de datos:
PRACTICAS CON PROGRAMACIÓN:Objetivos
Luego de completar este laboratorio, el estudiante será capaz de:
Identificar los elementos del entorno integrado de desarrollo de Microsoft Visual FoxPro 6.0.
Prof. José de La Rosa Página 34
Guis del Usuario Revista Compus Prácticas FoxPro
Implementar soluciones mediante programación clásica. Declarar y asignar valores tanto a las variables de memoria como a los arreglos. Analizar como es el flujo de control de un programa. Crear funciones y procedimientos definidos por el usuario.
ConsideracionesPara el desarrollo del presente laboratorio Ud. deberá crear una carpeta D:\P_VFP\
PROGRAMA, para guardar sus trabajos correspondientes a este laboratorio.
Aplicación Nº 1En este primer ejercicio vamos a escribir un programa que lea tres números enteros
y determine el número mayor, el número central y el número menor. Debemos asumir que los tres números son siempre distintos.
Para el desarrollo de la presente aplicación ingresar a Microsoft Visual FoxPro. En la Ventana de Comandos digite la siguiente orden:
Modify Command Aplicacion01
A continuación se debe presentar el Editor de programas. En dicha ventana proceda a ingresar el código que se indica:
Close AllClearInput “Ingrese el valor de A?” To nAInput “Ingrese el valor de B?” To nBInput “Ingrese el valor de C?” To nCIf nA > nB Then
nMay = nA nMen = nBElse
nMay = nB nMen = nAEndIfIf nC > nMay Then nCen = nMay nMay = nCElse
Para ejecutar su programa dar click en el botón Ejecutar ( ! ) de la Barra de herramientas Estándar, o realizar la combinación Ctrl. + E
Para volver a ejecutar su programa digitar la siguiente orden desde la Ventana de Comandos:
Do Aplicaion01
Aplicación Nº 2Un restaurante ofrece un descuento del 10% para consumos entre S/. 30.00 y S/.
50.00; un descuento del 20% para consumos mayores a S/. 50.00 nuevos soles; para todos los demás casos no se aplica ningún tipo de descuento. El ejercicio consiste en elaborar una programa que permita determinar el importe a pagar por el consumidor.
Para el desarrollo de la presente aplicación abrir una nueva ventana de edición e ingresar el siguiente código:
Close AllClearDo While .T.
Input “Consumo S/.” To nConsumoIf Type (“nConsumo”) = “N”
ExitEndIf
EndDoDo Case
Case nConsumo >= 30 And nConsumo <= 50nImporte = nConsumo * 0.9
Case nConsumo > 50nImporte = nConsumo * 0.8
OtherwisenImporte = nConsumo
EndCase? “Importe a pagar S/.” + Str(nImporte)
Aplicación Nº 3El ejercicio consiste en escribir un programa que lea “ n ” enteros y calcule la suma
total, la media aritmética, el máximo y el mínimo de los datos.
Para el desarrollo de la presente aplicación, de manera análoga que para los casos anteriores abrir una nueva ventana de edición e ingresar el siguiente código:
Close AllClearInput “Ingrese cantidad de números?” To nNDeclare aVector(nN)For nI = 1 To nN
Aplicación Nº 4A 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 se ingresa la cadena CORAZON deberá retornar NOZAROC.
Para el desarrollo de esta aplicación proceda de manera similar a los casos anteriores e ingresar el código que se muestra:
Close AllClearAccept “Ingrese una cadena?” To cCadena? “Cadena invertida =” + CadInv(cCadena)
Function CadInvParameters cCadenanN = Len(Alltrim(cCadena))Declare cTemporal(nN)For nI = 1 To nN
cTemporal(nI) = SubStr(cCadena, nI, 1)NextcInvertida = “”For nJ = nN To 1 Step -1
cInvertida = cInvertida + cTemporal(nJ)Next J
Return cInvertida
PRACTICAS CON FORMULARIOSObjetivos
Luego de completar este laboratorio, el estudiante será capaz de:
Implementar soluciones mediante programación orientada a objetos. Manejar las diferentes propiedades y eventos del formulario. Añadir controles a un formulario.
Prof. José de La Rosa Página 37
Guis del Usuario Revista Compus Prácticas FoxPro
Establecer las propiedades de los controles. Trabajar con procedimientos de eventos.
ConsideracionesPara el desarrollo del presente laboratorio Ud. deberá crear una carpeta D:\P_VFP\
FORMULARIO, para guardar sus trabajos correspondientes a este laboratorio.
Aplicación Nº 1Este ejercicio consiste en elaborar un formulario que permita leer un número entero
y visualice su tabla de multiplicar. Para construir la tabla de multiplicar vamos a utilizar un control cuadro de edición, el cual tiene propiedades similares a un cuadro de texto, pero permite escribir texto en líneas diferentes.
Para el desarrollo de esta aplicación, proceda a ubicar los siguientes controles en el formulario:
1 etiqueta1 caja de texto1 cuadro de edición1 botón de comandos
En seguida proceda a establecer las propiedades según se indica:
Form1Name FrmTablaCaption Tabla de multiplicarMaxButton .F.-FalsoMinButton .F.-Falso
Una vez establecidas las propiedades de la interfaz, proceda a ingresar el código que se muestra a continuación:
Objeto: FrmEditor Procedimiento: Init
Thisform.CboFuente.AddItem(“Arial”)Thisform.CboFuente.AddItem(“Arial Black”)Thisform.CboFuente.AddItem(“Courier New”)Thisform.CboFuente.AddItem(“Garamond”)Thisform.CboFuente.AddItem(“Impact”)Thisform.CboFuente.AddItem(“MS Sans Serif”)Thisform.CboFuente.AddItem(“Technical”)Thisform.CboFuente.AddItem(“Times New Roman”)For nI = 8 To 20 Step 2
Boton Eliminar Procedimiento:ClickMensaje= MESSAGEBOX(“Desea eliminar el Registro”,4+32+256,”Eliminar”)Do Case
Case mensaje=6DeletePackGo TopThisform.refresh
Case mensaje=7Thisform.refresh
EndCase
Boton Agregar Procedimiento:Click*Habilite todas las cajas de texto con la propiedad Enabled y muestre el boton Guardar con *la propiedad Visible Ejm: *Thisform.txtcod_empleado.enabled=.t.*Thisform.cguardar.visible=.t.Go BottomThisform.refreshAppend blankThisform.refresh
Boton Guardar Procedimiento:ClickMensaje= MESSAGEBOX(“Desea Guardar el Registro”,4+32+256,”Guardar”)Do Case
Case mensaje=6Thisform.refresh
Case mensaje=7Delete Pack
EndCase*Desabilite todas las cajas de texto con la propiedad Enabled y oculte el Botón Guardar *con la propiedad Visible Ejm:*Thisform.txtcod_empleado.enabled=.f.*Thisform.cguardar.visible=.f.
Thisform.refresh
Boton Editar Procedimiento:Click*Habilite todas las cajas de texto con la propiedad Enabled y muestre el boton Guardar *Cambios con la propiedad Visible Ejm: *Thisform.txtcod_empleado.enabled=.t.*Thisform.cguardar.cambios.visible=.t.
Mensaje= MESSAGEBOX(“Desea Guardar el Registro”,4+32+256,”Guardar”)Do Case
Case mensaje=6Thisform.refresh
Case mensaje=7
Prof. José de La Rosa Página 45
Guis del Usuario Revista Compus Prácticas FoxPro
Delete Pack
EndCaseThisform.refresh
Boton Guardar Camhios Procedimiento:Click*Desabilite todas las cajas de texto con la propiedad Enabled y oculte el Botón Guardar *Cambios con la propiedad Visible Ejm:*Thisform.txtcod_empleado.enabled=.f.*Thisform.cguardarcambios.visible=.f.Thisform.refresh
Laboratorio Nº 02Realizaremos el siguiente formulario de Facturación, para ello las indicaciones se encuentran en la parte inferior:
Carguemos Visual FoxPro
1. Para simular una Entidad vamos a crear las siguientes tablas en la Base de Datos Ventas, a las tablas Artículos y Clientes ingresar algunos registros.
Articulo.dbf Clientes.DBF
Artcod C 3 ClieCod C 3ArtDet C 40 ClieNom C 40ArtPre N 10 3 ClieRuc C 8ArtStk N 4
GuiaEnc.DBF Guiadet.DBFNguia C 6 Nguia C 6ClieCod C 3 ArtCod C 3IGV N 7 2 ArtDet C 40Total N 10 2 PreUni N 7 2
Cant N 5SubTotal N 10 2
Prof. José de La Rosa Página 46
Guis del Usuario Revista Compus Prácticas FoxPro
Temporal.DBFNguia C 6ArtCod C 3ArtDet C 40PreUni N 7 2Cant N 5SubTotal N 10 2Nota: Indexar la tabla GuiaEnc, campo Nguia con etiqueta Nguia
2. Creamos Nuevo formulario luego insertamos los objetos que se muestran en el grafico inferior.
3. Para el Entorno de Datos asignamos las cinco tablas creadas anteriormente
4. En tiempo de Diseño
Modificamos las propiedades de los objetos según la tabla siguiente:
Prof. José de La Rosa Página 47
Objeto: Propiedad Valor Objeto: Propiedad ValorControlSource Clientes.Clienom Alignment 2. CentroName CmbCliente DisableBackColor A Criterio del Usuario
Combo1 Row SourceType Campos Text1 DisableForeColor A Criterio del Usuario
Row Source Clientes.Clienom Enabled FALSOStyle 2. Lista desplegable Name txtNguiaValue 1 FontName A Criterio del Usuario
Alignment 2. Centro Column Count 4DisableBackColor A Criterio del Usuario Deleted mark .F. Falso
Text2 DisableForeColor A Criterio del Usuario Grid1 Name grdDetalle
Enabled FALSO RecordSource TemporalName TxtTotal BackColor A Criterio del UsuarioFontName A Criterio del Usuario GridLineColor Azul
Guis del Usuario Revista Compus Prácticas FoxPro
Antes de continuar con más cambios, vamos a insertar objetos Combo y Spinner en la columna1 y columna2 del Grid respectivamente, para ello prepare el control de Formularios luego:
Seleccione el objeto: Grid
Presione sobre ella : Botón DerechoSeleccione : ModificarHacemos Click en : ComboLuego Click sobre ab debajo de: Header1 de la primera columna del gridHacemos Click en : SpinnerLuego Click sobre ab debajo de: Header1 de la Segunda columna del gridSalimos de edición haciendo Click fuera del Grid
Presionamos Botón derecho sobre el GridPropiedades
Combo1 RowSourceType 6. Campos Spinner1 Name SpnCantidadRowSource Articulo.ArtDet Style 2. Lista DesplegableStyle 2. Lista Desplegable SpinnerHighValue 99Value 1 SpinnerLowValue 1
Value 1
Guis del Usuario Revista Compus Prácticas FoxPro
Más propiedadesNota: Caption de Labels ver el Grafico
Diseño en tiempo de Ejecución:
Digitaremos los siguientes códigos, según como se indican a continuación
Objeto: Formulario Principal (Form1) Evento Init
Public srecset multilock onset talk offset safety offset exclusive on
SELECT GUIAENC = cursorsetprop("buffering",3)set order to tag Nguiago bottomthisform.txtnguia.value = right("00000"+alltrim(str(val(nguia)+1)),6)append blankreplace nguia with thisform.txtnguia.value
Select temporaldele allset dele onappend blankreplace nguia with thisform.txtnguia.valuesrec=recno()thisform.grdDetalle.refreshthisform.txttotal.value=0
Evento: Interactivechange SELECT temporalgo srecreplace artcod with articulo.artcodreplace preuni with articulo.artprereplace subtotal with thisform.grddetalle.colcantidad.spncantidad.value*preunisum subtotal to ntotalgo srecthisform.txttotal.value=ntotalthisform.grddetalle.colcantidad.spncantidad.value=1thisform.refresh
Evento: LostFocus
if len(allt(thisform.grddetalle.coldescripcion.cmbdescripcion.value))>0thisform.grddetalle.colcantidad.spncantidad.setfocus
endifreplace nguia with thisform.txtnguia.valuethisform.grddetalle.coldescripcion.cmbdescripcion.setfocusthisform.refresh
Prof. José de La Rosa Página 50
Guis del Usuario Revista Compus Prácticas FoxPro
Objeto: cmdNuevo Evento: Click Public srecselect temporaldele allset dele onappend blankreplace nguia with thisform.txtnguia.valuesrec=recno()thisform.grddetalle.refreshthisform.txttotal.value=0thisform.refresh
Objeto: cmdGuardar Evento: Click SELECT GUIAENCreplace igv with thisform.txttotal.value*0.18replace total with thisform.txttotal.value=tableupdate(.t.)
SELECT TEMPORAL Scan
insert into guiadet(nguia,artcod,artdet,preuni,cant,subtotal);values(temporal.nguia,temporal.artcod,temporal.artdet,;