miércoles, 31 de agosto de 2016

FASCÍCULO 4.

Uso de comandos
Este capítulo busca que por medio de comandos simplifiquen y/o mejoren los procesos, que van desde la creación de una tabla, hasta la obtención de un reporte indexado.
Este tema se explicará más ampliamente con la realización de diversas prácticas, en donde se señalaran los objetivos, antecedentes, el planteamiento del problema y la solución del mismo, además una guía de cómo se desarrollará la práctica. Esto con el fin de que apliques de forma inmediata el conocimiento que hasta ahora has asimilado.

Comandos de control de flujo.
DO CASEEstructura conocida como selección múltiple. Decide qué bloque de instrucciones se ejecuta, evaluando las condiciones. El bloque que se ejecuta es aquel cuya condición resulte verdadera. En caso de que todas las condiciones resulten falsas se ejecuta el bloque correspondiente a OTHERWISE el cual es opcional, es decir, podemos ponerlo o no.
 DO CASE
CASE  condición 1
Instrucción  (es)
CASE condición 2
Instrucción (es)
OTHERWISE
Instrucción (es)
ENDCASE
FOR TOEstructura  conocida como Para – fin para. Repite el bloque de instrucciones tantas veces como se indica en la instrucción.
 FOR variable = inicio TO final STEP Incremento
Bloque de instrucciones.
NEXT
 La primera vez, variable toma el inicio y se ejecuta el bloque de instrucciones. Luego se le suma al contenido de variable el incremento indicado por STEP y se le compara con valor final. Si este último es mauro se continúa con las instrucciones a continuación de NEXT.
Si dentro del bloque de instrucciones aparece el comando LOOP, no se ejecutan los comandos que restan entre LOOP y NEXT, pasándose a incrementar la variable inicio y continuar el ciclo.
Si aparece el comando EXIT se continúa con el comando siguiente a NEXT sin terminar el ciclo.

FASCÍCULO 3.

¿Qué es la programación orientada a objetos?
Cualquiera que haya programado un poco se dará cuenta de la importancia que tiene para el programador la documentación. Documentación que le sirve tanto a él como a otras personas.
Pero la cosa no se queda ahí, además sin una buena documentación un programador pierde el tiempo en hacer rutinas o procedimientos que ya estaban hechos con anterioridad y que posiblemente él mismo hizo. También una aplicación con mala documentación es muy difícil de depurar y de corregir errores posteriores a su implementación.
¿Y qué tiene esto que ver con la programación orientada a objetos?
Este tipo de programación consiste en agrupar en “objetos” aquel código, procedimientos, etc, que  tengan cosas en común, de forma que cuando un programador las utilice sepa dónde encontrarlas. Un “nuevo” concepto que incluye la generación de aplicaciones “autodocumentales”. Una vez generado o construido un objeto el programador, y los que vengan detrás, podrán olvidarse por completo del objeto y sencillamente utilizarlo.
Según lo expuesto anteriormente, la P00 (Programación Orientada a Objetos) es una forma de programación que utiliza objetos que responden a sucesos. Estos sucesos producen un flujo de mensajes entre los objetos, lo que origina cambios en los estados del objeto que recibe el mensaje.
La programación orientada a objetos puede llevarse a cabo con lenguajes convencionales, pero esto exige al programador la construcción de los mecanismos de que disponen los lenguajes orientados a objetos. Por ellos, lo mas apropiado es utilizar directamente un lenguaje orientado a objetos, ya que estos soportan los mecanismos y características, tales como objetos, clases, métodos, mensajes, herencias, etc. La herencia constituye uno de los mecanismos mas potentes de la programación orientada a objetos.
Las ventajas de la Programación Orientada a Objetos son:
  • Los objetos bien diseñados son la base para sistemas que se construyen a partir de los módulos reutilizables, dando lugar a una mayor productividad.
  • La reutilización de la clase que ha sido probada en circunstancias reales, en proyectos anteriores, dan lugar a sistemas de mayor calidad y con menos errores.
  • La herencia  hace posible definir sistemas más fiables, más fáciles de ampliar y menos costosos que mantener.
  • Un diseño orientado a objetos es una herramienta clave para enfrentar a problemas complejos porque favorece el paso de pequeños a grandes sistemas.
  • Las aplicaciones requieren escribir menos líneas de código, menos sentencias de bifurcación y por lo tanto, los módulos son más comprensibles.
  • La encapsulación ayuda a construir sistemas seguros más seguros.
  • En contraste con la programación tradicional, donde siempre existe la posibilidad de que una modificación de un procedimiento o de una escritura de datos afecte a otros procedimientos, la programación orientada a objetos no necesita examinar todo el código fuente para ver si un cambio local afecta a otras partes.
A pesar de las ventajas citadas, también presenta ciertas desventajas que son:
  • La ejecución de una aplicación orientada a objetos resulta algo más lenta.
  • Es preciso desarrollar bibliotecas de clase, lo que obliga al usuario a tomar conocimientos de ellas.
  • Hay costos inevitables, asociados al entrenamiento y aprendizaje.
  • La administración de bibliotecas de componentes es difícil y costosa.
  • Es necesario un cambio en la forma de pensar.
Una clase se puede considerar como una plantilla para crear objetos de esa clase o tipo. Una clase describe los métodos y atributos que definen las características comunes a todos los objetos de esa clase. Precisamente la clave de la programación orientada a objetos esta en abstraer los métodos y atributos comunes a un conjunto de objetos y encapsularlos en una clase.
Una clase es un tipo de objeto definido por el usuario. En otras palabras, una clase equivale a la generalización de un tipo específico de objetos. Un objeto es la concreción de una clase (algunos autores utilizan el término instancia, traducción directa de instance). Por ejemplo, un objeto de la clase C sería un ejemplar O de esa clase. Entonces, para disponer de un objeto, primero se abstraen las características comunes de ese grupo de objetos, después se delimitan esas características comunes(clase) y por último se poner nombre a uno o más ejemplares de las clases(objetos).
Aunque en las definiciones anteriores hemos utilizado el termino objeto como sinónimo de instancia, en general, cuando hablamos de objetos nos referimos, dependiendo del contexto, a clases o instancias. Esto es así, por que un objeto es, por una parte, un principio de organización, y por otra una región de almacenamiento que contiene una copia de elemento especificado por una clase.
¿Cómo se crea una clase?
Una clase se puede crear utilizando un módulo de clase “class module”.
Para crear un objeto, previamente hay que crear una clase. Una clase define los métodos de los objetos y sus propiedades.
Veamos un ejemplo:
  • Abrir un nuevo proyecto
  • En el menú insertar selecciona “módulo de clase”. Aparecerá en la ventana de nuestro proyecto el nuevo archivo Class1.
