Você está na página 1de 147

UNIVERSIDAD ABIERTA INTERAMERICANA

FACULTAD DE TECNOLOGIA INFORMATICA

SEDE LOMAS DE ZAMORA

TRABAJO PRÁCTICO

Nombre del Trabajo: Aplicación Web en ASP.NET

Asignatura: Modelos Computacionales de Gestión Administrativa.


4º Año – Comisión “A” – Turno Mañana.

Profesor: Sábato, Sebastián

Alumnos: Currá, Ivana Yael.


Yuziuchuk, Pedro

Fecha de Entrega: 01/03/2011


UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

Contenido
1. Descripción del Negocio ............................................................................................................7
2. Mapa de Navegación ..................................................................................................................7
3. Capa Presentación ......................................................................................................................8
3.1. Index.aspx ..........................................................................................................................8
3.1.1. Captura de Pantalla (Bienvenida) ...............................................................................8
3.1.2. Captura de Pantalla (Luego de Login Exitoso) ...........................................................9
3.1.3. Código HTML ............................................................................................................9
3.1.4. Código VB................................................................................................................13
3.2. Login.aspx ........................................................................................................................14
3.2.1. Captura de Pantalla ...................................................................................................14
3.2.2. Código HTML ..........................................................................................................14
3.2.3. Código VB................................................................................................................15
3.3. Menu.aspx ........................................................................................................................17
3.3.1. Captura de Pantalla ...................................................................................................17
3.3.2. Código HTML ..........................................................................................................17
3.3.3. Código VB................................................................................................................18
3.4. Backup.aspx .....................................................................................................................20
3.4.1. Captura de Pantalla ...................................................................................................20
3.4.2. Código HTML ..........................................................................................................20
3.4.3. Código VB................................................................................................................22
3.5. Restore.aspx .....................................................................................................................24
3.5.1. Captura de Pantalla ...................................................................................................24
3.5.2. Código HTML ..........................................................................................................24
3.5.3. Código VB................................................................................................................26
3.6. DV.aspx............................................................................................................................28
3.6.1. Captura de Pantalla ...................................................................................................28
3.6.2. Código HTML ..........................................................................................................28
3.6.3. Código VB................................................................................................................29
3.7. abm_usuario.aspx .............................................................................................................30
3.7.1. Captura de Pantalla ...................................................................................................30

2
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

3.7.2. Código HTML ..........................................................................................................31


3.7.3. Código VB................................................................................................................33
3.8. alta_usuario.aspx ..............................................................................................................34
3.8.1. Captura de Pantalla ...................................................................................................34
3.8.2. Código HTML ..........................................................................................................35
3.8.3. Código VB................................................................................................................41
3.9. baja_usuario.aspx .............................................................................................................43
3.9.1. Captura de Pantalla ...................................................................................................43
3.9.2. Código HTML ..........................................................................................................44
3.9.3. Código VB................................................................................................................45
3.10. mod_usuario.aspx .........................................................................................................46
3.10.1. Captura de Pantalla ...................................................................................................46
3.10.2. Código HTML ..........................................................................................................47
3.10.3. Código VB................................................................................................................53
3.11. familia.aspx ..................................................................................................................57
3.11.1. Captura de Pantalla ...................................................................................................57
3.11.2. Código HTML ..........................................................................................................57
3.12. alta_familia.aspx ...........................................................................................................59
3.12.1. Captura de Pantalla ...................................................................................................59
3.12.2. Código HTML ..........................................................................................................59
3.12.3. Código VB................................................................................................................61
3.13. baja_familia.aspx ..........................................................................................................63
3.13.1. Captura de Pantalla ...................................................................................................63
3.13.2. Código HTML ..........................................................................................................63
3.13.3. Código VB................................................................................................................64
3.14. mod_familia.aspx .........................................................................................................66
3.14.1. Captura de Pantalla ...................................................................................................66
3.14.2. Código HTML ..........................................................................................................66
3.14.3. Código VB................................................................................................................68
3.15. patente.aspx ..................................................................................................................71
3.15.1. Captura de Pantalla ...................................................................................................71

3
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

3.15.2. Código HTML ..........................................................................................................71


3.15.3. Código VB................................................................................................................72
3.16. alta_socio.aspx .............................................................................................................73
3.16.1. Captura de Pantalla ...................................................................................................73
3.16.2. Código HTML ..........................................................................................................73
3.16.3. Código VB................................................................................................................79
3.17. comprar.aspx ................................................................................................................80
3.17.1. Captura de Pantalla ...................................................................................................80
3.17.2. Código HTML ..........................................................................................................80
3.17.3. Código VB................................................................................................................82
3.18. producto.aspx ...............................................................................................................84
3.18.1. Captura de Pantalla ...................................................................................................84
3.18.2. Código HTML ..........................................................................................................85
3.18.3. Código VB................................................................................................................85
3.19. bitacora.aspx .................................................................................................................86
3.19.1. Captura de Pantalla ...................................................................................................86
3.19.2. Código HTML ..........................................................................................................86
3.19.3. Código VB................................................................................................................88
3.20. novedades.aspx .............................................................................................................88
3.20.1. Captura de Pantalla ...................................................................................................88
3.20.2. Código HTML ..........................................................................................................89
3.20.3. Código VB................................................................................................................89
3.21. actividades.xml .............................................................................................................90
3.21.1. Código XML ............................................................................................................90
3.22. actividades.xslt .............................................................................................................91
3.22.1. Código XSLT ...........................................................................................................91
4. Capa de Negocios .....................................................................................................................93
4.1. Diagrama de Clases ..........................................................................................................93
4.2. Clases ...............................................................................................................................94
4.2.1. Clase Login...............................................................................................................94
4.2.2. Clase Backup ............................................................................................................95

4
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

4.2.3. Clase Restore ............................................................................................................95


4.2.4. Clase Bitácora ...........................................................................................................96
4.2.5. Clase Encriptacion ....................................................................................................98
4.2.6. Clase DigitoV ...........................................................................................................98
4.2.7. Clase Usuario .........................................................................................................102
4.2.8. Clase Familia ..........................................................................................................108
4.2.9. Clase Patente ..........................................................................................................111
4.2.10. Clase Consistencia ..................................................................................................112
4.2.11. Clase Novedades ....................................................................................................113
5. Capa de Conexión ..................................................................................................................115
5.1. Diagrama de Clases ........................................................................................................115
5.2. Capas ..............................................................................................................................115
5.2.1. Capa Conexión .......................................................................................................115
5.2.2. Capa ConexiónMaster ............................................................................................116
5.2.3. Capa Comando .......................................................................................................117
6. Estrategias De Programación..................................................................................................118
7. Protocolo de Instalación .........................................................................................................123
7.1. Instalación de Microsoft Windows installer 1.0 .............................................................124
7.2. Instalación De Microsoft .Net Framework 3.5................................................................124
7.3. Instalación De “Sql Server 2008 Express With Advanced Services” .............................124
7.4. Agregar base de datos de SteticCenter ............................................................................132
7.5. Creación de usuarios.......................................................................................................133
7.6. Instalación del websetup SCSetup ..................................................................................134
7.7. Iniciar SteticCenter .........................................................................................................134
8. Diagramas de Secuencia .........................................................................................................135
8.1. Iniciar Sesión ..................................................................................................................135
8.2. Abandonar Sesión...........................................................................................................136
9. Triggers ..................................................................................................................................136
10. IDE Desarrollo ...................................................................................................................138
10.1. Explorador de Soluciones ...........................................................................................138
10.2. Archivo WebConfig ...................................................................................................139

5
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

11. Bibliografía ........................................................................................................................143


12. Anexo .................................................................................................................................143
12.1. Diagrama de Clases de Base de Datos ........................................................................143
12.2. Estructura de Tablas de Base de Datos .......................................................................144
12.2.1. Tabla Actividades ...................................................................................................144
12.2.2. Tabla Bitácora ........................................................................................................144
12.2.3. Tabla Carrito...........................................................................................................144
12.2.4. Tabla Detalle ..........................................................................................................144
12.2.5. Tabla DV ................................................................................................................145
12.2.6. Tabla Familia ..........................................................................................................145
12.2.7. Tabla Familia-Patente .............................................................................................145
12.2.8. Tabla Login ............................................................................................................145
12.2.9. Tabla Patente ..........................................................................................................145
12.2.10. Tabla Producto....................................................................................................146
12.2.11. Tabla Usuario .....................................................................................................146
12.2.12. Tabla Usuario-Familia ........................................................................................146
12.2.13. Tabla Usuario-Patente ........................................................................................146
12.2.14. Tabla Ventas .......................................................................................................147
12.3. Interfaz de Desarrollo SQL Server 2008 .....................................................................147

6
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

1. Descripción del Negocio


Nuestro negocio se basa en un Centro de Estética dedicado a la mujer donde se prestan
distintos tipos de servicios para el cuidado y belleza de la mujer. Dentro de los servicios que nuestra
empresa presta se destacan:

Tratamientos
Faciales
Tratamientos Corporales
MakeUp, entre otros

Con el fin de brindar un mejor servicio y atención a las


clientas se construirá una aplicación web denominada SteticCenter
Web.

Todas las usuarias del sitio pueden encontrar una reseña de nuestra
institución, noticias, detalle de las diferentes actividades, podrán conocer nuestros productos (de
belleza) y realizar un pedido de ellos, llenando una planilla de datos personales si no están
registrados.

2. Mapa de Navegación
1. INICIO.ASP

2. INSTITUCIONAL.HTML 3. ACTIVIDADES.ASP 4. LOGIN.ASP 5. NOVEDADES.ASP 6. PRODUCTOS.ASP

ADMINISTRADOR ADMINISTRADOR
DEL SISTEMA OPERADOR
Backup ABM Socias
Bitacora Modificación de Pecios
Restore Actividades
Digito Verificador Alta de Noticias
Vertical Listados de Socias XML
Horizontal

DB

BACKUP

7
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

3. Capa Presentación
3.1. Index.aspx
3.1.1. Captura de Pantalla (Bienvenida)

8
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

3.1.2. Captura de Pantalla (Luego de Login Exitoso)

3.1.3. Código HTML

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Index.aspx.vb"


Inherits="Index" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"


"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >


<head id="Head1" runat="server">
<title>Stetic Center Web</title>

</head>
<body>

9
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

<form id="form2" runat="server">


<div>
<center>
<table border="0" style="width: 752px; height: 320px">
<tr>
<td style="background:#000000; height: 1px;" colspan=2>
<asp:Image ID="Image1" runat="server"
ImageUrl="~/Imagenes/slogan.jpg" />
</td>
</tr>
<tr>
<td style="width: 238px;" rowspan="5">
<asp:Image ID="Image2" runat="server" Height="224px"
ImageUrl="~/Imagenes/principal.gif" BackColor="Transparent" /></td>
<td style="width: 212px;">
<asp:ImageButton ID="imgInicio" runat="server"
ImageUrl="~/Imagenes/m1.jpg" PostBackUrl="~/Index.aspx" /></td>
</tr>
<tr>
<td style="width: 212px;">
<asp:ImageButton ID="imgInstitucional" runat="server"
ImageUrl="~/Imagenes/m2.jpg" PostBackUrl="~/Institucional.aspx" /></td>
</tr>
<tr>
<td style="width: 212px">
<asp:ImageButton ID="ImgLogin2" runat="server"
ImageUrl="~/Imagenes/m3.jpg" PostBackUrl="~/Login.aspx" /></td>
</tr>
<tr>
<td style="width: 212px; height: 21px">
<asp:ImageButton ID="imgNovedades" runat="server"
ImageUrl="~/Imagenes/m4.jpg" PostBackUrl="~/Novedades.aspx" /></td>
</tr>
<tr>
<td style="width: 212px;">
<asp:ImageButton ID="imgProductos" runat="server"
ImageUrl="~/Imagenes/m5.jpg" PostBackUrl="~/Productos.aspx" /></td>
</tr>
<tr>
<td colspan="2" style="font-size: 8pt; font-family:
Tahoma; text-align: left">
&nbsp;Inicio</td>
</tr>
<tr>
<td style="width: 238px; height: 1px; background-color:
#003333;" >
<asp:Label ID="Label1" runat="server" Font-
Bold="True" Font-Names="Tahoma" Font-Size="9pt"
ForeColor="White" Text="Usuario:
"></asp:Label><asp:Label ID="lblUsuario" runat="server" Font-Bold="True"
Font-Names="tahoma" Font-Size="9pt"
ForeColor="White"
Text="Invitado"></asp:Label></td>

10
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

<td style="width: 212px; height: 1px; background-color:


#000000">
<strong><span style="font-size: 9pt; color: #ffffff;
font-family: Tahoma; background-color: #000000">
.:LINKS:.</span></strong>
</td>
</tr>
<tr>
<td style="width: 238px; text-align: center;"
rowspan="11">
<asp:Image ID="Image4" runat="server"
ImageUrl="~/Imagenes/indexFondo.jpg" /></td>
<td style="width: 212px;">
<asp:ImageButton ID="imgLogin" runat="server"
ImageUrl="~/Imagenes/login.jpg" PostBackUrl="~/Login.aspx" /></td>
</tr>
<tr>
<td style="width: 212px">
&nbsp;<asp:ImageButton ID="imgMenu" runat="server"
ImageUrl="~/Imagenes/menu.jpg" Visible="False" PostBackUrl="~/Menu.aspx"
/></td>
</tr>
<tr>
<td style="width: 212px">
<asp:HyperLink ID="imgContactenos" runat="server"
ImageUrl="~/Imagenes/contactenos.jpg"
NavigateUrl="mailto:stetic_center_web@yopmail.com">HyperLink</asp:HyperLi
nk></td>
</tr>
<tr>
<td style="font-weight: bold; font-size: 8pt; width:
212px; color: #808080; font-family: Tahoma"><hr style="width: 192px" />
&nbsp; &nbsp;</td>
</tr>
<tr>
<td style="font-weight: bold; font-size: 8pt; width:
212px; color: #808080; font-family: Tahoma">
<asp:AdRotator ID="AdRotator1" runat="server"
AdvertisementFile="~/Adrotator.xml" />
</td>
</tr>
<tr>
<td style="font-weight: bold; font-size: 8pt; width:
212px; color: #808080; font-family: Tahoma">
<br />
<hr style="width: 192px" />
&nbsp;&nbsp;</td>
</tr>
<tr>
<td style="font-weight: bold; font-size: 8pt; width:
212px; color: #808080; font-family: Tahoma">

11
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

<asp:ImageButton ID="imgInscribite" runat="server"


ImageUrl="~/Imagenes/inscribite.jpg" PostBackUrl="~/alta_socio.aspx"
/></td>
</tr>
<tr>
<td style="font-weight: bold; font-size: 8pt; width:
212px; color: #808080; font-family: Tahoma">
<br /><hr style="width: 192px" />
&nbsp;&nbsp;</td>
</tr>
<tr>
<td style="font-weight: bold; font-size: 8pt; width:
212px; color: #808080; font-family: Tahoma">
Visitante nro:
<asp:Label ID="lblVisitante" runat="server"
Text="126" Width="24px"></asp:Label></td>
</tr>
<tr>
<td style="font-weight: bold; font-size: 8pt; width:
212px; color: #808080; font-family: Tahoma">
&nbsp;
<hr style="width: 192px" /></td>
</tr>
<tr>
<td style="font-weight: bold; font-size: 8pt; width:
212px; color: #808080; font-family: Tahoma">
&nbsp;<br />
&nbsp;</td>
</tr>
<tr>
<td colspan="2" style="height: 19px">
<hr style="width: 824px; height: 1px" />
&nbsp;</td>
</tr>
<tr>
<td colspan="2" style="font-size: 10px; color: gray;
font-family: Tahoma; height: 18px; text-align: center" align="center">
&nbsp;l&nbsp;
<asp:HyperLink ID="lnkInicio" runat="server"
NavigateUrl="~/Index.aspx">INICIO</asp:HyperLink>
l&nbsp;
<asp:HyperLink ID="lnkInstitucional" runat="server"
NavigateUrl="~/Institucional.aspx">INSTITUCION</asp:HyperLink>
l
<asp:HyperLink ID="lnkLogin" runat="server"
NavigateUrl="~/Login.aspx">INGRESO</asp:HyperLink>
l
<asp:HyperLink ID="lnkNovedades" runat="server"
NavigateUrl="~/Novedades.aspx">NOVEDADES</asp:HyperLink>
l&nbsp;
<asp:HyperLink ID="lnkProductos" runat="server"
NavigateUrl="~/Productos.aspx">PRODUCTOS</asp:HyperLink>
l<br />

12
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

<br />
<span style="font-size: 7.5pt; color: gray; font-
family: Tahoma;">© </span>
Copyright SteticCenter<br />
Ultima Actualización Noviembre 2010</td>
</td>
</tr>
<tr>
<td style="width: 238px">
</td>
<td style="width: 212px">
</td>
</tr>
</table>
</center>
</div>
<br />
<br />
</form>
</body>
</html>
3.1.4. Código VB

Imports Negocio
Imports Seguridad
Partial Class Index
Inherits System.Web.UI.Page
Dim objBitacora As New Bitacora

Protected Sub Page_LoadComplete(ByVal sender As Object, ByVal e As


System.EventArgs) Handles Me.LoadComplete

Dim user As String = CType(Session.Item("usuario"), String)

lblUsuario.Text = user
If user = "Invitado" Then
imgLogin.ImageUrl = "~/Imagenes/login.jpg"
imgLogin.PostBackUrl = "~/Login.aspx"
imgMenu.Visible = False
Else
imgLogin.ImageUrl = "~/Imagenes/logout.jpg"
imgLogin.PostBackUrl = "~/Index.aspx"
imgMenu.Visible = True
End If

End Sub

Protected Sub imgLogin_Click(ByVal sender As Object, ByVal e As


System.Web.UI.ImageClickEventArgs) Handles imgLogin.Click
If CType(Session.Item("usuario"), String) = "Invitado" Then
imgLogin.ImageUrl = "~/Imagenes/login.jpg"
imgLogin.PostBackUrl = "~/Login.aspx"
Else

13
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

imgLogin.ImageUrl = "~/Imagenes/logout.jpg"
objBitacora.RegistrarBitacora(CType("Egreso de Usuario",
String), "3", CType(Session.Item("id_usuario"), String))
imgLogin.PostBackUrl = "~/Index.aspx"
Session.Item("usuario") = "Invitado"

End If
End Sub
End Class

3.2. Login.aspx
3.2.1. Captura de Pantalla

3.2.2. Código HTML

<%@ Page Language="VB" MasterPageFile="~/Master


Page/MPSteticCenter.master" AutoEventWireup="false"
CodeFile="Login.aspx.vb" Inherits="Login" %>

<asp:Content ID="Content1" runat="server" ContentPlaceHolderID="Ruta">


<asp:HyperLink ID="lnkInicio" runat="server"
NavigateUrl="~/Index.aspx">Inicio</asp:HyperLink>
-
<asp:HyperLink ID="lnkLogin" runat="server">Login</asp:HyperLink>
</asp:Content>
<asp:Content ID="Content2" runat="server"
ContentPlaceHolderID="ContenidoCentral">

14
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

<asp:Image ID="Image3" runat="server"


ImageUrl="~/Imagenes/TituloLogin.jpg" /><br />
<br />
<table>
<tr>
<td style="width: 100px; text-align: right; font-size: 10pt;
font-family: Tahoma; height: 11px; font-weight: bold;">
Usuario:&nbsp;
</td>
<td style="width: 100px; height: 16px;">
<asp:TextBox ID="txtUsuario" runat="server"
Width="150px"></asp:TextBox></td>
<td style="width: 100px; height: 16px">
<asp:RequiredFieldValidator ID="RequiredFieldValidator1"
runat="server" ControlToValidate="txtUsuario"
ErrorMessage="Ingrese su usuario" Font-Size="Smaller"
SetFocusOnError="True"
Width="120px"></asp:RequiredFieldValidator></td>
</tr>
<tr>
<td style="width: 100px; text-align: right; font-size: 10pt;
font-family: Tahoma; height: 11px; font-weight: bold;">
Contraseña:&nbsp;
</td>
<td style="width: 100px; height: 11px;">
<asp:TextBox ID="txtPass" runat="server"
TextMode="Password" Width="150px"></asp:TextBox></td>
<td style="width: 100px; height: 11px">
<asp:RequiredFieldValidator ID="RequiredFieldValidator2"
runat="server" ControlToValidate="txtPass"
ErrorMessage="Ingrese su contraseña" Font-
Size="Smaller" SetFocusOnError="True"
Width="120px"></asp:RequiredFieldValidator></td>
</tr>
<tr>
<td colspan="3" style="height: 38px">
<asp:Button ID="cmdAceptar" runat="server" Text="Aceptar"
Height="26px" /></td>
</tr>
<tr>
<td colspan="3" style="font-size: 10pt; font-family: Tahoma;
height: 21px">
<asp:HyperLink ID="lnkRegistrarse" runat="server"
NavigateUrl="~/alta_socio.aspx" >Registrarse</asp:HyperLink></td>
</tr>
</table>
</asp:Content>

3.2.3. Código VB

Imports System.Security.Cryptography
Imports System.Text

15
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

Partial Class Login


Inherits System.Web.UI.Page

Protected Sub cmdAceptar_Click(ByVal sender As Object, ByVal e As


System.EventArgs) Handles cmdAceptar.Click
Dim objUsuario As New Seguridad.Usuario

objUsuario.Usuario = txtUsuario.Text
objUsuario.Clave = txtPass.Text

If objUsuario.VerificarUsuario = True Then


If objUsuario.AutenticarUsuario = True Then
Session.Item("autentificado") = "si"
Session.Item("usuario") = objUsuario.Usuario
Session.Item("id_usuario") = objUsuario.IdUsuario
Response.Redirect("menu.aspx")
End If
End If
objUsuario = Nothing

End Sub

Protected Sub Page_Load(ByVal sender As Object, ByVal e As


System.EventArgs) Handles Me.Load
'Controlo que no haya una sesión iniciada, si no es así
redirecciono a Index.aspx
If CType(Session.Item("usuario"), String) <> "Invitado" Then
Response.Redirect("Index.aspx")
End If
Me.SetFocus(txtUsuario)
End Sub
End Class

16
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

3.3. Menu.aspx
3.3.1. Captura de Pantalla

3.3.2. Código HTML

<%@ Page Language="VB" MasterPageFile="~/Master


Page/MPSteticCenter.master" AutoEventWireup="false"
CodeFile="Menu.aspx.vb" Inherits="Menu" %>

<asp:Content ID="Content1" runat="server" ContentPlaceHolderID="Ruta">


<asp:HyperLink ID="lnkInicio" runat="server"
NavigateUrl="~/Index.aspx">Inicio</asp:HyperLink>
-
<asp:HyperLink ID="lnkMenu" runat="server">Menú
Principal</asp:HyperLink>
</asp:Content>

17
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

<asp:Content ID="Content2" runat="server"


ContentPlaceHolderID="ContenidoCentral">
<br />
<asp:Image ID="Image3" runat="server"
ImageUrl="~/Imagenes/MenuTitulo.jpg" /><br />
<br />
<asp:Label ID="lblFamilia" runat="server" Font-Bold="True" Font-
Italic="True" Font-Overline="False"
Font-Size="Larger" ForeColor="SteelBlue" Text="Familia"
Width="416px"></asp:Label><br />
<br />
<asp:Table ID="TablaMenu" runat="server">
</asp:Table>
<br />
<table>
<tr>
<td style="font-size: 8pt; width: 100px; font-family: Tahoma;
height: 23px; text-align: center">
<asp:HyperLink ID="HyperLink3" runat="server"
NavigateUrl="~/Index.aspx">[Volver]</asp:HyperLink></td>
</tr>
</table>
</asp:Content>
<asp:Content ID="Content3" runat="server" ContentPlaceHolderID="Usuario">
<asp:Label ID="Label1" runat="server" Font-Bold="True" Font-
Names="Tahoma" Font-Size="9pt"
ForeColor="White" Text="Usuario: "
BackColor="Transparent"></asp:Label><asp:Label ID="lblUsuario"
runat="server" Font-Bold="True" Font-Names="tahoma" Font-Size="9pt"
ForeColor="White" Text="Invitado"
BackColor="Transparent"></asp:Label>
</asp:Content>

3.3.3. Código VB

Partial Class Menu


Inherits System.Web.UI.Page

Protected Sub Page_LoadComplete(ByVal sender As Object, ByVal e As


System.EventArgs) Handles Me.LoadComplete

'Controlo que haya una sesión iniciada, si no es así redirecciono


a Login.aspx
If CType(Session.Item("usuario"), String) = "Invitado" Then
Response.Redirect("Login.aspx")
End If
'Coloco el nombre del usuario en el label cuando hizo login
lblUsuario.Text = CType(Session.Item("usuario"), String)
'Busco la Familia del usuario en la clase Familia
Dim objFamilia As New Seguridad.Familia
objFamilia.BuscarFamiliaUsuario(CType(Session.Item("usuario"),
String))

18
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

Session.Item("familia") = objFamilia.IdFamilia
objFamilia.BuscarDescripcion()
lblFamilia.Text = objFamilia.Descripcion 'Coloco el nombre de la
Familia como titulo en un label

Dim ControlBD As Boolean


