domingo, 7 de abril de 2013

UNIDAD 2 - 3ER. AÑO


UNIDAD 2
FORMULARIOS E INFORMES

LOS FORMULARIOS

Los formularios sirven para definir pantallas generalmente para editar los registros de una tabla o consulta y así poder introducir información. De este modo, estamos accediendo a los datos pero a través de una interfaz más cómoda y atractiva.
En esta unidad veremos cómo crear un formulario, manejarlo para la edición de registros y cambiar su diseño.

Creando el formulario

Para crear un formulario existen varias alternativas:

  • Vista Diseño abre un formulario en blanco en la vista diseño y tenemos que ir incorporando los distintos objetos que queremos aparezcan en él. Este método no se suele utilizar ya que en la mayoría de los casos es más cómodo y rápido crear un autoformulario o utilizar el asistente y después sobre el formulario creado modificar el diseño para ajustar el formulario a nuestras necesidades. En esta unidad veremos más adelante cómo modificar el diseño de un formulario.
  • Asistente para formularios utiliza un asistente que nos va guiando paso por paso en la creación del formulario.
  • Autoformulario consiste en crear automáticamente un nuevo formulario que contiene todos los datos de la tabla o consulta origen.

Según el tipo de formulario que elijamos (en columnas, en tabla,...) el formulario presentará los datos de manera diferente, cuando hacemos clic en una de las opciones, en la parte izquierda aparece un esquema de cómo se presentarán los datos con esa opción. Por ejemplo, “Autoformulario: en columnas” presenta cada registro en una pantalla mientras que “Autoformulario: en tabla” presenta varios registros en una misma pantalla y cada registro en una fila.
Para poder utilizar esta opción tenemos que rellenar previamente el cuadro “Elija la tabla o consulta de donde proceden los datos del objeto:” con el nombre del origen del formulario. Este será el único dato a introducir, una vez introducido, seleccionamos el tipo de autoformulario y pulsamos el botón Aceptar, Access se encarga del resto.


El asistente para formularios

Para arrancar el asistente para formularios podemos hacerlo como lo vimos en el punto anterior o bien, otra forma más rápida es desde la ventana Base de datos con el objeto Formularios seleccionado, haciendo doble clic en la opción Crear un formulario utilizando el asistente.

Aparece la primera ventana del asistente:


En esta ventana nos pide introducir los campos a incluir en el formulario.
Primero seleccionamos la tabla o consulta de donde sacará los datos del cuadro Tablas/Consultas; éste será el origen del formulario. Si queremos sacar datos de varias tablas lo mejor será crear una consulta para obtener esos datos y luego elegir como origen del formulario esa consulta.

A continuación seleccionamos los campos a incluir en el formulario y elegimos la distribución de los datos dentro del formulario. Seleccionando un formato aparece en el dibujo de la izquierda el aspecto que tendrá el formulario con esa distribución.
Una vez seleccionada la distribución que nos interesa pulsamos el botón Siguiente y aparece una pantalla en la que elegimos el estilo que queremos dar al formulario. Seleccionando un estilo aparece en el dibujo de la izquierda el aspecto que tendrá el formulario con ese estilo.
Finalmente, le decimos qué título tendrá

Una vez que creamos el formulario, podemos abrirlo en Modo Diseño para hacerle los retoques que queremos.


La vista de diseño de un formulario

La vista diseño es la que nos permite definir el formulario, en ella le indicamos a Access cómo debe presentar los datos del origen del formulario, para ello nos servimos de los controles que veremos más adelante.
  • Para entrar en la vista diseño debemos posicionarnos en la ventana Base de datos con el Formulario seleccionado y a continuación hacemos clic en el botón . Nos aparece la ventana Diseño de formulario:

  • El área de diseño consta de tres secciones:
    • La sección Encabezado de formulario, en ella ponemos lo que queremos que aparezca al principio del formulario.
    • La sección Detalle, en ella aparecerán los registros del origen del formulario, o varios registros o uno sólo por pantalla según el tipo de formulario. Aunque se visualicen varios registros en una pantalla, debemos indicar en la sección Detalle el diseño correspondiente a un sólo registro.
    • La sección Pie de formulario, en ella ponemos lo que queremos aparezca al final del formulario.

Alrededor del área de diseño tenemos unas reglas que nos permiten medir las distancias y los controles, también disponemos de una cuadrícula que nos ayuda a colocar los controles dentro del área de diseño.


El cuadro de herramientas