Analicemos el nuevo archivo:
Para poder acceder a sus propiedades seguramente no te baste con seleccionarlo en la ventana del proyecto y pulsar F4 sino que tendrás que abrirlo haciendo docle Clic sobre él y posteriormente pulsar F4.
Al hacer esto observamos que tiene tres propiedades.
1. Propiedad “Instancing” Nos indica, en caso de que queramos hacer pública la clase (ya explicaremos esto) si podremos crear cero, una o instancias de la clase (objetos). De momento poner Not Creatable.
2. Propiedad “Name”. Con esta propiedad damos nombre a la clase que queremos crear. En nuestro ejemplo el nombre más apropiado sería “ventana”.
3. Propiedad “Public”. Como ya te imaginarás con esta propiedad determinamos si hacemos o no pública nuestra clase (si queremos o no que otras aplicaciones puedan crear nuevos objetos de la clase ventana). De momento poner False. Nota: al poner false en esta propiedad se ignora el valor de la propiedad “Instancing”.
Ya hemos creado la clase ventana ¿Qué te parece? ¿sencillo no?
Ya estamos en disposición de empezar a crear métodos y propiedades que van a definir la clase ventana. Los métodos de una clase se definen sencillamente implementando funciones o procedimientos en el “general” del módulo de tipo Public.
Las propiedades se definen definiendo variables también de tipo Public en el general del módulo.
Siguiendo con nuestro ejemplo, nuestra ventana ha de poder abrirse y cerrarse además de tener una propiedad llamada “estado” que nos indique si está abierta o cerrada.
Para definir pues la propiedad “estado” basta con escribir en el general del módulo de clase:
Public estado as integer ´1 abierta, 0 cerrada
Para definir los métodos abrir y cerrar:
Public Sub abrir()
estado = 1
End Sub
Public Sub cerrar()
estado = 0
End Sub
¡Ya tenemos la clase ventana terminada!
¿Cómo se crea un objeto?
Siguiendo con el ejemplo creemos nuestro primer objeto ventana.
En el Form_Load del formulario del mismo proyecto (Form1) escribir lo siguiente:
Dim Ventana_salita As New ventana ´Creamos mi Ventana:salita
Ventana_salita.abrir´Ábramos la ventana de salita
Estado = Ventana_salita.estado ´comprobemos que efectivamente se ha abierto
Ventana_salita.cerrar´Cerremos ahora la ventana
Estado = Ventana_salita.estado
Ejecuta el código paso a paso para ir viendo el valor que va tomando la variable estado.
¿Qué ocurre si ahora queremos crear otra ventana? Puedes crear tantas ventanas como desees. Por ejemplo crearemos la ventana del baño.
Dim Ventana_baño As new ventana
Ventana_baño.abrir
Ventana_baño.cerrar
etc
¿Qué te parece? A partir de ahora el programador sólo deberá recordar que puede crear ventanas y que las ventanas se pueden abrir y cerrar. Además, si algún día desea revisar el código asociado a los métodos abrir o cerrar sabrá dónde encontrarlo sin dificultad; en la clase ventana.
A continuación guardemos el proyecto con el nombre, por ejemplo, “librería.vbp”
Al hacerlo observarás que se ha generado un archivo llamado ventana.cls. Este es el archivo de definición de la clase
Si ahora quieres utilizar el objeto, ventana en nuevos proyectos basta con que éstos insertes el archivo de clase.ventana.cls
Cada proyecto que utilice el objeto ventana tendrá que tener insertado el archivo ventana.Esto ha de ser así porque no hemos dicho que clase sea pública.
A continuación revisaremos ese tema.
¿Cómo se crea una clase pública?
Antes de meternos directamente con el procedimiento conviene tener una serie de conceptos claros. Para que una aplicación pueda servir a otras aplicaciones objetos ambas tienen que entenderse a través de la interfaz de Automatización OLE.
Una aplicación hace de servidor OLE (servidor de objetos) y otra de cliente. Por ejemplo, cuando hacemos unas tablas en Excel y las queremos pegar en Word, Excel hace de servidor OLE y Word es el cliente. Ambos se entienden a través de la interfaz de automatización OLE y Excel le proporciona a Word el objeto “tabla” (en lugar de “ventana”).
Así que, como habrás intuido, para que nuestro proyecto pueda servir el objeto por la ventana (ya que queremos que sea público) a otras aplicaciones deberemos convertir el proyecto en un servidor OLE.
¿Cómo se crea un servidor OLE?
Para que un proyecto con clases se convierta en un servidor OLE el proyecto deberá contener además de las clases, un módulo con el procedimiento Sub Main, aunque en éste no escribamos nada de código. Así que manos a la obra:
  • Insertar un módulo (normal) en el proyecto (module1)
  • Si quieres puedes borrar el formulario Form1, ya que para nuestros propósitos no nos es de utilidad.
  • Escribir en el módulo el procedimiento Sub Main vacío.
Sub Main()
End Sub
  • Acceder a las propiedades de la clase ventana y hacerla pública. Para ello en la propiedadPublic poner True. Si quieres que distintas aplicaciones puedan crear más de una instancia (objeto) poner la propiedad Instancing a Creatable MultiUse.
  • Guardar el proyecto.
Repasemos. En nuestro proyecto tenemos un archivo llamado ventana.cls que define la clase ventana. También tenemos un módulo con un procedimiento Sub Main sin código alguno. No tenemos nada más. Además nuestra clase es pública y multiuse.
Ya reunimos todos los ingredientes para hacer de nuestro proyecto un servidor OLE.
Acceder al menú Archivo y seleccionar “crear archivo Ole Dll
Dejar el nombre por defecto, que será “libreria.dll”
Si hemos llevado a cabo con éxito la operación se nos habrá generado dicho archivo y además se habrá registrado automáticamente en el registro de Windows.
Es interesante que accedamos al registro para observarlo. Para ello ir a Menú Inicio, Ejecutar. Poner “regedit”.
Una vez dentro del editor del registro de windows lo más sencillo para localizar los parámetros correspondientes a nuestro servidor OLE es que utilicemos el comando buscar, introduciendo como cadena a buscar “librería.dll”.
Una vez encontrada observemos el valor de las siguientes constantes:
  • InprocServer32 = “c\windows\escritorio\librería.dll” Esta constante indica el camino hasta la dll que hemos creado. Cada vez que queremos crear una instancia de una clase contenida en esta dll, el sistema la buscará ahí.
  • ProglD = “project1.ventana”. Este valor es muy importante. Será la cadena que deberemos escribir cuando desde nuestras aplicaciones queramos crear una instancia de ventana.project1 es la aplicación que nos sirve la clase ventana.
Una vez visto esto podemos salir del editor del registro de Windows e intentemos crear un objeto ventana para utilizar en una aplicación de Visual Basic.
¿Cómo se crea un objeto servido por un servidor OLE?
Abramos un nuevo proyecto con Visual Basic y escribamos las siguientes líneas de código en el Form Load del formulario Form 1.
Dim ventana_cocina As Object
Set ventana_cocina = Create Object(“proyect1.ventana”)
Ya tenemos creado nuestro objeto sin necesidad de tener en el proyecto el archivo de clase ventana.cls. Como antes, podemos hacer:
ventana_cocina.abrir
ventana_cocina.cerrar
,etc
Como ya se te habrá ocurrido, sería útil, a medida que hacemos aplicaciones, crear una especie de librería de objetos (es decir clases) para ser utilizada en cualquier momento. Todos ellos dentro de, por ejemplo, librería.dll. De esta forma todo será más fácil de encontrar.
Ah, otra cosa, no creas que nos olvidamos de los métodos Initialize y Terminate comunes a todas las clases. Simplemente decir que se suele utilizar para reinicializar y comprobar parámetros comunes a la clase. Explicar cuándo se producen ambos eventos nos ocuparía varias líneas y no expresarlo bien. Lo mejor es que escribas código lograríamos en ellos y ejecutes paso a paso para darnos cuenta del momento exacto en el que se ejecutan. Basta decir que el evento Initialize  se produce inmediatamente antes de referirnos al objeto por primera vez y el evento Terminate se produce cuando se encuentra la primera línea de código que ya no hace referencia al objeto.

FASCÍCULO 2.

