Vous êtes sur la page 1sur 174

VISUAL FOX 9.

0
Para iniciar con la programacin en Visual Fox, debemos ingresar a Visual Fox 9.0 desde Inicio, Todos los Programas y luego damos clic en Microsoft Visual Fox 9.0.

Al ingresar se desplegar la pantalla de trabajo de Fox. Grafica de abajo:

Universidad Autnoma de Quito

Jess Cisneros Valle

Hay que considerar que en la caja de comandos (grafica de abajo) se pueden ingresar varios comandos, veremos unos pocos para demostrarlo, luego seguiremos con el estudio.

CLEAR, limpia la pantalla. ?DATE(), pone la fecha actual en la pantalla, TIME(), pone la hora actual en la pantalla, ?VARIABLES O COMENTARIO O CONSTATE, inserta palabras en pantalla sin posicionamiento, ??VARIABLES O COMENTARIO O CONSTATE, Inserta caracteres uno a continuacin de otros, @ fila, columna permite un posicionamiento fijo en cualquier parte de la pantalla, && comentario, permite poner comentarios, * comentario, permite poner comentarios, NOTE comentario, permite poner comentarios,

No hay que olvidar que al utilizar dentro de la caja de COMANDOS, el posicionamiento fijo @ fila, columna, debemos utilizar el comando SAY (decir) con el siguiente formato: @ fila, columna SAY comentario, variable, etc.. Universidad Autnoma de Quito Jess Cisneros Valle

Para iniciar la programacin de Visual Fox, primero direccionamos a la carpeta en que vamos a trabajar. Usamos para lo cual la siguiente instruccin: SET DEFAULT TO C:\nombre de la carpeta Quiere decir que trabajaremos en una carpeta que est en la raz de C:\ Creamos la carpeta llamada vfsemi en C:\

El direccionamiento queda:

Universidad Autnoma de Quito

Jess Cisneros Valle

Usando el comando MODIFY COMMAND en la caja d comandos, creamos una ventana para escribir un programa, la sintaxis es: MODIFY COMMAND <nombre del ejercicio> Es decir: MODIFY COMMAND eje1 En este caso el ejercicio se llama eje1

El programa digitado seria: NOTE MI PRIMER PROGRAMA EN VISUAL FOX * SUMA DE DOS NUMEROS *Declaracin de variables y enceramos STORE 0 TO A,B,C *SOLICITAMOS INFORMAION @10,10 SAY "SUMA DE DOS NUMEROS" @12,10 SAY "INGRESE UN NUMERO:" GET A PICTURE " 99 " @14,10 SAY "INGRESE OTRO NUMERO:" GET B PICT " 99 " READ *CALCULAMOS LA SUMA C=A+B Universidad Autnoma de Quito Jess Cisneros Valle

*IMPRIMIMOS EL RESULTADO @16,10 SAY"LA SUMA ES:" +STR(C) *FINALIZAMOS EL PROGRAMA CANCEL

Acto seguido grabamos el programa con: CRTL+W , al hacer esto la ventana donde digitamos el programa desaparece, para hacerla aparecer en la caja de comandos digitamos: MODIFY COMMAD eje1 Luego compilamos el programa usando: COMPILE <nombre del programa> COMPILE eje1, hacemos esto para cerificar si no hemos cometido errores de sintaxis.

Universidad Autnoma de Quito

Jess Cisneros Valle

Si no hay errores de sintaxis en la parte inferior izquierda de la pantalla, aparece la leyenda: 1 file, 0 Errors Para ejecutar el programa usamos el comando DO de la siguiente manera: DO eje1 O en el men superior hacemos clic en el signo de admiracin: !

Al poner DO eje1 o al presionar en el ! el programa se ejecuta la caja de COMANDOS desaparece y podemos ingresar datos en el programa para verificar lo que hemos hecho:

Universidad Autnoma de Quito

Jess Cisneros Valle

TABLAS Visual Fox, maneja un Entorno de Datos, NO es una base de Datos. CARACTER CAMPO REGISTRO/TUPLA

TABLA

ENTORNO DE DATOS

Tipos de datos que maneja Visual Fox Pro Numrico Fecha Memo Carcter General (Grficos) Entorno de Datos, Conjunto de Tablas relacionados Libres, son tablas que no tienen relacin

TABLAS TABLA LIBRE CREATE BROWSE

AADIR UN REGISTRO CONSULTA DE REGISTROS EDICION O MODIFICACION DE REGISTROS ELIMINACION DE REGISTROS Ejemplo: COMANDO: APPEND BLANK (aade un registro en blanco) METODO ABREVIADO: (combinacin de teclas) ^ N = CTRL + N CREATE <nombre de tabla> CREATE pais (enter) al digitar esto en la Caja de comandos, creamos el entorno para una tabla libre. COMANDOS: MODIFY STRUCTURE (enter) permite ver la estructura de la tabla Universidad Autnoma de Quito Jess Cisneros Valle

USE pais (enter) permite poner en uso la tabla pais CLEAR (enter) limpia la pantalla MODIFY COMMAND consulta (enter) crea entorno para escribir un programa COMPILE pais (enter) compila el programa en ejecucin DO pais (enter) ejecuta el programa en ejecucin APPEND BLANK (enter) crea un registro en blanco al final de la tabla DELETE (enter) borra un registro lgicamente PACK (enter) borra un registro permanentemente (fsicamente) REPLACE <pob_pais> WITH 13000000 (enter), pone 13000000 en el campo pob_pais SELECT <nombre de una tabla> (enter) selecciona la tabla con que trabajaremos DIMENSION a(10) (enter) crea un espacio de memoria de 10 espacios para un vector de nombre a. STORE SPACE (10) TO <cdigo> (enter) crea un espacio de memoria de 10 espacios para una variable tipo caracter STORE 0 TO a, b, cod_aux (enter), asigna el Cero a las variables numricas a, b, cod_aux **************** Creamos la tabla pais = CREATE pais

Universidad Autnoma de Quito

Jess Cisneros Valle

Asignamos variables a la tabla pais:

En la lengeta Indexes, designamos la clave principal, en este caso cod_pas como regular

Universidad Autnoma de Quito

Jess Cisneros Valle

En la lengeta table vemos el tamao de los registros:

DBF TABLA CON ENTORNO FOX UN BYTE DE MARCA DE BOF O EOF Usamos BROWSE pais para ver la tabla

Universidad Autnoma de Quito

Jess Cisneros Valle

Ingresamos los datos y con Crtl+W (enter) grabamos la tabla pais.

Con Crtl + Y ingresamos un nuevo registro

Universidad Autnoma de Quito

Jess Cisneros Valle

Escribimos CLOSE ALL en la caja de comando Con USE abrimos la tabla pais USE pais <enter>

Al abrir una tabla, siempre se pone sobresalta la primera casilla

Universidad Autnoma de Quito

Jess Cisneros Valle

Al digitar BROWSE FOR cod_pais=1002, se seala el registro que tiene el


cdigo 1002.TODOS LOS COMANDOS SE ESCRIBEN EN LA CAJA DE COMANDOS.

Al digitar BROWSE FOR cod_pais>1002, aparecen los cdigos mayores a 1002

Universidad Autnoma de Quito

Jess Cisneros Valle

Al digitar REPLACE mon_pais WITH "Correita", se pone Correita en el campo


mon_pais.

Aade un registro al final de la tabla


APPEND BLANK

Universidad Autnoma de Quito

Jess Cisneros Valle

REPLACE nom_pais WITH "Venezuela"

Luego de escribir en la caja de comandos, se habrn agregado los datos en el registro en blanco que creamos con APPEND BLANK.

El comando BROWSE

BROWSE FIELDS cod_pais, nom_pais Permite ver los campos cod_pais y nom_pais nicamente.

Universidad Autnoma de Quito

Jess Cisneros Valle

BROWSE noedit NO PERMITE EDITAR, SOLO VISUALIZAR

Para cambiar los datos de usa celda, luego de haber realizado lo antes descrito, usamos FREEZE, de la siguiente manera: BROWSE FIELDS cod_pais, nom_pais, mon_pais FREEZE mon_pais Permite hacer cambios solo en mon_pais.

BORRADO LOGICO Si activamos la celdilla adyacente al codigo cod_pais, el registro se borra lgicamente

Universidad Autnoma de Quito

Jess Cisneros Valle

Otra manera de borrar lgicamente es usando DELETE, para lo cual ponemos el cursos en el registro a borrar lgicamente.

O tambin

Universidad Autnoma de Quito

Jess Cisneros Valle

Para borar todo usamos:


DELETE ALL

RECUPERAR AL REGISTRO ACTUAL RECALL

Universidad Autnoma de Quito

Jess Cisneros Valle

RECUPERAR TODO RECALL ALL

DESACTIVA LA VISTA DE LOS REGISTROS BORRADOS EN FORMA LOGICA SET DELETED ON, ES DECIR LO BORRA PERO NO DEFINITIVAMENTE

Universidad Autnoma de Quito

Jess Cisneros Valle

Para devolver la vista usamos SET DELETED OFF

BORRADO LOGICO DEL cdigo 1005 VENEZUELA

Universidad Autnoma de Quito

Jess Cisneros Valle

El comando PACK elimina fsicamente los registros borrados en forma lgica.

El comando ZAP elimina definitivamente todos los registros de la tabla, es un comando que no permite recuperar los datos, es por esto que Visual Fox, pregunta por precaucin si desea borrar o no.

Universidad Autnoma de Quito

Jess Cisneros Valle