Para definir qué información debe aparecer en el formulario y con qué formato, se utilizan lo que llamamos controles. Un control no es más que un objeto que muestra datos, realiza acciones o se utiliza como decoración. Por ejemplo, podemos utilizar un cuadro de texto para mostrar datos, un botón de comando para abrir otro formulario o informe, o una línea o un rectángulo para separar y agrupar controles con el fin de hacerlos más legibles.
En el cuadro Herramientas tenemos un botón por cada tipo de controles que se pueden añadir al formulario.

El cuadro incluye los siguientes tipos de controles:
  • Etiqueta  sirve para visualizar un texto fijo, texto que escribiremos directamente dentro del control o en su propiedad Título.
  • Cuadro de texto  se utiliza mayoritariamente para presentar un dato almacenado en un campo del origen del formulario. Este tipo de cuadro de texto se llama un cuadro de texto dependiente porque depende de los datos de un campo y si modificamos el contenido del cuadro en la vista Formulario estaremos cambiando el dato en el origen. Los cuadros de texto también pueden ser independientes, por ejemplo para presentar los resultados de un cálculo, o para aceptar la entrada de datos de un usuario. Los datos de un cuadro de texto independiente no se guardan en ningún sitio. En la propiedad Origen del control tenemos el nombre del campo de la tabla al que está asociado (cuando es un dependiente) o una fórmula de cálculo cuando queremos que nos presente el resultado de ese cálculo, en este último caso hay que preceder la fórmula por el signo de igualdad =.
  • Grupo de opciones  Se utiliza para presentar un conjunto limitado de alternativas. Un grupo de opciones hace fácil seleccionar un valor, ya que el usuario sólo tiene que hacer clic en el valor que desee. Sólo se puede seleccionar una opción del grupo a la vez. Las opciones deben ser pocas sino es mejor utilizar un cuadro de lista, o un cuadro combinado en vez de un grupo de opciones. Un grupo de opciones consta de un marco de grupo así como de un conjunto de casillas de verificación, botones de opción y botones de alternar. Cuando insertamos en el formulario un grupo de opciones, se abre el asistente que nos ayuda a definir el grupo de opciones.
  • Botón de alternar , se suele utilizar para añadir una nueva opción a un grupo de opciones ya creado, también se puede utilizar para presentar un campo de tipo Sí/No, si el campo contiene el valor Sí, el botón aparecerá presionado.
  • Botón de opción , se suele utilizar para añadir una nueva opción a un grupo de opciones ya creado, o para presentar un campo de tipo Sí/No. Si el campo contiene el valor Sí, el botón tendrá este aspecto  , sino, este otro .
  • Casilla de verificación , se suele utilizar para añadir una nueva opción a un grupo de opciones ya creado, o para presentar un campo de tipoSí/No. Si el campo contiene el valor Sí, la casilla tendrá este aspecto  , sino, este otro .
  • Cuadro combinado . En muchos casos, es más rápido y fácil seleccionar un valor de una lista que recordar un valor para teclearlo. Una lista de posibilidades ayuda también a asegurar que el valor que se ha introducido en el campo es correcto. Si no disponemos de suficiente espacio en el formulario para mostrar la lista en todo momento se utilizar un cuadro combinado, ya que el cuadro combinado muestra un sólo valor (el almacenado en el campo asociado al control) y si queremos ver la lista la desplegamos con la flecha que tiene a la derecha. Cuando añadimos un cuadro combinado al área de diseño, se abre el asistente que nos ayuda a definir el control.
  • Cuadro de lista . A diferencia del cuadro combinado en el cuadro de lista la lista de valores aparece desplegada en todo momento. Al igual que los cuadros combinados un cuadro de lista puede tener una o más columnas, que pueden aparecer con o sin encabezados. Cuando añadimos un cuadro de lista al área de diseño, se abre el asistente que nos ayuda a definir el control.
  • Botón de comando . Un botón de comando permite ejecutar una acción con un simple clic, por ejemplo abrir otro formulario, borrar el registro, ejecutar una macro, etc... Al hacer clic en el botón, no sólo se ejecutará la acción correspondiente, sino que también parecerá que se presiona y se suelta el botón. También tiene un asistente asociado que permite crear botones para realizar más de treinta acciones predefinidas distintas.
  • Control imagen  para insertar imágenes en el formulario, esta imagen no variará al cambiar de registro.
  • Control ficha , se utiliza cuando queremos presentar para cada registro del origen muchos campos que no caben en una sóla pantalla y queremos organizarlos en varias fichas.