manipulación de objetos
En esta sección buscamos reconocer algunos de los conceptos y objetos básicos utilizados en la Programación Orientada a Objetos; mediante la incorporación y manipulación de algunas de sus propiedades y su vinculación con las Bases de Datos, con la finalidad de hacer interfaces en ambientes gráficos.
Tenemos que tener en cuenta los siguientes conceptos. Primero que es un Objeto, y diremos que es cualquier cosa real o abstracta acerca de la cual almacenamos datos (propiedades) y los métodos que controlan dichos datos (funciones). Los tipos de objetos, serían todas las categorías en que clasificamos a los objetos, dependiendo de tu Programación serán estos. Existen también los Métodos, que especifican la forma en que se controlan los datos de un objeto. Las Clases son el agrupamiento de varios objetos en uno solo, en el cual por ende están definidas las propiedades y métodos de los objetos (superclase – clase). Superclase es de alto nivel de herencia y la subclase, de bajo nivel en herencia. ¿Qué es la herencia?, Es el paso de propiedades de una clase a otra sin necesidad de redefinirlas, donde la que recibe tiene otras propiedades adicionales a las herencias.
Para comprender un poco mas esto, vamos a ver un ejemplo:
Supongamos que una institución educativa solicita la elaboración de una interfaz que le permita dar de alta, consultar y modificar los datos de sus alumnos.
Solución:
Crearás una ficha apoyándote en el uso de Navigator, incorporando a ésta diversos objetos que te permitan, en forma experimental, comprender su uso mediante la manipulación de sus propiedades.
Cada objeto colocado en una ficha debe estar ligado con algún atributo de la BD.
Lo primero que harás será crear la estructura de la BD correspondiente a los alumnos y una vez terminada, darás de alta algunos datos que sirvan para probar el comportamiento de algunos objetos que incluirás dentro de una ficha.
Desarrollo.
Para que te familiarices con la forma en que trabajan los objetos de uso más común, vas a colocar en una sola ficha objetos diversos, cambiando algunas de sus propiedades, lo que te permitirá empezar a comprender su comportamiento al asociarlos con una base de datos.
Lo primero que debes hacer es crear una BD ( Tables –Untitled y la opción Designer ) con la estructura que se indica en la figura siguiente.
Al terminar guárdala en tu carpeta de trabajo que te indique tu asesor, con el nombre ALUM.DBF e incorpórale las 7 tuplas que se indican a continuación. Recuerda que esto se realiza seleccionando el menú File, la opción Save As y después de dar el nombre que se indicó, da clic en el icono  Table Records  y a continuación en Add Records.
Agrega en el atributo OBS (Observaciones), algún comentario con respecto al alumno cuyo nombre aparece en NOMP ( Nombre de pila), e inserta algún dibujo en el atributo FOTO (puedes hacerlo en Paint). Los demás atributos significan: MAT ( Matrícula), CYN ( Calle y Número), SEX (Sexo), NUM (Número consecutivo).
Para abrir la ficha desde Navigator, selecciona Forms y luego doble clic en Untitled (también puedes dar clic en el icono de Diseño y luego sobre el botón Designer), lo anterior mostrará una pantalla como la que se muestra a continuación:
Junto a ella, verás otras dos ventanas que son las que se muestran a continuación y que puedes acomodar de forma que no se te encimen, ajustando su tamaño de la forma que más te convenga.
En la ventana correspondiente a la Paleta de Controles, cada botón corresponde a un objeto, coloca el apuntador sobre cada uno de ellos y observa en el recuadro amarillo que surge el nombre de cada uno. Realiza la misma actividad cambiando a la pestaña denominada Custom.
Al terminar esta exploración deja activada la pestaña denominada Standard.
Colocar un cuadro de Texto.
Para seleccionarlo da un clic sobre el objeto denominado Text, lleva el apuntador sobre la ficha y vuelve a dar clic. Otra forma de colocar el objeto es dando clic sobre la ficha previa selección del objeto y sin soltar arrastra hasta determinar el tamaño que se desea.
Observa que dentro del rectángulo correspondiente al objeto que acabas de colocar sobre la ficha, aparece el nombre de dicho objeto (Text1); coloca abajo del anterior otro objeto igual y observa que ahora el nombre es Text2.
Podrás observar también que el objeto actualmente seleccionado se encuentra rodeado de unos cuadros pequeños color negro llamados gestores. Para eliminar un objeto no deseado, basta con oprimir la tecla Supr o Del (Suprimir o Delete) previa selección del mismo. Elimina el objeto Tex2 como se te acaba de indicar.
Para cambiar el tamaño de un objeto puedes hacer uso de los gestores como has hecho en otras prácticas al trabajar con imágenes. También puedes cambiar la posición del mismo sin alterar su tamaño actual, para ello da clic sobre él (observa que el apuntador se convierte en una mano), y sin soltar arrástralo hacia otra posición del formulario.
Para acceder a las propiedades del objeto Text1, da clic sobre él con el botón derecho, en el menú contextual tiene una opción llamada Inspector, al seleccionarla aparece la ventana de propiedades correspondientes a dicho objeto y que se muestra en la figura de la derecha. La ventana deInspector puede ser activada también seleccionando el menú View.
Observa en la ventana superior de dicho menú que aparece el nombre form.text1, lo cual hace referencia al objetotext1 ubicado dentro del objeto formulario denominado form.
Observa también que varias de las propiedades tiene signo más (+) que indica una sub-clasificación y para tener acceso a éstas, basta con dar doble clic sobre el signo, lo cual hará que se expanda mostrándose entonces un signo menos (-). Lo anterior es similar a la ventana del Explorador de Windows, prueba lo anterior con algunas de la propiedades. La anchura de visualización de los nombres de propiedades puede ser modificada al colocarnos sobre la línea vertical y efectuando la operación de arrastrar y soltar en sentido izquierdo o derecho.
Cambia la propiedad Text del objeto Text1, escribiendo el nombre de Matricula y observa el cambio que se produjo en el objeto correspondiente dentro de la ficha.
Expande la propiedad Font Properties y selecciona la opción Fontltalic (Fuente Itálica o letra cursiva), observa que al final de la línea hay una flecha que te permite escoger alguna de las opciones permitidas, en este caso verdadero (.T.) o falso (.F.), selecciona la opción verdadero y observa el cambio sobre el objeto Text1. Haz lo mismo con la propiedad FontBold (Fuente de Negrilla). Prueba las opciones Font Name ( Nombre de la fuente), FontSize ( Tamaño de la fuente), Font Strike Out (Letra tachada) y Font Underline(Letra subrayada) y deja los valores que más te agraden. Al terminar da doble clic sobre el signo menos para ocultar la sub-clasificación.
Expande ahora la propiedad Visual Properties y selecciona la opción Color Normal, al final de la línea observa que hay una herramienta, da clic sobre ella, la ventana que aparece te permite aplicar color sobre el objeto seleccionado, en este caso sigue siendo Text1, en la esquina superior izquierda tienes las opciones Foreground (primer plano) y Back ground (fondo). Prueba escogiendo un color azul oscuro para el primer plano, selecciona después el botón correspondiente al fondo y aplica un color azul claro, el resultado de la combinación puedes observarlo en la esquina superior derecha, prueba la combinación que te agrade y pulsa sobre el botón OK para aplicar los valores al objeto, observa los cambios.
Selecciona la propiedad Border (recuadro alrededor del objeto), y pon la en Verdadero Color High Light pone al objeto un determinado color cuando se encuentre activo y Color Normalasigna el color cuando no está activo. Asigna los valores que creas convenientes a dichas propiedades.
Colocar campo de entrada.
Para seleccionarlo da clic sobre el objeto denominado Entry Field, lleva el apuntador a la ficha y coloca el objeto enfrente del objeto Text1.
Activa la ventana de propiedades correspondiente al nuevo objeto (EntryField1). La propiedad Valueindica el valor inicial que debe asignarse al atributo cuando agregamos una tupla nueva. Esto sirve para indicar al usuario un valor estándar o facilitar el ingreso de datos si colocamos el valor que tiene más probabilidades de ser colocado estadísticamente. Si mediante la ficha nos ubicamos en un campo que ya tiene un valor, el objeto mostrará dicho valor sin modificarlo.
Para ligar un objeto a una BD debemos completar el cuadro de la propiedad Data Link, para ello selecciónala y da un clic en la herramienta al final de la línea, lo que hará que muestre el siguiente mensaje:
El mensaje anterior indica que no hay ninguna BD abierta. Da clic en el botón de Yes y selecciona la BD que creaste al principio de la práctica (ALUM:DBF). Lo anterior hará es. no: que se muestre la ventana que se indica en la siguiente figura:
La ventana anterior te indica en la ventana izquierda cual es la BD abierta y en la ventana derecha el nombre de los diferentes atributos que contiene para que elijas cuál le vas a asignar al objeto que acabas de colocar (EntryField1), que en este caso deberá de ser MAT (recuerda que es el nombre nemotécnico de Matrícula) y da clic en el botón OK.
Dentro del objeto aparece el dato correspondiente a la primera tupla de la BD (ajusta el ancho del objeto al tamaño de la matrícula, ya que todas son de 9 caracteres) y en la ventana la propiedad Data Linkla especificación del atributo seleccionado asociado a la BD (ALUM MAT). Observa que la propiedad Value muestra el número de matrícula correspondiente a la primera tupla como se observa en la siguiente figura.
Colocar cuadro de incremento.
Cuando queremos colocar en la ficha un atributo que proviene de una BD, lo primero que pensamos es en colocar un objeto de atributo de entrada (Entry Field).en el caso de los atributos numéricos podemos colocar un objeto del tipo Cuadro de incremento.
Para seleccionarlo da un clic sobre el objeto denominado Spin Box, en la propiedad Data Linkelegimos el atributo NUM (observa que es el único atributo que aparece por ser el único de tipo numérico).
Observa que la propiedad Data Link tiene la asociación ALUM NUM, y en la ventana del objeto que acabas de colocar aparece el número uno. La propiedad Step indica cuánto será el incremento del valor numérico del atributo al pulsar cualquiera de las flechas del objeto. Si la propiedad Spin Only esFalsa se puede escribir un dato en el atributo asociado desde el teclado, si es verdadera, sólo se puede modificar su valor con las flechas.
La figura siguiente te muestra la ficha hasta este momento.
Para observar la acción de este objeto tienes que ejecutar la ficha dando clic en el icono correspondiente ( Figura 1). Recorre las diferentes tuplas con los botones de avanzar (Next Record) yretroceder (Previous Record) de la barra de herramientas ( Figura 2) y observa el cambio tanto en el objeto Spin Box, como en el objeto que contiene el número de matrícula (recuerda que grabaste 7 tuplas). Para regresar al modo de diseño da clic sobre el icono correspondiente a la figura 3 ( Form Design ).
1)
2)
3)
Herramienta apuntador.
Se activa de forma automática cuando no se está utilizando ningún control y puedes seleccionar distintos objetos contenidos en la ficha de manera simultánea.
Una forma de hacer lo anterior es encerrar los objetos en un recuadro, los que queden dentro serán seleccionados, otra forma es seleccionar el primero y luego, manteniendo presionada la tecla Shiftpulsamos clic sobre cada uno de los objetos a seleccionar. Haz la prueba sobre los tres objetos que has incluido en el formulario utilizando ambos métodos.
Para anular la selección da clic en cualquier parte libre de la ficha.
Colocar casillas de verificación.
Activa el objeto Check Box, colócalo en la ficha y abre la ventana de propiedades correspondiente. En la propiedad Data Link asociamos el atributo SEX que es el único que se va a mostrar ya que este objeto sólo permite atributos de tipo lógico.
Para modificar la etiqueta que se encuentra junto a la casilla ingresa en la propiedad Text el nombreMujer.
Para darle el valor correcto a este objeto, es más fácil que en la ficha se muestre el nombre del alumno, por lo tanto agrega a la ficha con objeto Entry Filecomo el que pusiste para mostrar el número de matrícula y asócialo con el atributo NOMP, deberás ver ahora el nombre en este objeto.
Ejecuta la ficha y da clic en el objeto Check Boxsi el nombre corresponde a una mujer, recuerda avanzar por las tuplas con las flechas de la barra de herramientas, al terminar regresa al modo de diseño mediante el icono correspondiente.
Si quieres agregar alguna tupla puedes hacerlo cuando estés en modo de ejecución y mediante el icono
Dale la presentación que más te agrade poniendo los colores de primer plano y fondo a este objeto, así como diferente tipo de letra, negrilla, etc.
Colocar botones selectores.
También se les conoce como botones de radio, se utilizan en grupos de dos o más y sirven para que el usuario elija una de entre varias posibilidades, ya que sólo uno de cada grupo puede estar seleccionado. Se les puede emplear cuando los datos a ingresar en un atributo son limitados, por ejemplo y para nuestro caso la forma de pago (cheque, efectivo o tarjeta de crédito ).
Esta situación que no se había contemplado previamente obliga a que modifiques la estructura de tu BD llamada ALUM.DBF. Para ello selecciona el menú File y la opción Open, en la ventana que surge hay que seleccionar en el recuadro de parte inferior izquierda identificado como File Type los archivos que tengan la extensión DBF, al hacerlo en el recuadro superior se desplegarán todos los archivos correspondientes a la selección dada, busca el que se llama ALUM, selecciónalo y da clic en el botón de OK.
Es probable que salga un mensaje indicando que se debe abrir en modo exclusivo, da clic en el botón de Aceptar. Si la ventana que aparece te muestra los datos, da clic en el icono de diseño para que tengas acceso a la estructura, colócate en el atributo (Field) 7 y da tabulación hasta que cambie el renglón abriendo un nuevo atributo al que le pondrás FP que significa forma de pago, tipo Character y con una anchura de 16. Cierra tu BD guardando el cambio que acabas de hacer.
Activa la ventana de la ficha que estás haciendo, selecciona el objeto RadioButton y colócalo en la ficha. En la ventana propiedades asocia el atributo FP en la propiedad Data link.
Para modificar la etiqueta del objeto escribe Efectivo en la propiedad Text. Agrega dos botones más abajo del anterior y cambia la propiedad Text por Cheque y Tarjeta Crédito respectivamente; da doble clic sobre el más (+) de la propiedad Access Properties y verifica que en la propiedad Group el primer botón esté en True y los otros dos en False, esto indica que pertenecen al mismo grupo.
Si se quisiera hacer otro grupo de botones de radio, simplemente se coloca otro botón y se le asigna la propiedad True, todos los demás quedarán con propiedad False dentro de ese segundo grupo.
Como poner en columna los objetos.
Marca un recuadro con el apuntador que incluya los 3 botones de radio o bien da clic sobre cada uno de ellos mientras mantienes pulsada la techa de Shift; estando los tres seleccionados simultáneamente utiliza los iconos de la barra de herramientas que se muestran a continuación y cuya alineación de izquierda a derecha es: izquierda, derecha, arriba y abajo. 
Haz una prueba con cada opción para que observes el efecto que produce. En la siguiente figura se muestra cómo va el diseño de nuestra ficha donde los botones fueron alineados a la izquierda.
Ejecuta la ficha y observa que ningún botón esta seleccionado. Esto se debe a que como las tuplas que muestra la ficha ya existen y no tienen valor asignado para el atributo, este control no lo muestra.
Selecciona para cada tupla alguna de las opciones que incluiste para pago. Con el icono de Previus puedes verificar en forma regresiva el valor que le acabas de asignar a cada tupla para dicho atributo, al llegar al primero regresa a la forma de diseño.
Como colocar cuadros combinados.
Si en el trabajo diario se presenta la necesidad de incorporar un dato no considerado, en vez de utilizar botones selectores, debemos colocar un Combo Box(Cuadro combinado), en el cual el usuario podrá elegir entre las opciones mediante un clic, o escribir directamente en el cuadro.
Admite tres formatos de lista para presentar las opciones y puede ocupar una gran área o un espacio muy reducido en la ficha.
Selecciona el objeto Combo Boxy colócalo en la ficha, abrimos el grupo Data Linkage Properties ( Vínculo de datos ) y en la propiedad DataLink colocamos el atributo que recibirá el dato, utiliza NOMP.
En la propiedad Data Source coloca el origen de los datos que compondrán el listado. Al dar clic en el botón de herramienta aparecerá la siguiente ventana:
Da un clic en la flecha del grupo Type ( Tipo ) y podrás ver las siguientes opciones:
  1. File ( Archivo ): el listado estará compuesto por el nombre de los archivos del subdirectorio actual.
  2. Structure ( Estructura ): el listado estará compuesto por los nombres de los atributos de la BD a la cuál pertenece.
  3. Tables (Tablas): El listado estará compuesto por el nombre de los archivos DBF y DB (Paradox) del subdirectorio actual.
  4. Field ( Atributo ): al seleccionar esta opción debemos completar en el recuadro adjunto, que campo será el que brinde su contenido para formar el listado de Cuadro Combinado.
  5. Array ( Matriz ): los datos del listado provendrán de una matriz (contenedor de valores).
