Monografias.com > Computación > Software
Descargar Imprimir Comentar Ver trabajos relacionados

Fox Pro




Enviado por rsequera20



    Es un sistema orientado
    a objeto para la generación de Base de Datos y
    el desarrollo de
    aplicaciones.

    Desde Visual FoxPro
    podemos crear Formularios, Base
    de Datos , Informes,
    Vistas, Proyectos entre
    otros. Podemos crear los elementos de un proyecto por
    separado y luego agregarlos a un proyecto
    existente o crear un proyecto y desde éste ir agregando
    los elemento que deba contener. Cuando creamos un proyecto
    debemos crear una carpeta de trabajo en la se guarde el proyecto.
    Para indicarle a Visual Foxpro en cual
    directorio debe buscar los archivos del
    proyecto debemos indicarle el directorio por defecto; en le
    menú Herramientas
    en la opción de Opciones en la ficha de Archivos,
    aparecerá la ruta por defecto el directorio de Vfp
    cambiamos este directorio por la carpeta en la que está
    nuestro proyecto y seleccionamos Aceptar. Desde la Ventana
    de Comandos se
    utiliza el comando SET DEFAULT nombrederuta por ejemplo: Set
    default c:publicopractica (La Ventana de Comandos
    será explicada mas adelante)

    CREACION DE LA BASE DE DATOS

    1. Ubiquese en la ficha Datos y luego en Base
      de Datos
      y presione el botón

    Nuevo

    La ventana del Diseñador de Base da datos
    aparecerá :

    Puede utilizar la barra de herramientas
    del Diseñador para el control de la
    Base de
    Datos.

    Descripción de los botones de la Barra de
    herramientas (Diseñador de Base de Datos):

    Crear una
    nueva tabla.

    Agregar
    una tabla existente

    Eliminar
    una tabla seleccionada

    Modificar
    una tabla seleccionada

    Creación de Vistas remotas

    Creación de Vistas locales

    Editar
    Procedimientos
    almacenados en la Base de Datos

    Creación de Conexiones con vistas
    remotas

    Examinar
    el contenido la tabla (BROWSE)

    Los nombres de las tablas deben ser de una a ocho
    caracteres de largo y deben tener la extensión
    predeterminada .dbf (database file: archivo de Base
    de Datos)

    Crear una nueva tabla:

    1. Click en el botón de Nueva tabla,
    aparecerá la ventana Nueva Tabla

    1. Se selecciona Nueva Tabla, luego
      aparece la ventana de guardar el archivo,
      seleccione el directorio y el nombre de la tabla y luego
      presione el boton de guardar.

    La ventana del Diseñador de tablas
    aparecerá en pantalla:

    Esta es la parte mas importante de la tabla, es
    aquí donde se define la estructura de
    datos que contendrá dicha tabla. El primer paso es
    definir los campos, tipos, tamaño, Formato y Reglas de
    validación.

    1. Definición de campos:
    2. Igual que en las versiones anteriores, la
      definición de campos es igual. Se introduce el nombre
      del campo (name) el tipo de datos que soportará
      (Type) y el tamaño. Los nombres de los campos
      pueden tener hasta 254 caracteres sin espacios en
      blanco

      Format (Formato): Es el formato de salida del
      campo, ejemplo si fuera númerico 9,999.99 o si fuera
      carácter !!!!!!!!!!!!, para que solo
      acepte mayusculas

      Input mask (Máscara de entrada): Igual
      que el Format, lo único que es para la entrada de
      datos.

      Captión (Título): Descripción mas precisa del campo, es
      de utilidad al
      diseñar los Formularios.

    3. Definición del Display
    4. Definición de reglas de validación a
      nivel de campo

    La validación son triggers o eventos que se
    ejecutan a nivel de campo. Ejemplo: una validación de un
    campo que solo acepte números positivos. (id >
    0)

    Rule (Regla): Es la regla de validación,
    ejemplo: id > 0, si queremos que acepte valores
    positivos.

    Message(Mensaje): Es el mensaje personalizado que
    queremos que aparezca en pantalla a la hora de violarse la regla
    de validación del campo. Ejemplo : ‘Solo se aceptan
    números positivos’ (nota: el texto debe
    escribirse entre comillas).

    Default Value : Valor por
    defecto del campo. (nota: hay que respetar el tipo de dato
    del

    Campo)

    Luego de hacer la definición de los campos,
    pasamos a la definición de Indices de la tabla, que
    será muy importante a la hora de crear las relaciones
    entre las tablas.

    Los índices facilitan la ubicaciòn en la
    tabla de un registro
    especìfico asì como tambien determinan el tipo de
    relaciones que existen entre las tablas

    Los índices pueden ser CDX o IDX:

    Los índices .IDX son índices compactos se
    crean: "INDEX ON estado to
    estado
    compact" crea un archivo de índice llamado estado.cdx.
    Desafortunadamente si alguna vez abre la tabla sin el
    índice y añade un registro,
    éste no se actualizará y tendrá que ser
    recreado.

    Los índices .CDX se crean: "INDEX ON estado tag
    estado" . Estos archivos se abren automáticamente junto
    con las tablas.

    La estructura
    interna de los IDX y los CDX es diferente.

    1. Nombre del Indice (name)
    2. Introducir el Nombre del archivo índice. Es
      conocido también como TAG (etiqueta).

    3. Type ( tipo de
      Indice)

    Primary : Llave primaria.

    Candidate : Llave candidata

    Unique : Llave única.

    Regular : Llave foránea.

    El índice Primary o Principal: garantiza que solo
    se introduzcan valores
    únicos en un campo y determina el orden en el que se
    procesan los registros. Cada
    tabla puede tener únicamente un índice
    Principal.

    El índice Candidate o Candidato: puede ser un
    candidato para utilizarse como índice principal, refuerza
    la unicidad de los
    valores.

    El índice Unique o Unico: almacena un lista de
    cada valor
    único en la tabla índices.

    El índice Regular o Normal: puede ser utilizado
    para ordenar y buscar datos en consultas e informes. No
    refuerza la unicidad de los datos

    c. Nombre de la Expresión

    Nombre de los campos que conforman la clave
    primaria:

    Ejemplo : id, o si son varios campos : id
    + linea

    Nota: si los campos no son del mismo hay que forzarlos
    al tipo de dato deseado, ejemplo: si id es carácter
    y linea, entoces el nombre de la expresion
    sería:

    Id + STR(linea)

    STR() convierte de número a carácter y
    VAL() convierte de carácter a númerico.

    Después de detallar los índices, se define
    los eventos de La
    validación a nivel de registro y los eventos que se
    ejecuten a la hora de Insertar un registro, de actualizar o
    borrar.

    Visual Foxpro tiene
    37.767 espacios de trabajo, llamadas áreas de trabajo
    porque una tabla deber ser seleccionada para volverla la tabla
    actual. Cuando se inicia Visual FoxPro el
    área de trabajo es la 1 por omisión. Para abrir una
    tabla en el área de trabajo 1 cuando ninguna otra tabla
    está abierta, tecleamos en la Ventana de
    Comandos:

    USE nombretabla

    No necesariamente debe estar en un área de
    trabajo para abrir una tabla puede especificar: USE nombretabla
    IN 3

    Sin embargo con mas frecuencia se utiliza: USE nombre
    tabla IN 0 lo que significa encuentre el área de trabajo
    siguiente en la que no se encuentre abierta una tabla y abre
    nombretabla ahí.

    Cuando se utiliza una tabla Visual FoxPro le asigna un
    alias, un nombre de hasta 10 caracteres con el cual se refiere a
    ella en el programa,
    generalmente el alias es el mismo nombre que el de la
    tabla

    Para crear una tabla desde la Ventana de Comandos:
    CREATE <nombretabla>

    Para modificar una tabla Administrador de
    Proyectos |
    Datos | Base de Datos| Tablas | Seleccionamos la tabla |
    Modificar.

    Desde la Ventana de Comandos: Use tabla | MODIFY
    ESTRUCTURE

    En Visual FoxPro existe la Ventana de comandos
    ésta funge como la ventana de MSDOS que puede utilizarse
    desde Windows con la
    finalidad de permitir utilizar comandos del lenguaje para
    ejecutar algunas funciones. Por
    ejemplo desde Windows desde
    el explorador podemos examinar el contenido de un disckette
    acción que también podemos hacer si abrimos una
    ventana de MSDOS y tecleamos DIR A:. Es decir a pesar de que se
    pueden tener acceso a la mayoría de los elementos de
    Visual FoxPro desde el menú muchas veces es útil
    simplemente teclear un comando.

    Para activar la Ventana de Comandos auque ella aparece
    por defecto en el en el entorno de trabajo tecleamos Ctrl.
    F2

    Para agregar registros a una
    tabla : Administrador de
    Proyectos | Datos | Base de Datos | Tablas | Seleccionamos la
    tabla | Examinar y luego en el menú Ver | Modo
    Añadir

    Desde la Ventana de Comandos: Teniendo la tabla activa
    escribimos APPEND.

    Para ver los registros de una tabla: Administrador de
    Proyectos | Datos | Base de Datos | Tablas | Seleccionamos la
    tabla | Examinar.

    Desde la Ventana de Comandos: teniendo la tabla activa
    escribimos BROWSE.

    En Visual Foxpro los registros de una tabla pueden
    borrarse lógicamente y físicamente.

    Para borrar lógicamente un registro :
    Administrador de Proyectos | Base de Datos | Tablas |
    Seleccionamos la Tabla | Examinar luego con el ratón
    hacemos Click en la primera columna de izquierda a derecha, la
    columna en la celda seleccionada se colocará de color
    negro.

    Desde la Ventana de Comandos: DELETE (Teniendo
    seleccionado el registro)

    Para ver los registros de una tabla sin que aparezcan
    los registros borrados lógicamente:

    Primero desde la Ventana de Comandos debemos teclear :
    SET DELETE ON y luego desde el Administrador de Proyectos | Datos
    | Base de Datos | Tablas | Examinar .

    También desde la Ventana de Comandos con el
    comando BROWSE

    Si queremos incluso los registros borrados
    lógicamente tecleamos en la Ventana de Comandos SET DELETE
    OFF y luego tecleamos BROWSE.

    Para desmarcar los registros borrados lógicamente
    (desde la Ventana de Comandos): Suponemos que anteriormente
    habían sido borrados los empleados cuyo sueldo era 15000:
    DELETE FOR sueldo=15000

    Para desmarcar estos registros : RECALL FOR
    sueldo=15000

    Para borrar físicamente registros de una tabla
    primero deben estar borrados lógicamente

    Y luego desde la Ventana de Comandos tecleamos el
    comando PACK, para utilizar este comando la tabla debe ser
    abierta en modo exclusivo USE nombretabla EXCLUSIVE .

    Algunos comandos para manipular
    tablas:

    List for cedula="12434213" Muestra en el
    entorno de trabajo la informacion del registro que cumpla con
    esta condición.

    List fields cedula,nombre. Muestra en el
    entorno de trabajo todas las cédulas y nombres de la tabla
    seleccionada.

    Sum cantidad (suponemos que la tabla activa tiene un
    campo de tipo numérico llamado cantidad). Muestra en el
    entorno de trabajo la suma del campo cantidad de la tabla
    activa.

    Sum cantidad for cantidad>1000 Obtiene la suma de los
    campos cantidad de los registros que cumplen con la
    condición indicada

    Count to Registros for nota>15 (quermos contar los
    registros de una tabla cuyo campo nota sea mayor a 15 puntos,
    guardar este total en una variable llamada Registros ) Si luego
    queremos examinar el contenido de la variable Registros tecleamos
    ?Registros (signo de interrogación que cierra y luego el
    nombre de la variable que queremos examinar)

    Comandos SEEK y LOCATE

    Los comandos Locate y Seek permiten buscar un registro
    en particular. Locate funciona en cualquier campo dentro de una
    tabla ya sea que esté indexada o no Seek da por hecho que
    la clave que está buscando encaja con el índice
    actual.

    Locate for nombre="Luis" La tabla activa posiciona su
    cursor el registro que cumpla con esta
    condiciòn.

    Seek("Luis") ERROR

    Set order to nombre (CORRECTO) Primero se debe activar
    el ìndice

    Seek("Luis") y luego hacer la bùsqueda

    La funciòn Set filter:

    Esta funciòn provoca que Visual FoxPro se
    comporte como si no existieran los registros que no coinciden con
    la expresiòn de filtro, y en las operaciones que
    se realicen solo se tomaràn en cuenta las registros que
    cumplen con la condiciòn del filtro actual.

    Set filter to nota=15

    Para desactivar un filtro colocamos set filter to y
    para

    Como moverse en una tabla de VFP

    Skip mueve el puntero hacia delante un
    registro

    Skip – 1 mueve el puntero hacia tras un
    registro

    Go top mueve el puntero hacia el primer registro de la
    tabla

    Go bottom mueve el puntero hacia el ùltimo
    registro de la tabla.

    Go 3 mueve el puntero hacia el registro #3 de la
    tabla

    Operaciones Ciclìcas:

    Existen una cantidad de mecanismos de ciclos que puede
    utilizar para moverse a travès de una tabla. El principal
    es SCAN

    Por ejemplo:

    Select Cliente (No hay
    necesidad de hacer go top)

    Scan

    Sueldo=sueldo + 5000

    Endscan

    Las lìneas de còdigo entre Scan y Endscan
    se ejecutaràn 1 vez por cada registro de la
    tabla.

    Lo mismo se puede hacer con :

    Select Cliente

    Go top

    Do While not eof()

    Sueldo=sueldo+5000

    Skip

    Enddo

    La instrucciòn FOR:

    For i=1 to 10

    Cont=cont+1;

    endfor

    Para eliminar una tabla:

    Para eliminar una tabla con los indices
    principales, valores predeterminados y reglas de
    validaciòn asociadas a la tabla use el comando DROP
    nombretabla por ejemplo:

    Open Database inscripciones

    Drop table alumnos

    Uso de Funciones:

    Str() convierte a String

    Val convierte a nùmero

    Date() devuelve la fecha del sistema

    Hoy=Date()

    GetDir() Obtiene el directorio por
    defecto

    Cd
    GetDir

    Imprime el dìa de la semana

    ?Dow(Date())

    Len() Devuelve el nùmero de caracteres de
    una expresiòn de caracteres

    Recno() Obtiene la posiciòn de un
    registro

    Para cerrar abierta en el àrea de trabajo actual
    utilizamos el comando USE

    Uso de Procedimientos y
    Funciones:

    Procedure Nombreprocedure

    *Aquí va el còdigo
    ejecutable

    endproc

    Function Nombrefuncion

    *aquí va el còdigo
    ejecutable

    endfunc

    El valor devuelto de forma predeterminada es verdadero
    (.t.) pero puede utilizarse el comando Return

    Function semanas(dDate)

    Return dDate + 14

    Endfunc

    Si se incluyen los procedimientos y funciones en
    un archivo de programa
    disttinto, podrà hacer accesibles estos procedimientos y
    funciones desde su programa si utiliza el Set procedure to. Por
    ejemplo: Si tiene un archivo llamado: FunProc.prg se utiliza el
    siguiente comando:

    Set Procedure to FunProc.prg

    Llamado a un procedimiento o a
    una fuciòn:

    -Utilizar el Do:

    Do Miproc

    -Incluir delante del nombre de la funciòn un
    signo (=) e incluir parentesis despues del nombre de la
    funciòn. Por ejemplo

    =Mifuncion()

    Envìo de valores a un Procedimiento o a
    una Funcion:

    Procedure Nombreprocedimiento(eString)

    *La linea siguiente muestra un mensaje

    messagebox("Mi proc" + eString)

    endproc

    El paso de paràmetros a una funciòn es
    exactamente igual.

    Para invocar a un procedimiento:

    Do nombreprocedimiento with parametro
    ò

    =NombreFunciòn(paràmetro)

    Con mùltiples
    paràmetros:

    Procedure nombreproc (dDate, eString,Ntimes)

    *Codigo
    ejecutable

    endproc

    En la llamada: do nombreproc with Date(), "Hola",
    10

    Comprobaciòn de Paràmetros en un
    Procedimiento o una funciòn

    Function Semanas (dDate)

    If type("dDate")="D"

    Return dDate + 14

    Else

    Messagebox("Requiere un paràmetro de
    fecha")

    Return{} &&Devuelve una fecha
    vacìa

    endif

    endfunc

    Procedure valores (cStore, dDate2, nDatos)

    If parameters()<3

    Messagebox("No se han pasado suficientes
    paràmetros")

    Return .f.

    Else

    If parameters()=3

    *Operar con los paràmetros

    endif

    endif

    endproc

    Si se especifican dos paràmetros pero
    llamò al procedimiento con tres paràmetros,
    obtendrà un mensaje de erros. Pero si un procedimiento
    espera mas paràmetros de los que recibe, los
    paràmetros adicionales se inicializaràn como falso
    (.F.)

    Ejercicio Práctico:

    Cree la siguiente base de datos con el nombre de
    scott.

    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.

    Las relaciones entre tablas se crean arrastrando la
    llave de la tabla a la llave de otra tabla.

     La figura muestra una relación entre las
    tablas región y departamento, la relación se
    leería así : "Una región tiene muchos
    departamentos".

    Generación de integridad referencial

    Reglas que rigen la coherencia de datos,
    específicamente las relaciones entre las claves principal
    y externa de claves de tablas distintas. Visual Foxpro Resuelve
    la Integridad Referencial mediante reglas a nivel de campo y a
    nivel de registro definidas por el usuario. El Generador de la
    Integridad Referencial
    le ayuda a definir reglas para
    controlar cómo se insertan actualizan o eliminan registros
    de tablas relacionadas.

    Desencadenante: código
    de evento a nivel de registro que se ejecuta despues de una
    inserción, una actualización o una
    eliminación. Se ocupan para integridad entre las
    tablas.

    El establecimiento de la integridad referencial
    implica la creación de un conjunto de reglas para
    preservar las relaciones definidas entre las tablas al
    introducir o eliminar registros.

    Si exige la integridad referencial, Visual FoxPro
    impedirá las acciones
    siguientes:

    • · Agregar registros a una tabla relacionada
      cuando no haya ningún registro asociado en la tabla
      primaria.
    • · Cambiar valores de una tabla primaria cuando
      tales cambios supongan dejar registros huérfanos en una
      tabla relacionada.
    • · Eliminar registros de una tabla primaria
      cuando tengan registros relacionados coincidentes.

    Si lo desea, puede escribir sus propios
    desencadenantes y procedimientos almacenados para exigir
    la integridad referencial. Sin embargo, el Generador de
    integridad referencial (IR) de Visual FoxPro permite determinar
    los tipos de reglas que desea exigir, las tablas a las que desea
    exigirlas y los eventos del sistema que
    harán que Visual FoxPro las compruebe.

    El Generador de IR trata múltiples niveles de
    eliminaciones y actualizaciones en cascada, y es recomendable
    como herramienta para asegurar la integridad
    referencial.

    Para abrir el Generador de IR

    1 Abra el Diseñador de bases de
    datos
    .

    2 En el menú Base de datos, elija
    Editar integridad referencial.

    Al utilizar el Generador de IR para crear reglas que se
    van a aplicar a la base de datos, Visual FoxPro guarda el
    código generado para exigir las reglas de integridad
    referencial como desencadenantes que hacen referencia a
    procedimientos almacenados. Para ver este código
    puede abrir el editor de texto de
    procedimientos almacenados en la base de datos. Si desea información sobre la forma de crear
    desencadenantes por programa, consulte Uso de desencadenantes en
    el capítulo 7, Trabajo con tablas.

    Precaución Cuando haga cambios en el
    diseño
    de una base de datos, como modificaciones en sus
    tablas o alteraciones en los índices
    utilizados en una relación persistente, debe
    volver a ejecutar el Generador de IR antes de utilizar de nuevo
    la base de datos. De esta forma se revisarán el
    código de procedimiento almacenado y los
    desencadenantes utilizados para exigir la integridad
    referencial, de forma que reflejen el nuevo diseño.
    Si no vuelve a ejecutar el Generador de RI, puede que obtenga
    resultados inesperados, ya que no se habrán actualizado
    los procedimientos almacenados y los desencadenantes para
    ajustarlos a las modificaciones.

    El Generador IR se muestra cuando:

     Hace doble clic en una línea de
    relación entre dos tablas del Diseñador
    de bases de datos
    y elige el botón Integridad
    Referencial
    en el cuadro de diálogo Editar
    relación
    .

     Elige Integridad referencial en el
    menú contextual del Diseñador de bases de
    datos
    .

     Elige Editar integridad referencial en
    el menú Base de datos.

    Fichas del generador

    Reglas para la actualización Especifica
    reglas para aplicar cuando se modifica el valor clave de
    la tabla primaria.

    Reglas para la eliminación Especifica las
    reglas que se aplican cuando se elimina un registro de la tabla
    primaria.

    Reglas para insertar Especifica las reglas que se
    aplican cuando se inserta un nuevo registro o cuando se actualiza
    un registro existente en la tabla secundaria.

    VISTAS LOCALES:

    ¿Qué es una vista?

    Una vista es un objeto que se crea empleando la
    instrucción SELECT de SQL para
    bases de datos
    relacionales. Las vistas pueden ser locales o Remotas

    SELECT campos

    FROM tablas

    WHERE condicion

    GROUP BY campos de agrupamiento

    ORDER BY campos de ordenamiento

    Ejemplo:

    SELECT cedula, nombre

    FROM Alumnos

    ORDER BY nombre

    Creación de una vista local.

    Clic en el botón para crear vistas
    locales.

    La ventana para agregar las tablas, se utiliza para
    añadir tablas que se van a ocupar en la instrucción
    SELECT – SQL, en este
    caso estaríamos seleccionando la parte del FROM.
    Seleccionemos s_region y luego Agregar. La tabla se
    agregará, luego le damos cerrar (close).

    Ventana de creación de la
    vista:

     Fields: (Campos) Aquí se seleccionan
    los campos de la vista (SELECT campos)

    Join : Relaciones entre tablas

    Filter : Condición de filtrado (WHERE
    condición)

    Order by : campos de ordenamiento (ORDER
    BY)

    Group by : campos de Agrupamiento (GROUP
    BY)

    CREACION DE VISTAS REMOTAS:

    Una vista remota es una vista que se hace de otra base
    de datos vía ODBC. Esta base de datos puede ser Access, ORACLE,
    SQL-SERVER, entre otros.

    Crear una vista remota:

    Clic en
    icono para crear vista remotas.

    Escoger Nueva Vista (New View)

    Si no a creado una conexión es necesario
    crear en New, si ya esta creada seleccione la
    conexión y luego OK.

    ¿Como crear una conexión?

    Si no ha creado la conexión seleccione
    New

    Siga estos pasos cuidadosamente:

    1. Seleccione New Data Source (Nueva Fuente de
    Datos) y aparecerá la configuración del
    ODBC:

     2. En el folder User
    DSN Presione el botón Add
    (Agregar)

    1. Escoja de la ventana el Controlador deseado, Ejemplo:
      Microsoft Access Driver
      (*.mdb)
      y luego el botón
      Finalizar.
    2. Luego aparece la Ventana de ODBC del controlador que
      selecciono (En este caso en de Access)

    Escriba el nombre del Data Source (Fuente de datos),
    Luego seleccione la Base de Dato a la que hace referencia ( en el
    boton Select Database)

    Luego de haber seleccionado la base de datos, acepte
    todas las ventanas que aparecieron anteriormente y detengase en
    la siguiente ventana:

    Luego seleccione de la lista de data source el data
    source que usted acaba de crear.

    Luego presione Aceptar (OK).

    Después le aparece la primera Ventana donde
    escoge las conexiones, le aparecerá la conexión que
    usted ha creado.

    Nota: Esta conexión que usted a creado
    servirá para sesiones futuras.

    Seleccione la conexión creada y luego
    Aceptar (OK)

    Luego le aparecerá la ventana donde usted escoge
    las tablas que utilizará:

    Luego aparecerá la ventana donde se diseña
    la vista:

    El procedimiento para crear la vista es igual a la
    creación de vista Locales.

      

    Consultas a la BD usando SELECT-SQL

      

    SELECT – SQL usando dos o mas tablas:

     Sintaxis :

    SELECT alias1.campo1

    ,alias2.campo2

    ,alias3.campo3

    FROM tabla1 alias1

    ,tabla2 alias2

    ,tabla3 alias3

    WHERE alias1.campo1 =
    alias2.campo2

    alias1.campo2 = alias2.campo3

      Ejemplo :

    Un ejemplo sencillo: si queremos listar el nombre
    del empleado, el id del
    departamento, y el nombre del
    departamento al que pertenece el empleado la query
    (consulta) sería:

    SELECT A.nombre AS empleado

    ,A.dept_id

    ,B.nombre AS depto

    FROM s_emp A

    ,s_dept B

    WHERE A.id = B.region_id

    Ejercicios :

    Seleccionar el No. depto, apellido, salario y cargo
    para los empleados que ganen mas de 100 y el departamento este en
    41, 10 y 50

    select dept_id

    ,nombre

    ,salario

    ,cargo

    from s_emp

    where salario >
    100

    and dept_id IN (41,10,50)

    seleccionar el apellido, del empleado, id del depto, y
    el nombre del depto.

    select a.nombre AS empleado

    ,b.id

    ,b.nombre AS depto

    from s_emp a

    ,s_dept b

    where a.id = b.dept_id

    Seleccionar el apellido del empleado, no del depto, el
    nombre deldepto para los depto que esten entre 20 y 50 sin
    incluirlos.

    select a.nombre AS empleado,

    b.id,

    b.nombre AS depto

    from s_emp a, s_dept b

    where a.id = b.dept_id

    and b.id > 20 and b.id < 50

    seleccionar el nombre del empleado no. del depto, nombre
    del depto, para los deptos que comiencen con 4 y ordenados el
    numero de depto y nombre del empleado desc

    select a.nombre AS empleado,

    b.id,

    b.nombre AS depto

    from s_emp a,

    s_dept b

    where a.id=b.dept_id

    and ALLTRIM(STR(b.id)) like '4%'

    order by a.nombre asc,

    b.id

    Seleccionar el nombre del cliente para
    aquellos empleados que el no del depto sean 30, 40, 41, 42 y el (
    salario sea mayor que 1000 o el depto sea 50 )

    select a.nombre AS cliente,

    b.nombre AS empleado,

    b.salario,

    b.id,

    b.dept_id

    from s_customer a,

    s_emp b

    where a.emp_id=b.id

    and b.dept_id IN (30,40,41,42)

    and (b.salario > 1000 or b.dept_id='50')

    Otra soluccion:

    select a.nombre

    from s_customer a

    where a.emp_id IN (Select id

    from s_emp

    where dept_id in (30, 40,41,42)

    and (salario > 1000 or dept_id=50 )

    Seleccionar el nombre del cliente, nombre de region y el
    salario para todos los empleados que el salario sean mayor que
    100

    select a.nombre AS empleado,

    b.nombre AS depto,

    a.salario

    from s_emp a,

    s_dept b

    where a.dept_id=b.id

    and a.salario > 100

    Funciones de grupos

    salarios minimos y maximos de los empleados

    select max(salario) sal_max,

    min(salario) sal_min

    from s_emp

    Suma, maximo, minimo salario por Departamento

    select dept_id,

    sum(salario),

    max(salario),

    min(salario)

    from s_emp

    group by dept_id

    *—

    select dept_id,

    count(dept_id)

    from s_emp

    group by dept_id

    having dept_id > 20

    *—

    select dept_id,

    sum(salario)

    from s_emp

    group by dept_id

    having sum(salario) between 2000 and 4000

    *—

    select avg(salario),

    min(salario),

    max(salario),

    sum(salario)

    from s_emp

    where UPPER(title) like 'SALES%'

    *—

    select count(nombre),

    dept_id

    from s_emp

    where dept_id=31

    group by dept_id

    SELECT COUNT(ID),

    DEPT_ID

    FROM S_EMP

    GROUP BY DEPT_ID

     SELECT COUNT(ID),

    CREDIT_RATING

    FROM S_CUSTOMER

    GROUP BY CREDIT_RATING

    *—-

    SELECT SUM(SALARIO), CARGO

    FROM S_EMP

    WHERE upper(TITLE) NOT LIKE 'VP%'

    GROUP BY CARGO

    *—-

    SELECT SUM(SALARIO), TITLE

    FROM S_EMP

    GROUP BY TITLE

    *—-

    SELECT TITLE, SUM(SALARIO)

    FROM S_EMP

    WHERE UPPER(TITLE) NOT LIKE 'VP%'

    GROUP BY TITLE

    HAVING SUM(SALARIO)> 5000

    *—-

     Formularios Sencillos

    Un Formulario Sencillo, es el que es realizado
    generalmente utilizando una sola tabla.

    Un ejemplo típico de formularios sencillos son
    las pantallas de los catálogos de un Sistema, que
    solamente tienen la función de
    registrar, modificar, eliminar y consultar datos de una
    tabla.

    Por ejemplo vamos a construir una forma sencilla
    utilizando el Wizard de Visual Foxpro:

    1. Abra su proyecto
    2. Ubíquese en la pestaña de
      documentos (document) y luego en Formas
      (Forms).
    3. Presione el Botón Nuevo (New).

      Aparece la siguiente ventana:

    4. Seleccione Wizard.
    5. Seleccione Form Wizard y
      OK.
    6. Luego aparece la ventana donde usted escoge la tabla
      a utilizar y los campos de esa tabla. 
    7. Una vez seleccionado la tabla y sus respectivos
      campos, presiones próximo (Next).
    8. Se visualizará la siguiente
      ventana:

     10. Seleccione el estilo de la forma y el tipo de
    botones a utilizar en la forma y luego presione
    próximo (Next).

    11. Aparecerá la siguiente ventana:

       Para visualizar todas las imágenes
    faltantes haga click en el menu superior "Bajar
    Trabajo".

    12. Seleccione el ordenamiento de la tabla, aquí
    por lo general se selecciona el índice de la tabla ( los
    índices aparecen con asterisco *)

     13. Introduzca el titulo de la forma y luego
    Finalizar (Finish)

    Visual Foxpro Generará la forma, luego usted
    puede modificar la forma si lo desea.

    La forma, que creamos con el wizard, quedaría de
    esta forma:

     Nota: Reconstruya el proyecto en la
    opción Build (botón del proyecto). Luego
    Seleccione Rebuild Proyect y OK. Visual
    Foxpro, compila su proyecto.

    Notará que en la pestaña de clases de su
    proyecto Visual Foxpro le ha agregado una clase que él
    ocupa para construir formas con el Wizard, el nombre de la
    clase es WizStyle.

      Formularios Maestro – Detalle

    Un formulario maestro detalles es aquel en que entran en
    juego dos o
    más tablas, las cuales tengan una relación de uno a
    muchos. Ejemplo la relación de s_region con s_dept ( una
    región puede tener muchos departamentos).

    Se pueden construir formas mestro-detalle utilizando el
    Wizard, sin embargo, nosotros utilizaremos la forma manual para
    personalizar a nuestro gusto la forma.

    Pasos para construir una forma maestro –
    detalle

    Para este ejemplo utilizaremos las tablas
    s_region y s_dept

    1. Abra su proyecto
    2. Ubíquese en la pestaña de
      documentos (document) y luego en Formas
      (Forms).
    3. Presione el Botón Nuevo
      (New).
    4. Seleccione Nueva Forma en blanco.
    5. En la forma en blanco presione el botón
      derecho del ratón y luego Entorno de Datos (Data
      Environment)

    6. Seleccione las tablas s_region, que
    será el maestro y luego la tabla s_dept que
    será nuestro detalle.

    7. Arrastre uno por uno los campos de la tabla s_region
    a su forma, de tal manera que queden asi:

    8. Luego arrastre toda la tabla s_dept al
    formulario

    1. Ahora vamos a modificar las propiedades del Grid que
      hemos insertado: seleccionan el grid, botón derecho del
      ratón y luego propiedades. Se sitúan en la
      pestaña datos, para modificar las siguientes propiedades
      con el fin de establecer la relación entre las dos
      tablas:

    En la clase se explicaron los procedimientos para
    Incluir Modificar y Eliminar alumnos a una base de datos de
    inscripciones. En este este codigo se
    estan actualizando clientes el
    código es análogo

    Boton Incluir:

    if thisform.incluir.caption="Incluir"

    scatter memvar blank

    thisform.incluir.caption="Guardar"

    thisform.salir.caption="Cancelar"

    thisform.text1.enabled=.t. (Recuerden que los texbox
    poseen nombres que se

    corresponden con la realidad
    txtcedula,txtnombre…,

    aunque en este ejemplo no se planteen así
    debe

    programarse)

    thisform.text2.enabled=.t.

    thisform.text3.enabled=.t.

    thisform.text4.enabled=.t.

    else

    if thisform.text1.value<>''

    if thisform.text2.value<>''

    if thisform.text3.value<>''

    if thisform.text4.value<>''

    append blank

    gather memvar

    endif (Pueden mostrarse mensajes de validación de
    llenar todos

    los campos antes de incluir un registro)

    endif

    endif

    endif

    thisform.incluir.caption="incluir"

    thisform.salir.caption="Salir"

    thisform.text2.enabled=.f.

    thisform.text3.enabled=.f.

    thisform.text4.enabled=.f.

    endif

    thisform.refresh

    Boton Modificar:

    if thisform.modificar.caption="Modificar"

    thisform.text1.enabled=.f.

    thisform.text2.enabled=.t.

    thisform.text3.enabled=.t.

    thisform.text4.enabled=.t.

    thisform.modificar.caption="Guardar"

    thisform.salir.caption="Cnacelar"

    else

    gather memvar

    thisform.text1.enabled=.t.

    thisform.text2.enabled=.f.

    thisform.text3.enabled=.f.

    thisform.text4.enabled=.f.

    thisform.modificar.caption="Modificar"

    thisform.salir.caption="Salir"

    endif

    Boton Eliminar

    (Recuerden que en la ayuda de Visual FoxPro está
    la información de la aplicación de la
    función y/o procedimiento Messagebox)

    if messagebox("Esta seguro que desea
    eliminar este cliente",36,"Confirmacion")=6

    (Implementada como función)

    delete

    pack

    messagebox("El registro fue
    eliminado",0,"Aviso")

    (implementada como procedimiento)

    scatter memvar blank

    endif

    thisform.refresh

    Boton Salir:

    if thisform.incluir.caption="Guardar"

    thisform.text2.enabled=.f.

    thisform.text3.enabled=.f.

    thisform.text4.enabled=.f.

    thisform.incluir.caption="Incluir"

    thisform.Salir.caption="Salir"

    else

    if thisform.modificar.caption="Guardar"

    thisform.text1.enabled=.t.

    thisform.text2.enabled=.f.

    thisform.text3.enabled=.f.

    thisform.text4.enabled=.f.

    thisform.modificar.caption="Modificar"

    thisform.Salir.caption="Salir"

    else

    thisform.release

    endif

    endif

    Boton Primero:

    go top

    m.codigo=clientes.codigo

    m.nombre=clientes.nombre

    m.telefono=clientes.telefono

    m.direccion=clientes.direccion

    thisform.refresh

    Boton Ultimo:

    go bottom

    m.codigo=clientes.codigo

    m.nombre=clientes.nombre

    m.telefono=clientes.telefono

    m.direccion=clientes.direccion

    thisform.refresh

    Boton Siguiente

    if eof()

    thisform.siguiente.enabled=.f.

    go bottom

    m.codigo=clientes.codigo

    m.nombre=clientes.nombre

    m.telefono=clientes.telefono

    m.direccion=clientes.dirección

    frmactcliente.refresh

    else

    skip 1

    m.codigo=clientes.codigo

    m.nombre=clientes.nombre

    m.telefono=clientes.telefono

    m.direccion=clientes.direccion

    if thisform.anterior.enabled=.f.

    thisform.anterior.enabled=.t.

    endif

    endif

    thisform.refresh

    Boton Anterior

    if bof()

    thisform.anterior.enabled=.f.

    go top

    else

    skip -1

    if thisform.siguiente.enabled=.f.

    thisform.siguiente.enabled=.t.

    endif

    endif

    m.codigo=clientes.codigo

    m.nombre=clientes.nombre

    m.telefono=clientes.telefono

    m.direccion=clientes.direccion

    thisform.refresh

    Creación de Clases de Objetos

    En Visual Foxpro se pueden crear clases de objetos que
    pueden de uso muy común, como por ejemplo el botón
    salir es muy comun en todas las pantallas.

    Pasos para creación de clases:

    1. Abra su proyecto
    2. Ubíquese en la pestaña de
      classes.

    3. Presione el Botón Nuevo
      (New).
    4. Introduzca el nombre de la clase, el tipo de clase (en
      este caso Boton de comando) y guardarlo como curso.

    5. Inmediatamente aparecerá la siguiente
      pantalla:
    6. Personalice el botón y luego cierre la ventana
      y sálvelo.
    7. La
      clase que usted a creado aparecerá en la pestaña
      clases de su proyecto:

    Cómo hacer uso de la clase :

    1. 2. presione el botón de ver clases y
      luego agregar (Add) y seleccione la clase que usted a
      creado.

    2. Cree o Abra una forma

    3. Aparecerá la clase que usted a creado con el
      botón de salir
    4. Para poner el botón en la forma, seleccione el
      botón en la barra de controles y luego clic en la
      forma.

    En clase se implementó una clase basada en la
    clase TextBox que cambia el color de fondo y
    el color de la letra del Textbox cuando el texbox obtiene o
    pierde el focus ( utilizando los procedimientos LosFocus y
    GotFocus) de esta manera el usuario identifica mas facilmente el
    texbox activo

    Código del Procedimiento LostFocus de la clase
    TxtColor (obtenel el focus)

    This.backcolor=rgb(0,0,255) (color de fondo
    azul)

    This.forecolor=rgb(255,255,255) (color de las letras
    blancas)

    Código del Procedimiento GosFocus del la clase
    TextColor (perder el focus)

    This.backcolor=rgb(255,255,255) (color de fondo
    blanca)

    This.forecolor=rgb(0,0,0) (color de las letras
    negras)

    Soporte de Tecnología
    ActiveX

    Cuando usted instala Visual Foxpro, se instalan una
    serie de controles ActiveX soportados por Visual
    Foxpro.

    Un ActiveX, no es más que un control externo,
    es parecido a una clase ya que las clases se pueden guardar en un
    archivo (extensión VCX) y los ActiveX tienen
    extensión OCX. La diferencia es que los VCX solo puede
    ocuparse en Visual Foxpro, mientras que los OCX se consideran
    como tecnología abierta, es decir, pueden ser
    utilizado por cualquier lenguaje
    visual como Visual C++ o
    Visual Basic, por
    mencionar algunos.

    Estos controles ActiveX, vienen hechos de fabrica, son
    comercializables y no son modificables, sin embargo uno puede
    crear sus propios OCX. Los lenguajes donde se pueden construir
    estos OCX actualmente son Visual C++ y
    Visual Basic. En
    visual Foxpro 5.0 usted no puede crear OCX.

    Hay que tener mucho cuidado a la hora de comprar un OCX
    y verificar que lenguajes soporta, por que algunos OCX no son
    soportados por algunos lenguajes visuales incluso con Visual
    Foxpro.

    Cómo hacer uso de los ActiveX en Visual
    Foxpro:

    Un OCX es un objeto por lo cual tiene propiedades y
    eventos implícitos en él.

    En el curso, utilizaremos dos Controles ActiveX
    :

    • OutLine control
    • Microsoft Progress Bar Control

    OutLine control:

    El
    Outline Control se utiliza para hacer Arboles como
    por Ejemplo: Regiones con departamentos
    (maestro-detalle)

    Cómo agregar un ActiveX a la
    forma:

    1. Abra o Cree una nueva forma.
    2. Seleccione Ver clases
    3. Seleccione ActiveX Control
    4. Seleccione el control deseado, en este caso el
      Outline Control y póngalo en la forma.

    5. Vamos a crear una forma maestro detalle utilizando el
    Outline Control. El Outline control presentará la
    información de las Regiones y vamos a agregar un Grid que
    serán los departamentos, Algo asi:

    Completar Código del Outline
    control:

    Método

    Código

    Init

    *————————————-

    * Cargar el OCX

    *————————————-

    *——–

    pnIndex = 0

    THIS.Additem( "Regiones" )

    THIS.Indent( pnIndex ) = pnIndex

    Select s_region

    SCAN

    pnIndex = pnIndex + 1

    datos = ALLTRIM(name)

    THIS.Additem(datos)

    THIS.Indent( pnIndex ) = 1

    THIS.PictureType(pnindex) = 2

    THIS.ListIndex = pnindex

    THIS.ItemData(pnIndex) = RECNO()

    ENDSCAN

    Click

    SELECT s_region

    GO RECORD THIS.ItemData(THIS.ListIndex)

    THISFORM.REFRESH()

     El último paso es agregar el Grid con la
    tabla departamentos y luego establecer la relación con la
    tabla de regiones.

     Progress Bar Control:

    Este control permite hacer una barra de
    progreso:

    Propiedades :

    Propiedad

    Descripción

    Max

    Máximo valor de la Barra
    (númerico)

    Min

    Mínimo valor de la Barra
    (númerico)

    Value

    Valor actual de la barra
    (númerico)

    Almacenar objetos OLE en la Base de
    Datos:

    Con Visual Foxpro se pueden almacenar objetos OLE en la
    Base de Datos, estos objetos OLE van desde una simple imagen BMP de
    Paintbruhs hasta un video clip, un
    documento en Word, una hoja
    en Excel un
    grafico.

    Esto se llama OLE Automation (automatización OLE)

    ¿Qué se necesita para hacer OLE
    Automation?

    Muy sencillo:

    • El campo de la tabla debe ser tipo
      General
    • Utilizar el control OLE Bound Control de Visual
      Foxpro
    • Utilizar el Comando APPEND GENERAL

    Sintaxis de APPEND GENERAL

    APPEND GENERAL Nombre Campo tipo
    General

    [FROM Nombre Archivo]

    [DATA Nombre de Variable]

    [CLASS Nombre de la Clase OLE]

    FROM : Por si deseamos insertar un Archivo
    existente en el disco

    DATA : Si no es un archivo puede ser una
    variable, entonces se especifica

    aquí.

    CLASS : El nombre de la clase de la
    aplicación al que esta asociada el archivo

    o la variable.

    Toda aplicación Windows ( Word, Excel, Graph,
    Paint,
    WordPad, Block de Notas, Power Point,
    entre otras) tienen un nombre de clase:

    Por mencionar algunos nombres de
    clases:

    Aplicación

    Nombre de la
    clase

    Paintbrush Picture

    PAINT.PICTURE

    Documento de Word 97

    WORD.DOCUMENT

    Hoja de Calculo de Excel

    EXCEL.SHEET

    Como conocer el nombre de clase de una
    aplicación Windows:

    1. Cree un
      formulario nuevo
    2. Inserte en el formulario el control OLE Container
      Control

    3. Insertar la Aplicación deseada: (Escoger el
      objeto y luego OK)
    4. Luego en las propiedades del objeto insertado buscar
      la propiedad
      OLECLASS:

    Incluir en el Formulario el Objeto
    OLE:

    Diseño de Reportes

    Guia rápida visual:

     Los informes muestran datos y resumen datos en un
    formulario impreso o en pantalla. Los dos componentes principales
    de los informes son los datos y el formato. La fuente de datos
    del informe puede ser
    una tabla de base de dato, una consulta o una vista.

    El primer paso para diseñar un informe es
    determinar los datos que se van a mostrar, y el segundo paso es
    determinar cuál va a ser el mejor formato para mostrar ese
    informe. Puede crear listados que se basen en una única
    tabla o en informes complejos.

    El Generador de Informes es una herramienta flexible y
    de fácil uso para la creación, diseño y
    modificación de informes.

    Pasos para Creación de Informes
    :

    I. Selección de los datos

    Esta es la parte más importante del informe, la
    selección de datos, hay que saber
    qué es lo que quiere el usuario o que el usuario muestre
    el diseño del informe que desea, para comenzar a
    trabajar.

    Los datos pueden ser simples (utilizando una sola
    tabla), como listados de regiones, listado de departamentos,
    entre otros; o pueden ser algo mas complejos (utilizando mas de
    una tabla) Ejemplo Reportes agrupados, reportes consolidados,
    etc.

    Los datos se pueden obtener directamente utilizando las
    tablas o utilizando SQL para crear cursores, esta
    última es la más recomendada para una
    aplicación multiusuario.

    Existen varios tipos de informes entre ellos
    :

    Listados (Ej. Listados de regiones)

    Muestra:

    ——————————-

    id name

    ——————————-

    01 Region 1

    02 Region 2

    ——————————–

    Grupos con detalles ( o maestro
    detalles)

    ——————————-

    Region

    Departamento

    ——————————-

    Region 1

    Departamento a

    Departamento b

    Region 2

    Departamento x

    Departamento y

    ——————————–

    – Matriciales o consolidados

    ——————————————–

    Rating

    Region Excellent Good Poor

    ——————————————–

    Region 1 1 2 0

    Region 2 3 0 1

    ——————————————–

    Totales 4 2 1

    ——————————————–

    Creación de Informes usando el entorno de
    datos
    :

    1. En el administrador de proyectos, seleccione la ficha
    Documentos.

    2. Seleccione Informes

    3. Pulse el botón nuevo

    4. Pulse el botón nuevo informe.

    Aparece el generador de informes y al barra de
    herramientas Controles de informes.

    5. Seleccione Entorno de datos y seleccione la
    tabla

    6. Arrastre los campos a utilizar del entorno de datos
    en el informe en la parte de detalle

    7. Introduzca los encabezados del reporte

    8. Puede ver como queda el informe con el botón
    de presentación preliminar:

     Presentación Preliminar :

      

    Menú de Reportes

    Titulo/Sumario (Title/Summary):

    Muestra el área del Titulo y el Sumario del
    Informe

    Titulo : Aparece solo en la primera pagina del
    Reporte

    Sumario : Aparece solo en la ultima pagina del
    Reporte

    Agrupamiento de datos (Data Grouping)

     El agrupamiento de datos se utiliza para informes
    maestro – detalle.

      Variables:

    Las variables son
    útiles para hacer cálculos con los datos del
    reporte y luego presentarlas en el mismo reporte.

     Propiedades de los campos

    Cada campo en el Informe posee propiedades :

     Creación de Informes usando Cursores
    SQL
    :

     1. Crear el cursor con el comando SELECT….. FROM
    …..WHERE….

    2. Crear el Informe manualmente, con los nombres de
    campos del cursor.

    3. Correr el Reporte.

    Ejemplo:

    * Se define una ventana Personalizada

    DEFINE WINDOW w_Output ;

    FROM 0,0 TO 25,70 ;

    TITLE 'Informes – INATEC' ;

    CLOSE FLOAT GROW ZOOM SYSTEM

    USE IN .datas_region IN 0

    SELECT id, name

    FROM s_region

    INTO CURSOR c_region

    * Si lo queremos por pantalla

    REPORT FORM .reportpp_detalles ;

    PREVIEW WINDOWS w_output ;

    NOEJECT NOCONSOLE

    * Por Impresora

    REPORT FORM .reportpp_detalles ;

    TO PRINTER PROMPT ;

    NOEJECT NOCONSOLE

    * Hacia un Archivo

    REPORT FORM .reportpp_detalles ;

    TO FILE PUTFILE() ;

    ASCII

    * Cerrar el cursor

    USE IN c_region

    Integración de la
    Aplicación

    Creación de Menús:

    Guía rápida Visual:

      Tipos de Menús:

    Existen dos tipos de menús : menú y
    Shortcut.

     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 l 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. Aparece la página otros con las
      categorías de archivo de Menús, Texto y
      Otros.

    2. Pulse
      la ficha de otros en el Administrador de proyectos.
    3. Seleccione menús en la lista de
      categorías
    4. 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).

    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)

     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 ;

    ,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.

    _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

    Creación del Ejecutable

    En el Administrador de proyectos seleccione la opcion
    Build, luego la opción build Executable y luego
    OK.

    • En las opciones es recomendable seleccionar Recompile
      All y display Error, para recompilar todos sus programas y
      formularios ; y Por si hay un error mostrarlo al final de la
      generación del Ejecutable.

    Suerte en tu nuevo aprendizaje

    Para visualizar todas las imágenes
    faltantes haga click en el menu superior "Bajar
    Trabajo".

     

     

    Autor:

    Richard A. Sequera A.
    Estudio: Ing. en Informatica, UCLA, Venezuela.
    e-mail:

    Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

    Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

    Categorias
    Newsletter