También podemos agregar un subformulario . Un subformulario es un formulario que se inserta en otro. El formulario primario se denomina formulario principal, y el formulario dentro del formulario se denomina subformulario. Una combinación formulario/subformulario se llama a menudo formulario jerárquico, formulario principal/detalle o formulario principal/secundario. Los subformularios son muy eficaces cuando se desea mostrar datos de tablas o consultas con una relación uno a varios. Por ejemplo, podemos crear un formulario para mostrar los datos de la tabla Cursos con un subformulario para mostrar los alumnos matriculados en cada curso.
El formulario principal y subformulario de este tipo de formularios están vinculados para que el subformulario presente sólo los registros que están relacionados con el registro actual del formulario principal (que el subformulario presente sólo los alumnos matriculados en el curso activo).


Trabajar con controles

Podemos añadir al formulario cualquier control que necesitemos, podemos eliminar controles o modificar los ya existentes.
En el Cuadro de Campos aparecen todos los campos del origen del formulario, es decir, de la tabla a la cual se refiere.
Si queremos añadir otro tipo de control como por ejemplo una imagen, abrir el cuadro Herramientas, hacer clic sobre el tipo de control que queremos añadir, y arrastrarlo hasta el formulario

Para alinear varios controles, podemos moverlos uno a uno guiándonos por la cuadrícula pero tenemos una opción del menú Formato que nos permite realizarlo de forma más cómoda. Seleccionamos los controles a alinear, desplegamos el menú Formato, el menú Alinear y elegimos la opción deseada según queramos alinear los controles a la izquierda, derecha, arriba, abajo, a la cuadrícula.

Si queremos que varios controles tengan el mismo tamaño para dejar nuestro formulario más homogéneo y agradable a la vista tenemos una herramienta muy útil, la opción Tamaño del menú Formato.

También podemos cambiar y ajustar la distancia entre los controles.

En fin, vamos trabajando con el aspecto del formulario hasta que lo dejamos como nos interesa.


LOS INFORMES

Los informes básicamente son listados en los que se presentan los datos. Puede ser para mostrarlos por pantalla o para imprimirlos.
Al igual que en el caso de los formularios, el informe depende de los datos con los que vamos a trabajar, es decir, de la tabla. Y también nos conviene crearlo usando el asistente y modificarlo una vez que está creado, dándole el aspecto que más nos guste.

Una de los aspectos más ventajosos de los informes, es la capacidad de definir totales y subtotales que pueden agrupar datos. Por ejemplo, a partir de una tabla EMPLEADOS podríamos hacer un informe en el que dividimos a los empleados según la oficina en la que trabaja, y obtenemos el total de sueldos a pagar por oficina.

Si bien el origen de registros de un informe hace referencia a los campos de las tablas y consultas de la base, no es necesario que un informe contenga todos los campos de cada una de las tablas o consultas en las que está basado.

Como dijimos antes, el asistente permite crear distintos tipos de informes con rapidez. El asistente hace preguntas y crea un informe basándose en las respuestas que obtiene. Después, el informe se puede personalizar como se desee en la vista Diseño 
Aquí es donde podemos ordenar y agrupar datos.  Se pueden ordenar los datos en orden ascendente o descendente por cualquiera de los campos. También se pueden agrupar los registros de uno o más campos, y mostrar subtotales y totales en un informe.


PRÁCTICA 3
Formularios e Informes

  1. Para la tabla CLIENTES de la Práctica 1, generar el formulario de entrada de datos correspondiente según las siguientes indicaciones:
    1. Colocar como título del Formulario “Alta de Clientes”
    2. El campo Cli_Moroso debe ser en forma de Botón

  1. Para la tabla PEDIDOS de la Práctica 1, generar el formulario de entrada de datos correspondiente según las siguientes indicaciones:
    1. El formulario se llamará FORM_PEDIDOS
    2. Debe ser de tipo Tabular

  1. Para la tabla CLIENTES de la Práctica 1, generar el informe correspondiente según las siguientes indicaciones:
    1. Debe mostrar los campos Cli_Nro, Cli_Apellido, Cli_Nombre, Cli_Tfno, Cli_DNI, Cli_Ciudad y Cli_Provincia
    2. Debe estar ordenado por Apellido y Nombre del cliente.

  1. Para la tabla PEDIDOS de la Práctica 1, generar el informe correspondiente según las siguientes indicaciones
    1. Agrupado por producto y ordenado por fecha
    2. Mostrar los subtotales y totales del precio y de los gastos de envío.

UNIDAD 2 - 5TO. AÑO


UNIDAD 2
PROGRAMACIÓN ORIENTADA A EVENTOS

1.- ALGUNOS CONCEPTOS IMPORTANTES