Vas a seleccionar la opción Field, pulsa el botón herramienta y selecciona nuevamente el atributoNOMP.
Al ejecutar la ficha, observa que a medida que avanzas por los datos, el dato resaltado de la lista se actualiza.
Las propiedades DataLink Data Source deben quedarte asignadas en la barra de propiedades como se muestra en la siguiente figura:
En modo de ejecución de la ficha vamos a probar el agregado de un dato, para ello, selecciona alguno de los nombres de la lista y pulsa en la barra de herramientas el icono de agregar registro ( Add Record ), podemos también ingresar el dato escribiéndolo directamente en el cuadro superior del cuadro combinado.
Para verificar pasa al modo de diseño y luego de nuevo al modo de ejecución, despliega la lista y verifica que el dato se encuentra ya incluido en ella.
El modo de presentación se puede cambiar modificando la propiedad Style. La opción desplegablefunciona igual pero ocupando menos espacio; la opción lista desplegable pierde la posibilidad de ingreso manual, solo permite modificación.
Cómo colocar cuadros de lista.
Sirve para colocarse rápidamente en la tupla que se desee. Contiene todos los contenidos del atributo existentes en la BD. Agrega este control llamado List Box y asigna a la propiedad Data Source el atributo NOMP:
Al ejecutar la ficha, da clic sobre diversos nombres y observa cómo en los otros objetos el dato se actualiza de inmediato. Regresa al modo de diseño.
Cómo colocar una ventana de edición.
Al encontrarnos con atributos de tipo memo en una BD, sabemos que su contenido puede llegar a ser muy extenso. El objeto Editor es el indicado.
Coloca este objeto en tu ficha y en la propiedad DataLink asigna el atributo OBS.
Entre las propiedades que destacan están Wrap en el grupo Edición que hace que el ancho de texto se adapte al ancho de la ventana del Editor. El número en la propiedad Line No indica la línea en la que se ubicará el cursor al ingresar al Editor. Si la propiedad Modify es verdadera el usuario podrá modificar el contenido del atributo memo. En el grupo Visualización podremos modificar el aspecto del cursor con la propiedad Mouse Pointer. Con la opción ScrollBar controlaremos el comportamiento de las barras de desplazamiento.
Con estas opciones te invitamos a que investigues algunas de estas posibilidades y observes los resultados que provocan.
Cómo editar imágenes en la ficha.
También podemos mostrar en la ficha los atributos que contengan imágenes colocando el objeto Image(imagen).
Para el caso de esta práctica, utilizamos un atributo OLE para las fotos, por lo tanto debemos colocar un objeto OLE y establecer en la propiedad DataLink el atributo Foto.
Si pulsas doble clic sobre el objeto, cuando ejecutes la ficha, se abrirá automáticamente la aplicación que originó la imagen como puede ser Paint.
Cómo colocar líneas y texto.
Para mejorar el aspecto de la ficha o dividir ciertos grupos podemos colocar líneas con el objeto Line(Línea). En las propiedades del grupo Visualización, puedes encontrar la posibilidad de modificar el grosor de línea con Width y su estilo con Pen.
En el caso de querer colocar texto, por ejemplo un título para la ficha, utilizamos la herramienta Texto. Con las propiedades de los grupos de Visualización y Fuente podremos controlar su aspecto final.
Tu ficha debe de haber quedado con todos los elementos que se solicitaron, distribuidos de una manera armónica similar a la figura siguiente. Los textos memo y las imágenes no están incorporados en la BD por lo que dichos objetos no presentan contenido, sin embargo los deberás poner antes de empezar a elaborar tu ficha.

