PROGRAMA EN VISUAL FOXPRO
Hola Amigos:
Soy nuevo en lo que es programacion, queria ver si alguien me puede facilitar algun manual de VISUAL FOXPRO, si ya tienen algun programa ya desarrollado mejor, les quedare muy agrradecido si me envian lo antes mencionado.
Gracias?????
Valentin
Soy nuevo en lo que es programacion, queria ver si alguien me puede facilitar algun manual de VISUAL FOXPRO, si ya tienen algun programa ya desarrollado mejor, les quedare muy agrradecido si me envian lo antes mencionado.
Gracias?????
Valentin
bueno yo tanbien quiero saber mas de fox pro quisiera que me manden manuales a mi correo espero que lo agan grasias
hola como estas la verdad es que yo no tengo ningun programa pero si lo tuviera te lo mandaria es por lo que te pido que porfabor si alguien t envia un programa me lo mandes a mi tambien por que la verdad lo nececito mucho si me lo mandas yo te mandar9ia programass pero en pascal bueno
ya sabes si tenes me mandas chacuuuuuuuuuuu
ya sabes si tenes me mandas chacuuuuuuuuuuu
holA amigo, me gustaria mucho que me ayudaras a crear un manual tecnico o proporcionarme informacion sobre que datos debe llevar un manual tecnico, lo que pasa que yo hice un programa y me dejaron hacer un manual tecnico y ni tengo idea de que datos puede contener, mi programa es de altas, bajas, consultas y modificaciones de horarios de los grupos de la escuela, te agradeceria mucho si me ayudas.
Que tal amigo Alex, tengo años programando en clipper y me llegó la hora de migrar a ambiente visual, quisiera seguir en la ruta de la xbase, me interesa mucho la aplicación de notas de la que hablas, para aprender mas acerca de visual foxpro, si algún día puedo retribuirte el favor, con gusto lo haré, gracias de antemano...
Hola amigo Alex, llevo varios años metido en dBASE y Clipper y aunque los miro con nostalgia, los tiempos mandan y he aterrizado en VFP 6.0
Como te puedes imaginar, estoy como en pañales, por lo que me vendría de perlas cualquier ayuda que me puedan enviar, sobre todo para los primeros pasos. Sería fabuloso esa aplicación tuya que comentas y el tutorial ó manual que tambien mencionas. Así como cuálqauier otra ayuda
que se te ocurra.
Muchas gracias de antemano, desde Tenerife (Canarias)
Como te puedes imaginar, estoy como en pañales, por lo que me vendría de perlas cualquier ayuda que me puedan enviar, sobre todo para los primeros pasos. Sería fabuloso esa aplicación tuya que comentas y el tutorial ó manual que tambien mencionas. Así como cuálqauier otra ayuda
que se te ocurra.
Muchas gracias de antemano, desde Tenerife (Canarias)
trabajo en la Municipalidad de La Plata (Argentina), soy administrativo y segun un informático amigo tengo condiciones. Es por ello que decidió enseñarme visual foxpro 5.0. Por mi parte consegui un libro de visual foxpeo 6.0 que no dejo de parecerme algo complejo. Quien me enseña prometió alcanzarme una guia practica accesible para principiantes. Mantenete en contacto, y si la obtengo trataré de enviartelo... suerte
Para aquellos que comienzan a programar en VFP me permito informarles, que este servidora partir de la fecha desarrollarà por etapas semanales una aplicaciòn de ejemplo que estarà disponible para bajar en mi pàgina www.agtsoft.com. Serà una aplicaciòn muy bàsica, tècnica y explicativa que les permitirà entender de principio a fin el desarrollo de una aplicaciòn. De ahi en adelante serà por parte individual la profundizacion y creatividad de cada uno. Cualquier comentario o sugerencia for favor enviar a mi correo
gracias
gracias
Hola Valentin, soy Daniclas,
Yo tambien estoy empezando en el mundo del Visual Foxpro y tengo que desarrollar una tarea urgentemente con el.
Si te fuera posible , podrías enviarme los programas de ejemplos y tutoriales que te manden y podríamos ir consultandonos dudas mutuamente.
Espero sepas comprender y me eches una mano.
Dandote las gracias por adelantado.
Daniclas.
Un abrazo.
Yo tambien estoy empezando en el mundo del Visual Foxpro y tengo que desarrollar una tarea urgentemente con el.
Si te fuera posible , podrías enviarme los programas de ejemplos y tutoriales que te manden y podríamos ir consultandonos dudas mutuamente.
Espero sepas comprender y me eches una mano.
Dandote las gracias por adelantado.
Daniclas.
Un abrazo.
hola a todos.
Entre los varios programas que he desarrollado en VFP, tengo un juego de cartas (solitario baraja española) facil y divertido de jugar y otro de matemàtica financera. Estoy interesado en contactar distribuidores en otros paises. Los programas sob bastantes seguros (dificil de piratear), económicos y de mecados masivos. Interesados contactarme a mi e-mail
Entre los varios programas que he desarrollado en VFP, tengo un juego de cartas (solitario baraja española) facil y divertido de jugar y otro de matemàtica financera. Estoy interesado en contactar distribuidores en otros paises. Los programas sob bastantes seguros (dificil de piratear), económicos y de mecados masivos. Interesados contactarme a mi e-mail
OJO es con todos, andan en este pidiendo programas ya creados, al sr. FREDY LOPEZ sin animos de ofenderlo, programacion en visual no es para nada lo que esta colocando aqui, como todos ya deben de saber todo programa que este en una version anterior de fox correo, pero no significa que esto sea un programa en visual, los programas en ambiente visual ademas de tener formatos form, mas o menos lo que era antes un Screen, trabajan con programacion objeto, no deben tenerle miedo y en los ejemplos que estan en el mismo CD de vfp, se tratan la mayoria de los casos que puedan necesitar, para aquellos programadores que vienen de foxpro DOS o foxpro WIN 2.6, les aconsejo que estudien bien los archivos de ayuda, y no se desanimen es un poco tedioso entender la programacion objeto para la vieja escuela, pero les digo de corazon que vale la pena.
Saludos a todos los FOXeros.
PD. se les agradece a los usuarios que colocan sus anuncios acerlo en letra minuscula, ya que la mayuscula se utiliza para recalcar o reclamar de mala forma.
Saludos a todos los FOXeros.
PD. se les agradece a los usuarios que colocan sus anuncios acerlo en letra minuscula, ya que la mayuscula se utiliza para recalcar o reclamar de mala forma.
Hola, soy nueva en cuanto a programacion y me gustaria que me mandaran tutoriales de Foxpro y VisualBasic ya que son los que me interesan para aprender a programar, !ah¡ si tienen algun demo del programa para practicar se los agradeceria mucho..
Saludos y me gusta su pagina
Saludos y me gusta su pagina
oie man mandamelo al correo [email protected]
para intercambiar sistemas gracias man lo necesito
para intercambiar sistemas gracias man lo necesito
Como vez somos un mar de gente queriendo aprender visual foxpro..actualmente adquiri la version 7..aunque ya casi sale la 8...pero son mis inicios...quisiera tambien, me pudieras facilitar la ayuda ofrecida a Valentin..Gracias de antemano.
mira vergantin sabes que por mi vete mucho a chingar a tu putisima madre hijo de la verga
Alex soy de honduras y me gustaria que me ayudes con los tutorilaes que tienes y el programa de notas espero recibir tu ayuda porque estoy muy interesado en aprender vfp y aqui en donde yo vivo es muy dificil pagar por un libro o que alquien le ayude a uno.mil gracias
Juan CArlos Rodas
[email protected]
Juan CArlos Rodas
[email protected]
Alex soy de honduras y me gustaria que me ayudes con los tutorilaes que tienes y el programa de notas espero recibir tu ayuda porque estoy muy interesado en aprender vfp y aqui en donde yo vivo es muy dificil pagar por un libro o que alquien le ayude a uno.mil gracias
Juan CArlos Rodas
[email protected]
Juan CArlos Rodas
[email protected]
Hola!
Soy Colombiana (Cartagenera), estoy aprendiendo VFP y de verdad tengo mucho interes, se que somos cualquier mar de gente pidiendote este favor, más a.un sin conocerte. Te agradezco la ayuda, quiero aprender a hacer facturas.
Chao! , escribeme pronto.
Soy Colombiana (Cartagenera), estoy aprendiendo VFP y de verdad tengo mucho interes, se que somos cualquier mar de gente pidiendote este favor, más a.un sin conocerte. Te agradezco la ayuda, quiero aprender a hacer facturas.
Chao! , escribeme pronto.
Por favor yo tambien necesito ese tipo de ayuda me podrias ayudar o pasar la informacion que te han dado al respecto
Gracias.....
Gracias.....
hola amigo yo tambien estoy aprendiendo a programar en visual foxpro 6.0 y me gustaria mucho que me enviaras ayuda sobre este tema
Gracias de Antemano .
Gracias de Antemano .
Hola, Valentin, soy estudiante de ing. en sist. y necesito un programa sencillo en el que pueda realizar el pago de una planilla a 15 trabajadores.
HOLA LLAMAME AL 9913405 Y TE DOY TODO LA AYUDA DE VFP EH SOY UN PROGRAMADOR DE PRIMER NIVEL O ENVIAME UN MENSAJE DE TEXTO CHAU
baboso.......... tu crees que te voy a dar las ayudas, ni creas tendras que pagar por ellas
Buenas Valeentin, lei lo que escribiste y me gustaria que me enviaras algo de esos programas ya que estoy en proceso de aprendizaje de este lenguaje y me gustaria aprender mas, solo que con un poco mas de ayuda tal como la tuya.
Gracias
Gracias
hola necesito ayuda para comprender mejor el visual fox pro y si tienen un programa ya desarrollado mejor pues para analizarlo pues me esta volviendo loco es to por fa ayuda ok .
césar.
césar.
hola quisiera saber los pasos para crear un formulario dentro de Visual FoxPro me urge es una tarea porfa si
te saludo y a la vez te en vio tu respuesta si quieres encontrar algun manual de programacion te recominedo la pagina http:\www.lawebdelprogramador.con, y luego te vas a la opcion cursos y alli escoges la opcion visual fox pro(8) que pertenece al profe maurico cano
espero te sirva y si tienes algun curso avanzaso de fox pro pasamelo o sistema ya realizado
tu choche
espero te sirva y si tienes algun curso avanzaso de fox pro pasamelo o sistema ya realizado
tu choche
te saludo y a la vez te en vio tu respuesta si quieres encontrar algun manual de programacion te recominedo la pagina http:\www.lawebdelprogramador.con, y luego te vas a la opcion cursos y alli escoges la opcion visual fox pro(8) que pertenece al profe maurico cano
espero te sirva y si tienes algun curso avanzaso de fox pro pasamelo o sistema ya realizado
tu choche
espero te sirva y si tienes algun curso avanzaso de fox pro pasamelo o sistema ya realizado
tu choche
Valentín, he visto que has recibido mucha ayuda desde que escribiste me podrias ayudar a mi también, con los programas y tutoriales de visual foxpro, te agradecería si me compatieras parte de tus conocimientos con mi persona.
Hola... a partir de hoy estoy disponible para compartir mis experiencias como programdor en Visual Fox pro. Lo que necesites a la orden
Introducción
En este manual 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 es un gestor de base de datos, orientado a la programación de objetos.
Visual Fox Pro pertenece a la familia xbase lo que hace que su programación sea sencilla, estructurada y mas fácil de entender tanto para programadores principiantes como programadores expertos.
Nos enfocaremos en cinco áreas principales:
Base de datos: Trata sobre el diseño, creación y manipulación de tablas libres o tablas con integridad referencial (base de datos)
Programción: En esta parte seremos capaces de identificar y aplicar las estructuras básicas de programación y conocer aspectos sobre la programación orientada a objetos.
Formularios: Aplicaremos conocimientos para la integración de una interfaz con el usuario y base de datos.
Informes: Aprenderemos a diseñar las salidas de los sistemas de información, haciendo uso de las herramientas que el programa ofrece.
SQL: En esta sección haremos uso del lenguaje SQL para manipular datos, creando así diferentes consultas o vistas.
2. Bases de datos.
Introducción
En este manual mostraremos lo básico pero también puedes consultar algún libro de Visual FoxPro pues todo será para tu desarrollo, en las bibliotecas o en las librerías. FoxPro es un lenguaje de mucha rapidez, esto lo convierte en un lenguaje de los más rápidos en el mercado, FoxPro es también uno de los lenguajes de programación que contiene mucha potencia en el manejo de las bases de datos.
Conceptos Básicos
Base de datos es un conjunto de datos almacenados en campos y registros, es decir que la base de datos esta conformada por estos dos elementos. Así, por ejemplo:
Base de datos (Campos)
-------------------------------------------------------------------------------
(Nombre de las variables) Nombre Edad Sueldo
-------------------------------------------------------------------------------
(Registros) José Mendoza 19 2,568.52 Omar Mendoza 20 3,759.45
------------------------------------------------------------------------------
Los campos son los que están en vertical y los registros llamados también datos, son los que están en horizontal.
Componentes de Interfaz
Algunas herramientas más utilizadas son:
Ventana Examinar: una vista, tipo hoja de cálculo, de una tabla.
Ventana Código: para desplegar código asociado a varios eventos en los formularios y controles. Cuando un evento se dispara el código se ejecuta.
Ventana Depuración: permite examinar variables de memoria o valores campos y establecer puntos de interrupción. La ejecución del programa se detiene cuando una variable de memoria o una expresión con un punto de interrupción cambian de valor.
Comando Opciones (Menú de Herramientas): permite controlar la configuración de docenas de características en el entorno FoxPro, incluidos todos los comandos SET, así como planillas y bibliotecas de clases.
Ventana Propiedades: permite establecer propiedades en una buena cantidad de generadores, incluidos los generadores de formularios, informes etiquetas y de las bases de datos, también proporciona acceso a propiedades, métodos y código de eventos.
Administrador de Proyectos: un diseño completamente novedoso de FoxPro para Windows, este administrador de proyectos administra todos los componentes de un proyecto en cinco grupos: Bases de datos (con extensión .DBC), tablas libres (con extensión .DBF), vistas locales y remotas, conexiones, etc.
Generador de consultas: una recodificación completa del RQBE (Consulta Relacional Ejemplificada), esta herramienta maneja todos los aspectos de construir una consulta.
Barras de herramientas FoxPro: proporciona a los generadores aplicaciones más de una docena de barras de herramientas para colocar toda la herramienta para varias tareas justo al alcance de sus dedos. Además, puedes diseñar tus propias barras de herramientas en conjunción con formularios, para proporcionar a los usuarios el mismo tipo de acceso instantáneo a las herramientas.
Generadores
Los generadores son entornos de trabajo en los que se construyen componentes de una aplicación de FoxPro.
En la siguiente lista te mostrare algunos generadores:
Generador de clases Para construir objetos reutilizables.
Generador de Bases de Datos Para organizar los datos en tablas y documentar las relaciones entre tablas.
Generador de formularios Para diseñar las pantallas de la aplicación.
Generador de consulta Para construir conjuntos de datos utilizados en reportes y en pantallas de sólo lectura.
Generador de informes Para construir informes para la pantalla o la impresora.
Generador de menús Construye el sistema de menús que ejecuta una aplicación.
Generador de tablas Administra el formato de las tablas utilizadas en la aplicación.
Generador de cuadrículas Permite aprender cómo las configuraciones de la propiedad de cuadrícula del objeto controlan la operación de la cuadrícula.
Asistentes
Son conjunto de cuadro de diálogos que te ayudan paso a paso a crear una determinada aplicación, por ejemplo un formulario, etc.
Asistente para formularios: Construye "Pantallas instantáneas" con la estructura de las tablas basándose en clases prediseñadas, incluidos efectos especiales en las pantallas y botones de navegación ínter construidos.
Asistente para documentación: Documenta la aplicación.
Asistente para informes: Diseña informes, sencillos o complejos, utilizando un poco más que la estructura de las tablas.
Asistente para tablas: Útil para hacer tablas sencillas
Barras de Herramientas
El propósito de que hayan estas barras es para hacerte un poco más fácil el trabajo, es decir que el uso que le dará a la ventana de comandos será un poquito reducido.
Paleta de colores creo que te imaginas que es la barra de los colores en función RGB. Bueno RGB significa (Rojo, Verde y Azul)
Generador de bases de datos en esta barra se manejan el entorno de datos, iconos para: crear, agregar, y quitar una tabla así, como también modificar, vista remota o local, examinar una tabla o editar procedimientos almacenados en el contenedor de la base de datos.
Generador de formularios esta barra te permite el paso rápido de uno a otro entre varios elementos usados en el diseño de pantallas: el entorno de los datos, la ventana propiedades, la ventana código la barra Controles de formularios, la paleta de colores, la barra de herramientas. Distribución, entre otros.
Presentación Preliminar para que una vez diseñado un informe puedas apreciarlo como te quedará y si no te gusta pues lo podrás modificar.
Estándar Este lo verás cuando inicies FoxPro, proporciona acceso al generador de formularios y al Generador de informes, a bases de datos de impresión consultan tablas, conexiones, vistas, etiquetas, programas, clases, archivos de texto y menús.
Administrador de Proyectos
Estos proyectos están integrados por el Administrador de proyectos, quien mantiene la pista de los componentes de la aplicación. Conforme se agregan componentes a un proyecto, (Estas son las carpetas o nombre de los menús del Administrador) FoxPro los colecta bajo alguno de los siguientes encabezados:
Datos: las bases de datos (y todos los elementos que pueden describir), incluidas las tablas, vistas locales y remotas, conexiones y procedimientos almacenados, así como tablas libres y consultas.
Documentos: formularios, etiquetas e informes.
Bibliotecas de clases: repositorios de objetos usados en la aplicación.
Código: los archivos con extensión .PRG que contienen código que no está asociado con un formulario, así como bibliotecas API y archivos llamados por la aplicación.
Otros: menús, archivos de texto y otros, incluyendo mapas de bits.
La barra de herramientas
En FoxPro hay muchos botones, estos botones pertenecen a la barra de herramientas de VFP. También existen otras barras de herramientas. Se hace clic en el menú Ver, aparece una sola opción de barras de herramientas. Sólo haz clic en la barra que quieres activar y aparecerá al igual que la estándar. Algunas de estas barras ya las vimos anteriormente, ¿recuerdas?.
Estructura de un .BDF
Los datos en FoxPro se almacenan en forma de tablas, estas tablas son las bases de datos pues la extensión de estas bases de datos es .DBF aunque también hay otras que se verá más adelante. Los DBF comienzan con una breve descripción de los datos que están en la tabla.
Escritorio de Visual FoxPro
Para ingresar a Visual FoxPro tienes que presionar el botón de inicio / todos los programas / Microsoft Visual Studio 6.0 /Microsoft Visual FoxPro 6.0 (versión windows XP).
inicio / programas / Microsoft Visual Studio 6.0 /Microsoft Visual FoxPro 6.0 (versión windows estándar).
Aparecerá en tu pantalla la siguiente ventana:
Escritorio de Visual FoxPro
Configuración de Visual FoxPro 6.0
Cuando se carga FoxPro, lee un archivo llamado CONFIG.FPW en el directorio VFP. CONFIG.FPW es un archivo de texto ASCII y contiene instrucciones que se leen al momento de iniciar y se convierten en valores predeterminados de la sesión de FoxPro.
He aquí algunos de los elementos que se fijan en la configuración del sistema:
SAFETY = OFF && no avisa antes de sobrescribir archivos
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
Comandos de configuración (SET)
Los anteriores son comandos los cuales se pueden modificar utilizando los comandos que inician con la instrucción SET desde la ventana de comandos, por ej:
SET DEFAULT TO A: && establece el dispositivo y el directorio
Por ejemplo si los archivos que se van a utilizar se encuentran en el directorio C:programastransmisióndatos, escribiremos el comando SET de la siguiente forma:
SET DEFAULT TO C:programastransmisióndatos.
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 tablas
Diseñador de tablas
El diseñador de tablas es una ventana donde podrás diseñar la estructura de un archivo de base de datos o tabla.
Tipos de Campos
Los campos no deben de contener caracteres especiales, fuera del carácter "Guión bajo", y tampoco puede empezar con un número. Pueden ser cuales quiera de varios tipos:
Carácter: Cualquier cosa que se pueda teclear, puede ir en un campo de caracteres. Un carácter es lo mismo que un byte y un byte puede tener cualquier valor ASCII hasta 255, con unas cuántas excepciones.
Numérico: Hasta un límite de 18 dígitos, con tantas cifras decimales como quieras. Los enteros se almacenan en este formato y un nuevo tipo de dato "moneda" se usa generalmente para dinero.
Flotante: Este no lo utilizaremos en este manual pues sólo sirve por compatibilidad con dBASE V, es equivalente al formato numérico.
Fecha: Para almacenar la fecha en un formato interno numérico, pero su validación y representación se controlan con este tipo de campo.
Lógico: Éste, ya sea verdadero o falso, es representado por T o F, para verdadero o falso respectivamente.
Memo: Representado en su estructura de registros como un campo de caracteres de longitud 10. Estos campos almacenan en una segunda tabla con la extensión .FPT. Pueden ser casi de cualquier tamaño.
General: Éstos también son campos memos, excepto que usualmente almacenan otros tipos de objetos además de texto como gráficos.
Fecha-hora: incluye la hora después de la fecha, en el formato [MM/DD/AA hh:mm:ss].
Moneda: Es un campo numérico e incluye cuatro cifras decimales.
Imagen: Usado para guardar imágenes.
Carácter binario: Campos de caracteres no sujetos a traducciones de páginas de códigos.
Memo binario: Campos memo con la misma característica NOCPTRANS.
Abrir y cerrar tablas.
Para abrir un DBF en el área de trabajo 1 cuando ninguna otra tabla está abierta, teclee en la ventana de comando (ventanita pequeña que aparece generalmente al lado izquierdo):
USE nombre de la tabla
Nota: Un área de trabajo es un espacio de memoria reservado para que allí se manipulen los datos de la tabla.
Puede especificar: USE nombre de la tabla IN 3 pero recuerda para abrir o cerrar una tabla tiene que estar ya creada. Para reservar un área de trabajo puedes digitar:
SELECT 0 && 0 es el número de área de trabajo
Este comando también puede ser SELECT nombre de la tabla / alias SELECT es para seleccionar la tabla a trabajar (abrir, cerrar, modificar, etc.) USE nombre de la tabla (y se abrirá el cuadro de dialogo abrir, pues FoxPro no sabe que tabla abrir debes abrir la que necesites).
Si necesitas tener varias tablas abiertas puedes hacer lo siguiente:
SELECT A
USE tabla1
SELECT B
USE tabla2
SELECT C
USE tabla3
Y cuando quiera utilizar una de las tablas solo tienes que llamar el área de trabajo como por ejemplo si vas ha utilizar la tabla2 escribe en la ventana de comandos o dentro de un programa SELECT B.
Para cerrar tablas o una sesión de tablas abiertas puedes escribir los siguientes comandos:
CLOSE ALL && cierra todas las tablas abiertas
CLOSE DATABASE && cierra las bases de datos abiertas
O simplemente escribe USE.
Diseño de tablas
Primero hay que crear un directorio para almacenar tu trabajo (aunque esto no es necesario pero si vas a trabajar con un disco flexible o en un directorio distinto al que trae designado FoxPro tienes que hacerlo), para ello digita: MD ruta luego para que FoxPro trabaje con este directorio debes digitar:
SET DEFA TO ruta (nombre del directorio que se supone ya creaste con el comando md).
Bien ahora tienes varias opciones para crear la tabla:
1. digita CREATE nombre de la tabla.
2. haz clic en nuevo (new) luego selecciona tabla (table) luego digite el nombre de la tabla.
3. Ctrl + n y selecciona tabla (table) luego digite el nombre de la tabla
Después tendrás que darle un nombre a la tabla y lo guardas aparecerá el generador de tablas con las carpetas tabla e índice (si es VFP 6.0 estará también campos).
Ahora puedes introducir el nombre, el tipo y la longitud del campo en el orden correcto.
Por ejemplo:
Nombre Carácter 40
Dirección Carácter 40
Ciudad Carácter 22
Saldo monetario 8 (este es automático)
No oprimas enter porque el programa entenderá que la tabla ya esta terminada si quieres pasar a digitar el siguiente campo debe moverte con la tecla tab NO CON ENTER. Enseguida introduce datos a tu tabla. Si digitas LIST STRUCTURE (en la ventana de comandos), verás la estructura de tu tabla puedes borrar los campos si digitas DELETE NEXT numero de campo (2 por ejemplo), y puedes recuperarlo si digitas RECALL NEXT 2 y regresará.
Ahora puedes digitar BROWSE y veras los datos que introdujiste la tabla después de creada,
Si digitas SET SCAPE ON podrás detener algunos procesos cuando lo desees como el comando LIST pero aquí no será necesario pues se introducirán pocos datos en la tabla. tú puedes digitar LIST y ver los datos en forma rápida la sintaxis de LIST es:
LIST | FIELDS listacampos | TO PRINT | WHILE expresiondominio | FOR expresiondominio | OFF
FIELD digitas el nombre del campo o campos a visualizar. TO PRINT en para enviar la salida a la impresora. FOR seguido de una expresión de dominio, lista sólo aquellos registros que coincidan con la expresión. ejemplo LIST FOR ciudad ="San Salvador" el WHILE seria LIST WHILE ciudad = "San Salvador", el WHILE se utiliza para optimizar muchos aspectos del desempeño de FoxPro. OFF desactiva la opción de numeración de registros digítalos y notarás la diferencia.
Sum si digitas SUM saldo te sumará todos los saldos (registros) almacenados en este campo.
Cómo moverse en una tabla de FoxPro
Cuando utilizamos inicialmente una tabla de FoxPro, tú estás ubicado en el primer registro de la tabla. Puedes mover este puntero de registro imaginario alrededor de la tabla, en diversas formas:
Skip Mueve el puntero hacia adelante un registro
Skip-1 mueve el puntero hacia atrás un registro
Go TOP Mueve el puntero al primer registró
Go bottom Mueve el puntero al último registro en la tabla
Go 2 Mueve el puntero del registro al registro número 2.
* Prueba estos comandos primero digita uno de ellos y luego digita list y verás los resultados.
Practica 1
Según la siguiente hoja, evalua los datos que pudan servir para realizar una tabla de Inventario, construye la estructura, tomando en cuenta algunos datos que puedan enriquecer la tabla.
Computadoras SYSTEM S.A.
Inventario físico al _____ de __________ del 2001
Código
Descripción
Marca
Exist.
Precio
Costo
Precio
Venta
Proveedor
M025
Monitor 14"
Acer
50
900.00
1080.00
Procom S.A.
M026
Monitor 12"
Acer
102
850.00
1020.00
Procom S.A.
M027
Monitor Radius
Acer
10
1100.00
1320.00
Procom S.A.
CA01
Case Mini tower Deluxe
ADS
300
105.00
126.00
Distribuidora SalCom
CA02
Case Desk Top
ADS
100
125.00
150.00
Distribuidora SalCom
IMC1
Impresor Color JET 1000
Canon
25
367.00
440.40
Procom S.A.
IMC2
Impresor color JET 2000
Canon
15
452.25
542.70
Procom S.A.
Agrega 20 registros a la tabla.
Utiliza los comandos Use, Browse, List y Display, según te indique el instructor y anota en tu cuaderno lo que pasa.
Manipulación de registros
Puedes utilizar diferentes tipos de comando para manipular los datos de tu tabla, estos comandos pueden utilizarse desde su modo más simple hasta su forma compuesta utilizando expresiones de dominio, por ejemplo:
LIST FOR país = "ES" && lista los registro que país = "ES"
He aquí algunos comandos con sus expresiones de dominio:
DISPLAY ALL
DISPLAY RECORD 5
GOTO 17
GO TOP
GO BOTTOM
SKIP -3
DELETE RECORD 6
LIST FOR precio >1200
BROWSE FOR precio >=900 .AND. precio <2500
GO 6
RECALL
PACK
ZAP
Mencionaremos otros comandos que son de gran ayuda al momento de manipular los datos:
APPEND
Agrega registros a la base de datos seleccionada
APPEND FROM
Agrega registros desde otra tabla al final de los registros de la tabla seleccionada
COPY FILE
Copia cualquier tipo de archivos
COPY STRUCTURE
Almacena la estructura de una base de datos en una nueva base
COPY TO
Copia datos de una base de datos a un archivo
COUNT
Determina el nùmero de registro en la base de datos
DISPLAY FILES
Muestra información de base de datos
DISPLAY MEMORY
Despliega la información de las variables de memoria
DISPLAY STATUS
Despliega información de la condición de FOX
DISPLAY STRUCTURE
Muestra la estructura de una base de datos
MODIFY COMMAND
Abre una ventana de modificación de texto
MODIFY STRUCTURE
Modifica la estructura de una base de datos
REPLACE
Actualiza los registros en una base de datos
Otro tipo de comandos útiles para la manipulación de tablas y registros son las FUNCIONES, las cuales se dividen en:
Cadenas o manejo de caracteres: este grupo de funciones gestiona el manejo de caracteres.
Matemáticas: permiten efectauar operaciones con valores numéricos.
Manejo de fechas y hora: se encarga de gesstionar las variables de tipo fecha.
Lógicas: Se encargan de efectuar operaciones de tipo lógico.
Funciones de converción de tipos: conviertes variables de un tipo a otro.
Antes de mostrar ejemplos definiremos dos componentes que se hacen necesarios en la manipulación de datos:
Constante: Son valores predefinidos que no cambian nunca por ejemplo: valor1=15478, cadena="abcd".
Variable: Se utilizan como identificadores de secciones de memoria donde se guarda información, por ejemplo: var1=campo1, var2=tabla.campo.
Las variables se pueden definir como: publicas, privadas y locales ejemplo:
PUBLIC nombre, apellidos
PRIVATE sueldo
Operadores relacionales
Los operadores se utilizan en tiempo de ejecuciòn para unir dos o màs elementos del lenguaje.
Operadores aritméticos
( ) Agrupa subexpresiones
**, ^ Exponenciación
*, / Multiplicaciòn y división
% Módulo (resto de la división)
+, - Suma y resta
Operadores relacionales
< Menor que
> Mayor que
<= Menor o igual que
>= Mayor o igual que
= igual a
<>, #, ¡=Distinto de
$ Contenido en
Ahora te daremos unos ejemplos con funciones en Visual FoxPro.
* Declaración de variables
cadena1 = SPACE(15)
cadena2 = SPACE(15)
número = 0
cuenta = 0
* Asignación de datos
cadena1 = "abcd efgh ijkl"
* utilizando la función LEN para contar el número de la cadena
? LEN(Cadena1) && imprime en pantalla 14
? Cadena2= SUSBTR(cadena1,1,4) && imprime en pantalla abad
? DTOC(DATE())
? SIN (0)
Índices
Cuando se insertan registros en una tabla estos no se encuentran ordenados, para ello es necesario utilizar comandos que nos permitan ordenar los registros de acorde a la información que necesitamos.
Comando SORT
Clasifica un archivo de base de datos
SINTAXIS
SORT TO <archivo> ON <campo> [/A] [/D] [/C]
[,<campo2> [/A] [/D] [/C]..]
[ASCENDING | DESCENDING]
[<alcances>]
[FOR <expresión lógica1>] [WHILE <expresión lógica2>]
[FIELDS <lista de campos>]
EJEMPLO:
USE persona
SORT TO persona_ordenada ON nombre
USE persona_ordenada
Persona
persona_ordenada
Juan Martínez
Roxana Cuellar
Margarita Rosales
Pedro López
Eduardo Garay
Eduardo Garay
Juan Martínez
Margarita Rosales
Pedro López
Roxana Cuellar
Comando INDEX ON
Crea un índice en un archivo de índices compuestos o bien un archivo de índice simple.
SINTAXIS
INDEX ON campo TO nombre de archivo IDX | TAG etiqueta
[OF archivo CDX][FOR expresión lógica] [COMPACT][ASCENDING | DESCENDING][CANDIDATE |UNIQUE ][ADDITIVE]
EJEMPLO:
USE persona
INDEX ON nombre TO persona.idx
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.
Practica 2
Abre la tabla de inventario.
Escribe la siguiente instrucción SORT ON codigo TO inventarioordenado.
Aplica un BROWSE y abre la nueva tabla y BROWSE, compara ambas.
Cierra las tablas en uso escribiendo la siguiente sentencia CLOSE ALL.
Haremos una copia del archivo inventario.dbf COPY FILE inventario.dbf TO inventa.dbf.
Ahora ordenaremos la tabla por medio de un índice escribiendo la siguiente sentencia INDEX ON CODIGO TO CODIGO; le estas diciendo que el índice va ha ser por medio de código y que el archivo índice se llamará CODIGO solo que este con extensión IDX, visualiza el archivo escribiendo DIR *.IDX.
Ahora cierra la tablas. Y vuelve a abrirla escribiendo USE INVENTARIO INDEX CODIGO.
Busca un registro haciendo uso del comando SEEK, de la forma siguiente SEEK <expresión> por ejemplo SEEK "MO01"; recuerda si el campo es de tipo numérico no se le colocan comillas.
Ahora DISPLAY, y veras que te aparece el registro que buscaste por medio del índice.
Ejercicio:
Crea una tabla que guarde los datos de tus compañeros y pon un índice por el campo que creas conveniente y práctica lo anterior.
También puedes indexar una tabla, desde el generador de tablas de FoxPro marcando la casilla que se muestra en la figura:
Primero tienes que seleccionar el campo que servirá como índice, luego selecciona la ficha de modo que te aparezca la siguiente pantalla:
Tienes que elegir el tipo de de índice el cual le indicara a la tabla que tipo de índice tiene. Los tipos de índices son los siguientes:
Principal: No admites claves duplicadas, actúa como referente a un registro de una tabla, de forma que no puede haber dos registros con la misma clave.
Candidato: Este índice tampoco admite claves duplicadas. Puede haber más de uno por tabla.
Único: En este índice sólo se guardan aquellos valores que sean distintos entre sí, pero sí admite registros con valores duplicados.
Regular: Es el índice típico. Admite claves duplicadas.
Relación de Tablas
Normalización
La única y más importante técnica en el desarrollo de base de datos es la capacidad de observar los datos y ver la base de la estructura de los mismos. Al tener varios datos desordenados y organizarlos en diferentes tablas relacionadas entre sí, a este proceso se le llama normalización.
Vincular tablas
SET RELATION TO
Crea una relación entre una base de datos padre, la que deberá estar abierta en el área de trabajo actualmente seleccionada, y una base de datos hija, ya abierta en otra área de trabajo.
SINTAXIS
SET RELATION TO [<expresión1> INTO <expresión numérica1>|<expresión carácter1>]
Ejemplo:
Para relacionar tablas tienes que tener do o más tablas abiertas en distintas áreas de trabajo y que por lo menos tengan un campo en común.
SELECT 1
USE empleado INDEX empleado.IDX
SELECT 2
USE departamento INDEX departamento.IDX
SELECT 1
SET RELATION TO cod_dpto INTO 2
En el ejemplo anterior empleado es la tabla padre y departamento la tabla hija, la relación de se da por medio del capo en común cod_dpto.
El generador de bases de dato
Almacena información sobre tablas, índices y otros temas relacionados. Un contenedor de base de datos en verdad es una tabla de FoxPro con la extensión .DBC. Sus campos memo relacionados están en una tabla del mismo nombre con la extensión .DCT.
Los DBC son esencialmente diccionarios de datos activos. Su representación visual de un modelo de datos de aplicación visual es precisa en la documentación y comunicación de las relaciones entre las tablas de sus aplicaciones.
Las relaciones más comunes entre tablas:
De uno a uno: Ejemplo de una llave primaria a otra llave primaria.
De uno a muchos: Ejemplo de una llave primaria a una regular o foránea.
Práctica 3.
Haciendo uso de los conocimientos adquiridos en Análisis de Sistemas, normaliza tu tabla de inventario y construye una base de datos del inventario que por lo menos tenga las tablas: Productos, Proveedores y Marca. Construye el diagrama de Entidad - Relación con su cardinalidad y realiza la estructura de la base de datos en Visual FoxPro.
Después de que hayas relacionado la estructura de tu base de datos, has la siguiente prueba para verificar si la base de datos esta bien construida.
Agrega a la tabla de Productos 20 registros, a la de proveedores 3 registros y a marcas 12 registros, tomando en cuenta que deben de tener datos en común como por ejemplo:
MO25 - Monitor de 14" - ACER - 1080.00 - Procom S.A.
Para verificar la relación de los datos deberás realizar los siguientes pasos:
Elige el menú Ventana - Sesión de datos.
Te aparece la ventana de sesión de datos, luego elige el botón Abrir y selecciona una de las tablas.
Has lo mismo con las otras tablas.
Ya abiertas las tablas, selecciona la tabla de proveedores y has clic en el botón Relaciones, luego selecciona la tabla Marca y elige el campo con el cual armaras tu relación.
Si te aparece el cuadro expresiones, selecciona el campo de la tabla de la cual armaras la relación.
Luego has clic otra vez en la tabla proveedores y da clic en el botón Relaciones.
Repite los pasos anteriores solo que esta vez elige la tabla de producto, de modo que al finalizar te quede de la siguiente forma.
Ahora selecciona el botón Examinar para cada tabla y navega en la tabla proveedores, los datos de las otras tablas aparecerán relacionados con ella, de lo contrario revisa tu relación.
Prueba con la relación Producto - Marca - Proveedores, Marca - Productos - Proveedores.
3. Programación.
Conceptos.
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 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:
X=3
STORE "lunes" TO día
Para solamente crearlas:
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
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:
Base de datos: Todos los que sirven para manipular bases de datos, tablas y campos.
Entorno: Entorno del sistema operativo y de Visual Fox Pro.
Acceso compartido a datos: Acceso multiusuario a tablas y base de datos.
Entrada y salida: Los que permiten la interfaz entre la computadora y el usuario.
Programación: Los que tienen relación con el entorno de desarrollo de aplicaciones.
Funciones
Son procesos internos programadores que pueden ser llamados desde cualquier punta de Visual Fox lo que diferencia de los mandatos de las funciones es que estas devuelven un valor. Aceptan una serie de parámetros, y se reconocen por el uso de paréntesis para encerrar los argumentos, por ejemplo DATE( ) y TIME ( ).
Las funciones se dividen de la siguiente forma:
Tipos de datos
Funciones de manejo de cadenas de caracteres.
Funciones de conversión de tipos
Funciones de fecha y hora
Funciones de manejo de valores numéricos
Funciones definidas por los usuarios (FDU)
Practica 4
Realiza los siguientes programas utilizando programación simple (programas .PRG) y da solución a las siguientes situaciones.
Desplegar el valor a cobrar por llamadas telefónicas locales, si se cobra $0.09 cada llamada, haciendo hasta 100 llamadas, $0.08 por 200, $0.07 por 300 y $0.06 por más de trescientos, teniendo en cuenta también que por llamadas internacionales la tarifa es fija de $1.93 si son diurnas y $1.75 si son nocturnas, cada una de estas tarifas esta medida en minutos.
Calcular la utilidad que un trabajador recibe en el reparto de utilidades si éste se le asigna como porcentaje de un salario mensual que depende de su antigüedad en la empresa de acuerdo con esta tabla:
Tiempo Utilidad
Menos de un año 5%
de 1 hasta menos 2 años 7%
2 años a menos de 5 años 10%
de 5 años a más 15%
Determinar la cantidad de dinero que recibirá un trabajador por concepto de las horas trabajadas en una empresa, sabiendo que cuando las horas extras de trabajo exceden de 40, el resto se considera horas extras y que éstas se pagan al doble de una hora normal cuando no exceden de 8; si las horas extras exceden de 8 se pagan al doble más el 70% de la hora normal, las horas extras no exceden de 55.
Realice un programa en el cual pida el nombre completo de una persona y este indique cuantas vocales y cuantas consonantes tiene.
Realice un programa o diferentes programas que permita un mantenimiento de una tabla de direcciones.
Programación orientada a objetos
La POO intenta ser un mejor sistema para el desarrollo de aplicaciones. Como toda técnica de programación, si se hace mal puede ser desastrosa.
Una de las mejoras que se tiene con la POO es el permitir afrontar programas más complejos y de mayor tamaño con menor esfuerzo. El hecho de trabajar con pequeños elementos bien definidos, como son los objetos, nos permite aislar cada componente de la aplicación, del resto y de esa forma aprovechar en mayor medida nuestro esfuerzo.
Elementos de la POO
Clase y objeto: la clase es la generalización de los objetos y los objetos son la concreción de la clase. Como ejemplo podemos observar los botones de un entorno gráfico, donde definimos que la clase botón es la generalización de las propiedades y comportamientos de todos los botones de los entorno gráficos.
Definir una clase: las clases son la descripción de los elementos comunes de los objetos que generalizan. Así las clases se definen y pueden ser usadas para crear innumerables objetos de este tipo. Para definir una clase utilizaremos una sencilla sintaxis de VFP.
DEFINE CLASS NombreClase AS Clasebase
Para poder utilizar esta definición debemos incluirla en un fichero .PRG y cargado con SET PROCEDURE TO o bien incluirla al final de nuestro fichero .PRG.
Crear un objeto: ya podemos crear objetos basado en esta clase, para ello utilizaremos la siguiente expresión:
Variable1 = CREATEOBJECT("NombreClase")
Propiedades: Como hemos dicho, las propiedades son los datos que manejan las clases. Estas propiedades se declaran en la definición de la clase y permanecen en todo momento asociados a los objetos CREADOS bajo esa clase.
Métodos: el otro elemento característico de una clase son los métodos. Los métodos son acciones que pueden realizar los objetos, es decir, son funciones o procedimientos asociados a este tipo objeto.
Mensajes: Cuando llamamos a un método de un objeto se dice que estamos enviando un mensaje al objeto para que realice una determinada acción.
Operador this: Cuado vamos a utilizar una propiedad o un método de la clase, debemos anteponer al operador punto el operador THIS, para indicar que se trataran las propiedades del objeto que recibe el mensaje, es decir, que ha sido invocado, y no para otro.
Las propiedades mantienen valores diferentes para cada uno de los objetos, pero los métodos comparten su código entre todos los objetos de una clase. Un método varía en la medida que las propiedades del objeto que lo llama son diferentes, por ello es tan importante el operador THIS.
Ocultación: Una de las mejoras que implementa la POO, es la posibilidad de limitar el acceso a determinadas propiedades o métodos. Con ello conseguimos que la utilización de la clase se haga de forma ordenada.
Las propiedades o métodos protegidos sólo son utilizables desde los métodos pertenecientes a esta clase y no pueden usarse directamente por otros programas.
Al igual que podemos proteger propiedades, podemos proteger métodos. De esta forma podemos definir métodos que sólo sean usados por otros métodos de la clase y no puedan ser invocados a partir de los objetos de esta clase. Para ello basta colocar la cláusula PROTECTED antes de PROCEDURE.
Polimorfismo: Cuando realizamos programación estructurada debemos tener cuidado de no llamar con el mismo nombre a dos variables o a dos procedimientos, sin embargo en la POO podemos llamar a un método o a una propiedad de una clase de igual forma que un método o propiedad de otra. Esta característica es lo que se denomina polimorfismo.
Eventos: Existe una serie de métodos especiales, que normalmente no se ejecutan por ser invocados de forma explícita, como los que hemos definido hasta ahora, sino que por denominarse de una forma determinada son lanzados cuando "pasa algo", es decir, cuando se produce un evento. Estos eventos pueden ser un clic, el movimiento del ratón, una pulsación de tecla, etc.
Conclusiones
La POO es un conjunto de conceptos interrelacionados que difícilmente se entiende unos sin los otros. La POO está aquí y no deberíamos ignorarla por más tiempo. Posiblemente no es necesario este tipo de programación, pero es realmente muy recomendable, es seguro que no soluciona todos los problemas, pero es mucho más sencillo el desarrollo, tendremos que esforzarnos un poco al principio, pero nuestro esfuerzo se verá sobradamente recompensado. En definitiva la PROGRAMACIÓN ORIENTADA A OBJETO es una mejor forma de programar.
Ejemplo:
DEFINE EL OBJETO formu
formu = CREATEOBJECT("Ejemplo")
DEFINE EL OBJETO boton
formu.ADDOBJECT("boton","boton")
formu.SHOW
READ EVENT
CLASE DEL OBJETO formu
DEFINE CLASS ejemplo AS FORM
MOVABLE=.F.
CLOSABLE=.F.
CAPTION="EJEMPLO DE POO"
AUTOCENTER=.T.
ENDDEFINE
CLASE DEL OBJETO boton
DEFINE CLASS boton AS COMMANDBUTTON
VISIBLE=.T.
CAPTION="PRESIONE AQUI"
LEFT=125
TOP=65
HEIGHT=100
PROCEDURE CLICK
IF MESSAGEBOX("ACABAS DE UTILIZAR POO",0+48)=1
CLEAR EVENT
ENDIF
ENDDEFINE
Fin del programa
4. Formularios
Conceptos
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, así como crear barras de herramientas propias mediante la clase de base ToolBar incluida con Visual FoxPro.
Objetos y propiedades básicas
Form
El formulario es un objeto de tipo contenedor.
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
Uso
Caption
Título de la ventana o forma
Autocenter
Centra el formulario
ShowTips
Para que se muestren los Tooltips
Closable
Visualiza el botón cerrar de la ventana
MaxButton
Visualiza el botón maximizar
MinButton
Visualiza el botón minimizar
ControlBox
Visualiza el menú de control de la ventana
Eventos o Métodos
Uso
Init
Se dispara a la hora que se inicializan todos los objetos del formulario
Load
Se dispara antes que se inicialicen los objetos del formularios (antes que el init)
Destroy
Se dispara al cerrar el formulario
Unload
Se dispara después de Destroy
Viñetas y cuadros de texto
Las viñetas o Labels se utilizan para escribir etiquetas a los objetos.
Propiedad
Uso
Caption
Título de la ventana o forma
Alignment
Especifica la alinación del texto
Name
Nombre del objeto
BackColor
Color de fondo
ForeColor
Color de la letra
Evento o Método
Uso
Click
Se dispara al dar clic en el objeto
MouseDown
El evento MouseDown se desencadena al presionar un botón del mouse
MouseUp
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
Uso
ControlSource
Es la variable o nombre del campo al cual se hace referencia
Value
Contenido de la variable o campo referenciado al ControlSource
Visible
Si el control es visible al usuario
Enabled
Si el control esta habilitado o no
Evento o Método
Uso
Click
Se dispara al dar clic en el objeto
GotFocus
Cuando el control toma el enfoque
LostFocus
Cuando el control pierde el enfoque
Botones de comando
Un 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
Uso
Captio
Etiqueta del comando
Visible
Si el control es visible al usuario
Enabled
Si el control esta habilitado
Evento o Método
Uso
Click
Se dispara al dar clic en el objeto
SetlFocus
El cursor se va al objeto
LostFocus
Cuando el control pierde el enfoque
Refresh
Refresca el objeto
Init
Se dispara a la hora que se se inicializa el objeto
Botones de opción y casillas de verificación
Un control OptionButton muestra una opción que se puede activar o desactivar.
Propiedades
Uso
ControlSource
Es la variable o nombre del campo al cual hace referencia
Value
Contenido de la variable o campo referenciado en ControlSource
Visible
Si el control es visible al usuario
Enabled
Si el control esta habilitado o no
Evento o Método
Uso
InteractiveChange
Se dispara cuando modificamos el campo
Init
Se dispara a la hora en que se inicializa el objeto
Click
Se dispara al dar click en el objeto
Valid
Se dispara después de presionar Enter o Tab, se utiliza para validar
Refresh
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 combinados
Un control ListBox muestra una lista de elementos entre los cuales el usuario puede seleccionar uno o más. Si el número de elementos supera el número que puede mostrarse, se agregará automáticamente una barra de desplazamiento al control ListBox.
Si no se selecciona ningún elemento, el valor de la propiedad ListIndex será -1. El primer elemento de la lista es ListIndex 0 y el valor de la propiedad ListCount siempre es uno más que el mayor valor de ListIndex.
Los 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.
Un cuadro combinado aúna las características de un cuadro de texto y un cuadro de lista. Este control permite al usuario seleccionar opciones si escribe texto en el cuadro combinado o selecciona un elemento de la lista.
A diferencia de otros controles que contienen un único valor, por ejemplo la propiedad Caption de una etiqueta o la propiedad Text de un cuadro de texto, los cuadros de lista y los cuadros combinados contienen múltiples valores o una colección de valores. Tienen métodos integrados para agregar, quitar y recuperar valores de sus colecciones en tiempo de ejecución. Para agregar varios elementos a un cuadro de lista llamado Lista1, el código sería como el siguiente:
Lista1.AddItem "París"
Lista1.AddItem "Nueva York"
Lista1.AddItem "San Francisco"
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
Uso
ControlSource
Variable a que hace referencia (campo donde se almacena el valor de la lista)
RowSource
Tabla o query de los elementos de la lista
rowSourceType
Tipo de la fuente (si es tabla o query)
Visible
Si el control es visible al usuario
Enabled
Si el control esta habilitado o no
BoundColumn
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
Uso
Click
Se dispara al dar clic en el objeto
SetlFocus
El cursor se va al objeto
LostFocus
Cuando el control pierde el enfoque
Refresh
Refresca el objeto
Init
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
Uso
RecordSource
Nombre de la tabla
Visible
Si el control es viisible al usuario
Enabled
Si el control esta habilitado o no
ColumnCount
Número de columnas del Grid
DeleteMark
Permite registro para borrar (Aparece en la parte izquierda del Grid
Evento o Método
Uso
Click
Se dispara al dar clic en el objeto
SetlFocus
El cursor se va al objeto
LostFocus
Cuando el control pierde el enfoque
Refresh
Refresca el objeto
Init
Se dispara a la hora que se se inicializa el objeto
Imágenes, controles OLE, timer, Marcos de página
Un 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.
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.
Práctica 5
Diseña un formulario que represente y baucher de notas y que al escribir las notas calcule los promedios finales. (Puedes mejorarlo si los datos los vas almacenando en una tabla).
Realiza un programa que calcule el pago de una planilla donde el pago mínimo es de $240.00, construye la tabla y has que los datos se almacenen en ella, toma en consideración, el pago por horas, horas extras, los descuentos necesarios y las comisiones tomando en consideración la siguiente tabla:
Si las ventas < $1700.00 no hay comisión
Si las ventas>=$1700.00 y <$2500.00 la comisión es del 3%
Si las ventas>=$2500.00 y <$3200.00 la comisión es del 5%
Si las ventas>=$3200.00 y <$3700.00 la comisión es del 7%
Si las ventas>=$3700.00 la comisión es del 10%
Utilizando tu base de datos de Inventario construye el mantenimiento respectivo sin utilizar el WIZARD.
Combinación de formularios y datos
La idea fundamental del trabajo con formularios es la combinación que estos hacen con las bases de datos, para ello, un formulario se puede combinar desde una tabla, hasta, varias de ellas.
Para lograr esta combinación los formularios hacen uso de los objetos, los cuales se asocian a los datos, el objeto guarda la r
En este manual 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 es un gestor de base de datos, orientado a la programación de objetos.
Visual Fox Pro pertenece a la familia xbase lo que hace que su programación sea sencilla, estructurada y mas fácil de entender tanto para programadores principiantes como programadores expertos.
Nos enfocaremos en cinco áreas principales:
Base de datos: Trata sobre el diseño, creación y manipulación de tablas libres o tablas con integridad referencial (base de datos)
Programción: En esta parte seremos capaces de identificar y aplicar las estructuras básicas de programación y conocer aspectos sobre la programación orientada a objetos.
Formularios: Aplicaremos conocimientos para la integración de una interfaz con el usuario y base de datos.
Informes: Aprenderemos a diseñar las salidas de los sistemas de información, haciendo uso de las herramientas que el programa ofrece.
SQL: En esta sección haremos uso del lenguaje SQL para manipular datos, creando así diferentes consultas o vistas.
2. Bases de datos.
Introducción
En este manual mostraremos lo básico pero también puedes consultar algún libro de Visual FoxPro pues todo será para tu desarrollo, en las bibliotecas o en las librerías. FoxPro es un lenguaje de mucha rapidez, esto lo convierte en un lenguaje de los más rápidos en el mercado, FoxPro es también uno de los lenguajes de programación que contiene mucha potencia en el manejo de las bases de datos.
Conceptos Básicos
Base de datos es un conjunto de datos almacenados en campos y registros, es decir que la base de datos esta conformada por estos dos elementos. Así, por ejemplo:
Base de datos (Campos)
-------------------------------------------------------------------------------
(Nombre de las variables) Nombre Edad Sueldo
-------------------------------------------------------------------------------
(Registros) José Mendoza 19 2,568.52 Omar Mendoza 20 3,759.45
------------------------------------------------------------------------------
Los campos son los que están en vertical y los registros llamados también datos, son los que están en horizontal.
Componentes de Interfaz
Algunas herramientas más utilizadas son:
Ventana Examinar: una vista, tipo hoja de cálculo, de una tabla.
Ventana Código: para desplegar código asociado a varios eventos en los formularios y controles. Cuando un evento se dispara el código se ejecuta.
Ventana Depuración: permite examinar variables de memoria o valores campos y establecer puntos de interrupción. La ejecución del programa se detiene cuando una variable de memoria o una expresión con un punto de interrupción cambian de valor.
Comando Opciones (Menú de Herramientas): permite controlar la configuración de docenas de características en el entorno FoxPro, incluidos todos los comandos SET, así como planillas y bibliotecas de clases.
Ventana Propiedades: permite establecer propiedades en una buena cantidad de generadores, incluidos los generadores de formularios, informes etiquetas y de las bases de datos, también proporciona acceso a propiedades, métodos y código de eventos.
Administrador de Proyectos: un diseño completamente novedoso de FoxPro para Windows, este administrador de proyectos administra todos los componentes de un proyecto en cinco grupos: Bases de datos (con extensión .DBC), tablas libres (con extensión .DBF), vistas locales y remotas, conexiones, etc.
Generador de consultas: una recodificación completa del RQBE (Consulta Relacional Ejemplificada), esta herramienta maneja todos los aspectos de construir una consulta.
Barras de herramientas FoxPro: proporciona a los generadores aplicaciones más de una docena de barras de herramientas para colocar toda la herramienta para varias tareas justo al alcance de sus dedos. Además, puedes diseñar tus propias barras de herramientas en conjunción con formularios, para proporcionar a los usuarios el mismo tipo de acceso instantáneo a las herramientas.
Generadores
Los generadores son entornos de trabajo en los que se construyen componentes de una aplicación de FoxPro.
En la siguiente lista te mostrare algunos generadores:
Generador de clases Para construir objetos reutilizables.
Generador de Bases de Datos Para organizar los datos en tablas y documentar las relaciones entre tablas.
Generador de formularios Para diseñar las pantallas de la aplicación.
Generador de consulta Para construir conjuntos de datos utilizados en reportes y en pantallas de sólo lectura.
Generador de informes Para construir informes para la pantalla o la impresora.
Generador de menús Construye el sistema de menús que ejecuta una aplicación.
Generador de tablas Administra el formato de las tablas utilizadas en la aplicación.
Generador de cuadrículas Permite aprender cómo las configuraciones de la propiedad de cuadrícula del objeto controlan la operación de la cuadrícula.
Asistentes
Son conjunto de cuadro de diálogos que te ayudan paso a paso a crear una determinada aplicación, por ejemplo un formulario, etc.
Asistente para formularios: Construye "Pantallas instantáneas" con la estructura de las tablas basándose en clases prediseñadas, incluidos efectos especiales en las pantallas y botones de navegación ínter construidos.
Asistente para documentación: Documenta la aplicación.
Asistente para informes: Diseña informes, sencillos o complejos, utilizando un poco más que la estructura de las tablas.
Asistente para tablas: Útil para hacer tablas sencillas
Barras de Herramientas
El propósito de que hayan estas barras es para hacerte un poco más fácil el trabajo, es decir que el uso que le dará a la ventana de comandos será un poquito reducido.
Paleta de colores creo que te imaginas que es la barra de los colores en función RGB. Bueno RGB significa (Rojo, Verde y Azul)
Generador de bases de datos en esta barra se manejan el entorno de datos, iconos para: crear, agregar, y quitar una tabla así, como también modificar, vista remota o local, examinar una tabla o editar procedimientos almacenados en el contenedor de la base de datos.
Generador de formularios esta barra te permite el paso rápido de uno a otro entre varios elementos usados en el diseño de pantallas: el entorno de los datos, la ventana propiedades, la ventana código la barra Controles de formularios, la paleta de colores, la barra de herramientas. Distribución, entre otros.
Presentación Preliminar para que una vez diseñado un informe puedas apreciarlo como te quedará y si no te gusta pues lo podrás modificar.
Estándar Este lo verás cuando inicies FoxPro, proporciona acceso al generador de formularios y al Generador de informes, a bases de datos de impresión consultan tablas, conexiones, vistas, etiquetas, programas, clases, archivos de texto y menús.
Administrador de Proyectos
Estos proyectos están integrados por el Administrador de proyectos, quien mantiene la pista de los componentes de la aplicación. Conforme se agregan componentes a un proyecto, (Estas son las carpetas o nombre de los menús del Administrador) FoxPro los colecta bajo alguno de los siguientes encabezados:
Datos: las bases de datos (y todos los elementos que pueden describir), incluidas las tablas, vistas locales y remotas, conexiones y procedimientos almacenados, así como tablas libres y consultas.
Documentos: formularios, etiquetas e informes.
Bibliotecas de clases: repositorios de objetos usados en la aplicación.
Código: los archivos con extensión .PRG que contienen código que no está asociado con un formulario, así como bibliotecas API y archivos llamados por la aplicación.
Otros: menús, archivos de texto y otros, incluyendo mapas de bits.
La barra de herramientas
En FoxPro hay muchos botones, estos botones pertenecen a la barra de herramientas de VFP. También existen otras barras de herramientas. Se hace clic en el menú Ver, aparece una sola opción de barras de herramientas. Sólo haz clic en la barra que quieres activar y aparecerá al igual que la estándar. Algunas de estas barras ya las vimos anteriormente, ¿recuerdas?.
Estructura de un .BDF
Los datos en FoxPro se almacenan en forma de tablas, estas tablas son las bases de datos pues la extensión de estas bases de datos es .DBF aunque también hay otras que se verá más adelante. Los DBF comienzan con una breve descripción de los datos que están en la tabla.
Escritorio de Visual FoxPro
Para ingresar a Visual FoxPro tienes que presionar el botón de inicio / todos los programas / Microsoft Visual Studio 6.0 /Microsoft Visual FoxPro 6.0 (versión windows XP).
inicio / programas / Microsoft Visual Studio 6.0 /Microsoft Visual FoxPro 6.0 (versión windows estándar).
Aparecerá en tu pantalla la siguiente ventana:
Escritorio de Visual FoxPro
Configuración de Visual FoxPro 6.0
Cuando se carga FoxPro, lee un archivo llamado CONFIG.FPW en el directorio VFP. CONFIG.FPW es un archivo de texto ASCII y contiene instrucciones que se leen al momento de iniciar y se convierten en valores predeterminados de la sesión de FoxPro.
He aquí algunos de los elementos que se fijan en la configuración del sistema:
SAFETY = OFF && no avisa antes de sobrescribir archivos
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
Comandos de configuración (SET)
Los anteriores son comandos los cuales se pueden modificar utilizando los comandos que inician con la instrucción SET desde la ventana de comandos, por ej:
SET DEFAULT TO A: && establece el dispositivo y el directorio
Por ejemplo si los archivos que se van a utilizar se encuentran en el directorio C:programastransmisióndatos, escribiremos el comando SET de la siguiente forma:
SET DEFAULT TO C:programastransmisióndatos.
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 tablas
Diseñador de tablas
El diseñador de tablas es una ventana donde podrás diseñar la estructura de un archivo de base de datos o tabla.
Tipos de Campos
Los campos no deben de contener caracteres especiales, fuera del carácter "Guión bajo", y tampoco puede empezar con un número. Pueden ser cuales quiera de varios tipos:
Carácter: Cualquier cosa que se pueda teclear, puede ir en un campo de caracteres. Un carácter es lo mismo que un byte y un byte puede tener cualquier valor ASCII hasta 255, con unas cuántas excepciones.
Numérico: Hasta un límite de 18 dígitos, con tantas cifras decimales como quieras. Los enteros se almacenan en este formato y un nuevo tipo de dato "moneda" se usa generalmente para dinero.
Flotante: Este no lo utilizaremos en este manual pues sólo sirve por compatibilidad con dBASE V, es equivalente al formato numérico.
Fecha: Para almacenar la fecha en un formato interno numérico, pero su validación y representación se controlan con este tipo de campo.
Lógico: Éste, ya sea verdadero o falso, es representado por T o F, para verdadero o falso respectivamente.
Memo: Representado en su estructura de registros como un campo de caracteres de longitud 10. Estos campos almacenan en una segunda tabla con la extensión .FPT. Pueden ser casi de cualquier tamaño.
General: Éstos también son campos memos, excepto que usualmente almacenan otros tipos de objetos además de texto como gráficos.
Fecha-hora: incluye la hora después de la fecha, en el formato [MM/DD/AA hh:mm:ss].
Moneda: Es un campo numérico e incluye cuatro cifras decimales.
Imagen: Usado para guardar imágenes.
Carácter binario: Campos de caracteres no sujetos a traducciones de páginas de códigos.
Memo binario: Campos memo con la misma característica NOCPTRANS.
Abrir y cerrar tablas.
Para abrir un DBF en el área de trabajo 1 cuando ninguna otra tabla está abierta, teclee en la ventana de comando (ventanita pequeña que aparece generalmente al lado izquierdo):
USE nombre de la tabla
Nota: Un área de trabajo es un espacio de memoria reservado para que allí se manipulen los datos de la tabla.
Puede especificar: USE nombre de la tabla IN 3 pero recuerda para abrir o cerrar una tabla tiene que estar ya creada. Para reservar un área de trabajo puedes digitar:
SELECT 0 && 0 es el número de área de trabajo
Este comando también puede ser SELECT nombre de la tabla / alias SELECT es para seleccionar la tabla a trabajar (abrir, cerrar, modificar, etc.) USE nombre de la tabla (y se abrirá el cuadro de dialogo abrir, pues FoxPro no sabe que tabla abrir debes abrir la que necesites).
Si necesitas tener varias tablas abiertas puedes hacer lo siguiente:
SELECT A
USE tabla1
SELECT B
USE tabla2
SELECT C
USE tabla3
Y cuando quiera utilizar una de las tablas solo tienes que llamar el área de trabajo como por ejemplo si vas ha utilizar la tabla2 escribe en la ventana de comandos o dentro de un programa SELECT B.
Para cerrar tablas o una sesión de tablas abiertas puedes escribir los siguientes comandos:
CLOSE ALL && cierra todas las tablas abiertas
CLOSE DATABASE && cierra las bases de datos abiertas
O simplemente escribe USE.
Diseño de tablas
Primero hay que crear un directorio para almacenar tu trabajo (aunque esto no es necesario pero si vas a trabajar con un disco flexible o en un directorio distinto al que trae designado FoxPro tienes que hacerlo), para ello digita: MD ruta luego para que FoxPro trabaje con este directorio debes digitar:
SET DEFA TO ruta (nombre del directorio que se supone ya creaste con el comando md).
Bien ahora tienes varias opciones para crear la tabla:
1. digita CREATE nombre de la tabla.
2. haz clic en nuevo (new) luego selecciona tabla (table) luego digite el nombre de la tabla.
3. Ctrl + n y selecciona tabla (table) luego digite el nombre de la tabla
Después tendrás que darle un nombre a la tabla y lo guardas aparecerá el generador de tablas con las carpetas tabla e índice (si es VFP 6.0 estará también campos).
Ahora puedes introducir el nombre, el tipo y la longitud del campo en el orden correcto.
Por ejemplo:
Nombre Carácter 40
Dirección Carácter 40
Ciudad Carácter 22
Saldo monetario 8 (este es automático)
No oprimas enter porque el programa entenderá que la tabla ya esta terminada si quieres pasar a digitar el siguiente campo debe moverte con la tecla tab NO CON ENTER. Enseguida introduce datos a tu tabla. Si digitas LIST STRUCTURE (en la ventana de comandos), verás la estructura de tu tabla puedes borrar los campos si digitas DELETE NEXT numero de campo (2 por ejemplo), y puedes recuperarlo si digitas RECALL NEXT 2 y regresará.
Ahora puedes digitar BROWSE y veras los datos que introdujiste la tabla después de creada,
Si digitas SET SCAPE ON podrás detener algunos procesos cuando lo desees como el comando LIST pero aquí no será necesario pues se introducirán pocos datos en la tabla. tú puedes digitar LIST y ver los datos en forma rápida la sintaxis de LIST es:
LIST | FIELDS listacampos | TO PRINT | WHILE expresiondominio | FOR expresiondominio | OFF
FIELD digitas el nombre del campo o campos a visualizar. TO PRINT en para enviar la salida a la impresora. FOR seguido de una expresión de dominio, lista sólo aquellos registros que coincidan con la expresión. ejemplo LIST FOR ciudad ="San Salvador" el WHILE seria LIST WHILE ciudad = "San Salvador", el WHILE se utiliza para optimizar muchos aspectos del desempeño de FoxPro. OFF desactiva la opción de numeración de registros digítalos y notarás la diferencia.
Sum si digitas SUM saldo te sumará todos los saldos (registros) almacenados en este campo.
Cómo moverse en una tabla de FoxPro
Cuando utilizamos inicialmente una tabla de FoxPro, tú estás ubicado en el primer registro de la tabla. Puedes mover este puntero de registro imaginario alrededor de la tabla, en diversas formas:
Skip Mueve el puntero hacia adelante un registro
Skip-1 mueve el puntero hacia atrás un registro
Go TOP Mueve el puntero al primer registró
Go bottom Mueve el puntero al último registro en la tabla
Go 2 Mueve el puntero del registro al registro número 2.
* Prueba estos comandos primero digita uno de ellos y luego digita list y verás los resultados.
Practica 1
Según la siguiente hoja, evalua los datos que pudan servir para realizar una tabla de Inventario, construye la estructura, tomando en cuenta algunos datos que puedan enriquecer la tabla.
Computadoras SYSTEM S.A.
Inventario físico al _____ de __________ del 2001
Código
Descripción
Marca
Exist.
Precio
Costo
Precio
Venta
Proveedor
M025
Monitor 14"
Acer
50
900.00
1080.00
Procom S.A.
M026
Monitor 12"
Acer
102
850.00
1020.00
Procom S.A.
M027
Monitor Radius
Acer
10
1100.00
1320.00
Procom S.A.
CA01
Case Mini tower Deluxe
ADS
300
105.00
126.00
Distribuidora SalCom
CA02
Case Desk Top
ADS
100
125.00
150.00
Distribuidora SalCom
IMC1
Impresor Color JET 1000
Canon
25
367.00
440.40
Procom S.A.
IMC2
Impresor color JET 2000
Canon
15
452.25
542.70
Procom S.A.
Agrega 20 registros a la tabla.
Utiliza los comandos Use, Browse, List y Display, según te indique el instructor y anota en tu cuaderno lo que pasa.
Manipulación de registros
Puedes utilizar diferentes tipos de comando para manipular los datos de tu tabla, estos comandos pueden utilizarse desde su modo más simple hasta su forma compuesta utilizando expresiones de dominio, por ejemplo:
LIST FOR país = "ES" && lista los registro que país = "ES"
He aquí algunos comandos con sus expresiones de dominio:
DISPLAY ALL
DISPLAY RECORD 5
GOTO 17
GO TOP
GO BOTTOM
SKIP -3
DELETE RECORD 6
LIST FOR precio >1200
BROWSE FOR precio >=900 .AND. precio <2500
GO 6
RECALL
PACK
ZAP
Mencionaremos otros comandos que son de gran ayuda al momento de manipular los datos:
APPEND
Agrega registros a la base de datos seleccionada
APPEND FROM
Agrega registros desde otra tabla al final de los registros de la tabla seleccionada
COPY FILE
Copia cualquier tipo de archivos
COPY STRUCTURE
Almacena la estructura de una base de datos en una nueva base
COPY TO
Copia datos de una base de datos a un archivo
COUNT
Determina el nùmero de registro en la base de datos
DISPLAY FILES
Muestra información de base de datos
DISPLAY MEMORY
Despliega la información de las variables de memoria
DISPLAY STATUS
Despliega información de la condición de FOX
DISPLAY STRUCTURE
Muestra la estructura de una base de datos
MODIFY COMMAND
Abre una ventana de modificación de texto
MODIFY STRUCTURE
Modifica la estructura de una base de datos
REPLACE
Actualiza los registros en una base de datos
Otro tipo de comandos útiles para la manipulación de tablas y registros son las FUNCIONES, las cuales se dividen en:
Cadenas o manejo de caracteres: este grupo de funciones gestiona el manejo de caracteres.
Matemáticas: permiten efectauar operaciones con valores numéricos.
Manejo de fechas y hora: se encarga de gesstionar las variables de tipo fecha.
Lógicas: Se encargan de efectuar operaciones de tipo lógico.
Funciones de converción de tipos: conviertes variables de un tipo a otro.
Antes de mostrar ejemplos definiremos dos componentes que se hacen necesarios en la manipulación de datos:
Constante: Son valores predefinidos que no cambian nunca por ejemplo: valor1=15478, cadena="abcd".
Variable: Se utilizan como identificadores de secciones de memoria donde se guarda información, por ejemplo: var1=campo1, var2=tabla.campo.
Las variables se pueden definir como: publicas, privadas y locales ejemplo:
PUBLIC nombre, apellidos
PRIVATE sueldo
Operadores relacionales
Los operadores se utilizan en tiempo de ejecuciòn para unir dos o màs elementos del lenguaje.
Operadores aritméticos
( ) Agrupa subexpresiones
**, ^ Exponenciación
*, / Multiplicaciòn y división
% Módulo (resto de la división)
+, - Suma y resta
Operadores relacionales
< Menor que
> Mayor que
<= Menor o igual que
>= Mayor o igual que
= igual a
<>, #, ¡=Distinto de
$ Contenido en
Ahora te daremos unos ejemplos con funciones en Visual FoxPro.
* Declaración de variables
cadena1 = SPACE(15)
cadena2 = SPACE(15)
número = 0
cuenta = 0
* Asignación de datos
cadena1 = "abcd efgh ijkl"
* utilizando la función LEN para contar el número de la cadena
? LEN(Cadena1) && imprime en pantalla 14
? Cadena2= SUSBTR(cadena1,1,4) && imprime en pantalla abad
? DTOC(DATE())
? SIN (0)
Índices
Cuando se insertan registros en una tabla estos no se encuentran ordenados, para ello es necesario utilizar comandos que nos permitan ordenar los registros de acorde a la información que necesitamos.
Comando SORT
Clasifica un archivo de base de datos
SINTAXIS
SORT TO <archivo> ON <campo> [/A] [/D] [/C]
[,<campo2> [/A] [/D] [/C]..]
[ASCENDING | DESCENDING]
[<alcances>]
[FOR <expresión lógica1>] [WHILE <expresión lógica2>]
[FIELDS <lista de campos>]
EJEMPLO:
USE persona
SORT TO persona_ordenada ON nombre
USE persona_ordenada
Persona
persona_ordenada
Juan Martínez
Roxana Cuellar
Margarita Rosales
Pedro López
Eduardo Garay
Eduardo Garay
Juan Martínez
Margarita Rosales
Pedro López
Roxana Cuellar
Comando INDEX ON
Crea un índice en un archivo de índices compuestos o bien un archivo de índice simple.
SINTAXIS
INDEX ON campo TO nombre de archivo IDX | TAG etiqueta
[OF archivo CDX][FOR expresión lógica] [COMPACT][ASCENDING | DESCENDING][CANDIDATE |UNIQUE ][ADDITIVE]
EJEMPLO:
USE persona
INDEX ON nombre TO persona.idx
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.
Practica 2
Abre la tabla de inventario.
Escribe la siguiente instrucción SORT ON codigo TO inventarioordenado.
Aplica un BROWSE y abre la nueva tabla y BROWSE, compara ambas.
Cierra las tablas en uso escribiendo la siguiente sentencia CLOSE ALL.
Haremos una copia del archivo inventario.dbf COPY FILE inventario.dbf TO inventa.dbf.
Ahora ordenaremos la tabla por medio de un índice escribiendo la siguiente sentencia INDEX ON CODIGO TO CODIGO; le estas diciendo que el índice va ha ser por medio de código y que el archivo índice se llamará CODIGO solo que este con extensión IDX, visualiza el archivo escribiendo DIR *.IDX.
Ahora cierra la tablas. Y vuelve a abrirla escribiendo USE INVENTARIO INDEX CODIGO.
Busca un registro haciendo uso del comando SEEK, de la forma siguiente SEEK <expresión> por ejemplo SEEK "MO01"; recuerda si el campo es de tipo numérico no se le colocan comillas.
Ahora DISPLAY, y veras que te aparece el registro que buscaste por medio del índice.
Ejercicio:
Crea una tabla que guarde los datos de tus compañeros y pon un índice por el campo que creas conveniente y práctica lo anterior.
También puedes indexar una tabla, desde el generador de tablas de FoxPro marcando la casilla que se muestra en la figura:
Primero tienes que seleccionar el campo que servirá como índice, luego selecciona la ficha de modo que te aparezca la siguiente pantalla:
Tienes que elegir el tipo de de índice el cual le indicara a la tabla que tipo de índice tiene. Los tipos de índices son los siguientes:
Principal: No admites claves duplicadas, actúa como referente a un registro de una tabla, de forma que no puede haber dos registros con la misma clave.
Candidato: Este índice tampoco admite claves duplicadas. Puede haber más de uno por tabla.
Único: En este índice sólo se guardan aquellos valores que sean distintos entre sí, pero sí admite registros con valores duplicados.
Regular: Es el índice típico. Admite claves duplicadas.
Relación de Tablas
Normalización
La única y más importante técnica en el desarrollo de base de datos es la capacidad de observar los datos y ver la base de la estructura de los mismos. Al tener varios datos desordenados y organizarlos en diferentes tablas relacionadas entre sí, a este proceso se le llama normalización.
Vincular tablas
SET RELATION TO
Crea una relación entre una base de datos padre, la que deberá estar abierta en el área de trabajo actualmente seleccionada, y una base de datos hija, ya abierta en otra área de trabajo.
SINTAXIS
SET RELATION TO [<expresión1> INTO <expresión numérica1>|<expresión carácter1>]
Ejemplo:
Para relacionar tablas tienes que tener do o más tablas abiertas en distintas áreas de trabajo y que por lo menos tengan un campo en común.
SELECT 1
USE empleado INDEX empleado.IDX
SELECT 2
USE departamento INDEX departamento.IDX
SELECT 1
SET RELATION TO cod_dpto INTO 2
En el ejemplo anterior empleado es la tabla padre y departamento la tabla hija, la relación de se da por medio del capo en común cod_dpto.
El generador de bases de dato
Almacena información sobre tablas, índices y otros temas relacionados. Un contenedor de base de datos en verdad es una tabla de FoxPro con la extensión .DBC. Sus campos memo relacionados están en una tabla del mismo nombre con la extensión .DCT.
Los DBC son esencialmente diccionarios de datos activos. Su representación visual de un modelo de datos de aplicación visual es precisa en la documentación y comunicación de las relaciones entre las tablas de sus aplicaciones.
Las relaciones más comunes entre tablas:
De uno a uno: Ejemplo de una llave primaria a otra llave primaria.
De uno a muchos: Ejemplo de una llave primaria a una regular o foránea.
Práctica 3.
Haciendo uso de los conocimientos adquiridos en Análisis de Sistemas, normaliza tu tabla de inventario y construye una base de datos del inventario que por lo menos tenga las tablas: Productos, Proveedores y Marca. Construye el diagrama de Entidad - Relación con su cardinalidad y realiza la estructura de la base de datos en Visual FoxPro.
Después de que hayas relacionado la estructura de tu base de datos, has la siguiente prueba para verificar si la base de datos esta bien construida.
Agrega a la tabla de Productos 20 registros, a la de proveedores 3 registros y a marcas 12 registros, tomando en cuenta que deben de tener datos en común como por ejemplo:
MO25 - Monitor de 14" - ACER - 1080.00 - Procom S.A.
Para verificar la relación de los datos deberás realizar los siguientes pasos:
Elige el menú Ventana - Sesión de datos.
Te aparece la ventana de sesión de datos, luego elige el botón Abrir y selecciona una de las tablas.
Has lo mismo con las otras tablas.
Ya abiertas las tablas, selecciona la tabla de proveedores y has clic en el botón Relaciones, luego selecciona la tabla Marca y elige el campo con el cual armaras tu relación.
Si te aparece el cuadro expresiones, selecciona el campo de la tabla de la cual armaras la relación.
Luego has clic otra vez en la tabla proveedores y da clic en el botón Relaciones.
Repite los pasos anteriores solo que esta vez elige la tabla de producto, de modo que al finalizar te quede de la siguiente forma.
Ahora selecciona el botón Examinar para cada tabla y navega en la tabla proveedores, los datos de las otras tablas aparecerán relacionados con ella, de lo contrario revisa tu relación.
Prueba con la relación Producto - Marca - Proveedores, Marca - Productos - Proveedores.
3. Programación.
Conceptos.
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 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:
X=3
STORE "lunes" TO día
Para solamente crearlas:
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
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:
Base de datos: Todos los que sirven para manipular bases de datos, tablas y campos.
Entorno: Entorno del sistema operativo y de Visual Fox Pro.
Acceso compartido a datos: Acceso multiusuario a tablas y base de datos.
Entrada y salida: Los que permiten la interfaz entre la computadora y el usuario.
Programación: Los que tienen relación con el entorno de desarrollo de aplicaciones.
Funciones
Son procesos internos programadores que pueden ser llamados desde cualquier punta de Visual Fox lo que diferencia de los mandatos de las funciones es que estas devuelven un valor. Aceptan una serie de parámetros, y se reconocen por el uso de paréntesis para encerrar los argumentos, por ejemplo DATE( ) y TIME ( ).
Las funciones se dividen de la siguiente forma:
Tipos de datos
Funciones de manejo de cadenas de caracteres.
Funciones de conversión de tipos
Funciones de fecha y hora
Funciones de manejo de valores numéricos
Funciones definidas por los usuarios (FDU)
Practica 4
Realiza los siguientes programas utilizando programación simple (programas .PRG) y da solución a las siguientes situaciones.
Desplegar el valor a cobrar por llamadas telefónicas locales, si se cobra $0.09 cada llamada, haciendo hasta 100 llamadas, $0.08 por 200, $0.07 por 300 y $0.06 por más de trescientos, teniendo en cuenta también que por llamadas internacionales la tarifa es fija de $1.93 si son diurnas y $1.75 si son nocturnas, cada una de estas tarifas esta medida en minutos.
Calcular la utilidad que un trabajador recibe en el reparto de utilidades si éste se le asigna como porcentaje de un salario mensual que depende de su antigüedad en la empresa de acuerdo con esta tabla:
Tiempo Utilidad
Menos de un año 5%
de 1 hasta menos 2 años 7%
2 años a menos de 5 años 10%
de 5 años a más 15%
Determinar la cantidad de dinero que recibirá un trabajador por concepto de las horas trabajadas en una empresa, sabiendo que cuando las horas extras de trabajo exceden de 40, el resto se considera horas extras y que éstas se pagan al doble de una hora normal cuando no exceden de 8; si las horas extras exceden de 8 se pagan al doble más el 70% de la hora normal, las horas extras no exceden de 55.
Realice un programa en el cual pida el nombre completo de una persona y este indique cuantas vocales y cuantas consonantes tiene.
Realice un programa o diferentes programas que permita un mantenimiento de una tabla de direcciones.
Programación orientada a objetos
La POO intenta ser un mejor sistema para el desarrollo de aplicaciones. Como toda técnica de programación, si se hace mal puede ser desastrosa.
Una de las mejoras que se tiene con la POO es el permitir afrontar programas más complejos y de mayor tamaño con menor esfuerzo. El hecho de trabajar con pequeños elementos bien definidos, como son los objetos, nos permite aislar cada componente de la aplicación, del resto y de esa forma aprovechar en mayor medida nuestro esfuerzo.
Elementos de la POO
Clase y objeto: la clase es la generalización de los objetos y los objetos son la concreción de la clase. Como ejemplo podemos observar los botones de un entorno gráfico, donde definimos que la clase botón es la generalización de las propiedades y comportamientos de todos los botones de los entorno gráficos.
Definir una clase: las clases son la descripción de los elementos comunes de los objetos que generalizan. Así las clases se definen y pueden ser usadas para crear innumerables objetos de este tipo. Para definir una clase utilizaremos una sencilla sintaxis de VFP.
DEFINE CLASS NombreClase AS Clasebase
Para poder utilizar esta definición debemos incluirla en un fichero .PRG y cargado con SET PROCEDURE TO o bien incluirla al final de nuestro fichero .PRG.
Crear un objeto: ya podemos crear objetos basado en esta clase, para ello utilizaremos la siguiente expresión:
Variable1 = CREATEOBJECT("NombreClase")
Propiedades: Como hemos dicho, las propiedades son los datos que manejan las clases. Estas propiedades se declaran en la definición de la clase y permanecen en todo momento asociados a los objetos CREADOS bajo esa clase.
Métodos: el otro elemento característico de una clase son los métodos. Los métodos son acciones que pueden realizar los objetos, es decir, son funciones o procedimientos asociados a este tipo objeto.
Mensajes: Cuando llamamos a un método de un objeto se dice que estamos enviando un mensaje al objeto para que realice una determinada acción.
Operador this: Cuado vamos a utilizar una propiedad o un método de la clase, debemos anteponer al operador punto el operador THIS, para indicar que se trataran las propiedades del objeto que recibe el mensaje, es decir, que ha sido invocado, y no para otro.
Las propiedades mantienen valores diferentes para cada uno de los objetos, pero los métodos comparten su código entre todos los objetos de una clase. Un método varía en la medida que las propiedades del objeto que lo llama son diferentes, por ello es tan importante el operador THIS.
Ocultación: Una de las mejoras que implementa la POO, es la posibilidad de limitar el acceso a determinadas propiedades o métodos. Con ello conseguimos que la utilización de la clase se haga de forma ordenada.
Las propiedades o métodos protegidos sólo son utilizables desde los métodos pertenecientes a esta clase y no pueden usarse directamente por otros programas.
Al igual que podemos proteger propiedades, podemos proteger métodos. De esta forma podemos definir métodos que sólo sean usados por otros métodos de la clase y no puedan ser invocados a partir de los objetos de esta clase. Para ello basta colocar la cláusula PROTECTED antes de PROCEDURE.
Polimorfismo: Cuando realizamos programación estructurada debemos tener cuidado de no llamar con el mismo nombre a dos variables o a dos procedimientos, sin embargo en la POO podemos llamar a un método o a una propiedad de una clase de igual forma que un método o propiedad de otra. Esta característica es lo que se denomina polimorfismo.
Eventos: Existe una serie de métodos especiales, que normalmente no se ejecutan por ser invocados de forma explícita, como los que hemos definido hasta ahora, sino que por denominarse de una forma determinada son lanzados cuando "pasa algo", es decir, cuando se produce un evento. Estos eventos pueden ser un clic, el movimiento del ratón, una pulsación de tecla, etc.
Conclusiones
La POO es un conjunto de conceptos interrelacionados que difícilmente se entiende unos sin los otros. La POO está aquí y no deberíamos ignorarla por más tiempo. Posiblemente no es necesario este tipo de programación, pero es realmente muy recomendable, es seguro que no soluciona todos los problemas, pero es mucho más sencillo el desarrollo, tendremos que esforzarnos un poco al principio, pero nuestro esfuerzo se verá sobradamente recompensado. En definitiva la PROGRAMACIÓN ORIENTADA A OBJETO es una mejor forma de programar.
Ejemplo:
DEFINE EL OBJETO formu
formu = CREATEOBJECT("Ejemplo")
DEFINE EL OBJETO boton
formu.ADDOBJECT("boton","boton")
formu.SHOW
READ EVENT
CLASE DEL OBJETO formu
DEFINE CLASS ejemplo AS FORM
MOVABLE=.F.
CLOSABLE=.F.
CAPTION="EJEMPLO DE POO"
AUTOCENTER=.T.
ENDDEFINE
CLASE DEL OBJETO boton
DEFINE CLASS boton AS COMMANDBUTTON
VISIBLE=.T.
CAPTION="PRESIONE AQUI"
LEFT=125
TOP=65
HEIGHT=100
PROCEDURE CLICK
IF MESSAGEBOX("ACABAS DE UTILIZAR POO",0+48)=1
CLEAR EVENT
ENDIF
ENDDEFINE
Fin del programa
4. Formularios
Conceptos
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, así como crear barras de herramientas propias mediante la clase de base ToolBar incluida con Visual FoxPro.
Objetos y propiedades básicas
Form
El formulario es un objeto de tipo contenedor.
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
Uso
Caption
Título de la ventana o forma
Autocenter
Centra el formulario
ShowTips
Para que se muestren los Tooltips
Closable
Visualiza el botón cerrar de la ventana
MaxButton
Visualiza el botón maximizar
MinButton
Visualiza el botón minimizar
ControlBox
Visualiza el menú de control de la ventana
Eventos o Métodos
Uso
Init
Se dispara a la hora que se inicializan todos los objetos del formulario
Load
Se dispara antes que se inicialicen los objetos del formularios (antes que el init)
Destroy
Se dispara al cerrar el formulario
Unload
Se dispara después de Destroy
Viñetas y cuadros de texto
Las viñetas o Labels se utilizan para escribir etiquetas a los objetos.
Propiedad
Uso
Caption
Título de la ventana o forma
Alignment
Especifica la alinación del texto
Name
Nombre del objeto
BackColor
Color de fondo
ForeColor
Color de la letra
Evento o Método
Uso
Click
Se dispara al dar clic en el objeto
MouseDown
El evento MouseDown se desencadena al presionar un botón del mouse
MouseUp
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
Uso
ControlSource
Es la variable o nombre del campo al cual se hace referencia
Value
Contenido de la variable o campo referenciado al ControlSource
Visible
Si el control es visible al usuario
Enabled
Si el control esta habilitado o no
Evento o Método
Uso
Click
Se dispara al dar clic en el objeto
GotFocus
Cuando el control toma el enfoque
LostFocus
Cuando el control pierde el enfoque
Botones de comando
Un 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
Uso
Captio
Etiqueta del comando
Visible
Si el control es visible al usuario
Enabled
Si el control esta habilitado
Evento o Método
Uso
Click
Se dispara al dar clic en el objeto
SetlFocus
El cursor se va al objeto
LostFocus
Cuando el control pierde el enfoque
Refresh
Refresca el objeto
Init
Se dispara a la hora que se se inicializa el objeto
Botones de opción y casillas de verificación
Un control OptionButton muestra una opción que se puede activar o desactivar.
Propiedades
Uso
ControlSource
Es la variable o nombre del campo al cual hace referencia
Value
Contenido de la variable o campo referenciado en ControlSource
Visible
Si el control es visible al usuario
Enabled
Si el control esta habilitado o no
Evento o Método
Uso
InteractiveChange
Se dispara cuando modificamos el campo
Init
Se dispara a la hora en que se inicializa el objeto
Click
Se dispara al dar click en el objeto
Valid
Se dispara después de presionar Enter o Tab, se utiliza para validar
Refresh
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 combinados
Un control ListBox muestra una lista de elementos entre los cuales el usuario puede seleccionar uno o más. Si el número de elementos supera el número que puede mostrarse, se agregará automáticamente una barra de desplazamiento al control ListBox.
Si no se selecciona ningún elemento, el valor de la propiedad ListIndex será -1. El primer elemento de la lista es ListIndex 0 y el valor de la propiedad ListCount siempre es uno más que el mayor valor de ListIndex.
Los 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.
Un cuadro combinado aúna las características de un cuadro de texto y un cuadro de lista. Este control permite al usuario seleccionar opciones si escribe texto en el cuadro combinado o selecciona un elemento de la lista.
A diferencia de otros controles que contienen un único valor, por ejemplo la propiedad Caption de una etiqueta o la propiedad Text de un cuadro de texto, los cuadros de lista y los cuadros combinados contienen múltiples valores o una colección de valores. Tienen métodos integrados para agregar, quitar y recuperar valores de sus colecciones en tiempo de ejecución. Para agregar varios elementos a un cuadro de lista llamado Lista1, el código sería como el siguiente:
Lista1.AddItem "París"
Lista1.AddItem "Nueva York"
Lista1.AddItem "San Francisco"
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
Uso
ControlSource
Variable a que hace referencia (campo donde se almacena el valor de la lista)
RowSource
Tabla o query de los elementos de la lista
rowSourceType
Tipo de la fuente (si es tabla o query)
Visible
Si el control es visible al usuario
Enabled
Si el control esta habilitado o no
BoundColumn
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
Uso
Click
Se dispara al dar clic en el objeto
SetlFocus
El cursor se va al objeto
LostFocus
Cuando el control pierde el enfoque
Refresh
Refresca el objeto
Init
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
Uso
RecordSource
Nombre de la tabla
Visible
Si el control es viisible al usuario
Enabled
Si el control esta habilitado o no
ColumnCount
Número de columnas del Grid
DeleteMark
Permite registro para borrar (Aparece en la parte izquierda del Grid
Evento o Método
Uso
Click
Se dispara al dar clic en el objeto
SetlFocus
El cursor se va al objeto
LostFocus
Cuando el control pierde el enfoque
Refresh
Refresca el objeto
Init
Se dispara a la hora que se se inicializa el objeto
Imágenes, controles OLE, timer, Marcos de página
Un 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.
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.
Práctica 5
Diseña un formulario que represente y baucher de notas y que al escribir las notas calcule los promedios finales. (Puedes mejorarlo si los datos los vas almacenando en una tabla).
Realiza un programa que calcule el pago de una planilla donde el pago mínimo es de $240.00, construye la tabla y has que los datos se almacenen en ella, toma en consideración, el pago por horas, horas extras, los descuentos necesarios y las comisiones tomando en consideración la siguiente tabla:
Si las ventas < $1700.00 no hay comisión
Si las ventas>=$1700.00 y <$2500.00 la comisión es del 3%
Si las ventas>=$2500.00 y <$3200.00 la comisión es del 5%
Si las ventas>=$3200.00 y <$3700.00 la comisión es del 7%
Si las ventas>=$3700.00 la comisión es del 10%
Utilizando tu base de datos de Inventario construye el mantenimiento respectivo sin utilizar el WIZARD.
Combinación de formularios y datos
La idea fundamental del trabajo con formularios es la combinación que estos hacen con las bases de datos, para ello, un formulario se puede combinar desde una tabla, hasta, varias de ellas.
Para lograr esta combinación los formularios hacen uso de los objetos, los cuales se asocian a los datos, el objeto guarda la r
hola
yo soy nuevo en esto de la programacion, lo que pasa que a falta de programas que se adapten a a las necesidades de las actividades que uno realiza en el trabajo me he puesto a investigar algo sobre programacion, pero aun me falta mucho ppor aprender. necesito que alguen me ayude a realizar un programa para controlar un inventario, es decirque me sirva para llevar el arrastre diario de entradas y salidas de almacen, y que en un momento dado pueda yo imprimir un reporte de tales movimentos. tal vez tu me puedas ayudar. veo que dominas muy bien esto de la programacion en fox pro. te gradesco de antemano tu atencion- hasta pronto
Hector
yo soy nuevo en esto de la programacion, lo que pasa que a falta de programas que se adapten a a las necesidades de las actividades que uno realiza en el trabajo me he puesto a investigar algo sobre programacion, pero aun me falta mucho ppor aprender. necesito que alguen me ayude a realizar un programa para controlar un inventario, es decirque me sirva para llevar el arrastre diario de entradas y salidas de almacen, y que en un momento dado pueda yo imprimir un reporte de tales movimentos. tal vez tu me puedas ayudar. veo que dominas muy bien esto de la programacion en fox pro. te gradesco de antemano tu atencion- hasta pronto
Hector
Me podria ayudar con un demo o pantallas de un inventario de equipos es decir lo que es hardware y software quiero hacer un sistema y quiero un mode lo me podrias ayudar de ud muy att Byron
Tengo un programa de altas, bajas, cambios y reporte. El reporte tiene 2 opciones por pantalla e impresora, utilizo un grupo de comando de 2 opciones, lo que quiero hacer es que al estar en cualquiera de las 2 opciones al dar un enter me posicione en el primer cuadro de texto que es "de que rango" y me posiciona en el segundo cuadro de texto que es "a que rango", pero si utilizo el mouse si se va al primer cuadro de texto y yo lo que quiero es que tambien con un "enter" se vaya al primer cuadro de texto, necesito ayuda, gracias
Muy bueno aki encontre lo necesario gracias
tengo una duda
kisiera saber como le hago para pasar de un registro a otro de una tabla
use "C:pruebastabla1.dbf"
skip
thisform.text6.value=nombre
thisform.text7.value=grado
intente con esto pero solo pasa una vez y quiero que pase segun los datos registrados
sin son 20 registros que me pase 20 veces
ayuda!!
tengo una duda
kisiera saber como le hago para pasar de un registro a otro de una tabla
use "C:pruebastabla1.dbf"
skip
thisform.text6.value=nombre
thisform.text7.value=grado
intente con esto pero solo pasa una vez y quiero que pase segun los datos registrados
sin son 20 registros que me pase 20 veces
ayuda!!
gracias por tu ayuda pero me gustaria que me ayudaras a relizar un sistema de archivo, como debo empezar y que campos debo colocar , ya que nada mas se colocar los nombres y algunas cosas
como se realiza el siguiente programa:
elaborar un programa para un supermercado que lea 5 articulos y capture la cantidad y el valor de cada uno, al final totalice y calcule un iva global del 16%. si el valor exede los $450.000 realize una retencion del 3.5%.
ejemplo
articulo cantidad valor unitario total
reloj 10 20.000 200.000
camisa 5 43.200 216.000
zapatos 1 50.000 50.000
medias 3 12.000 36.000
corbata 1 63.500 63.500
subtotal 565.500
IVA +90.480
retencion -19.793
total a pagar 675.773
elaborar un programa para un supermercado que lea 5 articulos y capture la cantidad y el valor de cada uno, al final totalice y calcule un iva global del 16%. si el valor exede los $450.000 realize una retencion del 3.5%.
ejemplo
articulo cantidad valor unitario total
reloj 10 20.000 200.000
camisa 5 43.200 216.000
zapatos 1 50.000 50.000
medias 3 12.000 36.000
corbata 1 63.500 63.500
subtotal 565.500
IVA +90.480
retencion -19.793
total a pagar 675.773
fijate que no tengo nada mi amor pero lo podes comprar te cuesta 350 quetzales. y si queres escribime ami correo.
horale
horale
la presente es para saludarte y de seate exito en lo que mas desea, por otraparte quiero decirte que necesito un programa que carcule los prestamo personale si es en fox base , fox pro o access mucho mejor gracia.
hola, no voy a responderte, solo quiero que si ya te dieron el manual me lo puedes pasar porfa¡¡¡ tengo que entregar un sistemita y ya me otore
hola
me gustaria saber como puedo hacer un libro diario en fox
si tienes un programa que me pueda servir para poder a prender a programar te lo agradeceria
mucho
gracias
me gustaria saber como puedo hacer un libro diario en fox
si tienes un programa que me pueda servir para poder a prender a programar te lo agradeceria
mucho
gracias
Tengo en mi poseción dos manuales muy buenos con respecto a la programación en Visual Foxpro, los que me ayudaron no hace mucho a empezar en este potente desarrolador, para que se los envíe solo necesito que me envíen un correo pidiéndomelo a [email protected].
se Despide desde las sombras este angel de la obscuridad - DarckAngel.
se Despide desde las sombras este angel de la obscuridad - DarckAngel.
Hola amigo, espero no molestarte, bueno al grano, yo estudio programacion y llevo el lenguaje Visual Fox 6.0, espero que me ayudes facilitando manuales que me ayuden al igual que lo hare yo enviandote aquellos manuales que te puedan servir a ti y a mi.
Espero tu respuesta.
Espero tu respuesta.
Hola Jean Carlos
Soy una persona jubilada que, en mi tiempo libre, que es mucho me gusta programar, en la actualidad estoy programando en VFP6, tengo el programa Visual Studio 6, sin embargo los tutoriales (MSDN), no logro incorporarlos a la ayuda (F1), me puedes indicar como hacerlo, Gracias.
Por favor me facilitarían el trabajo los manuales a haces mención, por favor enviamelos, de nuevo Gracias.
La Aplicación que estoy intentando hacer es de Multigestión (Gestión Comercial multi sectorial, Contabilidad, Gestión de Inmovilizado y Recursos Humanos), como ves trato de sea muy completa para la gestión Empresarial, por supuesto sin animo de lucro por mi parte, yo diria más bien como hobby.
Tanto si puedes ayudarme, como si no, recibe mis gracias anticipadas por tu atención.
Un saludo de este joven inquieto.
Soy una persona jubilada que, en mi tiempo libre, que es mucho me gusta programar, en la actualidad estoy programando en VFP6, tengo el programa Visual Studio 6, sin embargo los tutoriales (MSDN), no logro incorporarlos a la ayuda (F1), me puedes indicar como hacerlo, Gracias.
Por favor me facilitarían el trabajo los manuales a haces mención, por favor enviamelos, de nuevo Gracias.
La Aplicación que estoy intentando hacer es de Multigestión (Gestión Comercial multi sectorial, Contabilidad, Gestión de Inmovilizado y Recursos Humanos), como ves trato de sea muy completa para la gestión Empresarial, por supuesto sin animo de lucro por mi parte, yo diria más bien como hobby.
Tanto si puedes ayudarme, como si no, recibe mis gracias anticipadas por tu atención.
Un saludo de este joven inquieto.
Hola Jean Carlos.
Te agradeceria si me enviaras los manuales que ofreces.
Gracias.
Te agradeceria si me enviaras los manuales que ofreces.
Gracias.
Estoy tratando de pasar de Foxpro 2.6 a Visual Foxpro, pero tengo muchas dificultades, hace muchos años que programo, y no puedo incorporar las bases de datos dentro de los formularios. Todo el material que me puedas facilitar sera de muchisima utilidad. Dispongo de una buena cantidad de rutinas que se pueden utilizar en Visual y estoy dispuesto a compartirlas.
Un saludo a todos los apasionados y perseverantes programadores. Brandy
Un saludo a todos los apasionados y perseverantes programadores. Brandy
te agradeceria mucho si pudiera enviarme los manuales de visual Fox Pro, y si tenes algún programa ya hecho en fox estaria mucho mejor.
gracias
gracias
Hola hermanón, leí tus notas, te agradecería enviarme esos manuales que tienes, ya que estoy seguro que reforzaré aún más lo que conozco.
Te agradece Julián Broncano
Te agradece Julián Broncano
Hola se que tienes manuales de progracion no si puede compartir esos manuales conmigo te quedare muy agredecido.
ATENTAMENTE
SAM
ATENTAMENTE
SAM
Hola valentin...hasta hoy entro a esta pàgina... te puedo comentar que la colecciòn de Visual Studio 6.0 ediciòn en español contiene un tutotial completo para el aprendizaje de Visual foxpro, C++, Visual Basic, InterDev.... incluyendo ejemplos y apliaciones de guia... De todas manera te comento que a partir de la fecha estarè atento a responde segùn mis limitaciones las dudas que tenga
estoy como muchos mas perdido que indio en new york sii Alexander que es nuestro heroe apuntame en esa lista de tutoriales y un codigo que te estorve jijijijiji.. gracias en serio y al que quiera ayudarme con direcciones de visual fox pro.
HAY VARIAS PAGINAS DE VISUAL FOX PRO COMO SON:
canalvisualbasic.net, www.lavariable.com, la webdelprogramador.com, elrincondelprogramador.
y tambien tengo varios programas en visual fox pro
canalvisualbasic.net, www.lavariable.com, la webdelprogramador.com, elrincondelprogramador.
y tambien tengo varios programas en visual fox pro
Hola lulu a ve si te pasas algunos programillas, tu sabes pa investigarloos y aprender si? un beso atte Alex
solicito la misma ayuda de valentin, estoy urgido de este programa
Por favor !!!! Yo también agradecería me envién programas hechos en Visual FoxPro, ya que los tutoriales bibliográficos que he comprado no me han servido de mucho. No puede ser que ningun libro explique en forma clara como administrar los registros de una tabla en un formulario !!!!
Desde ya muchas gracias.
Desde ya muchas gracias.
te agradeceria mucho si me ayudaras para hacer una base de datos con el visual foxpro 2.6....de antemano GRACIAS
hola yo soy de honduras estoy viendo en estos precisos momentos visual y tengo en mi poder un manual y una enciclopedia de visual fox pro 6.0 para ver que podemos hacer mandame un email
Yo soy brasileño y desearia receber un tutorial em visual foxpro6, caso tieña, em envie, muchas gracias.
YO TAMBIEN NECESITO UN PROGRAMA YA HECHO EN VISUAL FOX PRO, SI ALGUIEN (VALENTIN???) LO TIENE, SE LOS AGRADECERÉ MUCHISIMO
DE ANTEMANO GRACIAS.
DE ANTEMANO GRACIAS.
hola,escribeme todo acerca de que quieres saber y te respondo el visual foxpro y tambien te puedo enviaar algunas aplicaciones
Alex, me gustaría recibir tu tutorial de Visual Fox Pro, en esto momentos estoy metido en un embrollo porque necesito crear un diseñador de archivos en VFP y solo tengo algunas ideas vagas... espero tu respuesta. Gracias
lamento no poder ayudarte , pero hay muy buenos libros que te podrian ayudar.
Por favor.............!!!!!!!!!!!!!
si te enviaron algun manual de fox Pro me podrias enviar tambien ami sip............. mas si tenes la parte de como controlarel stock donde me tiene que sumar y restar por fis......!!!!! gracias y disculpe la molestia........!!
si te enviaron algun manual de fox Pro me podrias enviar tambien ami sip............. mas si tenes la parte de como controlarel stock donde me tiene que sumar y restar por fis......!!!!! gracias y disculpe la molestia........!!
Privacidad: Recuerde que la información escrita en los foros de programación es 100% pública y que su ip será registrada asociada a su mensaje. Si encuentra un mensaje fuera de lugar, por favor, notifiquelo para su revisión y eliminación.
Patrocinados
Copyright © 1999-2005 Programación en castellano. Todos los derechos reservados.
Formulario de Contacto - Datos legales - Publicidad
Hospedaje web y servidores dedicados linux por Ferca Network
red internet: musica mp3 | logos y melodias | hospedaje web linux | registro de d
ayudame con el programacion de conversion de dolar a soles para el 18 de mayo 2005
programacion de conversion d de dolar e soles para
18 de mayo de 2005
18 de mayo de 2005
Yo actualmente estoy desarrollando varios programas en FOXPRO, entre ellos tengo uno que lo desarrolle para el registro de notas, alumnos y maestros; con mucho gusto te lo puedo ceder para que amplies tus conocimientos en codificación de Foxpro, te lo estaré mandando el sabado 14 de este mes, puesto que todos los sabados visito la sala de Internet.
tambien tengo unos tutoriales de vidualFoxpro y Visual Basic los cuales enseñan crear formularios, consultas, informes, entre otros; que tambien te puedo mandar.
escribeme para que acordemos todo.
tambien tengo unos tutoriales de vidualFoxpro y Visual Basic los cuales enseñan crear formularios, consultas, informes, entre otros; que tambien te puedo mandar.
escribeme para que acordemos todo.
Hola Alexander te escribo con mucho gusto y con el deseo de pedirte el favor de que me proporciones los programas y tutoriales que tienes ya que me estoy iniciando en el que estoy seguro es un mundo de cosas facinantes e innovadoras.
De antemano muy agradecido y espero yo tambien poder ayudarte en alguna cosa que necesites.
Bueno Ahi nos escribimos...
De antemano muy agradecido y espero yo tambien poder ayudarte en alguna cosa que necesites.
Bueno Ahi nos escribimos...
Hola Alex, soy nuevo en la programacion de visual
fox pro
he comprado algunos libros pero se quedan cortos en lo que a veces quiero hacer
Te agradeceria que pudieras mandarme la documentacion, tutoriales, todo acerca de foxpro
si necesitas algo y te puedo ayudar no dudes es escribirme, espero tu respuesta
fox pro
he comprado algunos libros pero se quedan cortos en lo que a veces quiero hacer
Te agradeceria que pudieras mandarme la documentacion, tutoriales, todo acerca de foxpro
si necesitas algo y te puedo ayudar no dudes es escribirme, espero tu respuesta
POR FAVOR SOY NUEVO EN ESTE ENTORNO, QUISIERA POR FAVOR ME ENVIES CUALQUIER MATERIAL QUE TENGAS , TE ESTARE BASTANTE AGRADECIDO.
ATTE.
CARLOS ESCOBAR
PERU
ATTE.
CARLOS ESCOBAR
PERU
Saludos.
Estoy aprendiendo visual Foxpro y agradecería mucho tuayoda enviándome manual y si es posible
programa de notas desrrollado que me serviría de gía para mi aprendizaje.
Gracias
Estoy aprendiendo visual Foxpro y agradecería mucho tuayoda enviándome manual y si es posible
programa de notas desrrollado que me serviría de gía para mi aprendizaje.
Gracias
Saludos.
Estoy aprendiendo visual Foxpro y agradecería mucho tuayoda enviándome manual y si es posible
programa de notas desrrollado que me serviría de gía para mi aprendizaje.
Gracias
Estoy aprendiendo visual Foxpro y agradecería mucho tuayoda enviándome manual y si es posible
programa de notas desrrollado que me serviría de gía para mi aprendizaje.
Gracias
ME PUEDES AYUDAR VOY A SER DIRECTORA Y PROFESORA DE UNA ZONA POBRE DEL ECUADOR Y NECESITO UNA BASE DE DATOS
Hola Alex verdad... tucrees que me puedes enviar 2 formularios sencillos por fa...! te lo agradecere.. plis..
Yo actualmente estoy desarrollando varios programas en FOXPRO, entre ellos tengo uno que lo desarrolle para el registro de notas, alumnos y maestros; con mucho gusto te lo puedo ceder para que amplies tus conocimientos en codificación de Foxpro, te lo estaré mandando el sabado 14 de este mes, puesto que todos los sabados visito la sala de Internet.
tambien tengo unos tutoriales de vidualFoxpro y Visual Basic los cuales enseñan crear formularios, consultas, informes, entre otros; que tambien te puedo mandar.
escribeme para que acordemos todo.
[email protected]
tambien tengo unos tutoriales de vidualFoxpro y Visual Basic los cuales enseñan crear formularios, consultas, informes, entre otros; que tambien te puedo mandar.
escribeme para que acordemos todo.
[email protected]
Yo actualmente estoy desarrollando varios programas en FOXPRO, entre ellos tengo uno que lo desarrolle para el registro de notas, alumnos y maestros; con mucho gusto te lo puedo ceder para que amplies tus conocimientos en codificación de Foxpro, te lo estaré mandando el sabado 14 de este mes, puesto que todos los sabados visito la sala de Internet.
tambien tengo unos tutoriales de vidualFoxpro y Visual Basic los cuales enseñan crear formularios, consultas, informes, entre otros; que tambien te puedo mandar.
escribeme para que acordemos todo.
[email protected]
tambien tengo unos tutoriales de vidualFoxpro y Visual Basic los cuales enseñan crear formularios, consultas, informes, entre otros; que tambien te puedo mandar.
escribeme para que acordemos todo.
[email protected]
HOLA TOCALLO ME IMAGINO QUE TE INTERESA MUCHO VISUAL PORQUE? ESTAS CIEGO. QUE QUIERES VISUALIZAR UN RATO. TENGO UNA PREGUNTA ERES GUAPO O SOLO UN TIPICO NERD, CONTESTAME. SI ERES GUAPO ME CONTESTAS Y SI ERES FEO VE A SERTE UNA CIRUGIA.
Y SI TENGO UN MANUAL DE VISUAL, SOY MASTER SI QUIERES AYUDA ESCRIBEME. CHAO VALEN......
Y SI TENGO UN MANUAL DE VISUAL, SOY MASTER SI QUIERES AYUDA ESCRIBEME. CHAO VALEN......