El .NET Framework
Esta nueva tecnología de programación ha sido un gran alivio para los programadores ya que proporciona herramientas que facilitan muchísimo la tarea.
El .NET Framework es un entorno para construir, instalar y ejecutar aplicaciones Web (para utilizar a través de Internet, por computadora, celular, etc.) y locales (para utilizar en una PC). Se compone de dos partes principales:
·        El Common Language Runtime (CLR): es una serie de bibliotecas dinámicas (o DDL) que los programas de aplicación necesitan para poder funcionar. Es decir, es como una caja de herramientas que ya han sido programadas y que están almacenadas y listas para ser usadas por cualquier programa. Aquí están todas las instrucciones a nivel de sistema operativo que necesitan las aplicaciones. En realidad, todos los programas de aplicación tienen alguna herramienta de este estilo que permite comunicarse a muy bajo nivel con el procesador.
·        La biblioteca de clases .NET Framework: se trata de una jerarquía de clases de objetos que están definidos y se encuentran almacenados en una biblioteca de modo que cualquier aplicación pueda definir objetos de esas clases. Haciendo una analogía con Pascal, es como la biblioteca Wincrt donde se encontraban las operaciones de entrada y salida de datos (readln y writeln)
Pero entonces, si tanto las DLL como otras bibliotecas ya existían en tecnologías anteriores de programación, ¿por qué este entorno fue una revolución a la hora de programar? Porque si bien todos los programas de aplicación siempre usaron alguna herramienta de este estilo, cada uno de ellos tenía la suya propia, con lo cual todo lo que se programaba para una necesidad específica, no servía para la otra. Y ni que hablar cuando se trataba de lenguajes distintos.
Con la llegada de la plataforma .NET Framework se brinda al programador la posibilidad de utilizar el CLR y la biblioteca de clases independientemente de la aplicación, e incluso sirve para cualquier lenguaje que utilice la plataforma. Más aún, podríamos escribir una aplicación con partes en distintos lenguajes según la conveniencia.

El Namespace y el Assembly
Un Namespace es una forma de agrupar clases, funciones, tipos de datos, etc., que están relacionados entre sí. Puede estar repartido en varios Assemblies.
Un Assembly es una biblioteca dinámica donde están implementados los Namespaces. Dicho de otro modo, las funciones, rutinas, clases, tipos de datos, etc., que se refieren a un tema (por ejemplo, todos los que tienen que ver con manejo de imágenes) se encuentran agrupados, ordenados y clasificados en un Namespace. Esto es una ubicación lógica, conceptual. Mientras que el Assembly es la ubicación física del Namespace, la que se ejecuta efectivamente.
Los Namespaces y los Assemblies también son conceptos compartidos por la plataforma .NET

Lenguaje orientado a eventos
Los lenguajes que se desarrollan en la plataforma .NET, además de compartir DLL, clases, Namespaces y Assemblies, comparten también el IDE (Integrated Development Environment), es decir, el entorno integrado de desarrollo. Al abrir el Visual Studio .NET vemos que tenemos la posibilidad de crear programas en varios lenguajes. Nosotros vamos a utilizar el Visual Basic.
Además de ser un lenguaje que trabaja sobre la plataforma NET Framework, el Visual Basic es un lenguaje orientado a objetos y orientado a eventos. Ya hemos visto qué significa que un lenguaje sea orientado a objetos. Veremos ahora qué es un lenguaje orientado a eventos.
Los lenguajes de programación estructurada respondían a algoritmos finitos de modo que, una vez comenzado a ejecutarse el programa, éste continuaba hasta su finalización pasando por todas las instrucciones que el programador había especificado. La intervención del usuario en este caso, se limitaba a ingresar datos y observar luego sus resultados. En un lenguaje orientado a eventos el centro es el usuario y su interacción con el programa. En cualquier momento desde el inicio de su ejecución, el usuario puede realizar acciones sobre el funcionamiento del programa. A estas acciones se las denomina eventos.
El modo de programar entonces es muy distinto, ya que el programador tiene que tener en cuenta no sólo las acciones del programa sino las potenciales acciones del usuario durante la etapa de ejecución. De esta manera, los resultados de un programa pueden ser muy diversos dependiendo de las decisiones del usuario que lo está manejando.

2.- EL UTILITARIO VISUAL STUDIO 2010

