Curso de visual fox pro - Desprotej...\nDe que elementos constará el Proyecto\nSeleccionando Directorio de Trabajo\n¿Cómo crear las tablas?\nCreando los indices y las relaciones entre las tablas\n¿Cómo crear los formularios?\n¿Cómo crear las consultas?\n¿Cómo crear los reportes?\n¿Cómo crear el menú?\n¿Cómo hacer el código ó programa?\n¿Cómo ejecutar la aplicación?\n¿Cómo crear un ejecutable?\nEl Instituto Nacional de Estadística e Informática, como ente rector del Sistema Nacional de\nInformática del país, presenta en esta oportunidad el décimo cuarto número de la Colección\nInformática Fácil: "Guia Práctica de Autoaprendizaje de Visual Fox Pro 5.0".\nEl Visual Fox Pro 5.0, es una de las herramienta de desa-rrollo, que permite crear y construir\naplicaciones de uso práctico, en un ambiente gráfico.\nEn esta publicación y a través del desarrollo de un ejemplo práctico y sencillo se dará a conocer de\nuna manera básica temas tales como: la creación de proyectos, bases de datos, tablas, formularios,\nconsultas, menús e informes contando para ello con patrones visuales y herramientas de diseño.\nEsta guía de autoaprendizaje está dirigida al personal de la administración pública, empresa privada y\npúblico en general, a nivel nacional.\nEl Instituto Nacional de Estadística e Informática, espera que la presente publicación tenga la acogida\ny sea de utilidad para todos nuestros lectores.\nEcon. Félix Murillo Alfaro\n¿COMO INICIARMICROSOFT VISUAL FOX PRO VERSION 5.0?\nPara ingresar al Microsoft Visual Fox Pro versión 5.0, desde Windows 95, seguir los siguientes\nCon el mouse, dar un click sobre el botón .\nArrastrar el mouse y dar un click en\nEn el siguiente grupo de opciones, seleccionar dando un\nclick sobre la Carpeta, o dar doble\nA continuación el sistema muestra la pantalla:\n¿QUE ES EL MICROSOFT VISUAL FOXPRO?\nVisual FoxPro es un lenguaje de programación que, con un lenguaje sencillo, simplifica el manejo de\ndatos para que los usuarios puedan construir rápidamente sus aplicaciones.\nEn Visual Foxpro se puede crear rápidamente formas, menúes e informes con los patrones visuales y\nherramientas de diseño. Adopta la apariencia de los últimos productos Microsoft: barras de estado,\nbotones con pista, menúes contextuales, etc.\nVisual FoxPro también hace posible crear rápidamente aplicaciones usando asistentes (generadores\nde tablas, formularios, menus, entre otros) y poco código de programación.\nEn este número, se desarrollará una aplicación sencilla, tomando como ejemplo la base de datos de\nlas publicaciones informáticas desarrolladas por el INEI.\n¿CUALES SON LOS REQUISITOS DE INSTALACION?\nMicrosoft Windows 95 ó\n12 Mb de RAM (Recomendado)\n15 Mb Instalación Mínima\n85 Mb Instalación Típica\n190 Mb Instalación Completa\nMouse o ratón compatible.\nPC con procesador 486DX/4 o superior.\nTarjeta Gráfica: VGA o superior\n(Recomendado SGVA de 256 colores)\nUnidad de CD- ROM\nCONOCIENDO LA PANTALLA PRINCIPAL\nSe denomina byte a la unidad de memoria del computador. Esta unidad es de almacenamiento y\npuede contener un caracter.\nSe entiende por caracter : una letra, un dígito numérico o un caracter especial.\n¿ QUE ES CAMPO?\nSe llama campo a un conjunto de bytes consecutivos de la memoria o de una unidad de\nalmacenamiento de datos, que tienen un sentido o un significado para alguien. El largo mínimo de\nun campo es de un byte y el máximo, de 254 bytes.\n¿ QUE ES UN REGISTRO?\nSe denomina registro a un conjunto de campos relacionados sobre un mismo objeto ( codigo de\npublicación, nombre, responsable, fecha de publicación).\nEl largo mínimo de un registro es de un byte y el largo máximo es de 64 kbytes. Ejemplo: un registro de\ntipos de publicaciones informáticas, tiene campos como : tipo_publi, nombre de la publicación, entre\n¿ QUE ES UN ARCHIVO?\nSe llama archivo a un conjunto de registros del mismo tipo. Ejemplo: El conjunto de registros de\nPublicaciones Informáticas que publica el INEI forma el archivo Publicaciones.\nEl tamaño mínimo de archivo es el de un registro, el ancho máximo sólo está limitado por el tamaño\n¿ QUE ES UNA CLAVE O LLAVE?\nSe llama clave o llave a uno o varios campos dentro de un registro que permite la identificación del\nEjemplos de llaves: el código del responsable de una publicación en un archivo de responsables de\npublicaciones. También puede ser una llave el código de publicación + el número de la publicación. La\ncaracterística de la llave es que es única dentro del archivo, es decir, que no puede repetirse\n¿ QUE ES UNA BASE DE DATOS?\nUna Base de Datos es un conjunto de datos organizado\nde forma tal, que se presenta al usuario como si fuera una o\nun conjunto de matrices bidimensionales (tablas).\nCada fila de una matriz es un registro, el cual contiene\ninformación sobre una unidad de la base de datos y le asigna\nun número para poder manejarlo.\nCada columna contiene los diversos campos de ese registro. Por\nejemplo : en una tabla de publicaciones, cada fila contendrá información\nsobre una publicación determinado, y la fila estará dividida en campos (columnas), como el código de\npublicación, nombre de la publicación, fecha, tiraje, responsable, etc...\nVisual Fox Pro puede manejar diversos tipos de campos (tal como muestra la figura) . Entre los\nmás importantes están:\nCarácter : Campo de caracteres : Almacena cadenas o conjuntos de caracteres. Un campo de\ncaracteres permite almacenar tanto letras, como números o caracteres especiales.\nMonetario: Campo de Valores Monetarios: Almacena cantidades en valor monetario, Ejemplo: $55,\nNumérico: Campo numéricos : Almacenan cantidades y se puede hacer cálculos con ellos. Estos\ncampos sólo admiten número y el punto decimal (la coma decimal si tiene formato español). Máxima\nextensión, 20 caracteres.\nFlotante : Campo de números reales : Almacenan números en el rango del conjunto de números\nFecha : Campo fecha : Permite almacenar fechas. La información la guarda en la forma\nAAAAMMDD, con 8 caracteres. El formato por defecto para introducir fechas en Visual Fox Pro es\nLógico : Campo lógico : Almacenan un tipo especial de información, sólo permiten almacenar\nverdadero o falso y acepta sólo los caracteres : T (verdadero) o F (falso).\nMemo : Campo Memo : Permite almacenar textos largos, como una descripción o un breve resumen.\nVisual Fox Pro se maneja mediante ventanas. Las\nventanas de Visual Fox Pro tienen todas una serie de controles que son comunes.\nPara aumentar el tamaño de una ventana y que ocupe toda la pantalla, hacer click en , o\ncon teclado pulsar Control + F10.\nVENTANAS EN VISUAL FOX PRO\nEl uso de esta ventana permite introducir comandos equivalentes a la utilización del\nsistema de menúes, pero de una forma más rápida. También permite introducir una serie de\ncomandos SET para personalizar VISUAL FOX PRO durante una sesión de trabajo.\nTodos los comandos que se introducen desde la ventana de comandos son memorizados y\npueden repetirse llevando el cursor hasta ellos y dando enter. La nueva orden aparece bajo la\núltima orden introducida en la ventana de comandos.\nSi los comandos que se dieran son de gran tamaño, es aconsejable agrandar el ancho la\nventana de comandos, para facilitar su escritura y lectura posterior. Esto se hace tomando con\nel mouse la línea vertical izquierda o derecha de la pantalla hasta que aparezca una doble\nflecha, entonces se carga el botón izquierdo del mouse y sin soltarlo se deja en la posición\nSi se introduce un comando muy largo, al llegar al final de la ventana el texto va\ndesplazándose automáticamente hacia la izquierda.\nEl Proyecto - Aplicación que se desarrollará en la presente publicación, se tratará del\nSistema de Control de Publicaciones Informáticas elaboradas por el INEI.\nLos tipos de colecciones de las publicaciones informáticas pueden ser:\n• Informática Fácil\n• Cultura Informática\n• Metodologías Informáticas\n• Publicaciones Especiales y\n• Pastillas Informáticas\nCada publicación tiene su código, nombre, número, responsable, tiraje, fecha de publicación, entre\notros rubros, que se verán reflejados en las tablas que se construirán más adelante\n¿De qué elementos constará el Proyecto?\nEste proyecto estará compuesto por:\n* Base de Datos (Testdata.dbc)\n* Tablas ( Mae_publi.dbf, Responsable.dbf, etc).\n* Formularios ( )\n* Menués (Menu2.mpr)\n* Código, entre otros.\n! VAMOS A REALIZAR UN PROYECTO APLICACION !\nTodas estas dudas serán absueltas según\ncomo se vaya avanzando en la aplicación.\nEn la aplicación a desarrollar en la presente\npublicación, la programación es mínima, y predomina\nel uso de asistentes.\nA continuación se detallará cada uno de los elementos de la aplicación:\nTestdata» : Compuesta por la tablas:\n* Mae_Publi (Maestro de Publicaciones, contiene los datos generales de las publicaciones).\n* Responsable ( tabla que contiene los nombres de los responsables y su respectivo código, ejemplo:\nGHP, etc). Sistema de Publicaciones Informáticas\n* Area (tabla que contiene las áreas encargadas de las publicaciones, ejemplo: Dirección Tecnica de\nInvestigación y Desarrollo, entre otros).\n* Publicación (tabla que contiene los diferentes tipos de colecciones informáticas con su respectivo\ncódigo, ejem: Informática Fácil, Cultura Informática, entre otros)\nFormulario : «Mant_mae» : Formulario para el mantenimiento de la tabla mae_publi.\nFormulario «Mant_resp» : Formulario para el mantenimiento de la tabla responsable\nFormulario «Mant_area» : Formulario para el mantenimiento de la tabla areas\nFormulario : «Mant_tipo» : Formulario para el mantenimiento de la tabla publicación\nFormulario : «responsable» : Formulario de las tablas responsable y mae_publi.\nFormulario : «tipo_cole» : Formulario de las tablas publicación y mae_publi\nConsulta: «CONSULTAIF» : Consulta de la tabla mae_publi dado tipo_publi=IF\nConsulta: «CONSULTACI» : Consulta de la tabla mae_publi dado tipo_publi=CI\nConsulta: «CONSULTAPI» :Consulta de la tabla mae_publi dado tipo_publi=PI\n«CONSULTAPE» : Consulta de la tabla mae_publi dado tipo_publi=PE\nReporte: «Report1» : Reporte de la tabla area y mae_publi.\nReporte: «Report3» : Reporte de la tablas mae_publi y responsable.\nReporte: «Report2» : Reporte de la tabla mae_publi.\nProg1 : Programa que realiza la configuración general y llama al menú del proyecto.\nMenú: «Menu2» : Menú principal del Sistema de Publicaciones Informáticas.\nOpcion: «Archivo» Opcion: «Tipos de Publicaciones» Opcion: «Consultas»\nOpcion : «Reportes» Opcion : «Ayuda»\nBmp: imágen de mapa de bit.\nEsta imágen es la que va de fondo en la pantalla principal del\nsistema y es llamada en el programa principal del proyecto.\nSe puede elaborar en Corel Draw, en: Photo Styler, Photo\nShop, entre otros.\nHacer Click en el Menú Archivo, luego seleccionar Nuevo\nDesde la barra de herramientas :\n Hacer un click en el icono\nLuego aparecerá una ventana similar a la que se presenta.\nEn esta ventana seleccionar en "Tipo de Archivo" haciendo click sobre\nel Radio Button "Proyecto"\nLuego click sobre el botón "Nuevo Archivo"\nA continuación, aparecerá una ventana de diálogo WINDOWS 95, para\nespecificar la dirección y el nombre del archivo del nuevo proyecto.\nPara grabar nuestro proyecto, crear un directorio TRABAJOS en el disco duro.\nEn este directorio se grabará todo el proyecto - aplicación.\nPor defecto, Visual FoxPro asigna el nombre: Proy1.pjx.\nLuego, hacer click sobre el botón Guardar.\nEl proyecto creado tendrá la ruta:\nUn proyecto es una colección de archivos, datos, documentos y objetos. Los ítems en el Administrador\nde Proyectos están organizados por grupos, donde el usuario puede examinarlos eligiendo con un click\nsobre una de las lenguetas.\nDespués de haber realizado esta operación aparecerá en\npantalla el Administrador del proyecto creado, este\nadministrador mantendrá activo y listo para ser usado el\nEn el Adminstrador de proyectos se organizará todos los\nelementos que pueda tener el proyecto, tales como: los\nformularios, los reportes, las vistas, la base de datos, la\ntabla, el codigo, entre otros.\nSeleccionando el Directorio de Trabajo\nEl directorio de trabajo es el lugar donde serán guardados por defecto todos los archivos que se\ngeneren durante una sesión de desarrollo en Visual FoxPro.\nLa selección de un Directorio de Trabajo se puede realizar de 2 formas:\n® Desde la ventana de comandos\nescribir la sentencia :\nSet default to C:TRABAJOS\n® Desde el Menú Principal\nIr a"Opciones" del menú "Herramientas".\nElegir la lengüeta (carilla) "Archivos" y hacer\nclick en la fila del "Directorio predeterminado"\nSeleccionar el directorio donde se quiere trabajar.\nLuego click en "Aceptar". Si se quiere guardar esta\nmisma ruta para cuando se vuelva a utilizar Visual\nFoxPro, hacer click en "Establecer como predeter-\nminado" ( ).\nAntes de explicar como crear una base de datos, debe quedar claro que, los términos base de datos y\ntabla no son sinónimos en Visual Foxpro.\nEl término base de datos se refiere a un grupo de datos que almacena información sobre una o más\ntablas (archivos *.DBF).\nLas bases de datos son archivos con extensión .DBC (DataBase Container) que guardan información\nacerca de todas las relaciones y arquitectura de construcción de Base de datos con tablas\nPara crear una Base de Datos seguir los siguientes pasos:\n En la ventana de comandos escribir el comando CREATE\nDATABASE.A continuación aparecerá una ventana similar a la\n Luego, escribir el nombre\nque se desea dar a la base\nde datos. Por defecto, el\nnombre es data1.dbc, pero\npara el proyecto a realizar\nse llamará Testdata.\nA continuación, hacer click\nen guardar y la base de\ndatos ya está creada y\nOtra manera equivalente a usar el comando CREATE DATABASE es a través de la barra estándar\nde Visual Foxpro:\nLuego elegir Base de Datos y hacer un click en el botón New\nArchivo ( )\nA continuación aparecerá una ventana solici- tando el\nnombre de la nueva base de datos.\nComo ya se ha mencionado antes, el nombre de la base de\ndatos que se usará en el proyec- to «Sistema de\nPublicaciones Informáticas» será "Testdata.dbc".\nFinalmente, hacer click en guardar y la\nbase de datos Testdata.dbc ya estará\ncreada y activa.\nPara crear una base de datos dentro de un proyecto, seguir los siguientes pasos:\nEn el Administrador de Proyectos, seleccionar la ficha Datos, luego "Bases de datos" y después\nADICIONAR LA BASE DE DATOS AL PROYECTO\nSi se ha creado la Base de datos con el comando CREATE DATABASE, la Base de datos no pasa a\nformar parte del proyecto, aún cuando esté abierto.\no En el Administrador de Proyectos seleccionar la carilla "Datos", a\ncontinuación elegir Bases de datos, y hacer click en Agregar.\no A continuación aparecerá la pantalla abrir , en la cual se ha de elegir\nla base de datos que se va a agregar. Para el proyecto que se está realizando será Testdata.\no Luego hacer un click en Àceptar, y la base de datos se agregará al\nLa creación de una base de datos implica la creación de tablas. Al crear las tablas deberá indicar los\ncampos, los tipos de datos, los posibles valores predeterminados para cada campo, los\ndescencadenantes para cada tabla y los índices que se utilizan para establecer las relaciones entre\nEs posible crear una tabla en una base de datos, o bien una tabla libre no asociada a ninguna base. A\nmedida que se crea la tabla, se puede crear nombres largos de tabla y de campo, y también\naprovechar las posibilidades de diccionario de datos para tablas de base de datos, nombres largos de\ncampo, valores de campo predeterminados, reglas a nivel de campo, y descencadenantes.\nPARA CREAR UNA NUEVA TABLA , seguir los siguientes pasos:\nEn el Administrador de proyectos seleccionar una base de datos, elegir "Tablas" y luego "Nuevo" para\nabrir el Generador de tablas.\n- O tambien -\nUtilice el comando CREATE TABLE con una base de datos,\néste abierta o activa.\nAquí se podrá crear una nueva tabla haciendo click en el icono ("Nueva tabla").\nPARA CREAR UNA NUEVA TABLA LIBRE\nEn el Administrador de Proyectos, seleccionar "Tablas libres" y luego "Nueva" para abrir el Generador\nAl crear una tabla, Visual FoxPro asigna por defecto un nombre de tabla como Tabla1.dbf y solicita\ningresar un nombre y guardarlo.\nContinuando con el proyecto, se creará una de las tablas en la base de datos "testdata.dbc" será\n"publicaciones.dbf", cuya estructura se encuentra en la siguiente hoja.\nAqui aparecerá el diseñador de tablas, en el que se digita el campo, tipo y ancho de cada campo.\nESTRUCTURA DE LAS TABLAS PARA EL PROYECTO\nA continuación se da a conocer las estructuras de las tablas a crear en la base de datos testdata las\nmismas que deben crearse de la misma forma que la tabla publicación explicada en el ejemplo\nEstructura de la Tabla Publicación\nNombre Tipo Ancho Descripción\ntipo_publi carácter 3 código del tipo de colección a la que pertenece la\ncolección Carácter 50 nombre de la colección a la que pertenece la\nIndice : tipo de llave Campo\nkey1 llave principal Tipo_publi\nEstructura de la Tabla Responsable\ncodi_resp carácter 3 código del responsable de la publicación\nresponsable carácter 30 nombre del responsable\nkey1 llave principal codi_resp\nEstructura de la Tabla Area\ncodi_area Carácter 2 código del área\nnom_area Carácter 60 nombre del área a la que pertenece el responsable\nkey1 Llave principal codi_area\nEstructura de la Tabla Mae_publi\ncodi_publi Carácter 5 código de la publicación\ntipo_publi Carácter 3 tipo de colección de la publicación\nnomb_publi carácter 50 nombre de la publicación\nnum_publi carácter 3 número de la publicación\nfecha_publi fecha 8 fecha de la publicación\ncodi_area carácter 2 código del área responsable\ntiraje numérico 4 tiraje de la publicación\nkey1 llave principal codi_publi\nkey2 llave normal codi_resp\nkey3 llave normal codi_area\nkey4 llave normal tipo_publi\nCreando Indices y Relaciones entre las Tablas\nAl momento de crear una tabla en el diseñador de tablas, dar click en la pestaña indices, e ingresar el\nnombre del indice, el tipo y el campo de expresión, todo ésto según la estructura dada de cada tabla.\nA continuación se muestra el diseñador de Bases\nde Datos con las respectivas tablas e indices.\nCREACION DE UNA RELACION ENTRE TABLAS\nPara crear las relaciones entre las tablas creadas, seguir los siguientes pasos:\nEn el diseñador de base de datos, elegir el nombre del índice que se desea relacionar y arrastrarlo\nhasta el nombre del índice de la tabla relacionada.\nPara el proyecto que se está desarrollando, tenemos en la tabla maestra mae_publi tres indices\nnormales:key2, key3, key4 los que se relacionaran con las tablas: responsable, área y publicación\nLuego, por ejemplo: Para la relación tabla responsable con mae_publi, cuyo campo en común es\ncodi_resp, seleccionar el indice key1 de la tabla responsable, y arrastrarlo hasta el indice key2 de la\ntabla mae_publi, estableciendo así una relación de uno a muchos entre ambas tablas.\nEsta relación quiere decir: Si existe en la tabla mae_publi un código de responsable, luego de la\nrelación hecha se podrá saber el nombre del responsable, que se encuentra en la tabla responsable.\nDe la misma forma realizar las relaciones entre las demás tablas:\nNombre de tabla indice Nombre de tabla indice campo común\ntabla area key1 con la tabla mae_publi key3 codi_area\ntabla publicación key1 con la tabla mae_publi key4 tipo_publi\nBase de datos Testdata, con todas\nMae_publi --> area\nMae_publi --> publicación\nMae_publi --> responsable.\n¿Cómo crear Formularios?\nUn formulario contiene controles para mostrar y modificar datos. Los formularios pueden estar\ncontenidos dentro de un conjunto de formularios.\nEn el ejemplo de Proyecto, existen 7 formularios, 4 de los cuales son de una sóla tabla y 3 de dos\nCREACION DE UN FORMULARIO CON EL ASISTENTE PARA FORMULARIOS\nSi se desea crear un formulario nuevo, se puede utilizar un Asistente para formularios. El asistente\nplantea una serie de preguntas y genera un formulario basado en las respuestas.\nPara crear un formulario (ejemplo:mant_publi, de la tabla de mae_publi),con el asistente para\nformularios, seguir los siguientes pasos:\n1. En el Administrador de proyectos, seleccionar la ficha Documentos y, a continuación,\n2. Elegir «Nuevo».\n3. Elegir el botón «Asistente para formularios».\n4. Seleccionar el tipo de formulario que se desea crear.\n5. Seguir las instrucciones que aparecen en las pantallas del asistente.\nLos formularios que se crean con los asistentes tienen una serie de botones de desplazamiento\nestándar para que se puedan ver los distintos registros del formulario, modificarlos, buscarlos, etc.\nEl Asistente para formularios crea un formulario para introducir datos a partir de una única tabla. El\nasistente plantea preguntas sencillas a medida que se recorre una breve serie de pasos, en los cuales\nespecifica la tabla y los campos que se desea utilizar para crear controles que aparecerán en el\nformulario. El tamaño del formulario está basado en la configuración de «área máxima de diseño»\nespecificada en la ficha Formularios, del cuadro de diálogo Opciones.\nPaso 1 - Seleccionar campos.\nSi se ha elegido la opción , sólo puede seleccionar campos de una tabla o una\nPaso 2 - Estilo.\nAl hacer click en cualquiera de los estilos mostrados en el cuadro «Estilo», el asistente mostrará una\nimagen en la lupa como ejemplo de dicho estilo.\nEl tipo de botón se aplica a los botones de desplazamiento por el formulario. Los botones de\ndesplazamiento que crea el asistente en el formulario son:\nPrimero Mueve el puntero de registro al primer registro.\nAnterior Mueve el puntero de registro un registro hacia atrás.\nSiguiente Mueve el puntero de registro un registro hacia adelante.\nÚltimo Mueve el puntero de registro al último registro.\nBuscar Muestra el cuadro de diálogo Buscar.\nImprimir Imprime un informe (Reportes).\nAgregar Agrega un nuevo registro al final de la tabla.\nEditar Permite al usuario cambiar valores del registro actual.\nEliminar Elimina el registro actual.\nSalir Cierra el formulario.\nNota : Una vez que el asistente guarde un formulario, se podrá agregar campos\nadicionales utilizando los mismos estilos, si selecciona Formulario rápido, en el menú\nTodos los controles creados por el Asistente para formularios y el Generador de formularios se\nencuentran en WIZARDSWIZSTYLE.VCX.\nSi se desea modificar los estilos, modificar las clases de este archivo.\nPaso 3 - Orden\nSeleccionar los campos en el orden en que se desee ordenar los registros.\nPaso 4 - Finalizar\nDespués de guardar el formulario, se puede abrir y modificar posteriormente como cualquier otro\nformulario en el Generador de formularios.\nEl formulario generado, puede\nmodificarse, ejecutarse o guardarse.\nDe la misma forma, crear los formularios de mantenimiento de las tablas responsable, publicación y\nárea. La única variación sería, la selección de botones con imágen o texto, según corresponda (ver\nimagenes de la página 17 y 18).\nPero este proceso, sólo se realiza cuando se crea un formulario con una tabla, ahora veremos los\npasos para realizar un formulario con dos tablas.\nPASOS PARA CONSTRUIR UN FORMULARIO CON UN ASISTENTE DE UNO A VARIOS\n(Formulario, con 2 tablas Ejem: responsable).\nPaso 1 - Campos de la tabla primaria.\nSólo puede seleccionar campos de una tabla o una vista.\nPaso 2 - Campos de la tabla secundaria.\nPaso 3- Relación.\nPara obtener más información sobre las relaciones, ver Preparación de relaciones entre tablas.\nPara el ejemplo, las tablas mae_publi y responsable están relacionadas por el campo codi_resp\n(código del responsable de la publicación).\nPaso 4- Estilo.\nCuando se hace click en cualquiera de los estilos, aparece el cuadro «Estilo». El asistente mostrará\nuna imagen en la lupa como ejemplo del estilo.\nEl tipo de botón se aplica a los botones de desplazamiento del formulario. Los botones de\ndesplazamiento que crea el asistente en su formulario son los siguientes:\nAnterior Mueve el puntero de registro al registro anterior.\nSiguiente Mueve el puntero de registro al registro siguiente.\nImprimir Imprime un informe.\nModificar Permite al usuario cambiar valores en el registro actual.\nNota: Después que el asistente guarde un formulario, se puede agregar\ncampos adicionales utilizando los mismos estilos, si selecciona Formulario\nrápido, del menú formulario.\nTodos los controles creados por el Asistente para formularios y el Generador de formularios están en\nWIZARDSWIZSTYLE.VCX. Si se desea modificar los estilos, hay que modificar las clases de este\nPaso 5 - Orden\nSeleccionar los campos en el orden en que se desee ordenar los registros en la tabla primaria.\nPaso 6 - Finalizar\nDespués de guardar el formulario con el asistente, se puede abrir y modificar como cualquier otro\nEn una aplicación, puede haber varios formularios. Esto es de acuerdo a la cantidad de\nconsultas que se haga a una o a varias bases de datos.\nDe la misma forma, crear los formularios, correspondientes a consulta por tipo de publicación y\nPara crear las consultas (ejemplo: consultaif, consultaci, consultape y consultapi), seguir los\n1. En el Administrador de proyectos,\nseleccionar la ficha Datos y, a continuación,\n3. Elegir el botón «Asistente para\n4. Seguir las instrucciones que aparecen en\nlas pantallas del asistente.\nLas consultas son búsqueda directas a la base de\ndatos, dada una condición.\nPara el ejemplo la condición será: Que el campo\ntipo_publi de la tabla mae_publi sea igual a IF\nAsí la consulta final, luego de seguir los pasos del\nasistente para consultas será:\nSeleccionar campos de una tabla, en este caso seleccionar todos los campos con la flecha doble\nsituada a la derecha de campos disponibles.\nEn este caso como las tablas ya estan relacionadas, según las estructuras de los indices indicados\nanteriormente, el paso siguiente es el Paso 3 de filtro de registro. En este paso se indica la condicion,\npara este caso el campo MAE_PUBLI.TIPO_PUBLI debe ser igual que IF.\nPaso 4 - Ordenar registros\nEn este paso se indica cuál es el campo por el cual se va a realizar el ordenamiento.\nPaso 4a -Limitar registros\nEn este paso se indica el deseo de limitar la consulta, en este y en todos los casos del proyecto de\n«Publicaciones Informáticas» no se limita las consultas a ninguna tabla.\nAl llegar a este paso, la vista está casi hecha, para verificar los datos dar click en presentación\npreliminar, sino hacer un click en finalizar y la consulta estará disponible para ser colocada en una\nDe la misma manera, realizar las consultas de la tabla mae_publi cuando tipo_publi sea igual a CI,\nPE, PI (Cultura Informática, Publicaciones Especiales o Pastillas Informáticas).\n¿Cómo crear los Informes (Reportes)?\nPara crear un informe de una sóla tabla como el de la figura siguiente, usar un Asistente para\ninformes y seguir los siguientes pasos:\n1. En el Administrador de proyectos, seleccionar\n2. Elegir "Nuevo".\n3. Elegir "Asistente para informes".\n4. Elegir el tipo de informe que se quiere crear.\n5. Seguir las instrucciones de las pantallas del\nEl Asistente para informes crea informes usando una única tabla. El asistente le plantea preguntas\nsencillas a medida que se recorre una breve serie de pasos en los que especifica la tabla y los\ncampos que se desea utilizar para crear controles en el informe.\nPaso 1 - Seleccionar campos\nPaso 2 - Estilo\nAl elegir cualquiera de los estilos, el asistente actualizará el gráfico de la lupa como ejemplo del estilo.\nAl especificar un número de columnas o seleccionar una opción de distribución, el asistente\nactualizará el gráfico de la lupa como ejemplo de la selección.\nPaso 4 - Orden\nSi el número de campos seleccionados no cabe en una sola línea dentro del ancho del informe, los\ncampos se ajustarán automáticamente a la línea siguiente. Si no se desea que los campos se ajusten\nautomáticamente, desactivar la opción «Ajustar los campos que no quepan».\nDespués de guardar el informe, se puede abrir y modificarse como cualquier otro informe en el\nASISTENTE PARA INFORMES UNO A VARIOS\nEl Asistente para informes uno a varios crea un informe que agrupa los registros de una tabla primaria\ncon los registros de una tabla secundaria.\nEl asistente le plantea preguntas sencillas a medida que se\ncorre una breve serie de pasos en los que especifica la\ntabla y los campos que se desea utilizar para crear\ncontroles en el informe.\nPara el ejemplo a seguir se desarrollará un informe de uno\na varios con las tablas publicación y mae_publi. De la\nmisma forma crear los informes para la consulta por áreas.\nPaso 1 - Campos de la tabla primaria\nPaso 2 - Campos de la tabla secundaria\nSólo se puede seleccionar campos de una tabla o una vista.\nPaso 3 - Relación Para obtener más información sobre las relaciones, ver Preparación de relaciones\nPaso 5 - Estilo\nCuando se hace click en cualquiera de los estilos, el asistente actualizará el gráfico de la lupa como\nejemplo de dicho estilo.\nSi el número de campos seleccionados no cabe en una sola línea dentro del ancho del informe, se\najustarán automáticamente a la línea siguiente. Si no se desea que los campos se ajusten\nautomáticamente, desactivar la opción «Ajustar los campos que no quepan». Después de guardar\nel informe, puede abrir y modificarse como cualquier otro informe en el Generador de informes.\n En el administrador de proyectos, seleccionar la carilla\nOtros, y a continuación seleccionar Nuevo.\nElegir Menú y a continuación aparecerá el diseñador de\nIndicador : permite especificar los títulos de menú y los elementos de menú de su sistema de menús.\nControl Mover : Este es el botón con la flecha de doble punta que aparece a la izquierda de la\ncolumna "Indicador". Permite una colocación visual de los elementos de menú en tiempo de diseño.\nAcción : Le permite especificar la acción que ocurre cuando elige el título de menú o el elemento de\nmenú. Por ejemplo, puede ejecutar un comando, abrir un submenú, o ejecutar un procedimiento.\nCrear : Le permite especificar un submenú o procedimiento para un título de menú o elemento de\nEditar : Le permite cambiar un submenú o procedimiento asociado con un título de menú o elemento\nOpciones : Muestra el cuadro de diálogo Opciones de la acción, en el cual puede definir el método\nabreviado de teclado y otras opciones de menú. Nivel de menú Le permite elegir el menú o submenú\ncon el que desea trabajar.\nPara usar teclas rápidas en el campo indicador digitar < antes de la tecla rápida.\nINSERTANDO MENUS DEL SISTEMA\nComo se puede apreciar en el submenú del menú archivo se aprecia opciones del menú del sistema,\npara lograr ésto hacer un click en la opción insertar barra del diseñador de menús y escoger la opción\ndeseada. Luego dar un click en insertar y el comando se colocará en el rubro acción del diseñador de\nDe la misma forma, insertar barra de sistema para la opción cerrar y salir del menú archivo, y las\nopciones del menú ayuda.\nEJECUTANDO COMANDOS EN LAS OPCIONES DEL SUBMENU\nLas opciones del submenú pueden acceder a otro submenú, a un procedimiento, a un comando o a\nuna barra del sistema.\nPara el submenú de Tipo de publicaciones, las opciones del submenú hacen referencia a las\nconsultas creadas anteriormente, ejemplo: consultaci (consulta de la colección cultura informática),\npara lo cual se debe de escoger una línea de comando y digitar:\nPara informática fácil, digitar el comando:\nPara pastillas informática, digitar el comando:\nPara publicaciones especiales, digitar el comando:\nPara el submenú de Consultas, las opciones del submenú hacen referencia a los formularios de uno\na varios creados anteriormente, ejemplo: responsable, tipo_cole, cons_area.\nPara la opción Por Tipo de Publicación, digitar el comando:\nPara la opción Por Area digitar el comando:\nPara el submenú de Reportes, las opciones del submenú hacen referencia a los informes creados\nanteriormente, ejemplo: report1, report2, report3\nreport formreport1.frx preview\nPara la opción Por Responsable, digitar el comando:\nreport formreport3.frx preview\nPara el submenú de Mantenimiento de Tablas, las opciones del submenú hacen referencia a los\nformularios creados con el asistente para formularios, tales como: mant_mae, mant_tipo, mant_areas,\nPara la opción Maestro de Publicacioes, digitar el\nPara la opción Tabla de Tipo de Publicación, digitar el\ndo form mant_tipo\nPara la opción Tabla de Area digitar el comando: do formmant_area\nPara la opción Tabla de Responsables digitar: do formmant_resp\nPara la opción Ayuda del menú principal, se procede de la misma\nforma «INSERTAR MENUS DEL SISTEMA», ya descrito\nEstando en la opción modificar del menú, aparecerá en el menú principal un menú llamado Menú y una\nde sus opciones será la de generar menú.\nA continuación aparecerá una pantalla similar a la siguiente. Para generar el\nmenú, hacer un click en el botón generar.\n¿Cómo crear el Código o Programa?\nEn el Administrador de Proyectos, seleccionar la carilla Código, y hacer un click en«nuevo»,\nluego digitar el código que permita limpiar variables, setear el directorio de trabajo por defecto, llamar\na la pantalla principal y principalmente ejecutar el menú del proyecto aplicación que ses esta\nEste código que está digitado es el nexo entre los elementos creados anteriormente (como\nformularios, reportes, consultas, etc) y la aplicación desarrollada, ya que todos los elementos estan\nsiendo llamados desde las diferentes opciones del menú.\nPara el desarrollo de la aplicación ejemplo que se ha desarrollado a lo largo de esta publicación, este\nes el único codigo necesario. Al ejecutar este programa se ejecutará el menú en un fondo\npredeterminado (fondo2.bmp) referido en el programa prog1.\nPara ejecutar la aplicación, bastará con seleccionar el programa\nrealizado (prog1) y hacer un click en la opción del\nCon esta opción se ejecuta la aplicación en Visual FoxPro, pero para\nejecutar la aplica- ción en un ambiente diferente a Visual Foxpro hay\nque crear un ejecutable.\nPara la creación del ejecutable de un proyecto - aplicación, es necesario seguir los siguientes pasos:\nEstablecer como principal el programa donde se ha invocado al menú y se ha escrito el resto de\ncódigo. Para el ejemplo es el prog1.\nPara establecer como principal a un programa, hacer un click derecho cuando el cursor este situado\nA continuación aparecerá un menú emergente con opciones,\ntal como muestra la figura.\nHacer click en establecer como principal y se marcara un\nLuego hacer un click en la opción «Generar» del\nAntes de generar el ejecutable de una aplicación se debe\nprimero « Volver a generar el proyecto ».\nA continuación Generar la aplicación. (Por defecto toma el mismo nombre con extensión APP.\nLuego de haber generado la aplicación y verificado que las\nopciones del proyecto estén correctas, se procedera a generar\nEl ejecutable toma por defecto el mismo nombre de la\naplicación, pero con extensión exe.\nPara generar el ejecutable, dar un click en la opción «Generar» del Administrador de Proyectos y\nmarcar la opción «Generar Ejecutable». A continuación se creará el ejecutable y correrá la\nEl Administrador de Proyectos permite compilar la aplicación completa, pero en la fase de desarrollo\nde la aplicación. Además facilita el diseño, la modificación y la ejecución de los componentes\nindividuales de su aplicación.\nUSOS Y BENEFICIOS DEL ADMINISTRADOR DE PROYECTOS\nCuando se utilice el administrador de proyectos, se podrá realizar las siguientes operaciones :\nModificar y ejecutar partes de su aplicación (formularios, menúes, programas).\nArrastrar clases, tablas y campos, desde el Administrador de Proyectos hasta el generador de\nformularios o el generador de clases.\nArrastrar clases entre bibliotecas de clases.\nVer y modificar fácilmente sus tablas y bases de datos.\nAgregar descripciones para los componentes de su aplicación.\nArrastrar y colocar elementos entre proyectos.\nVENTANA: ADMINISTRADOR DE PROYECTOS\nEl Administrador de Proyectos, como ya se ha mencionado anteriormente, sirve para organizar y\nadministrar los archivos de proyecto.\nUn proyecto es una colección de archivos, datos, documentos y objetos de Visual FoxPro, que se\nguarda como un archivo con extensión .PJX. Al archivar el Administrador de Proyectos, aparece la\nopción Proyecto en la barra de menú de Visual FoxPro.\nEl Administrador de Proyectos muestra un árbol con los elementos que contiene. Este árbol puede\nexpandir o contraer las ramas. Junto a los símbolos de tipos de elementos que contienen uno o más\nelementos, aparece un signo más (+). Para ver una lista de los elementos de un tipo determinado\n(expandir), hacer click sobre el signo más (+). Para contraer una lista expandida, hacer click sobre el\nsigno menos (-).\nAl igual que las barras de herramientas, se puede reducir el Administrador de Proyectos, arrastrándolo\nhasta la parte superior de la pantalla o haciendo doble click sobre la barra de título. Al reducirlo, todas\nlas listas se contraen automáticamente y sólo se muestran las fichas.\nMuestran los elementos agrupados por categorías. Al contraer el Administrador de Proyectos puede\neliminar las fichas, arrastrándolas fuera del administrador. Para volver a colocar una ficha, arrástrela\nde nuevo a su posición original, o bien, hacer click sobre el cuadro Cerrar.\nBotón de expansión/contracción\nExpande y contrae el Administrador de Proyectos. Al contraer el Administrador de Proyectos, puede\neliminar las fichas colocando el puntero del mouse (ratón) sobre la ficha que desea eliminar y\narrastrándola fuera del administrador.\nLISTAS DEL ADMINISTRADOR DE PROYECTOS\nEl Administrador de Proyectos muestra una lista, en forma de árbol, de los elementos que contiene el\nproyecto. A la izquierda de los elementos aparecen los iconos que identifican el tipo de elemento.\nAl generar el proyecto, todos los archivos que están incluidos en él se compilan en un solo archivo\n.APP. Todos los archivos incluidos son de sólo lectura en tiempo de ejecución. En el grupo de\nprogramas, formularios, consultas o menúes, aparece el símbolo un círculo negro sólido, junto al\narchivo del programa principal.\nCrea un archivo u objeto nuevo. Este botón hace lo mismo que el comando Archivo nuevo (menú\nProyecto). El nuevo archivo u objeto será del mismo tipo que el elemento actualmente seleccionado.\nNota: Los archivos creados desde el menú Archivo no serán incluidos automáticamente en un proyecto. En cambio, los archivos\ncreados con el comando Archivo nuevo del menú Proyecto (o el botón «Nuevo» del Administrador de Proyectos) sí se incluyen\nautomáticamente en el proyecto\nAgrega un archivo existente al proyecto. Este botón hace lo mismo que el comando\nAgregar archivo, del menú Proyecto.\nAbre el elemento seleccionado en el generador apropiado. Este botón hace lo mismo que\nel comando Modificar archivo, del menú Proyecto.\nCierra una base de datos abierta. Este botón hace lo mismo que el comando Cerrar archivo, del menú\nProyecto, y está disponible únicamente, cuando selecciona una tabla. Si la base de datos\nseleccionada está cerrada, el botón Cerrar se convierte en Abrir.\nAbre una base de datos. Este botón hace lo mismo que el comando Abrir archivo del menú Proyecto,\ny está disponible, únicamente, cuando selecciona una tabla. Si la base de datos seleccionada ya está\nabierta, el botón Abrir se convierte en Cerrar.\nEliminar o quitar\nElimina del proyecto el archivo u objeto seleccionado. Visual FoxPro le pregunta si sólo desea\neliminarlo del proyecto o si desea eliminarlo del proyecto y del disco. Este botón hace lo mismo que el\ncomando Eliminar archivo, del menú Proyecto.\nGenera un proyecto o una aplicación o, sólo en la Edición Profesional, puede generar un archivo\nejecutable (.EXE). Este botón hace lo mismo que el comando Generar, del menú Proyecto.\nEjecuta la consulta, el formulario, el menú o el programa seleccionado. Este botón está disponible,\núnicamente, al seleccionar una consulta, un formulario, un menú o un programa en el Administrador\nCARILLAS DEL ADMINISTRADOR DE PROYECTOS\nEl Administrador de Proyectos cuenta con 6 Tabs (carillas o lengüetas).\nEsta primera carilla (Todos) tiene el contenido de las siguientes 5 carillas o lenguetas.\nLa carilla datos contiene:\nGuarda archivos de bases de datos (.dbc) y mantienen enlazados archivos de\nGuarda archivos de tablas (.dbf) que no están vinculados con bases de datos.\nGuardan archivos de consultas (.qpr). Quizá desee crear consultas por varias razones: para organizar\nla información de un informe, responder a una pregunta rápida o ver cualquier subconjunto importante\nCARILLA DE DOCUMENTOS\nGuarda archivos de formulario (.srx). Un formulario es una clase contenedora. Una colección de una o\nmás páginas que se comporta como una ventana o un cuadro de diálogo estándar. Un formulario\ncontiene controles para mostrar y modificar datos. Los formularios pueden estar contenidos dentro de\nun conjunto de formularios.\nGuarda archivos de etiquetas (.lbx). Una etiqueta viene a ser cualquiera de las entradas de índice\ncontenidas en un archivo de índice compuesto.\nGuarda archivos de informes (con extensión .frx). Un informe presenta el resultado de una consulta de\ntabla y consta del encabezado de página, el cuerpo del informe y el pie de página.\nCARILLA CLASES ( )\nGuarda archivos de clases (.vcx). Una clase es una plantilla que define las características de un\nobjeto y describe qué apariencia y comportamiento debe tener el objeto.\nCARILLA CODIGOS ( )\nSon archivos de programación (.prg). Un archivo de programación consta de líneas escritas en código\nque mantienen una estructura secuencial procedural.\nGuardan archivos de librerías de FoxPro (.fll). El API de Visual FoxPro contiene comandos que\npermiten a las rutinas de C y lenguaje ensamblador interactuar con Visual FoxPro.\nGuardan archivos de aplicación y tienen una extensión .APP. Una aplicación es una colección de\nprogramas, formularios, menúes y otros archivos de Visual FoxPro que se compilan en un único\nprograma. Las aplicaciones se crean con el Administrador de proyectos.\nGuarda archivos de menú (.mnt, .mnx). Un menú es una lista de elementos, como comandos y\nnombres de archivos, que aparecen al elegir un título de menú en la barra de menúes.\nArchivos de texto Guarda archivos de texto (.txt). Un archivo de texto es cualquier documento escrito\nen código ASCII y guardado con extensión .txt.\nOtros archivos Vincula archivos de imagen (.bmp).\nComo se ha mencionado antes, el término base de datos se refiere a un grupo de datos que\nalmacena información sobre una o más tablas (archivos *.DBF). Sus conceptos son totalmente\ndiferentes. En este punto se tratará la eliminación de una base de datos de un proyecto, la descripción\nde la barra de herramientas de su generador, conceptos complementarios sobre tablas, relaciones e\nELIMINAR UNA BASE DE DATOS DE UN PROYECTO\nPara eliminar una base de datos, desde el Administrador de Proyectos,\nseleccionar la Base de datos y hacer un click en "Quitar" y luego\nseleccionar "Quitar" de nuevo, si se quiere eliminar del proyecto y\n"Eliminar" si se quiere eliminar del disco duro.\nDESCRIPCION DE LA CAJA DE HERRAMIENTAS DEL GENERADOR DE LA BASE DE DATOS\nAgrega una nueva tabla a la Base de datos abierta y muestra el generador de tablas.\nAgrega una tabla libre o de otra Base de datos a la Base de datos abierta.\nQuita una tabla de la Base de datos o la elimina del disco.\nGenera una vista remota vía ODBC u otras conexiones con Bases de datos.\nGenera una vista local con la actual Base de datos u otras en el disco.\nModifica una tabla abriendo el generador de tablas para la tabla seleccionada.\nExamina los datos de una tabla seleccionada abriendo una ventana Browse.\nAbre el editor de texto de Visual FoxPro para definir procedimientos almacenados.\nCaja de Herramientas del Generador de Base de\nContinuando con el ejemplo, la primera tabla en la base de datos "testdata.dbc" será\nAqui aparecerá el generador de tablas\nEL GENERADOR DE TABLAS\nEl generador de tablas consta principalmente de tres hojas :\nConsta de cinco columnas :\nNombre : Aquí se escribe el nombre del campo que identifica la columna que contendrá al dato. Si la\ntabla pertenece a una base de datos permitirá el ingre- so de nombres largos, de lo contrario sólo\naceptará hasta 10 caracteres.\nTipo : Se especifica el tipo de dato que contendrá dicho campo. Visual FoxPro guarda un conjunto de\ntipos de datos predefinidos en una lista desplegable.\nAncho : Identifica la medida en ancho que tendrá el campo.\nDecimal : Cifras decimales que contendrá el número en caso de no ser entero.\nNULL : Activar con un click sobre el botón en caso de permitirle al campo guar- dar valores nulos\n(valores en blanco).\nConsta de cuatro columnas :\nNombre: Aquí se ingresa el nombre del índice que se crea sobre la tabla.\nTipo: Muestra una lista desplegable con los tipos de índice definidos por Vi- sual FoxPro.\nExpresión: Nombre del campo sobre el que se quiere aplicar el índice. Haciendo click sobre el botón\nde su derecha se abrirá el generador de expre- siones. Aquí, hacer doble click sobre el nombre del\ncampo en la lista "Campos" para seleccionar la expresión y ésta aparecerá sobre el cuadro de edición\n"Ex- presión", luego click en aceptar.\nFiltro: Hacer click sobre el botón de su derecha para abrir el Generador de expresiones y construir las\nrestricciones de índice sobre el cuadro de edición "Expresión". Se puede hacer uso de las funciones y\nvariables de Visual FoxPro para construir el filtro del índice.\nStatistics: Aqui aparecerán las estadísticas de la tabla, tales como: la ruta de la tabla activa, el\nnúmero de registros, campos y longitud.\nAl crear una nueva tabla aparecerá una ventana que espera una elección so- bre la forma en que se\nva a crear una tabla\nEl asistente consta de cuatro pasos en los cuales estará definiendo las características de la tabla. El\nmodo de uso y características del asistente es muy simple para la construcción de la tabla, sólo seguir\nINDICES O TAG\nEn versiones anteriores del VISUAL FOXPRO había que distinguir entre índices estructurales y no\nestructurales. La diferencia residía en que los primeros se abrían automáticamente con la tabla y\nademás tenían el mismo nombre que la tabla. Ahora todos son estructurales.\nA un índice que está dentro de un archivo de índices, también se le\ndenomina tag y como tal, se le encuentra en varias instrucciones. Por\ntanto, es indistinto hablar de tag o de índice.\nPara crear un tag no tenemos mas que ir a la página de índices en la\nventana de la estructura de una tabla. Ahí se deberá indicar el nombre con\nel que esta referiendo a él (KEY1), el tipo de índice que es, el campo o la\nconcatenacion de campos ( indices compuestos) que lo forman, y por\nultimo, una condicion de filtraje.\nSi no se van a usar relaciones permanentes (persistentes), lo más aconsejable, es crear indices normales, ya que los demás no hacen\nmas que complicar el manejo de los datos. En las aplicaciones ya se evitará que se produzcan valores duplicados. Por ejemplo, es\nposible crear dos registros en blanco con un índice principal o candidato, ya que saltaría error, y también se produciría cuando tenemos\ndos claves iguales aunque uno de los registros esté borrado lógicamente. Tendría que eliminarlo físicamente o utilizar un filtro para\ntrabajar sólo con los no borrados\nEn una tabla dependiente se dispone de cuatro tipos de índice, mientras que en una tabla libre sólo\nlos dos que se enumeran en primer lugar.\nNormal : Es el índice clásico. Permite cualquier valor en la clave, esté repetido o no. Es el\nUnico : Semejante al normal. Sin embargo, en el caso de que haya más de una clave\nrepetida, sólo se tiene en cuenta la que se entrodujo en primer lugar. Tiene poca utilidad y\nes un tipo de índice que prácticamente no se usa.\nPrincipal : Impide que existan claves repetidas provocándose un error en Visual Fox Pro (sólo puede\nhaber un índice principal).\nCandidato : Es exactamente igual que el anterior. Su sentido reside en que como sólo puede haber\nun índice principal, todos los demás deben ser candidatos, a serlo.\nRELACIONES PERSISTENTES EN EL GENERADOR DE BASES\nEntre tablas de una base de datos, es posible crear relaciones persistentes.\nLas relaciones persistentes son relaciones entre tablas de una base de datos que se almacenan el\narchivo de la Base de datos y tienen la siguientes características:\nSe utilizan como condiciones de combinación predeterminadas en los Generadores de consulta y\nSe representan en el generador de bases de datos como líneas que relacionan los índices de las\nAparecen en el Generador de entorno de datos como relaciones predeterminadas para los formularios\nSe utilizan para almacenar información de integridad referencial.\nEn Visual FoxPro se utilizan los índices para establecer las relaciones persistentes entre las tablas de\nuna base de datos. La relación se define entre los índices, y no entre los campos.\nCREACION DE UNA RELACION PERSISTENTE ENTRE TABLAS\nEn el Generador de base de datos, elegir el nombre del índice que se desea relacionar y arrastrarlo\nSi se examinase el esquema de la base de datos, en el Generador de base de datos, se vería una\nlínea que une "mae_publi" y "área", lo que representa la nueva relación persistente.\nEl tipo de etiqueta o clave de índice determinará el tipo de relación persistente que se puede crear. Es\nnecesaria una etiqueta de índice principal o candidato para el lado "uno" de una relación de uno a\nvarios : por el lado de "varios" se debe utilizar una etiqueta o clave de índice normal.\nBase de datos Testdata, con todas sus relaciones.\nELIMINANDO UNA RELACION PERSISTENTE ENTRE TABLAS\nEn el Generador de bases de datos, hacer un click en la línea de relación entre las dos tablas.\nEl ancho de la línea aumentará para indicar que se ha seleccionado la relación. Luego presionar la\nLa integridad referencial consiste en que los datos contenidos en la tabla madre e hija en una relación,\nno tengan incoherencias, o lo que es lo mismo, que sean concordantes entre sí. Para que esto\nsuceda, hay tres aspectos que se deben controlar:\n1) Modificación del Campo Clave.\n2) Eliminación de un registro en la tabla madre.\n3) Insersión de un nuevo registro en la tabla hija.\nEn estas tres premisas se basa el mantenimiento de una relación. Si se da doble click sobre la línea\nde unión entre las dos tablas relacionadas, se accederá a la ventana informativa de dicha relación.\nLuego, hacer un click en el botón integridad referencial para ingresar a la definición de la integridad\nreferencial para la relación seleccionada, en la cual se podrá adecuar de acuerdo a las necesidades\nLos formularios muestran los campos y los registros de las tablas y las vistas, y\nsuelen incluir controles de desplazamiento para ayudar a moverse de un registro\nEn Visual FoxPro se puede crear formularios de tres formas:\nUtilizando los Asistentes para formularios para crear formularios listos para usar.\nEn el menú Formulario, eligiendo Formulario rápido para crear un formulario sencillo que se puede\npersonalizar, agregando sus propios controles.\nUtilizando el Generador de formularios para modificar formularios existentes o para crear sus propios\nCREACION DE UN FORMULARIO CON EL GENERADOR DE\nSi se desea crear un formulario sin utilizar un asistente, se debe usar el Generador de formularios.\nCon el Generador de formularios, se podrá agregar campos y controles al formulario, y personalizarlo\najustando y alineando los controles.\nEl comando Formulario rápido hace que resulte más fácil comenzar a crear un formulario. Este\ncomando muestra el Generador de formularios, que agrega al formulario los campos seleccionados en\ntablas o vistas.\nPara crear un formulario nuevo, seguir los siguientes pasos:\n1. En el Administrador de proyectos, elegir la\n2. Seleccionar el icono Formularios.\n3. Elegir «Nuevo».\n4. Seleccionar «Nuevo formulario».\nADICION DE CAMPOS CON FORMULARIO RAPIDO\nSi se desea situar rápidamente los campos de una tabla o una vista en un formulario, eligir el\ncomando Formulario rápido del menú Formulario. Este comando iniciará el Generador de formularios,\nque agregará los campos seleccionados desde la tabla o la vista al formulario, empleando el estilo de\ncampo que se elija.\nPara agregar campos a un formulario con el Generador de formularios\n1. En el Generador de formularios,\nseleccionar Formulario rápido en el menú Formulario.\n2. Seleccionar las opciones de\ncampo y estilo en el Generador de formularios y elegir\n«Aceptar» para generar el formulario.\nEn esta ventana escoger el estilo del\nFormulario rápido creado en base a la tabla\nEl Generador de formularios facilita la forma de agregar a un formulario campos como nuevos\ncontroles. Se agregan controles y se especifica el estilo seleccionando opciones mostradas en el\nformato familiar de cuadro de diálogo.\nCuando se elige «Aceptar», el generador se cierra, aplicando la configuración de propiedad de cada\nFichas del Generador de Formularios\nFicha Selección de campo\nEspecifica los campos que se deben añadir como controles de\nFicha Estilo Ofrece varias elecciones de estilo para sus controles, y la opción de agrandar el\nformulario si es necesario. El tamaño de formulario sólo se agrandará cuando se ajuste al tamaño del\nárea de diseño máximo fijado en la ficha Formularios del cuadro de diálogo Opciones.\nEl menú Formulario contiene comandos para la creación y modificación de formularios y conjuntos de\nCOMANDOS DEL MENU FORMULARIO Nueva propiedad\nCrea una nueva propiedad.\nCrea un nuevo método.\nEdita una propiedad o método existente. La propiedad o método se entiende como aplicable\núnicamente al formulario o conjunto de formularios. Para las clases, se activa cuando agrega una\nnueva propiedad o método.\nEspecifica el archivo cabecera de constantes predefinidas en tiempo de compilación para una clase\ndefinida por el usuario, un formulario o un conjunto de formularios.\nMuestra el generador de formularios, que le ayuda a crear un formulario simple que puede\npersonalizar agregando sus propios controles.\nCrear conjunto de formularios\nCrea un nuevo conjunto de formularios, que es un contenedor padre de uno o más formularios.\nQuitar conjunto de formularios\nBorra un conjunto de formularios existente. Disponible sólo si ha creado un conjunto de formularios.\nAgregar nuevo formulario\nAgrega nuevos formularios una vez que ha creado un conjunto de formularios. Disponible sólo si está\ntrabajando con un conjunto de formularios, en vez de con formularios individuales.\nQuita un formulario una vez que ha creado un conjunto de formularios. Disponible si está trabajando\ncon un conjunto de formularios, en vez de con formularios individuales.\nEjecuta un formulario después de haberlo diseñado y guardado.\nADICION Y ELIMINACION DE FORMULARIOS DE UN\nCuando se haya creado un conjunto de formularios, podrá agregarse formularios nuevos y eliminar\nPara agregar formularios adicionales a un conjunto de formularios\nEn el menú Formulario, elegir «Agregar nuevo formulario».\nPara eliminar un formulario de un conjunto de formularios\n3. En el cuadro «Formulario» situado en la parte inferior del Generador\nde formularios, seleccionar el formulario.\n4. En el menú Formulario, elegir «Quitar formulario».\nSi en un conjunto de formularios sólo tiene un formulario, se podrá eliminar el\nconjunto de formularios para quedarse únicamente con el formulario. Para\neliminar un conjunto de formularios\n· En el menú Formulario, elegir Quitar conjunto de formularios.\nADICION DE CONTROLES DE VISUAL FOXPRO A UN\nLa barra de herramientas Controles permite agregar fácilmente al formulario cualquiera de los\ncontroles estándar de Visual FoxPro.\nControles estándar de Visual FoxPro\nCuadro combinado Botón\nde comando Cuadro de lista\nControl OLE dependiente\nControl contenedor OLE\nPara agregar controles a un formulario:\n· En la barra de herramientas Controles, seleccionar el botón del control desea- do y hacer click o\narrastrarlo para ajustar su tamaño en el formulario.\nSe pueden crear controles en un formulario mediante la barra de herramientas\nde Controles de formularios.\nHacer click en el botón correspondiente al control deseado, situar el puntero del\nmouse en el formulario y hacer click en el formulario para colocar el control o\narrastrar para ajustar su tamaño.\nEsta barra de herramientas se muestra automáticamente al abrir el Generador de formularios, pero\npuede mostrarse en cualquier momento si se selecciona en el cuadro de diálogo Barras de\nherramientas. Sin embargo, los botones de la barra de herramientas no están activados a menos que\nse trabaje en un formulario.\nEsta barra de herramientas contiene los botones siguientes:\nCambia el tamaño y mueve controles. Una vez creado un control, el botón\n«Seleccionar objetos» se volverá a seleccionar automáticamente, a menos que esté\npresionado el botón «Bloqueo del botón».\nPermite seleccionar y mostrar una biblioteca de clases registrada. Después de\nseleccionar una clase, la barra de herramientas sólo muestra botones para las clases\nde la biblioteca seleccionada.\nCrea un control Label, que se usa para texto que no quiere que el usuario cambie,\ncomo el título que aparece encima de las casillas de verificación o debajo de un\nCrea un control TextBox, que se usa para almacenar una única línea de texto que el\nusuario puede introducir o cambiar.\nCrea un control EditBox, que se usa para almacenar varias líneas de texto que el\nCrea un control CommandButton, que se usa para ejecutar un comando.\nCrea un control CommandGroup, que se usa para agrupar comandos relacionados.\nCrea un control OptionGroup, que se usa para mostrar múltiples opciones entre las\nque el usuario sólo puede seleccionar una.\nCrea un control CheckBox, que ofrece al usuario la posibilidad de elegir entre una\ncondición verdadera o falsa, o muestra varias opciones entre las que el usuario\nCrea un control ComboBox, que se usa para crear un cuadro combinado desplegable\no una lista desplegable, de forma que el usuario pueda seleccionar un elemento de\nuna lista o introducir manualmente un valor.\nCrea un control ListBox, que se usa para mostrar una lista de elementos entre los que\npuede elegir el usuario. Es posible recorrer la lista si tiene más elementos de los que\nse pueden mostrar de una vez.\nCrea un control Spinner, que se usa para aceptar datos numéricos introducidos por el\nusuario que quedan dentro de un intervalo.\nCrea un control Grid, que se usa para mostrar datos en una cuadrícula tipo hoja de\nMuestra una imagen gráfica en su formulario.\nIntercepta eventos Timer a intervalos establecidos. Este control es invisible en tiempo\nMuestra varias páginas de controles.\nPermite agregar objetos OLE a la aplicación.\nAl igual que los controles contenedores OLE, permite agregar objetos OLE\na la aplicación. Sin embargo, a diferencia de los controles contenedores OLE, los\ncontroles OLE dependientes están vinculados a un campo de tipo General.\nSe usa para dibujar diversos estilos de línea en el formulario en tiempo de diseño.\nSe usa para dibujar diversas formas en el formulario en tiempo de diseño. Se puede\ndibujar un rectángulo, un rectángulo redondeado, un cuadrado, un cuadrado\nredondeado, un óvalo o un círculo.\nAgrega espacio entre los controles de la barra de herramientas.\nBloqueo del generador\nAbre un generador para el nuevo control que agrega al formulario.\nBloqueo del botón\nPermite agregar varios controles del mismo tipo sin tener que hacer click en el botón\ndel control, en la barra de herramientas, más de una vez.\nADICION DE CONTROLES A UN FORMULARIO\nPara agregar nuevos controles a un formulario seleccionar en la barra de herramientas Controles del\nformulario y situarse en la ventana Generador de formularios.\nPor ejemplo, si se desea agregar nuevas etiquetas para campos del formulario, agregar nuevos\ncontroles como botones, cuadros de edición, cuadros de lista, etc., o agregar imágenes o líneas y\nformas para mejorar la apariencia del formulario.\nPara agregar un control a un formulario, seguir los siguientes pasos:\n1. Hacer click en el control de la barra de herramientas «Controles del\n2. En el Generador de formularios, arrastrar para crear un rectángulo\ndon- de se desea colocar el control.\nEl nuevo control aparecerá donde fue colocado. Se podrá mover a su ubicación definitiva en el\nformulario y cambiar su tamaño cuando sea necesario.\nSi se desea obtener ayuda sobre cómo agregar controles, puede utilizarse un generador para agregar\nlos controles y hacer que funcionen con el formulario, o se puede agregar los controles utilizando la\nbarra de herramientas Controles del formulario y la ventana Propiedades.\nADICION DE CAMPOS DE TABLAS A UN FORMULARIO\nSe puede agregar un campo de una tabla a un formulario agregando un cuadro de texto y, a\ncontinuación, estableciendo la propiedad ControlSource del cuadro de texto en el campo de la tabla.\nPero hay otros modos de agregar campos de tablas:\n En el Administrador de proyectos o el Generador de entornos de\ndatos, arras- trar un campo hasta un formulario o una página. El control pasará a depender\ndatos, arras- trar una tabla hasta un formulario o una página. La cuadrícula resultante pasa-\nrá a depender de la tabla.\nCREACION DE CUADROS DE DIALOGO CON FICHAS\nVisual FoxPro incluye muchos cuadros de diálogo con fichas, como los generadores y el cuadro de\ndiálogo Opciones. En estos cuadros de diálogo se puede acceder rápida y fácilmente a la información,\nsimplemente eligiendo las fichas adecuadas. En las aplicaciones se pueden crear cuadros de diálogo\ncon fichas, agregando marcos de página a formularios.\nPara crear un cuadro de diálogo con fichas:\n1. Abrir el formulario adecuado.\n2. Elegir el botón Marco de página en la barra de herramientas\nControles de formularios y arrastrar hasta ajustar su tamaño al formulario.\nVisual FoxPro crea un marco de página con dos páginas y una ficha en cada página.\n3. Si se desea más de dos páginas, usar la ventana Propiedades para\nestablecer la propiedad PageCount del marco de página al número adecuado.\n4. Si se desea etiquetar cada página, establecer la propiedad Caption.\n5. Guardar el formulario.\nPara distinguir las páginas más fácilmente, puede darse a cada página un color único\nestableciendo su propiedad BackColor.\nMODIFICACION DE UN FORMULARIO\nSi los formularios creados mediante el asistente o el generador no se adaptan a sus necesidades, se\npueden modificar con el Generador de formularios. Utilizando éste, resulta fácil mover y cambiar el\ntamaño de los controles, copiar o eliminar controles, alinear controles y modificar el orden de\nPara modificar un formulario ya generado:\n1. En el Administrador de proyectos, seleccionar la ficha Documentos.\n2. Elegir el icono Formularios y seleccionar el nombre del formulario.\n3. Elegir «Modificar».\nCambiar el tamaño de controles\nCopiar o eliminar controles\nSelección, movimiento y cambio de tamaño de controles\nCopia y eliminación de controles de formulario\nBarra de herramientas Distribución\nEstablecimiento del orden de tabulación para controles.\nCOPIAR Y ELIMINAR CONTROLES DE UN FORMULARIO\nPara diseñar o modificar un formulario, puede efectuarse una copia de un control que ya está en el\nformulario. Se puede copiar un control existente y pegarlo en el formulario.\nPara copiar un control\n1. Utilizando el puntero, seleccionar un control.\n2. En el menú Edición, elegir Copiar.\n3. En el menú Edición, elegir Pegar.\n4. Usar el puntero para colocar el control donde se desee.\nSi crea un control y posteriormente decide que no lo necesita, o si no le interesa un control creado por\nun asistente, puede eliminarlo.\n· Seleccionar el control y en el menú Edición, elegir Cortar.\nDESCRIPCION DE LA BARRA DE HERRAMIENTAS DE\nLa barra de herramientas Distribución se usa para alinear y manipular las posiciones de los controles\nen un informe o en un formulario.\nAlinear los bordes izquierdos\nAlínea los controles seleccionados en el borde izquierdo. Está activado cuando se\nselecciona más de un control.\nAlinear los bordes derechos\nAlínea los controles seleccionados en el borde derecho. Está activado cuando se\nAlinear los bordes superiores\nAlínea los controles seleccionados en el borde superior. Está activado cuando se\nAlinear los bordes inferiores\nAlínea los controles seleccionados en el borde inferior. Está activado cuando se\nAlínea los centros de los controles seleccionados en un eje vertical. Está activado\ncuando se selecciona más de un control.\nAlínea los centros de los controles seleccionados en un eje horizontal. Está activado\nAjusta el ancho de los controles seleccionados al control más ancho.\nAjusta el alto de los controles seleccionados al control más alto.\nAjusta el tamaño de los controles seleccionados al control más grande.\nAlinea los centros de los controles seleccionados en un eje vertical en el centro del\nAlinea los centros de los controles seleccionados en un eje horizontal en el centro del\nColoca los controles seleccionados delante de todos los demás controles.\nLlevar al fondo\nColoca los controles seleccionados detrás de todos los demás controles.\nESTABLECIMIENTO DEL ORDEN DE TABULACION PARA\nEl orden de tabulación de un formulario determina la secuencia en la que se seleccionan los controles\ncuando un usuario presiona la tecla Tab para moverse por el formulario.\nSe pueden elegir dos métodos distintos para establecer el orden de tabulación: interactivamente,\nhaciendo click en los controles en el orden que se desea se seleccionen cuando se use el formulario,\nu organizando una lista de controles en un cuadro de diálogo.\nPara elegir un método de orden de tabulación:\n1. En el menú Herramientas, elegir Opciones\n2. En el cuadro de diálogo Opciones, elegir la ficha Formularios.\n3. En la opción «Orden de tabulación», seleccionar «Interactiva»\no «Por lista».\nlnfomes o Reportes\nVisual FoxPro ofrece tres formas de comenzar a hacer un informe:\n Crear informes sencillos de una o varias tablas con un Asistente para\n Crear un informe sencillo desde una tabla con Informe rápido.\n Modificar informes existentes o crear sus propios informes con el\nCon cada uno de estos métodos se creará un archivo de distribución de informe que puede\nmodificarse utilizando el Generador de informes.\nCREACION DE UN INFORME CON NUEVO INFORME\nSi no se quiere utilizar el Asistente para informes o Informe rápido, se puede comenzar con un informe\nen blanco y agregar propios controles.\nPara crear un informe en blanco :\n En el Administrador de proyectos, elegir «Informes».\n Elegir «Nuevo».\n Elegir «Nuevo informe».\nEl Generador de informes se usa para crear y modificar informes. Cuando la ventana del Generador\nde informes está activa, Visual FoxPro muestra el menú Informe y la barra de herramientas Controles\nPara crear rápidamente una distribución simple de informe, elegir el comando Informe rápido del\nmenú Informe. Informe rápido solicita la entrada de los campos y la distribución que se desea para el\nEl Generador de informes consta de:\nDe forma predeterminada, el Generador de informes muestra tres bandas: Encabezado de página,\nDetalle, y Pie de página. Una barra separadora se ubica en la parte inferior de cada banda. El nombre\nde la banda aparece en la barra gris junto a una flecha azul, que indica que la banda está encima, no\ndebajo, de la barra gris. Puede agregar las siguientes bandas a su informe:\nTexto como «Totales grandes»\nEl Generador de informes tiene una regla vertical y otra horizontal que se puede utilizar para\nposicionar, de forma más precisa, los objetos en las bandas. Utilizar las reglas junto con el comando\nMostrar posición del menú Ver, para ayudar en el posicionamiento de los objetos.\nBARRA DE HERRAMIENTAS DEL GENERADOR DE INFORMES\nLa barra de herramientas Generador de informes se muestra al abrir el Generador de\nMuestra el cuadro de diálogo Agrupar datos, de manera que pueda crear gru- pos de\ndatos y especificar sus propiedades.\nBarra de herramientas Controles de informes\nMuestra u oculta la barra de herramientas Controles de informes.\nBarra de herramientas Paleta de colores\nMuestra u oculta la barra de herramientas Paleta de colores.\nMuestra u oculta la barra de herramientas Distribución.\nBARRA DE HERRAMIENTAS: CONTROLES DE INFORMES\nSe pueden crear controles en un informe o en una etiqueta mediante la barra de herramientas de\ncontroles de informes.\nHacer click en el botón correspondiente al control deseado, situar el puntero del mouse en el informe y\nhacer click en el informe para colocar el control o arrastre para ajustar el tamaño.\nEn un informe, se puede hacer doble click en cualquier control para mostrar un cuadro de diálogo para\nEsta barra de herramientas se muestra automáticamente al abrir el Generador de\n&NBSP;&NBSP; Seleccionar objetos\n«Seleccionar objetos» se vuelve a seleccionar automáticamente, a menos que esté\nCrea un control Label, que se usa para texto que no desea que el usuario cambie,\ncomo un título que aparece encima de casillas de verificación o debajo de un gráfico.\nCrea un control de campo, que se usa para mostrar el contenido de un campo de\ntabla, variable de memoria u otra expresión.\nSe usa para dibujar diversos estilos de línea en el informe en tiempo de diseño.\nSe usa para dibujar rectángulos en el informe.\n&NBSP;&NBSP; Rectángulo redondeado\nSe usa para dibujar rectángulos con esquinas redondeadas y elipses en el informe.\n&NBSP;&NBSP; Control Imagen/OLE dependiente\nSe usa para mostrar una imagen o el contenido de un campo de datos general en el\n&NBSP;&NBSP; Bloqueo del botón\ndel control en la barra de herramientas, más de una vez.\nEl menú Informe tiene opciones que le permiten crear y modificar informes.\nCOMANDOS DEL MENU INFORME\nMuestra el cuadro de diálogo Título / Resumen, en el que puede especificar si\nse incluye una banda de Título y/o una banda de Resumen en el informe.\nOpciones del cuadro de diálogo Título/Resumen\nIncluye una banda de información de Título que se imprime una\nvez al principio del informe.\nSalta una página tras la impresión de la banda de Título. Sólo\npuede activar esta opción si activa primero la «Banda título».\nIncluye una banda Resumen que se imprime una vez al final del informe.\nSalta una página antes de imprimir la banda de información de Resumen. Sólo puede activar\nesta opción si activa la «Banda resumen» primero.\nMuestra el cuadro de diálogo Agrupar datos, en el cual puede crear grupos de bandas para la\nseparación visual de grupos de registros, y la visualización de los datos de introducción y resumen\npara cada grupo. Estas propiedades incluyen la impresión del texto con encabezados y pies de\npágina, para identificar grupos específicos, imprimiendo cada grupo en una nueva página, e\ninicializando los números de página cuando los grupos se imprimen en una nueva página.\nOpciones del cuadro de diálogo Agrupar datos\nExpresiones de agrupación\nMuestra roturas de expresiones de grupo, como un nombre de campo, para el informe actual,\ny le permite escribir nuevas expresiones. Si desea construir una expresión, elija el botón con\ntres puntos para mostrar el cuadro de diálogo Generador de expresiones.\nEstas opciones permiten especificar opciones para las roturas de página.\nComenzar grupo en nueva columna\nComienza una nueva columna cada vez que el grupo cambia.\nComenzar cada grupo en una nueva página\nComienza una nueva página cada vez que el grupo cambia.\nEmpezar en página 1 para cada grupo\nComienza una nueva página y reinicia la numeración de páginas cada vez que el grupo\nVolver a imprimir el encabezado de grupo en cada página\nEspecifica que el encabezado de grupo sigue al encabezado de página en todas las páginas\ndel grupo, cuando dicho grupo ocupe más de una página.\nComenzar grupo en nueva página cuando sea menor que\nEstablece la mínima distancia desde la parte inferior de la página a la que se imprime un\nencabezado de grupo.\nInserta un cuadro de texto en blanco en el cuadro «Expresiones de grupo», en el que puede\ndefinir un nuevo grupo de expresiones.\nElimina la expresión de grupo seleccionada del cuadro «Expresiones de grupo».\nMuestra el cuadro de diálogo Variables del informe, en el cual crea variables de memoria dentro del\ninforme. Visual FoxPro utiliza variables de memoria para almacenar los resultados de cálculos\nefectuados mientras se está imprimiendo el informe. Utilice este comando para agregar una nueva\nvariable, cambiar o eliminar variables existentes, o cambiar el orden en que se evalúan las variables.\nOpciones del cuadro de diálogo Variables del informe\nMuestra las variables del informe actual, y proporciona espacio para nuevas variables.\nMuestra las expresiones almacenadas en la variable actual o permite escribir una expresión en el\ncuadro de texto. Para crear una expresión que se almacenará en la variable, elegir el botón con tres\npuntos para mostrar el Generador de expresiones.\nMuestra el valor de la variable seleccionada antes de que se realice ningún cálculo, y el valor al que la\nvariables se restablece. Puede introducir un valor en el cuadro de texto, o si desea crear una\nexpresión para el valor inicial, elegir el botón con tres puntos para mostrar el cuadro de diálogo\nLiberar tras informe\nLibera la variable del informe de la memoria tras imprimir el informe. Si no se selecciona esta opción,\nla variable permanece disponible en la memoria hasta que salga de Visual FoxPro o libere la variable\ncon los comandos CLEAR ALL o CLEAR MEMORY.\nPermite especificar el punto en el cual la variable se restablece a su valor\ninicial. De forma predeterminada, se muestra en el cuadro de lista «Fin»\ndel informe. También se puede seleccionar «Fin de página» o «Fin de\ncolumna». Si se ha usado el comando Agrupar datos para crear grupos\nen un informe, el cuadro «Restablecer» muestra un elemento para cada\ngrupo del informe.\nInserta un cuadro de texto en blanco en el cuadro «Variables», con lo que\npuede escribirse un nombre de variable nueva.\nElimina el nombre de variable seleccionado del cuadro «Variables del informe».\nEstas opciones permiten especificar un cálculo que la variable ejecuta. La variable comienza\ncalculando con su valor inicial, y continúa hasta que se restablece a su valor inicial.\nEspecifica que no se harán cálculos sobre esta variable.\nCuenta el número de veces que la variable se imprime por grupo, página, columna o informe\n(dependiendo de su selección en el cuadro «Restablecer»). El cálculo se basa en el número de veces\nque aparece la variable, no en su valor.\nCalcula la suma aditiva de los valores de la variable. La suma conserva el total de los valores de la\nvariable durante una ejecución para un grupo, página, columna o informe (dependiendo de su\nselección en el cuadro «Restablecer»).\nCalcula la media aritmética de los valores de la variable dentro de un grupo, página, columna o\ninforme (dependiendo de su selección en el cuadro «Restablecer»).\nMuestra el valor más bajo de la variable que apareció dentro de un grupo, página, columna o informe\n(dependiendo de su selección en el cuadro «Restablecer»). Coloca en la variable el valor del primer\nregistro del grupo. Cuando se encuentra un valor más bajo, la variable cambia a dicho valor.\nMuestra el valor más alto de la variable que apareció dentro de un grupo, página, columna o informe\nregistro del grupo. Cuando se encuentra un valor más alto, la variable cambia a dicho valor.\nDevuelve la raíz cuadrada de la varianza para los valores de la variable dentro de un grupo, página,\ncolumna o informe (dependiendo de su selección en el cuadro «Restablecer»).\nMide el grado en que varían los valores de campos individuales respecto de la media de todos los\nvalores dentro del grupo, página, columna o informe (dependiendo de su selección en el cuadro\nMuestra el cuadro de diálogo Fuente, en el cual especifica las fuentes persistentes, los\nestilos de fuente y los tamaños de fuente para los controles etiqueta o campo en los\ninformes y las etiquetas. La configuración se almacena con el informe, con lo que, cada\nvez que se modifica el informe, la fuente predeterminada es la misma.\nSus opciones se usarán para este informe hasta que cambie las opciones en este cuadro de diálogo.\nSesión privada de datos\nConfigura el informe para que se tenga una sesión de datos que no cambie si se abre o usa tablas en\notros generadores. Hacer click en este comando para activarlo o desactivarlo.\nColoca automáticamente los campos seleccionados en la ventana Generador de informes, vacía. El\ncomando solicitará que seleccione una tabla y después muestra el cuadro de diálogo Informe rápido,\nen el que debe seleccionar los campos y su distribución.\nSe puede usar también los asistentes de Visual FoxPro para crear rápidamente un informe. Estos\nasistentes incluyen el Asistente para informes de grupos/totales, el Asistente para informes uno a\nvarios, y el Asistente para informes.\nOpciones del cuadro de diálogo Informe rápido\nDistribución de campos\nMuestra la distribución de columnas en la izquierda y la distribución de filas en la derecha. Elegir\n«Distribución en columnas», para ver los campos de izquierda a derecha a lo ancho de la página.\nElegir «Distribución en filas», para mostrar los campos uno debajo del otro a lo largo de la página.\nDetermina si los nombres de campo se mostrarán como títulos en los controles etiqueta encima o\njunto al campo correspondiente.\nAgrega automáticamente el alias a todos los nombres de campo en la ventana Generador de\nAgregar tabla al entorno de datos\nAgrega automáticamente la tabla al entorno de datos.\nMuestra el cuadro de diálogo Selector de campos, en el cual se puede seleccionar los campos a\nmostrar en el informe.\nMuestra el cuadro de diálogo Imprimir para ejecutar el informe. La ejecución de un\ninforme nunca cambia los datos de la tabla, los índices o los archivos memo.\nCREACION DE UN INFORME CON EL ASISTENTE PARA\nVisual FoxPro proporciona estos asistentes para la distribución de informes y etiquetas:\nUna a varios\nEl asistente que se elija dependerá de la distribución general y la complejidad del informe.\nEn la primera parte de esta publicación donde se fue desarrollando el proyecto de publicaciones\ninformáticas se ha descrito como crear un informe con el asistente de informes tipo informe (de una\ntabla), informe de uno a varios (del cual desarrollaremos más puntualmente. A continuación,\nencontraremos cómo crear un informe de grupos totales (no mencionado, ya que en la aplicación no\nexiste ningún reporte de este tipo).\nASISTENTE PARA INFORMES UNO A VARIOS (ANEXOS)\nAGRUPACION DE DATOS EN LA DISTRIBUCION\nDespués de diseñar la distribución básica, podrá decidir que agrupar los registros por ciertos campos\nu otros criterios haría el informe más fácil de leer. Puede agregar uno o varios grupos, cambiar el\norden de los grupos, repetir encabezados de grupo, o cambiar o eliminar bandas de grupo.\nADICION DE UN UNICO GRUPO\nUn informe de un único grupo tiene un nivel de datos agrupados en base a una expresión que se\nintroduce. Por ejemplo, se puede basar un grupo en el campo tipo_publi para imprimir juntos todos los\nregistros del mismo tipo de colección.\nEl origen de datos se debe ordenar con respecto a ese campo.\nPara agregar un grupo, seguir los siguientes pasos:\n1. En el menú Informe, elegir Agrupar datos.\n2. En el primer cuadro «Grupo», escribir la expresión de grupo.\nElegir el botón con tres puntos para crear una expresión en el Generador de expresiones.\n3. En el área «Propiedades de grupo», seleccionar las propiedades que se desee.\n4. Elegir «Aceptar».\nADICION DE MULTIPLES AGRUPACIONES DE DATOS\nPuede definirse un máximo de 20 niveles de agrupación de datos en un informe. Los grupos anidados\nson muy útiles para organizar datos y totalizar expresiones en diferentes niveles.\nPara agregar múltiples grupos\n3. En el área «Propiedades de grupo», elegir las propiedades que desee.\n4. Elegir «Insertar» y repetir los pasos 2 y 3 para cada expresión de agru- pamiento.\n5. Hacer click en «Aceptar».\nUna vez que se tenga múltiples grupos, se podría querer impedir encabezados huérfanos o imprimir\nvalores suprimidos cuando el grupo cambie.\nCAMBIO DEL ORDEN DE AGRUPAMIENTO\nSe puede cambiar el orden de los grupos en un informe una vez definidos. Cuando los grupos se\nreordenan, todos los controles definidos en una banda de grupo se mueven a la nueva posición.\nReordenar los grupos no cambia ningún control definido previamente. Si los cuadros o las líneas se\nhan situado respecto a la parte superior o inferior de una banda de grupo, seguirán permaneciendo\nanclados en esa banda.\nPara cambiar el orden de los grupos\n En el menú Informe, elegir Agrupar datos.\n Elegir el botón de movimiento situado a la\nizquierda del grupo que se quiera mover y arrastrarlo hasta su nueva\nREPETICION DE ENCABEZADOS DE GRUPO\nCuando un grupo continúa en la página siguiente, se podría querer repetir el encabezado de grupo al\nprincipio del grupo de información siguiente. Si se tiene múltiples grupos de datos en el informe, el\nencabezado en las siguientes páginas estaría situado como el último grupo en la lista de grupos.\nSituar todos los controles que se quiera imprimir para el encabezado de grupo en la banda\nEncabezado de grupo del último grupo de la lista.\nPara repetir el encabezado de grupo en la página siguiente:\n En el cuadro de diálogo Agrupar datos, seleccionar el grupo que se\n Después elegir «Volver a imprimir el encabezado de grupo en cada\n Si no se quiere repetir el encabezado de grupo, desactivar esta\nCAMBIO DE UNA BANDA DE GRUPO\nEs posible cambiar la expresión de grupo y las opciones de impresión.\nPara modificar una banda de grupo\n1.En el menú Informe, elegir Agrupar datos\n2.En el cuadro de diálogo Agrupar datos, seleccionar la expresión de grupo que se desea\n3.Introducir la nueva expresión.\n- O tambien –\nElegir el botón con tres puntos para cambiar la expresión en el Generador de expresiones.\n4.Cambiar las opciones de agrupamiento como sea necesario.\n6.En el cuadro de diálogo Agrupar datos, hacer click en «Aceptar».\nELIMINACION DE UNA BANDA DE GRUPO\nSi no se necesita más un determinado grupo en la distribución de informe, se puede quitar.\nPara eliminar una banda de grupo, seguir los siguientes pasos:\n1.En el menú Informe, elegir Agrupar datos.\n2.Seleccionar el grupo que se quiere eliminar.\nLa banda de grupo se quitará de la distribución. Si la banda de grupo contiene\ncontroles, preguntará si se desea eliminar también los controles.\nASISTENTE PARA INFORMES DE GRUPOS TOTALES\nEl Asistente para informes de grupos / totales crea un informe de resumen. El asistente plantea\npreguntas sencillas y crea las expresiones que agrupan los datos.\nPara ejecutar el Asistente para informes de grupos / totales, elegir\nInforme en el submenú Asistentes del menú Herramientas y\nseleccionar «Asistente para grupos / totales», en el cuadro de\ndiálogo Selección de asistentes.\nSólo puede seleccionarse campos de una tabla o una vista.\nPaso 2 – Agrupamientos Se puede utilizar el agrupamiento de datos para categorizar y ordenar los\nregistros de manera que sean más fáciles de leer. Cuando se seleccione un campo en uno de los\ncuadros «Agrupar por», podrá elegirse el botón con tres puntos para modificar aún más el\nPaso 3 – Orden Seleccionar los campos en el orden en que se desee ordenar los registros dentro de\ncada grupo. Los campos seleccionados como agrupamientos en el paso 2, no están disponibles en\nPaso 4 – Estilo Cuando se haga click en cualquiera de los estilos, el asistente actualizará el gráfico\nde la lupa como ejemplo de dicho estilo.\nInformes de Grupos /Totales\nSi el número de campos seleccionados no caben en una sola línea dentro del ancho del informe, los\nDespués de guardar el informe, puede abrir y modificarse como cualquier otro informe en el\nPresentación Preliminar del Informe de Grupos /Totales\nInternet - Reviewers Guide.\nInternet - Visual Fox Pro 5.0 : Fundamentos y Técnicas de Programación.\nManual de Apoyo en Visual Fox Pro 5.0.\nInternet - Notas sobre Visual FoxPro 5.0 para Windows.\nIntroducción a las capacidades Cliente - Servidor.


Grupo armado que mató a familia de policía en Morazán iba "bien equipado", dice PNC | Prensa Gráfica\nGrupo armado que mató a familia de policía en Morazán iba "bien equipado", dice PNC\nLos cuerpos del padre, la madre y la hermana de un policía fueron entregados hoy para ser velados y enterrados en las próximas horas por familiares y amigos. Los tres fueron asesinados ayer por un grupo de hombres armados y preparados "hasta con mochilas" para huir.\nEl padre, la madre y la hermana de un policía fueron asesinados ayer en el municipio de Chilanga, del departamento de Morazán. Foto con fines ilustrativos/LPG/Archivo\nLos autores del crimen cometido ayer en Morazán contra tres miembros de la familia de un policía iban preparados para escapar de las autoridades, según dijo hoy una fuente policial.\n"Se sabe que fueron un aproximado de siete sujetos que llegaron a la vivienda, ocasionaron el hecho y se dan a la fuga. Todos iban bien equipados, hasta con mochilas, como que listos para trasladarse a otros lugares", explicó la fuente.\nLa PNC cree que los asesinos posiblemente huyeron hacia una zona montañosa entre los municipios de Chilanga y Guatajiagua. Los pobladores de esos lugares se quejan de la inseguridad causada por la presencia de pandilleros, quienes ya habían amenazado con matar y ayer lo cumplieron.\nAnoche se realizó un operativo en la zona y hay algunas personas detenidas. Sin embargo, la PNC se ha negado a informar cuántos fueron capturados y sus nombres. Tampoco se conoce si hay menores de edad entre los detenidos.\nPreparan honras fúnebres\nLos cuerpos del padre, la madre y la hermana de un policía fueron entregados este jueves por el Instituto de Medicina Legal (IML) tras hacerles las respectivas autopsias.\nFernando Coreas, de 70 años; María Albertina López, de 45 y Marleni Coreas López, de 31 -padre, madre e hija, respectivamente- fueron asesinados en la tarde del miércoles por un grupo de hombres armados que rodearon la vivienda para matar a sus ocupantes en el municipio de Chilanga.\nLos cuerpos de las tres víctimas fueron llevados hasta el caserío Quebrada Onda, donde residían y en las próximas horas serán velados.\nPosteriormente, serán sepultados en el cementerio municipal de Chilanga.\nUn niño de 4 años, hijo de Marleni y sobrino del agente policial, quien también fue alcanzado por las balas, sobrevivió al ataque y se encuentra estable.\nMatan a familiares de policía


Identifican en los océanos 200.000 patógenos nuevos para la ciencia | Telégrafo\nIdentifican en los océanos 200.000 patógenos nuevos para la ciencia\nUn equipo de exploradores y científicos publicó el catálogo más completo de patógenos que se ha realizado hasta la fecha: contiene casi medio millón de especies diferentes, 200.000 de ellas totalmente desconocidas hasta ahora.\nEl trabajo, publicado en la revista científica Cell y difundido por el diario El País de España, se basa en los datos recogidos durante la expedición Tara Oceans, llevada a cabo entre 2009 y 2013 a bordo de una goleta de casco de aluminio que recorrió todos los océanos del planeta tomando muestras de agua a diferentes profundidades.\nLos resultados presentan 12 veces más virus nuevos que los identificados hasta ahora, precisamente durante una expedición previa del mismo barco.\nLa investigación muestra que los virus marinos se distribuyen en cinco zonas bien diferenciadas: el océano Ártico, el Antártico, las aguas superficiales y templadas próximas a los trópicos, las capas intermedias a profundidades de entre 150 metros y 1.000 metros y, por último, las zonas más profundas hasta llegar al fondo marino.\nHasta el 90% de los 488.130 virus encontrados son un misterio, pues se ignora a qué tipo de organismos infectan. La inmensa mayoría del otro 10% ataca preferentemente a seres unicelulares: bacterias y arqueas.


Se atrasa la siembra de girasol y el trigo continúa favorecido\nLas condiciones ambientales y de piso permitieron la preparación de los lotes con destino a girasol pero la situación climática reguló el comienzo de siembra. Siguen las buenas perspectivas para el trigo con un 90 % de lo sembrado en buen estado.\nEn los departamentos del norte del área, (donde las condiciones ambientales y de piso lo permitieron), continuó la preparación y acondicionamiento de los lotes con destino a girasol, pero la situación climática reguló el comienzo del proceso de siembra, señaló el informe SEA para el centro-norte de la provincia.\nAdemás, los contextos comerciales y climáticos fundamentaron la estimación de un incremento del orden del 4 % en la intención de siembra de este cultivo con respecto a la superficie sembrada en la campaña anterior. Lo que representaría aproximadamente unas 124.000 ha.\nPor otra parte, para el trigo las condiciones continúan siendo favorables con un 90 % del cultivo implantado presentó estado bueno a muy bueno con muchos lotes en estado excelente, un 7 % en estado bueno a regular y un 3 % en estado regular. Este último porcentaje fue consecuencia de la frecuencia de heladas, particularmente en los lotes con cultivos de ciclo intermedio y cortos, escaso a mínimo desarrollo vegetativo, donde se reflejó el impacto de las bajas temperaturas.\nEl proceso de cosecha presentó un grado de avance del orden del 65 %, con un progreso en la semana de 15 puntos y en comparación con la campaña pasada un retraso de 10 puntos.\nEl mismo estuvo regulado por las condiciones climáticas marcadas por los variados porcentajes de humedad, pocas horas de sol e inestabilidad, repercutiendo directamente en la humedad del grano, cuyos porcentajes continuaron en niveles altos a muy altos (17 a 26 %).\nSiendo esta característica la que se mantuvo desde el comienzo de cosecha, por lo que se sumaron gastos de secada, para el acondicionamiento del cereal. Aunque, en general, los acopios tuvieron mayor tolerancia en este ítem con respecto al maíz de primera.\nEn la semana se obtuvieron los siguientes rendimientos promedios mínimos que fluctuaron entre 18 – 25 – 30 qq/ha y rendimientos promedios máximos entre 50 – 65 qq/ha, con máximos en lotes puntuales de 70 qq/ha. Estos resultados continuaron manifestándose en los diferentes escenarios en los que se desarrolló el cultivo y sus consecuencias.\nSe observó, en toda el área, el siguiente estado fenológico: R ”estados reproductivos“ R6 (madurez fisiológica).


Overbooking en la ISS - Actualidad Aeroespacial\nOverbooking en la ISS\nCon la llegada el pasado miércoles de tres nuevos astronautas a la Estación Espacial Internacional (ISS) ha aumentado temporalmente la población del laboratorio en órbita a nueve personas. Los ocho días que median entre esa llegada y la partida de la nave Soyuz MS-12 verán a la mayor tripulación a bordo de la estación desde 2015.\nEn ese año se produjo una situación similar. Durante siete días permanecieron a bordo de la ISS nueve astronautas; dos de ellos, Scott Kelly y Mikhail Kornienko, llevaron a cabo la experiencia de su prolongación en órbita durante un año.\nAhora, Jessica Meir, de la Nasa, y Oleg Skripochka, de Roscosmos, que llegaron el lunes a la ISS, permanecerán en ella durante seis meses. En cambio, su compañero de viaje, el astronauta de los Emiratos Árabes Unidos (EAU) Hazzaa Ali Almansoori, protagonizará una breve visita de ocho días a la estación orbital bajo un contrato intergubernamental entre los EAU y Roscosmos.\nAlmansoori regresará a la Tierra el próximo jueves a bordo de la Soyuz MS-12, junto con los astronautas Nick Hague, de la Nasa, y Alexey Ovchinin, de Roscosmos, que han completado más de 200 días en el espacio.\nEl equipo de la Expedition 61 pasará más de seis meses realizando cerca de 250 investigaciones científicas en campos como biología, ciencias de la Tierra, investigación humana, ciencias físicas y desarrollo de tecnología. El trabajo en el exclusivo laboratorio de microgravedad avanza el conocimiento científico y demuestra nuevas tecnologías, logrando avances en la investigación que permitirán la exploración humana y robótica de larga duración de la Luna y Marte.\nTags: ISSSoyuz MS-12


Qué sería del Uruguay sin lingüistas | la diaria | Uruguay\nEscribe Virginia Bertolotti en Nacional\nEn nuestro país los estudios sobre el lenguaje y sobre las lenguas se han realizado en diferentes ámbitos formales como el Instituto de Profesores Artigas o el Instituto de Estudios Superiores, en la Academia Nacional de Letras y también fuera de ellos. Pero el aporte del ahora Instituto de Lingüística de la Facultad de Humanidades y Ciencias de la Educación (FHCE) en su ya más de medio siglo ha sido fundamental. Gracias a los estudiosos que allí han trabajado, sabemos algunas cuestiones sobre el lenguaje y muchas sobre las lenguas que se han empleado en esta zona, sobre su historia, sobre sus contactos o sobre su presente.\nComenzando por las primeras lenguas habladas en el ahora Uruguay, sabemos cómo y por qué se perdieron los idiomas de las poblaciones indígenas y sabemos que muy poco se sabe sobre ellos. Curiosamente, nada conservamos del charrúa o del chaná, pero mucho hemos incorporado a nuestro vocabulario del guaraní, que nos legó buena parte de la toponimia y el che; o del quechua: los fines de semana vamos a la cancha con el mate y comemos achuras, o zapallo si queremos ser más sanitos. Sabemos cómo fueron los procesos de adopción de lenguas europeas de las poblaciones africanas esclavizadas y que heredamos de ellas palabras como marimba, canyengue o mucama. Tenemos respuestas a cuestiones menos predecibles en esta cuestión del contacto entre lenguas: los lingüistas nos han explicado por qué el enorme contingente proveniente de la Península Itálica no consiguió que sus modalidades lingüísticas perduraran más de allá de una generación y por qué muchos de ellos conservaron por siempre un habla que popularmente se denomina cocoliche, estereotipado en expresiones como lo primero trabaco que tuvimo fue molto malo.\nLos trabajos realizados en y sobre la frontera Uruguay-Brasil han colaborado, con sus descripciones sobre el contacto y con sus explicaciones sobre las raíces históricas de este contacto, a la “desculpabilización” de los hablantes fronterizos y a que deje de verse su habla como “el problema idiomático fronterizo”. De hecho, se reclama hoy el reconocimiento de su modalidad lingüística como patrimonio de la humanidad. Llamadas popularmente portuñol o bayano y fronterizo, DPU o portugués de última frontera por la academia, las hablas de las zonas con presencia del portugués han sido registradas -no sólo estas hablas sino todas las presentes en el país- en los años 90. Investigadores uruguayos y alemanes recorrieron el país realizando registros que están permitiendo dibujar un Atlas lingüístico del Uruguay. Estos estudios abarcan diversos planos de la lengua: el fónico (cómo suenan las palabras), el morfológico (cómo se arman internamente), el léxico (qué palabras usamos y qué significan) y el sintáctico (cómo se combinan las palabras).\nLas investigaciones realizadas en el Instituto de Lingüística de la FHCE han permitido trazar la historia del español en Uruguay. Gracias a ellas conocemos bastante cómo hablamos en la actualidad, por qué hablamos como hablamos y qué actitudes tenemos hacia nuestra lengua. Muchos de los análisis realizados sobre cuestiones gramaticales propias de nuestra modalidad (uso de tiempos verbales, formas de construir oraciones, la manera de usar el vos y el tú) y también cuestiones del español en general aparecen reflejadas en las últimas obras de referencia del español, como la Nueva gramática de la lengua española (2009) de la Asociación de Academias de la Lengua Española y la Real Academia Española. Por medio de esta actividad sistemática de descripción y explicación de diversos aspectos relacionados con el español y las expresiones lingüísticas que se dan en Uruguay, lentamente, se va cambiando la idea de que los uruguayos hablamos mal y tenemos una variedad deformada de algo que existe perfectamente en algún otro lugar (¿España, quizá?). Seguramente, la mejor expresión de esto sea la reciente Gramática del español para maestros y profesores del Uruguay (2011), una de cuyas autoras es docente de la FHCE.\nGracias a la existencia del Instituto de Lingüística se ha combatido el mito de que los sordos no tienen lengua, especialmente cruel para la vida cotidiana de los hablantes de lengua de señas, o el mito de que la lengua de señas no es una lengua sino un conjunto de mímicas.\nPero quienes se han formado en Lingüística no se limitan a investigar y a escribir. Varios espacios de formación profesional se nutren de lingüistas: las carreras universitarias en Fonoaudiología, en Corrección de Estilo, en Comunicación y en Traductorado o el Programa de Lectura y Escritura en español de la Administración Nacional de Educación Pública. También los requieren los profesorados en Español y en Literatura, los estudios sobre procesamiento de lenguaje natural que se desarrollan en la Facultad de Ingeniería, el equipo de lexicógrafos de la Academia Nacional de Letras y muchas de las instituciones de enseñanza de español a extranjeros.\nEn fin, Uruguay sin lingüistas sería como es, pero se conocería un poco menos a sí mismo, nadie se ocuparía de dar cuenta de sus características lingüísticas y habría gente que viviría un poco peor. La cultura y el saber no dan (quizá) de comer, pero sí hacen la vida más amable.\nVirginia Bertolotti es licenciada en Lingüística por la Universidad de la República, diplomada en Enseñanza del Español como Lengua Extranjera y Lengua Segunda por la Universidad de Buenos Aires y doctora en Humanidades y Artes, opción Lingüística, por la Universidad de Rosario (Argentina). Ha publicado libros y artículos en sus áreas de especialidad: historia del español en el Río de la Plata, gramática y enseñanza del español. Coordina y dirige proyectos de investigación nacionales e internacionales. Actualmente, es profesora titular del Departamento de Medios y Lenguajes del Instituto de Comunicación y profesora adjunta del Departamento de Teoría del Lenguaje y Lingüística General del Instituto de Lingüística. Es investigadora nivel II del Sistema Nacional de Investigadores y miembro de número de la Academia Nacional de Letras.\nCopiar enlace https://ladiaria.com.uy/articulo/2015/11/que-seria-del-uruguay-sin-linguistas/