ControlBD = True
If ControlBD = True Then
'Busco las Patentes de la Familia del Usuario
Dim objPatente As New Seguridad.Patente
objPatente.BuscarPatentesFamilia(CType(Session.Item("usuario"),
String))
'Armo el menú con los datos devueltos de la consulta
Dim objRow As TableRow
Dim objCell As TableCell
Dim objFila As Data.DataRow
Dim i As Integer
Dim link As HyperLink
For i = 0 To objPatente.TablaPatentes.Rows.Count - 1
'Agrego la fila con un hyperlink
objCell = New TableCell
objRow = New TableRow
link = New HyperLink
objFila = objPatente.TablaPatentes.Rows(i)
link.Text = objFila.Item("descripcion")
link.NavigateUrl = objFila.Item("referencia")
objCell.Controls.Add(link)
objCell.Font.Size = 11
objRow.Cells.Add(objCell)
TablaMenu.Rows.Add(objRow)

'Agrego una fila en blanco


objCell = New TableCell
objRow = New TableRow
objCell.Text = ""
objCell.Font.Size = 9
objRow.Cells.Add(objCell)
TablaMenu.Rows.Add(objRow)
Next
objPatente = Nothing
Dim objLogin As New Seguridad.Login
Dim objBitacora As New Seguridad.Bitacora
objLogin.RegistrarLogin(CType(Session.Item("id_usuario"),
String))
objBitacora.RegistrarBitacora(CType("Ingreso de Usuario",
String), "3", CType(Session.Item("id_usuario"), String))
objFamilia = Nothing
End If
End Sub
End Class

19
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

3.4. Backup.aspx
3.4.1. Captura de Pantalla

3.4.2. Código HTML

<%@ Page Language="VB" MasterPageFile="~/Master


Page/MPSteticCenter.master" AutoEventWireup="false"
CodeFile="backup.aspx.vb" Inherits="backup" %>

<asp:Content ID="Content1" runat="server" ContentPlaceHolderID="Ruta">


<asp:HyperLink ID="lnkInicio" runat="server"
NavigateUrl="~/Index.aspx">Inicio</asp:HyperLink>
-
<asp:HyperLink ID="lnkMenu" runat="server"
NavigateUrl="~/Menu.aspx">Menú Principal</asp:HyperLink>

20
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

-
<asp:HyperLink ID="lnkBackup" runat="server">Backup</asp:HyperLink>
</asp:Content>
<asp:Content ID="Content2" runat="server"
ContentPlaceHolderID="ContenidoCentral">
<br />
<asp:Image ID="Image3" runat="server"
ImageUrl="~/Imagenes/Backup.jpg" />
<br />
<br />
<table style="width: 71%; margin-left: 0px;">
<tr>
<td style="width: 132px">
<asp:Label ID="lblNombre" runat="server" Text="Nombre del
Archivo"></asp:Label>
</td>
<td style="width: 365px">
<asp:TextBox ID="txtNombre" runat="server"
Width="358px"></asp:TextBox>
<asp:RequiredFieldValidator ID="ValidarNombre"
runat="server"
ErrorMessage="El &quot;Nombre del Archivo&quot; no es
válido"
Font-Size="Small"
ControlToValidate="txtNombre"></asp:RequiredFieldValidator>
</td>
</tr>
<tr>
<td style="width: 132px">
&nbsp;</td>
<td style="width: 365px">
&nbsp;</td>
</tr>
<tr>
<td style="width: 132px">
<asp:Label ID="lblDestino" runat="server"
Text="Destino"></asp:Label>
</td>
<td style="width: 365px">
<asp:TextBox ID="txtDestino" runat="server"
Width="357px"></asp:TextBox>
<asp:RequiredFieldValidator ID="ValidarDestino"
runat="server"
ErrorMessage="El &quot;Destino&quot; no es válido"
Font-Size="Small"

ControlToValidate="txtDestino"></asp:RequiredFieldValidator>
</td>
</tr>
<tr>
<td style="width: 132px">
&nbsp;</td>
<td style="width: 365px">

21
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

<br/>
<asp:Button ID="btnBackup" runat="server" Text="Realizar
Copia de Seguridad" Width="236px" />
<br />
</td>
</tr>
<tr>
<td style="width: 132px">
&nbsp;</td>
<td style="width: 365px">
<asp:Label ID="lblResultado" runat="server"></asp:Label>
</td>
</tr>
</table>
<br />

</asp:Content>
<asp:Content ID="Content3" runat="server" ContentPlaceHolderID="Usuario">
<asp:Label ID="Label1" runat="server" Font-Bold="True" Font-
Names="Tahoma" Font-Size="9pt"
ForeColor="White" Text="Usuario: "
BackColor="Transparent"></asp:Label><asp:Label ID="lblUsuario"
runat="server" Font-Bold="True" Font-Names="tahoma" Font-Size="9pt"
ForeColor="White" Text="Invitado"
BackColor="Transparent"></asp:Label>
</asp:Content>

3.4.3. Código VB
Imports Negocio
Imports System.Data
Partial Class backup
Inherits System.Web.UI.Page
Dim objPatente As New Negocio.Patente
Dim objBackup As New Negocio.Backup
Dim objBitacora As New Negocio.Bitacora

Protected Sub Page_Load(ByVal sender As Object, ByVal e As


System.EventArgs) Handles Me.Load
'Controlo que haya una sesión iniciada, si no es así redirecciono
a Login.aspx
If CType(Session.Item("usuario"), String) = "Invitado" Then
Response.Redirect("Login.aspx")
Else
'Controlo que el usuario tenga permiso para ejecutar esta
página

objPatente.BuscarPatentesUsuario(CType(Session.Item("id_usuario"),
String))

'Creo una bandera para controlar si existe la patente para


utilizar esta página
'False = no encontró, True = encontró

22
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

Dim bandera As Boolean


Dim objFila As Data.DataRow
Dim i As Integer

bandera = False

For i = 0 To objPatente.TablaPatentes.Rows.Count - 1
objFila = objPatente.TablaPatentes.Rows(i)
If objFila.Item("descripcion") = "Backup" Then
bandera = True
End If
Next

'Controlo el resultado de la bandera, si es False


redirecciono a index.aspx
If bandera = False Then
Response.Redirect("Index.aspx")
End If
objPatente = Nothing
End If

'Coloco el nombre del usuario en el label cuando hizo login


lblUsuario.Text = CType(Session.Item("usuario"), String)
End Sub