A continuacin detallamos dos programas que hacen lo mismo, CONSULTA. * Primero en la caja de comandos cerramos todo CLOSE ALL * Luego con MODIFY COMMAND creamos en entorno para escribir el programa de consulta. MODIFY COMMAND prog1. *CONSULTA USANDO SCAN FOR
SET TALK OFF && deshabilita el modo de seguimiento de memoria SET ECHO OFF && deshabilita el modo de seguimiento de programa * CONSULTA METODO SCAN FOR *CLEAR * ABRIMOS LA TABLA USE pais IN 1 * abre la tabla pais en el campo 1 * DEFINICION DE VARIABLES band=0 siga=0 cod_aux=0 * PROGRAMA PRINCIPAL siga=6 DO WHILE siga=6 DO INGRESE_CLAVE DO CONSULTA DO ENCERAR siga=MESSAGEBOX("CONTINUA....?",4+32,"UNAQ") ENDDO CANCEL ***************** PROCEDURE INGRESE_CLAVE @8,10 SAY"INGRESE CODIGO:" GET cod_aux PICT " 9999 " READ RETURN PROCEDURE CONSULTA *selecciona la tabla SELECT pais *pone al principio de la tabla BOF GO TOP SCAN FOR cod_pais=cod_aux * solo entra al proceso si encuentra * si encuentra band=1 band=1 @10,10 SAY"NOMBRE DEL PAIS:" +nom_pais @12,10 SAY"POBLACION:" +STR(pob_pais) @14,10 SAY"MONEDA:" +mon_pais ENDSCAN IF band=0 =MESSAGEBOX("CODIGO NO EXISTE",0+48,"UNAQ") *ELSE *=MESSAGEBOX("CODIGO LOCALIZADO",0+48,"UNAQ") ENDIF RETURN PROCEDURE ENCERAR band=0 siga=0 cod_aux=0 RETURN

Universidad Autnoma de Quito

Jess Cisneros Valle

*CONSULTA USANDO EOF() NOT EOF()

SET TALK OFF && deshabilita el modo de seguimiento de memoria SET ECHO OFF && deshabilita el modo de seguimiento de programa * CONSULTA METODO SCAN FOR CLEAR * ABRIMOS LA TABLA USE pais IN 1 * abre la tabla pais en el campo 1 * DEFINICION DE VARIABLES band=0 siga=0 cod_aux=0 * PROGRAMA PRINCIPAL siga=6 DO WHILE siga=6 DO INGRESE_CLAVE DO CONSULTA DO ENCERAR siga=MESSAGEBOX("CONTINUA....?",4+32,"UNAQ") ENDDO CANCEL ***************** PROCEDURE INGRESE_CLAVE @8,10 SAY"INGRESE CODIGO:" GET cod_aux PICT " 9999 " READ RETURN PROCEDURE CONSULTA *selecciona la tabla SELECT pais *pone al principio de la tabla BOF GO TOP ** consulta con !EOF() DO WHILE !EOF() && and band =0 IF cod_pais=cod_aux * solo entra al proceso si encuentra * si encuentra band=1 band=1 @10,10 SAY"NOMBRE DEL PAIS:" +nom_pais @12,10 SAY"POBLACION:" +STR(pob_pais) @14,10 SAY"MONEDA:" +mon_pais ENDIF SKIP ENDDO IF band=0 =MESSAGEBOX("Cdigo NOP existe",0+48,"unaq") endif RETURN PROCEDURE ENCERAR band=0 siga=0 cod_aux=0 RETURN

Universidad Autnoma de Quito

Jess Cisneros Valle

ALTAS Creamos otra tabla para este ejercicio. Create estudia

Al usar Seek (cod_est) If Found () Usamos tablas indexadas.

Universidad Autnoma de Quito

Jess Cisneros Valle

Usamos SET DISPLAY TO VGA50 en la caja de comando para mejorar la presentacin del programa.
SET TALK OFF SET ECHO OFF *PROGRAMA CON INDICES** ********ABRIR LA TABLA**** USE estudia IN 1 INDEX a1 ******variables***** STORE 0 TO cod_aux, band, siga STORE SPACE(30) TO nom_aux STORE SPACE(25) TO dir_aux, ema_aux STORE SPACE(9) TO tel_aux **************************** ****programa principal********

ALTAS USANDO SEEK ( cod_est) IF FOUND( )

siga=6 DO WHILE SIGA=6 CLEAR DO INGRESO_CLAVE DO BUSCA_CLAVE IF BAND=0 DO INGRESO_DATOS DO GRABA_DATOS =MESSAGEBOX("REGISTRO GRABADO..",0+48,"UNAQ") ELSE =MESSAGEBOX("YA EXISTE",0+48,"UNAQ") ENDIF DO CONTINUA ENDDO CLOSE TABLES CANCEL PROCEDURE INGRESO_CLAVE @10,10 say"INGRESE UNA CLAVE:" GET COD_AUX PICT " 9999" READ RETURN PROCEDURE BUSCA_CLAVE SELECT ESTUDIA ***METODO DE INDICES SEEK(cod_aux) IF FOUND() band=1 @12,10 SAY"NOMBRE:" + nom_est @14,10 SAY"DIRECCION:"+ dir_est @16,10 SAY"TELEFONO:" + TEL_est @18,10 SAY"CORREO:" + ema_est ENDIF RETURN PROCEDURE INGRESO_DATOS @12,10 SAY"INGRESE @14,10 SAY"INGRESE @16,10 SAY"INGRESE @18,10 SAY"INGRESE READ RETURN PROCEDURE graba_datos APPEND BLANK NOMBRE:" GET nom_aux pict "@!" DIRECCION:" GET dir_aux pict "@!" TELEFONO:" GET TEL_AUX PICT " 999999999 " CORREO:" GET ema_aux

Universidad Autnoma de Quito

Jess Cisneros Valle

REPLACE replace replace replace replace RETURN

cod_est nom_est dir_est tel_est ema_est

WITH WITH WITH WITH WITH

cod_aux nom_aux dir_aux tel_aux ema_aux

PROCEDURE CONTINUA *ENCERAMOS LAS VARIABLES STORE 0 TO cod_aux, band, siga STORE SPACE(30) TO nom_aux STORE SPACE(25) TO dir_aux, ema_aux STORE SPACE(9) TO tel_aux SIGA=MESSAGEBOX("CONTINUA..?",4+32,"UNAQ")

ALTAS USANDO SCAN FOR


SET TALK OFF SET ECHO OFF USE estudia IN 1 INDEX a1 **declara varibles incliye a las variables auxiliares STORE 0 TO cod_aux, siga, band STORE SPACE(30) TO nom_aux STORE SPACE(25) TO dir_aux, ema_aux STORE SPACE(9) TO tel_aux *programa principal siga=6 DO WHILE siga=6 CLEAR DO ingrese_clave DO busca_codigo&&band=1 IF band=0 DO ingresa_datos DO graba_datos =MESSAGEBOX("DATOS GRABADOS",0+32,"UNAQ") ELSE =MESSAGEBOX("codigo localizado",0+32,"UNAQ") ENDIF DO CONTINUA ENDDO *NO TE OLVIDES CERRAR LA TABLA CLOSE TABLES CANCEL PROCEDURE INGRESE_CLAVE @10,10 SAY"INGRESE UNA CLAVE:" GET cod_aux PICT" 9999 " READ RETURN PROCEDURE BUSCA_CODIGO SELECT ESTUDIA GO TOP SCAN FOR COD_AUX=COD_EST *SEEK(cod_aux) *IF FOUND() band=1 @12,10 SAY"NOMBRE:" + nom_est @14,10 SAY"DIRECCION:"+ dir_est

Universidad Autnoma de Quito

Jess Cisneros Valle

@16,10 SAY"TELEFONO:" + TEL_est @18,10 SAY"CORREO:" + ema_est *ENDIF ENDSCAN RETURN PROCEDURE ingresa_datos @12,10 SAY"INGRESE NOMBRE:" GET NOM_AUX PICT "@!" @14,10 SAY"INGRESE DIRECCION:"GET dir_AUX PICT "@!" @16,10 SAY"TELEFONO:" GET TEL_AUX PICT"999999999" @18,10 SAY"CORREO:" GET ema_AUX READ RETURN PROCEDURE graba_datos APPEND BLANK REPLACE COD_EST REPLACE NOM_EST REPLACE DIR_EST REPLACE TEL_EST REPLACE EMA_EST RETURN

WITH WITH WITH WITH WITH

COD_AUX NOM_AUX DIR_AUX TEL_AUX EMA_AUX

PROCEDURE CONTINUA *ENCERAMOS VARIABLES STORE 0 TO cod_aux, siga, band STORE SPACE(30) TO nom_aux STORE SPACE(25) TO dir_aux, ema_aux STORE SPACE(9) TO tel_aux SIGA=MESSAGEBOX("DESEA CONTINUA..",4+48,"UNAQ") RETURN

MODIFICAR UN REGISTRO
SET talk OFF SET ECHO OFF **** abrir la tabla USE estudia IN 1 ******************** *definicion de variables STORE 0 TO cod_aux, band, siga STORE SPACE(30) TO nom_aux STORE SPACE(25) TO dir_aux, ema_aux STORE SPACE(9) TO tel_aux *programa principal* siga=6 DO WHILE siga=6 DO ingreso_codigo DO busca_codigo&&band=1 IF band=1 DO ingresa_datos_nuevos DO graba_datos_nuevos ELSE =MESSAGEBOX("CODIGO NO EXISTE",0+32,"UNAQ") ENDIF DO CONTINUA ENDDO CLOSE TABLES CANCEL

Universidad Autnoma de Quito

Jess Cisneros Valle