código orientado a objetos en los controles
Reconoceremos los eventos que están incorporados a los objetos, mediante el uso del Inspector y del editor de programas, con la finalidad de distinguir el evento que ocasiona el comportamiento de un objeto.
¡Como reconoceremos un evento?, es un suceso que provoca en un objeto, el cambio de su estado actual a otro diferente. El tipo de evento permitido, depende del objeto que se encuentre seleccionado, por ejemplo, presionar un botón del ratón, mover el puntero, seleccionar una celda, etc.
Ejemplo:
Vamos a hacer que se escuche un sonido beep cada que el apuntador  del ratón pase por objeto.
Solución:
La forma de controlar las acciones a ejecutar es a través de lo que se conoce como Control de Sucesos, esto significa que las operaciones a efectuar dependen de lo que pase en la ventana.
Hay muchos tipos de sucesos y los puedes observar en la pestaña Events ( Eventos ) de la ventanaProperties (Propiedades). Para conocer la diversidad de estos eventos crearas una ficha apoyándote en el uso de Navigator, incorporando a ésta diversos objetos que te permitan en forma experimental, comprender su uso mediante la manipulación de sus propiedades.
El tipo de eventos disponibles depende del objeto que se encuentre seleccionado.
Para que te familiarices con los eventos, vas a colocar en una sola ficha dos objetos, lo que te permitirá empezar a comprender las opciones que tiene cada uno de ellos.
En el anexo te presentamos una breve explicación sobre la función que realiza cada uno de ellos, te sugerimos que las leas.
Desarrollo:
Lo primero que debes hacer es crear una nueva forma, tal y como lo hiciste en la práctica anterior.  Recuerda que para abrir la ficha desde Navigator, debes seleccionar Forms en le selector y luego doble clic en Untitled (también puedes dar clic en el icono de Diseño y luego sobre el botón Designer), lo anterior mostrará una pantalla como la que se muestra a continuación:
    