Como en todo compilador de un lenguaje de alto nivel, en el utilitario podemos encontrar básicamente un editor para escribir nuestro programa y un compilador que lo traduce a lenguaje de máquina. Sin embargo, al ser Visual Basic .NET un lenguaje con todas las características que hemos mencionado antes, el utilitario con el que vamos a trabajar es bastante más poderoso. En principio, debemos decir que cuenta no sólo con un compilador Visual Basic sino también con compiladores de otros lenguajes, dado que la plataforma sobre la que se sustentan tiene como premisa la versatilidad y el aprovechamiento de los mismos recursos para distintas aplicaciones. No obstante, nosotros vamos a trabajar sólo con este lenguaje.
Una vez que elegimos crear un proyecto de Visual Basic, el Visual Studio 2010 nos ofrece varias posibilidades. Entre ellas, vamos a utilizar la de crear un formulario de Windows (Windows Form) y de una biblioteca de clases (Class Library).
Un formulario de Windows es la unidad básica de cualquier aplicación. Es como una hoja en blanco donde el programador va colocando los distintos controles que va a tener su proyecto. Así, diseña el formulario y luego pasa a la etapa de código.
Para el diseño de tal formulario, el programador cuenta con una Caja de Controles de los que dispone. Entre los controles más comunes vamos a destacar:
·        Button: representa un botón que puede ser presionado para ejecutar determinada tarea. Algunas propiedades de este control son:
• Text: Almacena el título del botón.
• TextAlign: Indica la alineación del texto dentro del botón.
• BackColor: Indica el color de fondo para el botón.
• Font: Cambia el tipo de letra para el título del botón.
• Enabled: Permite habilitar/deshabilitar el botón.
• Visible: Permite mostrar/ocultar el botón.
·        Label: se utiliza generalmente para mostrar un contenido informativo al usuario, ya que no permite cambiar su propiedad Text, que es la que contiene el texto. Comparte con Button las mismas propiedades excepto Enabled. 
·        TextBox: se utiliza generalmente para que el usuario ingrese algún dato que el programa necesita. Básicamente es lo mismo que Label pero permite que el usuario modifique su contenido. También tiene las mismas propiedades que Button, más algunas otras que pueden ser de utilidad.
• Multiline : Permite indicar si queremos permitir almacenar una sola línea o varias en el mismo control.
• ReadOnly : Permite indicar que el contenido de la caja de texto sea de sólo lectura, por lo que el usuario no podrá alterar su contenido.
• MaxLength : Permite indicar el máximo de caracteres que será capaz de almacenar la caja de texto.
• TextLength : Devuelve la longitud del texto que actualmente está almacenado en este control.
·        ListBox: Este control es capaz de almacenar una lista de valores, y a la vez permite al usuario seleccionar uno o varios de estos valores. Las propiedades más importantes de este control son:
• Items : Contiene la lista de valores que almacena el ListBox. Se trata de un objeto Collection, el cual proporciona una serie de métodos para poder trabajar sobre ese conjunto de valores
• Sorted : Si almacena el valor True, se ordenarán todos los elementos de la lista (tanto los que ya estaban almacenados como los que se inserten posteriormente) y si se le asigna el valor False ya no se ordenarán los nuevos elementos que se inserten (aunque los que ya estaban insertados mantendrán el orden).
• SelectedItem : Devuelve el elemento de la lista que se encuentra seleccionado por el usuario.
Además, el ListBox cuenta con varios métodos, entre los cuales podemos destacar el AddItem, que permite añadir un nuevo elemento a la lista
·        ComboBox: Se trata de un control mezcla de otros dos que ya hemos visto, el TextBox y el ListBox, ya que realmente se trata de un ListBox pero con apariencia de TextBox en el sentido de que es capaz de almacenar una lista de valores (ListBox) pero visualmente parece ser un TextBox. A diferencia de este último, si pulsamos sobre él desplegará la lista de los valores que almacena.

·        CheckBox: Este control muestra una casilla de verificación, que podemos marcar o no para activar alguna opción de nuestro programa. Internamente este control funciona como un Boolean ya que su estado podrá ser Verdadero (ha sido seleccionado) o Falso (no está seleccionado). Una de las propiedades más importantes de este control es la siguiente:
• Checked: Indica True o False dependiendo de si el control ha sido seleccionado o no, respectivamente
·        RadioButton: Un control RadioButton permite definir conjuntos de opciones autoexcluyentes. Es decir, se mostrará por ejemplo un grupo de tres RadioButton de manera que sólo se pueda seleccionar uno de ellos e indique así la opción escogida por el usuario. Para poder detectar cuándo ha sido seleccionada la opción de un determinado RadioButton, disponemos del evento CheckedChange, el cual podremos implementar convenientemente de manera que cada vez que se pulse dicho adioButton se ejecuten las acciones que correspondan.
·        GroupBox: Este control permite agrupar controles en su interior de manera que, en cierta manera, permanezcan aislados del resto de controles del formulario. Este control nos será útil para crear más de un grupo de RadioButton ya que sino los separásemos con un control de este tipo se relacionarían entre ellos y representarían la misma opción.
Hay muchos más controles, y cada uno de ellos tienen muchas más propiedades y métodos. A medida que los vayamos utilizando, vamos a ir familiarizándonos con ellos.
Es necesario tener en cuenta que un control es por definición un objeto de Visual Basic, de manera que existe una biblioteca de clases donde se encuentran las definiciones para cada clase de control. Cuando colocamos un nuevo control sobre el formulario (que también es un objeto), estamos instanciando la clase, es decir, creando un nuevo objeto de la clase correspondiente.