***************************** PROCEDURE ingreso_codigo @10,10 say"INGRESE UN CODIGO:" GET cod_aux picture " 9999 " READ RETURN PROCEDURE busca_codigo SELECT estudia GO top SCAN FOR cod_aux=cod_est band=1 NOM_AUX=NOM_EST DIR_AUX=DIR_EST TEL_AUX=TEL_EST EMA_AUX=EMA_EST *@12,10 say"NOMBRE:" +NOM_EST *@14,10 SAY"DIRECCION:"+DIR_EST *@16,10 SAY"TELEFONO:" + TEL_est *@18,10 SAY"CORREO:" + ema_est *=MESSAGEBOX("DATOS DEL CODIGO INGRESADO",0+32,"UNAQ") ENDSCAN RETURN PROCEDURE ingresa_datos_nuevos @12,10 SAY"INGRESE NOMBRE:" GET NOM_AUX PICT"@!" @14,10 SAY"INGRESE DIRECCION:" GET DIR_AUX PICT"@!" @16,10 SAY"INGRESE TELEFONO:" GET TEL_AUX PICT " 999999999" @18,10 SAY"INGRESE CORREO:" GET EMA_AUX READ RETURN PROCEDURE graba_datos_nuevos GRABA=0 GRABA=MESSAGEBOX("DESAE GRABAR...?",4+32,"UNAQ") IF GRABA=6 SCAN FOR COD_EST =COD_AUX REPLACE NOM_EST WITH NOM_AUX REPLACE DIR_EST WITH DIR_AUX REPLACE TEL_EST WITH TEL_AUX REPLACE EMA_EST WITH EMA_AUX ENDSCAN =MESSAGEBOX("REGISTRO ACTUALIZADO",0+48,"UNAQ") ELSE =MESSAGEBOX("ACTUALIZACION CANCELADA",0+48,"UNAQ") ENDIF RETURN PROCEDURE CONTINUA STORE 0 TO cod_aux, band, siga STORE SPACE(30) TO nom_aux STORE SPACE(25) TO dir_aux, ema_aux STORE SPACE(9) TO tel_aux SIGA=MESSAGEBOX("DESEA REALIZAR OTRA ACTULIZACION:",4+32,"UNAQ") RETURN

Universidad Autnoma de Quito

Jess Cisneros Valle

Objetos Propiedades Caractersticas que permiten modificar el objeto Mtodos Acciones que ejecuta el objeto Objetos contenedores Objetos basados en clases Programa interfaz Tiempo de diseo Tiempo de ejecucin

FORMULARIOS (PROYECTOS)

Primero para iniciar un proyecto iremos a: FILE, luego a NEW.

Se abre enseguida una ventana llamada NEW En la cual aceptaremos en NEW FILE

Universidad Autnoma de Quito

Jess Cisneros Valle

Acto seguido se abre una nueva ventana que nos permite darle un nombre al proyecto o simplemente damos Enter, para que se guarde como Proj1

Al dar guardar aparece otra ventana llamada Project Manager <nombre del proyecto>

Universidad Autnoma de Quito

Jess Cisneros Valle

De la ventana abierta elegimos la lengeta DOCS (Documentos)

Luego damos clic en NEW y luego en New Form.

Una vez echo esto aparece una ventana FORM1 y la ventana de controles de Formulario FORM CONTROLS. Universidad Autnoma de Quito Jess Cisneros Valle

Es en esta pantalla donde podemos iniciar a hacer nuestro proyecto, ingresando de la caja de Formulario de Controles los objetos que necesitemos.

Damos un clic sobre FORM1 y vemos que en la caja de comandos COMMAND se activa la casilla Active Cor 0, buscamos en la caja de comandos la casilla CAPTION para ponerle un nombre al formulario.

Universidad Autnoma de Quito

Jess Cisneros Valle

El nombre que ponemos en el CAPTION sera por ejemplo Mi primer ejercicio y damos Enter.

Tambin debemos cambiar el NAME del formulario, en este caso frmEjercicio.

Universidad Autnoma de Quito

Jess Cisneros Valle

Si marcamos en la caja de comandos la casilla AUTO CENTER y elegimos TRUE, veremos que nuestro formulario se centra a la mitad de la pantalla, esto ocurre en tiempo de ejecucin. !

Queda algo as: La pantalla de Mi primer ejercicio en el Centro

Universidad Autnoma de Quito

Jess Cisneros Valle

Cambiar el color de fondo doble clic en back color, que por defecto est en el nmero hexadecimal: 236,233,216, damos clic en la ventanilla de la parte superior derecha que est justo a lado del nmero antes dicho y aparece una paleta de colores Color donde elegimos el que deseemos. En este caso el azul. Y damos aceptar. El cdigo cambia a 0,0,160.

Para que nuestro formulario aparezca sobre todas las dems ventanas abiertas, debemos activar la casilla SHOW WINDOW y elegir 2 As Top-Level Form

Universidad Autnoma de Quito

Jess Cisneros Valle

Como podemos ver nuestro formulario se ha colocado sobre todos los dems, inclusive sobre el escritorio de la PC.

Para cambiar el ancho del formulario vamos al casillero WIDTH, que en esta ocasin por defecto tiene el valor 474 podemos poner otro valor puede ser 674, damos Enter y vemos como cambia el ancho del formulario.

Universidad Autnoma de Quito

Jess Cisneros Valle

Recordemos los objetos se crean a partir de una clase. Vamos a poner objetos dentro de nuestro formulario, primero los LABEL. Para lo cual ubicamos en la caja Control de Formularios el icono A y hacemos clic sobre l.

(Que es instanciar un objeto: Es crear un objeto a partir de una clase.) Una vez seleccionado LABEL lo ponemos sobre el formulario.

Universidad Autnoma de Quito

Jess Cisneros Valle

En el CAPTION de la caja de Propiedades ponemos el nombre del LABEL.

Usamos AUTO SIZE de la caja de propiedades y lo ponemos el True (verdadero) para acoplar o ajustar las letras al LABEL. Adems con FORE COLOR cambiamos el color de fondo del LABEL.

Universidad Autnoma de Quito

Jess Cisneros Valle

Con FONT SIZE de la caja de propiedades ajustamos el tamao de la letra que est dentro del LABEL.

Con FONTBOLD, cambiamos el tipo de letra y si deseamos crear mas LABEL lo podemos tomar de la caja de propiedades o copiarlos con COPY para lo cual damos clic derecho sobre el LABEL.

Universidad Autnoma de Quito

Jess Cisneros Valle

Luego para pegarlo hacemos clic derecho y aceptamos en PASTE.

Podemos alinear los LABEL, para lo cual escogemos del men principal, FORMAT , luego ALING y en el men que se abre escogemos la alineacin, en esta ocasin a la derecha.

Universidad Autnoma de Quito

Jess Cisneros Valle

Alineados queda:

Ahora vamos a poner las cajas de texto TEXT BOX. Lo hacemos del la caja de propiedades en el icono que por lo general est junto a la incono LABEL
ab

Universidad Autnoma de Quito

Jess Cisneros Valle

Puestas las tres cajas de texto queda:

Luego en el NAME de la caja de propiedades cambiamos los nombres de las cajas de texto.

Universidad Autnoma de Quito

Jess Cisneros Valle

Podemos cambiar el tamao de las letras con FONT SIZE de la caja de propiedades.

RECORDEMOS: que para ingresar datos numricos en una caja de texto, el VALUE de la propiedades de cada caja de texto que vaya a contener valores numricos debe estar en CERO (0).

Universidad Autnoma de Quito

Jess Cisneros Valle

As mismo en la caja de propiedades elegimos INPUT MASK y le agregamos # como sea necesarios, de esta manera estaremos diciendo que solo ingresaran nmero en la caja de texto elegida y solo en el numrico de #. Si ponemos en INPUT MASK ### solo ingresaran valores de 3 cifras no ms.

Ahora ponemos los botones de comando COMMAND BUTTON. En este caso tres botones.

Universidad Autnoma de Quito

Jess Cisneros Valle

Podemos tambin acoplar o ajustar os botones a la letras de su interior o nombre. Usando FORMAT, SIZE y luego To fit.

Usando CAPTION de la caja de propiedades cambiamos la palabra Command1, Command2, etc. Por los nombres de comandos que necesitamos.

Universidad Autnoma de Quito

Jess Cisneros Valle

El botn 1, se llama ahora, Limpiar, el segundo Calcular y el tercero Salir. Es necesario ahora cambiar los NAME de cada uno de los botones, el primero se llamara btn_limpiar, el segundo btn_calcular y el tercero btn_salir, esto la hacemos en el NAME de la caja de propiedades.

Podemos poner imgenes a los botones para personalizarlos, as podemos escoger las figuras de los iconos, en el buscador de Windows ponemos *.ico. para localizarlos.

Universidad Autnoma de Quito

Jess Cisneros Valle

Los iconos o figuras elegidas las copiamos y los pegamos en la misma carpeta que creamos en la raz C:\ y que contiene nuestro formulario, proyecto, etc.

Luego para colocarlos en nuestros botones, marcamos un botn y en las propiedades elegimos PICTURE.

Universidad Autnoma de Quito

Jess Cisneros Valle

Y pegamos cada icono segn lo especifiquemos.

Luego programamos cada uno de los objetos de nuestro formulario, iniciamos con la caja de texto txt_num1. RECORDEMOS: LOST FOCUS, cuando pierda el foco, SET FOCUS, cuando reciba el foco.

En txt_num1 ponemos que cuando se haga clic despus de ingresar un nmero, pierda el foco y lo pase a txt_num2.

Universidad Autnoma de Quito

Jess Cisneros Valle

El txt_num2, una vez ingresado un nmero y cuando pierda el foco, pase el foco al botn calcular.

El botn calcular que cuando reciba el foco, calcule la suma y al hacer clic pase el foco al botn limpiar.

Universidad Autnoma de Quito

Jess Cisneros Valle

En el botn limpiar, programamos que limpie todo y al hacer clic pase el foco a txt_num1.

El botn salir, pues sale del formulario:

Universidad Autnoma de Quito

Jess Cisneros Valle

El formulario nos quedara as:

Ponemos CRTL+W y grabamos. Elegimos Project y NEW.

Universidad Autnoma de Quito

Jess Cisneros Valle

NUEVO FORMULARIO Para hacer un nuevo formulario vamos a NEW de la barra de men, elegimos PROJECT MANAGER e ingresamos a la lengeta DOCUMENTS elegimos de all FORMS, el formulario que hemos hecho anteriormente frmprimero hacemos clic en FORMS para marcarlo y ponemos NEW.

Creamos un nuevo formulario al cual llamaremos en el CAPTION manejo de caracteres. Y el formulario se llamara en el NAME frm_apellidos

Universidad Autnoma de Quito

Jess Cisneros Valle

La lgica es como sigue, se trata de ingresar nombres y apellidos de una persona y separarlos: Ros Surez Juan Carlos Rios Suarez Juan Carlos Vector X J=1 K=len(m) K=23 caracteres (nos dice el largo de la cadena) For i=1 to K Car=substr((M), i, 1)) If car<> X(j)=x(j)+car Else J=J+1 ENDIF ENDFOR Alltrim( ) elimina los caracteres a la derecha de la cadena Programacin de cada botn: Botn limpiar:
thisform.txt_apenom.Value="" thisform.txt_pat.Value="" thisform.txt_mat.Value="" thisform.txt_pri.Value="" thisform.txt_seg.Value="" thisform.txt_apenom.SetFocus

