Curso De Microsoft Visual Fox Pro For Windows

  • 24,624 views
Uploaded on

 

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
  • Gracias !!!
    Are you sure you want to
    Your message goes here
  • super bacannn
    Are you sure you want to
    Your message goes here
  • Eres de lo mejor, gracias
    Are you sure you want to
    Your message goes here
  • gracias
    Are you sure you want to
    Your message goes here
  • GRACIASSS!
    Are you sure you want to
    Your message goes here
No Downloads

Views

Total Views
24,624
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
1,128
Comments
9
Likes
9

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Curso de Microsoft Visual FoxPro For Windows Indice del Curso: Capitulo I Capitulo II Capitulo III Capitulo IV Capitulo V
  • 2. 2 o CAPITULO I 1.-Entorno de Visual Fox Pro 9.0 En Visual Fox pro se puede crear rápidamente formas, menú e informes con los patrones visuales y herramientas de diseño. Adopta la apariencia de los últimos productos Microsoft: barras de estado, botones con pista, menú contextual, etc. Visual Fox Pro 9.0 cada acción que tu realizas es un evento: El movimiento del mouse, hacer clic sobre un botón, escribir un texto en un cuadro de texto, Etc. Es decir que cuando programes ese evento solo eso sucederá. Es un lenguaje de programación que opera bajo la plataforma de Windows, es decir, el programa identificara las acciones que lleva a cabo el usuario durante su ejecución. Herramientas de Visual Fox Pro
  • 3. 3 Barra de Menú Por medio de esta barra podemos acceso todas las opciones de Visual Fox Pro, nos ofrece abrir o crear una base de dato, crear un reporte, etc. Barra de Herramientas. Por medio de esta barra de herramientas tenemos acceso a las opciones de Visual Fox Pro sin necesidad de ir a la barra de menú y tener un acceso rápido. La Venta de Comando
  • 4. 4 La ventana de comando nos sirve para escribir ciertos comandos que explicaremos después. La ventana de Controles. La ventana de controles permite al usuario seleccionar opciones, introducir datos y escoger acciones. En un formulario, estos objetos pueden incluir casillas de verificación, botones de comando y cuadro de texto. Botón Descripción Seleccionar objetos. Cambia el tamaño y mueve controles. Una vez creado un control, el botón "Seleccionar objetos" se volverá a seleccionar automáticamente, a menos que esté presionado el botón "Bloqueo del botón". Ver clases. Permite seleccionar y mostrar una biblioteca de clases registrada. Después de seleccionar una clase, la barra de herramientas sólo muestra botones para las clases de la biblioteca seleccionada.
  • 5. 5 Etiqueta. Crea un control Label, que se usa para texto que no quiere que el usuario cambie, como el título que aparece encima de las casillas de verificación o debajo de un gráfico. Cuadro de texto. Crea un control TextBox, que se usa para almacenar una única línea de texto que el usuario puede introducir o cambiar. Cuadro de edición. Crea un control EditBox, que se usa para almacenar varias líneas de texto que el usuario puede introducir o cambiar. Botón de comando. Crea un control CommandButton, que se usa para ejecutar un comando. Grupo de comandos. Crea un control CommandGroup, que se usa para agrupar comandos relacionados. Grupo de opciones. Crea un control OptionGroup, que se usa para mostrar múltiples opciones entre las que el usuario sólo puede seleccionar una. Casilla de verificación. Crea un control CheckBox, que ofrece al usuario la posibilidad de elegir entre una condición verdadera o falsa, o muestra varias opciones entre las que el usuario puede seleccionar más de una. Cuadro combinado. Crea un control ComboBox, que se usa para crear un cuadro combinado desplegable o una lista
  • 6. 6 desplegable de forma que el usuario pueda seleccionar un elemento de una lista o introducir manualmente un valor. Cuadro de lista. Crea un control ListBox, que se usa para mostrar una lista de elementos entre los que puede elegir el usuario. Es posible recorrer la lista si tiene más elementos de los que se pueden mostrar de una vez. Control numérico. Crea un control Spinner, que se usa para aceptar datos numéricos introducidos por el usuario que quedan dentro de un intervalo. Cuadrícula. Crea un control Grid, que se usa para mostrar datos en una cuadrícula tipo hoja de cálculo. Imagen. Muestra una imagen gráfica en su formulario. Cronómetro. Intercepta eventos Timer a intervalos establecidos. Este control es invisible en tiempo de ejecución. Marco de página. Muestra varias páginas de controles.
  • 7. 7 Control contenedor OLE. Le permite agregar objetos OLE a su aplicación. Control OLE dependiente. Al igual que los controles contenedores OLE, le permite agregar objetos OLE a su aplicación. Sin embargo, a diferencia de los controles contenedores OLE, los controles OLE dependientes están vinculados a un campo de tipo General. Línea. Se usa para dibujar diversos estilos de línea en su formulario en tiempo de diseño. Forma. Se usa para dibujar diversas formas en su formulario en tiempo de diseño. Puede dibujar un rectángulo, un rectángulo redondeado, un cuadrado, un cuadrado redondeado, un óvalo o un círculo. Separador. Agrega espacio entre los controles de la barra de herramientas. Bloqueo del generador. Abre un generador para el nuevo control que agrega al formulario. Bloqueo del botón. Le permite agregar varios controles del mismo tipo sin tener que hacer clic en el botón del control en la barra de herramientas más de una vez.
  • 8. 8 Propiedades Son los atributos que se aplican sobre los controles. Ejemplo: Color, tipo de letra, nombre, texto, etc. ALGUNAS PROPIEDADES COMUNES: Name (Nombre): Especifica el nombre que se le asigne al control, u solo a través de él se puede acceder a las propiedades y métodos de los controles. Back Color (Color de Fondo): Asigna el color de fondo sobre el que aparece el texto o se dibujan los gráficos. Fore Color (Color de Primer Plano): Asigna un color al primer plano (color de la tinta o del texto).
  • 9. 9 Font (Fuente o Tipo de Letra): Asigna el tipo de letra, los atributos y el tamaño de la fuente que se usa para un control de texto (el texto en un control TextBox, el título de una etiqueta o de un botón de comando, etc.). Caption (Título): Asigna el texto que aparece en muchos controles y que el usuario no puede introducir, por ejemplo el texto de un control Label, el título de un botón de comando, o de una cadena de caracteres que se muestran en un cuadro de activación o en un botón de opción. Text (Texto): Asigna el texto que se muestra en los controles y acepta que lo introduzca el usuario, por ejemplo, el control TextBox. Width (Ancho) y Height (Alto): Estas propiedades determinan las dimensiones de los controles. Left (Izquierda) Top (Arriba): Estas propiedades asignan las coordenadas de la esquina superior izquierda del control y se expresan en las unidades del contenedor (normalmente de un formulario). Enabled (Activado): Su valor es True por omisión, y significa que el control se puede usar. Si se pone False se desactiva el control, aparece en gris y no se puede usar. Visible: Esta propiedad se pone como False para que el control sea invisible. Pasos para cambiar valores a propiedades en tiempo de diseño: 1.- Presionar clic sobre el botón deseado. 2.-Abrir la ventana de propiedades. 3.-Buscar la propiedad de manera alfabética o otras categoría. Evento
  • 10. 10 Es una acción que el usuario efectúa sobre un objeto o control y este a su vez realizara una tarea determinada, el programador deberá analizar los evento que se pueden llevar a cabo sobre un control determinado. Un evento genera una tarea si no existe una tarea, por aquel evento, no pasara nada. Ejemplo Clic DbllicK Keypress Activate Mousemove Entre otros Controles de Formulario Cuadro de texto.- También denominado control de campo de edición, muestra la información introducida en tiempo de diseño por el usuario o asignada al control en código en tiempo de ejecución. Propiedades Alignment.- Devuelve o establece la alineación de un control checkbox u optionbutton, o el texto de control. BorderStyle.- devuelve o establece el estilo del borde del objeto.
  • 11. 11 Name.-Devuelve el nombre usado en el código para identificar un objeto. PasswordChar.- Devuelve o establece un valor que determina si se muestra en un control los caracteres escritos por un usuario o los caracteres marcadores. Text.- Devuelve o estable el texto contenido en el control. Las propiedades más comunes Backcolor.- Devuelve o establece el color de fondo usado para mostrar texto gráficos en un objeto. FontName.- Devuelve un objeto de Font. Forecolor.- Devuelve o establece el color de primer plano usado para mostrar texto y gráficos en un objeto. Eventos MouseMove.- Al mover el ratón por encima del control. MouseDown.- Al pulsar cualquier botón del ratón. Change.- Al cambiar el contenido del control. Click.- Al hacer click con el botón izquierdo del ratón sobre el control. DblClick.- Al hacer doble click con el botón izquierdo. GotFocus.- Este evento se activa cuando el control recibe el enfoque, es decir, cuando se activa el control en tiempo de ejecución para introducir datos en el o realizar alguna operación. LostFocus.- Este control es lo contrario del evento anterior, se activa cuando el control pierde el enfoque, es decir, se pasa a otro control para seguir introduciendo datos. ETIQUETA
  • 12. 12 Es un control de graficos utilizado para mostrar texto que el usuario no podrá cambiar directamente. Propiedades Alignment.- Devuelve o establece la alineación de un control checkbox u optionbutton, o el texto de control. BorderStyle.- devuelve o establece el estilo del borde del objeto. Caption.- Devuelve o estable el texto mostrado en la barra de titulo de un objeto o bajo el icono de un objeto. Recuerda: Para este control no se suele utilizar eventos ya que su contenido cambia poco a lo largo de la ejecución de la aplicación. Botón de Comando Denomina botón de comando, permite comenzar, interrumpir o terminar un proceso cuando esta activado. CASILLA DE VERIFICACION. Muestra un visto cuando esta activado y desaparece cuando el control Checkbox se desactiva. Utilice este control para ofrecer al usuario una opción de tipo Verdadero o Falso o Si o No. También lo puede utilizar en grupos para mostrar múltiples opciones.
  • 13. 13 Boton de opciones. Muestra una opción que se puede activar o desactivar, generalmente viene en grupos. Propiedades de los controles. STR() convierte de número a carácter y VAL() convierte de carácter a numérico. THISFORM (Referencia de objeto) Proporciona una referencia al formulario actual en el código de evento o en la definición de clase del formulario. Aplicación Nº 1 Codifique un programa que ingrese dos valores, y sacarle el IVA y el resultado total.
  • 14. 14 Procedimiento Calcular Procedimiento limpiar
  • 15. 15 Procedimiento Salir CAPITULO II ESTRUCTURA DE CONTROL Ejecuta condicionalmente un grupo de instrucciones, dependiendo el valor de una expresión Se clasifican:
  • 16. 16 SENTENCIAS DE CONTROL DE FLUJO: If…Then…EndIf: La estructura If comprueba una condición especifica y, si es verdadera, ejecuta las sentencias que le siguen. La estructura If puede tener o una sola línea, o varias líneas. Para ejecutar una sentencia condicional se usa la sintaxis de una sola línea: If condición Then sentencia Se evalúa la condición y, si es verdadera, ejecuta la sentencia que viene a continuación. Si la condición no es verdadera, continua con la sentencia siguiente de la estructura. La sintaxis de varias líneas: If condición Then sentencias EndIf If…Then…Else…EndIf: Una variación de la sentencia If …Then es la sentencia If… Then…Else … EndIf, que ejecuta un bloque de sentencias si la condición es verdadera, y otro bloque si es falsa. La sintaxis de la sentencia If … Then … Else EndIf es: If condición Then Bloque de sentencias 1
  • 17. 17 Else Bloque se sentencias 2 EndIf Visual FoxPro evalúa la condición y, si es verdadera, ejecuta el primer bloque de sentencias y luego salta a las sentencias que hay después de EndIf. Si la condición es falsa, Visual FoxPro ignora el primer bloque de sentencias y ejecuta las que hay a continuación de la palabra clave Else. Otra variación de la sentencia If … Then … Else usa varias condiciones con la palabra clave ElseIf: If condición 1 Then Bloque de sentencias 1 Else If condición 2 Then Bloque se sentencias 2 Else If condición 3 Then Bloque se sentencias 3 Else Bloque se sentencias 4 End If Podemos poner cualquier número de cláusulas desde arriba y, si una de ellas es verdadera, se ejecuta el bloque de sentencias correspondiente. La cláusula Else se ejecutará si ninguna de las expresiones anteriores es verdadera. Ejemplo: If puntuación < 50 Then
  • 18. 18 Resultado = “No admitido” Else If puntuación < 75 Then Resultado = “Pasable” Else If puntuación > 90 Then Resultado = “Muy bueno” Else Resultado = “Excelente” EndIf ESTRUCTURAS IF … THEN MÚLTIPLES: Observamos que una vez que se ha encontrado una condición verdadera, Visual FoxPro ejecuta las sentencias asociadas, salta el resto de las cláusulas y continua con la ejecución del programa con las sentencias que hay después de EndIf. Por esta razón podemos usar la siguiente estructura, más complicada, de varias sentencias If simples: If puntuación < 50 Then Resultado= “No admitido” EndIf If puntuación < 75 And puntuación >= 50 Then Resultado= “Pasable” EndIf If puntuación < 90 And puntuación >= 75 Then Resultado= “Muy bueno” EndIf
  • 19. 19 If puntuación > 90 Then Resultado= “Excelente” EndIf DO CASE: La estructura Do Case compara la misma expresión con diferentes valores. La ventaja de esta sentencia sobre If … Then múltiples hace que el código sea más fácil de leer y mantener. La estructura Do Case comprueba una sola expresión, que se evalúa una sola vez al principio de la estructura. El resultado de esta comprobación se compara con varios valores y, si coincide con uno de ellos, se ejecuta el bloque de sentencias correspondiente. Sintaxis: Do Case Case <Condición 1> Bloque de sentencias 1 Case <Condición 2> Bloque de sentencias 2 . . . EndCase Ejemplo: Opc=this.value
  • 20. 20 Do Case Case opc=1 NombreDía= “Lunes” Mensaje= “Feliz semana” Case opc=6 NombreDía= “Sábado” Mensaje= “Feliz fin de semana” Case opc=7 NombreDía= “Domingo” Mensaje= “ ¿Has tenido un buen fin de semana” EndCase La variable opc que se evalúa al principio de la sentencia, es el número de día de la semana. Después se compara el valor de la expresión con los valores que tiene cada palabra clave Case. Si coincide, se ejecuta el bloque de sentencias que viene a continuación, y después salta el programa a la sentencia siguiente al EndCase. SENTENCIAS DE CONTROL DE BUCLE: DO WHILE… ENDDO: Ejecuta un bloque de sentencias mientras la condición sea verdadera. Visual FoxPro evalúa la expresión y, si la expresión es
  • 21. 21 falsa, el programa continúa con las sentencias que van después del bucle. Para ejecutar un bloque sentencias mientras la condición sea verdadera, se usa la siguiente sintaxis: Do While condición Bloque de sentencias Enddo El bucle Do se repite todas las veces que sea necesario siempre que la condición sea verdadera (o distinta de cero si la condición evalúa un número). FOR … ENDFOR/NEXT: El bucle For … Next es una de las estructuras de bucle más antiguas dentro de los lenguajes de programación. A diferencia del bucle Do, el bucle For … Next requiere que se conozca el número de veces que se van a ejecutar las sentencias del bucle. Este bucle es una variable (llamada el contador del bucle) que incrementa o disminuye su valor durante cada repetición del bucle. Su sintaxis es: For contador = principio To final [Step incremento] Sentencias Next/EndFor [contador] (las palabras entre corchetes son opcionales). Los argumentos contador, principio, final e incremento son todos numéricos. El bucle se ejecuta hasta que el contador llegue (o exceda) el valor final.
  • 22. 22 Cuando ejecuta un bucle For … Next, Visual FoxPro hace lo siguiente: 1. Pone contador con el valor de principio. 2. Comprueba si contador es mayor que final. Si lo es, sale del bucle. Si incremento es negativo, Visual FoxPro comprueba si contador es menor que final, en cuyo caso sale de bucle. 3. Ejecuta el bloque de sentencias. 4. Incrementa contador con el valor de incremento. Si no se ha especificado incremento, el contador se incrementa en 1. 5. Repite las sentencias. La parte más importante a tener en cuenta cuando se trabaja con bucle For Next/EndFor es que el contador del bucle se establece al principio del bucle. Si cambiamos el valor de la variable final mediante una sentencia dentro del bucle, no se detecta el cambio y se ejecuta como si no se hubiera producido. WITH ... ENDWITH: Especifica múltiples propiedades para un objeto. Sintaxis WITH NombreObjeto [Instrucciones] ENDWITH NombreObjeto: Especifica el nombre del objeto. NombreObjeto puede ser el nombre del objeto o una referencia a éste. Ejemplo With Thisform
  • 23. 23 Instrucciones: Instrucciones puede constar de cualquier número de comandos de Visual FoxPro empleados para especificar propiedades para NombreObjeto. Sitúe un punto delante de Instrucción para indicar que es una propiedad de NombreObjeto. Propiedad o palabra clave Referencia ActiveControl El control del formulario activo actualmente que tiene el enfoque ActiveForm El formulario activo actualmente ActivePage La página activa del formulario activo actualmente Parent El contenedor más inmediato del objeto THIS El objeto, o un procedimiento o evento del objeto THISFORM El formulario que contiene el objeto THISFORMSET El conjunto de formularios que contiene el objeto THISFORM: Proporciona una referencia a un Form antes de crearlo. Sintaxis: THISFORM.NombrePropiedad | NombreObjeto Argumentos: NombrePropiedad: Especifica una propiedad para el Form. NombreObjeto: Especifica un objeto del Form.
  • 24. 24 Comentarios: THISFORM proporciona, dentro de un método, una referencia al Form en el que está situado un objeto o a la propiedad de un Form. THISFORM permite hacer referencia a un objeto o una propiedad del formulario sin utilizar múltiples propiedades Parent. THIS: Proporciona una referencia a un objeto antes de crearlo. Sintaxis: THIS.NombrePropiedad | NombreObjeto Argumentos: NombrePropiedad: Especifica una propiedad para la clase. NombreObjeto: Especifica un objeto de la clase. Comentarios: THIS permite hacer referencia a una propiedad o un objeto de una definición de clase. Los métodos de un bloque de definición de clase pueden utilizar THIS para especificar una propiedad o un objeto que existirá cuando se cree la clase. Puesto que múltiples instancias de objetos comparten el mismo código de método, THIS siempre hace referencia a la instancia en la que está ejecutándose el código. Si hay múltiples instancias de un objeto, y se llama a uno de los métodos del objeto, THIS hace referencia al objeto correcto. THISFORMSET: Proporciona una referencia a un FormSet antes de crearlo. Sintaxis:
  • 25. 25 THISFORMSET.NombrePropiedad | NombreObjeto Argumentos: NombrePropiedad: Especifica una propiedad para el FormSet. NombreObjeto: Especifica un objeto del FormSet. Comentarios: THISFORMSET proporciona, dentro de un método, una referencia al FormSet en el que está situado un objeto o a la propiedad de un FormSet. THISFORMSET permite hacer referencia a un objeto o una propiedad del FormSet sin utilizar múltiples propiedades Parent. RELEASE: Permite que los usuarios cierren el formulario activo haciendo doble clic en el cuadro de control o eligiendo Cerrar en el menú Control del formulario. También puede permitir que un usuario cierre y libere un formulario incluyendo el comando siguiente en el código de evento Click de un control, como un botón de comando con el título "Salir": RELEASE THISFORM CREATE: Nos permite crear formularios, tablas, base de datos, menús, informes, etc. Ejemplo: Create Form “C:Mis documentosRenéejemplo1.scx”. DO FORM: Ejecuta un Form o FormSet compilado que se ha creado con el Generador de formularios. MODIFY FORM: Abre el Generador de formularios para que pueda modificar o crear uno.
  • 26. 26 USE: Abre o cierra una Tabla. Ejemplo: Use Articulo.Dbf↵ (Abre la tabla Articulo.dbf). Use↵ Cierra una tabla en uso. GO TOP: Ubica el puntero de registro en el primer registro. GO BOTTOM: Ubica el puntero de registro en el último registro. SKIP: Avanza o retrocede el puntero de registro. Skip +1↵ (Avanza). Skip –1 (Retrocede). APPEND: Adiciona o añade más registro a una tabla abierta. LIST: Realiza un listado de todos los registros de una tabla abierta. BROWSE: Abre la ventana examinar para modificar el contenido de todos los registro de una tabla abierta. REPORT FORM: Muestra o imprime un informe bajo el control de un archivo de definición de informe creado con MODIFY REPORT o CREATE REPORT. Mensaje del Sistema. MenssageBox().- despliega un mensaje en un cuadro de dialogo y espera que el usuario selecciona un botón. Sintaxis: Variable= MessageBox (mensaje,tipo,titulo) Mensaje: es una expresión de cadena que se despliega como el mensaje en un cuadro de dialogo.
  • 27. 27 Tipo: Expresión numérica que es la suma de valores que especifican la cantidad y el tipo de botones para desplegar. DO WHILE – ENDDO Repite un bloque de instrucciones cuando una condición es true o hasta que una condición se convierta en true Sintaxis Do while condición Sentencia Loop Enddo Aplicación Nº 2 Este ejercicio consiste en elaborar un formulario que simule el funcionamiento de un reloj despertador digital. La aplicación debe permitir al usuario ingresar la hora a la que desea ser avisado. El diseño de la interfaz debe ser similar a la figura siguiente:
  • 28. 28 Para el desarrollo de esta aplicación proceder a ubicar los siguientes controles en el formulario: 2 etiquetas 2 cajas de texto 1 cronómetro 2 botones de comandos En seguida establezca las propiedades según se indica a continuación: Form1 Name FrmReloj Caption Reloj despertador digital MaxButton .F.-Falso MinButton .F.-Falso Label1 Name LblHora Caption Hora Label2 Name LblDespertador Caption Despertador Text1
  • 29. 29 Name TxtHora FontBold .T.-Verdadero FontSize 24 Text2 Name TxtDespertador FontBold .T.-Verdadero FontSize 24 Timer1 Name Timer1 Enabled .T.-Verdadero Interval 500 Command1 Name CmdOnOff Caption <Desactivar Default .T.-Verdadero Command2 Name CmdTerminar Cancel .T.-Verdadero Caption <Terminar Una vez establecidas las propiedades, proceda a ingresar el código que se muestra: Objeto: FrmReloj Procedimiento: Load Public lOnOff Objeto: FrmReloj Procedimiento: Init lOnOff = .F. Thisform.TxtDespertador.Value = "00:00:00"
  • 30. 30 Thisform.Refresh Objeto: Timer1 Procedimiento: Timer If Thisform.TxtHora.Value != Time() Then Thisform.TxtHora.Value = Time() EndIf If (Thisform.TxtDespertador.Value < Time()) And lOnOff Then * Sonido acústico ?Chr(7) EndIf Thisform.Refresh Objeto: CmdOnOff Procedimiento: Click If lOnOff Then lOnOff = .F. Thisform.CmdOnOff.Caption = "<Activar" Else lOnOff = .T. Thisform.CmdOnOff.Caption = "<Desactivar" EndIf Thisform.Refresh Objeto: CmdTerminar Procedimiento: Click Release Thisform
  • 31. 31 CAPITULO III QUE ES UNA BASE DE DATOS Una Base de Datos es un conjunto de datos organizado de forma tal, que se presenta al usuario como si fuera una o un conjunto de matrices bidimensionales (tablas). Cada fila de una matriz es un registro, el cual contiene información sobre una unidad de la base de datos y le asigna un número para poder manejarlo. Cada columna contiene los diversos campos de ese registro. Por ejemplo : en una tabla de publicaciones, cada fila contendrá información sobre una publicación determinado, y la fila estará dividida en campos (columnas), como el código de publicación, nombre de la publicación, fecha, tiraje, responsable, etc... Para abrir una base de datos haz click en archivo, nuevo selecciona base de datos (Database), y aparecerá la ventana de Generador de base de datos. En este tu construirás las tablas visualmente, creas etiquetas de índice, establece relaciones entre tablas y proporciona otros componentes que ayudan en el proceso de diseño de una aplicación. En el Generador de bases de datos
  • 32. 32 haz clic en cualquier lugar de la ventana, se desplegará un menú contextual que contiene las opciones siguientes: -Expandir (Expand) - Contraer todos (Collapse all) - Nueva tabla (New table) - Nueva vista remota (* New remote view ) - Nueva vista local (*New local view) - Agregar tabla (Add table) - Procedimientos almacenados (Stored procedures) - Integridad referencial (integrity referential) - Ayuda Tablas Tipos de datos Visual Fox Pro puede manejar diversos tipos de campos (tal como muestra la figura) . Entre los más importantes están: Carácter : Campo de caracteres : Almacena cadenas o conjuntos de caracteres. Un campo de caracteres permite almacenar tanto letras, como números o caracteres especiales. Monetario: Campo de Valores Monetarios: Almacena cantidades en valor monetario, Ejemplo: $55, S/.675,438.
  • 33. 33 Numérico: Campo numéricos : Almacenan cantidades y se puede hacer cálculos con ellos. Estos campos sólo admiten número y el punto decimal (la coma decimal si tiene formato español). Máxima extensión, 20 caracteres. Flotante : Campo de números reales : Almacenan números en el rango del conjunto de números reales. Fecha : Campo fecha : Permite almacenar fechas. La información la guarda en la forma AAAAMMDD, con 8 caracteres. El formato por defecto para introducir fechas en Visual Fox Pro es MM/DD/AA (Mes/Día/Año). Lógico : Campo lógico : Almacenan un tipo especial de información, sólo permiten almacenar verdadero o falso y acepta sólo los caracteres : T (verdadero) o F (falso). Memo : Campo Memo : Permite almacenar textos largos, como una descripción o un breve resumen. Estructura de un .BDF Los datos en FoxPro se almacenan en forma de tablas, estas tablas son las bases de datos pues la extensión de estas bases de datos es .DBF aunque también hay otras que se verá más adelante. Los DBF comienzan con una breve descripción de los datos que están en la tabla. RELACIONES ENTRE TABLAS: Las relaciones mas comunes entre tablas se definen: De uno a uno: Ejemplo de una llave primaria a otra llave primaria De uno a muchos: Ejemplo de una llave primaria a una Regular o Foránea.
  • 34. 34 Las relaciones entre tablas se crean arrastrando la llave de la tabla a la llave de otra tabla. Aplicación Nº 3 En este ejercicio vamos a crear un formulario para calcular la edad de una persona a partir de su fecha de nacimiento. Para el desarrollo de esta aplicación, proceda a ubicar los siguientes controles en el formulario: 2 etiquetas 2 cajas de texto 3 botones de comando Luego, proceda a establecer las propiedades según se indica a continuación: Form1 Name FrmEdad Caption MaxButton .F.-Falso MinButton .F.-Falso
  • 35. 35 Label1 Name LblFecNac Caption Fecha de nacimiento: Label2 Name LblEdad Caption Su edad es: Text1 Name TxtFecNac Enabled .T.-Verdadero Text2 Name TxtEdad Enabled .F.-Falso Command1 Name CmdAceptar Caption <Aceptar Command2 Name CmdLimpiar Caption <Limpiar Command3 Name CmdSalir Caption <Salir Luego de establecidas las propiedades de los controles, proceda a ingresar el siguiente código: Objeto: FrmEdad Procedimiento: Load Set Date French
  • 36. 36 Set Century On Objeto: FrmEdad Procedimiento: Init cNomDia = Cdow(Date()) cDia = Str(Day(Date()), 2) cMes = Cmonth(Date()) cAnno = Str(Year(Date()), 4) cFecha = cNomDia + " " + cDia + " de " + cMes + " del " + cAnno Thisform.Caption = cFecha Thisform.TxtFecNac.Setfocus Thisform.Refresh Objeto: CmdAceptar Procedimiento: Click dFecNac = Ctod(Thisform.TxtFecNac.Value) nEdad = Int ((Date() - dFecNac) / 365) Thisform.TxtEdad.Value = Str(nEdad) + " años" Thisform.Refresh Objeto: CmdLimpiar Procedimiento: Click Thisform.TxtFecNac.Value = "" Thisform.TxtEdad.Value = "" Thisform.TxtFecNac.Setfocus Thisform.Refresh Objeto: CmdSalir Procedimiento: Click Release Thisform Aplicación Nº 3.1
  • 37. 37 Este ejercicio consiste en elaborar una aplicación que acepte fechas como tres números (dd, mm, aaaa) y las visualice del modo usual. A manera de ejemplo considere lo siguiente: Cuando el usuario haga click en el botón Salir o en el botón Cerrar de la barra de título del formulario, se debe confirmar si desea terminar la aplicación, tal como se observa en la figura siguiente: En caso de que el usuario elija la opción Si, la aplicación debe terminar. Caso contrario, es decir si el usuario elige la opción No, se debe proseguir con la aplicación. Para el desarrollo de esta aplicación, proceda a ubicar los siguientes controles en el formulario: 4 etiquetas 3 controles numéricos 1 caja de texto 3 botones de comando En seguida proceda a establecer las propiedades según se indica: Form1
  • 38. 38 Name FrmFecha Caption Fecha en letras MaxButton .F.-Falso MinButton .F.-Falso Label1 Name LblDia AutoSize .T.-Verdadero Caption Día: Label2 Name LblMes AutoSize .T.-Verdadero Caption Mes: Label3 Name LblAnno AutoSize .T.-Verdadero Caption Año: Label4 Name LblEnLetras AutoSize .T.-Verdadero Caption En letras: Spinner1 Name SpnDia SpinnerHighValue 31 SpinnerLowValue 1 Spinner2 Name SpnMes
  • 39. 39 SpinnerHighValue 12 SpinnerLowValue 1 Spinner3 Name SpnAnno SpinnerHighValue 9999 SpinnerLowValue 0 Text1 Name TxtEnLetras Alignment 2-Centro Command1 Name CmdAceptar Caption <Aceptar Default .T.-Verdadero Command2 Name CmdLimpiar Caption <Limpiar Command3 Name CmdSalir Cancel .T.-Verdadero Caption <Salir Una vez establecidas las propiedades proceda a ingresar el código que se indica a continuación: Objeto: FrmFecha Procedimiento: Load Set Date French Set Century On
  • 40. 40 Objeto: FrmFecha Procedimiento: QueryUnload #DEFINE vfpYesNo 4 #DEFINE vfpYes 6 #DEFINE vfpQuestion 32 If MessageBox("¿Desea terminar la aplicación?", ; vfpQuestion + vfpYesNo, "Pregunta") = vfpYes Then Release Thisform Else NoDefault EndIf Objeto: CmdAceptar Procedimiento: Click cBarra = "/" cFecha = Thisform.SpnDia.Text + cBarra + Thisform.SpnMes.Text ; + cBarra + Thisform.SpnAnno.Text dFecha = Ctod(cFecha) cNomDia = Cdow(dFecha) cDia = Str(Day(dFecha), 2) cMes = Cmonth(dFecha) cAnno = Str(Year(dFecha), 4) cFecha = cNomDia + " " + cDia + " de " + cMes + " de " + cAnno Thisform.TxtEnLetras.Value = cFecha Thisform.Refresh Objeto: CmdLimpiar Procedimiento: Click Thisform.SpnDia.Value = 0 Thisform.SpnMes.Value = 0
  • 41. 41 Thisform.SpnAnno.Value = 0 Thisform.TxtEnLetras.Value = "" Thisform.SpnDia.Setfocus Thisform.Refresh Objeto: CmdSalir Procedimiento: Click Thisform.QueryUnload
  • 42. 42 CAPITULO IV Tipos de Menús: Existen dos tipos de menús : menú y Shortcut.
  • 43. 43 Creación de Menús: La creación de menús es un proceso que conlleva diferentes pasos. Primero, debemos definir las opciones del menú y de los submenús. Luego, asignar funcionalidad a las opciones de menú. Finalmente, generar el programa de menús. Puede usar el generador de menús de Visual Foxpro para que le ayude a construir menús rápidamente. El Generador de menús le permite definir la estructura y funcionalidad de su sistema de menús a través de cuadros de diálogo de fácil uso y de listas desplegables que puede utilizar para crear y modificar su sitema de menús. Definición de las opciones de menú. Los menús presentan su aspecto con una lista de opciones para iniciar una actividad. La mayoría de los elementos de menú muestran submenús u opciones adicionales cuando el usuario selecciona uno de estos elementos. Antes de generar un menú para una aplicación, tendrá que determinar que selecciones tendrá disponibles el usuario final y qué opciones de menús pertenecen a otras opciones de menús (sub menus). Cómo crear un nuevo menú 1. Pulse la ficha de otros en el Administrador de proyectos. 2. Seleccione menús en la lista de categorías 3. Pulse el botón nuevo y escoja si es Menu o un Shortcut 4. Introduzca las opciones del menu y luego el resultado del menú ( submenu, comando o procedimiento) 5. A la derecha del resultado se encuentra la opción crear o modificar según el caso. ( crea o modificar los resultados de la opción del menu).
  • 44. 44 Tipos de Resultados : Submenu : Si el menú contiene un submenu Comando : Si la opción de ese menú invoca un comando (Ejemplo: DO FORM Regiones, para llamar un formulario; CLEAR EVENT, por lo general va en la opción Salir) Procedimiento : Si la opción de ese menú invoca varias líneas de comandos ( un procedimiento). Opciones de Menú: En las opciones del menú se especifican: - Teclas de Acceso directo - Mensajes del menú - Condición de habilita/No habilitar Generación del menú : 1. En el menú escoja la opción Menú. 2. Se le pregunta si desea grabar los cambios ( responda que si) 3. Luego se le pide que proporcione el archivo de salida del menu ( escoja la ruta y el nombre del archivo, por lo general son extension MPR) y luego seleccione generar. 4. Si existe ya el archivo se le pide si desea re-escribirlo ( seleccione que si)
  • 45. 45 Como invocar al menú creado: Al generar el menú se crea un archivo que por lo general tiene extensión MPR que contiene el código para desplegar el menú. La instrucción sería: DO ruta y nombre del archivo MPR Ejemplo : DO menu.MPR · Para volver a re establecer el menú por default de Visual Foxpro utilice la instrucción: SET SYSMENU TO DEFAULT Creación del Ejecutable de la Aplicación. Primero se tiene que crear un programa de inicio, al cual se le tiene que decir que ese es el programa que se ejecutara de primero ( esto se hace haciendo clic derecho en el programa que designemos como principal y escoger la opción main ( principal) del menú de opciones) Contenido Ejemplo del programa principal: CLEAR ALL * Variables Publicas PUBLIC w_Output, g_año, gid_area, g_nivel, g_cambio, g_login_entry ;
  • 46. 46 ,g_pass_entry, V_MENU_PRE, V_ERROR, g_acceso * Definicion de Ventana para los Reportes DEFINE WINDOW w_Output ; FROM 0,0 TO 25,70 ; TITLE 'Informes - BCN' ; CLOSE FLOAT GROW ZOOM SYSTEM * Ambiente SET SYSMENU TO SET ECHO OFF SET TALK OFF SET CENTURY ON SET CLOCK STATUS SET DATE brit SET DELETE ON SET PATH TO formenu,bmp,prg,data SET EXCLUSIVE OFF SET SAFETY OFF SET REFRESH TO 5 SET REPROCESS TO AUTOMATIC SET MULTILOCK ON SET LOCK OFF SET PROCEDURE TO .prgutility * Fondo de la Pantalla principal _SCREEN.Picture=".bmpfondo.bmp" _SCREEN.WINDOWSTATE=2 _SCREEN.CLOSABLE=.F.
  • 47. 47 _SCREEN.CAPTION="Formulación Presupuestaria" * Base de Datos OPEN DATA .SCOTTscott SHARED * Llamada al Menu DO .menumenu.mpr READ EVENT CLEAR ALL SET SYSMENU TO DEFAULT
  • 48. 48 CAPITULO V Para ejecutable Crear nuevo proyecto 1.- menú archivo 2. nuevo 3.- Seleccionar proyecto como indica la imagen 4.- clic en nuevo archivo 5.- guardar proyecto en la dirección deseada y el nombre deseado 6.- clic en documentos y luego agregar
  • 49. 49 7.- buscar los formularios que desee agregar al proyecto 8.- clic en código y luego nuevo 9.- escriba o pegue el siguiente código clear all set exclusive off set sysmenu to set echo off set talk off Set Status Bar Off _screen.windowstate=2 clear * en la line siguiente va la ruta y el nombre del formulario principal do form c:israelnombre_formulario.scx read event clear all 10.- clic en el signo + (MAS) si no se ve el nombre del programa en el proyecto
  • 50. 50 11.- clic derecho en el nombre del programa y estableces principal 12.- clic en general y generar ejecutable 13.- acepta y guardar en la ruta correspondiente NOTA: Copie los archivos .dll en el lugar donde se encuentre el ejecutable Y LISTO Aplicación Nº 4 Base de datos Pizzería Realizar las siguientes tablas para la base de datos Pizzería
  • 51. 51 Para llevar a cabo la Practica Realiza los Siguientes pasos: 1. Crea un nuevo Proyecto con el nombre Pizza 2. en el administrador de proyectos en la Ficha Datos, Selecciona la opción Databases, y después la opcion Nuevo, para crear la base de datos con el nombre Pizzería. 3. En el diseñador de Base de datos da un clic en la opción Nueva tabla. y haz lo sig; 4. Guarda esta tabla con el nombre de Pizza 5. Ahora deberas crear otra tabla nueva con los siguientes campos.
  • 52. 52 6. Guarda esta tabla con el nombre de tamaños. 7. Ahora deberas crear una tercera tabla con los datos siguientes: 8. Guarda esta tabla con el nombre de Venta. 9. por ultimo deberás crear otra tabla como sigue:
  • 53. 53 10. Esta tabla la guardas con el nombre factura 11. Crea las relaciones entre las tablas de tal form que te queden de la siguiente manera: 12. Ahora debemos introducir los datos a las tablas, comenzaremos por la tabla Pizza y la llenaremos como sigue:
  • 54. 54 Clave_Pizza Nombre an Anchoas pe Peperoni ha Hawaiana sa salami 13. seguimos con la tabla Tamaño Clave_tamaño Tamaño ch Chica me Mediana gr Grande 14. Y Continuamos con la tabla Venta Clave_Pizza Clave_Tamaño Precio an ch $ 20.00 an me $ 25.00 an gr $ 30.00 pe ch $ 60.00 pe me $ 65.00 pe gr $ 80.00 ha ch $ 55.00 ha me $ 60.00 ha gr $ 68.00 sa ch $ 63.00 sa me $ 87.00 sa gr $ 98.00 15. ahora crearemos una tabla a partir de una consulta, en la ventana explorador de proyectos en la pestaña datos selecciona consulta y después nuevo 16. Visual Fox te preguntara que tablas quieres agregar para la realización de tu consulta, para eso tu debes agregar las siguientes tablas: Tamaña, Venta y Pizza. 17. una vez con las tablas agregadas, en la ventana diseñador de consultas en la ficha campos, debemos escoger cuales son los campos que nosotros queremos que nos muestre la consulta, pues bien vamos a seleccionar los siguientes: Pizza.nombre, tamaño.tamaño, Venta.Precio, por ultimo agregaremos una expresión como campo para esto en la misma ventana busca la opción funciones y expresiones y aparecerá la ventana siguiente:
  • 55. 55 18. Cuando esta ventana aparezca lo primero que debemos de hacer es seleccionr de la parte funciones Cadena, la opción “texto”, Luego en la parte de abajo donde dice Desde tabla Selecciona la tabla Pizza, en el cuadro campos apareceran los campos de la tabla pizza de ese cuadro da doble clic al campo clave_pizza, una vez esto hecho en el cuadro expresión deberá de aparecer el siguiente texto: “Pizza.cleve.pizza”, una ves con esto ve otra vez a la lista Cadena y ahora selecciona el símbolo +, el símbolo aparecera dentro de las comillas, salte de las comillas y pon un guion(-), la expresión deberá quedar: “Pizza.cleve.pizza+”-, ahora con lo que ya vimos has que la expresión final quede de la siguiente forma, recuerda que para sacar los campo de Tamaño primero debes seleccionar la tabla tamaño de Desde tabla.
  • 56. 56 19. Una vez que tengas la Expresión da un clic al botón aceptar y después un clic en Agregar. Te debera quedar como en la pantalla siguiente: 20. Ahora da un clic al boton Destino de consulta y Selecciona tabla 21. en el recuadro donde dice Nombre de la tabla le ponemos un nombre que en este caso será consulta1.dbf. y un clic al botón Aceptar. 22. Después de eso Cierro la ventana de Diseñador de consultas, y ebn el explorador de proyectos selecciono la consulta que acabo de crear y la ejecuto. 23. después de este paso en el explorador de proyectos selecciono tablas en la ficha datos y doy un clic a Agregar, busco la tabla consulta1, que es la que se genero con la consulta y la agrego a mi base de datos.
  • 57. 57 24. Una vez ya agregada la relaciono con la tabla Factura, de tal manera que me quede de la siguiente manera: 25. Ahora si todo esta listo para que tu generes tus Formularios y tus informes de tu base de datos, recuerda que puedes hacer tambien consultas por medio de la tabla factura para ver cuales fueron las ventas que has tenido.