Junto a ella, estarán las otras dos ventanas que ya también conoces y que se muestran a continuación:
Abre la ventana que te permite modificar las propiedades dando clic derecho (menú contextual) sobre cualquier parte de la ventana de diseño (formulario), y selecciona la opción Inspector lo que abrirá la ventana que se muestra a continuación y que también ya conoces.
Selecciona la pestaña correspondiente a Events dando clic sobre ella. Los eventos que aparecen en la lista son los que corresponden a la propia ventana de formulario que también es un objeto, revísalos apoyándote de la barra de desplazamiento horizontal y busca su significado en el anexo de esta práctica.
Acomoda las diferentes ventanas de forma que te permita tener acceso a ellas. Recuerda que algunas veces se irán cuando no están activas a un segundo plano y puedes mandarlas al primer plano dando clic sobre cualquier parte libre de ellas como es la barra de título.
Coloca un objeto Text en la ventana de diseño y luego otro objeto Combo Box. Ahora tienes dos objetos que dependen de otro objeto llamado Form y que corresponde al propio formulario, decimos que dependen porque si borramos el formulario, los objetos que estén incluidos en él también serán borrados. En total tienes tres objetos.
Selecciona de manera alternada cada uno de ellos mientras observas la ventana de inspector. ¿Te das cuenta que para distintos objetos algunos eventos no son los mismos?
Coloca a tu gusto algunos otros y observa cuales son los eventos comunes a ellos.
En virtud de que para introducir un código se requiere del conocimiento de los diferentes comandos de programación, vas a utilizar sólo una orden incorporada en un evento, para ello sigue los pasos que se te indican a continuación:
  1. Elimina todos los objetos que hayas colocado en tu ficha dejando solamente el que permite un campo de entrada, es decir, el objeto Text.
  1. Cámbiate a la pestaña Properties dando clic sobre ella.
  1. Cambia la propiedad correspondiente a Text para que se visualice con el nombre de PRUEBA.
  1. Cambia la propiedad Font Size a 12 y la propiedad Fontitalic pon la en verdadero (.T.)
  1. Dentro de las opciones correspondientes a Visual Properties selecciona la opción Color Normal y cambia el color para primer plano y segundo plano a tu gusto.
  1. Regresa a la lista de eventos dando clic en la pestaña correspondiente a Events.
  1. Selecciona el evento On Mouse Movey luego clic en el botón Herramientas ( recuerda que debes tener seleccionado el objeto ).Lo anterior abrirá una ventana similar a la que se te muestra a continuación:
Esta ventana puedes abrirla también dando doble clic sobre el objeto.
El recuadro de la parte superior derecha nos indica que estamos editando el evento On Mouse Movedel objeto Text1, y en el recuadro inferior y más grande aparece una cabecera para incorporar elProcedimiento (mini programa) en donde colocaremos las instrucciones a realizarse cuando el apuntador se mueva sobre el objeto Text1.
Los procedimientos pueden tener parámetros, que son valores que llegan de alguna parte o salen hacia alguna parte. Estos parámetros son tres para este evento: flags que significa banderas o marcas; colque corresponde al valor de columna y row que corresponde a un valor de fila o renglón.
Como te darás cuenta, para esto se requiere un conocimiento más amplio de la programación, por lo que sólo vamos a colocar una simple instrucción.
  1. Escribe debajo de la palabra Procedure la instrucción  ?CHR(7). El signo de interrogación se utiliza para visualizar lo que se indique a continuación de él; la función CHR devuelve el valor del parámetro asignado, en este caso 7; el parámetro 7 corresponde según el código ASCII a una señal sonora (beep).
  1. Cierra la ventana del editor y ejecuta la ficha. 
  1. Al pasar el apuntador sobre el objeto escucharás un sonido (beep).
Regresa al modo de diseño y cierra la aplicación.


FASCÍCULO 1.

CREACIÓN Y VINCULACIÓN DE IMÁGENES Y SONIDOS
En esta sección colocaremos imágenes y sonidos dentro de la estructura de una relación, mediante el uso del atributo binario.
El atributo binario sirve para guardar imágenes con extensión BMP, ¿Recuerdas que tipo de imágenes ó sonidos provenientes de archivos WAV. Tanto las imágenes como los sonidos se les llama objetos.
Los objetos son la unidad de información que puede ser manipulada por las aplicaciones. Ten siempre en cuanta este concepto pues lo estaremos usando a lo largo de este material.
El uso de un atributo binario es correcto sí:
  • No deseamos que se abran otras aplicaciones.
  • Queremos limitar el acceso que tiene el usuario final a los datos.
  • Sólo colocamos objetos BMP o WAV.
Ejemplo:
Un profesor requiere enseñar a sus alumnos tipos de figuras asociadas con un sonido, para lo cual necesita un software que lo apoye en su enseñanza.
Solución.
Crear una estructura que contenga tres atributos haciendo uso del Diseñador incorporado en Visual d´Base. Cada atributo contendrá los datos acerca del nombre de la figura, la imagen de la misma y el sonido de fondo.
Desarrollo.
Ingresa a Visual d´Base y activa la ventana de Navigator, en el selector elige la opción Tables y da doble clic sobre la opción Untitled ( Sin título)
Al parecer la pantalla con las opciones Expert Designer da clic sobre Designer (Diseñador)
En la ventana que aparece introduce la siguiente estructura:
FIELD
NAME
TYPE
WIDTH
DECIMAL
INDEX
1
FIGURA
CHARACTER
15
0
NONE
2
IMAGEN
BINARIO
0
0
NONE
3
SONIDO
BINARIO
0
0
NONE
Al finalizar guarda en archivo mediante el menú File opción Save As... recordando que debe almacenarse en la unidad que te indique tu asesor de contenido.
Con el botón Table records (Tabla de registros)  y a continuación el botón Add Records (Agregar registros) ingresa en la estructura que acabas de crear, la siguiente información:
Para insertar la imagen colócate sobre la tupla y el atributo correspondiente abriendo el menú View (Ver) y la opción Field Contents (Contenido de atributo), o bien simplemente pulsa la tecla de funciónF9, con lo que aparecerá la siguiente figura:
Por lo general aparecerá seleccionado el Visor de Imágenes (Image Viewer); al dar clic en aceptar (OK), aparecerá un recuadro como el que se muestra a continuación, listo para recibir la información, es decir, la imagen que se quiera incorporar al atributo en que previamente te habías ubicado.
Para obtener las imágenes que se van a incorporar, pregunta a tu asesor de sala sobre la ubicación de las mismas, selecciona el menú File (Archivo) y la opción Insert from File (Insertar desde archivo) dando la ruta de acceso a las imágenes como te haya indicado tu asesor. Una vez que la imagen seleccionada es aceptada se mostrará en el visor de imagen, como se indica a continuación:
Observa cómo el atributo IMAGEN de la tabla aparece ahora con una pequeña imagen, a diferencia de los otros que no la contienen aún:
Para incluir el objeto sonido, activa la ventana Table records (Registros de Tabla) dando clic sobre alguna parte libre en ella, te colocas en el atributo correspondiente; en este caso SONIDO de la primer tupla; vuelve a abrir el menú Ver y la opción Contenido de campo igual que se hizo para la incorporación de la imagen, sólo que ahora seleccionas Sound Player (Grabadora de sonidos). Al aceptar (OK) se visualizará la siguiente imagen:
Abre el menú Archivo (File) opción Insertar desde archivo (pregunta a tu asesor o responsable de sala sobre la ubicación de los archivos WAV).
Observa que ahora en el atributo que previamente se seleccionó se aprecia una nota musical indicando que dicho atributo contiene un sonido y en la ventana de la grabadora se activa el botón de PLAY mediante el cual es posible que se escuche el sonido correspondiente siempre que se cuente con las bocinas y tarjeta de sonido para ello.
Termina de insertar las 2 imágenes que se corresponden con el atributo FIGURA de la estructura y alguno de los sonidos disponibles a cada tupla.
Para Observar las imágenes que ya se tienen almacenadas en la relación, es suficiente con tener activado el Visor (si no está visible basta que des doble clic sobre cualquiera de las imágenes de la estructura) y al pasar con las flechas de movimiento de cursor (arriba-abajo), se irá visualizando la imagen correspondiente a cada tupla sin importar el atributo por el que te desplaces.

