Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
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.
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:
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.
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:
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
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
En la lengeta Indexes, designamos la clave principal, en este caso cod_pas como regular
DBF TABLA CON ENTORNO FOX UN BYTE DE MARCA DE BOF O EOF Usamos BROWSE pais para ver la tabla
Escribimos CLOSE ALL en la caja de comando Con USE abrimos la tabla pais USE pais <enter>
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.
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
Otra manera de borrar lgicamente es usando DELETE, para lo cual ponemos el cursos en el registro a borrar lgicamente.
O tambin
DESACTIVA LA VISTA DE LOS REGISTROS BORRADOS EN FORMA LOGICA SET DELETED ON, ES DECIR LO BORRA PERO NO DEFINITIVAMENTE
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.
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
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
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********
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
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")
@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
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
***************************** 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
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)
Se abre enseguida una ventana llamada NEW En la cual aceptaremos en NEW FILE
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>
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.
El nombre que ponemos en el CAPTION sera por ejemplo Mi primer ejercicio y damos Enter.
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. !
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
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.
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.
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.
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.
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.
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
Luego en el NAME de la caja de propiedades cambiamos los nombres de las cajas de texto.
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).
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.
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.
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.
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.
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.
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.
En el botn limpiar, programamos que limpie todo y al hacer clic pase el foco a txt_num1.
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
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)
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:
*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:
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
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:
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.
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.
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.
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
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
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.
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.
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.
Damos CRTL+W y as guardamos y cerramos lo que hemos hecho con las tablas. Aparece la ventana Project Manager prjfifa
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.
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
Como command group nos da por defecto dos botones vamos a la caja properties y en Button count que esta con 2 ponemos 4.
Los ordenamos.
Para acceder a los botones de comando de command group debemos ir a properties y seleccionarlos uno a uno.
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.
Para cambiar el Caption y el Name de cada botn del Command group que ahora se llama bg_001 debemos usar la caja properties.
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.
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.
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.
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.
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.
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=""
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.
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.
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).
NOTA: Para ahorrar tiempo podemos copiar los objetos de los formularios.
de la barra de
Registro Grabado:
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()
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).
Seguimos.
ENDIF
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()
IMPORTANTE:
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:
Al poner SET DELETE ON el registro que fue eliminado en etapa de ejecucin desaparece lgicamente.
=MESSAGEBOX("Registro eliminado",0+32,"FIFA")
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()
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
Luego Menu y despus New. Aparece la ventana New Menu y elegimos Menu.
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
Al dar clic en el CREATE de Mantenimiento podemos ingresar los POPUP que necesitemos. Es decir creamos un sub men de Mantenimiento.
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.
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
Formulario Actualizar frmActualiza y frmEliminar. Usaremos igualmente los archivos con terminacin .CSX. Y luego CRTL+W para grabar. As uno a uno los formularios.
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#
Pero para poder usar Copiar ponemos el comando que reconoce la Copia (Copy) el cual lo reconoce Fox. Lo escribimos en Options: _med_copy
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.
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
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.
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.
Menu Otros: Del men principal elegimos otros. En Promt. Creamos los campos. En men Otros creamos nuevos POPUP (Estadsticas, Informes).
PROCEDURE, y un mensaje en
=MESSAGEBOX("MODULO EN COSNTRUCCION",0+48,"FIFA")
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
Luego Maximizado al formulario men para que ocupe toda la pantalla. (Windows State)
Para que cuando el programa se cargue llame primero a nuestro men, damos Doble clic en el formulario y:
LUEGO Vamos a cada formulario (Consulta, Altas, Actualizacin, Eliminar) y le ponemos 1- In Top Level Form
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.
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).
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.
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.
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:
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.
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.
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
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.
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.
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.
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|
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.
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.
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.
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.
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.
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.
PRINT PREVIEW Para visualizar como nos va quedando nuestro reporte, vamos al men principal elegimos FILE y luego Print Preview.
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.
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
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.
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.
Primero creamos un proyecto dentro de una carpeta creada en C en este caso la carpeta vfox7.
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.
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.
Los cdigos de la tabla notas son regulares, pues servirn de enlace entre las tablas alum y materia. Nos queda as:
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.
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.
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 .
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.
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.
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
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)
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
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.)
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.
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).
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.
Para la vista previa vamos a FILE y luego a Print Preview. Y Nos que algo como lo que esta abajo.
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.
Para conectar el reporte con el men ponemos en el CREATE: REPORT FORM report1.frx preview Es decir vista previa.
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
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
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.
Si corre aparecer el men del cual elegimos el reporte que necesitemos observar. En este caso Reporte por estudiante.
Se observa as:
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