Protected Sub btnBackup_Click(ByVal sender As Object, ByVal e As


System.EventArgs) Handles btnBackup.Click
If Me.IsValid Then
objBackup.Destino = Me.txtDestino.Text
objBackup.Nombre = Me.txtNombre.Text
If objBackup.Generar_Backup = True Then
objBitacora.RegistrarBitacora(CType("Backup Base de
Datos", String), "2", CType(Session.Item("id_usuario"), String))
lblResultado.Text = "¡¡Copia de Seguridad (Backup)
Realizado Correctamente!!."
Else : lblResultado.Text = "No se Pudo Realizar la Copia de
Seguridad. Error de la Base de Datos"
End If
End If
End Sub
End Class

23
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

3.5. Restore.aspx
3.5.1. Captura de Pantalla

3.5.2. Código HTML

%@ Page Language="VB" MasterPageFile="~/Master


Page/MPSteticCenter.master" AutoEventWireup="false"
CodeFile="restore.aspx.vb" Inherits="restore" %>

<asp:Content ID="Content1" runat="server" ContentPlaceHolderID="Ruta">


<asp:HyperLink ID="lnkInicio" runat="server"
NavigateUrl="~/Index.aspx">Inicio</asp:HyperLink>
-
<asp:HyperLink ID="lnkMenu" runat="server"
NavigateUrl="~/Menu.aspx">Menú Principal</asp:HyperLink>
-
<asp:HyperLink ID="lnkRestore" runat="server">Restore</asp:HyperLink>
</asp:Content>
<asp:Content ID="Content2" runat="server"
ContentPlaceHolderID="ContenidoCentral">
<br />

24
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

<asp:Image ID="Image3" runat="server"


ImageUrl="~/Imagenes/Restore.jpg" />

<br />
<br />
<table style="width: 78%; margin-left: 0px;">
<tr>
<td style="width: 83px">
<asp:Label ID="lblNombre" runat="server" Text="Ubicación
del Archivo .bak:"></asp:Label>
</td>
<td style="width: 363px">
<asp:FileUpload ID="FileUpload1" runat="server"
Width="364px" />
<asp:RequiredFieldValidator ID="ValidarNombre"
runat="server"
ErrorMessage="La &quot;Ubicación del Archivo
.bak&quot; no es válido"
Font-Size="Small"
ControlToValidate="FileUpload1"></asp:RequiredFieldValidator>
</td>
</tr>
<tr>
<td style="width: 83px">
&nbsp;</td>
<td style="width: 363px">
<br/>
<asp:Button ID="btnRestore" runat="server"
Text="Restaurar Copia de Seguridad"
Width="236px" />
<br />
</td>
</tr>
<tr>
<td style="width: 83px">
&nbsp;</td>
<td style="width: 363px">
<asp:Label ID="lblResultado"
runat="server"></asp:Label></td>
</tr>
</table>
<br />

</asp:Content>
<asp:Content ID="Content3" runat="server" ContentPlaceHolderID="Usuario">
<asp:Label ID="Label1" runat="server" Font-Bold="True" Font-
Names="Tahoma" Font-Size="9pt"
ForeColor="White" Text="Usuario: "
BackColor="Transparent"></asp:Label><asp:Label ID="lblUsuario"
runat="server" Font-Bold="True" Font-Names="tahoma" Font-Size="9pt"
ForeColor="White" Text="Invitado"
BackColor="Transparent"></asp:Label>
</asp:Content>

25
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

3.5.3. Código VB
Imports Negocio
Imports System.Data
Partial Class restore
Inherits System.Web.UI.Page
Dim objPatente As New Patente
Dim objRestore As New Negocio.Restore
Dim objBitacora As New Negocio.Bitacora

Protected Sub btnBackup_Click(ByVal sender As Object, ByVal e As


System.EventArgs) Handles btnRestore.Click
If Me.IsValid Then
If FileUpload1.HasFile Then
Dim mifichero As System.Web.HttpPostedFile
mifichero = FileUpload1.PostedFile
Dim nombreArchivo As String = FileUpload1.FileName
Dim path As String = mifichero.FileName
objRestore.Origen = path
If objRestore.Generar_Restore = True Then
objBitacora.RegistrarBitacora(CType("Restore Base de
Datos", String), "1", CType(Session.Item("id_usuario"), String))
lblResultado.Text = "¡¡La Restauración de la Copia de
Seguridad (Restore) del archivo .bak Realizadas Correctamente!!."
Else : lblResultado.Text = "No se Pudieron Restaurar los
datos. Error de Transacción"
End If
Else
lblResultado.Text = "Error en la Ruta de Destino. No es
válida"
End If
End If
End Sub

Protected Sub Page_Load(ByVal sender As Object, ByVal e As


System.EventArgs) Handles Me.Load
'Controlo que haya una sesión iniciada, si no es así redirecciono
a Login.aspx
If CType(Session.Item("usuario"), String) = "Invitado" Then
Response.Redirect("Login.aspx")
Else
'Controlo que el usuario tenga permiso para ejecutar esta
página

objPatente.BuscarPatentesUsuario(CType(Session.Item("id_usuario"),
String))

'Creo una bandera para controlar si existe la patente para


utilizar esta página
'False = no encontró, True = encontró
Dim bandera As Boolean
Dim objFila As Data.DataRow
Dim i As Integer

26
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

bandera = False

For i = 0 To objPatente.TablaPatentes.Rows.Count - 1
objFila = objPatente.TablaPatentes.Rows(i)
If objFila.Item("descripcion") = "Patentes" Then
bandera = True
End If
Next

'Controlo el resultado de la bandera, si es False


redirecciono a index.aspx
If bandera = False Then
Response.Redirect("Index.aspx")
End If
objPatente = Nothing
End If

'Coloco el nombre del usuario en el label cuando hizo login


lblUsuario.Text = CType(Session.Item("usuario"), String)
End Sub

End Class

27
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

3.6. DV.aspx
3.6.1. Captura de Pantalla

3.6.2. Código HTML

<%@ Page Language="VB" MasterPageFile="~/Master


Page/MPSteticCenter.master" AutoEventWireup="false" CodeFile="dv.aspx.vb"
Inherits="dv" %>

<asp:Content ID="Content1" runat="server" ContentPlaceHolderID="Ruta">


<asp:HyperLink ID="lnkInicio" runat="server"
NavigateUrl="~/Index.aspx">Inicio</asp:HyperLink>
-
<asp:HyperLink ID="InkMenu" runat="server"
NavigateUrl="~/Menu.aspx">Menú Principal</asp:HyperLink>
-
<asp:HyperLink ID="lnkDV" runat="server">Digito
Verificador</asp:HyperLink>
</asp:Content>
<asp:Content ID="Content2" runat="server"
ContentPlaceHolderID="ContenidoCentral">
<br />
<asp:Label ID="Label3" runat="server"
Text="Precione el botón para recalcular los Digitos
Verificadores"

28
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

Font-Bold="True" Font-Size="Medium"
ForeColor="#9966FF"></asp:Label>
<br />
<br />
<asp:Button ID="btnCorregirDV" runat="server" Text="Corregir Errores
de DV" />
<br />
<br />
<asp:Label ID="lblDV" runat="server" Text=""></asp:Label>
<br />
<br />
<asp:HyperLink ID="lnkVolver" runat="server"
NavigateUrl="~/Menu.aspx">[Volver]</asp:HyperLink>
</asp:Content>
<asp:Content ID="Content3" runat="server" ContentPlaceHolderID="Usuario">
<asp:Label ID="Label1" runat="server" Font-Bold="True" Font-
Names="Tahoma" Font-Size="9pt"
ForeColor="White" Text="Usuario: "
BackColor="Transparent"></asp:Label><asp:Label ID="lblUsuario"
runat="server" Font-Bold="True" Font-Names="tahoma" Font-Size="9pt"
ForeColor="White" Text="Invitado"
BackColor="Transparent"></asp:Label>
</asp:Content>

3.6.3. Código VB

Imports Negocio
Partial Class dv
Inherits System.Web.UI.Page
Dim objbit As New Negocio.Bitacora
Dim objDV As New Negocio.DigitoV
Dim objpatente As New Negocio.Patente
Protected Sub btnCorregirDV_Click(ByVal sender As Object, ByVal e As
System.EventArgs) Handles btnCorregirDV.Click
Try
objDV.RecalcularDV("USUARIO", "FAMILIA", "PATENTE",
"PRODUCTO")
lblDV.text = "Digitos Verificadores Corregidos"
objbit.RegistrarBitacora(CType("Recalculo DV Exitoso",
String), 1, CType(Session.Item("id_usuario"), Integer))
Catch ex As Exception
MsgBox("Error al Recalcular los Dígitos Verificadores.
Ocurrió un Fallo de Datos: Posible Pérdida de Tabla",
MsgBoxStyle.Critical, "Error")
objbit.RegistrarBitacora(CType("Error Recalculo DV", String),
1, CType(Session.Item("id_usuario"), Integer))
End Try
End Sub
Protected Sub Page_Load(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.Load

29
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

'Controlo que haya una sesión iniciada, si no es así redirecciono


a Login.aspx
If CType(Session.Item("usuario"), String) = "Invitado" Then
Response.Redirect("Login.aspx")
Else
'Controlo que el usuario tenga permiso para ejecutar esta
página

objPatente.BuscarPatentesUsuario(CType(Session.Item("id_usuario"),
String))

'Creo una bandera para controlar si existe la patente para


utilizar esta página
'False = no encontró, True = encontró
Dim bandera As Boolean
Dim objFila As Data.DataRow
Dim i As Integer

bandera = False

For i = 0 To objPatente.TablaPatentes.Rows.Count - 1
objFila = objPatente.TablaPatentes.Rows(i)
If objFila.Item("descripcion") = "Dígito Verificador"
Then
bandera = True
End If
Next

'Controlo el resultado de la bandera, si es False


redirecciono a index.aspx
If bandera = False Then
Response.Redirect("Index.aspx")
End If
objPatente = Nothing
End If

'Coloco el nombre del usuario en el label cuando hizo login


lblUsuario.Text = CType(Session.Item("usuario"), String)
End Sub

End Class

3.7. abm_usuario.aspx
3.7.1. Captura de Pantalla

30
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

3.7.2. Código HTML

<%@ Page Language="VB" MasterPageFile="~/Master


Page/MPSteticCenter.master" AutoEventWireup="false"
CodeFile="abm_usuario.aspx.vb" Inherits="MenuUsuario" %>

<asp:Content ID="Content1" runat="server" ContentPlaceHolderID="Ruta">


<asp:HyperLink ID="lnkInicio" runat="server"
NavigateUrl="~/Index.aspx">Inicio</asp:HyperLink>
-
<asp:HyperLink ID="lnkMenu" runat="server"
NavigateUrl="~/Menu.aspx">Menú Principal</asp:HyperLink>
-
<asp:HyperLink ID="lnkMenuUsuario" runat="server">Menú
Usuario</asp:HyperLink>
</asp:Content>

<asp:Content ID="Content2" runat="server"


ContentPlaceHolderID="ContenidoCentral">
<br />
<asp:Image ID="Image4" runat="server"
ImageUrl="~/Imagenes/GestionarPersona.jpg" /><br />

31
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

<br />
<table>
<tr>
<td style="font-weight: bold; font-size: 10pt; font-family:
Tahoma; background-color: #ffffcc">
Administrador del Sitio</td>
</tr>
<tr>
<td>
<asp:HyperLink ID="HyperLink1" runat="server"
ImageUrl="~/Imagenes/AltaChico.jpg"

NavigateUrl="~/alta_usuario.aspx">HyperLink</asp:HyperLink></td>
</tr>
<tr>
<td>
<asp:HyperLink ID="HyperLink2" runat="server"
ImageUrl="~/Imagenes/BajaChico.jpg"

NavigateUrl="~/baja_usuario.aspx">HyperLink</asp:HyperLink></td>
</tr>
<tr>
<td>
<asp:HyperLink ID="HyperLink3" runat="server"
ImageUrl="~/Imagenes/ModChico.jpg"

NavigateUrl="~/mod_usuario.aspx">HyperLink</asp:HyperLink></td>
</tr>
<tr>
<td style="font-size: 8pt; font-family: Tahoma; height:
29px">
<br />
<asp:HyperLink ID="lnkVolver" runat="server"
NavigateUrl="~/Menu.aspx">[Volver]</asp:HyperLink></td>
</tr>
</table>
<br />
<br /><br />
<br />
<br />
<br />
</asp:Content>
<asp:Content ID="Content3" runat="server" ContentPlaceHolderID="Usuario">
<asp:Label ID="Label1" runat="server" Font-Bold="True" Font-
Names="Tahoma" Font-Size="9pt"
ForeColor="White" Text="Usuario: "
BackColor="Transparent"></asp:Label><asp:Label ID="lblUsuario"
runat="server" Font-Bold="True" Font-Names="tahoma" Font-Size="9pt"
ForeColor="White" Text="Invitado"
BackColor="Transparent"></asp:Label>
</asp:Content>

32
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

3.7.3. Código VB

Imports Negocio
Partial Class MenuUsuario
Inherits System.Web.UI.Page
Dim objPatente As New Negocio.Patente
Protected Sub Page_Load(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.Load
'Controlo que haya una sesión iniciada, si no es así redirecciono
a Login.aspx
If CType(Session.Item("usuario"), String) = "Invitado" Then
Response.Redirect("Login.aspx")
Else
'Controlo que el usuario tenga permiso para ejecutar esta
página

objPatente.BuscarPatentesUsuario(CType(Session.Item("id_usuario"),
String))

'Creo una bandera para controlar si existe la patente para


utilizar esta página
'False = no encontró, True = encontró
Dim bandera As Boolean
Dim objFila As Data.DataRow
Dim i As Integer

bandera = False

For i = 0 To objPatente.TablaPatentes.Rows.Count - 1
objFila = objPatente.TablaPatentes.Rows(i)
If objFila.Item("descripcion") = "Usuarios" Then
bandera = True
End If
Next

'Controlo el resultado de la bandera, si es False


redirecciono a index.aspx
If bandera = False Then
Response.Redirect("Index.aspx")
End If
objPatente = Nothing
End If

'Coloco el nombre del usuario en el label cuando hizo login


lblUsuario.Text = CType(Session.Item("usuario"), String)

End Sub

End Class

33
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

3.8. alta_usuario.aspx
3.8.1. Captura de Pantalla

34
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

3.8.2. Código HTML

<%@ Page Language="VB" MasterPageFile="~/Master


Page/MPSteticCenter.master" AutoEventWireup="false"
CodeFile="alta_usuario.aspx.vb" Inherits="alta_usuario" %>

<asp:Content ID="Content1" runat="server" ContentPlaceHolderID="Ruta">


<asp:HyperLink ID="lnkInicio" runat="server"
NavigateUrl="~/Index.aspx">Inicio</asp:HyperLink>
-
<asp:HyperLink ID="lnkMenu" runat="server"
NavigateUrl="~/Menu.aspx">Menú Principal</asp:HyperLink>
-
<asp:HyperLink ID="lnkMenuUsuario" runat="server"
NavigateUrl="~/abm_usuario.aspx">Menú Usuario</asp:HyperLink>
-
<asp:HyperLink ID="lnkAltaUsuario" runat="server">Alta
Usuario</asp:HyperLink>
</asp:Content>
<asp:Content ID="Content2" runat="server"
ContentPlaceHolderID="ContenidoCentral">
<br />
<asp:Image ID="Image3" runat="server"
ImageUrl="~/Imagenes/GestionarPersona.jpg" ImageAlign="AbsMiddle"
/><br />
<br />
<table>
<tr>
<td colspan="4" style="font-weight: bold; font-size: 8pt;
color: red; font-family: Tahoma;
height: 16px; text-align: center">
* Campos Resqueridos</td>
</tr>
<tr>
<td style="font-weight: bold; font-size: 10pt; width: 156px;
font-family: Tahoma;
text-align: right">
Nombre:&nbsp;
</td>
<td style="width: 113px">
<asp:TextBox ID="txtNombre"
runat="server"></asp:TextBox></td>
<td style="font-weight: bold; width: 12px; color: red; font-
family: Tahoma">
*</td>
<td style="width: 116px">
<asp:RequiredFieldValidator ID="ValidarNombre"
runat="server" ControlToValidate="txtNombre"
ErrorMessage="Complete este campo" Font-
Size="Smaller"
SetFocusOnError="True"></asp:RequiredFieldValidator>
</td>

35
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

</tr>
<tr style="color: #000000">
<td style="font-weight: bold; font-size: 10pt; width: 156px;
font-family: Tahoma;
text-align: right; height: 26px;">
Usuario:&nbsp;
</td>
<td style="width: 113px; height: 26px;">
<asp:TextBox ID="txtUsuario"
runat="server"></asp:TextBox></td>
<td style="font-weight: bold; width: 12px; color: red; font-
family: Tahoma; height: 26px;">
*</td>
<td style="width: 116px; height: 26px;">
<asp:RequiredFieldValidator ID="ValidarUsuario"
runat="server" ControlToValidate="txtUsuario"
ErrorMessage="Complete este campo" Font-
Size="Smaller"

SetFocusOnError="True"></asp:RequiredFieldValidator></td>
</tr>
<tr style="color: #000000">
<td style="font-weight: bold; font-size: 10pt; width: 156px;
font-family: Tahoma;
text-align: right">
Clave:&nbsp;
</td>
<td style="width: 113px">
<asp:TextBox ID="txtPass" runat="server" MaxLength="10"
TextMode="Password" Width="149px"></asp:TextBox></td>
<td style="font-weight: bold; width: 12px; color: red; font-
family: Tahoma">
*</td>
<td style="width: 116px">
<asp:RequiredFieldValidator ID="ValidarClave"
runat="server"
ControlToValidate="txtPass" ErrorMessage="Complete
este campo"
Font-Size="Smaller"
SetFocusOnError="True"></asp:RequiredFieldValidator>
</td>
</tr>
<tr style="color: #000000">
<td style="font-weight: bold; font-size: 10pt; width: 156px;
font-family: Tahoma;
text-align: right">
Confirmar Clave:&nbsp;
</td>
<td style="width: 113px; height: 20px">
<asp:TextBox ID="txtConfirmarPass" runat="server"
MaxLength="10" TextMode="Password"
Width="149px"></asp:TextBox></td>

36
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

<td style="font-weight: bold; width: 12px; color: red; font-


family: Tahoma">
*</td>
<td style="width: 116px; height: 20px">
<asp:RequiredFieldValidator ID="ValidarClave2"
runat="server" ControlToValidate="txtConfirmarPass"
ErrorMessage="Complete este campo" Font-
Size="Smaller"

SetFocusOnError="True"></asp:RequiredFieldValidator></td>
</tr>
<tr style="color: #000000">
<td style="font-weight: bold; font-size: 10pt; width: 156px;
font-family: Tahoma;
text-align: right">
&nbsp;</td>
<td style="width: 113px; height: 20px">
<asp:CompareValidator ID="ComparaContrasenia"
runat="server" ControlToCompare="txtPass"
ControlToValidate="txtConfirmarPass"
ErrorMessage="Las Contraseñas NO Coinciden"
Font-Size="Smaller"
SetFocusOnError="True"></asp:CompareValidator></td>
<td style="font-weight: bold; width: 12px; color: red; font-
family: Tahoma">
&nbsp;</td>
<td style="width: 116px; height: 20px">
&nbsp;</td>
</tr>
<tr style="color: #000000">
<td style="font-weight: bold; font-size: 10pt; width: 156px;
font-family: Tahoma;
text-align: right">
Dirección:&nbsp;</td>
<td style="width: 113px; height: 20px">
<asp:TextBox ID="txtDireccion"
runat="server"></asp:TextBox></td>
<td style="font-weight: bold; width: 12px; color: red; font-
family: Tahoma">
*</td>
<td style="width: 116px; height: 20px">
<asp:RequiredFieldValidator ID="ValidarDireccion"
runat="server" ControlToValidate="txtDireccion"
ErrorMessage="Complete este campo" Font-
Size="Smaller"

SetFocusOnError="True"></asp:RequiredFieldValidator></td>
</tr>
<tr>
<td style="font-weight: bold; font-size: 10pt; width: 156px;
font-family: Tahoma;
text-align: right">
Localidad:&nbsp;

37
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

</td>
<td style="width: 113px">
<asp:TextBox ID="txtLocalidad"
runat="server"></asp:TextBox></td>
<td style="font-weight: bold; width: 12px; color: red; font-
family: Tahoma">
*</td>
<td style="width: 116px">
<asp:RequiredFieldValidator ID="ValidarLocalidad"
runat="server" ControlToValidate="txtLocalidad"
ErrorMessage="Complete este campo" Font-
Size="Smaller"
SetFocusOnError="True"></asp:RequiredFieldValidator>
</td>
</tr>
<tr>
<td style="font-weight: bold; font-size: 10pt; width: 156px;
font-family: Tahoma;
height: 26px; text-align: right">
Código Postal:&nbsp;
</td>
<td style="width: 113px; height: 26px">
<asp:TextBox ID="txtCP"
runat="server"></asp:TextBox></td>
<td style="font-weight: bold; width: 12px; color: red; font-
family: Tahoma; height: 26px">
*</td>
<td style="width: 116px; height: 26px">
<asp:RequiredFieldValidator ID="ValidarCP" runat="server"
ControlToValidate="txtCP"
ErrorMessage="Complete este campo" Font-
Size="Smaller"
SetFocusOnError="True"></asp:RequiredFieldValidator>
</td>
</tr>
<tr>
<td style="font-weight: bold; font-size: 10pt; width: 156px;
font-family: Tahoma;
text-align: right">
Teléfono Fijo:&nbsp;
</td>
<td style="width: 113px">
<asp:TextBox ID="txtTelefono"
runat="server"></asp:TextBox></td>
<td style="font-weight: bold; width: 12px; color: red; font-
family: Tahoma">
*</td>
<td style="width: 116px">
<asp:RequiredFieldValidator ID="ValidarTelefono"
runat="server" ControlToValidate="txtTelefono"
ErrorMessage="Complete este campo" Font-
Size="Smaller"

38
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

SetFocusOnError="True"></asp:RequiredFieldValidator></td>
</tr>
<tr>
<td style="font-weight: bold; font-size: 10pt; width: 156px;
font-family: Tahoma;
text-align: right; height: 26px;">
Celular:</td>
<td style="width: 113px; height: 26px;">
<asp:TextBox ID="txtCelular"
runat="server"></asp:TextBox></td>
<td style="font-weight: bold; width: 12px; color: red; font-
family: Tahoma; height: 26px;">
*</td>
<td style="width: 116px; height: 26px;">
<asp:RequiredFieldValidator ID="ValidarCelular"
runat="server" ControlToValidate="txtCelular"
ErrorMessage="Complete este campo" Font-
Size="Smaller"

SetFocusOnError="True"></asp:RequiredFieldValidator></td>
</tr>
<tr>
<td style="font-weight: bold; font-size: 10pt; width: 156px;
font-family: Tahoma;
text-align: right">
Email:</td>
<td style="width: 113px">
<asp:TextBox ID="txtEmail"
runat="server"></asp:TextBox></td>
<td style="font-weight: bold; width: 12px; color: red; font-
family: Tahoma">
*</td>
<td style="width: 116px">
<asp:RegularExpressionValidator ID="ValidarEmail"
runat="server"
ControlToValidate="txtEmail" ErrorMessage="No es
Válido. Complete este Campo."
Font-Size="Smaller" SetFocusOnError="True"
ValidationExpression="[a-z0-9!#$%&amp;'*+/=?^_`{|}~-
]+(?:\.[a-z0-9!#$%&amp;'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-
9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-
9])?"></asp:RegularExpressionValidator>
</td>
</tr>
<tr>
<td style="font-weight: bold; font-size: 10pt; width: 156px;
font-family: Tahoma;
text-align: right">
Es Cliente</td>
<td style="width: 113px">
<asp:CheckBox ID="Visitante" runat="server" />
</td>

39
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

<td style="font-weight: bold; width: 12px; color: red; font-


family: Tahoma">
&nbsp;</td>
<td style="width: 116px">
&nbsp;</td>
</tr>
<tr>
<td colspan="4" style="height: 38px; font-size: 8pt; font-
family: Tahoma;">
<table style="width:100%;">
<tr>
<td></td>
<td style="width: 214px">
<asp:Label ID="lblFamilia" runat="server"
Text="Familias"></asp:Label>
</td>
<td style="width: 214px">
<asp:Label ID="lblPatente" runat="server"
Text="Patentes"></asp:Label>
</td>
<td></td>
</tr>
<tr>
<td></td>
<td style="width: 214px">
<asp:CheckBoxList ID="cbkFamilias"
runat="server" RepeatColumns="1">
</asp:CheckBoxList>
</td>
<td>
<asp:CheckBoxList ID="cbkPatentes"
runat="server" Height="26px"
RepeatColumns="2">
</asp:CheckBoxList>
</td>
</tr>
</table>
&nbsp;&nbsp;&nbsp;&nbsp;
<br />
<br />
<asp:Button ID="cmbAlta" runat="server" Text="Registrar"
Width="181px" />
<br />
<br />
<asp:HyperLink ID="lnkVolver" runat="server"
NavigateUrl="~/abm_usuario.aspx">[Volver]</asp:HyperLink></td>
</tr>
</table>
<br />
<br />
<br />
</asp:Content>
<asp:Content ID="Content3" runat="server" ContentPlaceHolderID="Usuario">

40
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

<asp:Label ID="Label1" runat="server" Font-Bold="True" Font-


Names="Tahoma" Font-Size="9pt"
ForeColor="White" Text="Usuario: "
BackColor="Transparent"></asp:Label><asp:Label ID="lblUsuario"
runat="server" Font-Bold="True" Font-Names="tahoma" Font-Size="9pt"
ForeColor="White" Text="Invitado"
BackColor="Transparent"></asp:Label>
</asp:Content>

3.8.3. Código VB

mports Negocio
Imports System.Data
Partial Class alta_usuario
Inherits System.Web.UI.Page
Dim objUsuario As New Negocio.Usuario
Dim objFamilia As New Negocio.Familia
Dim objPatente As New Negocio.Patente
Dim DS As DataSet
Dim Fam As String
Protected Sub Page_Load(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.Load
'Controlo que haya una sesión iniciada, si no es así redirecciono
a Login.aspx
If CType(Session.Item("usuario"), String) = "Invitado" Then
Response.Redirect("Login.aspx")
Else
'Controlo que el usuario tenga permiso para ejecutar esta
página

objPatente.BuscarPatentesUsuario(CType(Session.Item("id_usuario"),
String))

'Creo una bandera para controlar si existe la patente para


utilizar esta página
'False = no encontró, True = encontró
Dim bandera As Boolean
Dim objFila As Data.DataRow
Dim i As Integer

bandera = False

For i = 0 To objPatente.TablaPatentes.Rows.Count - 1
objFila = objPatente.TablaPatentes.Rows(i)
If objFila.Item("descripcion") = "Usuarios" Then
bandera = True
End If
Next

'Controlo el resultado de la bandera, si es False


redirecciono a index.aspx
If bandera = False Then

41
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

Response.Redirect("Index.aspx")
End If
objPatente = Nothing
End If

'Coloco el nombre del usuario en el label cuando hizo login


lblUsuario.Text = CType(Session.Item("usuario"), String)

End Sub

Protected Sub cmdAlta_Click(ByVal sender As Object, ByVal e As


System.EventArgs) Handles cmbAlta.Click
If Me.IsValid Then
objUsuario = New Negocio.Usuario()
objUsuario.Usuario = CStr(txtUsuario.Text)
If objUsuario.VerificarUsuario = False Then
objUsuario.CrearID()
objUsuario.Nombre = txtNombre.Text
objUsuario.Usuario = txtUsuario.Text
objUsuario.Clave = txtPass.Text
objUsuario.Direccion = txtDireccion.Text
objUsuario.Localidad = txtLocalidad.Text
objUsuario.Cod_Post = txtCP.Text
objUsuario.Telefono = txtTelefono.Text
objUsuario.Celular = txtCelular.Text
objUsuario.Email = txtEmail.Text
objUsuario.EsCliente = Visitante.Checked

objUsuario.GuardarUsuario()

Dim FamItem As ListItem


For Each FamItem In cbkFamilias.Items
If FamItem.Selected Then
objUsuario.GuardarUsuarioFamilia(FamItem.Value)
End If
Next

Dim PatItem As ListItem


For Each PatItem In cbkPatentes.Items
If PatItem.Selected Then
objUsuario.GuardarUsuarioPatente(PatItem.Value)
End If
Next
Else
End If
objUsuario = Nothing
Else

txtNombre.Text = ""
txtUsuario.Text = ""
txtPass.Text = ""
txtCelular.Text = ""

42
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

txtCP.Text = ""
txtTelefono.Text = ""
txtLocalidad.Text = ""
txtDireccion.Text = ""
txtEmail.Text = ""
Visitante.Checked = False
End If
End Sub
Protected Sub Page_LoadComplete(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.LoadComplete

DS = objFamilia.ListarFamilias()
Me.cbkFamilias.DataSource = DS.Tables(0)
Me.cbkFamilias.DataValueField =
DS.Tables(0).Columns(0).ColumnName.ToString
Me.cbkFamilias.DataTextField =
DS.Tables(0).Columns(1).ColumnName.ToString
Me.cbkFamilias.DataBind()

DS = objFamilia.ListarPatentes()
Me.cbkPatentes.DataSource = DS.Tables(0)
Me.cbkPatentes.DataValueField =
DS.Tables(0).Columns(2).ColumnName.ToString
Me.cbkPatentes.DataTextField =
DS.Tables(0).Columns(3).ColumnName.ToString
Me.cbkPatentes.DataBind()
End Sub

End Class

3.9. baja_usuario.aspx
3.9.1. Captura de Pantalla

43
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

3.9.2. Código HTML

<%@ Page Language="VB" MasterPageFile="~/Master


Page/MPSteticCenter.master" AutoEventWireup="false"
CodeFile="baja_usuario.aspx.vb" Inherits="baja_usuario" %>

<asp:Content ID="Content1" runat="server" ContentPlaceHolderID="Ruta">


<asp:HyperLink ID="lnkInicio" runat="server"
NavigateUrl="~/Index.aspx">Inicio</asp:HyperLink>
-
<asp:HyperLink ID="lnkMenu" runat="server"
NavigateUrl="~/Menu.aspx">Menú Principal</asp:HyperLink>
-
<asp:HyperLink ID="lnkUsuario" runat="server"
NavigateUrl="~/abm_usuario.aspx">Menú Usuario</asp:HyperLink>
-
<asp:HyperLink ID="lnkBajaUsuario" runat="server">Baja
Usuario</asp:HyperLink>
</asp:Content>
<asp:Content ID="Content2" runat="server"
ContentPlaceHolderID="ContenidoCentral">
<asp:Label ID="Label2" runat="server"
Text="Seleccione el usuario a eliminar y precione el botón
Eliminar Usuario"></asp:Label>
<br />
<br />

44
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

<asp:DropDownList ID="cboEliminarUsuario" runat="server">


</asp:DropDownList>
<br />
<br />
<asp:Button ID="btnEliminar" runat="server" Text="Eliminar Usuario"
/>
<br />
<br />
<asp:Label ID="lblError" runat="server" Font-Bold="True"
ForeColor="#CC33FF"></asp:Label>
<br />
<br />
<asp:HyperLink ID="lnkVolver" runat="server"
NavigateUrl="~/abm_usuario.aspx">[Volver]</asp:HyperLink>
</asp:Content>
<asp:Content ID="Content3" runat="server" ContentPlaceHolderID="Usuario">
<asp:Label ID="Label1" runat="server" Font-Bold="True" Font-
Names="Tahoma" Font-Size="9pt"
ForeColor="White" Text="Usuario: "
BackColor="Transparent"></asp:Label><asp:Label ID="lblUsuario"
runat="server" Font-Bold="True" Font-Names="tahoma" Font-Size="9pt"
ForeColor="White" Text="Invitado"
BackColor="Transparent"></asp:Label>
</asp:Content>

3.9.3. Código VB

Imports Negocio
Imports System.Data
Partial Class baja_usuario
Inherits System.Web.UI.Page
Dim objusu As New Negocio.Usuario
Dim objbit As New Negocio.Bitacora
Dim DS As DataSet
Dim usu As String

Protected Sub Page_LoadComplete(ByVal sender As Object, ByVal e As


System.EventArgs) Handles Me.LoadComplete
DS = objusu.CargarListaUsuario()
Me.cboEliminarUsuario.DataSource = DS.Tables(0)
Me.cboEliminarUsuario.DataValueField =
DS.Tables(0).Columns(0).ColumnName.ToString
Me.cboEliminarUsuario.DataTextField =
DS.Tables(0).Columns(1).ColumnName.ToString
Me.cboEliminarUsuario.DataBind()
End Sub
Protected Sub btnEliminar_Click(ByVal sender As Object, ByVal e As
System.EventArgs) Handles btnEliminar.Click
usu = cboEliminarUsuario.SelectedValue
If Me.cboEliminarUsuario.SelectedValue <> -1 Then
Try
usu = Me.cboEliminarUsuario.SelectedValue

45
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

objusu.BorrarUsuario(usu)
objbit.RegistrarBitacora(CType("Eliminación Usuario
Exitosa", String), "2", CType(Session.Item("id_usuario"), String))
lblError.Text = "¡Registro de Usuario Número " &
objusu.IdUsuario & " Fué Borrado!"
Catch ex As Exception
objbit.RegistrarBitacora(CType("Error Eliminación
Usuario", String), "1", CType(Session.Item("id_usuario"), String))
lblError.Text = "¡Error al Realizar la Eliminación del
Usuario!"
End Try

End If
End Sub
End Class

3.10. mod_usuario.aspx
3.10.1. Captura de Pantalla

46
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

3.10.2. Código HTML

<%@ Page Language="VB" MasterPageFile="~/Master


Page/MPSteticCenter.master" AutoEventWireup="false"
CodeFile="mod_usuario.aspx.vb" Inherits="mod_usuario" %>

<asp:Content ID="Content1" runat="server" ContentPlaceHolderID="Ruta">


<asp:HyperLink ID="lnkInicio" runat="server"
NavigateUrl="~/Index.aspx">Inicio</asp:HyperLink>
-
<asp:HyperLink ID="lnkActividades" runat="server">Modificar
Usuario</asp:HyperLink>
</asp:Content>
<asp:Content ID="Content2" runat="server"
ContentPlaceHolderID="ContenidoCentral">

<br />
<asp:Image ID="Image3" runat="server"
ImageUrl="~/Imagenes/GestionarPersona.jpg" ImageAlign="AbsMiddle"
/><br />
<br />
<table>
<tr>
<td colspan="4" style="font-weight: bold; font-size: 8pt;
color: red; font-family: Tahoma;
height: 16px; text-align: center">
* Campos Resqueridos</td>
</tr>
<tr>
<td style="font-weight: bold; font-size: 10pt; width: 156px;
font-family: Tahoma;
text-align: right">

47
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

&nbsp;</td>
<td style="width: 113px">
<asp:DropDownList ID="cboModUsuario" runat="server"
Width="145px"
AutoPostBack="True">
</asp:DropDownList>
</td>
<td style="font-weight: bold; width: 12px; color: red; font-
family: Tahoma">
&nbsp;</td>
<td style="width: 116px">
<asp:HiddenField ID="HideID" runat="server" />
</td>
</tr>
<tr>
<td style="font-weight: bold; font-size: 10pt; width: 156px;
font-family: Tahoma;
text-align: right">
Nombre:&nbsp;
</td>
<td style="width: 113px">
<asp:TextBox ID="txtNombre"
runat="server"></asp:TextBox></td>
<td style="font-weight: bold; width: 12px; color: red; font-
family: Tahoma">
*</td>
<td style="width: 116px">
<asp:RequiredFieldValidator ID="ValidarNombre"
runat="server" ControlToValidate="txtNombre"
ErrorMessage="Complete este campo" Font-
Size="Smaller"
SetFocusOnError="True"></asp:RequiredFieldValidator>
</td>
</tr>
<tr style="color: #000000">
<td style="font-weight: bold; font-size: 10pt; width: 156px;
font-family: Tahoma;
text-align: right; height: 26px;">
Usuario:&nbsp;
</td>
<td style="width: 113px; height: 26px;">
<asp:TextBox ID="txtUsuario"
runat="server"></asp:TextBox></td>
<td style="font-weight: bold; width: 12px; color: red; font-
family: Tahoma; height: 26px;">
*</td>
<td style="width: 116px; height: 26px;">
<asp:RequiredFieldValidator ID="ValidarUsuario"
runat="server" ControlToValidate="txtUsuario"
ErrorMessage="Complete este campo" Font-
Size="Smaller"

SetFocusOnError="True"></asp:RequiredFieldValidator></td>

48
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

</tr>
<tr style="color: #000000">
<td style="font-weight: bold; font-size: 10pt; width: 156px;
font-family: Tahoma;
text-align: right">
Clave:&nbsp;
</td>
<td style="width: 113px">
<asp:TextBox ID="txtPass" runat="server" MaxLength="10"
ReadOnly="True"></asp:TextBox></td>
<td style="font-weight: bold; width: 12px; color: red; font-
family: Tahoma">
*</td>
<td style="width: 116px">
<asp:RequiredFieldValidator ID="ValidarClave"
runat="server"
ControlToValidate="txtPass" ErrorMessage="Complete
este campo"
Font-Size="Smaller"
SetFocusOnError="True"></asp:RequiredFieldValidator>
</td>
</tr>
<tr style="color: #000000">
<td style="font-weight: bold; font-size: 10pt; width: 156px;
font-family: Tahoma;
text-align: right">
Dirección:&nbsp;</td>
<td style="width: 113px; height: 20px">
<asp:TextBox ID="txtDireccion"
runat="server"></asp:TextBox></td>
<td style="font-weight: bold; width: 12px; color: red; font-
family: Tahoma">
*</td>
<td style="width: 116px; height: 20px">
<asp:RequiredFieldValidator ID="ValidarDireccion"
runat="server" ControlToValidate="txtDireccion"
ErrorMessage="Complete este campo" Font-
Size="Smaller"

SetFocusOnError="True"></asp:RequiredFieldValidator></td>
</tr>
<tr>
<td style="font-weight: bold; font-size: 10pt; width: 156px;
font-family: Tahoma;
text-align: right">
Localidad:&nbsp;
</td>
<td style="width: 113px">
<asp:TextBox ID="txtLocalidad"
runat="server"></asp:TextBox></td>
<td style="font-weight: bold; width: 12px; color: red; font-
family: Tahoma">
*</td>

49
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

<td style="width: 116px">


<asp:RequiredFieldValidator ID="ValidarLocalidad"
runat="server" ControlToValidate="txtLocalidad"
ErrorMessage="Complete este campo" Font-
Size="Smaller"
SetFocusOnError="True"></asp:RequiredFieldValidator>
</td>
</tr>
<tr>
<td style="font-weight: bold; font-size: 10pt; width: 156px;
font-family: Tahoma;
height: 26px; text-align: right">
Código Postal:&nbsp;
</td>
<td style="width: 113px; height: 26px">
<asp:TextBox ID="txtCP"
runat="server"></asp:TextBox></td>
<td style="font-weight: bold; width: 12px; color: red; font-
family: Tahoma; height: 26px">
*</td>
<td style="width: 116px; height: 26px">
<asp:RequiredFieldValidator ID="ValidarCP" runat="server"
ControlToValidate="txtCP"
ErrorMessage="Complete este campo" Font-
Size="Smaller"
SetFocusOnError="True"></asp:RequiredFieldValidator>
</td>
</tr>
<tr>
<td style="font-weight: bold; font-size: 10pt; width: 156px;
font-family: Tahoma;
text-align: right">
Teléfono Fijo:&nbsp;
</td>
<td style="width: 113px">
<asp:TextBox ID="txtTelefono"
runat="server"></asp:TextBox></td>
<td style="font-weight: bold; width: 12px; color: red; font-
family: Tahoma">
*</td>
<td style="width: 116px">
<asp:RequiredFieldValidator ID="ValidarTelefono"
runat="server" ControlToValidate="txtTelefono"
ErrorMessage="Complete este campo" Font-
Size="Smaller"

SetFocusOnError="True"></asp:RequiredFieldValidator></td>
</tr>
<tr>
<td style="font-weight: bold; font-size: 10pt; width: 156px;
font-family: Tahoma;
text-align: right; height: 26px;">
Celular:</td>

50
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

<td style="width: 113px; height: 26px;">


<asp:TextBox ID="txtCelular"
runat="server"></asp:TextBox></td>
<td style="font-weight: bold; width: 12px; color: red; font-
family: Tahoma; height: 26px;">
*</td>
<td style="width: 116px; height: 26px;">
<asp:RequiredFieldValidator ID="ValidarCelular"
runat="server" ControlToValidate="txtCelular"
ErrorMessage="Complete este campo" Font-
Size="Smaller"

SetFocusOnError="True"></asp:RequiredFieldValidator></td>
</tr>
<tr>
<td style="font-weight: bold; font-size: 10pt; width: 156px;
font-family: Tahoma;
text-align: right">
Email:</td>
<td style="width: 113px">
<asp:TextBox ID="txtEmail"
runat="server"></asp:TextBox></td>
<td style="font-weight: bold; width: 12px; color: red; font-
family: Tahoma">
*</td>
<td style="width: 116px">
<asp:RegularExpressionValidator ID="ValidarEmail"
runat="server"
ControlToValidate="txtEmail" ErrorMessage="No es
Válido. Complete este Campo."
Font-Size="Smaller" SetFocusOnError="True"
ValidationExpression="[a-z0-9!#$%&amp;'*+/=?^_`{|}~-
]+(?:\.[a-z0-9!#$%&amp;'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-
9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-
9])?"></asp:RegularExpressionValidator>
</td>
</tr>
<tr>
<td style="font-weight: bold; font-size: 10pt; width: 156px;
font-family: Tahoma;
text-align: right">
Es Cliente</td>
<td style="width: 113px">
<asp:CheckBox ID="Visitante" runat="server" />
</td>
<td style="font-weight: bold; width: 12px; color: red; font-
family: Tahoma">
&nbsp;</td>
<td style="width: 116px">
&nbsp;</td>
</tr>
<tr>

51
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

<td colspan="4" style="height: 38px; font-size: 8pt; font-


family: Tahoma;">
<table style="width:100%;">
<tr>
<td></td>
<td style="width: 214px">
<asp:Label ID="lblFamilia" runat="server"
Text="Familias"></asp:Label>
</td>
<td style="width: 214px">
<asp:Label ID="lblPatente" runat="server"
Text="Patentes"></asp:Label>
</td>
<td></td>
</tr>
<tr>
<td></td>
<td style="width: 214px">
<asp:CheckBoxList ID="cbkFamilias"
runat="server" RepeatColumns="1">
</asp:CheckBoxList>
</td>
<td>
<asp:CheckBoxList ID="cbkPatentes"
runat="server" Height="26px"
RepeatColumns="2">
</asp:CheckBoxList>
</td>
</tr>
</table>
&nbsp;&nbsp;&nbsp;&nbsp;
<br />
<asp:Button ID="btnModificar" runat="server"
Text="Modificar Datos Usuario"
Width="181px" />
<br />
<hr />
<br />
<asp:Label ID="Label2" runat="server" Text="Cambiar
Contraseña"
Font-Bold="True" Font-Size="Large"></asp:Label>
<br />
<br />
Debe Seleccionar El Usuario de la Lista Previamente<br />
<br />
<asp:Label ID="lblContra" runat="server" Text="Escriba su
Nueva Contraseña : "
Font-Bold="True" Font-Size="10pt"></asp:Label>
<asp:TextBox ID="txtcontra" runat="server" Width="184px"
Font-Bold="True"
Font-Size="10pt"></asp:TextBox>
<br />
<br />

52
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

<asp:Button ID="btnCambiarContra" runat="server"


Text="Cambiar Contraseña"
Width="155px" />
<br />
<br />
<asp:Label ID="lblError" runat="server" Font-
Size="Smaller" ForeColor="Red"></asp:Label>
<br />
<br />
<asp:HyperLink ID="lnkVolver" runat="server"
NavigateUrl="~/abm_usuario.aspx">[Volver]</asp:HyperLink></td>
</tr>
</table>
</asp:Content>
<asp:Content ID="Content3" runat="server" ContentPlaceHolderID="Usuario">
<asp:Label ID="Label1" runat="server" Font-Bold="True" Font-
Names="Tahoma" Font-Size="9pt"
ForeColor="White" Text="Usuario: "
BackColor="Transparent"></asp:Label><asp:Label ID="lblUsuario"
runat="server" Font-Bold="True" Font-Names="tahoma" Font-Size="9pt"
ForeColor="White" Text="Invitado"
BackColor="Transparent"></asp:Label>
</asp:Content>

3.10.3. Código VB

Imports Negocio
Imports System.Data

Partial Class mod_usuario


Inherits System.Web.UI.Page
Dim objUsuario As New Negocio.Usuario
Dim objFamilia As New Negocio.Familia
Dim objPatente As New Negocio.Patente
Dim objbitacora As New Negocio.Bitacora
Dim DS As DataSet
Dim DS2 As DataSet
Dim Fam As String
Dim Usu As String
Dim DS3 As DataSet
Protected Sub Page_Load(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.Load
' Controlo que haya una sesión iniciada, si no es así
redirecciono a Login.aspx
If CType(Session.Item("usuario"), String) = "Invitado" Then
Response.Redirect("Login.aspx")
Else
'Controlo que el usuario tenga permiso para ejecutar esta
página

objPatente.BuscarPatentesUsuario(CType(Session.Item("id_usuario"),
String))

53
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

'Creo una bandera para controlar si existe la patente para


utilizar esta página
'False = no encontró, True = encontró
Dim bandera As Boolean
Dim objFila As Data.DataRow
Dim i As Integer

bandera = False

For i = 0 To objPatente.TablaPatentes.Rows.Count - 1
objFila = objPatente.TablaPatentes.Rows(i)
If objFila.Item("descripcion") = "Usuarios" Then
bandera = True
End If
Next

'Controlo el resultado de la bandera, si es False


redirecciono a index.aspx
If bandera = False Then
Response.Redirect("Index.aspx")
End If
objPatente = Nothing
End If

'Coloco el nombre del usuario en el label cuando hizo login


lblUsuario.Text = CType(Session.Item("usuario"), String)

End Sub

Protected Sub btnModificar_Click(ByVal sender As Object, ByVal e As


System.EventArgs) Handles btnModificar.Click
If Me.IsValid Then
Try
objUsuario = New Negocio.Usuario()
objUsuario.IdUsuario = HideID.Value
objUsuario.Nombre = txtNombre.Text
objUsuario.Usuario = txtUsuario.Text
objUsuario.Clave = txtPass.Text
objUsuario.Direccion = txtDireccion.Text
objUsuario.Localidad = txtLocalidad.Text
objUsuario.Cod_Post = txtCP.Text
objUsuario.Telefono = txtTelefono.Text
objUsuario.Celular = txtCelular.Text
objUsuario.Email = txtEmail.Text
objUsuario.EsCliente = Visitante.Checked
objUsuario.ModificarUsuario()
objFamilia.BorrarUsuarioFamilia()

Dim FamItem As ListItem


For Each FamItem In cbkFamilias.Items
If FamItem.Selected Then

54
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

objUsuario.ModificarUsuarioFamilia(FamItem.Value)
End If
Next

objUsuario.BorrarUsuarioPatente()

Dim PatItem As ListItem


For Each PatItem In cbkPatentes.Items
If PatItem.Selected Then
objUsuario.GuardarUsuarioPatente(PatItem.Value)
End If
Next
objbitacora.RegistrarBitacora(CType("Modificación Usuario
Exitosa", String), "2", CType(Session.Item("id_usuario"), String))
lblError.Text = "Registro de Usuario Número " &
objUsuario.IdUsuario & " Actualizado"
Catch ex As Exception
objbitacora.RegistrarBitacora(CType("Error Modificación
Usuario", String), "1", CType(Session.Item("id_usuario"), String))
lblError.Text = "¡Error al Realizar la Modificación del
Usuario!"
End Try
Else
txtNombre.Text = ""
txtUsuario.Text = ""
txtPass.Text = ""
txtCelular.Text = ""
txtCP.Text = ""
txtTelefono.Text = ""
txtLocalidad.Text = ""
txtDireccion.Text = ""
txtEmail.Text = ""
Visitante.Checked = False
End If
End Sub
Protected Sub Page_LoadComplete(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.LoadComplete
DS2 = objUsuario.CargarListaUsuarioMod()
Me.cboModUsuario.DataSource = DS2.Tables(0)
Me.cboModUsuario.DataValueField =
DS2.Tables(0).Columns(0).ColumnName.ToString
Me.cboModUsuario.DataTextField =
DS2.Tables(0).Columns(1).ColumnName.ToString
Me.cboModUsuario.DataBind()

DS = objFamilia.ListarFamilias()
Me.cbkFamilias.DataSource = DS.Tables(0)
Me.cbkFamilias.DataValueField =
DS.Tables(0).Columns(0).ColumnName.ToString
Me.cbkFamilias.DataTextField =
DS.Tables(0).Columns(1).ColumnName.ToString
Me.cbkFamilias.DataBind()

55
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

DS = objFamilia.ListarPatentes()
Me.cbkPatentes.DataSource = DS.Tables(0)
Me.cbkPatentes.DataValueField =
DS.Tables(0).Columns(2).ColumnName.ToString
Me.cbkPatentes.DataTextField =
DS.Tables(0).Columns(3).ColumnName.ToString
Me.cbkPatentes.DataBind()

End Sub

Protected Sub cboModUsuario_SelectedIndexChanged(ByVal sender As


Object, ByVal e As System.EventArgs) Handles
cboModUsuario.SelectedIndexChanged
Usu = cboModUsuario.SelectedValue
HideID.Value = Usu
DS3 = objUsuario.BuscarUsuario(Usu)
txtNombre.Text = DS3.Tables(0).Rows(0).Item("NOMBRE")
txtUsuario.Text = DS3.Tables(0).Rows(0).Item("USUARIO")
txtPass.Text = DS3.Tables(0).Rows(0).Item("CLAVE")
txtDireccion.Text = DS3.Tables(0).Rows(0).Item("DIRECCION")
txtLocalidad.Text = DS3.Tables(0).Rows(0).Item("LOCALIDAD")
txtCP.Text = DS3.Tables(0).Rows(0).Item("COD_POST")
txtTelefono.Text = DS3.Tables(0).Rows(0).Item("TELEFONO")
txtCelular.Text = DS3.Tables(0).Rows(0).Item("CELULAR")
txtEmail.Text = DS3.Tables(0).Rows(0).Item("EMAIL")
Visitante.Checked = DS3.Tables(0).Rows(0).Item("ESCLIENTE")
End Sub

Protected Sub btnCambiarContra_Click(ByVal sender As Object, ByVal e


As System.EventArgs) Handles btnCambiarContra.Click
If Me.txtcontra.Text <> "" And Me.cboModUsuario.SelectedIndex <>
-1 Then
Try
objUsuario.CambiarContraseña(txtcontra.Text,
HideID.Value)
objbitacora.RegistrarBitacora(CType("Modificación Clave
Exitosa", String), "1", CType(Session.Item("id_usuario"), String))
Catch ex As Exception
objbitacora.RegistrarBitacora(CType("Error Modificar
Clave", String), "2", CType(Session.Item("id_usuario"), String))
End Try
Else
Me.lblError.Text = "La contraseña está en blanco"
End If

End Sub

End Class

56
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

3.11. familia.aspx
3.11.1. Captura de Pantalla

3.11.2. Código HTML

<%@ Page Language="VB" MasterPageFile="~/Master


Page/MPSteticCenter.master" AutoEventWireup="false"
CodeFile="familia.aspx.vb" Inherits="familia" %>

<asp:Content ID="Content1" runat="server" ContentPlaceHolderID="Ruta">


<asp:HyperLink ID="lnkInicio" runat="server"
NavigateUrl="~/Index.aspx">Inicio</asp:HyperLink>
-
<asp:HyperLink ID="lnkMenu" runat="server"
NavigateUrl="~/Menu.aspx">Menú Principal</asp:HyperLink>
-
<asp:HyperLink ID="lnkMenuUsuario" runat="server">Menú
Familia</asp:HyperLink>
</asp:Content>

<asp:Content ID="Content2" runat="server"


ContentPlaceHolderID="ContenidoCentral">
<br />

57
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

<asp:Label ID="Label2" runat="server" Text="Gestionar Familia" Font-


Size="X-Large" Font-Bold="True" ForeColor="#9933FF"></asp:Label>
<br />
<br />
<table>
<tr>
<td style="font-weight: bold; font-size: 10pt; font-family:
Tahoma; background-color: #ffffcc">
Administrador del Sitio</td>
</tr>
<tr>
<td>
<asp:HyperLink ID="HyperLink1" runat="server"
ImageUrl="~/Imagenes/AltaChico.jpg"

NavigateUrl="~/alta_familia.aspx">HyperLink</asp:HyperLink></td>
</tr>
<tr>
<td>
<asp:HyperLink ID="HyperLink2" runat="server"
ImageUrl="~/Imagenes/BajaChico.jpg"

NavigateUrl="~/baja_familia.aspx">HyperLink</asp:HyperLink></td>
</tr>
<tr>
<td>
<asp:HyperLink ID="HyperLink3" runat="server"
ImageUrl="~/Imagenes/ModChico.jpg"

NavigateUrl="~/mod_familia.aspx">HyperLink</asp:HyperLink></td>
</tr>
<tr>
<td style="font-size: 8pt; font-family: Tahoma; height:
29px">
<br />
<asp:HyperLink ID="lnkVolver" runat="server"
NavigateUrl="~/Menu.aspx">[Volver]</asp:HyperLink></td>
</tr>
</table>
<br />
</asp:Content>
<asp:Content ID="Content3" runat="server" ContentPlaceHolderID="Usuario">
<asp:Label ID="Label1" runat="server" Font-Bold="True" Font-
Names="Tahoma" Font-Size="9pt"
ForeColor="White" Text="Usuario: "
BackColor="Transparent"></asp:Label><asp:Label ID="lblUsuario"
runat="server" Font-Bold="True" Font-Names="tahoma" Font-Size="9pt"
ForeColor="White" Text="Invitado"
BackColor="Transparent"></asp:Label>
</asp:Content>

58
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

3.12. alta_familia.aspx
3.12.1. Captura de Pantalla

3.12.2. Código HTML

<%@ Page Language="VB" MasterPageFile="~/Master


Page/MPSteticCenter.master" AutoEventWireup="false"
CodeFile="alta_familia.aspx.vb" Inherits="alta_familia" %>

<asp:Content ID="Content1" runat="server" ContentPlaceHolderID="Ruta">


<asp:HyperLink ID="lnkInicio" runat="server"
NavigateUrl="~/Index.aspx">Inicio</asp:HyperLink>
-
<asp:HyperLink ID="lnkMenu" runat="server"
NavigateUrl="~/Menu.aspx">Menú Principal</asp:HyperLink>
-
<asp:HyperLink ID="lnkFamilia" runat="server"
NavigateUrl="~/familia.aspx">Menú Familia</asp:HyperLink>
-

59
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

<asp:HyperLink ID="lnkAltaFamilia" runat="server">Alta


Familia</asp:HyperLink>
</asp:Content>
<asp:Content ID="Content2" runat="server"
ContentPlaceHolderID="ContenidoCentral">
<br />
<asp:Image ID="Image3" runat="server"
ImageUrl="~/Imagenes/AltaChico.jpg" /><br />
<br />
<table>
<tr>
<td style="font-size: 10pt; width: 202px; font-family:
Tahoma; height: 15px; text-align: right">
Descripción</td>
<td style="font-size: 8pt; width: 401px; font-family: Tahoma;
text-align: left">
<asp:TextBox ID="txtDescripcion" runat="server"
Width="224px"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator2"
runat="server" ControlToValidate="txtDescripcion"
ErrorMessage="Ingrese una Descripción Valida"
SetFocusOnError="True"></asp:RequiredFieldValidator></td>
</tr>
<tr>
<td colspan="2" style="font-size: 8pt; font-family: Tahoma;
height: 141px; text-align: center">
<br />
<asp:CheckBoxList ID="cbkPatentes" runat="server"
Height="26px"
RepeatColumns="2">
</asp:CheckBoxList>
<br />
&nbsp;</td>
</tr>
<tr>
<td colspan="2" style="font-size: 8pt; font-family: Tahoma;
height: 32px; text-align: center">
<asp:Button ID="btnGuardar" runat="server"
Text="Registrar Familia" /></td>
</tr>
<tr>
<td colspan="2" style="font-size: 8pt; font-family: Tahoma;
height: 32px; text-align: center">
<asp:Label ID="lblError" runat="server" Font-Bold="True"
ForeColor="#9933FF"></asp:Label>
</td>
</tr>
</table>
<br />
<br />
<table>
<tr>

60
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

<td colspan="2" style="font-size: 8pt; font-family: Tahoma;


text-align: left">
<asp:HyperLink ID="HyperLink3" runat="server"
NavigateUrl="~/familia.aspx">[Volver]</asp:HyperLink></td>
</tr>
</table>
<br />
</asp:Content>

<asp:Content ID="Content3" runat="server" ContentPlaceHolderID="Usuario">


<asp:Label ID="Label1" runat="server" Font-Bold="True" Font-
Names="Tahoma" Font-Size="9pt"
ForeColor="White" Text="Usuario: "
BackColor="Transparent"></asp:Label><asp:Label ID="lblUsuario"
runat="server" Font-Bold="True" Font-Names="tahoma" Font-Size="9pt"
ForeColor="White" Text="Invitado"
BackColor="Transparent"></asp:Label>
</asp:Content>

3.12.3. Código VB

Imports Negocio
Imports System.Data
Partial Class alta_familia
Inherits System.Web.UI.Page
Dim objUsuario As New Negocio.Usuario
Dim objFamilia As New Negocio.Familia
Dim objPatente As New Negocio.Patente
Dim objBitacora As New Negocio.Bitacora
Dim DS As DataSet
Dim Fam As String
Protected Sub Page_Load(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.Load
'Controlo que haya una sesión iniciada, si no es así redirecciono
a Login.aspx
If CType(Session.Item("usuario"), String) = "Invitado" Then
Response.Redirect("Login.aspx")
Else
'Controlo que el usuario tenga permiso para ejecutar esta
página

objPatente.BuscarPatentesUsuario(CType(Session.Item("id_usuario"),
String))

'Creo una bandera para controlar si existe la patente para


utilizar esta página
'False = no encontró, True = encontró
Dim bandera As Boolean
Dim objFila As Data.DataRow
Dim i As Integer

bandera = False

61
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

For i = 0 To objPatente.TablaPatentes.Rows.Count - 1
objFila = objPatente.TablaPatentes.Rows(i)
If objFila.Item("descripcion") = "Familias" Then
bandera = True
End If
Next

'Controlo el resultado de la bandera, si es False


redirecciono a index.aspx
If bandera = False Then
Response.Redirect("Index.aspx")
End If
objPatente = Nothing
End If

'Coloco el nombre del usuario en el label cuando hizo login


lblUsuario.Text = CType(Session.Item("usuario"), String)

End Sub
Protected Sub Page_LoadComplete(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.LoadComplete
DS = objFamilia.ListarPatentes()
Me.cbkPatentes.DataSource = DS.Tables(0)
Me.cbkPatentes.DataValueField =
DS.Tables(0).Columns(2).ColumnName.ToString
Me.cbkPatentes.DataTextField =
DS.Tables(0).Columns(3).ColumnName.ToString
Me.cbkPatentes.DataBind()
End Sub

Protected Sub btnGuardar_Click(ByVal sender As Object, ByVal e As


System.EventArgs) Handles btnGuardar.Click
If Me.IsValid Then
Try
objFamilia = New Negocio.Familia()
objFamilia.CrearID()
objFamilia.Descripcion = Me.txtDescripcion.Text
objFamilia.GuardarFamilia()
Dim PatItem As ListItem
For Each PatItem In cbkPatentes.Items
If PatItem.Selected Then
objFamilia.GuardarFamiliaPatente(PatItem.Value)
End If
Next
objBitacora.RegistrarBitacora(CType("Creación Familia
Exitosa", String), "2", CType(Session.Item("id_usuario"), String))
lblError.text = "Registro de Familia Número " &
objFamilia.IdFamilia & " Creado"
Catch ex As Exception
objBitacora.RegistrarBitacora(CType("Error Creación
Familia", String), "1", CType(Session.Item("id_usuario"), String))

62
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

lblError.text = "¡Error al Realizar la Creación de la


Familia!"
End Try
Else
objUsuario = Nothing
Me.txtDescripcion.Text = ""
cbkPatentes.Items.Clear()
End If
End Sub
End Class

3.13. baja_familia.aspx
3.13.1. Captura de Pantalla

3.13.2. Código HTML

<%@ Page Language="VB" MasterPageFile="~/Master


Page/MPSteticCenter.master" AutoEventWireup="false"
CodeFile="baja_familia.aspx.vb" Inherits="baja_familia" %>

<asp:Content ID="Content1" runat="server" ContentPlaceHolderID="Ruta">


<asp:HyperLink ID="lnkInicio" runat="server"
NavigateUrl="~/Index.aspx">Inicio</asp:HyperLink>
-
<asp:HyperLink ID="lnkMenu" runat="server"
NavigateUrl="~/Menu.aspx">Menú Principal</asp:HyperLink>

63
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

-
<asp:HyperLink ID="lnkFamilia" runat="server"
NavigateUrl="~/familia.aspx">Menú Familia</asp:HyperLink>
-
<asp:HyperLink ID="lnkBajaFamilia" runat="server">Baja
Familia</asp:HyperLink>
</asp:Content>
<asp:Content ID="Content2" runat="server"
ContentPlaceHolderID="ContenidoCentral">
<asp:Label ID="Label2" runat="server"
Text="Seleccione la familia a eliminar y precione el botón
Eliminar Familia"></asp:Label>
<br />
<br />
<asp:DropDownList ID="cboElimFam" runat="server">
</asp:DropDownList>
<br />
<br />
<asp:Button ID="btnEliminar" runat="server" Text="Eliminar Familia"
/>
<br />
<br />
<asp:HyperLink ID="lnkVolver" runat="server"
NavigateUrl="~/familia.aspx">[Volver]</asp:HyperLink>
</asp:Content>
<asp:Content ID="Content3" runat="server" ContentPlaceHolderID="Usuario">
<asp:Label ID="Label1" runat="server" Font-Bold="True" Font-
Names="Tahoma" Font-Size="9pt"
ForeColor="White" Text="Usuario: "
BackColor="Transparent"></asp:Label><asp:Label ID="lblUsuario"
runat="server" Font-Bold="True" Font-Names="tahoma" Font-Size="9pt"
ForeColor="White" Text="Invitado"
BackColor="Transparent"></asp:Label>
</asp:Content>

3.13.3. Código VB

Imports Negocio
Imports System.Data
Partial Class baja_familia
Inherits System.Web.UI.Page
Dim objfam As New Negocio.Familia
Dim objbit As New Negocio.Bitacora
Dim DS As DataSet
Dim fam As String

Protected Sub Page_LoadComplete(ByVal sender As Object, ByVal e As


System.EventArgs) Handles Me.LoadComplete
DS = objfam.ListarFamilias()
Me.cboElimFam.DataSource = DS.Tables(0)
Me.cboElimFam.DataValueField =
DS.Tables(0).Columns(0).ColumnName.ToString

64
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

Me.cboElimFam.DataTextField =
DS.Tables(0).Columns(1).ColumnName.ToString
Me.cboElimFam.DataBind()
End Sub
Protected Sub btnEliminar_Click(ByVal sender As Object, ByVal e As
System.EventArgs) Handles btnEliminar.Click
If Me.cboElimFam.SelectedValue <> -1 Then
Try
fam = Me.cboElimFam.SelectedValue
objfam.IdFamilia = fam
If fam = "1" Or fam = "2" Or fam = "3" Then
lblError.Text = "¡No Se Pueden Eliminar las Tres
Familias Principales del Sistema!. Solo Puede Eliminar Familias Creadas
Posteriormente."
Else
objfam.BorrarFamilia()
objbit.RegistrarBitacora(CType("Eliminación Familia
Exitosa", String), "2", CType(Session.Item("id_usuario"), String))
lblError.Text = "¡Registro de Familia Número " &
objfam.IdFamilia & " Fué Borrado!"
End If
Catch ex As Exception
objbit.RegistrarBitacora(CType("Error Eliminación
Familia", String), "1", CType(Session.Item("id_usuario"), String))
lblError.Text = "¡Error al Realizar la Eliminación de la
Familia!"
End Try

End If
End Sub
End Class

65
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

3.14. mod_familia.aspx
3.14.1. Captura de Pantalla

3.14.2. Código HTML

<%@ Page Language="VB" MasterPageFile="~/Master


Page/MPSteticCenter.master" AutoEventWireup="false"
CodeFile="mod_familia.aspx.vb" Inherits="mod_familia" %>

<asp:Content ID="Content1" runat="server" ContentPlaceHolderID="Ruta">


<asp:HyperLink ID="lnkInicio" runat="server"
NavigateUrl="~/Index.aspx">Inicio</asp:HyperLink>
-
<asp:HyperLink ID="lnkMenu" runat="server"
NavigateUrl="~/Menu.aspx">Menú Principal</asp:HyperLink>

66
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

-
<asp:HyperLink ID="lnkFamilia" runat="server"
NavigateUrl="~/familia.aspx">Menú Familia</asp:HyperLink>
-
<asp:HyperLink ID="lnkAltaFamilia" runat="server">Modificar
Familia</asp:HyperLink>
</asp:Content>
<asp:Content ID="Content2" runat="server"
ContentPlaceHolderID="ContenidoCentral">
<br />
<asp:Image ID="Image3" runat="server"
ImageUrl="~/Imagenes/ModChico.jpg" /><br />
<br />
<table>
<tr>
<td style="font-size: 10pt; width: 202px; font-family:
Tahoma; height: 15px; text-align: right">
<asp:Label ID="Label3" runat="server"
Text="Ayuda:"></asp:Label>
</td>
<td style="font-size: 8pt; width: 401px; font-family: Tahoma;
text-align: left">
<asp:Label ID="Label2" runat="server" Text="Seleccione la
familia a modificar, complete la descripción y guarde los cambios" Font-
Size="Large" ForeColor="#9966FF"></asp:Label>
</td>
</tr>
<tr>
<td style="font-size: 10pt; width: 202px; font-family:
Tahoma; height: 15px; text-align: right">
Familia</td>
<td style="font-size: 8pt; width: 401px; font-family: Tahoma;
text-align: left">
<asp:DropDownList ID="cboFamilias" runat="server"
Width="219px"
AutoPostBack="True">
</asp:DropDownList>
<asp:HiddenField ID="HideID" runat="server" />
</td>
</tr>
<tr>
<td style="font-size: 10pt; width: 202px; font-family:
Tahoma; height: 15px; text-align: right">
Descripción</td>
<td style="font-size: 8pt; width: 401px; font-family: Tahoma;
text-align: left">
<asp:TextBox ID="txtDescripcion" runat="server"
Width="224px"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator2"
runat="server" ControlToValidate="txtDescripcion"
ErrorMessage="Ingrese una Descripción Valida"
SetFocusOnError="True"></asp:RequiredFieldValidator></td>
</tr>

67
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

<tr>
<td colspan="2" style="font-size: 8pt; font-family: Tahoma;
height: 141px; text-align: center">
<br />
<asp:CheckBoxList ID="cbkPatentes" runat="server"
Height="26px"
RepeatColumns="2">
</asp:CheckBoxList>
<br />
&nbsp;</td>
</tr>
<tr>
<td colspan="2" style="font-size: 8pt; font-family: Tahoma;
height: 32px; text-align: center">
<asp:Button ID="btnGuardar" runat="server" Text="Guardar
Cambios de Familia" /></td>
</tr>
<tr>
<td colspan="2" style="font-size: 8pt; font-family: Tahoma;
height: 32px; text-align: center">
<asp:Label ID="lblError" runat="server" Font-Bold="True"
Font-Size="Medium"
ForeColor="#CC33FF"></asp:Label>
</td>
</tr>
</table>
<br />
<br />
<table>
<tr>
<td colspan="2" style="font-size: 8pt; font-family: Tahoma;
text-align: left">
<asp:HyperLink ID="HyperLink3" runat="server"
NavigateUrl="~/familia.aspx">[Volver]</asp:HyperLink></td>
</tr>
</table>
<br />
</asp:Content>

<asp:Content ID="Content3" runat="server" ContentPlaceHolderID="Usuario">


<asp:Label ID="Label1" runat="server" Font-Bold="True" Font-
Names="Tahoma" Font-Size="9pt"
ForeColor="White" Text="Usuario: "
BackColor="Transparent"></asp:Label><asp:Label ID="lblUsuario"
runat="server" Font-Bold="True" Font-Names="tahoma" Font-Size="9pt"
ForeColor="White" Text="Invitado"
BackColor="Transparent"></asp:Label>
</asp:Content>

3.14.3. Código VB

Imports Negocio

68
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

Imports System.Data
Partial Class mod_familia
Inherits System.Web.UI.Page
Dim objUsuario As New Negocio.Usuario
Dim objFamilia As New Negocio.Familia
Dim objPatente As New Negocio.Patente
Dim objBitacora As New Negocio.Bitacora
Dim DS As DataSet
Dim DS2 As DataSet
Dim Fam As String
Dim Usu As String
Dim DS3 As DataSet
Protected Sub Page_Load(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.Load
'Controlo que haya una sesión iniciada, si no es así redirecciono
a Login.aspx
If CType(Session.Item("usuario"), String) = "Invitado" Then
Response.Redirect("Login.aspx")
Else
'Controlo que el usuario tenga permiso para ejecutar esta
página

objPatente.BuscarPatentesUsuario(CType(Session.Item("id_usuario"),
String))

'Creo una bandera para controlar si existe la patente para


utilizar esta página
'False = no encontró, True = encontró
Dim bandera As Boolean
Dim objFila As Data.DataRow
Dim i As Integer

bandera = False

For i = 0 To objPatente.TablaPatentes.Rows.Count - 1
objFila = objPatente.TablaPatentes.Rows(i)
If objFila.Item("descripcion") = "Familias" Then
bandera = True
End If
Next

'Controlo el resultado de la bandera, si es False


redirecciono a index.aspx
If bandera = False Then
Response.Redirect("Index.aspx")
End If
objPatente = Nothing
End If

'Coloco el nombre del usuario en el label cuando hizo login


lblUsuario.Text = CType(Session.Item("usuario"), String)
End Sub

69
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

Protected Sub btnGuardar_Click(ByVal sender As Object, ByVal e As


System.EventArgs) Handles btnGuardar.Click
If Me.IsValid Then
Try
objFamilia = New Negocio.Familia()
objFamilia.IdFamilia = HideID.Value
objFamilia.Descripcion = txtDescripcion.Text
objFamilia.BorrarFamilia()
objFamilia.GuardarFamilia()

Dim PatItem As ListItem


For Each PatItem In cbkPatentes.Items
If PatItem.Selected Then
objFamilia.GuardarFamiliaPatente(PatItem.Value)
End If
Next

objBitacora.RegistrarBitacora(CType("Modificación Familia
Exitosa", String), "2", CType(Session.Item("id_usuario"), String))
lblError.Text = "Registro de Familia Número " &
objFamilia.IdFamilia & " Actualizado"
Catch ex As Exception
objBitacora.RegistrarBitacora(CType("Error Modificación
Familia", String), "1", CType(Session.Item("id_usuario"), String))
lblError.Text = "¡Error al Realizar la Modificación de la
Familia!"
End Try
Else
txtDescripcion.Text = ""
End If
End Sub
Protected Sub Page_LoadComplete(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.LoadComplete
DS2 = objFamilia.ListarFamilias()
Me.cboFamilias.DataSource = DS2.Tables(0)
Me.cboFamilias.DataValueField =
DS2.Tables(0).Columns(0).ColumnName.ToString
Me.cboFamilias.DataTextField =
DS2.Tables(0).Columns(1).ColumnName.ToString
Me.cboFamilias.DataBind()

DS = objFamilia.ListarPatentes()
Me.cbkPatentes.DataSource = DS.Tables(0)
Me.cbkPatentes.DataValueField =
DS.Tables(0).Columns(2).ColumnName.ToString
Me.cbkPatentes.DataTextField =
DS.Tables(0).Columns(3).ColumnName.ToString
Me.cbkPatentes.DataBind()
End Sub

Protected Sub cboFamilias_SelectedIndexChanged(ByVal sender As


Object, ByVal e As System.EventArgs) Handles
cboFamilias.SelectedIndexChanged

70
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

Fam = cboFamilias.SelectedValue
HideID.Value = Fam
DS3 = objFamilia.BuscarFamilias(Fam)
txtDescripcion.Text = DS3.Tables(0).Rows(0).Item("DESCRIPCION")
End Sub
End Class

3.15. patente.aspx
3.15.1. Captura de Pantalla

3.15.2. Código HTML

<%@ Page Language="VB" MasterPageFile="~/Master


Page/MPSteticCenter.master" AutoEventWireup="false"
CodeFile="patente.aspx.vb" Inherits="patente" %>

<asp:Content ID="Content1" runat="server" ContentPlaceHolderID="Ruta">


<asp:HyperLink ID="lnkInicio" runat="server"
NavigateUrl="~/Index.aspx">Inicio</asp:HyperLink>
-
<asp:HyperLink ID="lnkPatentes"
runat="server">Patentes</asp:HyperLink>
-
</asp:Content>

71
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

<asp:Content ID="Content2" runat="server"


ContentPlaceHolderID="ContenidoCentral">
<asp:Label ID="Label2" runat="server" Text="Patentes Disponibles:"
Font-Bold="True" Font-Size="Medium"
ForeColor="#9933FF"></asp:Label>
<br />
<br />
<asp:GridView ID="GridView1" runat="server" CellPadding="4"
ForeColor="#333333"
GridLines="None" Height="209px" Width="392px">
<RowStyle BackColor="#EFF3FB" />
<FooterStyle BackColor="#507CD1" Font-Bold="True"
ForeColor="White" />
<PagerStyle BackColor="#2461BF" ForeColor="White"
HorizontalAlign="Center" />
<SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True"
ForeColor="#333333" />
<HeaderStyle BackColor="#507CD1" Font-Bold="True"
ForeColor="White" />
<EditRowStyle BackColor="#2461BF" />
<AlternatingRowStyle BackColor="White" />
</asp:GridView>

</asp:Content>
<asp:Content ID="Content3" runat="server" ContentPlaceHolderID="Usuario">
<asp:Label ID="Label1" runat="server" Font-Bold="True" Font-
Names="Tahoma" Font-Size="9pt"
ForeColor="White" Text="Usuario: "
BackColor="Transparent"></asp:Label><asp:Label ID="lblUsuario"
runat="server" Font-Bold="True" Font-Names="tahoma" Font-Size="9pt"
ForeColor="White" Text="Invitado"
BackColor="Transparent"></asp:Label>
</asp:Content>

3.15.3. Código VB

Imports Negocio
Imports System.Data
Partial Class patente
Inherits System.Web.UI.Page
Dim objPatente As New Negocio.Patente
Dim DS As DataSet
Protected Sub Page_Load(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.Load
DS = objPatente.ListarPatentes()
Me.GridView1.DataSource = DS.Tables(0)
Me.GridView1.DataBind()
End Sub
End Class

72
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

3.16. alta_socio.aspx
3.16.1. Captura de Pantalla

3.16.2. Código HTML

<%@ Page Language="VB" MasterPageFile="~/Master


Page/MPSteticCenter.master" AutoEventWireup="false"
CodeFile="alta_socio.aspx.vb" Inherits="alta_socio" %>

<asp:Content ID="Content1" runat="server" ContentPlaceHolderID="Ruta">


<asp:HyperLink ID="lnkInicio" runat="server"
NavigateUrl="~/Index.aspx">Inicio</asp:HyperLink>
-

73
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

<asp:HyperLink ID="lnkActividades" runat="server">Nuevo


Socio</asp:HyperLink>
</asp:Content>
<asp:Content ID="Content2" runat="server"
ContentPlaceHolderID="ContenidoCentral">
<br />
<asp:Label ID="Label2" runat="server"
Text="Para Registrarse, complete los siguientes Datos" Font-
Bold="True"
Font-Size="Large"></asp:Label>
<br />
<table>
<tr>
<td colspan="4" style="font-weight: bold; font-size: 8pt;
color: red; font-family: Tahoma;
height: 16px; text-align: center">
* Campos Resqueridos</td>
</tr>
<tr>
<td style="font-weight: bold; font-size: 10pt; width: 156px;
font-family: Tahoma;
text-align: right">
Nombre:&nbsp;
</td>
<td style="width: 113px">
<asp:TextBox ID="txtNombre"
runat="server"></asp:TextBox></td>
<td style="font-weight: bold; width: 12px; color: red; font-
family: Tahoma">
*</td>
<td style="width: 116px">
<asp:RequiredFieldValidator ID="ValidarNombre"
runat="server" ControlToValidate="txtNombre"
ErrorMessage="Complete este campo" Font-
Size="Smaller"
SetFocusOnError="True"></asp:RequiredFieldValidator>
</td>
</tr>
<tr style="color: #000000">
<td style="font-weight: bold; font-size: 10pt; width: 156px;
font-family: Tahoma;
text-align: right; height: 26px;">
Usuario:&nbsp;
</td>
<td style="width: 113px; height: 26px;">
<asp:TextBox ID="txtUsuario"
runat="server"></asp:TextBox></td>
<td style="font-weight: bold; width: 12px; color: red; font-
family: Tahoma; height: 26px;">
*</td>
<td style="width: 116px; height: 26px;">
<asp:RequiredFieldValidator ID="ValidarUsuario"
runat="server" ControlToValidate="txtUsuario"

74
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

ErrorMessage="Complete este campo" Font-


Size="Smaller"

SetFocusOnError="True"></asp:RequiredFieldValidator></td>
</tr>
<tr style="color: #000000">
<td style="font-weight: bold; font-size: 10pt; width: 156px;
font-family: Tahoma;
text-align: right">
Clave:&nbsp;
</td>
<td style="width: 113px">
<asp:TextBox ID="txtPass" runat="server" MaxLength="10"
TextMode="Password" Width="149px"></asp:TextBox></td>
<td style="font-weight: bold; width: 12px; color: red; font-
family: Tahoma">
*</td>
<td style="width: 116px">
<asp:RequiredFieldValidator ID="ValidarClave"
runat="server"
ControlToValidate="txtPass" ErrorMessage="Complete
este campo"
Font-Size="Smaller"
SetFocusOnError="True"></asp:RequiredFieldValidator>
</td>
</tr>
<tr style="color: #000000">
<td style="font-weight: bold; font-size: 10pt; width: 156px;
font-family: Tahoma;
text-align: right">
Confirmar Clave:&nbsp;
</td>
<td style="width: 113px; height: 20px">
<asp:TextBox ID="txtConfirmarPass" runat="server"
MaxLength="10" TextMode="Password"
Width="149px"></asp:TextBox></td>
<td style="font-weight: bold; width: 12px; color: red; font-
family: Tahoma">
*</td>
<td style="width: 116px; height: 20px">
<asp:RequiredFieldValidator ID="ValidarClave2"
runat="server" ControlToValidate="txtConfirmarPass"
ErrorMessage="Complete este campo" Font-
Size="Smaller"

SetFocusOnError="True"></asp:RequiredFieldValidator></td>
</tr>
<tr style="color: #000000">
<td style="font-weight: bold; font-size: 10pt; width: 156px;
font-family: Tahoma;
text-align: right">
&nbsp;</td>
<td style="width: 113px; height: 20px">

75
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

<asp:CompareValidator ID="ComparaContrasenia"
runat="server" ControlToCompare="txtPass"
ControlToValidate="txtConfirmarPass"
ErrorMessage="Las Contraseñas NO Coinciden"
Font-Size="Smaller"
SetFocusOnError="True"></asp:CompareValidator></td>
<td style="font-weight: bold; width: 12px; color: red; font-
family: Tahoma">
&nbsp;</td>
<td style="width: 116px; height: 20px">
&nbsp;</td>
</tr>
<tr style="color: #000000">
<td style="font-weight: bold; font-size: 10pt; width: 156px;
font-family: Tahoma;
text-align: right">
Dirección:&nbsp;</td>
<td style="width: 113px; height: 20px">
<asp:TextBox ID="txtDireccion"
runat="server"></asp:TextBox></td>
<td style="font-weight: bold; width: 12px; color: red; font-
family: Tahoma">
*</td>
<td style="width: 116px; height: 20px">
<asp:RequiredFieldValidator ID="ValidarDireccion"
runat="server" ControlToValidate="txtDireccion"
ErrorMessage="Complete este campo" Font-
Size="Smaller"

SetFocusOnError="True"></asp:RequiredFieldValidator></td>
</tr>
<tr>
<td style="font-weight: bold; font-size: 10pt; width: 156px;
font-family: Tahoma;
text-align: right; height: 12px;">
Localidad:&nbsp;
</td>
<td style="width: 113px; height: 12px;">
<asp:TextBox ID="txtLocalidad"
runat="server"></asp:TextBox></td>
<td style="font-weight: bold; width: 12px; color: red; font-
family: Tahoma; height: 12px;">
*</td>
<td style="width: 116px; height: 12px;">
<asp:RequiredFieldValidator ID="ValidarLocalidad"
runat="server" ControlToValidate="txtLocalidad"
ErrorMessage="Complete este campo" Font-
Size="Smaller"
SetFocusOnError="True"></asp:RequiredFieldValidator>
</td>
</tr>
<tr>

76
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

<td style="font-weight: bold; font-size: 10pt; width: 156px;


font-family: Tahoma;
height: 26px; text-align: right">
Código Postal:&nbsp;
</td>
<td style="width: 113px; height: 26px">
<asp:TextBox ID="txtCP"
runat="server"></asp:TextBox></td>
<td style="font-weight: bold; width: 12px; color: red; font-
family: Tahoma; height: 26px">
*</td>
<td style="width: 116px; height: 26px">
<asp:RequiredFieldValidator ID="ValidarCP" runat="server"
ControlToValidate="txtCP"
ErrorMessage="Complete este campo" Font-
Size="Smaller"
SetFocusOnError="True"></asp:RequiredFieldValidator>
</td>
</tr>
<tr>
<td style="font-weight: bold; font-size: 10pt; width: 156px;
font-family: Tahoma;
text-align: right">
Teléfono Fijo:&nbsp;
</td>
<td style="width: 113px">
<asp:TextBox ID="txtTelefono"
runat="server"></asp:TextBox></td>
<td style="font-weight: bold; width: 12px; color: red; font-
family: Tahoma">
*</td>
<td style="width: 116px">
<asp:RequiredFieldValidator ID="ValidarTelefono"
runat="server" ControlToValidate="txtTelefono"
ErrorMessage="Complete este campo" Font-
Size="Smaller"

SetFocusOnError="True"></asp:RequiredFieldValidator></td>
</tr>
<tr>
<td style="font-weight: bold; font-size: 10pt; width: 156px;
font-family: Tahoma;
text-align: right; height: 26px;">
Celular:</td>
<td style="width: 113px; height: 26px;">
<asp:TextBox ID="txtCelular"
runat="server"></asp:TextBox></td>
<td style="font-weight: bold; width: 12px; color: red; font-
family: Tahoma; height: 26px;">
*</td>
<td style="width: 116px; height: 26px;">
<asp:RequiredFieldValidator ID="ValidarCelular"
runat="server" ControlToValidate="txtCelular"

77
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

ErrorMessage="Complete este campo" Font-


Size="Smaller"

SetFocusOnError="True"></asp:RequiredFieldValidator></td>
</tr>
<tr>
<td style="font-weight: bold; font-size: 10pt; width: 156px;
font-family: Tahoma;
text-align: right">
Email:</td>
<td style="width: 113px">
<asp:TextBox ID="txtEmail"
runat="server"></asp:TextBox></td>
<td style="font-weight: bold; width: 12px; color: red; font-
family: Tahoma">
*</td>
<td style="width: 116px">
<asp:RegularExpressionValidator ID="ValidarEmail"
runat="server"
ControlToValidate="txtEmail" ErrorMessage="No es
Válido. Complete este Campo."
Font-Size="Smaller" SetFocusOnError="True"
ValidationExpression="[a-z0-9!#$%&amp;'*+/=?^_`{|}~-
]+(?:\.[a-z0-9!#$%&amp;'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-
9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-
9])?"></asp:RegularExpressionValidator>
</td>
</tr>
<tr>
<td colspan="4" style="height: 38px; font-size: 8pt; font-
family: Tahoma;">
&nbsp;&nbsp;&nbsp;&nbsp;
<br />
<asp:Button ID="cmbAlta" runat="server" Text="Registrar"
Width="181px" />
<br />
<br />
<br />
<asp:HyperLink ID="lnkVolver" runat="server"
NavigateUrl="~/index.aspx">[Volver]</asp:HyperLink></td>
</tr>
</table>
<br />
<br />
<br />
</asp:Content>
<asp:Content ID="Content3" runat="server" ContentPlaceHolderID="Usuario">
<asp:Label ID="Label1" runat="server" Font-Bold="True" Font-
Names="Tahoma" Font-Size="9pt"
ForeColor="White" Text="Usuario: "
BackColor="Transparent"></asp:Label><asp:Label ID="lblUsuario"
runat="server" Font-Bold="True" Font-Names="tahoma" Font-Size="9pt"

78
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

ForeColor="White" Text="Invitado"
BackColor="Transparent"></asp:Label>
</asp:Content>

3.16.3. Código VB

Imports Negocio
Imports System.Data
Imports System.Data.DataTable
Partial Class alta_socio
Inherits System.Web.UI.Page
Dim objUsuario As New Usuario
Dim objFamilia As New Familia
Dim objPatente As New Patente
Dim DS As DataSet
Dim Fam As String
Protected Sub Page_Load(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.Load
'Coloco el nombre del usuario en el label cuando hizo login
lblUsuario.Text = "Anonimo"
End Sub

Protected Sub cmdAlta_Click(ByVal sender As Object, ByVal e As


System.EventArgs) Handles cmbAlta.Click
If Me.IsValid Then
objUsuario = New Negocio.Usuario()
objUsuario.Usuario = CStr(txtUsuario.Text)
If objUsuario.VerificarUsuario = False Then
objUsuario.CrearID()
objUsuario.Nombre = txtNombre.Text
objUsuario.Usuario = txtUsuario.Text
objUsuario.Clave = txtPass.Text
objUsuario.Direccion = txtDireccion.Text
objUsuario.Localidad = txtLocalidad.Text
objUsuario.Cod_Post = txtCP.Text
objUsuario.Telefono = txtTelefono.Text
objUsuario.Celular = txtCelular.Text
objUsuario.Email = txtEmail.Text
objUsuario.GuardarSocio()
objUsuario.GuardarUsuarioFamilia("3")
objUsuario.GuardarUsuarioPatente("10")
objUsuario.GuardarUsuarioPatente("11")
objUsuario.GuardarUsuarioPatente("14")
Else
End If
objUsuario = Nothing
Else
txtNombre.Text = ""
txtUsuario.Text = ""
txtPass.Text = ""
txtCelular.Text = ""
txtCP.Text = ""
txtTelefono.Text = ""

79
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

txtLocalidad.Text = ""
txtDireccion.Text = ""
txtEmail.Text = ""
End If
End Sub
End Class

3.17. comprar.aspx
3.17.1. Captura de Pantalla

3.17.2. Código HTML

80
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

<%@ Page Language="VB" MasterPageFile="~/Master


Page/MPSteticCenter.master" AutoEventWireup="false"
CodeFile="comprar.aspx.vb" Inherits="comprar" %>

<asp:Content ID="Content1" runat="server" ContentPlaceHolderID="Ruta">


<asp:HyperLink ID="lnkInicio" runat="server"
NavigateUrl="~/Index.aspx">Inicio</asp:HyperLink>
-
<asp:HyperLink ID="lnkActividades"
runat="server">Actividades</asp:HyperLink>
</asp:Content>
<asp:Content ID="Content2" runat="server"
ContentPlaceHolderID="ContenidoCentral">
Producto:<br />
<asp:DropDownList id="ddlProducts" runat="server" Width="154px">
</asp:DropDownList><br>
Cantidad:<br>
<asp:textbox id="txtQuantity" runat="server" /><br><br>
<asp:Button id="btnAdd" runat="server" Text="Agregar al Carrito"
onClick="AddToCart" /><br><br>
<asp:DataGrid id="dg" runat="server" ondeletecommand="Delete_Item"
CellPadding="4" ForeColor="#333333" GridLines="None">
<columns>
<asp:buttoncolumn commandname="Delete" text="Eliminar Item" />
</columns>
<FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White"
/>
<EditItemStyle BackColor="#2461BF" />
<SelectedItemStyle BackColor="#D1DDF1" Font-Bold="True"
ForeColor="#333333" />
<PagerStyle BackColor="#2461BF" ForeColor="White"
HorizontalAlign="Center" />
<AlternatingItemStyle BackColor="White" />
<ItemStyle BackColor="#EFF3FB" />
<HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White"
/>
</asp:DataGrid>
<br><br>
Total:
<asp:Label id="lblTotal" runat="server" />

</asp:Content>
<asp:Content ID="Content3" runat="server" ContentPlaceHolderID="Usuario">
<asp:Label ID="Label1" runat="server" Font-Bold="True" Font-
Names="Tahoma" Font-Size="9pt"
ForeColor="White" Text="Usuario: "
BackColor="Transparent"></asp:Label><asp:Label ID="lblUsuario"
runat="server" Font-Bold="True" Font-Names="tahoma" Font-Size="9pt"
ForeColor="White" Text="Invitado"
BackColor="Transparent"></asp:Label>
</asp:Content>

81
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

3.17.3. Código VB

Imports Negocio
Imports System.Data
Imports System.Web.Mail
Partial Class comprar
Inherits System.Web.UI.Page
Dim objDT As System.Data.DataTable
Dim objDR As System.Data.DataRow
Dim objProducto As New Negocio.Producto
Dim DS As DataSet
Protected Sub Page_Load(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.Load
If Not IsPostBack Then
makeCart()
End If
End Sub

Public Function makeCart() As Object


objDT = New System.Data.DataTable("Cart")
objDT.Columns.Add("AGREGADO NRO", GetType(Integer))
objDT.Columns("AGREGADO NRO").AutoIncrement = True
objDT.Columns("AGREGADO NRO").AutoIncrementSeed = 1

objDT.Columns.Add("CANTIDAD", GetType(Integer))
objDT.Columns.Add("PRODUCTO", GetType(String))
objDT.Columns.Add("PRECIO", GetType(Decimal))

Session("Cart") = objDT
Return objDT
End Function

Public Function GetItemTotal() As Decimal


Dim intCounter As Integer
Dim decRunningTotal As Decimal

For intCounter = 0 To objDT.Rows.Count - 1


objDR = objDT.Rows(intCounter)
decRunningTotal += (objDR("PRECIO") * objDR("CANTIDAD"))
Next

Return decRunningTotal
End Function

Public Sub Delete_Item(ByVal s As Object, ByVal e As


DataGridCommandEventArgs)
objDT = Session("Cart")
objDT.Rows(e.Item.ItemIndex).Delete()
Session("Cart") = objDT

dg.DataSource = objDT
dg.DataBind()

82
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

lblTotal.Text = "$" & GetItemTotal()


End Sub

Protected Sub AddToCart(ByVal sender As Object, ByVal e As


System.EventArgs) Handles btnAdd.Click
objDT = Session("Cart")
Dim Product = ddlProducts.SelectedItem.Text
Dim blnMatch As Boolean = False

For Each Me.objDR In objDT.Rows


If objDR("PRODUCTO") = Product Then
objDR("CANTIDAD") += txtQuantity.Text
blnMatch = True
Exit For
End If
Next

If Not blnMatch Then


objDR = objDT.NewRow
objDR("CANTIDAD") = txtQuantity.Text
objDR("PRODUCTO") = ddlProducts.SelectedItem.Text
objDR("PRECIO") =
Decimal.Parse(ddlProducts.SelectedItem.Value)
objDT.Rows.Add(objDR)
End If
Session("Cart") = objDT

dg.DataSource = objDT
dg.DataBind()

lblTotal.Text = "$" & GetItemTotal()


End Sub

Protected Sub Page_LoadComplete(ByVal sender As Object, ByVal e As


System.EventArgs) Handles Me.LoadComplete
DS = objProducto.ListarProductos
Me.ddlProducts.DataSource = DS.Tables(0)
Me.ddlProducts.DataValueField =
DS.Tables(0).Columns(1).ColumnName.ToString
Me.ddlProducts.DataTextField =
DS.Tables(0).Columns(0).ColumnName.ToString
Me.ddlProducts.DataBind()
End Sub
Protected Sub btnComprar_Click(ByVal sender As Object, ByVal e As
System.EventArgs) Handles btnComprar.Click
objDT = Session("Cart")
Dim correo As New System.Net.Mail.MailMessage
correo.From = New
System.Net.Mail.MailAddress("stetic_center_web@yopmail.com")
correo.To.Add("stetic_center_web@yopmail.com")
correo.Subject = "SteticCenter - Orden de Compra"
Dim counter As Integer
For counter = 0 To objDT.Rows.Count - 1

83
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

correo.Body += "Total a Pagar: <br>"


correo.Body += lblTotal.Text + "<br>"
correo.IsBodyHtml = True
correo.Priority = System.Net.Mail.MailPriority.Normal

correo.IsBodyHtml = True
correo.Priority = System.Net.Mail.MailPriority.Normal
Next

Dim smtp As New System.Net.Mail.SmtpClient


smtp.Host = "smtp.yopmail.net"
Try
smtp.Send(correo)
lblError.Text = "Pedido Enviado Satisfactoriamente"
Catch ex As Exception
lblError.Text = "ERROR: " & ex.Message
End Try
End Sub
End Class

3.18. producto.aspx
3.18.1. Captura de Pantalla

84
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

3.18.2. Código HTML

<%@ Page Language="VB" MasterPageFile="~/Master


Page/MPSteticCenter.master" AutoEventWireup="false"
CodeFile="Productos.aspx.vb" Inherits="Productos" %>

<asp:Content ID="Content1" runat="server" ContentPlaceHolderID="Ruta">


<asp:HyperLink ID="lnkInicio" runat="server"
NavigateUrl="~/Index.aspx">Inicio</asp:HyperLink>
-
<asp:HyperLink ID="lnkProductos"
runat="server">Productos</asp:HyperLink>
-
</asp:Content>

<asp:Content ID="Content2" runat="server"


ContentPlaceHolderID="ContenidoCentral">
<asp:Label ID="Label2" runat="server" Text="Productos Disponibles:"
Font-Bold="True" Font-Size="Medium"
ForeColor="#9933FF"></asp:Label>
<br />
<br />
<asp:GridView ID="GridView1" runat="server" CellPadding="4"
ForeColor="#333333"
GridLines="None" Height="209px" Width="392px">
<RowStyle BackColor="#EFF3FB" />
<FooterStyle BackColor="#507CD1" Font-Bold="True"
ForeColor="White" />
<PagerStyle BackColor="#2461BF" ForeColor="White"
HorizontalAlign="Center" />
<SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True"
ForeColor="#333333" />
<HeaderStyle BackColor="#507CD1" Font-Bold="True"
ForeColor="White" />
<EditRowStyle BackColor="#2461BF" />
<AlternatingRowStyle BackColor="White" />
</asp:GridView>

</asp:Content>
<asp:Content ID="Content3" runat="server" ContentPlaceHolderID="Usuario">
<asp:Label ID="Label1" runat="server" Font-Bold="True" Font-
Names="Tahoma" Font-Size="9pt"
ForeColor="White" Text="Usuario: "
BackColor="Transparent"></asp:Label><asp:Label ID="lblUsuario"
runat="server" Font-Bold="True" Font-Names="tahoma" Font-Size="9pt"
ForeColor="White" Text="Invitado"
BackColor="Transparent"></asp:Label>
</asp:Content>

3.18.3. Código VB

Imports Negocio

85
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

Imports System.Data
Partial Class Productos
Inherits System.Web.UI.Page
Dim objProducto As New Negocio.Producto
Dim DS As DataSet
Protected Sub Page_Load(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.Load
DS = objProducto.ListarProductosCompletos()
Me.GridView1.DataSource = DS.Tables(0)
Me.GridView1.DataBind()
End Sub
End Class

3.19. bitacora.aspx
3.19.1. Captura de Pantalla

3.19.2. Código HTML

86
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

<%@ Page Language="VB" MasterPageFile="~/Master


Page/MPSteticCenter.master" AutoEventWireup="false"
CodeFile="bitacora.aspx.vb" Inherits="bitacora" %>

<asp:Content ID="Content1" runat="server" ContentPlaceHolderID="Ruta">


<asp:HyperLink ID="lnkInicio" runat="server"
NavigateUrl="~/Index.aspx">Inicio</asp:HyperLink>
-
<asp:HyperLink ID="lnkBitacora"
runat="server">Bitácora</asp:HyperLink>
</asp:Content>

<asp:Content ID="Content2" runat="server"


ContentPlaceHolderID="ContenidoCentral">
<br />
<asp:Label ID="Label2" runat="server" Text="Seleccione El Tipo de
Riesgo que Desea Ver: "></asp:Label>
<br />
<br />
<asp:DropDownList ID="ddrBitacora" runat="server" AutoPostBack="True">
<asp:ListItem Value="1">Alto</asp:ListItem>
<asp:ListItem Value="2">Medio</asp:ListItem>
<asp:ListItem Value="3">Bajo</asp:ListItem>
</asp:DropDownList>
<br />
<br />
<asp:Label ID="lblBitacora" runat="server" Text=""></asp:Label>
<br />
<br />
<asp:GridView ID="GVBitacora" runat="server" CellPadding="4"
ForeColor="#333333" GridLines="None">
<RowStyle BackColor="#EFF3FB" />
<FooterStyle BackColor="#507CD1" Font-Bold="True"
ForeColor="White" />
<PagerStyle BackColor="#2461BF" ForeColor="White"
HorizontalAlign="Center" />
<SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True"
ForeColor="#333333" />
<HeaderStyle BackColor="#507CD1" Font-Bold="True"
ForeColor="White" />
<EditRowStyle BackColor="#2461BF" />
<AlternatingRowStyle BackColor="White" />
</asp:GridView>
</asp:Content>
<asp:Content ID="Content3" runat="server" ContentPlaceHolderID="Usuario">
<asp:Label ID="Label1" runat="server" Font-Bold="True" Font-
Names="Tahoma" Font-Size="9pt"
ForeColor="White" Text="Usuario: "
BackColor="Transparent"></asp:Label><asp:Label ID="lblUsuario"
runat="server" Font-Bold="True" Font-Names="tahoma" Font-Size="9pt"
ForeColor="White" Text="Invitado"
BackColor="Transparent"></asp:Label>
</asp:Content>

87
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

3.19.3. Código VB

Imports Negocio
Imports System.Data
Partial Class bitacora
Inherits System.Web.UI.Page
Dim objBitacora As New Negocio.Bitacora
Dim DS As DataSet
Dim DescricionSel As String
Protected Sub ddrBitacora_SelectedIndexChanged(ByVal sender As
Object, ByVal e As System.EventArgs) Handles
ddrBitacora.SelectedIndexChanged
DescricionSel = ddrBitacora.SelectedValue
lblBitacora.Text = "Tipo de Riego: " & DescricionSel
DS = objBitacora.FiltrarBitacora(DescricionSel)
Me.GVBitacora.DataSource = DS.Tables(0)
Me.GVBitacora.DataBind()
End Sub
End Class

3.20. novedades.aspx
3.20.1. Captura de Pantalla

88
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

3.20.2. Código HTML

<%@ Page Language="VB" MasterPageFile="~/Master


Page/MPSteticCenter.master" AutoEventWireup="false"
CodeFile="novedades.aspx.vb" Inherits="Actividades" %>

<asp:Content ID="Content1" runat="server" ContentPlaceHolderID="Ruta">


<asp:HyperLink ID="lnkInicio" runat="server"
NavigateUrl="~/Index.aspx">Inicio</asp:HyperLink>
-
<asp:HyperLink ID="lnkActividades"
runat="server">Actividades</asp:HyperLink>
</asp:Content>
<asp:Content ID="Content2" runat="server"
ContentPlaceHolderID="ContenidoCentral">
<br />
<asp:Image ID="Image3" runat="server"
ImageUrl="~/Imagenes/Noticias.jpg" /><br />
<br />
<asp:Xml ID="ActividadesXML" runat ="server" DocumentSource
="Actividades.xml" TransformSource ="Actividades.xslt" />
<br />
<br />
</asp:Content>
<asp:Content ID="Content3" runat="server" ContentPlaceHolderID="Usuario">
<asp:Label ID="Label1" runat="server" Font-Bold="True" Font-
Names="Tahoma" Font-Size="9pt"
ForeColor="White" Text="Usuario: "
BackColor="Transparent"></asp:Label><asp:Label ID="lblUsuario"
runat="server" Font-Bold="True" Font-Names="tahoma" Font-Size="9pt"
ForeColor="White" Text="Invitado"
BackColor="Transparent"></asp:Label>
</asp:Content>

3.20.3. Código VB

Imports Negocio.Novedades
Imports System.Xml
Imports System.Xml.Xsl
Partial Class Actividades

Inherits System.Web.UI.Page
Dim objNovedades As New Negocio.Novedades
Protected Sub Page_Load(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.Load

'Controlo que haya una sesión iniciada, si no es así redirecciono


a Login.aspx
If CType(Session.Item("usuario"), String) = "Invitado" Then
Response.Redirect("Login.aspx")
Else

89
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

'Controlo que el usuario tenga permiso para ejecutar esta


página
Dim objPatente As New Negocio.Patente

objPatente.BuscarPatentesUsuario(CType(Session.Item("id_usuario"),
String))

'Creo una bandera para controlar si existe la patente para


utilizar esta página
'False = no encontró, True = encontró
Dim bandera As Boolean
Dim objFila As Data.DataRow
Dim i As Integer

bandera = False

For i = 0 To objPatente.TablaPatentes.Rows.Count - 1
objFila = objPatente.TablaPatentes.Rows(i)
If objFila.Item("descripcion") = "Novedades" Then
bandera = True
End If
Next

'Controlo el resultado de la bandera, si es False


redirecciono a index.aspx
If bandera = False Then
Response.Redirect("Index.aspx")
End If
objPatente = Nothing
End If

'Coloco el nombre del usuario en el label cuando hizo login


lblUsuario.Text = CType(Session.Item("usuario"), String)
End Sub
End Class

3.21. actividades.xml
3.21.1. Código XML

<?xml version="1.0" encoding="utf-8" ?>


<ACTIVIDADES>
<ACTIVIDAD IDACTIVIDAD="1">
<LUGAR>Lomas de Zamora</LUGAR>
<PRECIO>10</PRECIO>
<INICIO>2010-09-16T10:00:00</INICIO>
<CIERRE>2010-09-18T13:00:00</CIERRE>
<EMAIL>sentirsebien@hotmail.com</EMAIL>
<DESCRIPCION>Charla sobre la salud y los cambios
climáticos</DESCRIPCION>
</ACTIVIDAD>

90
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

<ACTIVIDAD IDACTIVIDAD="2">
<LUGAR>Avellaneda</LUGAR>
<PRECIO>14</PRECIO>
<INICIO>2010-09-16T16:00:00</INICIO>
<CIERRE>2010-09-18T20:00:00</CIERRE>
<EMAIL>club11_octubre@hotmail.com</EMAIL>
<DESCRIPCION>Charla sobre la Salud y Los
Deportes</DESCRIPCION>
</ACTIVIDAD>
<ACTIVIDAD IDACTIVIDAD="3">
<LUGAR>Paseo Alcorta Loc 13</LUGAR>
<PRECIO>12</PRECIO>
<INICIO>2010-09-16T16:00:00</INICIO>
<CIERRE>2010-09-18T18:30:00</CIERRE>
<EMAIL>paseo_alcorta_loc13@pa.com</EMAIL>
<DESCRIPCION>La Vida Moderna</DESCRIPCION>
</ACTIVIDAD>
</ACTIVIDADES>

3.22. actividades.xslt
3.22.1. Código XSLT

<?xml version="1.0" encoding="utf-8"?>


<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-
prefixes="msxsl"
>
<xsl:output method="xml" indent="yes"/>

<xsl:template match="/">
<table border="2" cellpadding="5">
<thead>
<th>Lugar de asistencia</th>
<th>Precio por persona</th>
<th>Inicio de las actividades</th>
<th>Cierre de las actividades</th>
<th>Suscripción: Envíe un email a la siguiente
dirección</th>
<th>Descripcion del evento</th>
</thead>
<xsl:for-each select="ACTIVIDADES/ACTIVIDAD">
<tr align="center">
<td><xsl:value-of select="LUGAR"/></td>
<td><xsl:value-of select="PRECIO"/></td>
<td><xsl:value-of select="INICIO"/></td>
<td><xsl:value-of select="CIERRE"/></td>
<td><xsl:value-of select="EMAIL"/></td>
<td><xsl:value-of select="DESCRIPCION"/></td>
</tr>
</xsl:for-each>

91
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

</table>
</xsl:template>
</xsl:stylesheet>

92
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

4. Capa de Negocios
4.1. Diagrama de Clases

93
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

4.2. Clases
4.2.1. Clase Login

Public Class Login


Private idmov As String
Private idusu As String
Private fec As DateTime
Public Property IdMovimiento() As String
Get
Return idmov
End Get
Set(ByVal value As String)
idmov = value
End Set
End Property
Public Property IdUsuario() As String
Get
Return idusu
End Get
Set(ByVal value As String)
idusu = value
End Set
End Property
Public Property Fecha() As DateTime
Get
Return fec
End Get
Set(ByVal value As DateTime)
fec = value
End Set
End Property
Public Sub New()

End Sub
Public Sub New(ByVal IdMovimiento As String, ByVal IdUsuario As
String, ByVal Fecha As DateTime)
Me.IdMovimiento = IdMovimiento
Me.IdUsuario = IdUsuario
Me.Fecha = Fecha
End Sub
Public Sub RegistrarLogin(ByVal IdUsuario As String)
Dim objcomando As New BBDD.Comando
Dim strSQL As String
fec = Now()
strSQL = "insert into login(idusuario,fecha) values ('" &
IdUsuario & "', getdate())"
objcomando.EjecutarSentencia(strSQL)
objcomando = Nothing
End Sub
End Class

94
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

4.2.2. Clase Backup

Public Class Backup


Private m_strNombre As String
Private m_strDestino As String
Public Property Nombre() As String
Get
Return m_strNombre
End Get
Set(ByVal value As String)
m_strNombre = value
End Set
End Property
Public Property Destino() As String
Get
Return m_strDestino
End Get
Set(ByVal value As String)
m_strDestino = value
End Set
End Property

Public Function Generar_Backup() As Boolean


If m_strDestino <> "" Then
Dim objComando As New BBDD.Comando
Try
Dim strSQL As String
Dim fecha As String
fecha = Now().ToString
fecha = fecha.Replace(":", ".")
fecha = fecha.Replace("/", "-")
strSQL = "BACKUP DATABASE SteticCenter TO DISK ='" &
m_strDestino & "" & m_strNombre & "_" & fecha & ".BAK' WITH NOFORMAT,
NOINIT, NAME='" & m_strDestino & "" & m_strNombre & "_" & fecha & "',
SKIP, NOREWIND, NOUNLOAD, STATS = 10"
objComando.EjecutarSentencia(strSQL)
Generar_Backup = True
Catch ex As Exception
Generar_Backup = False
End Try
objComando = Nothing
Else
Generar_Backup = False
End If
End Function
End Class

4.2.3. Clase Restore

Public Class Restore


Private m_strOrigen As String
Public Property Origen() As String

95
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

Get
Return m_strOrigen
End Get
Set(ByVal value As String)
m_strOrigen = value
End Set
End Property
Public Sub New()

End Sub
Public Sub New(ByVal Origen As String)
Me.Origen = Origen
End Sub
Public Function Generar_Restore() As Boolean
If m_strOrigen <> "" Then
Try
Dim objComando As New BBDD.ConexionMaster
Dim strSQL As String
strSQL = "RESTORE DATABASE SteticCenter FROM DISK ='" &
m_strOrigen & "' WITH FILE = 1, REPLACE"
objComando.EjecutarSentencia(strSQL)
Generar_Restore = True
objComando = Nothing
Catch ex As Exception
Generar_Restore = False
End Try
Else
Generar_Restore = False
End If
End Function
End Class

4.2.4. Clase Bitácora

Public Class Bitacora


Dim idbit As Integer
Dim descrip As String
Dim tip As Integer
Dim fec As DateTime
Dim idusu As Integer

Public Property IdBitacora() As Integer


Get
Return idbit
End Get
Set(ByVal value As Integer)
idbit = value
End Set
End Property
Public Property Descripcion() As String
Get
Return descrip

96
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

End Get
Set(ByVal value As String)
descrip = value
End Set
End Property
Public Property Tipo() As Integer
Get
Return tip
End Get
Set(ByVal value As Integer)
tip = value
End Set
End Property
Public Property Fecha() As DateTime
Get
Return fec
End Get
Set(ByVal value As DateTime)
fec = value
End Set
End Property
Public Property IdUsuario() As Integer
Get
Return idusu
End Get
Set(ByVal value As Integer)
idusu = value
End Set
End Property
Public Sub New()

End Sub
Public Sub RegistrarBitacora(ByVal Descripcion As String, ByVal Tipo
As Integer, ByVal IdUsuario As String)
Dim objcomando As New BBDD.Comando
Dim strSQL As String
fec = Now()
strSQL = "INSERT INTO BITACORA (DESCRIPCION, TIPO, IDUSUARIO,
FECHA) VALUES ('" & Descripcion & "'," & Tipo & "," & IdUsuario & ",
getdate())"
objcomando.EjecutarSentencia(strSQL)
objcomando = Nothing
End Sub
Public Function FiltrarBitacora(ByVal Tipo As String) As DataSet
Dim objComando As New BBDD.Comando
Dim strSQL As String
Dim m_ds As DataSet
strSQL = "Select IDBITACORA as [Registro Nro.], DESCRIPCION as
Descripción, FECHA as [Fecha de Registro], USUARIO.USUARIO as Usuario
from Bitacora, usuario where Usuario.IDusuario = Bitacora.IDUSUARIO and
BITACORA.TIPO =" & Tipo
m_ds = objComando.EjecutarConsultaListas(strSQL)
Return m_ds

97
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

objComando = Nothing
End Function
End Class

4.2.5. Clase Encriptacion

Imports System.Text
Imports System.Security.Cryptography

Public Class Encriptacion

Private m_strTexto As String


Private m_strTextoEncrip As String

Public Property Texto() As String


Get
Return m_strTexto
End Get
Set(ByVal value As String)
m_strTexto = value
End Set
End Property
Public Property TextoEncrip() As String
Get
Return m_strTextoEncrip
End Get
Set(ByVal value As String)
m_strTextoEncrip = value
End Set
End Property
Public Sub New()

End Sub
Public Sub New(ByVal Texto As String, ByVal TextoEncrip As String)
Me.Texto = Texto
Me.TextoEncrip = TextoEncrip
End Sub
Public Sub Encriptar()
Dim objMD5 As New localhost.EncriptarMD5
m_strTextoEncrip = objMD5.Calcular(m_strTexto)
End Sub
End Class

4.2.6. Clase DigitoV

Imports BBDD
Imports System.Windows.Forms
Public Class DigitoV
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMiliseconds As
Long)

98
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

Dim clsAD As New Comando


Dim clsBI As New Bitacora
Dim clsusu As New Usuario
Public Function CalcularDVV(ByVal tabla As String) As Long
Dim valor As Long = clsAD.EjecutarConsultaListas("select sum(dv)
from " & tabla).Tables(0).Rows(0)(0)
clsAD.EjecutarSentencia("update digitoverificadores set dv=" &
valor & "where tabla=" & tabla)
End Function
Public Function CalcularDVH(ByVal cadena As String) As Long
Dim valor As Long = 0
For i As Integer = 0 To cadena.Length - 1
valor += (Asc(cadena(i)) * (i + 1))
Next
Return valor \ 4
End Function

Public Function verificarDV(ByVal ParamArray tablas() As String) As


String

Dim cadena As String = ""


Dim erroresDV As String = ""
Dim TablaConErrores As String = ""
Dim dvNuevo, dvActual, totalVerticalActual, totalVerticalNuevo As
Long
Dim DT As DataTable

'Recorro el Array con las Tablas con DV a chequear


For Each TBL In tablas
totalVerticalNuevo = 0
totalVerticalActual = clsAD.EjecutarConsultaListas("select DV
from DV where tabla='" & TBL & "'").Tables(0).Rows(0)(0)
Dim totErrorTabla As Integer = 0
'obtengo la tabla de la BD
DT = clsAD.EjecutarConsultaListas("select * from " &
TBL).Tables(0)
'Recorre la TABLA registro a registro
For I As Integer = 0 To DT.Rows.Count - 1
dvActual = 0
dvNuevo = 0
cadena = ""
Dim J As Integer
'Recorro las Columna una una y Armo un string
For J = 0 To DT.Columns.Count - 2
cadena += Trim(DT.Rows(I)(J).ToString)
Next
'Calculo el Nuevo DVH
dvNuevo = CalcularDVH(cadena)
'Obtengo el DVH Actual
dvActual = CLng(Trim(DT.Rows(I)(J)))
' MessageBox.Show("Actual:" & dvActual & " - Nuevo:" &
dvNuevo)
If (dvActual <> dvNuevo) Then

99
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

'Totalizo los Errores por Tabla


totErrorTabla += 1
End If
totalVerticalNuevo += dvActual
Next
DT.Clear()
If totErrorTabla > 0 And TablaConErrores <> TBL Then
'Armo el String a Devolver
erroresDV += TBL & ":" & totErrorTabla & vbCrLf
With clsBI
.IdUsuario = 1
.Descripcion = "Error DVH:" + TBL
.Tipo = 1
.Fecha = Date.Now.Date.ToString
.RegistrarBitacora(.Descripcion, .Tipo, .IdUsuario)
TablaConErrores = TBL
Sleep(1000)
End With
End If
'controlo dvv e inserto en bitacora si hay errores
If totalVerticalActual <> totalVerticalNuevo Then
With clsBI
.IdUsuario = 1
.Descripcion = "Error DVV:" + TBL
.Tipo = 1
.Fecha = Date.Now.Date.ToString ') + " " +
.RegistrarBitacora(.Descripcion, .Tipo, .IdUsuario)
End With
totalVerticalActual = 0
totalVerticalNuevo = 0
End If
Next
Return erroresDV

End Function
Public Function RecalcularDV(ByVal ParamArray tablas() As String) As
Boolean
Dim i, j As Integer
Dim cadena As String = ""
Dim strquery As String = ""
Dim total As Long
Dim dvNuevo As Long
Dim dvActual As Long
Dim DT As DataTable
Dim ArregloDV As Boolean = False
For Each TBL In tablas
DT = clsAD.EjecutarConsultaListas("select * from
" & TBL).Tables(0)
total = 0
If DT.Rows.Count > 0 Then
For i = 0 To DT.Rows.Count - 1
dvNuevo = 0
cadena = ""

100
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

'recorro columnas del registro


For j = 0 To DT.Columns.Count - 2
cadena += CStr(Trim(DT.Rows(i)(j).ToString))
Next
'obtengo DV Nuevo Calculado
dvNuevo = CalcularDVH(cadena)
'obtengo DV Actual (Vigente BD)
dvActual = DT.Rows(i)(j)
If dvNuevo <> dvActual Then
'conforma a si hubo errores Armo Consulta de
Actualizacion
Select Case TBL
Case "PRODUCTO"
strquery = "update " & TBL & " set dv=" &
dvNuevo & " where idproducto=" & DT.Rows(i).Item(0)
'clsAD.SqlActualizar(strquery)
ArregloDV = True
Case "PATENTE"
strquery = "update " & TBL & " set dv=" &
dvNuevo & " where idpatente=" & DT.Rows(i).Item(0)
'clsAD.SqlActualizar(strquery)
ArregloDV = True
Case "USUARIO"
strquery = "update " & TBL & " set dv=" &
dvNuevo & " where idusuario=" & DT.Rows(i).Item(0)
'clsAD.SqlActualizar(strquery)
ArregloDV = True
Case "FAMILIA"
strquery = "update " & TBL & " set dv=" &
dvNuevo & " where idfamilia=" & DT.Rows(i).Item(0)
'clsAD.SqlActualizar(strquery)
ArregloDV = True
End Select
'Actualizo Rgistro en BD
clsAD.EjecutarSentencia(strquery)
'totalizo DVH de cada registro de la tabla
evaluada
total += CalcularDVH(cadena)
strquery = ""
End If
Next
If ArregloDV Then
With clsBI
.Descripcion = "Reparo DV:" & TBL
.Tipo = 11
.Fecha = Date.Now.Date.ToString
.RegistrarBitacora(.Descripcion, .Tipo, 3)
Sleep(1000)
End With
End If
End If
DT.Clear()
DT.Dispose()

101
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

Next
End Function
End Class

4.2.7. Clase Usuario

Imports System.Data.DataRow
Imports System.Data.DataView
Imports System.Data
Public Class Usuario
Private idusu As String
Private nom As String
Private usr As String
Private pass As String
Private dir As String
Private loc As String
Private codpos As Integer
Private mail As String
Private tel As String
Private cel As String
Private visit As Boolean
Private clsComando As BBDD.Comando

Public Property IdUsuario() As String


Get
Return idusu
End Get
Set(ByVal value As String)
idusu = value
End Set
End Property
Public Property Nombre() As String
Get
Return nom
End Get
Set(ByVal value As String)
nom = value
End Set
End Property
Public Property Usuario() As String
Get
Return usr
End Get
Set(ByVal value As String)
usr = value
End Set
End Property
Public Property Clave() As String
Get
Return pass
End Get
Set(ByVal value As String)
pass = value

102
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

End Set
End Property
Public Property Direccion() As String
Get
Return dir
End Get
Set(ByVal value As String)
dir = value
End Set
End Property
Public Property Localidad() As String
Get
Return loc
End Get
Set(ByVal value As String)
loc = value
End Set
End Property
Public Property Cod_Post() As String
Get
Return codpos
End Get
Set(ByVal value As String)
codpos = value
End Set
End Property
Public Property Telefono() As String
Get
Return tel
End Get
Set(ByVal value As String)
tel = value
End Set
End Property
Public Property Celular() As String
Get
Return cel
End Get
Set(ByVal value As String)
cel = value
End Set
End Property
Public Property Email() As String
Get
Return mail
End Get
Set(ByVal value As String)
mail = value
End Set
End Property
Public Property EsCliente() As Boolean
Get
Return visit

103
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

End Get
Set(ByVal value As Boolean)
visit = value
End Set
End Property
Public Sub New()
clsComando = New BBDD.Comando
End Sub
Public Function BuscarUsuario(ByVal idusu As String) As DataSet
Dim objComando As New BBDD.Comando
Dim strSQL As String
Dim m_ds As DataSet
strSQL = "SELECT * from USUARIO where IDUSUARIO='" + idusu + "'"
m_ds = objComando.EjecutarConsultaListas(strSQL)
Return m_ds
objComando = Nothing
End Function
'>>>>>Registrar Usuario<<<<<<<
Public Function VerificarUsuario() As Boolean
Dim strSQL As String
Dim objComando As BBDD.Comando
objComando = New BBDD.Comando

strSQL = "SELECT * from USUARIO where USUARIO='" + usr + "'"


objComando.EjecutarConsulta(strSQL)

If objComando.Tabla.Rows.Count.ToString <> 0 Then


VerificarUsuario = True
Dim objFila As DataRow
objFila = objComando.Tabla.Rows.Item(0)
idusu = objFila.Item("IDUSUARIO")
Else
VerificarUsuario = False
End If
objComando = Nothing
End Function
Public Function AutenticarUsuario() As Boolean
Dim strSQL As String
Dim objComando As BBDD.Comando
objComando = New BBDD.Comando

Dim objEncriptacion As New Negocio.Encriptacion


objEncriptacion.Texto = pass
objEncriptacion.Encriptar()
pass = objEncriptacion.TextoEncrip
Debug.Print(pass)

strSQL = "Select * from USUARIO where USUARIO = '" + usr + "' and
clave = '" + pass + "'"
objComando.EjecutarConsulta(strSQL)

If objComando.Tabla.Rows.Count.ToString <> 0 Then


AutenticarUsuario = True

104
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

Else
AutenticarUsuario = False
objEncriptacion = Nothing
End If

objComando = Nothing

End Function
Public Function CrearID() As Integer
Dim strSQL As String
Dim objComando As BBDD.Comando
objComando = New BBDD.Comando
strSQL = "SELECT MAX(IDUSUARIO)+1 as IDUSUARIO FROM dbo.USUARIO"
objComando.EjecutarConsulta(strSQL)
If objComando.Tabla.Rows.Count.ToString <> 0 Then
Dim objFila As DataRow
objFila = objComando.Tabla.Rows.Item(0)
idusu = objFila.Item("IDUSUARIO")
Else
idusu = 1
End If
objComando = Nothing
End Function
Public Sub GuardarUsuario()
Dim strSQL As String
Dim objComando As BBDD.Comando
objComando = New BBDD.Comando

Dim objencriptacion As New Negocio.Encriptacion

objencriptacion.Texto = pass
objencriptacion.Encriptar()
pass = objencriptacion.TextoEncrip
Dim DS As DataSet
Dim objDigitoV As New Negocio.DigitoV
Dim esclie As Integer
esclie = CInt(visit)
Dim cadReg As String = idusu & nom & usr & pass & dir & loc &
codpos & tel & cel & mail & esclie
strSQL = "INSERT INTO USUARIO
(IDUSUARIO,NOMBRE,USUARIO,CLAVE,DIRECCION,LOCALIDAD,COD_POST,TELEFONO,CEL
ULAR,EMAIL,ESCLIENTE,DV) Values ('" & idusu & "','" & nom & "','" & usr &
"','" & pass & "','" & dir & "','" & loc & "'," & codpos & ",'" & tel &
"','" & cel & "','" & mail & "'," & esclie & ",'" &
objDigitoV.CalcularDVH(cadReg) & "')"
DS = objComando.EjecutarConsultaListas(strSQL)

'Calculo DVV se realiza por medio de TRIGGERS


objComando = Nothing
objencriptacion = Nothing
objDigitoV = Nothing
End Sub
Public Sub GuardarSocio()

105
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

Dim strSQL As String


Dim objComando As BBDD.Comando
objComando = New BBDD.Comando

Dim objencriptacion As New Negocio.Encriptacion

objencriptacion.Texto = pass
objencriptacion.Encriptar()
pass = objencriptacion.TextoEncrip
Dim DS As DataSet
Dim objDigitoV As New Negocio.DigitoV
Dim esclie As Integer
esclie = 1
Dim cadReg As String = idusu & nom & usr & pass & dir & loc &
codpos & tel & cel & mail & esclie
strSQL = "INSERT INTO USUARIO
(IDUSUARIO,NOMBRE,USUARIO,CLAVE,DIRECCION,LOCALIDAD,COD_POST,TELEFONO,CEL
ULAR,EMAIL,ESCLIENTE,DV) values ('" & idusu & "','" & nom & "','" & usr &
"','" & pass & "','" & dir & "','" & loc & "'," & codpos & ",'" & tel &
"','" & cel & "','" & mail & "'," & esclie & ",'" &
objDigitoV.CalcularDVH(cadReg) & "')"
DS = objComando.EjecutarConsultaListas(strSQL)
'Calculo DVV se realiza por medio de TRIGGERS
objComando = Nothing
objencriptacion = Nothing
objDigitoV = Nothing
End Sub
Public Sub GuardarUsuarioFamilia(ByVal idfamilia As String)
Dim strSQL As String
Dim objcomando As New BBDD.Comando
strSQL = "INSERT INTO dbo.USUARIO_FAMILIA (IDUSUARIO,IDFAMILIA)
values ('" & idusu & "','" & idfamilia & "')"
objcomando.EjecutarSentencia(strSQL)
objcomando = Nothing
End Sub
Public Sub GuardarUsuarioPatente(ByVal idpatente As String)
Dim strSQL As String
Dim objcomando As New BBDD.Comando
strSQL = "INSERT INTO dbo.USUARIO_PATENTE (IDUSUARIO,IDPATENTE)
values ('" & idusu & "','" & idpatente & "')"
objcomando.EjecutarSentencia(strSQL)
objcomando = Nothing
End Sub
'>>>>>>>>Eliminar Usuario<<<<<<<<<<<
Public Sub BorrarUsuario(ByVal idusuario As String)
Dim objcomando As New BBDD.Comando
Dim strSQL As String
strSQL = "DELETE FROM usuario WHERE usuario.idusuario='" +
idusuario + "'"
objcomando.EjecutarSentencia(strSQL)
objcomando = Nothing
End Sub
Public Sub BorrarUsuarioPatente()

106
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

Dim objcomando As New BBDD.Comando


Dim strSQL As String
strSQL = "DELETE from dbo.USUARIO_PATENTE where IDUSUARIO='" +
idusu + "'"
objcomando.EjecutarSentencia(strSQL)
objcomando = Nothing
End Sub
Public Function CargarListaUsuario() As DataSet
Dim objComando As New BBDD.Comando
Dim strSQL As String
Dim m_ds As DataSet
strSQL = "select us.IDUSUARIO , us.USUARIO from USUARIO us,
USUARIO_FAMILIA uf,FAMILIA fam where us.IDUSUARIO = uf.IDUSUARIO and
uf.IDFAMILIA = fam.IDFAMILIA and fam.DESCRIPCION != 'Administrador'"
m_ds = objComando.EjecutarConsultaListas(strSQL)
Return m_ds
objComando = Nothing
End Function
Public Function CargarListaUsuarioMod() As DataSet
Dim objComando As New BBDD.Comando
Dim strSQL As String
Dim m_ds As DataSet
strSQL = "select us.IDUSUARIO , us.USUARIO from USUARIO us,
USUARIO_FAMILIA uf,FAMILIA fam where us.IDUSUARIO = uf.IDUSUARIO and
uf.IDFAMILIA = fam.IDFAMILIA"
m_ds = objComando.EjecutarConsultaListas(strSQL)
Return m_ds
objComando = Nothing
End Function
Public Sub CambiarContraseña(ByVal clave As String, ByVal idusuario
As String)
Dim objcomando As New BBDD.Comando
Dim strSQL As String
strSQL = "UPDATE USUARIO SET CLAVE='" & clave & "' where
IDUSUARIO='" & idusuario & "'"
objcomando.EjecutarSentencia(strSQL)
objcomando = Nothing
End Sub
Public Sub ModificarUsuarioFamilia(ByVal idfamilia As String)
Dim objcomando As New BBDD.Comando
Dim strSQL As String
strSQL = "UPDATE dbo.USUARIO_FAMILIA SET IDFAMILIA='" & idfamilia
& "' WHERE IDUSUARIO='" & idusu & "'"
objcomando.EjecutarSentencia(strSQL)
objcomando = Nothing
End Sub
Public Sub ModificarUsuario()
Dim strSQL As String
Dim objComando As BBDD.Comando
objComando = New BBDD.Comando

Dim objencriptacion As New Negocio.Encriptacion

107
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

objencriptacion.Texto = pass
objencriptacion.Encriptar()
pass = objencriptacion.TextoEncrip
Dim DS As DataSet
Dim esclie As Integer
esclie = 1
strSQL = "UPDATE USUARIO SET NOMBRE='" & nom & "',USUARIO='" &
usr & "', DIRECCION='" & dir & "',LOCALIDAD='" & loc & "',COD_POST='" &
codpos & "',TELEFONO='" & tel & "',CELULAR='" & cel & "',EMAIL='" & mail
& "' where IDUSUARIO='" & idusu & "'"
DS = objComando.EjecutarConsultaListas(strSQL)

'Calculo DVV se realiza por medio de TRIGGERS


objComando = Nothing
objencriptacion = Nothing
End Sub
End Class

4.2.8. Clase Familia

Imports System.Data.DataRow
Imports System.Data.DataView
Public Class Familia
Private idfam As String
Private descrip As String
Public Property IdFamilia() As String
Get
Return idfam
End Get
Set(ByVal value As String)
idfam = value
End Set
End Property
Public Property Descripcion() As String
Get
Return descrip
End Get
Set(ByVal value As String)
descrip = value
End Set
End Property
Public Sub New()

End Sub
Public Sub New(ByVal IdFamilia As String, ByVal Descripcion As
String)
Me.IdFamilia = IdFamilia
Me.Descripcion = Descripcion
End Sub

108
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

Public Function CrearID() As Integer


Dim strSQL As String
Dim objComando As BBDD.Comando
objComando = New BBDD.Comando
strSQL = "SELECT MAX(IDFAMILIA)+1 as IDFAMILIA FROM dbo.FAMILIA"
objComando.EjecutarConsulta(strSQL)
If objComando.Tabla.Rows.Count.ToString <> 0 Then
Dim objFila As DataRow
objFila = objComando.Tabla.Rows.Item(0)
idfam = objFila.Item("IDFAMILIA")
Else
idfam = 1
End If
objComando = Nothing
End Function
Public Sub GuardarFamilia()
Dim strSQL As String
Dim objComando As BBDD.Comando
objComando = New BBDD.Comando

Dim DS As DataSet
Dim objDigitoV As New Negocio.DigitoV
Dim cadReg As String = idfam & descrip
strSQL = "INSERT INTO FAMILIA Values ('" & idfam & "','" &
descrip & "','" & objDigitoV.CalcularDVH(cadReg) & "')"
DS = objComando.EjecutarConsultaListas(strSQL)

'Calculo DVV se realiza por medio de TRIGGERS


objComando = Nothing
objDigitoV = Nothing
End Sub
Public Sub BuscarFamiliaUsuario(ByVal Usuario As String)
Dim objComando As New BBDD.Comando
Dim strSQL As String
strSQL = "Select usuario_familia.idfamilia from usuario,
usuario_familia where usuario.idusuario=usuario_familia.idusuario and
usuario.usuario ='" & Usuario & "'"
objComando.EjecutarConsulta(strSQL)
Dim objFila As DataRow
For Each objFila In objComando.Tabla.Rows
idfam = objFila.Item(0)
Next
objComando = Nothing
End Sub
Public Sub BuscarDescripcion()
Dim objComando As New BBDD.Comando
Dim strSQL As String
strSQL = "select descripcion from familia where idfamilia = '" &
idfam & "'"
objComando.EjecutarConsulta(strSQL)
Dim objFila As DataRow
For Each objFila In objComando.Tabla.Rows
descrip = objFila.Item(0)

109
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

Next
objComando = Nothing
End Sub
Public Function BuscarFamilias(ByVal idfamilia As String) As DataSet
Dim objComando As New BBDD.Comando
Dim strSQL As String
Dim m_ds As DataSet
strSQL = "select FAMILIA.DESCRIPCION from familia where IDFAMILIA
= '" & idfamilia & "'"
m_ds = objComando.EjecutarConsultaListas(strSQL)
Return m_ds
objComando = Nothing
End Function
Public Function ListarFamilias() As DataSet
Dim objComando As New BBDD.Comando
Dim strSQL As String
Dim m_ds As DataSet
strSQL = "select FAMILIA.IDFAMILIA,FAMILIA.DESCRIPCION from
familia"
m_ds = objComando.EjecutarConsultaListas(strSQL)
Return m_ds
objComando = Nothing
End Function
Public Function ListarPatentes() As DataSet
Dim objComando As New BBDD.Comando
Dim strSQL As String
Dim m_ds As DataSet
strSQL = "select FAMILIA.IDFAMILIA, FAMILIA.DESCRIPCION,
PATENTE.IDPATENTE, PATENTE.DESCRIPCION from familia, familia_patente,
patente where familia.idfamilia = familia_patente.idfamilia and
familia_patente.idpatente=patente.idpatente"
m_ds = objComando.EjecutarConsultaListas(strSQL)
Return m_ds
objComando = Nothing
End Function
Public Sub GuardarFamiliaPatente(ByVal idpatente As String)
Dim strSQL As String
Dim objcomando As New BBDD.Comando
strSQL = "INSERT INTO dbo.FAMILIA_PATENTE (IDFAMILIA,IDPATENTE)
values ('" + idfam + "','" + idpatente + "')"
objcomando.EjecutarSentencia(strSQL)
objcomando = Nothing
End Sub
Public Sub BorrarFamilia()
Dim objcomando As New BBDD.Comando
Dim strSQL As String
strSQL = "DELETE FROM dbo.FAMILIA WHERE FAMILIA.IDFAMILIA='" &
idfam & "'"
objcomando.EjecutarSentencia(strSQL)
objcomando = Nothing
End Sub
Public Sub BorrarFamiliaPatente(ByVal idfamilia As String)
Dim objcomando As New BBDD.Comando

110
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

Dim strSQL As String


strSQL = "DELETE from dbo.FAMILIA_PATENTE where IDFAMILIA='" &
idfam & "'"
objcomando.EjecutarSentencia(strSQL)
objcomando = Nothing
End Sub
Public Sub BorrarUsuarioFamilia()
Dim objcomando As New BBDD.Comando
Dim strSQL As String
strSQL = "DELETE from dbo.USUARIO_FAMILIA where IDFAMILIA='" &
idfam & "'"
objcomando.EjecutarSentencia(strSQL)
objcomando = Nothing
End Sub
End Class

4.2.9. Clase Patente

Imports System.Data.DataRow
Imports System.Data.DataView
Public Class Patente
Private idpat As String
Private descrip As String
Private ref As String
Private m_tablaPatentes As System.Data.DataTable

Public Property IdPatente() As String


Get
Return idpat
End Get
Set(ByVal value As String)
idpat = value
End Set
End Property
Public Property Descripcion() As String
Get
Return descrip
End Get
Set(ByVal value As String)
descrip = value
End Set
End Property
Public Property Referencia() As String
Get
Return ref
End Get
Set(ByVal value As String)
ref = value
End Set
End Property
Public ReadOnly Property TablaPatentes() As System.Data.DataTable
Get

111
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

Return m_tablaPatentes
End Get
End Property
Public Sub New()

End Sub
Public Sub New(ByVal IdPatente As String, ByVal Descripcion As
String, ByVal Referencia As String)
Me.IdPatente = IdPatente
Me.Descripcion = Descripcion
Me.Referencia = Referencia
End Sub
Public Sub BuscarPatentesFamilia(ByVal Usuario As String)
Dim objComando As New BBDD.Comando
Dim strSQL As String
'Preparo la consulta para traer los datos de las patentes
strSQL = "select usuario_patente.idpatente, patente.descripcion,
patente.referencia from usuario, patente, usuario_patente where
usuario.idusuario = usuario_patente.idusuario and
usuario_patente.idpatente=patente.idpatente and usuario.usuario= '" &
Usuario & "'"
objComando.EjecutarConsulta(strSQL)
m_tablaPatentes = objComando.Tabla
objComando = Nothing
End Sub
Public Sub BuscarPatentesUsuario(ByVal IDUsuario As String)
Dim objComando As New BBDD.Comando
Dim strSQL As String
strSQL = "select pat.idpatente, pat.descripcion from patente pat,
familia_patente fp, usuario_familia uf where uf.idfamilia= fp.idfamilia
and fp.idpatente = pat.idpatente and uf.idusuario ='" & IDUsuario & "'"
objComando.EjecutarConsulta(strSQL)
m_tablaPatentes = objComando.Tabla
objComando = Nothing
End Sub
Public Function ListarPatentes() As DataSet
Dim objComando As New BBDD.Comando
Dim strSQL As String
Dim m_ds As DataSet
strSQL = "select DESCRIPCION, REFERENCIA from PATENTE"
m_ds = objComando.EjecutarConsultaListas(strSQL)
Return m_ds
objComando = Nothing
End Function
End Class

4.2.10. Clase Consistencia

Public Class Consistencia


Dim m_strTabla As String
Public Property Tabla() As String
Get

112
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

Return m_strTabla
End Get
Set(ByVal value As String)
m_strTabla = value
End Set
End Property
Public Function TraerDatosTabla() As System.Data.DataTable
Dim objComando As New BBDD.Comando
Dim strSQL As String

strSQL = "select * from " + "Patente"

objComando.EjecutarConsulta(strSQL)

TraerDatosTabla = objComando.Tabla

objComando = Nothing
End Function
End Class

4.2.11. Clase Novedades

Imports System.Xml
Imports System.IO
Public Class Novedades
Dim m_Archivo As String
Dim m_IDACTIVIDAD As String
Dim m_LUGAR As String
Dim m_PRECIO As String
Dim m_INICIO As String
Dim m_CIERRE As String
Dim m_EMAIL As String
Dim m_DESCRIPCION As String

Dim m_XMLR As XmlReader


Dim m_XMLW As XmlTextWriter

Public Property Actividad() As String


Get
Return m_IDACTIVIDAD
End Get
Set(ByVal value As String)
m_IDACTIVIDAD = value
End Set
End Property

Public Property Lugar() As String


Get
Return m_LUGAR
End Get
Set(ByVal value As String)
m_LUGAR = value
End Set

113
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

End Property

Public Property Precio() As String


Get
Return m_PRECIO
End Get
Set(ByVal value As String)
m_PRECIO = value
End Set
End Property

Public Property Inicio() As String


Get
Return m_INICIO
End Get
Set(ByVal value As String)
m_INICIO = value
End Set
End Property
Public Property Cierre() As String
Get
Return m_CIERRE
End Get
Set(ByVal value As String)
m_CIERRE = value
End Set
End Property
Public Property Email() As String
Get
Return m_EMAIL
End Get
Set(ByVal value As String)
m_EMAIL = value
End Set
End Property
Public Property Descripcion() As String
Get
Return m_DESCRIPCION
End Get
Set(ByVal value As String)
m_DESCRIPCION = value
End Set
End Property
End Class

114
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

5. Capa de Conexión
5.1. Diagrama de Clases

5.2. Capas
5.2.1. Capa Conexión

Imports System.Data
Imports System.Data.SqlClient
Public Class Conexion

Private Shared m_clsConexion As Conexion


Private m_CN As SqlConnection
Private m_cString As String

115
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

Private m_strUser As String


Private m_strPass As String
Private m_strDB As String
Private m_strServer As String

Public ReadOnly Property CN() As SqlConnection


Get
Return m_CN
End Get
End Property

Public ReadOnly Property cString() As String


Get
Return m_cString
End Get
End Property
Private Sub New()
m_CN = New System.Data.SqlClient.SqlConnection
m_strUser = "pedro"
m_strPass = "pedro2010"
m_strServer = System.Net.Dns.GetHostName & "\SQLExpress"
m_strDB = "SteticCenter"

End Sub

Public Shared Function Instanciar() As Conexion


If m_clsConexion Is Nothing Then
m_clsConexion = New Conexion
End If
Return m_clsConexion
End Function

Public Sub Conectar()


If m_CN.State <> ConnectionState.Open Then
m_cString = "packet size=4096;user id=" + m_strUser +
";password=" + m_strPass + ";pooling=false;Data Source=" + m_strServer +
";persist security info=False;initial catalog=" + m_strDB
m_CN.ConnectionString = m_cString
If m_CN.State = ConnectionState.Closed Then
m_CN.Open()
End If
End If
End Sub
Public Sub Desconectar()
If m_CN.State = ConnectionState.Open Then
m_CN.Close()
End If
End Sub
End Class

5.2.2. Capa ConexiónMaster

Imports System.Data

116
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

Imports System.Data.SqlClient
Public Class ConexionMaster
Dim CN As SqlConnection
Dim COM As SqlCommand
Dim DR As SqlDataReader
Dim DA As SqlDataAdapter
Dim m_strUserMaster As String
Dim m_strPassMaster As String
Dim m_strDBMaster As String
Dim m_strServerMaster As String
Public Sub New()
CN = New System.Data.SqlClient.SqlConnection
m_strUserMaster = "restore"
m_strPassMaster = "restore"
m_strServerMaster = System.Net.Dns.GetHostName & "\SQLExpress"
m_strDBMaster = "master"
End Sub
Private Sub Conectar()
CN = New SqlConnection
CN.ConnectionString = "packet size=4096;user id=" &
m_strUserMaster & ";password=" & m_strPassMaster & ";Data Source=" &
m_strServerMaster & ";persist security info=False;initial catalog=" &
m_strDBMaster
CN.Open()
End Sub
Private Sub Desconectar()
CN.Dispose()
CN = Nothing
End Sub
Public Sub EjecutarSentencia(ByVal Consulta As String)
Conectar()
COM = New SqlCommand(Consulta, CN)
COM.ExecuteNonQuery()
COM = Nothing
Desconectar()
End Sub
End Class

5.2.3. Capa Comando

Imports System.Data
Imports System.Data.SqlClient
Imports System.Xml
Imports System.IO

Public Class Comando


Dim m_cmd As SqlCommand
Dim m_da As SqlDataAdapter
Dim m_ds As DataSet
Dim dtb As DataTable
Private m_tabla As DataTable
Dim clsConexion As Conexion

117
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

Public Sub New()


clsConexion = Conexion.Instanciar
End Sub
Public ReadOnly Property Tabla() As DataTable
Get
Return m_tabla
End Get
End Property

Public Sub EjecutarConsulta(ByVal strSQL As String)


clsConexion.Conectar()
m_da = New SqlDataAdapter(strSQL, clsConexion.cString)
m_ds = New DataSet("Tabla")
m_da.Fill(m_ds, "Tabla")
m_tabla = New DataTable()
m_tabla = m_ds.Tables("Tabla")
clsConexion.Desconectar()
End Sub
Public Sub EjecutarSentencia(ByVal strSQL As String)
clsConexion.Conectar()
m_cmd = New SqlCommand
m_cmd.CommandText = strSQL
m_cmd.Connection = clsConexion.CN
m_cmd.ExecuteNonQuery()
clsConexion.Desconectar()
End Sub
Public Function EjecutarConsultaListas(ByVal strSQL As String) As
DataSet
Dim m_ds As New DataSet
Dim m_cmd As New SqlCommand
clsConexion.Conectar()
Dim m_da As New SqlDataAdapter(strSQL, clsConexion.cString)
m_da.Fill(m_ds)
m_da.Dispose()
clsConexion.Desconectar()
Return m_ds
End Function
End Class

6. Estrategias De Programación

1) ¿Está dividido en capas? Si. Tres Capas.

2) La CAPA DE ACCESO a datos se encuentra conformada por las clases conexión, comando y
conexión master. El motivo de la existencia de dos tipos de clases de conexión se debe a que
una (conexion) se utiliza para las funcionalidades básicas de toda la aplicación y la otra
(conexiónmaster) es para uso exclusivo del backup y restore de la base de datos de la
aplicación.

118
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

La clase Conexion se utiliza para instanciar las conexiones y contiene los parámetros de
conexión.

La CAPA DE NEGOCIOS se encuentra conformada por las clases backup, bitácora,


consistencia, DigitoV, Encriptación, Familia, Login, Novedades, Patente, Producto, Restore y
Usuario.

1. El backup contiene la función para la realización de la copia de seguridad de los datos


de base de datos.

2. Bitácora lleva el registro de eventos del usuario en la aplicación y contiene una función
para filtrar los resultados de salida

3. Consistencia muestra los datos internos de la tabla patente en el momento del Login.

4. DigitoV contiene las funciones para garantizar la integridad de la información


contenida en la base de datos, mediante el uso de dígitos verificadores verticales y
horizontales. Las tablas de las que se mantiene los dígitos verificadores son usuario,
familia, patente y producto

5. Encriptación invoca al webservices para encriptar texto, en nuestro caso encriptamos


en MD5 la clave del usuario del sistema.

6. Familia contiene todas las funciones necesarias para asignar, modificar, eliminar, listar
y filtrar las acciones factibles según grupos de permisos de cada usuario.

7. Login contiene las funciones para autenticar y autorizar el acceso al sistema por parte
de los usuarios.

8. Novedades contiene la información sobre eventos relacionados con el cuidado de la


salud.

9. Patente permite identificar las patentes según el usuario y la familia y realizar un


listado de las mismas.

10. Producto contiene las funciones para listar los productos existentes y listarlos para el
carrito.

11. Restore contiene la función para restaurar la copia de seguridad realizada previamente
mediante la clase backup.

12. Usuario contiene todas las funciones necesarias para asignar, modificar, eliminar, listar
y filtrar las los usuarios existentes o a crear para el uso del sistema.

A continuación, mostraremos la estrategia de programación mostrando el funcionamiento detallado


del listado de patentes

119
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

Capa Interfaz - Patente.aspx


MUESTRA UNA LISTA DE LAS PATENTES
Imports Negocio DISPONIBLES
Imports System.Data
Partial Class patente
Inherits System.Web.UI.Page
Dim objPatente As New Negocio.Patente ‘Nueva instancia clase patente
Dim DS As DataSet ‘Creacion de Dataset
Protected Sub Page_Load(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.Load
DS = objPatente.ListarPatentes()‘Se llama a la funcion ListarPatentes
y carga el resultado en el dataset creado
Me.GridView1.DataSource = DS.Tables(0) ‘se agrega el DS a
gridview
Me.GridView1.DataBind() ‘Se actualiza el gridview
End Sub
End Class

Capa Negocio – Clase Patente

Imports System.Data.DataRow ‘importa datarow y dataview


Imports System.Data.DataView
Public Class Patente
Private idpat As String ‘se crean objetos tipo string
Private descrip As String
Private ref As String
Private m_tablaPatentes As System.Data.DataTable ‘se define un
datatable
---------
Public Function ListarPatentes() As DataSet ‘funcion para listar las
Patentes como Dataset
Dim objComando As New BBDD.Comando ‘Nueva instancia clase comando
Dim strSQL As String ‘creacion string para la consulta
Dim m_ds As DataSet ‘creacion de dataset
strSQL = "select DESCRIPCION, REFERENCIA from PATENTE"
m_ds = objComando.EjecutarConsultaListas(strSQL) ‘llama a la
funcion de EjecutarConsultaListas de la clase comando y carga el resultado en el
dataset creado
Return m_ds ‘Devuelve el dataset
objComando = Nothing ‘Libera la instancia
End Function

End Class

Capa BBDD - Clase Comando

Imports System.Data ‘importa la clases necesarias para consultas SQL y XML


Imports System.Data.SqlClient
Imports System.Xml
Imports System.IO

Public Class Comando ‘Se define la clase publica comando

120
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

Dim m_cmd As SqlCommand ‘se define sqlcommand


Dim m_da As SqlDataAdapter ‘se define sqldataadapter
Dim m_ds As DataSet ‘se define un dataset
Dim dtb As DataTable ‘se define un datatable
Private m_tabla As DataTable ‘se define un datatable privado
Dim clsConexion As Conexion ‘define un objeto conexion
Public Sub New() ‘nueva instancia de conexion.instanciar
clsConexion = Conexion.Instanciar
End Sub
Public ReadOnly Property Tabla() As DataTable ‘Define un datatable
publico de solo lectura
Get ESTA FUNCIÓN LLENA EL DATASET
Return m_tabla ENLISTANDO DATOS, EN ESTE CASO LA
End Get
End Property
DESCRIPCIÓN Y REFERENCIA DE TODAS
LAS PATENTES
Public Function EjecutarConsultaListas(ByVal strSQL As String) As
DataSet ‘funcion publica EjecutarConsultaListas
Dim m_ds As New DataSet ‘nueva instancia del objeto dataset
Dim m_cmd As New SqlCommand ‘nueva isntancia del objeto sqlcommand
clsConexion.Conectar() ‘se llama a la funcion conectar de la clase
Conexion
Dim m_da As New SqlDataAdapter(strSQL, clsConexion.cString)’neuva
instancia de sqldataadapter
m_da.Fill(m_ds) ‘ se llena el sqldataadapter
m_da.Dispose() ‘ se libera el sqldataadapter
clsConexion.Desconectar() ‘se llama a la funcion desconectar de la
clase Conexion
Return m_ds ‘Se devuelve el dataset
End Function
End Class

Capa BBDD – Clase Conexion

Imports System.Data ‘importa las clases necesarias para las consultas


Imports System.Data.SqlClient
Public Class Conexion ‘‘Se define la clase publica conexion

Private Shared m_clsConexion As Conexion ‘intancia de la clase


compartida conexion
Private m_CN As SqlConnection
Private m_cString As String ‘se crean objetos tipo string
Private m_strUser As String
Private m_strPass As String
Private m_strDB As String
Private m_strServer As String

Public ReadOnly Property CN() As SqlConnection ‘Define una sqlconnection


publico de solo lectura
Get
Return m_CN
End Get
End Property

121
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

Public ReadOnly Property cString() As String ‘Define una sqlconnection


publico de solo lectura
Get
Return m_cString
End Get
End Property
Private Sub New() ‘nueva instancia de la clase y definicion de parametros
de conexion
m_CN = New System.Data.SqlClient.SqlConnection
m_strUser = "pedro"
m_strPass = "pedro2010"
m_strServer = System.Net.Dns.GetHostName & "\SQLExpress"
m_strDB = "SteticCenter"

End Sub

Public Shared Function Instanciar() As Conexion ‘nueva instancia de


la funcion compartida de la conexion
If m_clsConexion Is Nothing Then ‘ si la conexion esta vacia
m_clsConexion = New Conexion ‘ define una nueva conexion
End If
Return m_clsConexion CONECTA CON LA BASE DE DATOS, SEGÚN LOS
End Function PARAMETROS DE CONEXIÓN AL CREAR UNA NUEVA
INSTANCIA DE LA CLASE
Public Sub Conectar() ’Procedimiento para conectar
If m_CN.State <> ConnectionState.Open Then
m_cString = "packet size=4096;user id=" + m_strUser +
";password=" + m_strPass + ";pooling=false;Data Source=" + m_strServer +
";persist security info=False;initial catalog=" + m_strDB
m_CN.ConnectionString = m_cString
If m_CN.State = ConnectionState.Closed Then
m_CN.Open()
End If SE DESCONECTA DE LA BASE DE
End If DATOS
End Sub
Public Sub Desconectar()’Procedimiento para desconectar
If m_CN.State = ConnectionState.Open Then
m_CN.Close()
End If
End Sub
End Class

A continuación se muestra el procedimiento de manera ilustrada

122
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

3) Los errores no se propagan. Se tratan en la capa de negocios (Negocio).

4) La autenticación se hace contra el campo de una tabla (campo clave de la tabla Usuario).

5) Ha sido modificado, pero no contemplando la conexión a la base de datos.

6) No usamos store procedures para la conexión, pero si triggers para el cálculo del digito
verificador.

7) Utilizamos siempre el método desconectado en ado.net para toda la aplicación.

8) La encriptación la hacemos mediante MD5, para el campo clave utilizando webservice.

9) El multidioma lo hacemos mediante archivo de recursos.

10) El objeto que maneja el correo es SMTP.

7. Protocolo de Instalación

El sistema de SteticCenter requiere del motor de Base de Datos SQL Server 2008. La instalación
del sistema SQL Server 2008 es posible gracias a que el CD contiene el instalador de SQL Server
2008 Express, de distribución libre.

123
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

Para instalar este motor de base de datos, SQL Express 2008 requiere de los siguientes
prerrequisitos:

1. Microsoft Windows Installer 1.0


2. Microsoft .NET Framework 3.5

Dichos componentes se encuentran en el CD de instalación.

7.1. Instalación de Microsoft Windows installer 1.0


Windows Installer 1.0 es un componente necesario para ejecutar Microsoft SQL Server 2008. Para
instalar dicho componente de sistema, diríjase a la ruta dentro de su CD de instalación:

Unidad:\Projects\SCNET\SCSetup\Release\WindowsInstaller3_1

Y ejecute el archivo: WindowsInstaller-KB893803-v2-x86.exe

Una vez instalado este componente, será necesario reiniciar el equipo.

7.2. Instalación De Microsoft .Net Framework 3.5


Para instalar dicho componente de sistema, diríjase a la ruta dentro de su CD de instalación:

Unidad:\Projects\SCNET\SCSetup\Release\DotNetFX35

Y ejecute el archivo: dotNetFx35setup.exe

Una vez instalado este componente, será necesario reiniciar el equipo.

Al concluir la correcta instalación de estos componentes, puede comenzar a instalar Microsoft SQL
Server 2008 Express.

7.3. Instalación De “Sql Server 2008 Express With Advanced


Services”

EL SIGUIENTE PASO REQUIERE CONEXIÓN A INTERNET

1) En el menú del CD, diríjase a “Instalar SQL Server 2008 con Servicios Avanzados” y descargue
el archivo SQLEXPRADV_x86_ESN.exe. Luego de descargarlo, al hacer clic en el instalador se va
a abrir la siguiente ventana. Tienes que hacer clic en el enlace “Instalación” que se encuentra en el
lado izquierdo.

124
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

2) Si lo instala en Windows 7, tal vez aparezca este error de compatibilidad, sólo haga click
en “Ejecutar programa”.

3) Reglas auxiliares: Luego aparecerá una ventana de “Reglas auxiliares del programa de
instalación”, haga clic en “Aceptar”.

125
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

4) Archivos auxiliares: Instalará los componentes necesarios para instalar SQL Server 2008
Express, luego hacemos click en “Aceptar”.

126
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

5) Reglas auxiliares: Mostrará un informe detallado de la instalación de los archivos auxiliares.

6) Clave del producto: Como es una versión de SQL Express Edition gratuita, no tiene que ingresar
una clave. Solo haga click en “Siguiente”.

127
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

7) Términos de licencia: Lea y acepte los términos de la instalación y haga click en “siguiente”

8) Selección de características: Para instalar el SQL Management 2008 Express debe marcar la
opción “Herramienta de administración – Básica”, así como el servidor SQL Server que es
“Servicios de Motor de base de datos”. Si lo desea, puede instalar más opciones.

128
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

9) Configuración de Instancia: Elija la opción de “Instancia predeterminada” y haga click en


siguiente.

10) Requerimientos de espacio en disco: Comprueba el espacio en disco.

11) Configuración del servidor: seleccione lo más recomendado para su uso que asignar una cuenta
para todos los servicios del SQL Server. La cuenta recomendada es “NT
AUTHORITY\SYSTEM”

129
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

12) Configuración del Motor de base de datos: Seleccione el “Modo mixto” y escriba la contraseña
que desee.

130
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

13) Informe de errores y de uso: Lista de errores de instalación. Haga click en “siguiente”

14) Regla de Instalación: Haga click en “siguiente”.

15) Listo para instalar: Haga click en “Instalación”

131
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

16) Ahora puede hacer uso del SQL Server Management Studio colocando el nombre del servidor
con el nombre de la instancia del SQL Server Express

7.4. Agregar base de datos de SteticCenter


Para funcionar, el sistema requiere de la base de datos SteticCenter. Para ello, debe adjuntar la base
de datos con su SQL Server Express debe realizar los siguientes pasos:

132
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

a) Abra el SQL Server EXPRESS e Inicie sesión con su usuario y nombre de servidor por
defecto.
b) Sobre el panel izquierdo, haga click derecho sobre la carpeta “Bases de datos” y seleccione
“Adjuntar”
c) En la ventana que se despliega presione el botón “Agregar”
d) Busque dentro del CD de instalación la carpeta “Base de datos” y seleccione
“SteticCenter.mdf”y haga click en “Aceptar”
e) Haga click en “Aceptar” nuevamente para tener agregada la base de datos a su SQL Server
Express.

7.5. Creación de usuarios


El sistema de SteticCenter requiere de la creación de usuarios específicos para su correcto
funcionamiento. Para ello, debe seguir las siguientes instrucciones luego de finalizada la correcta
instalación del SQL Express 2008.

a) Abra el SQL Server EXPRESS e Inicie sesión con su usuario y nombre de servidor por
defecto.
b) Diríjase a Seguridad > Inicios de sesión
c) Realice click derecho y seleccione "Nuevo inicio de sesion"
d) PESTAÑA GENERAL
a. En donde se menciona el "Nombre de inicio de sesión" escriba "pedro" (sin
comillas). Luego haga click, si no se encuentra habilitada, en "Autenticación de
SQL Server". Escriba como contraseña "pedro2010" (sin comillas) y confirme
debajo la misma.
b. Revise que quede sólo marcada la opción de "Exigir directivas de contraseña".
c. Más abajo se encuentra la opción de "Base de datos predeterminada", seleccione en
ella la opción "master" (sin comillas).
d. Por último, en la opción de "Idioma Predeterminado" elija español.
e) PESTAÑA DE FUNCIONES DE SERVIDOR
a. Seleccione todas las opciones disponibles.
f) PESTAÑA DE ASIGNACIÓN DE USUARIOS
a. seleccione "master", "model", "msdb", "SteticCenter" y "tempdb" (todas sin
comillas)
g) PESTAÑA ESTADO
a. verifique que se encuentren seleccionadas las opciones "Conceder" del Permiso de
conexión al motor de base de datos e "Habilitada" en Inicio de Sesión
h) Haga click en el botón Aceptar para crear el usuario.

Repita las mismas acciones pero cree un nuevo usuario utilizando como "Nombre de inicio de
sesión" a "restore" y como contraseña a "restore"

133
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

7.6. Instalación del websetup SCSetup


Para instalar los formularios de la aplicación web debe seguir las siguientes instrucciones luego de
finalizada la correcta instalación del SQL Express 2008, adjuntar la base de datos y crear los
usuarios.

1. Diríjase a Unidad:\Projects\SCNET\SCSetup\Release
2. Haga click en setup.exe
3. En la primera ventana, haga click en “Siguiente”
4. En la segunda ventana, deje en las opciones de “Sitio” y “Grupo de Aplicaciones” por
defecto. En la opción de “Directorio virtual” puede escribir el nombre que desee.
5. En la tercera ventana, haga click en “Siguiente”
6. Al finalizar la instalación haga click en “Cerrar”.

7.7. Iniciar SteticCenter


Para iniciar la aplicación web, diríjase a su explorador web (Internet Explorer es el más
recomendado) y en la barra de direcciones escriba lo siguiente:

http://localhost/[su nombre de directorio virtual]/index.aspx

Debe solicitar al administrador de SteticCenter los permisos correspondientes para acceder a las
distintas opciones de la misma.

134
: Encriptar : Familia : Patente : Login : Bitacora
8.1.
: Interfaz : Global. asax : Usuario
: Usuarios
administrativa

1: Iniciar Sesion(usuario,contraseña)
Profesor: Sábato

2: Session_Start( )
Cada Consult a se Conect a
c on la Capa de Datos.
3: VerificarUsuario( )
Iniciar Sesión

4: UsuarioVerificado
Trabajo Práctico en ASP.NET

5: AutenticarUsuario( )

6: Encriptar(contraseña)
8. Diagramas de Secuencia

7: TextoEncriptado

8: BuscarFamiliaUsuario( )
Asignatura: Modelos computacionales de gestión

9: BuscarDescripcion( )

10: BuscarPatenteFamilia( )

11: RegistrarLogin( )
Fecha:

12: RegistrarBitac ora( )


Alumnos:
UNIVERSIDAD ABIERTA INTERAMERICANA

13: Registro Usuario Autorizado


FACULTAD DE TECNOLOGIA INFORMARTICA

14: Cargar Menu

15: Sesión Iniciada


2011
Currá, Ivana Yael
Yuziuchuk, Pedro

135
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

8.2. Abandonar Sesión

: Interfaz : Bitacora : Comando : Conexion : Global.asax

: Usuarios
1: Abandonar Sesion( )

2: RegistrarBitacora(Descripcion,Tipo,Idusuario)

3: EjecutarConsulta( )

4: Conectar( )

5: Instanciar( )

6: Registro OK

7: Session_End( )

8: Sesión Abandonada

9: Login Actualizado - Sesion Terminada

9. Triggers

--TABLA PRODUCTO
create trigger InsDVPRO
on PRODUCTO
for insert
as
update DV set dv=(select sum(dv) from PRODUCTO)
where tabla = 'PRODUCTO'

create trigger updDVPRO


on PRODUCTO
for update
as
update DV set dv=(select sum(dv) from PRODUCTO)
where tabla = 'PRODUCTO'

--TABLA PATENTE
create trigger InsDVPAT
on PATENTE
for insert
as

136
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

update DV set dv=(select sum(dv) from PATENTE)


where tabla = 'PATENTE'

create trigger updDVPAT


on PATENTE
for update
as
update DV set dv=(select sum(dv) from PATENTE)
where tabla = 'PATENTE'

--TABLA FAMILIA
create trigger InsDVFAM
on FAMILIA
for insert
as
update DV set dv=(select sum(dv) from FAMILIA)
where tabla = 'FAMILIA'

create trigger updDVFAM


on FAMILIA
for update
as
update DV set dv=(select sum(dv) from FAMILIA)
where tabla = 'FAMILIA'

--TABLA USUARIO
create trigger InsDVUSU
on USUARIO
for insert
as
update DV set dv=(select sum(dv) from USUARIO)
where tabla = 'USUARIO'

create trigger updDVUSU


on USUARIO
for update
as
update DV set dv=(select sum(dv) from USUARIO)
where tabla = 'USUARIO'

create trigger DelDVUSU


on USUARIO
for DELETE
as
update DV set dv=(select sum(dv) from USUARIO)
where tabla = 'USUARIO'

137
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

10. IDE Desarrollo


10.1. Explorador de Soluciones

138
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

10.2. Archivo WebConfig

<?xml version="1.0"?>
<!--
Nota: como alternativa para editar manualmente este archivo puede
utilizar la
herramienta Administración de sitios Web para configurar los valores
de la aplicación. Utilice
la opción Sitio Web->Configuración de Asp.Net en Visual Studio.
Encontrará una lista completa de valores de configuración y
comentarios en
machine.config.comments, que se encuentra generalmente en
\Windows\Microsoft.Net\Framework\v2.x\Config
-->
<configuration>
<configSections>
<sectionGroup name="system.web.extensions"
type="System.Web.Configuration.SystemWebExtensionsSectionGroup,
System.Web.Extensions, Version=3.5.0.0, Culture=neutral,
PublicKeyToken=31BF3856AD364E35">
<sectionGroup name="scripting"
type="System.Web.Configuration.ScriptingSectionGroup,
System.Web.Extensions, Version=3.5.0.0, Culture=neutral,
PublicKeyToken=31BF3856AD364E35">
<section name="scriptResourceHandler"
type="System.Web.Configuration.ScriptingScriptResourceHandlerSection,
System.Web.Extensions, Version=3.5.0.0, Culture=neutral,
PublicKeyToken=31BF3856AD364E35" requirePermission="false"
allowDefinition="MachineToApplication"/>
<sectionGroup name="webServices"
type="System.Web.Configuration.ScriptingWebServicesSectionGroup,
System.Web.Extensions, Version=3.5.0.0, Culture=neutral,
PublicKeyToken=31BF3856AD364E35">
<section name="jsonSerialization"
type="System.Web.Configuration.ScriptingJsonSerializationSection,
System.Web.Extensions, Version=3.5.0.0, Culture=neutral,
PublicKeyToken=31BF3856AD364E35" requirePermission="false"
allowDefinition="Everywhere"/>
<section name="profileService"
type="System.Web.Configuration.ScriptingProfileServiceSection,
System.Web.Extensions, Version=3.5.0.0, Culture=neutral,
PublicKeyToken=31BF3856AD364E35" requirePermission="false"
allowDefinition="MachineToApplication"/>
<section name="authenticationService"
type="System.Web.Configuration.ScriptingAuthenticationServiceSection,
System.Web.Extensions, Version=3.5.0.0, Culture=neutral,
PublicKeyToken=31BF3856AD364E35" requirePermission="false"
allowDefinition="MachineToApplication"/>
<section name="roleService"
type="System.Web.Configuration.ScriptingRoleServiceSection,
System.Web.Extensions, Version=3.5.0.0, Culture=neutral,

139
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

PublicKeyToken=31BF3856AD364E35" requirePermission="false"
allowDefinition="MachineToApplication"/>
</sectionGroup>
</sectionGroup>
</sectionGroup>
</configSections>
<appSettings>
</appSettings>
<connectionStrings/>
<system.web>
<!--
Establezca debug="true" en la compilación para insertar
símbolos
de depuración en la página compilada. Dado que este
proceso afecta al rendimiento, debe establecer este valor
como true
durante la depuración.
-->
<customErrors defaultRedirect="" />
<compilation debug="true">
<assemblies>
<add assembly="System.Core, Version=3.5.0.0,
Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Web.Extensions,
Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add assembly="System.Data.DataSetExtensions,
Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Xml.Linq, Version=3.5.0.0,
Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
</assemblies>
</compilation>
<!--
La sección <authentication> habilita la configuración
del modo de autenticación de seguridad utilizado por
ASP.NET para identificar a un usuario entrante.
-->
<authentication mode="Windows"/>
<!--
La sección <customErrors> habilita la configuración de
las acciones que se deben realizar si un error no controlado
tiene lugar
durante la ejecución de una solicitud. Específicamente,
permite a los desarrolladores configurar páginas de error
html
que se mostrarán en lugar de un seguimiento de pila de
errores.

<customErrors mode="RemoteOnly"
defaultRedirect="GenericErrorPage.htm">
<error statusCode="403" redirect="NoAccess.htm" />
<error statusCode="404" redirect="FileNotFound.htm" />
</customErrors>
-->

140
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

<pages>
<controls>
<add tagPrefix="asp" namespace="System.Web.UI"
assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral,
PublicKeyToken=31BF3856AD364E35"/>
<add tagPrefix="asp"
namespace="System.Web.UI.WebControls" assembly="System.Web.Extensions,
Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</controls>
</pages>
<httpHandlers>
<remove verb="*" path="*.asmx"/>
<add verb="*" path="*.asmx" validate="false"
type="System.Web.Script.Services.ScriptHandlerFactory,
System.Web.Extensions, Version=3.5.0.0, Culture=neutral,
PublicKeyToken=31BF3856AD364E35"/>
<add verb="*" path="*_AppService.axd" validate="false"
type="System.Web.Script.Services.ScriptHandlerFactory,
System.Web.Extensions, Version=3.5.0.0, Culture=neutral,
PublicKeyToken=31BF3856AD364E35"/>
<add verb="GET,HEAD" path="ScriptResource.axd"
type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions,
Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
validate="false"/>
</httpHandlers>
<httpModules>
<add name="ScriptModule"
type="System.Web.Handlers.ScriptModule, System.Web.Extensions,
Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</httpModules>
</system.web>
<system.codedom>
<compilers>
<compiler language="c#;cs;csharp" extension=".cs"
warningLevel="4" type="Microsoft.CSharp.CSharpCodeProvider, System,
Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<providerOption name="CompilerVersion"
value="v3.5"/>
<providerOption name="WarnAsError" value="false"/>
</compiler>
<compiler language="vb;vbs;visualbasic;vbscript"
extension=".vb" warningLevel="4"
type="Microsoft.VisualBasic.VBCodeProvider, System, Version=2.0.0.0,
Culture=neutral, PublicKeyToken=b77a5c561934e089">
<providerOption name="CompilerVersion"
value="v3.5"/>
<providerOption name="OptionInfer" value="true"/>
<providerOption name="WarnAsError" value="false"/>
</compiler>
</compilers>
</system.codedom>
<!--

141
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

La sección system.webServer es necesaria para ejecutar ASPN.NET


AJAX en Internet
Information Services 7.0. No es necesaria para la versión
anterior de IIS.
-->
<system.webServer>
<validation validateIntegratedModeConfiguration="false"/>
<modules>
<remove name="ScriptModule"/>
<add name="ScriptModule" preCondition="managedHandler"
type="System.Web.Handlers.ScriptModule, System.Web.Extensions,
Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</modules>
<handlers>
<remove name="WebServiceHandlerFactory-Integrated"/>
<remove name="ScriptHandlerFactory"/>
<remove name="ScriptHandlerFactoryAppServices"/>
<remove name="ScriptResource"/>
<add name="ScriptHandlerFactory" verb="*" path="*.asmx"
preCondition="integratedMode"
type="System.Web.Script.Services.ScriptHandlerFactory,
System.Web.Extensions, Version=3.5.0.0, Culture=neutral,
PublicKeyToken=31BF3856AD364E35"/>
<add name="ScriptHandlerFactoryAppServices" verb="*"
path="*_AppService.axd" preCondition="integratedMode"
type="System.Web.Script.Services.ScriptHandlerFactory,
System.Web.Extensions, Version=3.5.0.0, Culture=neutral,
PublicKeyToken=31BF3856AD364E35"/>
<add name="ScriptResource"
preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd"
type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions,
Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</handlers>
</system.webServer>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Web.Extensions"
publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="1.0.0.0-1.1.0.0"
newVersion="3.5.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity
name="System.Web.Extensions.Design" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="1.0.0.0-1.1.0.0"
newVersion="3.5.0.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>

142
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

11. Bibliografía

Cursada de Modelos Computacionales de Gestión Administrativa

12. Anexo
12.1. Diagrama de Clases de Base de Datos
DETALLE
PRODUCTO
IDVENTA
IDPRODUCTO
IDPRODUCTO
NOMBRE
CANTIDAD
CATEGORIA
PRECIO_UNI
MARCA
TOTAL
STOCK
ACTIVIDADES
PRECIO
IDACTIVIDAD
DISPONIBLE
LUGAR
DV
PRECIO
VENTAS
INICIO
IDVENTA
CIERRE
IDUSUARIO
EMAIL
FECHA
DESCRIPCION

CARRITO
IDUSUARIO
DV IDPRODUCTO
TABLA FAMILIA_PATENTE
CANTIDAD
IDFAMILIA
DV
FECHA
IDPATENTE
USUARIO
IDUSUARIO

NOMBRE

USUARIO

CLAVE
PATENTE FAMILIA
DIRECCION
IDPATENTE IDFAMILIA
LOCALIDAD
DESCRIPCION DESCRIPCION
COD_POST
REFERENCIA DV
TELEFONO BITACORA
DV
CELULAR IDBITACORA

EMAIL DESCRIPCION

ESCLIENTE TIPO
USUARIO_FAMILIA DV FECHA
USUARIO_PATENTE IDUSUARIO
IDUSUARIO
IDUSUARIO IDFAMILIA

IDPATENTE

LOGIN
IDMOVIMIENTO

IDUSUARIO

FECHA

143
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

12.2. Estructura de Tablas de Base de Datos


12.2.1. Tabla Actividades

12.2.2. Tabla Bitácora

12.2.3. Tabla Carrito

12.2.4. Tabla Detalle

144
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

12.2.5. Tabla DV

12.2.6. Tabla Familia

12.2.7. Tabla Familia-Patente

12.2.8. Tabla Login

12.2.9. Tabla Patente

145
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

12.2.10. Tabla Producto

12.2.11. Tabla Usuario

12.2.12. Tabla Usuario-Familia

12.2.13. Tabla Usuario-Patente

146
UNIVERSIDAD ABIERTA INTERAMERICANA
FACULTAD DE TECNOLOGIA INFORMARTICA
Asignatura: Modelos computacionales de gestión Alumnos: Currá, Ivana Yael
administrativa Yuziuchuk, Pedro
Profesor: Sábato
Trabajo Práctico en ASP.NET Fecha: 2011

12.2.14. Tabla Ventas

12.3. Interfaz de Desarrollo SQL Server 2008

147

Você também pode gostar