atributos binarios y OLE
En esta ocasión veremos como colocar y modificar imágenes elaboradas por ti dentro de la estructura de una relación, mediante el uso del atributo OLE.
Las aplicaciones que pueden manipular objetos se denominan aplicaciones OLE (Objet Linking and Embedding, Vinculación e incrustación de Objetos). En los atributos OLE, se pueden almacenar cualquier objeto que provenga de un archivo o del portapapeles, pueden ser además modificados en cualquier momento o bien establecer una vinculación dinámica entre el objeto y la aplicación que le dio origen, para que el objeto se actualice fuera de dBase. Este atributo se utiliza cuando:
  • Quieres colocar cualquier tipo de objeto.
  • Deseas modificar los objetos en las relaciones con las aplicaciones que les dieron origen.
  • Quieres vincular objetos dinámicamente.
Veamos el siguiente ejemplo:
Mediante un software gráfico, un profesor quiere enseñar a sus alumnos algunas de las diferentes figuras geométricas elaboradas por él, permitiendo a sus alumnos modificar algunas de las imágenes.
Solución:
Necesitamos crear una estructura que contenga dos atributos, haciendo uso del Diseñador incorporado en Visual d´Base. Cada atributo contendrá el nombre de la figura geométrica y la imagen de la misma que será elaborada en Paint.
Desarrollo:
Ingresa a Visual d´Base y Activa la ventana de Navigator, en el sector elija la opción Tables y da doble clic sobre la opción Untitled (sin título)
Al aparecer la pantalla con las opciones Expert o Designer da clic sobre Designer (Diseñador). En la venta que aparece introduce la siguiente estructura:
FIELD
NAME
TYPE
WIDTH
DECIMAL
INDEX
1
FIGURA
CHARACTER
15
0
NONE
2
IMAGEN
OLE
0
0
NONE
Al finalizar guarda el archivo mediante el menú File opción Save As.... recordando que debe almacenarse en la unidad que te indique tu asesor de contenido.
Con el botón Table records (Tabla de registros) y a continuación el botón Add Records (Agregar registros) ingresa en la estructura que acabas de crear, la siguiente información:
Para crear la imagen abre la aplicación Paint mediante botón Inicio (barra de tareas), Programas, Accesorios y Paint. Dentro de la aplicación dibuja un pequeño cuadrado de color rojo de 2 centímetros aproximadamente, una vez terminado, mediante la herramienta de Selección márcalo, ve al menúEdición opción Copiar o Cortar; pásate nuevamente a d´Base dando clic sobre el botón correspondiente en barra de tareas o bien mediante la combinación de teclas ALT+TAB.
Colócate en el atributo IMAGEN de la primera tupla, abre el menú View (Ver) y da clic en la opciónField Contents (Contenido de campo) o F9; como la imagen se encuentra en el portapapeles debido a la acción anterior de Copiar, abre el menú Edit (Edición) y elige la opción Paste (Pegar).
Observa que en el recuadro blanco que generaste al crear el atributo IMAGEN de tipo OLE aparece ahora con la OLE, lo que significa que ya contiene una imagen.
Si el visor que se observa en la imagen anterior no se visualizará (lo que ocurre al abrir por primera vez la BD), bastará dar doble clic sobre el atributo IMAGEN en la tupla deseada para que este se abra mostrando la imagen.
Completa las dos tuplas faltantes que corresponden al triángulo y círculo, siguiendo los pasos descritos hasta este punto, incorporándoles la imagen correspondiente desde Paint para obtener una imagen similar a la siguiente:
Cierra Paint sin guardar lo que generaste, respondiendo NO a la pregunta que la aplicación manda al cerrarla.
Modificación de una imagen.
Cierra todas las aplicaciones y vuelve  abrir solamente dBase, activa Navigator opción Tables y doble clic en el archivo DBF que acabas de crear para esta práctica.
Una vez que la base de datos se encuentra abierta da doble clic sobre alguno de los atributos OLE para que se abra el Visor permitiéndole ver su contenido. Ahora da otro doble clic sobre la imagen del Visor para que se abra de forma automática la aplicación en donde la imagen fue creada y se coloque una copia de la imagen para ser modificada si así se desea.
Si el color original de la imagen contenida en CUADRADO es rojo y lo queremos cambiar a verde, lo podemos hacer con la herramienta de Paint ( Relleno con color), nota que en la barra de tareas el botón indica imagen de mapa de bits en archivo.
Para que la imagen ya modificada con el color verde quede actualizada en la BD ve al menú Archivoopción Actualizar. Regresa a d´Base pulsando ALT+TAB y observa que en el visor se encuentra la imagen ya modificada.
Siguiendo los pasos que se acaban de indicar haz lo mismo con las otras dos imágenes, cambiándole color de la figura o el color de fondo.
Si en algún momento deseas eliminar alguna de las imágenes con atributo OLE, simplemente activa el menú contextual sobre el atributo y tupla correspondiente dando a continuación clic sobre la opciónDelete Current Record.


atributo memo y lógico
Aquí aprenderemos a importar, manipular y exportar texto dentro de la estructura de una relación, mediante el uso del atributo memo, con la finalidad de optimizar la búsqueda y manejo de información.
Pero ¿Para qué sirve el atributo Memo?, sirve para ingresar texto del cual no conocemos  con anterioridad su longitud y no deseamos limitar al usuario definiendo una longitud (anchura) determinada. Estos atributos se almacenan en un archivo aparte.
¿Cuál es la diferencia práctica que tiene un atributo Texto a un atributo Memo?
Tomando la tabla que hiciste anteriormente de las figuras geométricas, deseamos agregar una breve descripción de las principales características que identifican a cada una, como por ejemplo, sus ángulos, su número de lados, características básicas de identificación, etc., para lo cual es necesario incorporar el texto correspondiente a cada tabla.
Tendrás que hacer una pequeña investigación sobre las características que posee cada una de las figuras geométricas incorporadas en la tabla, transcribiendo la información en un Editor de Textos, para generar un archivo con extensión TXT, esto es muy importante. A continuación modifica la estructura de la Base de Datos para agregarle un atributo tipo Memo que te permita introducir la descripción del texto correspondiente a cada figura geométrica.
Para hacer esto ingresa a block de notas (inicio-programas-accesorios-block de notas) y transcribe las propiedades investigadas de las 5 figuras geométricas que agregaste en la práctica del tema anterior. Guarda tu documento en donde te indique tu asesor de contenido, y sal de la aplicación.
Ingresa a Visual d´Base y activa la ventana de Navigator, en el selector elige la opción Tables y da doble clic sobre el nombre que le haya puesto a la práctica  anterior.
Al aparecer pantalla con la BD correspondiente a las figuras geométricas te cambias a Table structure que te permitirá modificar la estructura de la tabla agregando el atributo MEMO.
Se presentará una petición como la que se muestra en la siguiente figura, solicitando que la estructura debe abrirse en modo exclusivo y a la que contestaremos afirmativamente dando clic en el botón Open Exclusive.
Agregamos el nuevo atributo con el botón Add Field  o pulsando Tab estando colocados en el último atributo de la última tupla.
Observa que el nombre que intentamos dar al nuevo atributo es DESCRIPTION, sin embargo, la capacidad máxima de caracteres para el nombre de atributo es de 10, por lo tanto es necesario dar un nombre mnemotécnico, es decir, que nos ayude a entender qué contenido tiene. En este caso se eligió el nombre de DESCRIP.
Terminada de modificar la estructura regresa a Table Records mediante el botón .
Se solicitará nuevamente si deseas guardar los cambios efectuados en la estructura a lo que contestarás afirmativamente y aparecerá enseguida la siguiente ventana donde se aprecia el nuevo atributo ya considerado.
La hoja en blanco que aparece en el atributo tipo memo llamado DESCRIP te está indicando que no hay información dentro de ella, para hacerlo da doble clic sobre la hoja de la primera tupla que corresponde a cuadrado y se abrirá el Editor de Textos que se muestra en la siguiente figura.
Ingresa en el editor el siguiente texto: “Paralelogramo de cuadro lados y cuatro ángulos iguales. El área se obtiene multiplicando el lado por sí mismo”.
Al cerrar el editor aparecerá el mensaje que te avisa que el atributo DESCRIP perteneciente a la relación de la práctica anterior ha sido modificado y si deseas guardar este cambio; contesta que Yes (sí).
 
