Laboratorio de Programacion ED1 V1 2014
Laboratorio de Programacion ED1 V1 2014
Laboratorio de Programacion ED1 V1 2014
PROGRAMACIN
Derechos reservados
Primera Edicin: Octubre 2014
Tiraje: 500 ejemplares
Lectura Seleccionada N 1:
Bases de datos relacionales y SQL: Informacin por favor
ACTIVIDAD N1:
Lectura Seleccionada N 2:
De las ideas a la aplicacin: Casos Reales
Actividad N2
CONTROL DE LECTURA N 1:
AUTOEVALUACION N 1:
Bibliografa de la Unidad I
DIAGRAMA DE PRESENTACIN DE LA ASIGNATURA
Lectura Seleccionada N 1:
Lenguajes de programacin
ACTIVIDAD N1:
Tema N 3: Estructuras Repetitivas
1 Estructura Do...Loop
2 Estructura For...Next
3 Estructura For Each...Next
4 Salida de una Estructura repetitiva
Lectura Seleccionada N 2:
Arquitecturas de Interfaz de usuario
Actividad N2
TAREA ACADMICA n 1:
AUTOEVALUACION N 2:
Bibliografa de la Unidad II
Lectura Seleccionada N 1:
POR QUE ORIENTADO A OBJETOS?
ACTIVIDAD N1:
Tema N 3: Procedimientos
1 Procedimientos SUB
2 Procedimientos Function
Lectura Seleccionada N 2:
Desarrollo de componentes
Actividad N2
CONTROL DE LECTURA N 2:
AUTOEVALUACION N 3:
Lectura Seleccionada N 1:
Representacin de las entidades en el diseo de formularios
ACTIVIDAD N1:
Tema N 3: Creacin de proyectos de acceso a datos
1 Procedimientos SUB
2 Procedimientos Function
Lectura Seleccionada N 2:
La Interfaz como mediadora
Actividad N2
TAREA ACADMICA N 2:
AUTOEVALUACION N 4:
Bibliografa de la Unidad IV
GLOSARIO
E
s difcil, por no decir imposible, ignorar la presencia de - Obtener los conocimientos fundamentales e importantes so-
los sistemas de informacin en nuestras organizacio- bre la creacin de proyectos y soluciones para una organiza-
nes, el procesamiento de datos en nuestras empresas, cin
reclama cada vez ms atencin, por ello, la labor del ingeniero - Programar aplicaciones cliente/servidor utilizando Visual
informtico, estar orientada a la creacin de soluciones que Basic 2012 y Microsoft SQL Server 2012.
agilice el flujo de tratamiento de datos de la empresa, utilizando
- Crear aplicaciones Cliente/Servidor, definiendo criterios de
para ello, herramientas de ltima generacin, que permitan la
interfaz y seguridad de los datos
programacin de aplicaciones de escritorio y basadas en web.
El presente material, ofrece la informacin necesaria para el
Mediante la asignatura de Laboratorio de Programacin, el
logro de los aprendizajes previstos. Adems de los temas presen-
alumno adquirir los conocimientos y las tcnicas necesarias
tados, de requerirlo, le ayudaremos a profundizar en temas es-
para que pueda formase y conocer las herramientas de ltima
pecficos, absolviendo sus preguntas, proveyndole de la infor-
generacin, que permitan el desarrollo de aplicaciones rpida,
macin bibliogrfica y otros recursos que juzgue conveniente.
versatil y funcional.
LABORATORIO DE PROGRAMACIN
Desarrollo
de contenidos
Actividades Autoevaluacin
MANUAL AUTOFORMATIVO
9
PRESENTACIN DE LA ASIGNATURA
LABORATORIO DE PROGRAMACIN
Recordatorio Anotaciones
Diagrama Objetivos Inicio
COMPETENCIA DE LA ASIGNATURA
Construye proyectos
Desarrollo Actividadesinformticos con un lenguaje de programacin visual promo-
Autoevaluacin
deviendo
contenidos
la automatizacin de los procesos, promoviendo el uso de herramientas tec-
nolgicas, mostrando perseverancia en las actividades acadmicas.
UNIDADES DIDCTICAS
Recordatorio Anotaciones
Introduccin a
la programacin Programacin con PDO y Proyectos
Acceso a datos
y bases de datos visual basic 2012 avanzados
relacionales
Lecturas
seleccionadas DIAGRAMA DE PRESENTACIN DE LA UNIDAD
Glosario Bibliografa
CONTENIDO
Recordatorio
Desarrollo
Anotaciones
Actividades Autoevaluacin
EJEMPLOS ACTIVIDADES
de contenidos
Lecturas
seleccionadas
Glosario BIBLIOGRAFA
Bibliografa AUTOEVALUACIN
Recordatorio CONOCIMIENTOS
Anotaciones PROCEDIMIENTOS ACTITUDES
Tema 1: Introduccin a 1.
Crea programas utilizando Valora el desarrollo tecnol-
la Programacin Microsoft Visual Basic 2012. gico, informtico y el uso de
1. Conceptos bsicos.
2. Implementa Base de Datos la computadora como herra-
2. Introduccin al Visual Studio
relacionales en Microsoft Sql mienta primordial, as como el
2012.
Server utilizando T-SQL. software de oficina dentro del
3. Instrucciones y sintaxis con
desarrollo de su carrera.
Visual Basic 2012
Actividad N 1
Tema 2: Base de Datos con Implementa una base de datos
MS SQL Server de acuerdo a las directivas de
1. Introduccin al Transact normalizacin utilizando T-SQL.
SQL
2. Creacin de Bases de datos
3. Tablas y relaciones 3. Recupera datos seleccionados
de una base de datos relacio-
nal utilizando consultas SQL.
Lectura seleccionada N 1:
Bases de datos relacionales y 4. Crea procedimientos almace-
SQL: Informacin por favor! nados utilizando Sql Server
Nelson Howell p123-134.
Actividad N 2
Tema 3: Lenguaje SQL. Programa procedimientos alma-
1. Creacin de consultas Sim- cenados para recuperar datos
ples. de una Base de datos mediante
2. Condiciones y filtros. consultas SQL.
3. Consultas de combinacin
JOIN
4. Funciones de Agregado. Control de Lectura N1
5. Consultas de accin Prctica de desarrollo de los te-
mas 1, 2, 3 y 4.
Tema 4: Procedimientos
Almacenados.
1. Introduccin a la programa-
cin con Transact SQL
2. Trabajando con procedi-
mientos almacenados.
3. Parmetros y variables.
Lectura Seleccionada N 2:
De las ideas a la aplicacin: Ca-
sos Reales. Effy Oz Administra-
cin de los sistemas de informa-
cin. p 242-244.
Autoevaluacin de la Unidad 1
ollo
nidos 12
Actividades Autoevaluacin UNIDAD I: INTRODUCCIN A LA PROGRAMACIN Y BASES DE DATOS RELACIONALES
as Glosario Bibliografa
nadas
TEMA N 1: Introduccin a la Programacin
1 Conceptos Bsicos
torio Anotaciones
Para poder iniciar en el mundo de la programacin y empezar a aprender el len-
guaje Visual Basic, es necesario entender qu es un lenguaje de programacin y
cmo funciona, incluida la terminologa de programacin.
1.1. La programacin
Las computadoras por s slas no piensan, es decir, un equipo no es inteligente. Un
computador es, un conjunto de diminutos conmutadores electrnicos que estn
encendidos o apagados (sistema binario 1 o 0). Al establecer diferentes combina-
ciones de estos conmutadores, puede hacer que la computadora haga algo, por
ejemplo, mostrar algo en pantalla o emitir un sonido. En su forma ms bsica, la
programacin consiste en darle instrucciones a un computador e ir dicindole qu
es lo que debe hacer.
El lenguaje escrito y hablado tambin cuenta con una estructura: por ejemplo, un
libro consta de captulos, con prrafos que contienen oraciones. Los programas
escritos en Visual Basic disponen tambin de una estructura: los mdulos son como
los captulos; los procedimientos, como los prrafos; y las lneas de cdigo, como
las oraciones.
Es decir, crear un archivo llamado Module1.vb, con el cdigo necesario para em-
pezar a escribir. Adems del procedimiento Sub Main, el cual se usar como pun-
to de partida de nuestro ejecutable, tambin ha creado una "definicin" llamada
Module Module1 con su respectivo End Module, el cual Indica dnde termina la
definicin del mdulo.
Lo que estamos creando es una aplicacin tipo consola, es decir, no se crear nin-
guna ventana grfica, sino que el ejecutable que vamos a crear funciona desde una
ventana de MS-DOS (o consola).
En este ejemplo, vamos a mostrar un mensaje que diga algo asi como: Hola mundo,
desde Visual Basic 2012, por tanto para mostrar un texto en la "consola", usaremos
una funcin, mtodo o instruccin, que si bien no es nativa de Visual Basic 2012, la
usaremos como si lo fuese. Todo esto es posible gracias a los assemblies o a las clases
incluidas en el Net Framework. Realmente todo lo que se usa en .Net son funciones,
la funcin es Consote.Write y se usa de la siguiente forma:
Console.Write("Hola mundo, desde Visual Basic 2012")
ollo
nidos 14
Actividades Autoevaluacin UNIDAD I: INTRODUCCIN A LA PROGRAMACIN Y BASES DE DATOS RELACIONALES
as Glosario Bibliografa
nadas
Escrbelo entre el Sub Main() y el End Sub. Comprueba que cuando escribas Con-
sole y el punto, se mostrarn las funciones que Console pone a nuestra disposicin,
as como una pequea ayuda, en modo de ToolTip.
torio Anotaciones
Ahora tenemos que indicarle al "Entorno Integrado" (IDE) que compile el proyec-
to y lo ejecute, para ello pulse la tecla F5, notar que se muestra el mensaje en un
breve instante de tiempo en la consola.
Pero lo mejor seria hacer que el programa se detenga hasta que pulsemos la tecla
Enter. Para ello, aade la siguiente lnea a continuacin de la anterior:
Console.Read()
Pulsa F5, adems de que la ventana no se cierra hasta que pulses Enter.
Realmente se puede escribir cualquier cosa y se ir mostrando en la ventana de
consola, pero hasta que pulses Enter no dejar de mostrarse.
Vamos a crear un programa que, ingresado dos nmeros devuelva la suma, para
ello es necesario aadir otro mdulo e indicar a visual Basic que ste ser el que se
ejecute, para ello siga los siguientes pasos, asumiendo que se qued en la pantalla
del ejemplo anterior:
1. Haga clic derecho en el nombre del proyecto ConsoleAplication1 en el panel
Explorador de soluciones.
2. Seleccione la opcin ADD
3. Seleccione console
Observe la figura:
Figura N 4: procedimiento para insertar un nuevo mdulo
LABORATORIO DE PROGRAMACIN
UNIDAD I: INTRODUCCIN A LA PROGRAMACIN Y BASES DE DATOS RELACIONALESDesarrollo
de contenidos
Actividades Autoevaluacin
MANUAL AUTOFORMATIVO
15
Si pulsa la tecla F5, el mdulo que se ejecutar ser el module1, a continuacin indi-
caremos que se debe ejecutar el module2:
1. Haga clic en el men Project y elija la opcin ConsoleApplication1 Properties
2. En el cuadro de propiedades, seleccione module2 en la opcin Startup object
Ahora puede pulsar la tecla F5, ingrese dos nmeros enteros cualesquiera y observe
el resultado:
Console.WriteLine("Ingrese
Muestra el segundo mensaje al usuario
segundo nmero")
Console.WriteLine("La suma
Muestra el resultado en consola
es: " & resultado)
as Glosario Bibliografa
nadas
3 Instrucciones y sintaxis de Microsoft Visual Basic 2012
El cdigo fuente en Microsoft Visual Basic 2012 consta de una serie de lneas,
muchas de las cuales, se sangran o indentan para mejorar la legibilidad. En un
torio Anotaciones programa, los espacios en blanco entre los elementos no resultan significativos,
y las partes importantes del programa se suelen separar unas de otras por lneas
en blanco.
3.1. Comentarios
Los Comentarios sirven para documentar los programas y en ellos se escriben ano-
taciones sobre cmo funciona el programa o sobre cmo se ha construido.
En Microsoft Visual Basic 2012, los comentarios que constan de una nica lnea es-
tn precedidos por una comilla simple (), si se extienden sobre varias lneas estn
encerrados entre /* y */. Ejemplos de comentarios
Comentario de una lnea
/* Comentario que ocupa
ms de una lnea */
3.2. Sentencia
Una sentencia representa una accin o instruccin. Las sentencias se clasifican en
ejecutables, por ejemplo las operaciones de clculo y entrada/salida de datos y no
ejecutables, por ejemplo las declaraciones que definen el significado y propsito de
de los identificadores.
Por otra parte las sentencias se dividen en simples, las que no contienen ninguna
otra sentencia y estructuradas, que contienen otras sentencias para que se ejecuten
condicionalmente o repetitivamente. Ejemplos de sentencias son:
z = 15 esta sentencia asigna 15 a la variable z
z =z+100 esta sentencia aade 100 al valor de z
Console.WriteLine("Hola") sentencia de visualizacin
if z >= 0 then sentencia estructurada
Console.WriteLine("Positivo")
else
Console.WriteLine("Negativo")
3.3. Bloque
Un bloque es una estructura que agrupa sentencias. Los bloques comienzan con
una palabra reservada y terminan con una palabra END. Un bloque puede estar
dentro de otro bloque y se dice que el bloque interior est anidado dentro del
exterior o que ambos bloques estn anidados
if z >= 0 then
estas sentencias aparecen sangradas o indentadas
z = z*-1
Console.WriteLine("Negativo")
End if
Recordatorio Anotaciones
as Glosario Bibliografa
nadas
3.6. Variables
Las variables se utilizan para almacenar valores temporalmente durante la ejecu-
cin de una aplicacin. Las variables tienen un nombre (la palabra que utiliza para
torio Anotaciones referirse al valor que contiene la variable) y un tipo de dato (que determina la clase
de dato que la variable puede almacenar).
A. Declaracin de Variables
Declarar una variable es decirle de antemano al programa las variables que utili-
zaremos. Se declara una variable mediante la instruccin Dim, proporcionando
un nombre a la variable, segn la siguiente sintaxis:
Dim nombre_variable [As tipo]
3.7. OPERADORES
Los operadores permiten realizar operaciones con las variables y con los datos, Mi-
crosoft Visual Basic 2012 utiliza los siguientes operadores:
A. Operadores Aritmticos
^ Potencia
* Multiplicacin
/ Divisin real
\ Divisin entera
Mod Residuo del cociente entero
+ Suma
- Resta
& Concatenacin
LABORATORIO DE PROGRAMACIN
UNIDAD I: INTRODUCCIN A LA PROGRAMACIN Y BASES DE DATOS RELACIONALESDesarrollo
de contenidos
Actividades Autoevaluacin
MANUAL AUTOFORMATIVO
19
C. Operadores Lgicos
And Y lgico
Or O lgico
Xor O Exclusivo
Not Negacin
Una parte fundamental en el desarrollo de aplicaciones son las bases de datos, una base
de datos es un conjunto de datos organizados, ordenados y sistematizados, almacenados
en un dispositivo secundario, sin redundancias perjudiciales o innecesarias, da servicio
a una aplicacin o ms, se garantiza la seguridad y confidencialidad de los datos.
as Glosario Bibliografa
nadas
1.1. El lenguaje de definicin de datos DDL
Los cambios a la estructura de una base de datos son manejados por un conjunto
de sentencias SQL, denominadas conjuntamente Lenguaje de Definicin de Datos.
torio Anotaciones Utilizando sentencias DDL, se puede:
Definir y crear objetos (tablas, consultas, etc.)
Suprimir una tabla u objetos que ya no se necesita
Cambiar la definicin de una tabla u objetos existente
El ncleo del Lenguaje de Definicin de Datos est basado en tres instrucciones SQL:
CREATE : define y crea un objeto de la base de datos
DROP : elimina un objeto existente en la base de datos
ALTER : modifica la definicin de un objeto de la base de datos
Veamos la forma ms simple de crear una base de datos mediante el siguiente ejemplo:
USE MASTER
GO
CREATE DATABASE UNIVERSIDAD - - Crea la base de datos Universidad
La creacin de una base de datos en Microsoft SQL Server 2012, precisa mnima-
mente de dos archivos: un archivo mdf (priMary Data File) y un archivo ldf (Log
Data File), en el siguiente ejemplo se crea la base de datos VENTAS, especificando
los archivos correspondientes:
86(PDVWHU
*2
&5($7('$7$%$6(9HQWDV
21
1$0( 9HQWDV 1RPEUHOyJLFRGHODUFKLYRGHGDWRV
),/(1$0(
'?YHQWDVPGI
1RPEUHItVLFRDUFKLYRGHGDWRV
6,=( 7DPDxRLQLFLDO
0$;6,=( 7DPDxRPi[LPR
),/(*52:7+ )DFWRUGHFUHFLPLHQWR
/2*21
1$0( 9HQWDV/RJ 1RPEUH OyJLFR GHO DUFKLYR GH
WUDQVDFFLRQHV
),/(1$0(
'?YHQWDVOGI
1RPEUHItVLFRDUFKLYRGHWUDQVDFFLRQHV
6,=( 7DPDxRLQLFLDO
0$;6,=( 81/,0,7(' 7DPDxRPi[LPROLPLWDGRDOGLVFR
),/(*52:7+ )DFWRUGHFUHFLPLHQWR
*2
Importante
Debe crear la base de datos Ventas para poder continuar con la creacin de los
dems objetos de base de datos.
3 Tablas y relaciones
Recordatorio Anotaciones
Las tablas sin los objetos fundamentales de las bases de datos, son los nicos objetos
que pueden almacenar datos, sera difcil concebir una base de datos sin tablas,
a continuacin se muestra cmo gestionamos las tablas en nuestra base de datos.
La sintaxis es la siguiente:
CREATE TABLE NombreTabla
(Columna1 tipoDato [restriccin1],
Columna2 tipoDato [restriccin1],
ColumnaN tipoDato [restriccin1],
[Restriccin2],
[Restriccin2])
El siguiente ejemplo crea la tabla ventas con una clave combinada, definida en una
restriccin de tipo 2.
ollo
nidos 22
Actividades Autoevaluacin UNIDAD I: INTRODUCCIN A LA PROGRAMACIN Y BASES DE DATOS RELACIONALES
as Glosario Bibliografa
nadas
A. Modificar Tablas
La instruccin ALTER TABLE sirve para modificar la estructura de una tabla
existente. Mediante esta instruccin podemos aadir columnas nuevas, eliminar
torio Anotaciones columnas, cambiar caractersticas de las columnas, etc. Tambin nos permite
crear nuevas restricciones o borrar algunas existentes.
La clusula ADD permite aadir una columna nueva a la tabla.
En el siguiente ejemplo se aade el campo direccin a la table Clientes
ALTER TABLE tblClientes
ADD cliDireccion char(50)
B. Eliminar Tablas
La sentencia DROP TABLE sirve para eliminar una tabla. No se puede eliminar
una tabla si el borrado infringe las reglas de integridad referencial (si interviene
como tabla padre en una relacin y tiene registros relacionados).
Ejemplo:
USE NEGOCIOS
DROP TABLE tab1 --Elimina de la base de datos la tabla tab1.
El cdigo anterior, crea una relacin de uno a muchos entre Directores (uno) y
pelculas (muchos).
LABORATORIO DE PROGRAMACIN
Diagrama
UNIDAD
Objetivos
I: INTRODUCCIN
Inicio
A LA PROGRAMACIN Y BASES DE DATOS RELACIONALESDesarrollo
de contenidos
Actividades Autoevaluacin
MANUAL AUTOFORMATIVO
23
LECTURA SELECCIONADAS N 1
Lecturas Glosario Bibliografa
seleccionadas
Recordatorio Anotaciones
Ven a miAnotaciones
Recordatorio tabla
Las relaciones (tablas) son la fundacin de las bases de datos relacionales. Todos los
datos estn organizados en filas y columnas de forma muy parecida a un horario de
ferrocarriles o a una hoja de clculo. Cada fila es un registro y cada columna repre-
senta un tipo de elemento de base de datos. Un ejemplo es un listado de nombres y
nmeros telefnicos de empleados. A continuacin aparece una tabla que muestra
tres filas y cuatro columnas. Cada fila representa un individuo y cada columna repre-
senta un elemento de informacin sobre el individuo. La fila superior contiene los
nombres de las columnas.
1RPEUH $SHOOLGRV &yGLJRGHiUHD 1~PHURWHOHIyQLFR
6DP -RQHV
7RP 6PLWK
'RURWK\ 5XE\VOLSSHUV
Tal vez necesitemos ms de una tabla en nuestra base de datos. Por ejemplo, suponga-
mos que tambin necesitamos las fechas de nacimiento de dichos individuos. Podemos
crear otra tabla como la siguiente:
Una pregunta razonable que usted podra preguntar es por qu no pusimos la fecha
de nacimiento en la primera tabla. Cuando considere el asunto, comprender que no
es inusual que una persona tenga ms de un nmero telefnico. Pero cada individuo
slo debe tener una fecha de nacimiento. Esto significara que podra haber mltiples
filas para Sam Jones en la primera tabla, pero no en la segunda. Para ilustrar el punto,
la siguiente tabla tiene ms de un nmero telefnico para cada uno de los individuos.
Tambin es posible que estemos haciendo una suposicin invlida de que los dos Sam
Jones son la misma persona. Si tuviramos el nmero de DNI, estaramos seguros.
Ahora podemos comenzar a crear tablas significativas, que cumplan con las reglas de la
normalizacin. Qu es la normalizacin? Siga leyendo por favor.
Normalizacin
Las bases de datos diseadas correctamente seguirn las reglas de la normalizacin.
Existen tres de dichas reglas, qiu' >.l, ;i['Ii( an a nuestro diseo de base de datos. Cuan-
do una base de datos cumple con dichas reglas, se dice que est en forma normal. Las
1 Howell, Nelson. Microsoft Visual Interdev !Fcil. Londres: Prentice-Hall Hispanoamericana, S.A.; 2000. p123-134.
ollo
nidos 24
Actividades Autoevaluacin UNIDAD I: INTRODUCCIN A LA PROGRAMACIN Y BASES DE DATOS RELACIONALES
as Glosario Bibliografa
nadas
siguientes secciones discuten cada una de las tres realas, conocidas como (sorpresa) la
primera forma normal, la segunda forma normal y la tercera forma normal.
ACTIVIDAD N 1:
Desarrollo Actividades Autoevaluacin
de contenidos
El lenguaje SQL, se utiliza para recuperar datos de una base de datos relacional, para
Recordatorio
agregar
Anotaciones
datos a la misma, para eliminarlos o para cambiarlos.
Las consultas de seleccin se utilizan para indicar al motor de datos que devuelva in-
formacin de las bases de datos, esta informacin es devuelta en forma de conjunto de
registros que se pueden almacenar en un objeto recordset. Este conjunto de registros
es modificable.
Las consultas de accin permiten manipular los datos como insertarlos, eliminarlos o
modificarlos.
3HUVRQDV
Recordatorio Anotaciones
-RQHV
6PLWK
5XE\VOLSSHUV
Si se deseara mostrar todos los campos de una tabla, podramos utilizar el asterisco *
SELECT * FROM tblmaClientes
A. ALL
Si no se incluye ninguno de los predicados se asume ALL.
SELECT ALL * FROM Empleados;
SELECT * FROM Empleados;
B. TOP
Supongamos que queremos recuperar los nombres de los 5 primeros empleados:
SELECT TOP 5 empApellidos, empNombres FROM EMPLEADOS;
C. DISTINCT
Omite los registros que contienen datos duplicados en los campos seleccionados.
Por ejemplo, si quisiramos observar los lugares donde viven los empleados, la si-
guiente instruccin SQL devuelve un nico registro por cada lugar:
SELECT DISTINCT empLugar from EMPLEADOS;
ollo
nidos 26
Actividades Autoevaluacin UNIDAD I: INTRODUCCIN A LA PROGRAMACIN Y BASES DE DATOS RELACIONALES
as Glosario Bibliografa
nadas
D. Alias
La palabra reservada AS que se encarga de asignar el nombre que deseamos a la
columna deseada. Veamos el siguiente ejemplo
torio Anotaciones SELECT pelcodigo AS Cdigo, peltitulo AS 'Ttulo de la Pelcula',
pelIdioma AS Idioma, pelEstreno AS 'Fecha de Estreno' FROM
tblmaPeliculas;
2 Condiciones y Filtros
2.1. Criterios de Seleccin - WHERE
La clusula WHERE (donde) se utiliza para establecer criterios que permitan filtrar
el resultado de una consulta. WHERE es opcional, pero cuando aparece debe ir a
continuacin de FROM.
SELECT Apellidos, Salario FROM Empleados WHERE Salario > 2000;
C. DIFERENTE <>
Mostrar a los actores cuya nacionalidad no sea peruana
SELECT act_Codigo, act_Apellido, act_Nombre, act_Naciona FROM
tblmaActores WHERE act_Naciona<>'peruana'
Este ejemplo devuelve los campos cuyo contenido empiece con una letra de la A a
la D seguidas de cualquier cadena.
Like '[A-D]%'
2.6. El Operador In
Este operador devuelve aquellos registros cuyo campo indicado coincide con algu-
no de los en una lista. Su sintaxis es:
expresin In(valor1, valor2, . . .)
SELECT cliCodigo, cliApellidos, cliNombres, cliLugar FROM
tblmaClientes WHERE cliLugar IN('Huancayo','El Tambo','Chupaca')
El ejemplo siguiente muestra cmo podra combinar las tablas Categoras y Produc-
tos basndose en el campo IDCategoria:
SELECT Nombre_Categora, NombreProducto FROM Categorias
INNER JOIN Productos ON Categorias.IDCategoria = Productos.
IDCategoria
as Glosario Bibliografa
nadas
incluyendo aquellas que no tienen relacin.
4 Funciones de Agregado
Combina los registros con valores idnticos, en la lista de campos especificados,
torio Anotaciones
en un nico registro. Para cada registro se crea un valor sumario (calculado) si se
incluye una funcin SQL agregada, como por ejemplo Sum o Count, en la instruc-
cin SELECT.
Su sintaxis es:
SELECT campo1, campo2, FUNCION(Campo) FROM tabla [WHERE criterio]
GROUP BY campo1, campo2
[HAVING criterioFUNCION]
Se utiliza la clusula WHERE para excluir aquellas filas que no desea agrupar, y la
clusula HAVING para filtrar los registros una vez agrupados.
Veamos el siguiente ejemplo:
SELECT Id_Familia, Sum(Stock) FROM Productos GROUP BY Id_Familia;
5 Consultas de Accin
Las consultas de accin, permitirn el ingreso, modificacin o eliminacin de los
datos, veamos las siguientes instrucciones:
5.1. Instruccin UPDATE
Si deseamos cambiar el apellido de una persona, de Rubysiippers a Combatboots,
podemos utilizar la instruccin UPDATE:
UPDATE Personas SET Apellido = 'Combatboots' WHERE Apellido='Rubysiippers'
Puede haber un problema con esto. El RDBMS busca cada aparicin de Rubysiip-
pers en la columna Apellido de la Tabla de personas y lo cambia a Combatboots.
Esto puede ser un problema si existen otras personas con el apellido Rubysiippers,
as que deberemos usar el nmero del seguro social en la clusula WHERE. La clave
primaria (NSS) es nica, as que slo se cambiar un registro:
UPDATE Personas SET Apellido = 'Combatboots' WHERE NSS='333-44-5555'
LABORATORIO DE PROGRAMACIN
UNIDAD I: INTRODUCCIN A LA PROGRAMACIN Y BASES DE DATOS RELACIONALESDesarrollo
de contenidos
Actividades Autoevaluacin
MANUAL AUTOFORMATIVO
29
Cuando se ejecuta un script, los comandos son ejecutados por SQL Server para
mostrar un conjunto de resultados, configurar un comportamiento y administrar al
servidor o para manipular datos contenidos en una base de datos.
A estos scripts se les puede dar un nombre y guardar como procedimientos almace-
nados en el SQL Server. Posteriormente se los puede invocar de diversas maneras,
para que realicen el procesamiento de los comandos T-SQL incorporados.
El SQL Server provee una serie de procedimientos almacenados del sistema, algu-
nos de los cuales ya hemos utilizado. Estos procedimientos son guardados en la base
de datos Master y contienen comando Transact SQL que facilitan muchas tareas.
as Glosario Bibliografa
nadas
Para ejecutar un procedimiento almacenado, debe utilizar el comando EXEC, el
siguiente ejemplo ejecuta el procedimiento creado anteriormente:
EXEC uspClientesHuancayo
torio Anotaciones
3 Parmetros y variables
Los parmetros son valores que el usuario ingresa para la ejecucin del procedi-
miento almacenado, si un procedimiento almacenado requiere valores de parme-
tros, se deben especificar cuando se ejecuta el procedimiento.
Los parmetros se definen como variables de SQL, stos son identificadores que de-
ben iniciar con un @ (arroba), definido con un tipo de dato. Cuando se los invoca
para ser ejecutados, se debe incluir un valor para el parmetro (y opcionalmente,
el nombre del parmetro).
Los parmetros y las variables son una parte fundamental de hacer dinmico a un
procedimiento almacenado. Los parmetros de entrada habilitan al usuario que
est ejecutando el procedimiento a pasar valores al procedimiento almacenado.
Desarrollo Actividades Autoevaluacin
de contenidos
LECTURA SELECCIONADAS N 2
Lecturas Glosario Bibliografa
seleccionadas
2 Fuente: McDonaId, D.. "Overstock.com Overcomes Overloads", C/0 Insight (www.cio.insigtit.com), 5 de mayo
de 2005; www.overstock. com, 2005; Westerveit, R., "Overstock Is Newest Grid Convert", SearchOracle.com,
31 de agosto de 2004.
LABORATORIO DE PROGRAMACIN
UNIDAD I: INTRODUCCIN A LA PROGRAMACIN Y BASES DE DATOS RELACIONALESDesarrollo
de contenidos
Actividades Autoevaluacin
MANUAL AUTOFORMATIVO
31
Los ingresos en 2004 de la compaa establecida en Sal Lake City fueron cinco veces su
total de haca dos aos y las ganancias brutas antes de los intereses haban aumentado
ms de 300% desde 2002, de $18.3 millones a $65.8 millones. Aunque Overstock.com
todava tena que determinar las ganancias anuales, tena una ganancia de $2.5 millones
para el tercer trimestre de 2004. Overstock.com sigue mejorando el desempeo gracias
a que se concentra en la informacin extrada de su experiencia con los clientes. Esto
simplemente significa guardar las transacciones de ventas en inmensas bases de datos e
intentar determinar qu agrada y desagrada a los clientes.
Lo primero que los gerentes de IT queran desarrollar era un reflejo de las transaccio-
nes y los sistemas de bases de datos para que, si fallaba un sitio, un sistema duplicado en
otra parte pudiera seguir procesando y registrando las transacciones. Aunque la compa-
a ya tena un respaldo de los datos de transacciones, los archivos del respaldo estaban
en el mismo lugar que los originales. En 2004, por razones de seguridad, el personal de
IT quera que los datos respaldados estuvieran en otro lugar. La opcin: la co-ubicacin.
En una co-ubicacin, una ofganizacin emplea un servidor Web en una planta propie-
dad de otra organizacin. La organizacin anfitriona da mantenimiento al servidor y
asegura el respaldo y el soporte tcnico. La co-ubicacin es atractiva para las compaas
con conexiones a Internet limitadas o poco personal de IT para atender el servidor.
as Glosario Bibliografa
nadas
Los cambios que Overstock.com ha hecho en su capacidad de almacenamiento de datos
han valido la pena, porque la compaa registr las mejores ventas de fin de ao, $221
millones, en 2004. El personal de Overstock.com ha aumentado en la misma propor-
torio Anotaciones
cin que las ventas durante los ltimos cinco aos. Desde 2002, la compaa ha contra-
tado ms del doble de su personal original y ahora tiene 427. De ellos, 49 trabajan en IT,
casi cuatro veces el nmero de 13 personas que manejaban sus necesidades en 2002. Los
gerentes de IT para Overstock.com han observado que dos de las principales razones
para su rediseo exitoso han sido la integracin de los empleados nuevos con los vetera-
nos y la contratacin de empleados motivados no slo por las ganancias materiales, sino
tambin por los desafos intelectuales.
Parece que los desafos profesionales son una gran motivacin para algunos integrantes
del equipo. Un caso concreto es la opcin de disear su propia joyera en el sitio de la
empresa que comenz ofrecerse en noviembre de 2004. Un programador que hizo casi
todo el trabajo para el sitio nuevo estaba decidido a terminar el proyecto a tiempo para
el 14 de febrero del ao siguiente. Con apenas tres meses, el progra-mador se qued
varias noches seguidas en la oficina para dedicar todo su tiempo al proyecto, el cual
concluy a tiempo. El empleado disfrut un periodo adicional de dos semanas de vaca-
ciones en la primavera de 2005.
Diagrama Objetivos Inicio
ACTIVIDAD N 2:
Desarrollo Diagrama
Actividades Objetivos
Autoevaluacin Inicio
de contenidos
CONTROL DE LECTURA N 1
Lecturas Glosario Bibliografa
Recordatorio seleccionadas
Anotaciones
Recordatorio Anotaciones
LABORATORIO DE PROGRAMACIN
UNIDAD I: INTRODUCCIN A LA PROGRAMACIN Y BASES DE DATOS RELACIONALESDesarrollo
de contenidos
Actividades Autoevaluacin
MANUAL AUTOFORMATIVO
33
AUTOEVALUACIN DE LA UNIDAD N I
Actividades Autoevaluacin
s
Recordatorio Anotaciones
3. Para no mostrar las filas duplicadas del resultado de una sentencia SELECT se emplea.
a) NO DUPLICATE
b) UNIQUE
c) DISTINCT
d) Ninguna de las anteriores
as Glosario Bibliografa
nadas
y eliminar tablas.
b) Realizar cambios en los datos contenidos en la base de datos: incluir registros,
borrarlos, editarlos...
torio Anotaciones c) Ejercer control sobre los procesos que ejecutan transacciones y los permisos de
la base de datos.
d) Todas son ciertas.
8. En una clusula LIKE, cmo se obtienen todos los nombres de personas que tienen
exactamente cuatro caracteres?
a) LIKE "????"
b) LIKE "____"
c) LIKE "...."
d) Ninguna de las anteriores.
10. En SQL, para ordenar los datos devueltos por una sentencia SELECT se emplea la
clusula
a) ORDER BY
b) ORDERED BY
c) SORT BY
d) SORTED BY
12. En una clusula LIKE, cmo se obtienen todos los nombres de personas que co-
mienzan con "Juan"?
a) LIKE "Juan%"
b) LIKE "Juan*"
c) LIKE "Juan$"
d) LIKE "Juan&"
Delgado, Albert. Microsoft SQL Server 2012. Madrid: Pearson Education S.A.; 2011.
Ocharte Ojeda, Francisco. Programacin con Visual Basic 2012. Madrid: Anaya Multime-
dia; 2011.
ollo
nidos 36
Actividades Autoevaluacin
as Glosario Bibliografa
nadas
torio Anotaciones
LABORATORIO DE PROGRAMACIN
Desarrollo
de contenidos
Actividades Autoevaluacin
MANUAL AUTOFORMATIVO
37
Desarrollo
UNIDAD II: PROGRAMACIN CON VISUAL BASIC 2012
Actividades Autoevaluacin
de contenidos
Recordatorio Anotaciones
BIBLIOGRAFA AUTOEVALUACIN
Lecturas Glosario Bibliografa
seleccionadas
Lectura seleccionada 2:
Caractersticas y Proceso de
Segmentacin Objetivos del
Tomo 7: Mercados Objetivos
en Constante Cambio de la
Coleccin 12 Pasos para el
xito. Coleccin de La Rep-
blica.
Autoevaluacin de la Unidad II
ollo
nidos 38
Actividades Autoevaluacin UNIDAD II: PROGRAMACIN CON VISUAL BASIC 2012
as Glosario Bibliografa
nadas
1 PROYECTOS Y SOLUCIONES
Visual Studio.NET utiliza como elementos de trabajo de primer nivel la solucin.
Esta puede componerse de uno o ms proyectos, cada uno de los cuales contendr,
bsicamente, mdulos de cdigo correspondientes a componentes, formularios, etc.
Suponga que est creando una serie de componentes de negocio, as como una in-
terfaz nativa y otra Web. Bsicamente tendra tres proyectos: la biblioteca en la que
se alojaran los componentes, una aplicacin Windows nativa y otra de tipo web. El
conjunto de estos tres proyectos sera la solucin completa.
Para empezar, iniciaremos un nuevo proyecto, y por tanto una solucin, seleccio-
nando de la carpeta de proyectos de Visual Basic el elemento Biblioteca de Clases,
asignando el nombre HolaMundo al proyecto. Ese mismo nombre ser utilizado
tambin globalmente para la solucin.
LABORATORIO DE PROGRAMACIN
UNIDAD II: PROGRAMACIN CON VISUAL BASIC 2012Desarrollo
de contenidos
Actividades Autoevaluacin
MANUAL AUTOFORMATIVO
39
Se ha elegido el ele-
mento indicado y Recordatorio Anotaciones
tras introducir un
nombre y ubicacin,
va a pulsarse el bo-
tn Aceptar.
De inmediato ver aparecer una nueva pgina en el entorno, con el nombre Class1.
cs, conteniendo algo de cdigo, en concreto el esqueleto de una clase.
1.2. Conociendo el entorno de desarrollo
Tiene barra de mens y barras de botones (1). El cuadro de herramientas (2), que
se desplegar cuando pases el ratn por encima. A continuacin tienes el espacio
de trabajo (3), en l te aparecern las ventanas de cdigo de cada archivo, as como
el examinador de objetos, la ayuda. A la derecha tienes el explorador de soluciones
(4). Justo debajo est la ventana de propiedades (5), que se ocupa de mostrar las
propiedades de algn archivo del proyecto, o alguna clase, o algn objeto, o algn
mtodo. Aqu tienes tambin otra pestaa, la de ayuda dinmica, que va mostrando
temas de ayuda que tienen que ver con lo que ests haciendo (si escribes class te
salen temas sobre class, si escribes string te salen temas sobre eso, etc.). Debajo tie-
nes ms ventanas (la lista de tareas, ventana de comandos, resultados, resultados de
bsqueda de smbolos). En el men Ver puedes mostrar y ocultar todas las ventanas
que quieras, y tambin puedes cambiarlas de sitio simplemente arrastrndolas con
el ratn.
as Glosario Bibliografa
nadas
torio Anotaciones
2 FORMULARIOS Y CONTROLES
Dependiendo del perfil de usuario que hubiese seleccionado previamente, en la pa-
gina de inicio al poner en marcha Visual Studio por primera vez, aparecer o no en
el entorno una ventana llamada Explorador de Soluciones. Habitualmente puede
encontrarla en la parte superior derecha, como una ventana adosada o anclada en
el interior de la ventana principal del entorno. Si no la encuentra, puede utilizar
la combinacin de teclas: Control-Alt-L o la opcin Ver>Exploradorde Soluciones
para hacerla aparecer.
2.1. Formularios
Los formularios son los elementos que permiten crear ventanas, sobre los cuales
aadiremos los objetos que permitirn construir interfaces para el usuario. Cuan-
do ejecutamos Microsoft Visual Studio y creamos nuestra solucin en Visual Basic,
por defecto aparecer un formulario, la siguiente figura muestra un formulario
Windows:
necesidades.
Para agregar los controles al formulario, bastar con arrastrar y soltar, en el for-
mulario anterior, aada un control textbox (cuadro de texto), un control etiqueta
(label) y un botn (button):
as Glosario Bibliografa
nadas
Cambie la propiedad text a Hacer Clic, seleccione el control etiqueta (label) y cam-
bie su propiedad text a Nombre
torio Anotaciones Experimente cambiando la propiedad backcolor y forecolor de los controles, per-
sonalcelos de acuerdo a su preferencia.
Otra caracterstica que ahora tienen los formularios es poder indicarle el tamao
mnimo y mximo que queremos que tenga. Esto se consigue mediante las propie-
dades: MinimumSize y MaximumSize. No es necesario indicarle el tamao a las dos
propiedades, por ejemplo si lo que queremos es que nuestro formulario no pueda
ser menor de 300x200, asignaremos el valor 300 a MinimumSize.Width y 2008 Mi-
nimumSize.Height.
Aqu tienes el formulario de prueba:
1 PROGRAMACIN DE EVENTOS
Los eventos son las acciones a las que un objeto puede responder. Cuando un usua-
rio cierra un formulario, el formulario responde a un evento llamado closed que
ejecuta el cdigo que el programador puso en el evento. En la programacin gene-
rada por eventos, el usuario genera eventos como mover el mouse o presionar una
tecla y esto provoca la ejecucin del segmento de cdigo asociado al evento.
Por ejemplo, como se puede ver en la figura, cuando un usuario hace clic en el
botn del formulario se ejecuta el cdigo que el programador de la aplicacin haya
puesto. Es decir, depende de la accin del usuario la ejecucin de ese cdigo.
Continuemos con nuestro ejemplo anterior, ahora vamos a escribir cdigo para
LABORATORIO DE PROGRAMACIN
UNIDAD II: PROGRAMACIN CON VISUAL BASIC 2012Desarrollo
de contenidos
Actividades Autoevaluacin
MANUAL AUTOFORMATIVO
43
Te mostrar esto:
Private Sub btnMensaje_Click(ByVal sender As System.Object,
ByVal) Handles Button1.Click
End Sub
Lo que vamos a hacer ahora, es escribir el cdigo que se ejecutar cuando se haga
click en ese botn, escribe lo siguiente en el hueco dejado por el Visual Basic 2012,
en la lnea que hay entre Private Sub... y End Sub
Msgbox (HoIa & TextBoxl. Text)
Antes de explicarte que es lo que estamos haciendo, pulsa F5 para que se ejecute el
cdigo que hemos escrito o pulsa en el botn play que est en la barra de botones.
Ahora vamos a aadir otro botn, el cual se llamar cmdCerrar y el texto que debe
mostrar es: Cerrar
Y este es el cdigo que debe ejecutar cuando se haga click en el:
Me. Close()
En este cdigo tenemos lo siguiente: MsgBox que es una funcin o mtodo, cuya
tarea es mostrar en un cuadro de dilogo lo que le indiquemos en el primer par-
metro, para indicarle que es lo que queremos que muestre, tendremos que hacerlo
dentro de los parntesis, en este caso, queremos que se muestre la palabra Hola
y lo que haya en la caja de texto.
ollo
nidos 44
Actividades Autoevaluacin UNIDAD II: PROGRAMACIN CON VISUAL BASIC 2012
as Glosario Bibliografa
nadas
La palabra Hola (seguida de un espacio) es una constante, es decir siempre ser
la palabra Hola seguida de un espacio. Por otro lado, TextBox1.Text representa el
texto que haya en la caja de texto y por tanto devolver lo que en l hayamos escrito.
Por ltimo, para unir esas dos cadenas de caracteres, la constante Hola y el conte-
torio Anotaciones
nido de la propiedad Text del control Textbox1, usaremos el signo & (ampersand)
el cual sirve para concatenar cadenas de caracteres.
En el mtodo del evento Click del botn cerrar hemos escrito: Me.Close(); Me re-
presenta al objeto o clase Form1 (el formulario) y el mtodo Close lo que hace es
cerrar el formulario, igual que cuando pulsamos en el botn cerrar del formulario.
A. Programas secuenciales
Ejemplo: Elaborar un programa que permita obtener el rea de un tringulo
Programacin:
B. Descomposicin de Nmeros:
Algunos programas requieren la descomposicin de nmeros en sus dgitos, ya
sea para contarlos, identificarlos, compararlos etc. Esta representacin involucra
determinado Artificio cuando la codificacin de hace con Microsoft Visual Ba-
sic 2012, ya que para obtener los dgitos de un nmeros debemos descomponer
utilizando divisiones sucesivas. Tenemos bsicamente dos formas de descompo-
ner los nmeros, el siguiente cuadro muestra el algoritmo para el nmero 3245:
LABORATORIO DE PROGRAMACIN
UNIDAD II: PROGRAMACIN CON VISUAL BASIC 2012Desarrollo
de contenidos
Actividades Autoevaluacin
MANUAL AUTOFORMATIVO
45
Programacin:
as Glosario Bibliografa
nadas
1 ESTRUCTURA SELECTIVA SIMPLE: IF...THEN
Use la estructura If...Then para ejecutar una o ms instrucciones basadas en una
condicin. Puede utilizar la sintaxis de una lnea o un bloque de varias lneas:
torio Anotaciones
,IFRQGLFLyQ7KHQ6HQWHQFLDV ,IFRQGLFLyQ7KHQ
6HQWHQFLDV
(QG,I
Si condicin es True, Microsoft Visual Basic 2012 ejecuta todas las sentencias que
siguen a la palabra clave Then. Puede utilizar sintaxis de una lnea o de varias lneas
para ejecutar una sentencia basada en una condicin, los siguientes dos ejemplos
son equivalentes:
tura. Si hay una coincidencia, ejecuta el bloque de sentencias asociado a ese Case:
Selec Case expresin_prueba
[Case lista_expresiones1
[bloque de sentencias 1]]
[Case lista_expresiones2
[bloque de sentencias 2]]
.
.
.
[Case Else
[bloque de sentencias n]]
End Select
LECTURA SELECCIONADAS N 1
Lecturas Glosario Bibliografa
seleccionadas
Lenguajes de programacin. James A. OBrien Sistemas de informacin Gerencial. p
199-204
Para comprender
Recordatorio Anotaciones el software computadonal/ usted necesita un conocimiento bsico
del papel que los lenguajes de programacin desempean en el desarrollo de progra-
mas computacionales. Un lenguaje de programacin permite a un programador desa-
rrollar los conjuntos de instrucciones que constituyen un programa computacional. Se
han desarrollado muchos lenguajes de programacin/cada uno con su propio vocabu-
lario/ gramtica y usos nicos.
Lenguajes de mquina
Los lenguajes de mquina (o lenguajes de primera generacin) constituyen el nivel ms
bsico de lenguajes de programacin. En las primeras etapas del desarrollo computa-
cional, todas las instrucciones de programas tenan que escribirse utilizando cdigos
binarios nicos para cada computador. Este tipo de programacin comprende la difcil
tarea de escribir instrucciones en la forma de cadenas de dgitos binarios (unos y ceros)
u otros sistemas numricos. Los programadores deben contar con un conocimiento
detallado de las operaciones internas del tipo especfico de CPU que estn utilizando.
Deben escribir largas series de detalladas instrucciones para realizar incluso simples
tareas de procesamiento. La programacin en lenguaje de mquina requiere especifi-
car las ubicaciones de almacenamiento para cada instruccin y elemento de datos que
se utilice. Deben incluirse instrucciones para cada conmutador e indicador que utilice
el programa. Estos requerimientos hacen de la programacin en lenguaje de mqui-
ollo
nidos 48
Actividades Autoevaluacin UNIDAD II: PROGRAMACIN CON VISUAL BASIC 2012
as Glosario Bibliografa
nadas
na una tarea difcil y propensa a errores. Un programa en lenguaje de mquina para
agregar dos nmeros juntos en la CPU de un determinado computador, y almacenar el
resultado, podra adoptar la forma que se muestra en la figura.
torio Anotaciones
El Norton Svstem Doctor es uno de ios programas de utilidad en The Norton Utili-
tes: un conjunto de programas de utilidad de mayor venta, para su computador perso-
nal.
Lenguajes ensambladores
Los lenguajes ensambladores (o lenguajes de segunda generacin) son el nivel siguien-
te de los lenguajes de programacin. Estos se desarrollaron para reducir las dificul-
tades en la escritura de programas en lenguaje de mquina. El uso de lenguajes en-
sambladores requiere programas traductores de lenguajes que reciben el nombre de
ensambladores, que permiten que un computador convierta las instrucciones de dichos
lenguajes en instrucciones de mquina. Con frecuencia, los lenguajes ensambladores se
denominan lenguajes simblicos porque se utilizan smbolos para representar cdigos
de operacin y ubicaciones de almacenamiento. Las tiles abreviaciones alfabticas de-
nominadas mnemotcnicas (ayudas de memoria) y otros smbolos representan cdigos
de operacin, ubicaciones de almacenamiento y elementos de datos. Por ejemplo, el
clculo X = Y + Z en un lenguaje ensamblador podra adoptar la forma que se muestra
en la figura 5.25.
Recordatorio Anotaciones
as Glosario Bibliografa
nadas
Lenguajes de cuarta generacin
El trmino lenguaje de cuarta generacin describe una variedad de lenguajes de progra-
macin que son ms no procedimentales y conversacionales que los lenguajes anterio-
torio Anotaciones res. Estos lenguajes se denominan lenguajes de cuarta generacin (4GL) con el fin de
diferenciarlos de los lenguajes de mquina (primera generacin), lenguajes ensambla-
dores (segunda generacin) y lenguajes de alto nivel (tercera generacin).
el proceso de programacin. Los lenguajes naturales son 4GL que se acercan mucho
al ingls u otros lenguajes humanos. La actividad de investigacin y desarrollo en inte-
ligencia artificial (AI, artificial intellgence} est desarrollando lenguajes de programa-
cin que son tan fciles de usar como la conversacin normal en la lengua nativa de
alguien. Por ejemplo, INTELLECT, un lenguaje natural 4GL/ utilizara una declaracin
como:
"Cules son los puntajes promedio del examen en MIS 200?" para programar una tarea
simple de puntaje promedio del examen.
Los lenguajes orientados a objetos son ms fciles de usar y ms eficientes para pro-
gramar interfaces de usuario orientadas a grficos que requieren muchas aplicaciones.
Adems, una vez programados los objetos, stos pueden volverse a utilizar. Por tanto,
la reutilizacin de objetos es un beneficio importante de la programacin orientada
a objetos. Por ejemplo, los programadores pueden construir una interfaz de usuario
para un nuevo programa ensamblando objetos estndar como ventanas, barras, cajas
de dilogo, botones e iconos. Por tanto, la mayora de los paquetes de programacin
orientada a objetos proporcionan una GUI que respalda un ensamblaje visual "apuntar
y hacer clic", "arrastrar y soltar" de objetos conocido como programacin visual. En la
figura 5.28 se muestra una presentacin del ambiente de programacin orientada a
objetos. Visual Basic.
ACTIVIDAD N 1:
Desarrollo Actividades Autoevaluacin
de contenidos
Las estructuras de repeticin o bucle le permiten ejecutar una o ms lneas de cdigo re-
petidamente. Las estructuras de repeticin que acepta Microsoft Visual Basic 2012 son:
Recordatorio Do...Loop
Anotaciones
For...Next
For Each...Next
1 ESTRUCTURA DO...LOOP
Utilice el bucle Do para ejecutar un bloque de sentencias un nmero indefinido de
veces. Hay algunas variantes en la sentencia Do...Loop, pero cada una evala una
condicin numrica para determinar si contina la ejecucin. Como ocurre con If...
Then, la condicin debe ser un valor o una expresin que d como resultado False
(cero) o True (distinto de cero).
as Glosario Bibliografa
nadas
Do While condicin
Sentencias
Loop
torio Anotaciones
Cuando Microsoft Visual Basic 2012 ejecuta este bucle Do, primero evala condicin.
Si condicin es False (cero), se salta todas las sentencias. Si es True (distinto de cero)
Microsoft Visual Basic 2012 ejecuta las sentencias, vuelve a la instruccin Do While y
prueba la condicin de nuevo.
Por tanto, el bucle se puede ejecutar cualquier nmero de veces, siempre y cuando con-
dicin sea distinta de cero o True. Nunca se ejecutan las sentencias si condicin es False
inicialmente. Por ejemplo, este procedimiento cuenta las veces que se repite una cade-
na destino dentro de otra cadena repitiendo el bucle tantas veces como se encuentre la
cadena de destino:
Function ContarCadenas (cadenalarga, destino)
Dim posicin, contador
posicin = 1
Do While InStr (posicin, cadenalarga, destino)
posicin = InStr (posicin, cadenalarga, destino)+1
contador = contador + 1
Loop
ContarCadenas = contador
End Function
Hay otras dos variantes anlogas a las dos anteriores, excepto en que repiten el bucle
siempre y cuando condicin sea False en vez de True.
2 ESTRUCTURA FOR...NEXT
Cuando se sabe que se va a ejecutar las sentencias un nmero determinado de
veces, es mejor elegir el bucle For...Next. A diferencia del bucle Do, el bucle For
utiliza una variable llamada contador que incrementa o reduce su valor en cada
repeticin del bucle. La sintaxis es la siguiente:
For contador = iniciar To finalizar [Step incremento]
Sentencias
Next [contador]
Do
[bloque de sentencias]
[Exit Do]
[bloque de sentencias]
Loop [{While / Until} condicin]
Exit For y Exit Do son muy tiles ya que, algunas veces, resulta apropiado salir inme-
diatamente de un bucle sin realizar ms iteraciones o sentencias dentro del bucle.
ollo
nidos 54
Actividades Autoevaluacin UNIDAD II: PROGRAMACIN CON VISUAL BASIC 2012
as Glosario Bibliografa
nadas
Tema 4: Formularios de interfaz mltiple (MDI)
1 APLICACIONES DE ESTILO MDI
torio Anotaciones Una aplicacin de tipo o estilo MDI (Multiple Document Interface), Interfaz de
Documento Mltiple, se compone de un formulario principal, tambin denomina-
do formulario MDI, que actuar como contenedor de otros formularios (documen-
tos) abiertos durante el transcurso del programa, denominados formularios hijos o
secundarios MDI. Como ejemplos de este tipo de aplicacin tenemos PowerPoint
o Access.
Una vez creado el nuevo proyecto, cambiaremos el nombre del formulario por de-
fecto a frmPrincipal. Para conseguir que este formulario tenga el comportamiento
de un contenedor MDI, debemos asignar el valor True a su propiedad IsMdiContai-
ner. Tambin debemos establecer a este formulario como inicial en las propiedades
del proyecto.
Ahora pasaremos a la creacin de los formularios hijos del MDI. El primero, frm-
Carta, permite la escritura en un TextBox multilnea, cuyo contenido podremos
grabar a un archivo en disco.
El cdigo del botn que realiza la grabacin del texto lo podemos ver en el siguien-
te Cdigo fuente. Debemos importar el espacio de nombres System.IO, ya que en
esta clase del formulario hacemos uso de los tipos File y StreamWriter.
Private Sub btnGrabar_Click(ByVal sender As System.Object, ByVal
e As
System.EventArgs) Handles btnGrabar.Click
' escribir en un archivo el contenido
' del TextBox
Dim oEscritor As StreamWriter
oEscritor = File.CreateText(Me.txtArchivo.Text)
oEscritor.Write(Me.txtCarta.Text)
oEscritor.Close()
End Sub
El otro formulario hijo, frmInfo, muestra la fecha y hora actual; esta ltima es actua-
lizada a travs del control Timer tmrTiempo.
LABORATORIO DE PROGRAMACIN
UNIDAD II: PROGRAMACIN CON VISUAL BASIC 2012Desarrollo
de contenidos
Actividades Autoevaluacin
MANUAL AUTOFORMATIVO
55
Recordatorio Anotaciones
El siguiente paso consiste en crear un men para poder abrir los formularios hijos
a travs de sus opciones.
1 MENS
Es probable que usted haya observado, en algunas aplicaciones Windows de tipo
MDI, que existe en la barra de mens de la ventana principal, un men con el
nombre Ventana o Window, que nos muestra los nombres de los formularios hijos
abiertos, permitindonos cambiar de formulario activo al seleccionar una de esas
opciones.
Seleccione y arrastre al formulario MDI, puede ingresar el texto de los mens, lue-
go se realizar la programacin:
Figura N 24
ollo
nidos 56
Actividades Autoevaluacin UNIDAD II: PROGRAMACIN CON VISUAL BASIC 2012
as Glosario Bibliografa
nadas
En las opciones Carta e Informacin del men, instanciaremos un objeto del for-
mulario correspondiente, teniendo en cuenta que para conseguir que dichos for-
mularios se comporten como hijos del MDI, debemos asignar a su propiedad Mdi-
torio Anotaciones
Parent, la instancia actual del formulario en ejecucin, es decir, Me. Veamos este
punto en el Cdigo fuente.
Private Sub mnuCarta_Click(ByVal sender As System.Object, ByVal
e As
System.EventArgs) Handles mnuCarta.Click
Dim ofrmCarta As New frmCarta()
' con la siguiente lnea conseguimos que el
' formulario se comporte como hijo del actual
ofrmCarta.MdiParent = Me
ofrmCarta.Show()
End Sub
Otra caracterstica de los formularios no modales reside en que una vez creados y
visualizados, el resto del cdigo de la aplicacin contina su ejecucin.
Dim ofrmCarta As New frmCarta()
' crear formulario hijo de un mdi
ofrmCarta.MdiParent = Me
ofrmCarta.Show()
' despus de mostrar el formulario hijo
' se muestra a continuacin este mensaje
MessageBox.Show("Se acaba de abrir un formulario hijo")
Este proyecto contiene un formulario MDI llamado frmPrincipal, y uno hijo con el
nombre frmHijo, que abrimos mediante una opcin de men; la creacin de este
tipo de formularios se ha descrito en apartados anteriores.
Para que este formulario tenga un comportamiento modal, debemos mostrarlo eje-
cutando el mtodo ShowDialog( ) de la clase Form.
Para cerrar un formulario modal podemos, al igual que para cualquier formulario, eje-
cutar su mtodo Close( ). No obstante, un formulario de dilogo suele proporcionar,
aunque esto no es obligatorio, los tpicos botones para aceptar, cancelar, reintentar,
etc.; de modo que una vez cerrado el formulario, podamos averiguar qu botn puls
el usuario.
Por lo tanto, vamos a aadir a nuestro formulario frmDialogo, dos controles Button:
btnAceptar y btnCancelar, en los que escribiremos las instrucciones del Cdigo fuente
Private Sub btnAceptar_Click(ByVal sender As System.Object, ByVal
e As
System.EventArgs) Handles btnAceptar.Click
' asignar un valor a esta propiedad,
' cierra al mismo tiempo el formulario
Me.DialogResult = DialogResult.OK
End Sub
Private Sub btnCancelar_Click(ByVal sender As Object, ByVal e As
System.EventArgs)
Handles btnCancelar.Click
' asignar un valor a esta propiedad,
' cierra al mismo tiempo el formulario
Me.DialogResult = DialogResult.Cancel
End Sub
as Glosario Bibliografa
nadas
MessageBox.Show("Datos del dilogo: " & _
ofrmDialogo.txtNombre.Text & " " & _
ofrmDialogo.txtApellidos.Text)
Else
torio Anotaciones MessageBox.Show("Se ha cancelado el dilogo")
End If
End Sub
A. ColorDialog
Este control muestra el cuadro de dilogo del sistema para la seleccin de colo-
res. Entre sus propiedades podemos destacar las siguientes.
Color. Contiene un tipo de la estructura Color, que nos permite obtener el co-
lor seleccionado por el usuario mediante este cuadro de dilogo, para poder
aplicarlo sobre alguno de los elementos del formulario.
AllowFullOpen. Contiene un valor lgico que permite habilitar y deshabilitar
el botn que muestra el conjunto de colores personalizados del cuadro de
dilogo de seleccin de colores.
B. FontDialog
Este control muestra el cuadro de dilogo del sistema para la seleccin del tipo
de fuente. Entre sus propiedades podemos destacar las siguientes.
Font. Contiene un tipo de la clase Font. Una vez seleccionada una fuente por
el usuario en el cuadro de dilogo, podremos cambiar el fuente de los contro-
les del formulario.
ShowApply. Contiene un valor lgico que permite mostrar-ocultar el botn
Aplicar, que nos permitir asignar el tipo de letra sin cerrar el dilogo. Al pul-
LABORATORIO DE PROGRAMACIN
UNIDAD II: PROGRAMACIN CON VISUAL BASIC 2012Desarrollo
de contenidos
Actividades Autoevaluacin
MANUAL AUTOFORMATIVO
59
C. SaveFileDialog
Este control muestra el cuadro de dilogo del sistema, mediante el que escribi-
mos un nombre de archivo, y elegimos un directorio, sobre el cual grabaremos
informacin.
as Glosario Bibliografa
nadas
D. OpenFileDialog
Este control muestra el cuadro de dilogo del sistema, mediante el que seleccio-
namos un archivo para poder abrirlo posteriormente, y realizar sobre el mismo
operaciones de lectura-escritura.
Las propiedades de este control son prcticamente las mismas que las de SaveFi-
leDialog, con algunas excepciones como las siguientes.
Multiselect. Contiene un valor lgico, que nos permitir la seleccin de ml-
tiples archivos.
ShowReadOnly. Permite mostrar la casilla de verificacin para mostrar los
archivos de slo lectura.
ReadOnlyChecked. Permite obtener y establecer el valor para la casilla de
verificacin de slo lectura del cuadro de dilogo.
Al hacer clic en la primera opcin del men, podemos dar nombre y propie-
dades a esa opcin. Al mismo tiempo, de un modo muy intuitivo, veremos las
prximas opciones disponibles, tanto las desplegables a partir de dicho men,
como las de la barra principal. Slo hemos de movernos en la direccin que ne-
cesitemos y dar nombre a las opciones, y valores a sus propiedades.
Cada una de las opciones que componen el men es a su vez un control MenuI-
tem. Si durante su creacin slo proporcionamos el nombre, el IDE va asignan-
do a dicho control valores por defecto en sus propiedades.
Para modificar las propiedades de una opcin de men, slo hemos de selec-
cionarlo en la estructura de men que estamos creando en el diseador del for-
mulario, y pasar a la ventana de propiedades. Entre las propiedades disponibles
para un MenuItem, podemos destacar las siguientes.
Text. Contiene una cadena con el literal o texto descriptivo de la opcin de
men.
Enabled. Permite habilitar/deshabilitar la opcin de men. Cuando se en-
cuentra deshabilitada,
se muestra su nombre en un tono gris, indicando que no puede ser seleccio-
nada por el usuario.
DefaultItem. Permite establecer opciones por defecto. En una opcin de
men por defecto, su texto se resalta en negrita.
Checked. Marca/desmarca la opcin. Cuando una opcin est marcada,
muestra junto a su nombre un pequeo smbolo de verificacin o punteo.
RadioCheck. En el caso de que la opcin de men se encuentre marcada, si
asignamos True a esta propiedad, en lugar de mostrar el smbolo de verifica-
cin estndar, se muestra uno con forma de punto.
ShortCut. Se trata de un atajo de teclado, o combinacin de teclas que nos van
a permitir ejecutar la opcin de men sin tener que desplegarlo. Al elegir esta
propiedad, aparecer una lista con todos los atajos disponibles para asignar.
ollo
nidos 62
Actividades Autoevaluacin UNIDAD II: PROGRAMACIN CON VISUAL BASIC 2012
as Glosario Bibliografa
nadas
ShowShortCut. Permite mostrar u ocultar la combinacin de teclas del atajo
de teclado que tenga asignado una opcin de men.
Visible. Muestra u oculta la opcin de men.
torio Anotaciones MdiList. Esta propiedad se utiliza habitualmente en opciones situadas en la
barra de men, y permite establecer que dicha opcin al desplegarse, mues-
tre, adems de las opciones de men que le hayamos asignado, la lista de ven-
tanas secundarias MDI, en el caso de que el men principal est contenido
en un formulario de tipo MDI. Los formularios MDI sern tratados posterior-
mente.
Para todas las opciones se ha asignado una tecla de acceso rpido, y adicional-
mente, para las opciones que se indican a continuacin, se han modificado algu-
nas propiedades por defecto.
Guardar. Deshabilitada.
Salir. Atajo de teclado en Ctrl. + S.
Copiar. Opcin por defecto.
Pegar. Marcada con smbolo normal.
Cortar. Marcada con smbolo de crculo.
Elipse. Opcin no visible.
Una vez finalizada la fase de diseo del men, debemos proceder a escribir el
cdigo para sus opciones. El evento Click es el que permite a un control Me-
nuItem ejecutar cdigo cuando la opcin de men es seleccionada. Abriendo
por tanto, el men desde el diseador del formulario, y haciendo doble clic en
la opcin correspondiente, nos situaremos en el editor de cdigo, dentro del
procedimiento manipulador del evento Click para esa opcin. El Cdigo fuente
muestra el cdigo que se ejecutar cuando seleccionemos las opciones de men
Abrir y Salir de nuestro ejemplo.
Private Sub mnuAbrir_Click(ByVal sender As System.Object, ByVal
e As
System.EventArgs) Handles mnuAbrir.Click
MessageBox.Show("Opcin Abrir del men")
End Sub
Private Sub mnuSalir_Click(ByVal sender As System.Object, ByVal
e As
System.EventArgs) Handles mnuSalir.Click
Me.Close()
End Sub
End Sub
Private Sub btnMostrar_Click(ByVal sender As System.Object, ByVal
e As
System.EventArgs) Handles btnMostrar.Click
Me.mnuElipse.Visible = Not Me.mnuElipse.Visible
End Sub
as Glosario Bibliografa
nadas
Al ser dibujado, este control queda acoplado a la parte superior del formulario.
Despus de ponerle tbrBarra como nombre, asignaremos a su propiedad Image-
List, el control de ese mismo tipo que acabamos de crear; esto nos permitir asignar
torio Anotaciones
los grficos de la lista a los botones que vayamos creando en el ToolBar. Para esta-
blecer el tamao de los botones de la barra utilizaremos la propiedad ButtonSize
de este control.
Seguidamente haremos clic en la propiedad Buttons, que abrir una ventana con
la coleccin de botones de la barra, en la que podremos crear y configurar dichos
botones.
Una vez terminado el diseo del ToolBar, debemos codificar su evento ButtonClick,
que ser provocado cada vez que se pulse un botn de la barra. Dentro del procedi-
miento de este evento, comprobaremos qu botn ha sido pulsado y ejecutaremos
las acciones oportunas. El Cdigo fuente 521 muestra este evento. Tanto el botn
Abrir como la opcin de men del mismo nombre realizan la misma tarea, por lo
que llaman al mtodo AbrirArchivo( ), que es quien realmente muestra el formu-
lario necesario.
Private Sub tbrBarra_ButtonClick(ByVal sender As System.Object,
ByVal e As
System.Windows.Forms.ToolBarButtonClickEventArgs) Handles
tbrBarra.ButtonClick
' comprobar qu botn de la barra se ha pulsado
If e.Button Is Me.btnAbrir Then
' llamamos al mtodo que abre el
' formulario para abrir un archivo
Me.AbrirArchivo()
End If
If e.Button Is Me.btnSalir Then
' cerrar la aplicacin
Me.Close()
End If
End Sub
Private Sub mnuAbrir_Click(ByVal sender As System.Object, ByVal
e As
System.EventArgs) Handles mnuAbrir.Click
' al seleccionar esta opcin de men
' llamar al mtodo que abre el formulario
' que permite abrir un archivo
Me.AbrirArchivo()
End Sub
Al haber asignado al botn btnPersonal uno de los mens de la barra del formulario,
no ser necesario escribir cdigo para detectar este botn en el evento ButtonClick, ya
que se ejecutar directamente el cdigo del evento Click de las opciones de men. El
Cdigo fuente muestra el cdigo perteneciente a la opcin de men Personal + Datos.
LABORATORIO DE PROGRAMACIN
UNIDAD II: PROGRAMACIN CON VISUAL BASIC 2012Desarrollo
de contenidos
Actividades Autoevaluacin
MANUAL AUTOFORMATIVO
65
ofrmPersonal.MdiParent = Me
ofrmPersonal.Show()
End Sub
Entre las propiedades destacables de un objeto Panel podemos mencionar las si-
guientes.
BorderStyle. Muestra el panel con efecto resaltado, hundido o normal.
Icon. Permite asociar un icono al panel.
AutoSize. Con esta propiedad podemos conseguir que el panel se redimensione
ajustndose a su contenido o que tenga un tamao fijo.
En este ejemplo, hemos aadido dos paneles a la barra de estado del formulario. En
uno mostramos un texto fijo; mientras que en el otro, visualizamos la hora actual a
travs de un objeto Timer que ponemos en marcha en el evento Load del formula-
rio. Veamos los mtodos implicados, en el Cdigo fuente.
Private Sub frmPrincipal_Load() Handles MyBase.Load
' al cargar el formulario, creamos un temporizador
' le asociamos un manejador para su evento Tick
' y lo iniciamos
Dim oTiempo As New Timer()
oTiempo.Interval = 1000
AddHandler oTiempo.Tick, AddressOf PonerHoraActual
oTiempo.Start()
End Sub
Private Sub PonerHoraActual(ByVal sender As Object, ByVal e As
EventArgs)
' actualizamos a cada segundo la hora de un panel
' de la barra de estado
Me.sbrEstado.Panels(1).Text = DateTime.Now.ToString("HH:mm:ss")
End Sub
Diagrama Objetivos Inicio
LECTURA SELECCIONADAS N 2
Lecturas Glosario Bibliografa
seleccionadas
Arquitecturas de Interfaz de usuario3
Cuando se ha terminado a disear la interfaz de usuario del sistema, la primera decisin
que hay que tomar es cmo estructurar el conjunto de la interfaz del sistema la arqui-
tectura
Recordatorio
deAnotaciones
la interfaz del sistema-. En este captulo, discutiremos diversas arquitecturas,
ms o menos estndar, que se describe en la gua de la interfaz Windows para el diseo
de software e implementadas en diferentes sistemas.
Se puede inventar una arquitectura propia de la interfaz de usuario: pero, como siem-
3 Rebecca M. Riordan. Diseo de Base de datos relacionales con Access y SQL Server. p 191-196.
ollo
nidos 66
Actividades Autoevaluacin UNIDAD II: PROGRAMACIN CON VISUAL BASIC 2012
as Glosario Bibliografa
nadas
pre que se eluden los estndares existentes, hay que tener una buena razn para hacer-
lo. Recurdese que la existencia, no slo con las aplicaciones, sino tambin entre ellas,
facilita la vida de los usuarios.
torio Anotaciones
No es un mal formulario, desde el punto de vista de formularios, pero hay que pensar
en la tarea de los usuarios: ellos introducen pedidos de ventas. Abren el formulario Pe-
didos slo para mirar que un cliente todava no existe en el sistema. Por lo que tienen
que dejar el formulario, ir a algn sitio ms en el sistema e introducir un nuevo cliente
y despus. Finalmente, consiguen introducir el pedido. Si el formulario Pedidos no se
ha cerrado, probablemente necesite actualizar pulsando Shift + F9 (o algo igual de evi-
dente) para actualizar la lista Clientes. Desagradable.
La solucin ahorra unas pocas pulsaciones de tecla, pero todava fuerza al usuario a de-
jar de hacer lo que estaba haciendo (introduciendo un pedido de ventas) y hacer algo
ms (mantener la lista de clientes). Seria mucho mejor permitir que el usuario comple-
te la tarea que tiene entre manos sin interrumpirle. Si un usuario introduce un nombre
de cliente que no esta en la lista, los campos, que de otra forma se habran rellenado, se
mantiene en blanco. (Esto es suficiente notificacin de que el cliente es nuevo, por su-
puesto: no existe una razn para sobresaltar a la gente avisndoles y mostrando cuadros
de mensaje innecesarios). Una vez que el usuario haya rellenado los campos, el sistema
LABORATORIO DE PROGRAMACIN
UNIDAD II: PROGRAMACIN CON VISUAL BASIC 2012Desarrollo
de contenidos
Actividades Autoevaluacin
MANUAL AUTOFORMATIVO
67
Si todos los campos del registro de cliente se pueden obtenerle formulario pedidos, est
todo hecho. Si existen campos adicionales (como pasa a menudo), habra que decidir Recordatorio Anotaciones
pedirle al usuario si desea aadir esta informacin despus de haber terminado de re-
llenar el pedido de ventas. (Pero hay que asegurarse de no preguntarle hasta que haya
terminado de rellenar el pedido: es grosero interrumpir.) La decisin debe basarse en
las circunstancias bajo las cuales se ha introducido la orden; en otras palabras, en los
procesos de trabajo.
Las SDI tienen muy buenas recomendaciones, ya que una nica ventana es ms sencilla
de manipular y seguir para los usuarios. Cumple con la solucin centrada en documen-
to para el diseo de interfaz que recomienda como interfaz los asistentes de Microsoft.
Por ejemplo, se podra utilizar un libro de trabajo para mostrar un informe del resu-
men de las ventas del mes en una fecha, un grafico circular mostrando las ventas por
categora en otra ficha y un grafico de barras mostrando las ventas por ao en la tercera
ficha. Estn relacionadas por cierta informacin y es razonable esperar que los usuarios
quieran ver los informes como un grupo. Probablemente, no necesiten ver todos los
informes simultneamente, ya que los distintos informes estn relacionados, pero no
son directamente comparables.
ollo
nidos 68
Actividades Autoevaluacin UNIDAD II: PROGRAMACIN CON VISUAL BASIC 2012
as Glosario Bibliografa
nadas
La Arquitectura MDI Clsica
La arquitectura clsica de una aplicacin MDI es que una ventana principal contenga
mltiples ventanas hijas del mismo o distinto tipo. Microsoft Word es un buen ejemplo
torio Anotaciones la ventana de Word puede contener mltiples documentos abiertos al mismo tiempo.
El numero de ventanas hijas esta limitado por lo que yo pienso solo a la memoria dis-
ponible.
Las aplicaciones MDI son de utilidad en muchas ocasiones en las que los usuarios ne-
cesitan comparar distintas partes de los datos o los mismos datos en distintos formatos.
Pero las aplicaciones MDI pueden asustar a los usuarios nuevos, elegir Nuevo lo que sea,
en el men Archivo no se le ocurre a todo el mundo cuando se le presenta una ventana
aparentemente vaca.
Por ejemplo, vase la Figura 13.4 Supongamos que un usuario ha cambiado hacia atrs
y hacia delante entre las ventanas y que tiene cambios no confirmados pendientes en
todas ellas.
Figura 13.4. El modelo de contenidos en aplicaciones MDI puede confundir a los usuarios
Interfaces de Centralita
Cuando se abre la aplicacin aparece una aplicacin de centralita con un formulario
central, como se muestra en la Figura 13-5 .La mayora de los botones del formulario
estn unidos a formularios o a informes.
La base de datos generados mediante el Nuevo asistente para bases de datos de Access
utiliza una estructura de Centralita y por esta razn, esta estructura se ha convertido en
algo bastante comn para las aplicaciones de base de datos desarrolladas en esos en-
tornos. Es bastante sencillo implementar el mismo comportamiento utilizando Visual
Basic.
Tengo que admitir que tengo mis prejuicios contra las centralitas. Algo relacionado con
su estilo tipo DOS y soso. Tambin me preocupa que estimulan la estructura de men
Encontrar registro /Editar registro/ Imprimir registro, que resulta increblemente te-
dioso para los usuarios.
Sin embargo, las aplicaciones de centralita pueden ser muy tiles, si se poseen distintos
procesos de trabajo a los que se esta dando soporte dentro de la misma aplicacin no
se desea incorporar la complejidad de implementacin de las interfaces estilo Outlook
o si la aplicacin necesita que estn abiertas mltiples ventanas de forma simultanea.
Una centralita de alto nivel que contiene un botn para cada proceso de trabajo es un
mecanismo elegante para guiar al usuario por la aplicacin.
ACTIVIDAD N 2:
Desarrollo Actividades Autoevaluacin
de contenidos
Esta actividad puede consultarla en su aula virtual.
Diagrama Objetivos Inicio
Recordatorio Anotaciones
AUTOEVALUACIN N II
Desarrollo Actividades Autoevaluacin
de contenidos
torio Anotaciones A continuacin se presentan algunas preguntas con varias alternativas, slo una es la
respuesta, marque la que considere correcta.
1. Dnde se colocan los controles?
Lecturas
seleccionadas
Glosario
a) En la ventana del proyecto.
Bibliografa
b) En el formulario.
c) En el panel de Soluciones
Recordatorio Anotaciones
d) En la caja de herramientas.
12. Cul es la primera lnea del procedimiento Click de un Botn cuyo nombre es
Aceptar?
a) Private Sub Aceptar_Click(sender As Object, e As EventArgs) Handles Aceptar.
Click.
b) Private Sub Button_Aceptar_Click(sender As Object, e As EventArgs) Handles
Aceptar.Click.
c) Private Sub Button Aceptar_Click(sender As Object, e As EventArgs) Handles
Aceptar.Click.
d) Private Sub AceptarClick(sender As Object, e As EventArgs) Handles Aceptar.
Click.
14. Qu palabra debe anteponerse a una declaracin de variable para que pueda ser
reconocida en todo el proyecto?
a) Dim
b) Private
c) Public
d) Module
15. Dnde se encuentra el origen de un sistema de coordenadas?
a) Abajo a la izquierda.
b) Arriba a la derecha.
c) Arriba a la izquierda.
d) Abajo a la derecha.
torio Anotaciones
BIBLIOGRAFIA II:
Lecturas Glosario Bibliografa
seleccionadas
OBrien, James A. Sistemas de Informacin Gerencial. Colombia: McGRAW-HILL IN-
TERAMERICANA S.A.; 2005.
Riordan, Rebecca M. Diseo de Bases de datos relacionales con Access y SQL Server.
Recordatorio Anotaciones
Espaa: McGRAW-HILL INTERAMERICANA S.A.; 2004.
Delgado, Albert. Microsoft SQL Server 2012. Madrid: Pearson Education S.A.; 2011.
Ocharte Ojeda, Francisco. Programacin con Visual Basic 2012. Madrid: Anaya Multi-
media; 2011.
LABORATORIO DE PROGRAMACIN
Desarrollo
de contenidos
Actividades Autoevaluacin
MANUAL AUTOFORMATIVO
73
BIBLIOGRAFA AUTOEVALUACIN
Lecturas Glosario Bibliografa
seleccionadas
Lectura Seleccionada N 2
Desarrollo de componentes.
Francisco Charte Ojeda. Pro-
gramacin con Visual Basic
2012. p 551-555.
A) Desarrollo de Autoeva-
luacin Nro 3
ollo
nidos 74
Actividades Autoevaluacin UNIDAD III: PROGRAMACIN ORIENTADA A OBJETOS Y PROYECTOS AVANZADOS
as Glosario Bibliografa
nadas
TEMA 1: Programacin Orientada a Objetos
Los objetos son los elementos fundamentales para la programacin, en Microsoft
Visual Basic 2012 todo es un objeto, los formularios, controles y bases de datos.
torio Anotaciones
En esta unidad, aprenderemos cmo crear nuestros propios objetos desde clases
definidas por nosotros y cmo podemos utilizar objetos para simplificar la progra-
macin e incrementar la reutilizacin de cdigo.
1 INTRODUCCIN A LA POO
1.1. Clases
Las clases son objetos generalizados o clasificados, tambin podemos decir que una
clase es una plantilla o una estructura preliminar de un objeto. Esta estructura pre-
liminar define atributos para almacenar datos y define operaciones para manipular
esos datos. Una clase tambin define un conjunto de restricciones para permitir o
denegar el acceso a sus atributos y operaciones.
1.2. Objetos
James Martin, define a los objetos como: Un objeto es cualquier cosa real o abstrac-
ta, acerca de la cual almacenamos datos y los mtodos que controlan dichos datos.
1.3. Mtodos
Los mtodos son los comportamientos de los objetos. El comportamiento es la
caracterstica que hace tiles los objetos. Por ejemplo, la mayor parte del tiempo
podemos ignorar el funcionamiento interno de un coche y pensar en su compor-
tamiento. Los coches son tiles porque podemos conducirlos. El funcionamiento
interno existe, pero normalmente es inaccesible. Lo que es accesible es el compor-
tamiento de un objeto. Los objetos de la misma clase comparten el mismo compor-
tamiento. Un coche es un coche porque podemos conducirlo.
2 CREACIN DE OBJETOS
La plataforma Microsoft .NET proporciona la biblioteca de clases del .NET Fra-
mework, pero tambin nosotros podemos crear nuestras propias clases. A continua-
cin vamos a ver cmo crear una nueva clase, agregar miembros de datos, mtodos
y propiedades a la clase, y establecer modificadores de acceso pblicos y privados.
End Class
3 CONCEPTOS GENERALES
Para ejecutar los mtodos y utilizar las propiedades de una clase, debemos crear
una instancia de la clase. La instancia de una clase se denomina objeto.
Para crear una instancia de una clase, declaramos una variable del tipo de la clase
ollo
nidos 76
Actividades Autoevaluacin UNIDAD III: PROGRAMACIN ORIENTADA A OBJETOS Y PROYECTOS AVANZADOS
as Glosario Bibliografa
nadas
y utilizamos la palabra clave New, como se muestra en la siguiente lnea de cdigo:
Dim nombre_objeto As New tipo_objeto( )
El siguiente ejemplo muestra cmo crear una instancia de la clase
torio Anotaciones CuentaBancaria utilizando la palabra clave New:
Sub Main
Dim account As New CuentaBancaria( )
account.Deposit(500.00)
End Sub
as Glosario Bibliografa
nadas
TEMA 2: Herencia, polimorfismo y espacios de nombres
Podemos agregar funcionalidades a las clases en el.NET Framework o a nuestras propias
clases utilizando herencia y polimorfismo. A continuacin se describe la herencia y el
torio Anotaciones
polimorfismo. Tambin se compara clases y estructuras.
1 IMPLEMENTACIN DE LA HERENCIA
En la programacin orientada a objetos, podemos compartir las caractersticas de
una clase base en otras clases derivadas de la clase base. Esto se denomina herencia.
Herencia es el concepto de reutilizar atributos y operaciones comunes de una clase
base en una clase derivada.
Visual Basic 2012 soporta herencia simple a nivel de clase. Es decir, una clase ni-
camente puede heredar de una sola clase base. Esto se muestra en el ejemplo de la
ilustracin anterior.
La palabra clave Inherits se utiliza para definir una clase derivada que heredar de
una clase base existente.
2 ESTRUCTURAS POLIMRFICAS
El polimorfismo determina que el mismo nombre de mtodo, realizar diferentes
acciones segn el objeto sobre el que sea aplicado. Al igual que suceda en la encap-
sulacin, el programador que haga uso del objeto, no necesita conocer los detalles
de implementacin de los mtodos, se limita a utilizarlos.
Recordatorio Anotaciones
Veamos otro ejemplo: Supongamos que definimos una clase denominada BaseTax
que proporciona funcionalidad bsica para calcular el impuesto sobre las ventas de
un estado. Las clases derivadas de BaseTax, como CountyTax o CityTax, podran
implementar mtodos como CalculateTax.
1 ESPACIOS DE NOMBRES
Los espacios de nombres se utilizan como sistemas organizativos (una forma de
presentar componentes del programa relacionados lgicamente que estn disponi-
bles para otros programas y aplicaciones). Un espacio de nombres puede contener
otros espacios de nombres y tipos.
Los espacios de nombres son siempre Public, por tanto, no podemos declarar un
espacio de nombres con un modificador de acceso. Sin embargo, los componentes
en el espacio de nombres pueden tener acceso Public o Friend. Si el modificador de
acceso no se ha declarado, el tipo de acceso predeterminado es Friend.
as Glosario Bibliografa
nadas
A nivel de proyecto, debemos incluir una referencia a la librera de enlace dinmi-
co (DLL) que contiene el espacio de nombres. En Visual Basic 2012, utilizamos la
instruccin Imports para importar los tipos contenidos en el espacio de nombres
para que puedan se referenciados directamente. El siguiente cdigo muestra el uso
torio Anotaciones
de la instruccin Imports:
Imports System.Windows.Forms
LECTURA SELECCIONADAS N 1
Lecturas Glosario Bibliografa
seleccionadas
POR QUE ORIENTADO A OBJETOS? 4
Las tcnicas orientadas a objetos mejoran la capacidad del profesional de la com-puta-
cin en diversos y sorprendentes modos.
Recordatorio Anotaciones
Hace poco. James Martin grab las entrevistas que tuvo con analistas y tcnicos cuya
eficiencia ha mejorado con las herramientas y las tcnicas 00 [1]. A todos les pregunt
"Por qu orientado a objetos?, Por qu no piensan en regresar a las tcnicas con-
vencionales? Por qu debera una empresa sufrir las dificultades del paso al anlisis
y diseo orientado a objetos?" Los profesionales sealaron muy diversas razones por
las que las tcnicas 00 han mejorado su desempeo. Por otro lado, ninguno de estos
profesionales haba logrado todos los beneficios principales. Lo que animaba a Miguel
a utilizar la orientacin a objetos no haba sido tomado en cuenta por Mara. Lo que
Juan afirmaba como ms satisfactorio no estaba en la lista de deseos de Carmen.
El software se vende no cuando est libre de errores, sino cuando stos aparecen con
una frecuencia bastante baja. Cuando mi programa para hojas de clculo se sale de
control, me fijo en que slo tiene un cdigo de 400.000 lneas. Muy pronto utilizare-
mos software con 50 millones de lneas de cdigo. Adems, mi programa se ejecuta en
una PC: en la actualidad estamos construyendo el software que se podr ejecutar en
procesadores paralelo? y redes con muchas computadoras de ejecucin simultnea.
Mi hoja de clculo tiene millones de usuarios y ha sido probada una infinidad de veces.
Podemos compararla con la siguiente generacin del software para control areo que
4 James Martin y James J, Odell. Anlisis y diseo orientado a objetos. Londres: Prentice-Hall Hispanoameri-
cana, S.A.; 2000. p 33-36
LABORATORIO DE PROGRAMACIN
UNIDAD III: PROGRAMACIN ORIENTADA A OBJETOS Y PROYECTOS AVANZADOSDesarrollo
de contenidos
Actividades Autoevaluacin
MANUAL AUTOFORMATIVO
81
Cuando las personas empiezan a programar, en general sus maestros les dicen que
piensen como una computadora. Esta tcnica pareca servir cuando aprendamos a pro- Recordatorio Anotaciones
gramar, puesto que escribamos programas muy sencillos. Sin embargo, los ciclos y las
ramificaciones nos proveen de una gran cantidad de combinaciones de caminos, de
modo que no podemos pensar en todos ellos como una computadora. La operacin de
la mayora del software real depende de condiciones que no se conocern hasta ejecu-
tar el software. En el caso de la multiprogramacin, el equipo hace varias cosas a la vez,
por lo que es imposible pensar como una computadora.
Dan Ingalls de Smalltalk, famoso por ser el causante de la "violacin de procesos me-
diante su descomposicin en bits y la devastacin de las estructuras de datos", describe
elocuentemente la orientacin por medio de los procesos. Para l, la orientacin a ob-
jetos proporciona una solucin que conduce a "un universo de objetos bien educados
que se piden, de manera corts, concederse mutuamente sus deseos".
as Glosario Bibliografa
nadas
El mundo orientado a objetos tiene una mayor disciplina que el de las tcnicas de
estructura convencional. Esto nos lleva a un mundo de clases reutilizables, donde la ma-
yor parte del proceso de construccin de software consistir en el ensamblaje de clases
ya existentes y probadas.
torio Anotaciones
Las tcnicas 00 ligadas a las herramientas del CASE con un generador de cdigos y un
depsito (tambin orientado a objetos) constituyen el mejor camino conocido para
construir una verdadera ingeniera de software.
ACTIVIDAD N 1:
Desarrollo Actividades Autoevaluacin
de contenidos
Lecturas
seleccionadas
TEMA 3: Procedimientos
Glosario Bibliografa
1 PROCEDIMIENTOS SUB
Un procedimiento Sub es una serie de instrucciones de Visual Basic delimitadas por
las instrucciones Sub y End Sub. Los procedimientos Sub realizan acciones pero no
devuelven un valor al procedimiento que origina la llamada.
2 PROCEDIMIENTOS FUNCTION
Un procedimiento Function es una serie de instrucciones Visual Basic delimitadas
por las instrucciones Function y End Function. Los procedimientos Function son
similares a los procedimientos Sub, pero las funciones pueden devolver un valor al
programa que origina la llamada.
El siguiente cdigo crea una funcin denominada Square que devuelve el cuadrado
de un nmero entero (integer):
ollo
nidos 84
Actividades Autoevaluacin UNIDAD III: PROGRAMACIN ORIENTADA A OBJETOS Y PROYECTOS AVANZADOS
as Glosario Bibliografa
nadas
Por otro lado, los puntos que marcan las diferencias entre un Function y un Sub
son los siguientes:
Un procedimiento Function devuelve un valor, de modo que si queremos obte-
nerlo, debemos asignar la llamada a la funcin a una variable. Los procedimien-
tos Sub no pueden devolver valores.
Debido precisamente a la capacidad de un procedimiento Function de devolver
un valor, podemos situar la llamada a una funcin dentro de una expresin, y
operar con el valor de retorno dentro de la expresin, lo cual dota a nuestro
cdigo de una mayor flexibilidad. Los procedimientos Sub no pueden formar
parte de expresiones.
Sub Main()
Dim Resultado As Integer
Dim NuevoValor As Integer
Console.ReadLine()
End Sub
End Module
LABORATORIO DE PROGRAMACIN
UNIDAD III: PROGRAMACIN ORIENTADA A OBJETOS Y PROYECTOS AVANZADOSDesarrollo
de contenidos
Actividades Autoevaluacin
MANUAL AUTOFORMATIVO
85
as Glosario Bibliografa
nadas
El siguiente Cdigo fuente muestra el cdigo del men de frmPrincipal que instan-
cia este objeto y lo muestra como formulario hijo del MDI.
Private Sub mnuCarta_Click(ByVal sender As System.Object, ByVal
torio Anotaciones e As
System.EventArgs) Handles mnuCarta.Click
' este formulario se abre como hijo del MDI
Dim ofrmCarta As New frmCarta()
ofrmCarta.MdiParent = Me
ofrmCarta.Show()
End Sub
Me.lblEncontrado.Show()
End If
End Sub
' al volver a teclear un valor a buscar, se oculta el Label
Private Sub txtBuscar_TextChanged(ByVal sender As System.Object,
ByVal e As
System.EventArgs) Handles txtBuscar.TextChanged
Me.lblEncontrado.Hide()
End Sub
1 VALIDACIN DE CONTROLES
Los controles Windows vienen provistos de un potente y flexible sistema de valida-
cin, que nos permitir comprobar si el usuario introduce los valores adecuados en
un control, de modo que le permitiremos pasar el foco a otro control, u obligarle a
permanece en el actual hasta que su valor no sea correcto.
as Glosario Bibliografa
nadas
Private Sub txtImporte_Validating(ByVal sender As Object, ByVal
e As
System.ComponentModel.CancelEventArgs) Handles txtImporte.
Validating
torio Anotaciones
If Not IsNumeric(Me.txtImporte.Text) Then
e.Cancel = True
MessageBox.Show("Se requiere un nmero")
End If
End Sub
Como primer paso en este proyecto, eliminaremos el formulario por defecto, aa-
diendo a continuacin uno nuevo con el nombre frmPrincipal, al que daremos la
caracterstica MDI mediante la propiedad IsMdiContainer. En este formulario crea-
LABORATORIO DE PROGRAMACIN
UNIDAD III: PROGRAMACIN ORIENTADA A OBJETOS Y PROYECTOS AVANZADOSDesarrollo
de contenidos
Actividades Autoevaluacin
MANUAL AUTOFORMATIVO
89
3.1. ImageList
Recordatorio Anotaciones
Este control acta como repositorio de imgenes, del que se alimentarn otros con-
troles del formulario que necesiten mostrar grficos en su interior.
Este control es que nos permite manipular las imgenes por cdigo, por ejemplo,
para aadir nuevas imgenes, debemos usar el mtodo Add( ) de su propiedad
Images, como muestra el siguiente cdigo:
Me.imlImagenes.Images.Add(New Bitmap("tutorias.gif"))
3.2. DateTimePicker
Este control permite la seleccin e introduccin de fechas en una caja de texto con
capacidades extendidas, o bien mediante un calendario desplegable que se mostra-
r al pulsar el botn de expansin que contiene.
as Glosario Bibliografa
nadas
Si expandimos el calendario, podremos realizar la seleccin de un modo ms gr-
fico. Por defecto el control muestra la fecha actual, pero con la propiedad Text
podemos cambiar la fecha por cdigo, cosa que hacemos al cargar el formulario,
torio Anotaciones
asignando una fecha distinta de la actual.
Private Sub frmDatosPersonal_Load(ByVal sender As Object, ByVal
e As
System.EventArgs) Handles MyBase.Load
' modificar fecha del DateTimePicker
Me.dtpFNacim.Text = "15/06/2002"
'....
End Sub
Podemos restringir el rango de fechas a mostrar por este control con las propieda-
des MinDate y MaxDate. Si queremos, por otra parte, que la fecha se muestre con
un formato personalizado, aplicaremos dicho formato mediante la propiedad Cus-
tomFormat, teniendo en cuenta que no se har efectivo hasta que a la propiedad
Format no le asignemos el valor Custom.
3.3. NumericUpDown
Control que muestra una caja de texto con un valor numrico que podremos ir
aumentandodisminuyendo al pulsar los botones para esta labor de que dispone el
control. La siguiente Figura muestra este control en nuestro formulario de pruebas.
Entre los eventos de que dispone este control, ValueChanged se produce cada vez
que cambia el valor del control, de modo que en este caso, vamos a cambiar el color
de fondo en funcin del nmero que contenga. Veamos el siguiente Cdigo:
Private Sub nupEdad_ValueChanged(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles nupEdad.ValueChanged
Select Case Me.nupEdad.Value
Case 20 To 30
Me.nupEdad.BackColor = Color.Gold
Case 30 To 40
Me.nupEdad.BackColor = Color.LimeGreen
Case Else
Me.nupEdad.BackColor = Me.nupEdad.DefaultBackColor
End Select
End Sub
3.4. DomainUpDown
Este control nos permite desplazarnos por una lista de valores, al mismo estilo
que el control anterior. Dicha lista de valores la crearemos mediante la propiedad
Items, en tiempo de diseo o ejecucin. El siguiente Cdigo fuente muestra como
al cargar el formulario frmDatosPersonal, con la propiedad Items y su mtodo Ad-
dRange( ), aadimos los valores que seleccionaremos en el control en tiempo de
ejecucin.
Private Sub frmDatosPersonal_Load(ByVal sender As Object, ByVal
e As
System.EventArgs) Handles MyBase.Load
'....
' crear la lista del DomainUpDown
Me.dudCategoria.Items.AddRange(New String() {"Auxiliar", "Jefe
departamento",
"Coordinador"})
End Sub
3.5. MonthCalendar
Este control muestra en modo grfico un calendario por el que podemos desplazar-
nos para seleccionar una fecha. El control DateTimePicker utiliza internamente un
MonthCalendar para mostrar su calendario desplegable.
LECTURA SELECCIONADAS N 2
Lecturas Glosario Bibliografa
seleccionadas
torio Anotaciones Desarrollo de componentes 5
En casi todos los ejemplos que hemos desarrollado hasta ahora, desde los primeros
captulos, hemos estado utilizando multitud de clases para, bien directamente o tras
la creacin
Recordatorio de un objeto, acceder a servicios concretos de la plataforma .NET. En
Anotaciones
ios ltimos captulos esos objetos los hemos creado de forma visual, arrastrndolos
sobre un contenedor y configurando su funcionamiento mediante la edicin de
propiedades. Cuando un objeto puede manipularse de esta forma, mediante un di-
seador, hablamos de componentes en lugar de llamarlos simplemente objetos. Un
componente, por tanto, es un objeto creado a partir de una clase, como cualquier
otro, pero que dispone de elementos que facilitan su tratamiento visual.
A diferencia de lo que ocurre con otros aspectos del desarrollo de aplicaciones con
Visual Basic, como son ASP.NET y ADO.NET que incorporan importantes mejoras
en la versin 2012, la creacin de componentes no ha experimentado cambios no-
tables en esta versin respecto a las anteriores. Por ello la metodologa que va a
conocer podra aplicarse igualmente a Visual Basic .NET 2010.
Conceptos bsicos
Antes de entrar en los detalles del desarrollo de componentes no est de ms que
establezcamos los conceptos bsicos que deberemos conocer, as como la termi-
nologa que va a utilizarse en el resto del captulo.
Entre otros elementos, Visual Basic cuenta con un diseador para formularios Win-
dows v otro para formularios Web, que hemos conocido en captulos previos, de tai
forma que el diseo de interfaces de usuario Windows y Web se lleva a cabo con
operaciones de arrastrar y soltar. Estos diseadores permiten seleccionar los com-
ponentes, alojarlos en un contenedor, personalizarlos editando sus propiedades,
asociar cdigo a los eventos, etc.
De forma anloga, una clase no podr considerarse un control a menos que est
5 Ocharte Ojeda, Francisco. Programacin con Visual Basic 2012. Madrid: Anaya Multimedia; 2011. p 551-
555.
LABORATORIO DE PROGRAMACIN
UNIDAD III: PROGRAMACIN ORIENTADA A OBJETOS Y PROYECTOS AVANZADOSDesarrollo
de contenidos
Actividades Autoevaluacin
MANUAL AUTOFORMATIVO
93
Para resumir este punto en una frase, haciendo referencia a los distintos conceptos
comentados, podramos decir que los componentes y controles pueden ser
alojados en un contenedor y personalizados mediante un diseador.
En la prctica, por tanto, para crear una nueva clase de componente lo que
haremos ser tomar como base la clase Componen- o, en su defecto, otra clase
que, directa o indirectamente, est derivada de Component.
Nota
Al definir una clase de componente hemos de tener en cuenta que, aunque puede
crearse y ser usado mediante cdigo como cualquier otra clase, el objetivo es facili-
tar la manipulacin en un entorno visual. Con este fin es fundamental | que la ciase
defina mediante propiedades y eventos todos los atributos con que puedan contar
los objetos, en lugar de recurrir a mtodos para efectuar dicha configuracin. Debe
tener en cuenta que los diseadores son capaces de mostrar las propiedades con
que cuenta un componente y facilitar su edicin, pero no existe la posibilidad de
invocacin a mtodos durante el diseo.
Diagrama Objetivos Inicio
ACTIVIDAD N 2:
Desarrollo Actividades Autoevaluacin
de contenidos
Esta actividad puede consultarla en su aula virtual.
CONTROL DE LECTURA N2
Lecturas Glosario Bibliografa
torio Anotaciones Esta actividad puede consultarla en su aula virtual.
seleccionadas
Recordatorio Anotaciones
AUTOEVALUACIN N III
Desarrollo Actividades Autoevaluacin
de contenidos
A continuacin se presentan algunas preguntas con varias alternativas, slo una es la
respuesta, marque la que considere correcta.
1. La descripcin que define mejor el concepto 'clase' en la programacin orientada a
Lecturas Glosario objetos es:
Bibliografa
seleccionadas
a) Un concepto similar al de 'array'
b) Un tipo particular de variable
c) Un modelo o plantilla a partir de la cual creamos objetos
Recordatorio Anotaciones
d) Una categoria de datos ordenada secuencialmente
6. Qu es una excepcin?
a) Un objeto que se instancia cuando se produce un error
b) Un objeto que no puede ser instanciado
c) Un bucle que no finaliza
d) Un tipo de evento muy utilizado al crear interfaces
10. El objeto principal sobre el que se construyen las aplicaciones en Microsoft Visual
Basic 2012 es:
a) Ventana
b) Formulario
c) Botones
d) Control
11. Los botones, etiquetas y formularios de Microsoft Visual Basic 2012 son:
a) Objetos
b) Controles
c) eventos
d) ninguno de los anteriores
as Glosario Bibliografa
nadas
c) Todos los controles
d) Ninguna es correcta
torio Anotaciones
17. Cuando un usuario interacta con un objeto se produce un:
a) Suceso
b) Evento
c) Click
d) Mtodo
BIBLIOGRAFIA III:
Lecturas Glosario Bibliografa
seleccionadas
James Martin y James J, Odell. Anlisis y diseo orientado a objetos. Londres: Prentice-
Hall Hispanoamericana, S.A.; 2000.
Ocharte Ojeda, Francisco. Programacin con Visual Basic 2012. Madrid: Anaya Multi-
Recordatorio Anotaciones
media; 2011.
Snchez Flores, Cristian. Desarrollando aplicaciones con Visual Basic.Net 2008. Per:
Macro 2008.
comentario"
c) MostrarNombre.Text= Comentario
d) Circunf= 2* PI* R --PI est definido en la seccin declaraciones.
LABORATORIO DE PROGRAMACIN
Desarrollo
de contenidos
Actividades Autoevaluacin
MANUAL AUTOFORMATIVO
97
Desarrollo
UNIDAD IV: ACCESO A DATOS
Actividades Autoevaluacin
de contenidos
Recordatorio Anotaciones
BIBLIOGRAFA AUTOEVALUACIN
Lecturas Glosario Bibliografa
seleccionadas
as Glosario Bibliografa
nadas
TEMA 1: Introduccin al Acceso a Datos 6
1 ADO .NET
torio Anotaciones
Independientemente de las operaciones que hagamos sobre los datos, existen cier-
tos conceptos fundamentales que debemos conocer sobre los datos en ADO.NET.
Es til conocer la arquitectura de los datos en ADO.NET, cules son los principales
componentes de datos, y cmo se acoplan las piezas.
ADO.NET se define como un conjunto de clases para trabajar con datos. ADO
.NET Proporciona:
Un sistema diseado para entornos desconectados.
Un modelo de programacin con soporte avanzado de XML.
Un conjunto de clases, interfaces, estructuras y enumeraciones que gestionan el
acceso a datos desde el .NET Framework.
He aqu algunos ejemplos en los que debe utilizarse una conexin continua:
Una fbrica que requiere una conexin en tiempo real para controlar la salida
de produccin y el almacn.
Un agente de bolsa que requiere una conexin constante a los valores del mer-
cado.
Tablet PCs permiten utilizar aplicaciones sin conexin a los servidores o a las bases
de datos.
Los usuarios mviles que trabajan con equipos porttiles son tambin los usuarios
principales de los entornos desconectados. Los usuarios pueden llevarse un subcon-
junto de datos en un equipo desconectado y posteriormente fusionar los cambios
con el almacn de datos central.
He aqu algunos ejemplos en los que podra ser apropiado un entorno desconec-
tado:
Una aplicacin que mantiene datos de clientes en un equipo porttil de un
representante.
Una aplicacin que hace un seguimiento de lluvias y precipitaciones.
Una aplicacin que un granjero utiliza para contar el ganado. La aplicacin
est en el dispositivo basado en Microsoft Windows CE del granjero que ejecuta
Microsoft SQL Server 2012 Windows CE Edition.
1 CONCEPTOS GENERALES
Los proveedores de datos de .NET y el espacio de nombres System.Data proporcio-
nan los objetos ADO.NET que utilizaremos en un escenario desconectado.
ollo
nidos 100
Actividades Autoevaluacin UNIDAD III: ACCESO A DATOS
as Glosario Bibliografa
nadas
torio Anotaciones
Cuadro N 11
Objetos comunes de ADO
1 EL EXPLORADOR DE SERVIDORES
A continuacin, aprenderemos a utilizar el Explorador de servidores para agregar
conexiones a bases de datos y visualizar elementos de bases de datos como tablas.
Mostrar las capacidades de Server Explorer utilizando la tabla Titles Recordatorio Anotaciones
as Glosario Bibliografa
nadas
para poblar la tabla Titles con datos. El cdigo debera ser como el siguiente:
- PubsSqlDataAdapter.Fill(PubsDataSet1)
torio Anotaciones
Probar la aplicacin
1. Ejecutar la aplicacin.
Los datos de Titles deberan poblar la rejilla de datos.
2. Mostrar la funcionalidad de la rejilla de datos utilizando las barras de despla-
zamiento y modificando los anchos de las columnas.
as Glosario Bibliografa
nadas
4.4. Visualizar elementos de la base de datos
Podemos utilizar el Explorador de servidores para visualizar y recuperar informa-
cin de todas las bases de datos instaladas en un servidor. Podemos hacer una lista
torio Anotaciones de tablas, vistas, procedimientos almacenados y funciones de la base de datos en
el Explorador de servidores, expandir tablas individuales para hacer una lista de
sus columnas y disparadores, y hacer clic con el botn derecho sobre la tabla para
seleccionar el Diseador de tablas del men contextual.
Debemos recordar que existen dos implementaciones para algunos de los objetos
de ADO .NET, cada uno especfico del origen de datos con el que nos vamos a co-
nectar. Esto ocurre con el objeto Connection, que tiene dos versiones, una como
proveedor de datos de SQL Server, a travs de la clase System.Data.SqlClient.Sql-
Connection, y otra como proveedor de datos OLEDB, a travs de la clase Sysem.
Data.OleDb.OleDbConnection.
Por norma general, del objeto Connection utilizaremos los mtodos Open( ) y
Close( ), para abrir y cerrar conexiones respectivamente, con el almacn de datos
adecuado. Aunque el .NET Framework implementa el recolector de basura que
gestiona de forma automtica los recursos y objetos que no son utilizados, es reco-
mendable cerrar las conexiones de forma explcita utilizando el mtodo Close( ).
as Glosario Bibliografa
nadas
1 EL OBJETO CONNECTION
Antes de trabajar con datos, es necesario establecer primero una conexin con
una fuente de datos. Para conectar con una fuente de datos, escogemos el tipo de
torio Anotaciones
conexin, especificamos la fuente de datos, y abrimos la conexin a la fuente de
datos. Cuando acabamos de trabajar con los datos, cerraremos la conexin.
Podemos utilizar el objeto Connection para conectar a una fuente de datos espec-
fica. Podemos utilizar SqlConnection para conectar a bases de datos SQL Server o
OleDbConnection para conectar a otros tipos de fuentes de datos.
2 EL OBJETO DATAADAPTER
Tras establecer una conexin con una fuente de datos, podemos utilizar un adap-
tador de datos para intercambiar datos entre la fuente de datos y un dataset. En
muchas aplicaciones, esto significa leer datos de una base de datos en un dataset
mediante un adaptador de datos y a continuacin escribir los datos cambiados des-
de el dataset al adaptador de datos y nuevamente a la base de datos. Sin embargo,
un adaptador de datos puede mover datos entre cualquier fuente y un dataset. Por
ejemplo, podra existir un adaptador que mueva datos entre un servidor que ejecu-
te Microsoft Exchange y un dataset.
Visual Studio incorpora dos adaptadores de datos principales para utilizarse con
bases de datos:
OleDbDataAdapter es apropiado para utilizarlo con cualquier fuente de datos
que proporcione un proveedor OLE DB.
SqlDataAdapter es especfico a SQL Server. Como no funciona a travs de una
capa OLE DB, es ms rpido que OleDbDataAdapter. Sin embargo, slo puede
ser utilizado con SQL Server.
El siguiente ejemplo muestra cmo crear una instancia de una clase Sql Client Da-
taAdapter y acceder a la tabla Titles en la base de datos pubs.
3 EL OBJETO DATASET
Despus de especificar los datos que queremos recuperar, el prximo paso es po-
blar un dataset con datos desde la base de datos. Los datasets almacenan datos en
un cach desconectado. La estructura de un dataset es similar a la de una base de
datos relacional y ofrece un modelo de objetos jerrquico de tablas, filas y colum-
nas. Adems, contiene restricciones y relaciones que estn definidas para el dataset.
Un dataset es un contenedor, de modo que necesitamos poblarlo con datos. Pode-
mos poblar un dataset de varios modos:
Invocar el mtodo Fill de un adaptador de datos. Llamando este mtodo hace
que el adaptador ejecute una sentencia SQL o un procedimiento almacenado
y pueble una tabla en el dataset con los resultados. Si el dataset contiene ml-
tiples tablas, probablemente tendremos adaptadores de datos separados para
cada tabla, y por tanto deberemos llamar a cada mtodo Fill de cada adaptador
por separado.
Poblar tablas manualmente en el dataset creando DataRows y aadirlas a la co-
leccin Rows de la tabla. Podemos hacer esto slo en tiempo de ejecucin.
Leer un documento XML o flujo en el dataset.
ollo
nidos 108
Actividades Autoevaluacin UNIDAD III: ACCESO A DATOS
as Glosario Bibliografa
nadas
Copiar los contenidos de otro dataset. Esta tcnica puede ser til si nuestra apli-
cacin obtiene datasets de diferentes fuentes (diferentes Servicios Web XML,
por ejemplo), pero necesita consolidarlos en un nico dataset.
torio Anotaciones
4 EL CONTROL DATAGRID
Despus de poblar un dataset, podemos visualizar y modificar datos utilizando el
control DataGrid de Windows Forms. DataGrid muestra datos en una serie de filas y
columnas. El caso ms simple es cuando la rejilla se enlaza con una fuente de datos
que contiene una nica tabla sin relaciones. En ese caso, los datos aparecen simple-
mente en filas y columnas, como en una hoja de clculo.
Para que el control DataGrid funcione, debemos enlazarlo con una fuente de datos
utilizando las propiedades DataSource y DataMember en tiempo de diseo o el
mtodo SetDataBinding en tiempo de ejecucin. Este enlace vincula el DataGrid a
un objeto de fuente de datos instanciado (como un DataSet o DataTable) y el con-
trol DataGrid se actualiza con los resultados de acciones realizadas sobre los datos.
Set. Por ejemplo, podramos usar enlace simple para un control TextBox o Label.
Utilizando la propiedad DataBindings de un control con capacidad de vinculacin
a datos, podemos especificar qu DataSet y qu campo enlazar con qu propiedad.
LECTURA SELECCIONADAS N 1
Lecturas Glosario Bibliografa
seleccionadas
Representacin de las entidades en el diseo de formularios
La primera decisin que hay que tomar es cmo se proyecta un formulario en el modelo
Entidad Relacin (E/R). Representa este formulario una nica entidad, dos entidades
en una asociacin
Recordatorio Anotaciones uno-a-uno, dos entidades en una asociacin uno-a-muchos o ms de
dos entidades?. Cada una de estas estructuras de estas estructuras de entidad se presta
a determinados tipos de organizacin de formularios, lo que veremos en este captulo.
Existen organizaciones que, en mi experiencia, encajan de forma natural en determina-
dos tipos de estructuras de datos.
Entidades Simples
El tipo ms sencillo de entidad a representar en un formulario es la entidad simple,
que se presenta mediante una nica tabla de la base de datos Si tal entidad participa
en cualquier asociacin, en el formulario no se incluye el lado muchos, ni ningn otro
participante.
Por ejemplo, veamos el diagrama E/R, de la Figura 14-1, que representa la entidad
Cliente sus relaciones.
as Glosario Bibliografa
nadas
torio Anotaciones
Figura 14-1. Este diagrama muestras las entidades que estn relacionadas con Clientes
La entidad Clientes, por lo tanto, est en el lado muchos de todas las entidades que
se incluyen en el formulario de mantenimiento, y, por ello, se puede tratar como una
entidad simple. Esto hace ms inmediata la organizacin del formulario. Nos hacen
falta subformularios o controles de red. Slo hay que escoger el control que represente
mejor cada uno de los campos (como se discutir en el captulo siguiente), ponerlos en
el formulario y habremos terminado.
Bueno, no slo hay que ponerlos en el formulario, habr que ordenar todos los con-
troles ingeniosamente, con un margen de siete unidades y cuatro unidades entre cada
control, y con los elementos ms importantes situados en la esquina superior izquierda,
como se describe en Gua de la interfaz Windows para el diseo de Software, de acuer-
do? Pero ya tenemos la idea. No hace falta nada complicado, a menos que dese salirse
fuera del espacio en el formulario.
Pero es complicado salirse del espacio. Tcnicamente, se pueden aadir 754 controles
durante el tiempo de vida de un formulario o informe de Microsoft Access (con los
controles posteriormente eliminados, se puede incrementar el total) y tener un mximo
de 254 controles en un formulario de Microsoft Visual Basic (contando los arrays de
controles como un nico control).
Prcticamente, no hay que pretender que los usuarios tengan que tratar a la vez con ms
de 25 30 controles o grupos de controles. (Ntese que decimos controles o grupos de
controles;: un cuadro de grupo contiene tres o cuatro botones de radio y cuenta slo
como un control lgico.) Por tanto, qu ha que hace si se tiene una entidad simple con
75 atributos? Hay que mostrar a la vez slo una parte de os datos.
Para una entidad Clientes, por ejemplo, este grupo de atributos de identificacin proba-
blemente incluya los detalles del nombre y la direccin, y puede que el atributo Repre-
sentante de ventas. Para una entidad Productos, podra incluir los atributos Categora
De Producto, Nombre y Descripcin. Este grupo de atributos debe situarse en la parte
superior del formulario y siempre visible.
Los atributos a recordar se dividen en grupos que estn relacionados y que necesitan vi-
LABORATORIO DE PROGRAMACIN
UNIDAD III: ACCESO A DATOSDesarrollo
de contenidos
Actividades Autoevaluacin
MANUAL AUTOFORMATIVO
111
Una vez organizados los atributos en grupos, existen un par de opciones. Podra consi-
derar un control de tabulador en el formulario principal con cada grupo en un tabula-
dor distinto. Esta es la solucin que yo utilizo con mayor frecuencia,. Los controles de
tabulador proporcionan el mayor contexto a los usuarios saben de inmediato que ha
informacin adicional disponible y lo que es esa informacin. Sin embargo, si hay ms
de cinco o seis grupos, el control de tabulador no es operativo.
En este caso, habra que mover algunos o todos los grupos a un formulario auxiliar.
Los formularios auxiliares tambin son tiles, si los grupos individuales contienen ms
atributos de los que encajan con comodidad en un tabulador. Se podra permitir que los
usuarios abriesen los formularios auxiliares desde botones de rdenes del formulario
principal, en una estructura similar a la de centralita. No obstante, con demasiados bo-
tones de rdenes, el formulario se volver, una vez ms, no operativo. Una solucin me-
jor en este caso podra ser tener los formularios auxiliares disponibles desde un men.
Hay que tener cuidado de mantener el contexto a los usuarios cuando se utilizan for-
mularios auxiliares. Los usuarios siempre quieren tener la certeza de a qu ejemplar
de la entidad pertenecen los detalles mostrados. La forma ms sencilla de identificar la
entidad es tener detalles de la pantalla principal repetidos en el formulario auxiliar. En
realidad, no es necesario repetir el grupo completo de identificacin slo la parte del
grupo que enlaza el formulario auxiliar con el formulario principal.
De forma alternativa, se podran hacer modales los formularios auxiliares. Este es uno
de los pocos sitios donde la modalidad se puede justificar en un sistema, ya que ayuda
a mantener el contexto del usuario. Sin embargo, los formularios modales siempre res-
tringen al usuario, que es algo que siempre hay que evitar en la medida de lo posible. Yo
utilizo esta tcnica slo como ltima medida, cuando no existe absolutamente ningn
estado real para incluir los pocos atributos necesarios para mantener el contexto.
Mejor an que utilizar mltiples ventanas auxiliares, en teora se podra mostrar la in-
formacin secundaria en mltiples subformularios (controles Marco, en Visual Basic)
del formulario principal. A m no me gusta demasiado esta solucin, ya que es compli-
cado mantener el contexto del usuario. Hay que proporcionar algn mecanismo para
determinar qu subformulario se mostrar. Si se utiliza un men para controlarlo, no
existe ningn indicativo en el propio formulario de que hay otra informacin disponi-
ble. Si se utiliza algn control en el formulario, puede que un conjunto de botones de
radio, podra no quedar claro a los usuarios por qu cambia la apariencia de su formu-
lario. Yo creo que es preferible utilizar controles de tabulador, que es un mecanismo
establecido, mejor que inventa una nueva solucin.
Asociaciones uno-a-uno
En la mayora de los casos, los formularios que presentan informacin de dos entida-
des que poseen una asociacin uno-a-uno se pueden tratar exactamente igual que los
formularios que representan entidades simples. Se crea una consulta que combina los
campos correspondientes de las dos tablas y, despus, se trata como una entidad simple.
Si se tienen ms atributos de los que se pueden mostrar con comodidad, se aplican las
mismas tcnicas que para las entidades simples.
Muchas veces, sin embargo, las asociaciones son mutuamente excluyentes, como cuan-
ollo
nidos 112
Actividades Autoevaluacin UNIDAD III: ACCESO A DATOS
as Glosario Bibliografa
nadas
do un determinado Producto puede ser una Bebida o un Queso, pero no ambos. Es un
buen momento para utilizar mltiples subformularios oo marcos, proporcionando el es-
tado real suficiente. No es necesario preocuparse de que los usuarios comprendan que
existe ms informacin relacionada disponible en un determinado contexto; no existe
torio Anotaciones
ninguna otra informacin. De hecho, utilizar un control tabulador en esta situacin
podra ser contraproducente.
Si existen problemas con el estado real, ser necesario utilizar una de las tcnicas para el
agrupamiento y muestra de las que henos hablado para las entidades simples. Si los con-
troles representan los atributos de la subclase situada en el tabulador, es mejor intentar
encontrar algn trmino genrico para la etiqueta del tabulador. Puede es confuso para
los usuarios s la etiqueta del tabulador (o la etiqueta del botn de orden) cambia cuan-
do se desplazan por la tabla.
Por la misma razn, si los usuarios pueden desplazarse por el conjunto de registros prin-
cipal, yo intento evitar tener controles que muestren los atributos de la entidad super-
clase en el primer tabulador del control tabulador. Debido a que los controles de cada
subclase son distintos, la apariencia del formulario cambiar cuando los usuarios se
desplacen por los registros. Manteniendo los atributos de subclase fuera del primer ta-
bulador, se puede mantener la apariencia estable, y se pueden proporcionar a propsi-
to, algunas mejoras de rendimiento al no recalcular la apariencia de forma innecesaria.
Asociaciones uno-a-muchos
Muchos formularios necesitan mostrar entidades que estn enlazadas mediante asocia-
ciones uno-a-muchos. Determinar la mejor organizacin de estos formularios es sen-
cillo, slo hay que recordar que el formulario necesita mostrar una asociacin uno-
a-muchos, no muchas asociaciones muchos-a-uno. Cuando se modelan asociaciones
complejas, menudo es ms sencillo pensar en trminos de registros que de ejemplares
de entidades. Por lo que, en este caso, hay que tener la certeza de que el registro de
un lado tiene que controlar la apariencia de registros del otro lado y no en sentido
contrario. Si se intenta controlar el registro de un lado de uno desde un registro el lado
muchos, nos meteremos (y el sistemas y los usuarios) en un lo.
Habiendo establecido que el registro del lado de uno controla la apariencia, es necesa-
rio decidir cmo se van a mostrar los registros del lado muchos. Existen dos opciones:
se pueden mostrar todos de una vez o de uno en uno.
La eleccin est determinada, en gran medida, por la cantidad de detalles que los usua-
rios necesiten ver de cada uno de los registros del lado muchos. Si es necesario mostrar
slo unos pocos campos, por o general se podrn mostrar todos a la vez. El formulario
mostrado en la Figura 14-2, de la base de datos ejemplo Neptuno, utiliza un subfor-
mulario para mostrar todos los campos de cada uno de los registros del lado muchos.
Figura 14-2. Este formulario muestra los registros del lado muchos en la asociacin utilizando un
subformulario de vista continua.
LABORATORIO DE PROGRAMACIN
UNIDAD III: ACCESO A DATOSDesarrollo
de contenidos
Actividades Autoevaluacin
MANUAL AUTOFORMATIVO
113
ACTIVIDAD N 1:
Desarrollo Actividades Autoevaluacin
de contenidos
Esta actividad puede consultarla en su aula virtual.
Lecturas
TEMA 3: Creacin de proyectos de acceso a datos.
Glosario Bibliografa
seleccionadas
A continuacin se desarrolla un proyecto de acceso a datos para una empresa ficticia,
para ello se plantea el siguiente escenario.
Recordatorio Usted
Anotacioneses un desarrollador de aplicaciones de una compaa comercial llamada Nor-
Las tablas Order y Order Details tienen una relacin de uno a muchos. Para escribir el
cdigo que puebla y actualiza estas tablas, debemos entender la relacin entre las tablas
y los campos relacionados. La siguiente ilustracin representa las relaciones y campos
de las tablas Order y Order Details.
La aplicacin utiliza informacin sobre los empleados para cargar y crear entradas
de pedidos. Cada pedido se asocia a un nico empleado. La tabla Orders incluye
una columna EmployeeID que se vincula a la columna EmployeeID de la tabla Em-
ployees. El DataAdapter que creemos utilizar el valor de la variable employeeID
para determinar qu filas devolver. Decidimos utilizar el Asistente para la configura-
cin del adaptador de datos para configurar el comando SELECT del DataAdapter
y permitir que genere el comando Actualizar.
as Glosario Bibliografa
nadas
Solicite al docente los archivos de inicio.
2. Aadir un control SQLDataAdapter a la clase OrderApplicationData. En el
Asistente para la configuracin del adaptador de datos, utilizar la informa-
torio Anotaciones cin NorthwindConnection y crear la siguiente instruccin Select de SQL:
SELECT * FROM Orders WHERE (EmployeeID = @EmployeeID)
2 MODIFICAR UN DATASET
A continuacinejercicio, examinaremos el cdigo que crea objetos de tablas de
datos, insertaremos nuevas filas de datos y abriremos la informacin a un dataset
existente. Continuacin Considerando el siguiente escenario:
La tabla Orders utiliza una columna denominada OrderID que se incrementa auto-
mticamente para generar claves primarias cuando se crean nuevas filas en la base
de datos. Los datasets tambin generan este valor cuando se inserta una nueva fila
en la tabla Orders. La aplicacin de rdenes de compra utiliza un dataset global
denominado pendingOrdersData para almacenar todos los pedidos hasta que se
enven a la base de datos. Cada pedido se asocia a uno o ms detalles del pedido.
La tabla Orders incluye una columna OrderID que equivale a la columna OrderID
de la tabla Order Details.
A continuacin, crearemos una relacin entre dos tablas para crear un dataset ti-
pado y para actualizar los cambios desde el dataset a un DataSource. Veamos el
siguiente escenario:
En la base de datos Northwind, cada pedido est asociado a uno o ms detalles de
pedido. La tabla Orders incluye una columna OrderID que equivale a la columna
OrderID de la tabla Order Details. Cuando creamos una nueva fila en la tabla Or-
ders, el procedimiento SaveOrders garantiza que todas las filas secundarias de la
tabla Order Details tienen el mismo OrderID que las principales de la tabla Orders.
Cuando actualizamos el dataset a una fuente de datos, en primer lugar debe actuali-
zarse la tabla Orders y, a continuacin, la tabla Order Details. Sin embargo, cuando
actualizamos una fila en la tabla Orders, la base de datos generar un nuevo Orde-
rID que puede no concordar con los valores secundarios la tabla Order Details. Esto
provoca un error cuando intentamos actualizar la tabla Order Details.
Una forma de solucionar este problema es escribir cdigo que utilice eventos del
dataset para capturar el nuevo OrderID generado por la base de datos y asignarle
todas las filas secundarias de la tabla Order Details. Sin embargo, hay otras opcio-
nes disponibles cuando se utilizan datasets tipados y DataAdapters para cada tabla
de una base de datos. En lugar de escribir cdigo para eventos del dataset, pode-
mos utilizar la opcin Actualizar DataSet del Asistente para la configuracin del
adaptador de datos. Con esta opcin habilitada, el asistente agrega una instruccin
SELECT tras las instrucciones Insert y Update para recuperar la columna Identity
generada por la base de datos.
Cuando creamos una relacin entre tablas utilizando el diseador XML, podemos
escoger cmo se gestionan las relaciones de las tablas cuando se modifica la tabla
principal. Por ejemplo, si establecemos Regla de borrado en Cascada (valor prede-
terminado), y eliminamos filas de una tabla principal, todas las filas relacionadas
de la tabla secundaria tambin se eliminan. Cuando creamos una relacin entre las
tablas Orders y Order Details, es importante establecer el valor de la opcin Regla
de borrado en Cascada (valor predeterminado) para que los cambios realizados a
una tabla principal se transmitan en cascada a las tablas secundarias.
as Glosario Bibliografa
nadas
1 ENLAZAR Y FORMATEAR DATOS EN CONTROLES
En este ejercicio, enlazar datos a controles y formatear los datos utilizando los
eventos de la clase Binding. Revisemos el escenario
torio Anotaciones
El control OrderItemControl est bajo desarrollo y requiere cdigo para enlazar los
controles constituyentes a datos desde la tabla Products. Un mtodo en el control
denominado GetProductData ha sido creado y acepta un parmetro denominado
productsTable que contiene datos de la tabla Products. Necesitamos enlazar datos
desde esta tabla para los controles constituyentes. Tambin necesitamos convertir
los valores en la columna Price a formato monetario cuando los enlazamos al con-
trol UnitPriceTextBox.
Existen archivos de inicio asociados a este ejercicio, los cules los proporcionar el
docente.
Completemos lo siguiente:
1. Abrir Visual Studio .NET y el archivo PurchaseOrderApplication.sln.
2. Utilizar la Lista de tareas para localizar la seccin de cdigo TODO: 1 en la
vista de cdigo de OrderItemControl.vb, y asignar DataSource de Product-
NameComboBox a la DataTable pasada al procedimiento GetProductData.
Asignar DisplayMember y ValueMember de ProductNameComboBox a las
columnas ProductName y ProductID respectivamente.
3. Utilizar la Lista de tareas para localizar la seccin de cdigo 'TODO: 2', y
declarar un objeto Binding, y utilizarlo para enlazar la propiedad Text de
UnitPriceTextBox a la columna UnitPrice de la DataTable pasada al procedi-
miento GetProductData.
4. Utilizar la Lista de tareas para localizar la seccin de cdigo 'TODO: 3', y crear
un procedimiento de evento denominado DecimalToCurrency que convierte
el argumento de evento ConvertEventArgs a un formato monetario.
5. Utilizar la Lista de tareas para localizar la seccin de cdigo 'TODO: 4', y crear
un procesador de eventos para el evento Format del objeto Binding creado en
el paso 4.
6. Compilar y ejecutar la aplicacin. En la barra de herramientas, hacer clic en
el botn Actualizar, y seleccionar un nombre de empleado. Para poblar el
control OrderItemControl, hacer clic en el botn New Order Item. Navegar
a travs de los productos utilizando el control ProductNameComboBox.
Diagrama Objetivos Inicio
LECTURA SELECCIONADAS N 2
Lecturas Glosario Bibliografa
seleccionadas
La Interfaz como mediadora 9
Despus de completar el anlisis de tareas descrito anteriormente, debera tenerse una
clara idea de lo que el sistema que se est diseando necesita hacer.
Recordatorio Anotaciones
Interfaces eficientes
En la mente de los usuarios, la interfaz de usuario de un sistema es el sistema, la mate-
ria restante se puede ignorar felizmente. El diseo de la interfaz de usuario es, por lo
tanto crucial para acertar o errar en el proyecto. Se pone bien, y los usuarios olvidarn
infelicidades ocasionales de la implementacin. Se pone mal, y dar igual lo eficiente
que sea el cdigo.
9 Rebecca M. Riordan. Diseo de Base de datos relacionales con Access y SQL Server. p 203-209.
LABORATORIO DE PROGRAMACIN
UNIDAD III: ACCESO A DATOSDesarrollo
de contenidos
Actividades Autoevaluacin
MANUAL AUTOFORMATIVO
117
Por lo que si nadie va a darse cuenta, por qu hermano?, bueno, por qu no?. Des-
pus de todo, es el trabajo. Con riesgo de sonar como una madre, si se va a disear por
completo un sistema de computadora, no tendr sentido hacerlo todo lo bien que se
pueda?. El diseo de interfaces eficientes requiere ms trabajo que slo pegarse con
una herramienta sobre bases de datos. Las interfaces eficientes tambin necesitan ms
trabajo para implementarlas, aunque este no es necesariamente el caso. Adems, la
liquidacin puede ser enorme, y no todos ellos perteneces a la categora la virtud es
la propia recompensa. Una interfaz de usuario eficiente minimiza el tiempo que los
usuarios necesitan para aprender e implementar el sistema. Una vez que el sistema est
implementado, los beneficios de productividad son mayores si los usuarios no tienen
que luchar para vencerse a s mismos. La buena suerte es que estos temas se plantearon
en los objetivos del proyecto. En realidad impactan sobre la famosa lnea base.
Las interfaces eficientes que encajan mucho con las expectativas de los usuarios y con
los procesos de trabajo tambin minimizan la necesidad de documentacin externa,
que siempre es cara. Y aunque los usuarios no sean conscientes ni se den cuenta de lo
maravillosa que es la interfaz de usuario, en realidad se darn cuenta de que el sistema
parece que funciona mejor que el diseado por la Compaa Los Usuarios Son Mal-
vados. Eso puede afectar a la lnea base de la prxima vez que aparezca un proyecto o
promocin.
Veremos estos tres principios en este captulo, pero primero echaremos un breve vista-
zo a unos pocos modelos que resulta til considerar cuando se piensa en el diseo de
interfaces de usuario.
Modelos de Interfaz
Alan Cooper, en su esplndido libro About Face: Essentials of User Interface Design,
describe la forma en la que los usuarios ven los sistemas (y la forma en la que los sistemas
ven a los usuarios) en trminos de tres modelos: el modelo mental, el modelo manifies-
to y el modelo de implementacin. Estas tres formas distintas de ver los sistemas son
herramientas tiles para tomar decisiones sobre el diseo de la interfaz de usuario de
la aplicacin.
El modelo mental del usuario describe lo que el usuario piensa que est ocurriendo.
Esto a menudo, no coincide con lo que en realidad est pasando, pero est bien. Yo
tengo una vaga idea de que mi cuerpo quema los alimentos para generar energa de
la misma forma que mi automvil quema gasolina. Yo s que el proceso, en realidad, es
bastante diferente, pero no me importa. Yo pongo gasolina en mi coche para mantener-
lo andando, y comida en mi cuerpo para mantenerlo funcionando. Mi modelo mental
se adapta perfectamente para conseguir cosas.
as Glosario Bibliografa
nadas
La interfaz de usuario es el modelo manifiesto que se sita entre el modelo mental y el
modelo de implementacin del desarrollador. Es decir, si se desea, el modelo del pro-
ceso que el sistema revela (manifiesta) al usuario. El objetivo al disear una interfaz es
ocultar todos los detalles posibles del modelo de implementacin. El sistema ideal enca-
torio Anotaciones
ja perfectamente con el modelo mental de usuario. A menudo, no es posible encajar el
modelo mental del proceso exactamente. Pero cuanto ms cerca nos quedemos, mejor.
Si se est suficientemente interesado en las computadoras como para estudiar esta ca-
rrera, el modelo mental no encajar con el modelo mental de los usuarios. Mi modelo
mental de utilizar un procesador de textos es que yo pulso una tecla de carcter u se
almacena un cdigo ASCII en algn sitio de la RAM. Es muy cercano al modelo de im-
plementacin, pero no se parece a lo que piensa un trabajador medio de oficina.
Este es el gran peligro del diseo de interfaces; an cuando no se est directamente in-
volucrado en la implementacin, casi seguro que sabr algo sobre ello. O se tiene el don
de olvidar temporalmente los detalles de implementacin ose pregunta a un usuario a
sueldo para que proporcione el modelo mental.
La mejor costumbre es llevar el uso formal de pruebas utilizando un prototipo del siste-
ma, aunque es posible en raras ocasiones, cualquier tipo de investigacin de uso merece
la pena. Si se ha creado un prototipo, hay que encontrar unos pocos usuarios y dejarles
jugar con l. Hay que preguntarles lo que piensan que va bien. Se obtendrn algunas
sorpresas. Sino se ha creado un prototipo, se puede preguntar sobre sistemas similares o
incluso utilizar una maqueta en papel. Yo he tenido una gran cantidad de experiencias
con esta ltima tcnica; sin embargo, he encontrado que los usuarios se ven confusos
entre una pantalla interactiva y un informe cuando ambos se presentan en papel.
Cuando se haya recopilado tanta informacin como se pueda, hay que pensar cundo el
modelo de implementacin (lo que realmente se va a hacer) se entremete en el modelo
mental de usuario y despus, resolver estas reas. Se est utilizando la terminologa
correcta?. Siempre hay que utilizar las mismas palabras que el usuario. Se est forzando
a los usuarios a pensar en edicin de registros cuando lo que ellos quieren pensar es
cambio de direcciones?. Esto podra ser un problema de terminologa o un problema
de estructura de sistema, lo que se ver ms adelante.
Niveles de usuario
No puedo imaginarme que nadie se proponga intencionadamente crear un sistema que
no sea amigable al usuario. Puede que el uso no sea una prioridad alta, pero nadie se
propone crear un sistema que es antagnico al usuario. El problema es que amigable al
usuario es una de esas bonitas expresiones bien intencionadas que no significan dema-
siado, por lo que nos dejamos llevar para encontrar una definicin ad hoc.
Dos definiciones de amigable al usuario que se suelen proponer son fcil de apren-
der y fcil de usar. Si nos ponemos en el momento de plantearnos la cuestin de lo
que significa exactamente fcil, tendremos que preguntarnos a nosotros mismos: fcil,
para quien?. El sistema que es fcil de aprender para un principiante, no necesaria-
mente es fcil de usar para un experto. La mejor solucin es considerar las necesidades
de cada nivel de usuario y acomodar cada uno con las distintas facetas de la interfaz.
Principiante
Todo el mundo es principiante en algn punto. Muy pocas personas recuerdan ese ca-
mino o pasaron directamente del estado de novato a intermedio o descartaron por
completo el sistema a favor de algn otro-. Por esta razn, hay que ser cuidadosos en dar
soporte para que los principiantes lleguen a ser usuarios expertos.
Los principiantes necesitan saber lo que hace el sistema antes de empezar a aprender
cmo usarlo. La mejor forma de presentar esta informacin es sacarla del sistema prin-
cipal. Para sistemas simples, un cuadro de dilogo de introduccin que describa el siste-
ma puede ser suficiente. (Slo hay que asegurarse de que siempre se incluya un medio
para desactivar definitivamente el cuadro de dilogo). Para sistemas ms complejos, una
visita guiada puede ser apropiada.
LABORATORIO DE PROGRAMACIN
UNIDAD III: ACCESO A DATOSDesarrollo
de contenidos
Actividades Autoevaluacin
MANUAL AUTOFORMATIVO
119
La ayuda en lnea no es una buena opcin para los principiantes. Ellos pueden no saber
si existe o, si lo saben, no saben cmo usarla. Yo he encontrado acertada la utilizacin
de una gua de usuario en lnea; sin embargo, incluyendo un enlace desde el cuadro Recordatorio Anotaciones
de dilogo de introduccin y desde el men Ayuda. Para acertar con los principiantes,
estas guas deben estar orientadas a las tareas. Los principiantes no desean saber lo que
significa elemento de men; ellos quieren saber cmo crear una factura.
Intermedio
Para la mayora de los sistemas, casi todos los usuarios caen en la categora intermedia.
Los usuarios intermedios saben lo que hace el sistema; pero, a menudo, olvidan los deta-
lles del cmo. Este es el grupo al que hay que darle soporte directamente en la interfaz
de usuario. Afortunadamente, la interfaz de Microsoft Windows proporciona una gran
cantidad de herramientas para ayudar a estos usuarios.
Un sistema de mens bien diseado es una de las mejores herramientas para recordar a
los usuarios intermedios las posibilidades del sistema. Un vistazo rpido a los elementos
de men disponibles les recordar inmediatamente las funciones disponibles y, al mis-
mo tiempo, les permitir comenzar la tarea correspondiente.
Experto
Los usuarios expertos saben qu hacer y cmo hacerlo. Ellos estn interesados princi-
palmente en hacerlo rpidamente. Cuantos ms accesos directos se puedan crear en el
sistema, ms feliz estar este grupo de usuarios. En mi experiencia, los usuarios expertos
tienden a estar orientado al teclado, por lo que, si se est dando soporte a este grupo,
hay que asegurarse de proporcionar una forma de moverse por el sistema utilizando el
teclado.
Esta tcnica no slo est todo lo lejos posible del centrado en el usuario, sino que tam-
poco va a funcionar. Los usuarios, a menudo, tienen buenas razones para introducir
datos en un determinado orden introducir los datos en ese momento podra no estar
disponible o no ser conveniente-. Si se les fuerza a hacer algo, lo harn. Introducirn
cualquier vieja tontera que el sistema acepte. Por lo que se les ha ofendido, se les ha
impuesto y, definitivamente, no se ha conseguido nada.
ollo
nidos 120
Actividades Autoevaluacin UNIDAD III: ACCESO A DATOS
as Glosario Bibliografa
nadas
Veremos en detalle este tema ms adelante, cuando discutamos la integridad de los
datos. Forzar artificialmente la integridad de los datos es la principal forma de que los
sistemas de bases de datos intenten controlas a los usuarios. La segunda forma es ser
obsesivamente modales. Un modo es una condicin de sistema que limita la interaccin
torio Anotaciones
del usuario. Los modos clsicos en un sistema de bases de datos son agregar, editar y
ver. Un sistema que necesita que el usuario vuelva al men principal antes de editar un
registro que acaba de estar mirando es ridculamente ineficiente. Exigir que se escoja
un elemento del men o se pulse un botn antes de la edicin no es mucho mejor.
A m no me gusta pedir a los usuarios que confirmen los cambios antes de guardar
un registro, aunque en algunas situaciones podra estar justificado. La idea general de
guardar es extraa para la mayora de los usuarios. Recurdese el modelo mental de
los usuarios. Ellos han realizado un cambio, y ahora les estamos preguntado si desean
realizar el cambio, lo que es bastante confuso. Una vez que identifiquen lo que significa,
la mayora de las personas cogern la costumbre de elegir Aceptar cada vez que apa-
rezca el cuadro de dilogo de confirmacin, por lo que el cuadro de dilogo no tendr
demasiado sentido.
Los mensajes de confirmacin de este tipo son otro ejemplo de imposiciones al usuario
sin conseguir demasiado. En los pocos casos que he implementado mensajes de confir-
macin (normalmente a peticin del cliente), he proporcionado un mecanismo para
desactivarlos (generalmente en el cuadro de dilogo Propiedades).
Diagrama Objetivos Inicio
ACTIVIDAD N 2:
Desarrollo Actividades Autoevaluacin
de contenidos
Puede consultar esta actividad en su aula virtual
Diagrama Objetivos Inicio
a) SqlDataAdapter
b) DataSet
c) SQLDataReader
d) SQLCommand
GLOSARIO
Administracin de Base de Datos Relacional: Tcnica de admistracin de bases de datos
en la que la informacin se guarda en tablas de datos bidimensionales. El programa que
funciona con dos tablas de datos al mismo tiempo, relaciona la informacin mediante
vinculaciones establecidas por una columna o campos comunes.
Acceso: La manera en la cual los archivos o conjunto de datos son referenciados por la
computadora.
Base de Datos: Es una serie de datos organizados y relacionados entre s, los cuales son
recolectados y explotados por los Sistemas de Informacin de una empresa o negocio
en particular.
Buscadores: O tambin llamados motores de bsqueda, son herramientas que permi-
ten clasificar la informacin que existe en la red y hacerla localizable en poco tiempo
segn las preferencias del usuario.
Campo: Unidad bsica de una base de datos, un campo puede ser, por ejemplo, el
nombre de una persona. Los nombres de los campos, no pueden empezar con espacios
en blanco y caracteres especiales. No pueden llevar puntos, ni signos de exclamacin o
corchetes. Si pueden tener espacios en blanco en el medio.
Datos estadsticos: estos almacenan informacin estadstica sobre los datos en la base
de datos.
El DBMS: es un conjunto de programas que se encargan de manejar la creacin y todos
los accesos a las bases de datos.
ELIMINACION: Es una solicitud de eliminacin que se expresa de forma muy parecida
a una consulta. Sin embargo, en vez de presentar tuplas al usuario, quitamos las tuplas
seleccionadas de la base de datos. Slo puede eliminar tuplas completas; no se puede
eliminar nicamente valores de determinados atributos.
Facilidad de Consultas: Permitir al usuario hacer cuestiones sencillas a la base de datos.
Este tipo de consultas tienen como misin proporcionar la informacin solicitada por
el usuario de una forma correcta y rpida.
Formulario: es el elemento en forma de fecha que permite la gestin de los datos de
una forma mas cmoda y visiblemente mas atractiva
Gestor de Base de Datos: Es un conjunto de programas que permiten crear y mantener
una base de datos, asegurando su integridad, confidencialidad y seguridad
Independencia de los datos: Se refiere a la proteccin contra los programas de apli-
caciones que pueden originar modificaciones cuando se altera la organizacin fsica y
lgica de las bases de datos.
JDBC: La Conectividad de Bases de Datos Java (Java Database Connectivity, JDBC) es
una especificacin de la interfaz de aplicacin de programa (application program in-
terface, API) para conectar los programas escritos en Java a los datos en bases de datos
populares.
La manipulacin de datos: la manipulacin de datos es la recuperacin de informacin
almacenada en la base de datos
Lenguaje de consulta: Son los lenguajes en el que los usuarios solicitan informacin de
la base de datos. Estos lenguajes son generalmente de ms alto nivel que los lenguajes
de programacin. Los lenguajes de consulta pueden clasificarse como procedimentales
y no procedimentales
Manipulacin de Base de Datos: Usando la base de Datos -- el usuario puede aadir,
borrar y modificar informacin a la base de datos as como tambin hacer consultas
Modelo de base de datos orientado a objetos: es una adaptacin a los sistemas de bases
de datos. Se basa en el concepto de encapsulamiento de datos y cdigo que opera sobre
LABORATORIO DE PROGRAMACIN
UNIDAD III: ACCESO A DATOSDesarrollo
de contenidos
Actividades Autoevaluacin
MANUAL AUTOFORMATIVO
123
Nivel logico: definicin de las estructuras de datos que constituyen la base de datos
Reglas de Integridad: Son restricciones que definen los estados de consistencias de las
bases de datos.
DBMS: Es un conjunto de programas que se encarga de manejar la cremacin y todos
los acceso a las bases de datos.
DDL: Es un lenguaje de definicin de datos
Rectngulos: es parte de la estructura de base de datos y son aquellos que representan
un conjunto de entidades
Recuperacin: Proporcionar como mnimo el mismo nivel de recuperacin que los sis-
temas de bases de datos actuales. De forma que, tanto en caso de fallo de hardware
como de fallo de software, el sistema pueda retroceder hasta un estado coherente de
los datos.
Sistema de Administracin de Base de Datos: Es el softwware que controla la organiza-
cin, almacenamiento, recuperacin, seguridad e integridad de los datos en una base
de datos
SISTEMA GESTOR DE BASE DE DATOS: Es un conjunto de programas que permi-
ten crear y mantener una base de datos, asegurando su integridad, confidencialidad y
seguridad.
Software: Es un sistema manejador de bases de datos que permite al usuario accesar
con facilidad a los datos almacenados o que ande ser almacenados
Transaccin: es una secuencia de operaciones de acceso a la base de datos que consti-
tuye una unidad lgica de ejecucin.
Transacciones compartidas: Las transacciones compartidas soportan grupos de usua-
rios en estaciones de trabajo, los cuales desean coordinar sus esfuerzos en tiempo real,
los usuarios pueden compartir los resultados intermedios de una base de datos. La tran-
saccin compartida permite que varias personas intervengan en una sola transaccin.
TUPLAS: Es la representacin de una fila en una de las tablas que se esta almacenando
datos. Y las cuales sern llamadas por los administradores de Base de Datos en el tiempo
de ejecucin de un sistema.
Usuario final: es quien accesa a las bases de datos por medio de un lenguaje de consulta
o de programas de aplicacin.
ollo
nidos 124
Actividades Autoevaluacin ANEXO
as Glosario Bibliografa
nadas
Clave de respuestas a autoevaluaciones
Cuadro N 12
torio Anotaciones
Clave de respuesta de las autoevaluaciones