3.- LOS EVENTOS
Los eventos son sucesos que provoca la acción de un usuario sobre un control, y que pueden ser capturados para asociar código a los mismos, de manera que cada vez que se produzca una acción determinada del usuario (hacer click, presionar enter, ingresar texto, pasar el mouse por encima de un control) se producirá un evento, es decir, se pone en ejecución una rutina que el programador escribió asociándola a ese evento. Por ejemplo, el evento Click sobre un Button actúa de manera tal que lo que se consigue es que cuando un usuario pulse sobre un botón se lleven a cabo una serie de acciones en el programa.
También es posible asociar código a eventos sobre formularios, por ejemplo, al evento que lanza un formulario cuando el usuario cierra el mismo (Closing) o cuando lo abre (Load). Es muy común que el programador utilice el evento Load (la carga de un formulario) para inicializar datos, controles, variables, propiedades, etc. También es bastante habitual utilizar el evento Closing para mostrar un cuadro de diálogo que confirme el cierre del formulario o la aplicación.
Al ser éste un lenguaje cuya interfaz está orientada  a eventos, es fundamental plantearse antes de comenzar a programar, cuáles serán los eventos que vamos a considerar, es decir, qué intervenciones va a realizar el usuario, sobre qué controles y cuáles serán las acciones que se ejecutarán a partir de esto. Los eventos dan lugar a acciones que por lo general se programan en rutinas de tipo procedimiento. Al igual que cualquier rutina, tienen parámetros que podrán ser pasados por valor o por referencia y utilizan variables de tipo locales, globales o públicas.

4.- TÉCNICA GENERAL DE PROGRAMACIÓN ORIENTADA A OBJETOS Y EVENTOS SOBRE PLATAFORMA .NET
Para programar según esta tecnología es necesario aplicar otras técnicas distintas a las que ya conocemos. Esta técnica se puede resumir en los siguientes pasos:
1.      En primer lugar, es necesario diseñar los formularios que van a constituir mi aplicación. Puede ser uno solo o pueden ser varios, dependiendo generalmente de la cantidad de tareas que realice el sistema. A veces es necesario crear distintos formularios para hacer distintas cosas. Si hay varios formularios, es necesario realizar un esquema de la jerarquía que hay entre ellos (como si fuese un mapa de navegación por Internet que refleja los hipervínculos para pasar de una pantalla a la otra)
2.      Una vez decididos los formularios, analizaremos qué clases vamos a definir que serán utilizadas por todos los formularios, o algunos de ellos. Con esto construimos la biblioteca de clases (puede ser sólo un módulo o varios), y definimos las clases con sus propiedades y métodos. Es necesario documentar cuáles son estas bibliotecas, qué módulos contiene cada una, qué clases hay en cada módulo, y para cada clase, qué propiedades define, de qué tipo son y cuáles son los métodos con sus parámetros.
3.      A continuación, decidimos cuáles serán los eventos que vamos a tener en cuenta. Para ello haremos un cuadro en el que figure, para cada formulario, qué eventos hay, sobre qué controles se ejercen y qué acciones provocan.
4.      A partir de aquí recién podemos comenzar a programar en el sentido estricto de la palabra. Una vez determinados todos los formularios que intervendrán, todos los controles de todos los formularios, todas las clases bien definidas, y todos los eventos que se considerarán, estamos en condiciones de tomar evento por evento y comenzar a desarrollar la rutina que le corresponde en la ventana de ingreso de código. También en este caso es muy importante documentar cada rutina con sus parámetros, sus variables indicando tipo y ámbito, y el pseudocódigo o el diagrama de flujo del algoritmo al cual responde.