Ve ahora que la hoja blanca del atributo memo tiene una letra A incorporada, lo que nos indica que ya tiene información almacenada como puede apreciarse en la siguiente figura:
Para incorporar el texto en el atributo DESCRIP correspondiente a las figuras TRIÁNGULO y CÍRCULO se utiliza la importación de texto, para ello sigue la siguiente secuencia de pasos:
  1. Da doble clic, sobre la hoja en blanco correspondiente al atributo memo de la figura Triángulo (segunda tupla), al abrirse el Editor de texto da clic en el menú Edit  y luego en la opción Insert from File (Insertar desde archivo) lo que abrirá la ventana que se muestra a continuación:
  • El número 1 indica el tipo de archivo a localizar.
  • El número 2 indica los archivos que cumplen con la condición de acuerdo con la ruta especializada en el recuadro que se indica con número 3.
  1. Selecciona el archivo llamado Geometría (pregunta a tu asesor de contenido o responsable de sala sobre su ubicación). En el recuadro File name debe verse al archivo seleccionado y acepta dando clic en el botón OK
  1. La ventana del editor de texto queda nuevamente a la vista con la información completa del archivo original.
  1. Selecciona los textos (puedes realizarlo con la tecla Shift + tecla movimiento de cursor) que no correspondan a figura TRIANGULO, debe verse en video inverso y elimínalos (tecla Supr).
  1. Al cerrar el Editor se te avisará que hay modificación en el atributo DESCRIP y preguntará si deseas guardar los cambios, a lo que contestaras afirmativamente.
Repite los mismos pasos para incorporar el texto correspondiente a la figura CÍRCULO.
Ahora genera tres documentos independientes para los textos de las figuras Cuadrado, Triángulo y Círculo guardándolos en su carpeta de trabajo. Les llamaremos respectivamente GECU, GETR y GECI.
Para lo anterior recurre a la exportación de texto siguiendo los pasos que se indican:
  1. Da doble clic sobre la hoja en blanco correspondiente al atributo memo de la figura Cuadrado(primera tupla), al abrirse el Editor de texto da clic en el menú Edit y luego en la Opción Copy to file (Copiar en archivo) lo que abrirá la ventana que se indicó en el paso 1 de la exportación de texto.
  1. Indica la ruta del archivo donde se debe colocar la información actual (la del cuadrado) y que debe ser una carpeta de trabajo, escribe en el recuadro correspondiente a File name el nombre de GECU y da clic en OK, lo que te regresará nuevamente al Editor para cerrarlo.
Lo anterior generó en la ruta especificada, un archivo TXT que podrá ser abierto con un editor (block de notas). Se debe colocar dar nombres de archivo diferentes porque se hace una copia del contenido actual al archivo especificado, lo que ocasiona que cualquier contenido anterior es substituido por el actual.
Como también observaste, al dar  directamente un nombre de archivo, éste es creado de forma automática en la ruta que se tenga especificada.
Realiza los mismos pasos para crear que los archivos GETR (Triangulo) y GECI (Círculo).
Por último mejorarás el aspecto de un texto contenido en el campo memo. Para observar las opciones da doble clic sobre alguno de los atributos memo con objeto de abrir el visor y ver el contenido. Para ese ejemplo realízalo con el contenido de TRIANGULO.
Activa ahora el menú Edit opción Search (Buscar), esta opción presenta otro submenú. Completa dentro de la siguiente figura las opciones que presenta.
Realiza otra actividad similar a la anterior pero con el submenú de la opción Convert perteneciendo al menú Edit.  Estas opciones sólo, se activan cuando se tiene algo seleccionado (video inverso) dentro del editor.
Como te darás cuenta, las opciones correspondientes a Search nos permiten buscar un texto (Find Text), buscar la siguiente ocurrencia del texto (Find Next Text), reemplazar un determinado texto (Replace Text), colocarnos en determinado número de línea (Go to Line Number), colocarnos en el principio del documento (Top Line) o al final del documento (Bottom Line).
Para observar el efecto que produce la opción Reemplazar texto sigue los pasos que se describen:
  1. Mantén abierto el visor de texto correspondiente a la figura TRIANGULO.
  1. Abre el menú Edit opción Search y da clic en Replace Text, lo que abrirá una ventana como la que se muestra a continuación:
  1. En la ventana Find What ( Qué buscar ) escribe TRIANGULO: y en Replace With (Reemplazar con) escribe **TRIANGULO**. La forma en que hará la búsqueda  puede ser hacia el principio del texto (Up) o hacia el final de mismo (Down), por lo tanto, si estas en el Top (Principio) la búsqueda se hará hacia abajo o final (Down).
  1. Da clic sobre el botón Find (Buscar), al encontrar dentro del texto la ocurrencia que se está buscando, se detiene y se activa el botón Replace (Reemplazar), al dar clic sobre éste se realizará el cambio.
  1. Para cerrar la ventana da un clic sobre el botón Close ( Cerrar ).
Las opciones correspondientes a Convert permiten, entre otras cosas, convertir un texto a mayúsculas (Lower case), letra inicial capital, etc.
Para ejemplificar una de estas opciones, selecciona dentro del texto correspondiente a TRIANGULO la palabra Equilátero. Activa el menú Edit opción Convert y da clic sobre la opción to Upper caseó a minúsculos, observa qué ocurrió en su texto.
Otra parte, importante del Editor de Textos son sus propiedades, las cuales teniendo abierto el Editor, elige el menú Properties (Propiedades) y la opción Text Editor Properties  ( Propiedades del Editor de Texto).
La secuencia anterior mostrará la ventana que se indica en la siguiente figura:
La sección Display Options te permite:

ü       Word Wrap=         Justificación
ü       Auto Indent=         Sangrado automático (identificación)
ü       Auto Colors=         Colores automáticos.
ü       Right Margin=         Margen derecho
ü       Spacing=         Espaciado
ü       Font=         Fuente ( tipo de letra )