Botn separar:

DIMENSION x(4) FOR h=1 TO 4 x(h)="" ENDFOR K=ALLTRIM(thisform.txt_apenom.Value) m=LEN(k) j=1 FOR I=1 to M car=SUBSTR(k,i,1) IF car<> "" x(j)=x(j)+car ELSE J=J+1 ENDIF ENDFOR THISFORM.TXT_pat.Value=X(1) THISFORM.TXT_mat.Value=X(2)

Universidad Autnoma de Quito

Jess Cisneros Valle

THISFORM.TXT_pri.Value=X(3) THISFORM.TXT_seg.Value=X(4) THISFORM.BTn_limpiar.SetFocus

Botn salir:

thisform.Release()

Podemos hacer un programa en Fox para calcular el dgito identificador de la cdula de una persona: El formulario como est abajo:

Los botones programados as: btn_verificar:


DIMENSION m(9) FOR i=1 TO 9 m(i)=0 ENDFOR k=thisform.txt_ced.Value longi=LEN(k) IF longi<9 =MESSAGEBOX("cedula incompleta",0+48,"Error") ELSE *proceso de digito verificador FOR i=1 TO 9 m(i)=VAL(SUBSTR(k,i,1))&& asigna de uno en uno los nmeros al vector ENDFOR

Universidad Autnoma de Quito

Jess Cisneros Valle

*calculo posiciones impares si=0 FOR i=1 TO 9 STEP 2 aux=m(i)*2 IF aux>9 aux=aux-9 ENDIF si=si+aux ENDFOR *calculo pares sp=0 FOR i=2 TO 8 STEP 2 sp=sp+m(i) ENDFOR *calculo digito st=si+sp dis=((INT(st/10))+1)*10 dv=dis-st IF dv=10 dv=0 ENDIF thisform.txt_dig.Value=dv

ENDIF

btn_limpiar:

thisform.txt_ced.Value="" thisform.txt_dig.Value="" thisform.txt_ced.SetFocus btn_salir: thisform.Release() caja de texto txt_ced thisform.btn_verificar.SetFocus

Universidad Autnoma de Quito

Jess Cisneros Valle