5.- OTRAS HERRAMIENTAS ÚTILES
Por último, digamos que a la hora de programar debemos tener en cuenta algunas herramientas que el Visual Studio 2010 pone a nuestra disposición y que pueden ser de gran utilidad:
·        GUARDAR EL CÓDIGO FUENTE: Un proyecto Visual Basic .NET no consta de un solo archivo sino de un conjunto de archivos que conforman la plataforma y que deben ser cuidadosamente guardados. Para eso el Visual Studio genera una carpeta con todo el proyecto y las carpetas internas que son necesarias para su funcionamiento. Para guardar un proyecto, debemos seleccionar la opción Propiedades del menú Proyecto. En este caso se abre una ventana de diálogo que solicita el nombre del proyecto (Nombre del Ensamblado), es decir, el nombre de la carpeta que va a contener todos los archivos del proyecto, y el NameSpace (Espacio de Nombres), es decir, el nombre del conjunto de clases y definiciones que yo preparé para mi proyecto. Debo asegurarme que esté activa la casilla que solicita crear un directorio para el proyecto. Una vez que coloqué los datos solicitados, cierro esta ventana de diálogo y abro la opción Guardar Todo del menú Archivo. Esta opción me crea una carpeta con el nombre que puse en Nombre del Ensamblado (en el lugar que yo le haya indicado). Dentro de esa carpeta me va a guardar dos cosas: el proyecto (con el mismo nombre) y otra carpeta (también con el mismo nombre) que va a contener a su vez otras carpetas y archivos que van a conformar la plataforma .NET. Es muy importante tener especial cuidado a la hora de guardar un proyecto, ya que como vimos, no es sólo un archivo lo que estamos guardando, y tal vez, cuando queremos recuperarlo, nos cueste encontrarlo. O, lo que es peor, podemos llegar a guardar algunas cosas pero no todas, con lo cual el programa no va a funcionar correctamente.
·        GENERAR EJECUTABLE: Una vez que diseñamos y programamos nuestro proyecto, y cuando ya guardamos el código fuente correspondiente, podemos generar el código ejecutable para ponerlo en funcionamiento cuando lo necesitemos. Esto se hace en la opción Generar del menú Generar.
·        DEPURADOR: Durante la etapa de programación y antes de generar el código ejecutable, debemos asegurarnos que el programa va funcionando correctamente. Programamos una parte y la probamos, y así hasta que terminemos. Para eso existe el depurador que nos permite probar el programa desde el mismo entorno del Visual Studio 2010 a través de la opción Play (el ícono típico). Si el programa no funciona correctamente, podemos ir probando paso a paso para detectar dónde está el problema. Existe la posibilidad de ejecutar el programa hasta un determinado punto haciendo click con el mouse en el margen del código justo en la línea donde queremos que se detenga, lo que muestra un punto rojo que indicará el STOP.  Luego presionamos Play y el programa comenzará pero se detendrá en ese punto. A partir de ahí y presionando la tecla F8, podemos avanzar instrucción por instrucción, y colocando el mouse sobre las variables, podremos observar su contenido. También existe la posibilidad de agregar estas variables a la Inspección, es decir, a una ventana que se abre en la parte inferior de la pantalla y que va mostrando los valores que las variables van tomando conforme se ejecutan las distintas sentencias.
·        CONVENCIONES DE NOMENCLATURA: Cuando se instancia una clase creando un objeto, es altamente recomendable que el nombre del objeto haga referencia a la clase en sus tres primeras letras. Por ejemplo, si la clase es Automoviles, una instancia de la misma que crea un determinado objeto debería llamarse AutFord, por ejemplo, haciendo alusión a que el Ford es un objeto de la clase Automoviles. Como ya dijimos, los controles son objetos que pertenecen a clases, por lo tanto al crearlos, sus nombres deben comenzar con tres letras que hagan referencia a la clase. En la siguiente lista se especifican las tres letras iniciales para los principales controles:
o       Button: Btn
o       Label: Lbl
o       TextBox: Txt
o       ListBox: Lst
o       ComboBox: Cmb
o       CheckBox: Chk
o       RadioButton: Rad
o       GroupBox: Grp
·        RUTINAS HABITUALES: Existen algunas funciones y también algunos procedimientos que están definidos y que son muy utilizados por los programadores. A medida que las vayamos utilizando, las iremos conociendo y descubriendo su funcionamiento. Por ahora, veamos algunos de ellos:
o       MsgBox: es una función que abre una ventana mostrando un determinado texto (que le es proporcionado en sus parámetros), a la vez que ofrece una serie de botones (también pasados por parámetros) y devuelve cuál es el botón que se pulsó. Ante este evento, el programador puede tomar una decisión. Es el caso típico de la ventana que hace una pregunta y ofrece los botones de Aceptar o Cancelar.
o       InputBox: es una función que abre un cuadro en el cual el usuario ingresa un texto, el cual luego puede ser utilizado dentro del programa.
o       Funciones de conversión de tipos: estas funciones permiten ingresar una variable de un tipo y devolver su equivalente pero de un tipo distinto. Por ejemplo, podemos convertir un valor de tipo texto (“345.78”) en su correspondiente número real (345.78). Nótese que en el primer caso se trata de la cadena compuesta por el 3, el 4, el 5, el ., el 7 y el 8, mientras que en el segundo caso es el número con valor 345.78. Esta conversión puede hacerse también a la inversa y entre otros tipos.
o       Funciones de manejo de caracteres: existen múltiples funciones que permiten trabajar con cadenas de caracteres (string) y que pueden llegar a resultarnos muy útiles a la hora de programar.
·        MANEJO DE ERRORES: En Visual Basic .NET existe una estructura llamada Try/Catch/Finally/End Try, que permite capturar un error y evitarlo, colocando en cada caso el código que lo tiene en cuenta. Vamos a verlo en detalle a medida que avancemos en el ejercicio de programar, pero a modo de introducción describiremos cada parte de la estructura:
o       Try: aquí se coloca el código que puede producir un error, por ejemplo, una división cuyo divisor podría llegar a ser 0.
o       Catch [tipo de error a capturar]: aquí se coloca el código que hay que ejecutar en el caso en que se produzca el error, por ejemplo, Catch divisor=0 Opcion=MsgBox(“MiPrograma”, “No se puede dividir por 0”), que lo que hace es enviar un cartel que avise que este error no puede producirse y eventualmente cierra el programa.
o       Finally: el código que se ejecuta independientemente del error. Esta parte es muy poco usada para nuestro propósito.
o       End Try: para finalizar la estructura.
Existen muchas otras utilidades que exceden los alcances de este apunte. Un manual de Visual Basic .NET puede llegar a ser un libro que contenga más de mil páginas. Obviamente, no vamos a consignar todo eso aquí. Es conveniente hacerse de un manual, ya sea como libro o como archivo .pdf, para consultar permanentemente las cuestiones que tienen que ver con la sintaxis y la utilización del lenguaje.


PRÁCTICA 2

  1. EJERCICIO FUNDAMENTAL: Habilitá una sección en tu carpeta, ya sea en papel o digital, a modo de cuadro, de distintos puntos, etc., en la que irás colocando todos los nuevos comandos, funciones, herramientas, etc, que vayas descubriendo mientras hagas los ejercicios. Trabajá siempre con una hoja y una lapicera a mano para ir anotando todo lo que vayas encontrando. NO CONFÍES SÓLO EN TU MEMORIA.
  2. Pasar el contenido de un TextBox a un Label
  3. Crear una calculadora que dados dos números ingresados por un TextBox, genere el resultado correspondiente dependiendo del botón que se presione (+, -, *, /)
  4. Obtener en un Label el mayor de tres números ingresados en TextBox
  5. Diseñar un formulario que muestre los distintos ítems a pagar (Luz, Gas, Agua, ABL, etc.) con su correspondiente valor, de modo que cada uno de ellos cuente con un CheckBox que pueda ser o no habilitado. En el pie del formulario debe figurar el total a pagar y un botón para confirmar el pago. Cuando se presiona el botón, aparece un MsgBox que informa que el pago se ha efectuado correctamente.
  6. Diseñar un formulario que permita elegir en forma de RadioButton, una prenda, un color y un talle. Informar en un Label en otro formulario, cuál fue el resultado de la elección.
  7. En un formulario colocar un rectángulo que debe cambiar de color y de posición según se indique en los marcos con RadioButton “Azul”, “Rojo”, “Verde” y “Amarillo”; y otro “Arriba” y “Abajo”.
  8. Cuando se desliza la barra de desplazamiento vertical, se indican los valores de la temperatura en dos escalas: Grados Centígrados y Grados Fahrenheit. La barra tiene como límites los valores -50ºC y +50ºC.
  9. La etiqueta que contiene el cartel “Quinto Año” varía de color (el fondo o el texto, según se seleccione) conforme la mezcla de los tres colores básicos: RGB(valor rojo, valor verde, valor azul)
  10. El primer formulario tiene la posibilidad de cargar un segundo formulario o de terminar el programa. El segundo formulario, que debe aparecer superpuesto al primero, puede ocultarse, descargarse o cerrarse. En todos los casos, debe aparecer un mensaje con el evento elegido.
  11. Realizar un proyecto que agregue el elemento de un TextBox a un ListBox, y permita también borrar el último de la lista, borrarlos todos o calcular el promedio de todos los números. Finalmente también cuenta con un botón para salir del sistema.
  12. Diseñar un proyecto equivalente al anterior, pero que también permite borrar la lista entera, ordenarla, indicar los valores máximo y mínimo de la lista, y sumar todos los valores
  13. El formulario de título “Semáforo” deberá cambiar la luz de rojo a verde (manteniendo la luz roja encendida se enciende el amarillo; luego se apagan las dos luces y se enciende la verde) y de verde a rojo (se apaga la luz verde y se enciende la amarilla; se apaga la luz amarilla y se enciende la roja)