FORMULARIOS
Primero vamos a elaborar un formulario en el cual vamos a insertar los label, cajas de texto y botones de comando que necesitaremos en nuestro proyecto. (Recordemos que debemos direccionar el proyecto a una carpeta en C SET DEFAULT TO C:\ vfox

Vamos a NEW de la barra superior

Universidad Autnoma de Quito

Jess Cisneros Valle

Aparece la ventana NEW donde escogemos Project y New File.

En la prxima ventana ponemos nombre al proyecto: le pondremos prjfifa

Universidad Autnoma de Quito

Jess Cisneros Valle

Una vez que damos un nombre se guarda y aparece una ventana donde escogeremos DATA. Luego Databases.

Y seguid daremos clic en New, para hacer una nueva base de datos:

Universidad Autnoma de Quito

Jess Cisneros Valle

Aparece una ventana llamada Create donde pondremos el nombre de la base de datos, en este caso bdfifa.

Damos Guardar y aparece una ventana llamada Database Designer seguido del nombre de nuestra base de datos en este caso dbfifa.

Universidad Autnoma de Quito

Jess Cisneros Valle

Damos clic derecho sobre la ventana y escogemos New table

Aparece la ventanita New table de donde hacemos clic en New Table.

Universidad Autnoma de Quito

Jess Cisneros Valle

Una vez echo clic aparece una ventana donde nos pide poner el nombre de la tabla, en este caso se llama equipo. Y Damos Guardar.

Al hacer Guardar, aparece una ventana donde nos permite inicializar o crear nuestra variables a utilizar en la base de datos dentro de la tabla equipo.

Universidad Autnoma de Quito

Jess Cisneros Valle

Ingresamos los datos:

En caption podemos poner nombres mas reconocibles a las variables.

Universidad Autnoma de Quito

Jess Cisneros Valle

Declaramos la variable principal: como index ascendente

En la lengeta indexes, la declaramos como Primary, Hacemos Ok.

Universidad Autnoma de Quito

Jess Cisneros Valle

Aparecer otra vez la ventana donde ya se podr ver nuestra tabla:

Hacemos doble clic sobre la tabla y aparece una ventana donde ingresaremos datos acordes a las variables declarada: para ingresar cara registro usamos CRTL+ Y.

Universidad Autnoma de Quito

Jess Cisneros Valle

Para grabar CRTL+W Aparecer nuevamente la ventana Database Designer dbfifa, donde daremos clic derecho y crearemos una nueva tabla New Table.

Aparece la ventana que nos permitir ingresar el nombre de la nueva tabla que llamaremos en este caso puntaje

Universidad Autnoma de Quito

Jess Cisneros Valle

Designaremos las variables que necesitemos, pero en la clave principal pondremos una clave fornea es decir repetiremos la misma clave que la primera tabla equipo (pues las vamos a relacionar) pero al final de la clave pondremos fk . Es decir cod_equ_fk

Creamos el resto de variables:

Universidad Autnoma de Quito

Jess Cisneros Valle

Igualmente en caption ponemos un nombre referencial, para reconocerlo mejor, esto lo hacemos si lo deseamos.

Como nuestra clave no se repetir nunca, es una sola para las dos tablas, pondremos nuestra clave fornea tambin como primaria. Adems los datos no se repetirn nunca.

Universidad Autnoma de Quito

Jess Cisneros Valle

Ingresamos datos a la nueva tabla puntaje. (Recuerda el cdigo Principal se repite en la tabla primera y en la segunda como fornea.), para ingresar datos doble clic sobre la tabla puntaje. Y CRTL+Y para cada registro.

Para grabar CRTL+W . Una vez que hemos ingresado los datos. Aparece la ventana Data designer dbfifa con las dos tablas: equipo y puntaje.

Universidad Autnoma de Quito

Jess Cisneros Valle

Relacionamos las dos tablas, para lo cual desde el cdigo principal de la tabla equipo (tabla principal) arrastramos el ratn hasta el cdigo principal de la tabla puntaje.

Si damos clic sobre la raya que una las dos tablas aparecer una ventana que nos indica la relacin y el tipo de relacin en este casos es de uno a uno.

Universidad Autnoma de Quito

Jess Cisneros Valle

Damos CRTL+W y as guardamos y cerramos lo que hemos hecho con las tablas. Aparece la ventana Project Manager prjfifa

Si damos clic en Data, veremos las tablas elaboradas.

Universidad Autnoma de Quito

Jess Cisneros Valle

Para hacer los formularios de nuestro proyecto, vamos a Documents, elegimos Form y damos clic en New, es decir crearemos un formulario nuevo. Aparece la ventana New de donde hacemos clic en New Form.

Aparece el formulario: Form1 (FORMULARIO CONSULTA)

Universidad Autnoma de Quito

Jess Cisneros Valle

Vamos al Caption de la caja Properties y cambiamos el nombre ac le podremos esta vez Consulta Equipos y en el Name pondremos frmConsulta

Damos clic en el icono del disquete de la barra superior para guardar el formulario frmConsulta. Y le pondremos el nombre frmConsulta y hacemos clic en guardar

Universidad Autnoma de Quito

Jess Cisneros Valle

Ponemos los label y cajas de texto en el formulario.

En esta ocasin usaremos command group para insertar los botones:

Universidad Autnoma de Quito

Jess Cisneros Valle

Como command group nos da por defecto dos botones vamos a la caja properties y en Button count que esta con 2 ponemos 4.

Al dar Enter, aparecen dos botones ms completando cuatro.

Universidad Autnoma de Quito

Jess Cisneros Valle

Los ordenamos.

Para acceder a los botones de comando de command group debemos ir a properties y seleccionarlos uno a uno.

Universidad Autnoma de Quito

Jess Cisneros Valle

Cambiemos los Name de los txt box: de acuerdo a lo que contendrn as: si contendrn datos numricos aremos cambios en el Name y adems en Value pondremos CERO y en el imput mask pondremos tantos # como sean necesarios. Como vemos los datos numricos alinean sus variables a la derecha y los datos carcter a la izquierda.

Ahora pondremos nombre al Command group, para lo cual vamos al Name de la caja properties y lo hacemos. En esta ocasin se llamar bg_001.

Universidad Autnoma de Quito

Jess Cisneros Valle

Para cambiar el Caption y el Name de cada botn del Command group que ahora se llama bg_001 debemos usar la caja properties.

Activamos cada botn y hacemos los cambios.

Universidad Autnoma de Quito

Jess Cisneros Valle

Para subrayar una letra de cualquier botn de comando y hacer que esa letra sea de acceso rpido con el ALT+ letra subrayada. En el Caption ponemos \<Limpiar, as subrayamos la Limpiar.

Subrayadas una letra de todos los botones:

Universidad Autnoma de Quito

Jess Cisneros Valle

Ahora en la parte inferior crearemos los Label y cajas de texto de la tabla puntaje:

Una vez insertado lo que necesitamos y cambiados las caractersticas de las cajas de texto en el imput mask y Value de ser necesario (si son valores numricos). Ahora TENEMOS QUE RELACIONAR EL FORMULARIO CON LA BASE DE DATOS que tenemos hecha y que se llama bdfifa. Para lo cual vamos al men superior y elegimos VIEW y luego Data environment.

Universidad Autnoma de Quito

Jess Cisneros Valle

Aparece la ventana Add table or view, en donde elegiremos las tablas en este caso equipo y puntaje daremos Add en cada una de ellas.

Una vez elegidas las tablas aparecern conjuntamente con la relacin que hicimos anteriormente.

Universidad Autnoma de Quito

Jess Cisneros Valle

Cerramos en la X y luego damos CRTL+W. Prosiguiendo con la relacin formulario base de datos, vamos a la barra de mens superior vamos a Window y elegimos Data session

Elegimos de la ventana que se abre cada una de las tablas, empezando por la tabla principal que en este caso es equipo.

Universidad Autnoma de Quito

Jess Cisneros Valle

Cerramos en la X y luego damos CRTL+W. PROGRAMANDO BOTONES DE COMANDO: Lo elegimos del command group que se llama bg_001.

Si deseamos deshabilitar un botn de comando en este caso Puntaje, debemos ir a la caja de propiedades y una vez marcado en Enabled ponemos False .F.

Universidad Autnoma de Quito

Jess Cisneros Valle

BOTON CONSULTA:
SELECT equipo band=0 GO top SCAN FOR cod_equ=thisform.txt_cod.Value band=1 thisform.txt_nom.Value=nom_equ thisform.txt_tec.Value=tec_equ thisform.txt_fun.Value=fun_equ thisform.txt_ema.Value=ema_equ ENDSCAN IF band=0 =MESSAGEBOX("equipo no existe",0+48,"FIFA") THISFORM.GB_001.Btn_limpiar.SetFocus ELSE THISFORM.GB_001.BTN_pun.Enabled= .T. THISFORM.GB_001.BTN_pun.SetFocus ENDIF

Botn Puntaje:
SELECT PUNTAJE BAND=0 GO TOP DO WHILE NOT EOF() IF COD_EQU_FK=THISFORM.TXT_cod.Value BAND=1 THISFORM.TXT_jug.Value=JUG_PUN THISFORM.TXT_GAN.Value=GAN_PUN ganados=gan_pun THISFORM.TXT_emp.Value=EMP_PUN empatados=emp_pun THISFORM.TXT_per.Value=PER_PUN THISFORM.TXT_fav.Value=FAV_PUN favor=fav_pun THISFORM.TXT_CON.Value=CON_PUN contra=con_pun ENDIF SELECT PUNTAJE SKIP ENDDO IF BAND=0 =MESSAGEBOX("equipo no registra partidos",0+16,"fifa") ELSE *procedo de calculo thisform.txt_puntaje.Value=(ganados*3)+empatados thisform.txt_diferencia.Value=favor-contra ENDIF thisform.gb_001.btn_limpiar.SetFocus

Botn Limpiar:
thisform.txt_cod.Value=0 THISFORM.TXT_jug.Value="" THISFORM.TXT_GAN.Value="" THISFORM.TXT_emp.Value="" THISFORM.TXT_per.Value="" THISFORM.TXT_fav.Value="" THISFORM.TXT_CON.Value=""

Universidad Autnoma de Quito

Jess Cisneros Valle

thisform.txt_nom.Value="" thisform.txt_tec.Value="" thisform.txt_fun.Value="" thisform.txt_ema.Value="" thisform.txt_diferencia.Value="" thisform.txt_puntaje.Value="" thisform.gb_001.btn_pun.Enabled= .F. thisform.txt_cod.SetFocus

Boton salir:
thisform.release().

NUEVO FORMULARIO (Formulario ALTAS) Para hacer un Nuevo formulario en en el mismo proyecto nos vamos a Window del men superior y elegimos nuestro proyecto.

Aparece el Project manager de donde elegimos Form y New

Universidad Autnoma de Quito

Jess Cisneros Valle

El nuevo formulario en el Caption se llamara Ingreso Equipos, (para dar de alta nuevos equipos) y en el Name frmAltasequipos. Todo esto lo cambiamos el la cala Properties.

Damos grabar en el disquete de la barra de iconos superior y ponemos un nombre al formulario frmAltasequipos.

Universidad Autnoma de Quito

Jess Cisneros Valle

El formulario terminado quedara:

Realizamos un pequeo programa para Txt_cod:


thisform.btnConsultar.SetFocus

Indica que cuando se ejecute Txt_cod pasar el foco al botn Consultar. Igualmente como hicimos en el formulario anterior debemos RELACIONAR EL FORMULARIO CON LA BASE DE DATOS, tanto en el View (Data environment) como en Window (Data Session).

Universidad Autnoma de Quito

Jess Cisneros Valle

NOTA: Para ahorrar tiempo podemos copiar los objetos de los formularios.

Universidad Autnoma de Quito

Jess Cisneros Valle

En modo de ejecucin de cualquier formulario debemos hacer clic en iconos superior.

de la barra de

Ingresando una clave: 101 de Ecuador.

Universidad Autnoma de Quito

Jess Cisneros Valle

Cunando no encuentra el equipo permite ingresarlo: (darle de Alta)

Registro Grabado:

Universidad Autnoma de Quito

Jess Cisneros Valle

PROGRAMACION DE BOTONES: (formulario Altas) Boton Consultar (Grabar):


SELECT equipo IF thisform.btnConsultar.Caption="Consultar" *proceso de consulta band=0 GOTO top SCAN FOR thisform.txt_cod.Value=cod_equ band=1 thisform.txt_nom.Value=nom_equ thisform.txt_tec.Value=tec_equ thisform.txt_fun.Value=fun_equ thisform.txt_ema.Value=ema_equ ENDSCAN IF band=1 =MESSAGEBOX("equipo ya existe",0+32,"FIFA") THISFORM.BTnLimpiar.SetFocus ELSE THISFORM.BTnConsultar.Caption="Grabar" thisform.txt_nom.SetFocus ENDIF ELSE *proceso de grabacion p=MESSAGEBOX("GRABA LOS DATOS...?",4+32,"FIFA") IF P=6 APPEND BLANK REPLACE COD_EQU WITH THISFORM.TXT_cod.Value REPLACE NOM_EQU WITH THISFORM.TXT_nom.Value REPLACE TEC_EQU WITH THISFORM.TXT_tec.Value REPLACE FUN_EQU WITH THISFORM.TXT_fun.Value REPLACE EMA_EQU WITH THISFORM.TXT_ema.Value =MESSAGEBOX("REGISTRO GRABADO",0+48,"FIFA") ELSE =MESSAGEBOX("PROCESO CANCELADO...!!!",0+48,"FIFA") ENDIF THISFORM.BTnConsultar.Caption="Consultar" thisform.btnLimpiar.SetFocus ENDIF

Boton Limpiar:
thisform.txt_cod.Value=0 thisform.txt_nom.Value="" thisform.txt_tec.Value="" thisform.txt_fun.Value=0 thisform.txt_ema.Value="" thisform.txt_cod.SetFocus

Boton Salir:
thisform.Release()

Universidad Autnoma de Quito

Jess Cisneros Valle

NUEVO FORMULARIO (Formulario MODIFICACION/ACTUALIZACION) Creamos un formulario de la misma manera que lo hicimos para el formulario Altas: Vamos a Data Environment para seleccionar las tablas del proyecto.

Igualmente como hicimos en el formulario anterior debemos RELACIONAR EL FORMULARIO CON LA BASE DE DATOS, tanto en el View (Data environment) como en Window (Data session).

Universidad Autnoma de Quito

Jess Cisneros Valle

Recordemos, para crear un nuevo formulario vamos a Window. Y elegimos el proyecto:

Seguimos.

Universidad Autnoma de Quito

Jess Cisneros Valle

PROGRAMANDO PARA ACTUALIZACION: Boton Consulta (Actualizar)


SELECT equipo IF thisform.btnConsultar.Caption="Consultar" *proceso de consulta GO top band=0 SCAN FOR thisform.txt_cod.Value=cod_equ band=1 thisform.txt_nom.Value=nom_equ thisform.txt_tec.Value=tec_equ thisform.txt_fun.Value=fun_equ thisform.txt_ema.Value=ema_equ ENDSCAN IF band=1 *si existe thisform.txt_cod.Enabled= .F. thisform.btnConsultar.Caption="Actualizar" thisform.txt_nom.SetFocus ELSE =MESSAGEBOX("codigo no existe",0+48,"FIFA") THISFORM.BTnLimpiar.SetFocus ENDIF ELSE *proceso de actualizacin P=MESSAGEBOX("DESEA ACTUALIZAR",4+32,"FIFA") IF P=6 GO TOP DO WHILE NOT EOF() IF COD_EQU=THISFORM.TXt_cod.Value REPLACE NOM_EQU WITH THISFORM.TXT_nom.Value

Universidad Autnoma de Quito

Jess Cisneros Valle

ENDIF

ENDDO =MESSAGEBOX("REGISTRO ACTUALIZADO",0+48,"FIFA") ENDIF THISFORM.BTnConsultar.Caption="Consultar" thisform.btnLimpiar.SetFocus

ENDIF SELECT EQUIPO SKIP

REPLACE TEC_EQU WITH THISFORM.TXT_tec.Value REPLACE FUN_EQU WITH THISFORM.TXT_fun.ValUE REPLACE EMA_EQU WITH THISFORM.TXT_ema.Value

Boton Limpiar:
thisform.txt_cod.Value=0 thisform.txt_nom.Value="" thisform.txt_tec.Value="" thisform.txt_fun.Value=0 thisform.txt_ema.Value="" thisform.txt_cod.SetFocus

Boton Salir:
thisform.Release()

Universidad Autnoma de Quito

Jess Cisneros Valle

IMPORTANTE:

NUEVO FORMULARIO (Formulario ELIMINACION)

Para que se efectivice o se ejecute la eliminacin (lgica) de un registro se debe activar en el formulario lo siguiente: SET DELETE ON. Para que ocurra lo contrario SET DELETE OFF. Una vez que hemos creado todos los objetos en el formulario eliminar:

Hacemos doble clic en el formulario:

Universidad Autnoma de Quito

Jess Cisneros Valle

Al poner SET DELETE ON el registro que fue eliminado en etapa de ejecucin desaparece lgicamente.

PROGRAMANDO ELIMINACION: Boton Consultar(Eliminar)


SELECT equipo IF thisform.btnConsultar.Caption="Consultar" *proceso de consulta GO top band=0 SCAN FOR cod_equ =thisform.txt_cod.Value band=1 thisform.txt_nom.Value=nom_equ thisform.txt_tec.Value=tec_equ thisform.txt_fun.Value=fun_equ thisform.txt_ema.Value=ema_equ ENDSCAN IF band=1 *si existe thisform.btnConsultar.Caption="Eliminar" ELSE =MESSAGEBOX("codigo no existe",0+48,"FIFA") THISFORM.BTnLimpiar.SetFocus ENDIF ELSE *proceso de eliminacion P=MESSAGEBOX("DESEA eliminar",4+32,"FIFA") IF P=6

Universidad Autnoma de Quito

Jess Cisneros Valle

SELECT DELETE SELECT DELETE ELSE

equipo FOR cod_equ=thisform.txt_cod.Value puntaje for cod_equ_fk=thisform.txt_cod.Value

=MESSAGEBOX("Registro eliminado",0+32,"FIFA")

=MESSAGEBOX("Registro no eliminado",0+32,"FIFA") ENDIF THISFORM.BTnConsultar.Caption="Consultar" thisform.btnLimpiar.SetFocus ENDIF

Para los dos programas Boton limpiar

thisform.txt_cod.Value=0 thisform.txt_nom.Value="" Thisform.txt_tec.Value="" thisform.txt_ema.Value="" thisform.txt_fun.Value=0 thisform.txt_cod.Enabled= .T. thisform.txt_cod.SetFocus boton salir thisform.Release()

Para cerrar todo el proyecto damos CRTL+W.

Universidad Autnoma de Quito

Jess Cisneros Valle

Las opciones en las barras se llaman PAD, los PAD internamente tienen POPUP. Ejem: El sistema administrativo financiero Consta del: Area financiera Cuentas por cobrar Libro diario Balances Situacin inicial Estado de resultados Area administrativa Ingreso de personal Historial de personal Control Area de Personal Nomina IESS SRI 1.- PARTE DISEO DEL MENU 2 .- PARTE EJECUTABLE DEL MENU DISEO DE MENU Vamos al men superior elegimos Window, luego nuestro proyecto.

LOS MENUS

Universidad Autnoma de Quito

Jess Cisneros Valle

Elegimos la lengeta OTHER.

Luego Menu y despus New. Aparece la ventana New Menu y elegimos Menu.

Universidad Autnoma de Quito

Jess Cisneros Valle

Se despliega la ventana Menu Designer, aqu literalmente construimos el men.

Creamos el MENU PRINCIPAL. Adems al hacer clic en PREVIEW, podemos visualizar el men en la pantalla. Luego para hacer un sub men (POPUP) dentro de un PAD damos clic en CREATE. De cada PAD

Universidad Autnoma de Quito

Jess Cisneros Valle

Al dar clic en el CREATE de Mantenimiento podemos ingresar los POPUP que necesitemos. Es decir creamos un sub men de Mantenimiento.

Quedara algo como esto: Es el sub men de Mantenimiento.

Universidad Autnoma de Quito

Jess Cisneros Valle

Para poder unir o enlazar el men Sub menu Ingreso Equipos con el formulario frmAltasEquipos. Primero nos posicionamos en Ingreso Equipos activamos Result como Procedure (procedimiento)

Luego seleccionamos CREATE del mismo Ingreso Equipos, aqu escribimos el enlace: DO FORM frmaltasequipos.scx (SCX ejecutable del formulario para Menu) y luego ponemos CRTL+W para grabar.

Universidad Autnoma de Quito

Jess Cisneros Valle

NOTA: Si algun formulario an no existe se procede a colocar un mensaje, explicando que est en construccin, ejemplo: =messagebox(modulo en construccion,0+48,FIFA) Para la el formulario frmConsulta. Luego ponemos un CRTL+W

Ac vemos como vamos cambiando a PROCEDURE todos los Sub men.

Universidad Autnoma de Quito

Jess Cisneros Valle

Formulario Actualizar frmActualiza y frmEliminar. Usaremos igualmente los archivos con terminacin .CSX. Y luego CRTL+W para grabar. As uno a uno los formularios.

Para regresar al men principal, en Menu Level ponemos Menu Bar.

Universidad Autnoma de Quito

Jess Cisneros Valle

Ahora vamos al men Edicin:

Vamos en este men a utilizar objetos ejecutables de Visual Fox. Como la accin Copiar. Seleccionamos Edicin y luego CREATE. Ponemos Copiar en el sub men y luego en Result ponemos Bar#

Universidad Autnoma de Quito

Jess Cisneros Valle

Nos queda: Copiar, Bar# del Menu Level Edicion

Pero para poder usar Copiar ponemos el comando que reconoce la Copia (Copy) el cual lo reconoce Fox. Lo escribimos en Options: _med_copy

Universidad Autnoma de Quito

Jess Cisneros Valle

Para crear teclas de acceso rpido usamos el pequeo cuadro que esta el Option. Y aparecer una vez hecho clic la ventana llamada Prompt Option, y de manera directa escribimos las teclas de acceso que usaremos de la siguiente manera: en Key Label y en Key Text ponemos CTRL+Q. Presionar CRLT+una tecla en este caso la Q.

Podemos poner un mensaje de informacin: Lo escribiremos en Message y entre comillas .

Universidad Autnoma de Quito

Jess Cisneros Valle

PONIENDO ICONOS EN EL MENU: Si deseamos poner un icono en el men, procedemos a buscar iconos en la PC para una vez seleccionado los copiamos y los colocamos dentro en la carpeta de nuestro proyecto. Y de all los llamamos desde la ventana Prompt Option. Para lo cual usamos el pequeo cuadro que esta aqu. Cerramos poniendo Ok

AL cerrar poniendo Ok, aparece un visto en el cuadro que est en Option.

Universidad Autnoma de Quito

Jess Cisneros Valle

Para escoger otras acciones de Fox usamos el botn Insert Bar, al hacer clic se despliega varias opciones de acciones de Fox.

Como Insert Bar inserta en el men las acciones de Fox en ingles podemos cambiar los nombres a espaol.

Universidad Autnoma de Quito

Jess Cisneros Valle

Si queremos poner una CALCULADORA, escribimos en el Prompt Calculadora, luego en Result elegimos Commnad y por ultimo escribimos run calc.exe, que es el ejecutable de la calculadora de Windows.

Para regresar al men principal que estamos haciendo hacemos lo siguiente: En men level elegimos men bar.

Universidad Autnoma de Quito

Jess Cisneros Valle

Menu Otros: Del men principal elegimos otros. En Promt. Creamos los campos. En men Otros creamos nuevos POPUP (Estadsticas, Informes).

Create: Damos create en Estadisticas y creamos nuevos POPUP.

Universidad Autnoma de Quito

Jess Cisneros Valle

A cada sub men de Estadsticas le asignamos el comando respectivo en Result.

Si an no est construido podemos poner: construccin en cada formulario

PROCEDURE, y un mensaje en

=MESSAGEBOX("MODULO EN COSNTRUCCION",0+48,"FIFA")

Universidad Autnoma de Quito

Jess Cisneros Valle

Para hacer el menu INFORME y luego vamos a CREATE

Lo hacemos como lo hicimos en los menus anteriores. (men Otros)

Universidad Autnoma de Quito

Jess Cisneros Valle

Como esta en construccin, ponemos:

Con PREVIEW vemos lo que hemos hecho en nuestro men

Universidad Autnoma de Quito

Jess Cisneros Valle

Por men bar (Menu Level) Salimos al men principal.

Opcin Salir del men principal:

Universidad Autnoma de Quito

Jess Cisneros Valle

Procedemos: Poniendo al Result como Command.

Ponemos Quit para salir

Universidad Autnoma de Quito

Jess Cisneros Valle

Terminado Grabamos el men. En el disquete hacemos clic y ponemos un nombre.

CONSTRUIMOS EL EJECUTABLE DEL MEN Vamos a View y elegimos General Options.

Universidad Autnoma de Quito

Jess Cisneros Valle

Formulario de nivel superior y OK y grabamos en el diskette

Universidad Autnoma de Quito

Jess Cisneros Valle

GENERAMOS EL MEN Elegimos Menu de la barra superior y Generate.

Damos clic en Generate, para salir lo hacemos en X

Universidad Autnoma de Quito

Jess Cisneros Valle

Para salir cerramos en X en Menu Designer, luego vamos a Documents. Para elaborar el formulario del men que hemos estado haciendo:

Vamos a Form y luego a New, se abre la ventana New Form y elegimos New Form

Universidad Autnoma de Quito

Jess Cisneros Valle

Al formulario del Men en propierties elegimos 2-As Top level form

Universidad Autnoma de Quito

Jess Cisneros Valle

Luego Maximizado al formulario men para que ocupe toda la pantalla. (Windows State)

En el Caption ponemos un nombre :

Guardamos en el disquete del men superior. Universidad Autnoma de Quito

Jess Cisneros Valle

Le ponemos un nombre al formulario del men. Y guadar.

Para que cuando el programa se cargue llame primero a nuestro men, damos Doble clic en el formulario y:

Universidad Autnoma de Quito

Jess Cisneros Valle

Ponemos : DO MENUFIFA.MPR WITH THIS, .T. Grabamos con CRL+W.

LUEGO Vamos a cada formulario (Consulta, Altas, Actualizacin, Eliminar) y le ponemos 1- In Top Level Form

Universidad Autnoma de Quito

Jess Cisneros Valle

Universidad Autnoma de Quito

Jess Cisneros Valle

REPORTES
Primero debemos definir una impresora, que ser la que utilizaremos para la impresin de los reportes. Los Reportes estn constituidos por: - Cabecera Titulo del reporte - Cuerpo del reporte (detalle) Desplegar la informacin del reporte - Pie del reporte Firmas de responsabilidad Nmero de pgina

En nuestro proyecto vamos a Documents y escogemos reportes (REPORTS), luego damos NEW para iniciar el proceso de crear nuestro reporte o reportes.

Universidad Autnoma de Quito

Jess Cisneros Valle

Luego en la ventana NEW REPORT , escogemos New Report.

Al dar clic en New Report, aparece la ventana Report Designer - Report1, la cual posee tres particiones: Page Header (Cabecera), Detail (Contenido) y Page Footer (Pie de reporte).

Universidad Autnoma de Quito

Jess Cisneros Valle

Para poder mover las barras Page Header (Cabecera), Detail (Contenido) y Page Footer (Pie de reporte). Es necesario dar clic sobre ella (marcarla) y sosteniendo el clic sobre la barra respectiva la movemos para arriba o hacia abajo.

Para escribir en la cabecera, seleccionamos de la ventana Report Controls, la letra A es decir damos clic y luego clic en el sector de la cabecera donde queremos iniciar con la escritura de la Cabecera del Reporte.

Universidad Autnoma de Quito

Jess Cisneros Valle

Podemos darle formato a la cabecera o a cualquier oracin que pongamos en nuestro reporte, para esto vamos al men principal de la parte superior de la pantalla y escogemos Format y por ejemplo luego Font.

Podemos ponerle color:

Universidad Autnoma de Quito

Jess Cisneros Valle

Centrar el nombre del reporte usando Align.

Para insertar un rectngulo o cuadro en el reporte, dentro del cual escribiremos datos especficos, marcamos el cuadro de la ventana Report Controls y lo insertamos en el reporte:

Universidad Autnoma de Quito

Jess Cisneros Valle

Luego escribimos lo que necesitamos resaltar dentro del cuadro de la cabecera del reporte, ponemos un detalle para la fecha.

Ponemos una pequea lnea dentro del rectngulo para separar las palabras de la cabecera y para ponerla donde la necesitemos la copiamos CRTL +C y CRTL+V.

Universidad Autnoma de Quito

Jess Cisneros Valle

Podemos centrar las palabras:

Copiamos pues el cuadro que hemos creado y lo colocamos en el espacio del reporte llamado Detail (Contenido), a fin de hacer una copia idntica a la de la cabecera y evitar descentrar el contenido del Detalle. Para poder copiar el rectngulo y las lneas verticales hacemos clic sobre cada una de ellas manteniendo aplastado el SHIFT. Acto seguido CRL+C + CRL+V y con ayuda de las flechas la movemos. Luego marcamos la lnea DETAIL y la movemos hacia arriba hasta conseguir que est junto al cuadro que acabamos de copiar sin dejar espacios.

Universidad Autnoma de Quito

Jess Cisneros Valle

Nos queda ms o menos as: Ponemos adems el pi de pgina del reporte.

Ponemos tambin un sitio para el nmero de pgina:

TIPOS DE DATOS: Funciones de Fox Variables de Fox Campos de las tablas Variables creadas por el usuario Universidad Autnoma de Quito Jess Cisneros Valle

Grabamos el reporte dentro de la carpeta de nuestro proyecto:

IMPORTANTE: Se debe RELACIONAR el reporte con la base de datos (tablas) de nuestro proyecto a fin de poder usar los datos de las tablas y sus variables. Para lo cual vamos a View y luego damos clic en Data Environment.

Universidad Autnoma de Quito

Jess Cisneros Valle

Aparece una ventana Data Environment, luego damos clic en Add pero debemos haber dado clic derecho sobre la ventana Data Environment.

Al dar clic en Add, aparecen las tablas de nuestro proyecto y seleccionamos las tablas de las cuales seleccionaremos las variables o registros que necesitemos ms adelante. Cerramos la ventana con CRTL + W.

Universidad Autnoma de Quito

Jess Cisneros Valle

Luego vamos a WINDOW y seleccionamos Data Session

Aparecer la ventana Data Session y seleccionamos OPEN y se abre una ventana llamada Open, y es ac donde elegimos las tablas que vamos a usar de nuestro proyecto.

Universidad Autnoma de Quito

Jess Cisneros Valle

La ventana Data Session queda, para cerrar damos CRTL+W.

Para poner la fecha en este caso, elegimos de la ventana Report Contorls, el icono Field y lo colocamos donde pondremos la fecha, al aceptar en Field aparece la ventana Field Properties.

ab|

Universidad Autnoma de Quito

Jess Cisneros Valle

Damos clic sobre el pequeo cuadro que est a la derecha de la ventana Expresin, a fin de seleccionar de la ventana Expression Builder los comandos de Fox que necesitemos, en este caso seleccionamos {DATE}, la fecha del sistema.

La seleccin de DATE [] es como en la grafica de abajo:

Universidad Autnoma de Quito

Jess Cisneros Valle

Para crear variables personalizadas que necesitamos como en este caso la variable para el ordinal, procedemos de la siguiente manera: Vamos a Report del men superior y elegimos Properties.

Aparece la ventana Report Properties.

Universidad Autnoma de Quito

Jess Cisneros Valle

Elegimos la lengeta Variables y luego en Add. Aparece la ventana Report Variable que nos pide el nombre de la variable que estamos creando. En este caso ord

Al poner el nombre de la variable (ord) esta aparece en la ventana Variables de Report Properties, en Calculation Type seleccionamos Sum o Cout preferiblemente Cout y OK.

Universidad Autnoma de Quito

Jess Cisneros Valle

Luego para usar la variable. Seleccionamos Field de la ventana Report Controls y en la ventana Field Properties seleccionamos el cuadrito que est a la derecha de la ventana Expressin.

De la ventana Expressin Builder elegimos ord, que es la variable que creamos y dando doble clic la seleccionamos.

Universidad Autnoma de Quito

Jess Cisneros Valle

Nos queda ord dentro de la ventana Expressin.

Luego vamos a la lengeta Format y en Format expressin ponemos 99 (la mascara de salida mximo dos dgitos), elegimos Numeric y luego en Format Options elegimos Blank if zero y por ultimo Ok. Y listo creamos nuestra variable.

Universidad Autnoma de Quito

Jess Cisneros Valle

No debemos olvidar que antes de cerrar la configuracin de ord en la lengeta Calculate, debemos poner COUT en la ventanita de seleccin Calculation Type.

Se ha seleccionado las variables DATE[], ord, y de paso ya se han ingresado las variables o campos nom_equ, tec_equ. Campos que fueron seleccionados de las tablas de nuestro Proyecto. La seleccin se inicia con Field, para seleccionar un campo y al aparecer la ventana Field Propierties damos clic en el cuadrito para que nos lleve a la ventana Expressin Builder de donde elegimos las variables que necesitemos.

Universidad Autnoma de Quito

Jess Cisneros Valle

PRINT PREVIEW Para visualizar como nos va quedando nuestro reporte, vamos al men principal elegimos FILE y luego Print Preview.

Ac vemos como nos queda la vista previa. Universidad Autnoma de Quito

Jess Cisneros Valle

PONIENDO NUMEROS DE PAGINA: Para poner nmeros a las pginas de nuestro Reporte, primero seleccionados Field, colocamos el Field en el lugar para poner el nmero de pgina y aparece la ventana Field Properties. Damos clic en el cuadrito de Expressin.

Universidad Autnoma de Quito

Jess Cisneros Valle

En la ventana Expresin, vamos a variables y seleccionamos _pageno y listo nmero de pginas realizado.

Debemos relacionar nuestro reporte con el formulario correspondiente, para lo cual vamos al men y seleccionamos el formulario donde debe ir nuestro reporte, en este caso se trata del Sub men Informe, del sub men equipos que es el sub menu que contendr el reporte, Damos Create

Universidad Autnoma de Quito

Jess Cisneros Valle

Al dar CREATE, aparece la ventana Men Designer, del proyecto FIFA en este caso seguido del nombre del sub men que contendr el reporte llamando Equipos Procedure*, dentro de esta ventana escribiremos lo siguiente: REPORT FORM < nombre_reporte.FRX> preview REPORT FORM repequipos.frx preview Cabe indicar que repequipos.frx es el nombre que le pusimos anteriormente a nuestro reporte cuando lo estbamos elaborando. Por ultimo damos CRTL+W.

Automticamente al dar CRTL+W se graba y debemos GENERAR nuevamente nuestro men, pues para cada cambio que se haga en el men por mnimo que sea se debe siempre volver a generar. Por eso vamos a Men y seleccionamos Generate.

Universidad Autnoma de Quito

Jess Cisneros Valle

En la ventana Generate Menu damos Generate.

Nos aparece una pequea ventana que nos dice si deseamos reescribir en el men existente y decimos YES (si). Este proceso lo debemos hacer con cada reporte que creemos y que anexemos al men correspondiente.

Universidad Autnoma de Quito

Jess Cisneros Valle

Primero creamos un proyecto dentro de una carpeta creada en C en este caso la carpeta vfox7.

REPORTES USANDO 3 TABLAS RELACIONADAS

Creamos un proyecto que en este caso se llama final, y una base de datos llamada dbcfinal dentro del cual crearemos tres tablas que por esta ocasin se llamaran: alum, materia y notas. TABLA alum.

Universidad Autnoma de Quito

Jess Cisneros Valle

El cdigo codalu ser clave primaria:

La tabla materia, tendr un cdigo de nombre cod_mat_pr

Universidad Autnoma de Quito

Jess Cisneros Valle

Su clave tambin ser primaria.

Una razn por la que los cdigos de las tablas alum y materia son primarias es que dichos cdigos no se repetirn y sern enlazados en otra tabla, en este caso la tabla notas, pues un alumno puede tener varias notas y varias materias y de igual manera una materia puede ser tomada por varias alumnos y tener varias notas Son relaciones de uno a varios.

Universidad Autnoma de Quito

Jess Cisneros Valle

Los cdigos de la tabla notas son regulares, pues servirn de enlace entre las tablas alum y materia. Nos queda as:

Ingresamos los datos en la tabla alum.

Ingresamos datos en l tabla materia

Ingresamos datos en la tabla notas:

Universidad Autnoma de Quito

Jess Cisneros Valle

Vamos a documentos (Docs) de la ventana Project Manager final y elegimos Reports y haremos un reporte nuevo. En New y en New Report elegimos New Report.

IMPORTANTE: HACER LA RELACION de la TABLAS: Esto lo hacemos yendo al View del men superior y elegimos Data Base Designer, es una relacin de UNO a VARIOS, con la tabla notas como una tabla de enlace.

Universidad Autnoma de Quito

Jess Cisneros Valle

Luego en WINDOW del men superior y en el Data Session seleccionamos las tablas segn la relacin o como las necesitemos. Para cerrar las dos ventanas CRL+W.

IMPORTANTISIMO: Una vez dentro de nuestro reporte en este caso Report1.frx, (Pues fue grabado como Report1) antes de realizar cualquier introduccin debemos ingresar al View del men superior y elegir Data Environment al ver las tablas relacionadas, elegimos la lnea de relacin y damos clic derecho al aparecer una ventana elegimos Properties. Aparece la ventana Properties-Repor Designer-report 1.frx. de esa ventana elegimos One To Many (Uno a varios) y lo ponemos en TRUE. Para cerrar damos a todo CRLT+W. Y nos quedamos en el formulario.

Universidad Autnoma de Quito

Jess Cisneros Valle

Solo una vez hecho lo anterior podemos empezar a poner los registros o variables de nuestras tablas en el formulario de acuerdo a lo que necesitemos, Abajo vemos el reporte ingresado todas las variables.

PERO. Como ponemos la variable ordi. Ahora lo veremos: Debemos crearla. Vamos a Report del men superior y elegimos Properties .

Universidad Autnoma de Quito

Jess Cisneros Valle

En la ventana Report Properties elegimos la lengeta variables y luego el botn ADD. Aparece la ventana ADD y dentro de ella escribimos el nombre de la variable que necesitamos. En este caso la variable ordi para el nmero ordinal.

Luego en el cuadrito de la derecha damos clic para elegir la variable: Aparece la ventana Expresisn Builder.

Universidad Autnoma de Quito

Jess Cisneros Valle

Una vez elegida damos OK y Aparece la palabra ordi dentro de la ventana Variables: y en Calculation y le ponemos COUNT.

De igual manera para crear la variable sumat hacemos como lo hicimos en la variable ordi. La creamos, luego en Report Properties damos clic en el cuadrito y configuramos sumat, como sumat nos sirve para sumar las notas (Notas n1+Notas n2+Notas n3), eso lo especificamos en la ventana Expressin Builder, en la ventana expresin sumamos las notas. Eligiendo la tabla de variables respectivas. En este caso tabla notas.

Universidad Autnoma de Quito

Jess Cisneros Valle

PROGRAMANDO DATOS PARA EL LABEL DE OBSERVACION: Para esta variable debemos ir al LABEL y colocar el label en el sitio donde va a ir la observacin que necesitemos en este caso de las notas (APROBADO, NO APRUEBA y SUFICIENCIA). Una vez que hemos colocado el label aparece la ventana field properties, en la ventana expressin, programaremos la variable que dar resultado a los datos de Observacin, lo programado nos queda as: Expressin: iif( sumat>=44,"Aprobado",iif (sumat<=34,"No Aprueba","Suficiencia"))

Damos OK. Las dems variables, las ponemos del label y elegimos las tablas y variables correspondientes. Cabe sealar que en este caso la tabla de datos de donde sacaremos los datos se la elige una a una en la ventana Expresin Builder de Repor Properties. Debemos considerar muy importante la tabla en torno a la cual girar nuestro reporte para hacer especial nfasis en ella. En este caso la tabla de inicio principal el alum

Universidad Autnoma de Quito

Jess Cisneros Valle

VISTA PREVIA DEL REPORTE: Para ver como est que dando el report1 vamos al menu superior y elegimos FILE y luego Print Preview

El reporte est quedando as, para salir de Vista previa damos Escape. (Esc)

Universidad Autnoma de Quito

Jess Cisneros Valle

Para hacer otro Reporte el Report2. Vamos a Project manager, luego a report, luego a New y el New Repor damos New Report lo grabaremos como Report2. Antes que nada debemos ir a View del men superior y en Data Environment configurar nuevamente la posicin de relacin de las tablas: Ahora esta materia notas - alumnos

Luego damos clic derecho sobre la lnea de relacin (materia notas) properties y seleccionamos One To Many y lo ponemos en TRUE.

elegimos

Universidad Autnoma de Quito

Jess Cisneros Valle

La relacin (notas-alumnos) queda en One To Many como FALSE. En el Data Session de Window, ponemos: materia(1), notas(2) y alum(3) (posiciones de memoria. Area de trabajo de memoria.)

Universidad Autnoma de Quito

Jess Cisneros Valle

DATA GROUPING Luego de configurar el Data environment y el Data Session, debemos configurar el DATA GROUPING. Para lo cual vamos a Report de la barra superior y elegimos Data Grouping

Aparece la ventana Report Properties y elegimos la lengeta Data Grouping.. Damos clic en ADD.. Para seleccionar la variable en torno a la cual se realizara el reporte.

Universidad Autnoma de Quito

Jess Cisneros Valle

Al dar ADD aparece la ventana Expresin Builder en Front Table elegimos la tabla en donde esta el cdigo que buscamos. Seleccionamos la tabla alum en este caso y escogemos con doble clic el cdigo en este caso codalu. (Es la tabla principal de este reporte).

En expressin aparece el cdigo de la tabla seleccionada, damos OK

Universidad Autnoma de Quito

Jess Cisneros Valle

Regresamos automticamente a la ventana Report Properties y vemos que ya est ingresada la clave entonces seleccionamos NEW PAGE. Y Damos Ok

Vamos a FILE y luego Print Preview para ver como est el formulario. En vista previa.

Universidad Autnoma de Quito

Jess Cisneros Valle

Para la vista previa vamos a FILE y luego a Print Preview. Y Nos que algo como lo que esta abajo.

PONIENDO EL REPORTE EN UN MENU: Vamos a OTHER de Project manager y elegimos Menu.

Universidad Autnoma de Quito

Jess Cisneros Valle

En el Prompt, escribimos el nombre del men principal en este caso Reporte, en Result elegimos Subnen y luego damos create.

Vamos en el submen (Prompt) vamos a crear los Menus: Reporte por estudiante y Reporte por materia y ponemos a cada uno en Result como Procedure y luego damos create.

Universidad Autnoma de Quito

Jess Cisneros Valle

Para conectar el reporte con el men ponemos en el CREATE: REPORT FORM report1.frx preview Es decir vista previa.

En el Report2 hacemos igual y damos CRTL+W para grabar y cerrar.

Universidad Autnoma de Quito

Jess Cisneros Valle

Luego vamos a View y damos clic en General Option y en la ventana que se abre escogemos Top Level Form. Y damos Ok.

Luego vamos a MENU de la barra superior ponemos GENERATE y damos Yes (SI) a todo, recordemos que para cualquier cambio es necesario volver a generar el men.

IMPORTANTE: Con CRTL+W guardamos en men con un nombre. En este caso se llama menureporte. No olvidemos que con este nombre debemos activarlo con la extensin .MPR al momento de llamarlo en el formulario. Se nos graba en la carpeta elegida al principio como menureporte.mpr (Ref: Pag No. 167)

Luego vamos a DOCS, de Project manager, escogemos FORM y luego New, esto lo hacemos a fin de insertar dentro de un formulario el men que hemos creado. Universidad Autnoma de Quito Jess Cisneros Valle

No se debe olvidar grabar el formulario con un nombre y guardar.

Luego en Properties: ShowWindow lo ponemos en: Window State lo ponemos en: Caption ponemos un nombre : 2-As top level form 2-Maximed En este caso Menu de reportes

Universidad Autnoma de Quito

Jess Cisneros Valle

Luego para que se ejecute primero nuestro men ponemos, damos doble clic sobre el formulario Menu de reportes y ponemos: DO <nombre menu>.mpr WITH THIS, .T. Para grabar CRTL+W. En este caso DO menureporte.mpr with this, .t. (menu reporte es en nombre con que se grabo el menu que hicimo al inicio Rer: Pag No. 165)

Grabamos con CRTL+W Para verificar si corre nuestro menu y formulario, en proyect manager, elegimos el formulario de nuestro men y damos Run.

Universidad Autnoma de Quito

Jess Cisneros Valle

Si corre aparecer el men del cual elegimos el reporte que necesitemos observar. En este caso Reporte por estudiante.

Al seleccionarlo se debe desplegar el reporte elegido.

Universidad Autnoma de Quito

Jess Cisneros Valle

Ahora el reporte por Materia.

Se observa as:

Universidad Autnoma de Quito

Jess Cisneros Valle

INDICE Visual Fox 9.0 (Introduccin) 2 Comandos 3 Direccionamiento 4 Ejemplos Tablas 7 Manejo de tablas 7 *Programa Conculta (Scan For) 22 *Programa Consulta (Do While Not Efof()) 23 *Programa de Altas (Seek) 25 *Programa Altas (Scan For) 26 *Programa Modificar 27 FORMULARIOS 29 Uso de formularios 30 Propiedades de formularios 32 Insertar Iconos 46 Lost Focus y Set Focus 48 Programando botones de comando 49 Nuevo formulario 52 *Programa separacin de nombres 53 *Programa digito verificador de cedula 54 PROYECTOS 56 Tablas de proyectos 60 Diseo de tablas 62 Relacin de tablas 69 Proyectos-formulario Consulta 71 Relacionando formulario con la base de datos 79 *Programa Consulta 83 Proyectos-Formulario Altas 84 Relacionando formulario con la base de datos 86 *Programa Altas 90 Proyectos-Formulario Actualizacin 91 *Programa Actualizacin 93 Proyectos-Formulario Eliminacin 95 *Programa Eliminacin 96 MENUS 98 Diseo de Menus 98 Iconos en el men (Diseo) 108 Construir ejecutable de men 117 Generando el men 119 Formulario del men 120 Programando ejecutable del men (Do <nombremenu.mpr> with this, .t.) 124 REPORTES 126 Creacin y diseo de Reportes 127 Relacionando base de datos y los reportes 134 Label 137 Poniendo la fecha del sistema en el reporte 138 Creando variables personalizadas 139 Print Preview (Vista Previa) 144 Poniendo nmeros de pgina 145 Reportes usando tres tablas 149 Universidad Autnoma de Quito Jess Cisneros Valle

Relacionando las tablas Importantsimo Sumando en reportes Programando un label Reporte 2 Data grouping Poniendo el reporte en el men Importante Visualizando el men Ejercicios resueltos Indice

153 154 157 158 160 162 165 168 171 173

Jess Cisneros Valle

Universidad Autnoma de Quito

Jess Cisneros Valle