0% encontró este documento útil (0 votos)
239 vistas203 páginas

Innovación en Sistemas Buscapersonas

Este documento describe los desafíos que enfrentan las pequeñas y medianas empresas de sistemas buscapersonas. Actualmente el software disponible tiene limitaciones como soporte deficiente, diseño para un solo usuario y bases de datos no estandarizadas. Para sobrevivir en el futuro, estas empresas necesitan software más flexible, escalable y compatible con estándares para ofrecer nuevos servicios de información de manera competitiva.

Cargado por

Antonio
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOC, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
239 vistas203 páginas

Innovación en Sistemas Buscapersonas

Este documento describe los desafíos que enfrentan las pequeñas y medianas empresas de sistemas buscapersonas. Actualmente el software disponible tiene limitaciones como soporte deficiente, diseño para un solo usuario y bases de datos no estandarizadas. Para sobrevivir en el futuro, estas empresas necesitan software más flexible, escalable y compatible con estándares para ofrecer nuevos servicios de información de manera competitiva.

Cargado por

Antonio
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOC, PDF, TXT o lee en línea desde Scribd

Sistemas Buscapersonas Introduccin Los sistemas de buscapersonas tienen aproximadamente 50 aos de historia, siendo estos utilizados inicialmente por

mdicos, los cuales eran alertados en casos de emergencia, por este medio; el beneficio de este mtodo radicaba, en que se podan localizar en casi cualquier parte que tuviera cobertura de la seal de radio, el operador marcaba una frecuencia, la cual corresponda al equipo del usuario, el equipo cuando detectaba la frecuencia, emita un tono audible; los siguientes desarrollos permitieron un mensa e hablado por el operador despus del tono! Los sistemas de buscapersonas contin"an creciendo, adoptando tecnologas digitales, las cuales hacen mas #gil $ barato el servicio; por consiguiente hace mas accesible para toda clase de personas e instituciones! %sto cre& una competencia m#s fuerte en los sistemas de buscapersonas, las compaas deben atraer nuevos clientes con las tarifas o servicios que se puedan ofrecer $ las haga mas atractivas en el mercado; para ser m#s competitivos, es indispensable contar con departamentos tanto tcnico, como administrativos mu$ eficientes, $ que se puedan acoplar r#pidamente al desarrollo del mercado de buscapersonas; esto se debe fundamentar en un soft'are que se encargue del envo de mensa es a un equipo codificador (terminal de paginaci&n), el cual transmite los mensa es al usuario final! %xisten programas para mane ar la comunicaci&n con el equipo codificador que generalmente es distribuido por el vendedor del mismo, el equipo com"nmente es importado, el soporte tcnico del soft'are es deficiente, haciendo que cualquier falla del programa sea un problema serio de resolver, sin un soporte en el pas; asimismo esta clase de soft'are es diseado para mercados que no corresponden al nacional, adem#s no utilizan tecnologas recientes en el desarrollo de sus programas! %n este traba o se analizan las diferentes necesidades de las empresas que prestan el servicio de buscapersonas, se presenta un modelo, $ se muestra el desarrollo de los programas; adoptando nuevas tecnologas en el campo de base de datos $ brindando una administraci&n del sistema m#s sencilla $ amigable; as, con todos estos requisitos se podr# ofrecer una soluci&n confiable, escalable $ econ&mica a los operadores del servicio de buscapersonas!

Descripcin del problema.

Los sistemas buscapersonas, hasta la fecha han satisfecho la ma$ora de tipos de demanda de servicios como son por tono, voz, numricos $ alfanumricos! *on la reciente demanda de buscapersonas, aument& la capacidad de mane o de mensa es a un menor costo, as el servicio de buscapersonas es una forma de comunicaci&n #gil $ econ&mica, que esta expandindose de forma r#pida en nuestro medio!

Abonados por segmentos comerciales

8ervicios comerciales /-. 8ervicio $ equipos medicos /0.

+tros ,-.

*onstrucci&n /0.

0istribuci&n $ servicios alimenticios 5. 7obierno 6ienes raices 5. 5.

0istribuci&n de equipos 1. 2uebles para el hogar3oficina 5. 4ransporte 5. 0istribuci&n varios al detalle 5.

9ig! /! :bonados por segmentos comerciales ;*+<-1=! La fig! /! muestra los usuarios del sistema de buscapersonas por segmentos comerciales que puede servir para crear un perfil de quines son clientes del servicio de buscapersonas; adem#s indica la variedad de mercados a los cuales se les vende el servicio! *on la constante pugna dentro de este difcil negocio, las empresas se deben diferenciar de la competencia para poder atraer nuevos clientes con los servicios o tarifas que les puedan ofrecer; esto se debe fundamentar tanto en la parte tcnica como en la administrativa de la empresa $ tener un buen plan de ventas! >ara poder contar con un servicio #gil en la compaa, es indispensable poseer un sistema que mane e los mensa es que van a ser enviados, de una forma autom#tica (el computador se encarga de enviar los mensa es sin que un operario se involucre en el proceso) $ con opci&n de enlazar en un entorno de red para poder crear ampliaciones, en forma m#s r#pida $ econ&mica, de este modo ocasionar los menores per uicios para los usuarios cuando se va$a a hacer una ampliaci&n del sistema!

:ctualmente existe soft'are para mane ar la comunicaci&n con el terminal de paginaci&n que es vendido generalmente por el distribuidor del equipo de paginaci&n, el soporte tcnico es deficiente, $a que generalmente los programas son desarrollados por fuera del pas, convirtiendo cualquier falla del soft'are en una cat#strofe, debido a la falta del soporte o manuales indicados para la correcci&n del percance; adem#s con el r#pido crecimiento de los sistemas buscapersonas es indispensable una conexi&n en red, con otros computadores, en donde un computador sirve de servidor por estar conectado al terminal de paginaci&n, enrutando los mensa es de los otros computadores (clientes) a travs de la red L:< u otro tipo de conexi&n, para luego ser enviados al terminal de paginaci&n! *om"nmente las grandes empresas del sector de buscapersonas, desarrollan sus propios programas e interfaces al sistema buscapersonas, para ofrecer al cliente diferentes tipos de servicios $ as, diferenciarse de las otras compaas del sector; en cambio las pequeas $ medianas empresas que no cuentan, con los recursos suficientes para establecer un departamento de sistemas ($ que adem#s este tenga conocimientos en comunicaciones); tienden a utilizar el soft'are comercial que frecuentemente es desarrollado por el distribuidor del terminal de paginaci&n! %ntre el soft'are mas utilizado en nuestro medio se tiene? Nombre @base @:>> *+26B>
1

Compa Hecho en a @etron @etron :lfacom A8: A8: *olombia

Soporte para redes <o, <o


,

Sistema operati o 280+8 280+8 280+8

Base de datos1 Bnterna %xterna3Bnter na %xterna

<o,

Se refiere al tipo de base de datos utilizado, interna es la base de datos del terminal de paginacin y externa

es generalmente utilizada en un PC.


2

Estos sistemas son desarrollados, para un ambiente de trabajo monousuario, con diferentes t cnicas se logra

compartir el programa en un red !generalmente "o#ell$ y as% crear un grupo de trabajo en red. Esta forma de trabajo puede conlle#ar a problemas de eficiencia en el acceso a la base de datos.

Anipage

2otorola

A8:

8iC

A<BD

%xterna3Bnter na

%stos programas a excepci&n del Anipage, son desarrollados para un ambiente de traba o monousuario, por lo tanto se tienen inconvenientes cuando se desea tener un ambiente de traba o multiusuario; los problemas m#s frecuentes son ba o rendimiento en el acceso a la base de datos $ un alto tr#fico en la red, lo cual puede ocasionar que el sistema se caiga, produciendo perdida de datos $ mala imagen ante los usuarios, por la perdida moment#nea del servicio! %l Anipage de 2otorola, a pesar de ser diseado para un ambiente multiusuario, cuenta con el inconveniente de que sus clientes son terminales A<BD, las cuales generalmente son conectadas a puertos seriales del >* servidor del sistema, con esto las ampliaciones dependen de una expansi&n de los puertos seriales del servidor; adem#s los gastos de administraci&n en un sistema A<BD son m#s elevados, comparados con sistemas Eindo's o <ovell! 7eneralmente las bases de datos utilizadas por estos programas no son comerciales, o sea que no tienen un patr&n com"n con otras bases de datos; un problema adicional a esto, es que sus datos no son f#cilmente exportables a otros programas o sistemas, $ cuando se necesita compartir informaci&n entre sistemas de buscapersonas, conlleva a una ardua $ tediosa labor de migraci&n de datos! %n este modelo tan cerrado, el ofrecer un nuevo servicio es un traba o que generalmente consume mucho tiempo, esfuerzo, $ obviamente recursos econ&micos! 4odo esto se resume en una clara desventa a de las pequeas $ medianas empresas, en acoplarse para ofrecer un nuevo servicio a sus clientes! :hora que se puede esperar en un futuro cercano donde se promete fusionar diferentes tipos de servicios de informaci&n p!e! buscapersonas, correo electr&nico, correo de voz, telfonos celulares, etc; tambin
&

'os clientes son terminales (")*.

est# claro que no tenemos todas las respuestas sobre lo que ser# la industria en el futuro; pero es seguro de que Los 8istemas de Bnformaci&n ser#n parte importante de lo que ho$ conocemos como buscapersonas! An tipo de servicio de informaci&n $a se est# dando ampliamente con buscapersonas ordinarios! %ste servicio se brinda sencillamente enviando un mensa e alfanumrico normal a un buscapersonas, en donde ser# ledo sin necesidad de ninguna manipulaci&n! Ana variaci&n mu$ prometedora de este tipo de servicio es el envo de texto o, a"n m#s, de archivos completos de una computadora al usuario, quin despus podr# FmanipularF los datos o FcorrerF el archivo en una computadora port#til! +bviamente, este servicio ser# de mucho m#s valor para el abonado! :hora se debe preguntar, podr#n las pequeas $ medianas empresas, sobrevivir con lo que actualmente ofrece el mercado del soft'are comercial, para los sistemas buscapersonasG! >ara afrontar ese futuro cercano se debe tomar nuevas herramientas, no solo para innovar los servicios existentes sino tambin para crear nuevos! %n los sistemas de envo de mensa es por venir, estos deber#n tomar las venta as de las bases de datos comerciales, como son robustez en cuanto a tamao $ seguridad de datos, escalable cuando se necesite ampliar el numero de usuarios $ ser abiertas, para intercambiar datos con otros sistemas; as mismo el sistema operativo uega un papel preponderante en este negocio, este deber# permitir no solo soportar los servicios de informaci&n $a fi ados, sino tambin los futuros, tambin es importante que sea estable para brindar seguridad en el mane o de los datos, $ poseer una excelente comunicaci&n con todo tipo de sistemas de computo, para un buen aprovechamiento de los recursos de la red de computadores; con todos estos requisitos se podr# ofrecer una soluci&n confiable, escalable $ econ&mica a los operadores del servicio de buscapersonas!

! 2.1 Sistemas buscapersonas

"arco terico

Los sistemas de buscapersonas han penetrado en todos los niveles del mercado, e ecutivos $ adolescentes igual ahora usan un buscapersonas que los permite ubicar donde quiera que se encuentren; esta tendencia es una oportunidad para que los proveedores de este servicio puedan aumentar sus subscriptores! Los sistemas de buscapersonas, hasta la fecha han satisfecho la ma$ora de tipos de demanda de servicios como son por tono, voz, numricos, $ alfanumricos! *on la reciente demanda de buscapersonas, aument& capacidad de mane o de mensa es a un menor costo, as el servicio de buscapersonas es una forma de comunicaci&n #gil $ econ&mica, que s esta expandiendo de forma mu$ r#pida en nuestro medio! !.1.1 Componentes de un Sistema de buscapersonas

9ig! , 8istema buscapersonas, modelo b#sico ;6H:-1=! Los elementos primarios de un sistema de buscapersonas son la fuente de entrada

(puede ser a menudo un telfono), equipo del transmisor, terminal de paginaci&n, unidad de buscapersonas, estos son operados tpicamente por un proveedor del servicio quien incurre en el costo del edificio, $ opera el sistema!

2.1.1.1 Fuente de entrada La fuente de la entrada puede ser una computadora personal, telfono, o un operador que despacha los mensa es!

2.1.1.2 Equipos de Transmisin y Terminal de paginacin Los equipos de transmisi&n, o equipos de enlace en radio frecuencia (H9), generalmente son operados por grandes instituciones como, centros hospitalarios, departamentos de bomberos, organizaciones gubernamentales, pero m#s tpicamente el servicio es ofrecido por instituciones privadas! %l terminal de paginaci&n es responsable de recibir, procesar $ guardar la informaci&n de la persona a quien llaman! %l terminal de paginaci&n valida los tipos de llamadas, determina la autenticidad del suscriptor $ sirve de interface a la red de H9, o con otra terminal remota! Las redes de H9 aceptan los datos de las terminales va H9, telef&nica o por satlite, transmitiendo la seal codificada al correspondiente usuario!

2.1.1.3 Buscapersonas 8e puede arrendar o comprar buscapersonas al proveedor del servicio, o comprarlo a minoristas! %xisten equipos que pueden recibir diferentes tipos de mensa es? 4ono ? el subscriptor solo recibe un tono (beep) en su equipo! <umrico? el subscriptor recibe un mensa e numrico que generalmente representa un telfono!

:lfanumrico ? texto $ n"meros aparecen en el buscapersonas! Ioz ? se escucha un mensa e audible en el buscapersonas (este tipo de buscapersonas tanto como el de tono no son mu$ utilizados)!

%l subscriptor a menudo puede seleccionar el mtodo en que l recibir# una alerta cuando reciba un mensa e, pueden ser por estmulos visuales, estmulos audibles (generalmente un pitido o campanillas) o estmulos silenciosos (vibraci&n)! !.1.! Algunos protocolos del sistema buscapersonas

%n los sistemas de buscapersonas es fundamental el protocolo de sealizaci&n! %l protocolo de paginaci&n es el sistema nervioso que controla el envo de mensa es! An protocolo es un lengua e o un con unto de reglas, las cuales permiten el flu o de informaci&n sobre una red telef&nica, radio, etc! $ finalmente al buscapersonas! %stas reglas decretan la capacidad, velocidad de sealizaci&n, tiempo de vida de la batera e integridad de los datos, todas caractersticas crticas a los o os del proveedor del servicio $ por supuesto al usuario final! Los sistemas buscapersonas que actualmente se tienen, empez& alrededor de hace 50 aos! %n los 50s los buscapersonas respondan a un tono de sealizaci&n, este seleccionaba un usuario dependiendo de la frecuencia del tono que le llegara al equipo, esto permita identificar a una docena de suscriptores en cada canal! %n los siguientes aos la adopci&n de $a no uno, sino de dos tonos secuenciales de audio para la localizaci&n del usuario permita alrededor de J10 clientes! %sta tecnologa contin"a desarroll#ndose hasta alcanzar entre cinco $ seis tonos de sealizaci&n, lo cual permita tener una poblaci&n de hasta /00,000 usuarios en el sistema! Ka entre los aos 10s $ J0s con el auge de la electr&nica digital, se crean buscapersonas los cuales toman grandes beneficios de esta nueva tecnologa, logrando as ofrecer nuevos servicios a los usuarios!

Los siguientes son algunos de los protocolos m#s conocidos de estos equipos?

2.1.2.1 Golay (1 !3" #B$% &' 7ola$ esta diseado para transmitir diferentes tipos de mensa es $a sean por un solo tono, numricos, alfanumricos, o mensa es de voz! Los datos son transmitidos utilizando c&digos de correcci&n de errores! +tro beneficio del 7ola$ es el me oramiento de la vida de la batera! 7ola$ divide los buscapersonas en grupos $ transmite un encabezamiento en el c&digo, as los buscapersonas escogen solamente los mensa es de grupo a que corresponde $ no decodifican el resto del mensa e! 8olo posee L dgitos en el capcode (formato de identificaci&n del buscapersonas) $ su ba a velocidad de transmisi&n, son grandes inconvenientes cuando los sistemas tienen una gran cantidad de usuarios!

2.1.2.2 ()*S%G (1 !1" #B$% &' >+*8:7 (>ost +ffice *ode 8tandardization :dvisor$ 7roup) se consider& un protocolo de alta velocidad cuando se desarroll&! >uede mane ar m#s de dos millones de direcciones $ soporta mensa es de tipo numrico, alfanumrico $ de tono! Mo$ >+*8:7 opera a 5/,, /,00 $ ,500 bps, $ es el protocolo de

buscapersonas m#s extensamente difundido! Bgual que el 7ola$, >+*8:7 posee un sistema robusto de detecci&n $ correcci&n de errores! La sincronizaci&n se efect"a mediante c&digos de datos llamados claves, $ cada buscapersonas podr# tener una clave diferente, as se pueden dividir en grupos de buscapersonas en el momento de la sincronizaci&n $ me orar la vida de la batera! >osee 1 dgitos en su capcode, $ sus velocidades de transmisi&n, a pesar de ser ma$ores que el 7ola$, siguen siendo ba as para sistemas mu$ grandes!

2.1.2.3 E$+ES (1

," #B$% &'

Los principales logros de este protocolo, son haber incrementado la capacidad de subscriptores de todos los servicios, me ora la e ecuci&n del envo de mensa es, permitiendo de este modo un gran ahorro en el consumo de la batera! La velocidad de transmisi&n es de L,50 bps! !.1.# $opologas de redes en sistemas buscapersonas.

%xisten b#sicamente , tipos de redes en los sistemas de buscapersonas, local $ regional; esta ultima, dependiendo de su cubrimiento puede llegar a convertirse en nacional, e incluso de cubrimiento internacional! 2.1.3.1 Topolog-a local

9ig! C! 4opologa local La redes locales mane an una configuraci&n como la mostrada en la fig! C, donde generalmente un terminal de paginaci&n, distribu$e mensa es en un #rea geogr#fica limitada; en este tipo de redes no existe comunicaci&n entre terminales de paginaci&n $ por consiguiente no se puede enviar mensa es de otros terminales de paginaci&n! %l protocolo de comunicaci&n m#s com"nmente utilizado en sistemas locales para enviar mensa es del usuario, al terminal de paginaci&n se denomina, 4:> (4elocator

:lphanumeric >rotocol); en septiembre de /-JJ la >*B: adopto este protocolo como el est#ndar! 4:> es un protocolo de comunicaci&n digital, el cual opera a travs de conexiones telef&nicas con modems o en comunicaciones seriales dedicadas! %l /00. de los sistemas de buscapersonas de %stados Anidos $ gran porcenta e del resto del mundo, provee acceso p"blico a travs de conexiones 4:>! 2.1.3.2 Topolog-a $egional. /acional e 0nternacional La necesidad de conectar terminales de paginaci&n entre si, comienza cuando surge la urgencia de brindar un ma$or cubrimiento del servicio; se disearon diferentes mtodos de enlazar los terminales de paginaci&n, el problema se presentaba cuando se intentaba encadenar redes de diferentes marcas entre si! %sto condu o a que se diseara un est#ndar sobre el cual los terminales de paginaci&n pudieran operar! :parece entonces el protocolo 4<>> (4elocator <et'orN >aging >rotocol) que hace posible la comunicaciones entre los terminales! 4<>> utiliza paquetes de informaci&n que son distribuidos a travs de terminales de paginaci&n en una red! An paquete contiene la direcci&n de destino del terminal de paginaci&n, chequeo de error $ otros elementos! !.1.#.!.1 Con%iguracin Simple&

9ig! 5 *onfiguraci&n simplex ;2+4-1= 4odos los mensa es se originan en un equipo maestro los cuales son pasados a los demas terminales de paginaci&n! La m#s com"n aplicaci&n para esto es el envo de mensa es utilizando satlites! %l servicio de satlites provee cubrimiento nacional (en algunas ocasiones internacional), el maestro recibe las llamadas, utilizando un simplex 4<>> enva los paquetes a un satlite que esta en &rbita, este retransmite estos paquetes

a diferentes puntos de la tierra! La transmisi&n es recibida $ se transmite el paquete al usuario final! !.1.#.!.! Con%iguracin duple&

9ig! 5 *onfiguraci&n duplex ;2+4-1= An par de terminales de paginaci&n son conectados, estos pueden intercambiar paquetes de mensa es entre si! An mensa e puede ser iniciado por una llamada en el otro terminal, $ este puede ser transmitido desde ambos! %sto permite a una persona en una ciudad enviar mensa es a otra persona que se encuentra en otra ciudad, sin tener que hacer una llamada de larga distancia! %l operador del sistema puede proveer servicio en ambas #reas sin pagar costos extras por el intercambio de datos entre los terminales de paginaci&n! !.1.#.!.# Con%iguracin en cadena

9ig! L *onfiguraci&n en cadena ;2+4-1= An mensa e puede producirse en alg"n terminal de la red! *omo un paquete de 4<>> pasa de terminal en terminal, cada terminal determina le$endo el encabezado si el paquete a sido direccionado a l! 8i ocurre esto, el terminal enva el mensa e el mensa e al transmisor! 8i no, simplemente pasa el paquete al pr&ximo terminal de la cadena! 0e esta manera el mensa e puede ser pasado a un gran n"mero de sitios, en cuesti&n de segundos!

!.1.#.!.' Con%iguracin en anillo

9ig! 1 *onfiguraci&n en anillo ;2+4-1= Ana conexi&n en anillo, es una configuraci&n en cadena, a la cual se le han unido los terminales de paginaci&n de principio $ fin! La venta a de esto, es que si se pierde la comunicaci&n en uno de sus nodos, el enlace no se pierde, por que el paquete utiliza la parte que aun funciona en la cadena !.1.#.!.( Con%iguracin en estrella

9ig! J *onfiguraci&n en estrella ;2+4-1= Ana red en estrella, utiliza todos los terminales conectados a un terminal central! An mensa e puede originarse en alg"n terminal, pero el terminal central mane a todo el tr#fico en la red! %l rendimiento $ eficiencia del sistema, se de a completamente en manos del terminal central!

!.1.#.!.) *n o de mensa+es utili,ando sat-lites.

9ig! - %nvo de mensa es utilizando satlites ;2+4-1= Ana red de terminales de paginaci&n, puede ser parte de una red nacional o internacional con la adici&n de un enlace satelital! %l enlace puede ser conectado a alg"n terminal de la red, solamente un terminal necesita ser equipado con interface satelital! 0e esta forma los mensa es provenientes del satlite pueden ser transmitidos por alguno de terminales en la red! 2.2 (rotocolo de comunicacin del terminal de paginacin #+)T 1'.

:doptado por 4elocator (ahora conocido como O>ersonal *ommunications Bndustr$ :ssociationP >*B:) como un protocolo est#ndar en servicios de buscapersonas! %ste es referenciado como 4elocator :lphanumeric >rotocol (4:>), adem#s el dispositivo de paginaci&n permite la entrada de datos en el modo llamado de paginaci&n completa! %l protocolo de transferencia de datos utilizado hace posible la entrada de datos desde dispositivos, tales como microcontroladores o programas de computador que crean una r#pida $ sencilla manera de enviar la informaci&n al terminal de paginaci&n! Las dos variaciones del protocolo son similares en estructura pero difieren en el modo de enviar los datos al terminal de paginaci&n! 7eneralmente los dispositivos de paginaci&n operan con una base de datos interna que varia en capacidad dependiendo del modelo $ marca del dispositivo, esta guarda el capcode, funciones, flags de operaci&n (los cuales permiten validar el mensa e para un

usuario), prioridad $ otras opciones! %l modo de paginaci&n completa permite paginar alguna direcci&n de un buscapersonas, de ando as que los c&digos de operaci&n sean mane ados por el dispositivo que enva el mensa e; con esto no se limita la capacidad del sistema a la capacidad del terminal de paginaci&n! :dem#s s decrementa el tiempo de espera en las lneas de los terminales de paginaci&n al permitir que los dispositivos de entrada enven gran cantidad de bloques de informaci&n en un solo paquete! !.!.1 Secuencia de entrada ./ogon0

La secuencia de Logon o entrada es repetida cada vez que el terminal de paginaci&n recibe una nueva llamada despus de haber estado previamente en estado de espera! %sta secuencia fi a el modo de transferencia de datos! %l modo de transferencia de datos no cambia hasta que el dispositivo de entrada termina la comunicaci&n, desconecta $ conecta de nuevo! Nota1 %n la siguiente descripci&n, las marcas OQ RP no son transmitidas $ son utilizadas para denotar un smbolo de control! Las secuencias de mensa es QopcionalR pueden ser habilitadas o no a gusto del programador del equipo de paginaci&n (dependiendo del modelo del terminal de paginaci&n estos mensa es pueden cambiarse)! La secuencia de entrada es? 2ispositi3o de entrada OQ*HRP Terminal de paginacin OB0SQ*HRQL9RP *omentarios Bnicia la secuencia de entrada! %l terminal debe responder con un OB0SP si reconoce la velocidad de transmisi&n $ si la transferencia de datos ha sido completada! 8elecciona base de datos interna! 8elecciona paginaci&n completa! OppppP es el c&digo de seguridad de cuatro caracteres; este podr# ser omitido si el c&digo de

OQ%8*R>7/ppppQ*HRP o OQ%8*R>7,ppppQ*HRP

seguridad es deshabilitado, si es requerido, este siempre ser# de cuatro caracteres! OQ:*TRQ*HRQopcionalRQ* 8ecuencia de entrada aceptada HRP OQ%8*R;pQ*HRP %l terminal de paginaci&n esta listo para empezar a recibir mensa es

+ OQ<:TRQ*HRQopcionalRQ* Bntente de nuevo la secuencia de HRP entrada (desde la secuencia de %8*) + OQ%8*RQ%+4RQopcionalR Q*HRP !.!.! Secuencia de trans%erencia de datos 8ecuencia de entrada negada, el terminal de paginaci&n se desconecto!

Ana vez realizada con xito la secuencia de entrada, la transferencia de datos puede comenzar! An indefinido n"mero de transacciones puede ser transmitido al terminal de paginaci&n! La transferencia de datos se da en estructuras de ,5L caracteres o menos! *ada bloque es definido por el campo de paginaci&n (*>) del buscapersonas $ un mensa e completo! Ano o m#s bloques pueden ser necesitados para transmitir una transacci&n completa! 8i en la transmisi&n ocurre una gran cantidad de errores esto puede ser causa para que el terminal se desconecte! Los errores pueden ser de tipo de estructura de bloque, recepci&n de <EOT>, $ timeouts! Los timeouts ocurren despus de un tiempo 4 al "ltimo caracter recibido! 7eneralmente los dispositivos de paginaci&n tienen la opci&n de cambiar el 4 o no generar el timeout!

2.2.2.1 Estructura de la secuencia de trans4erencia de datos %l siguiente es el flu o en la secuencia de transferencia datos al terminal de paginaci&n, donde Q*>R es el campo paginaci&n ? 2ispositi3o de entrada OQ84DRQ*>RQ*HR Qmensa eRQ*HR Q%4DRQchecNsumRQ*H RP U OQ84DR Q*>RQ*HR Qmensa eRQ*HR Q%46RQchecNsumRQ*H RP OQ84DR Qmensa eRQ*HR Q%4DRQchecNsumRQ*H RP !!! OQ84DR Qmensa eRQ*HR Q%4DRQchecNsumRQ*H RP !!! QHeconocidoR !!! 6loque final de la transacci&n!Q%4DR indica que la transacci&n es completa! QHeconocidoR QHeconocidoR Terminal de paginacin *omentarios %sta forma de paginaci&n se utiliza para mensa es cortos! Q%4DR indica que la transacci&n es completa! Los mensa es con una longitud ma$or requieren transferir m#s de un bloque, pero el campo de paginaci&n (*>) es transmitido solo una vez! Q%46R indica que en un bloque posterior la transacci&n se completara! >arte del mensa e original!

%l campo de paginaci&n <CP> puede tomar una de estas dos formas dependiendo del modo de transferencia! !.!.!.1.1 2ara el modo de base de datos interna la forma es? Q*>R S xxxx 0onde xxxx es de uno a cuatro caracteres :8*BB que forma un n"mero de un valido usuario para el terminal de paginaci&n (puede ser 0V--, 0VC-- & 0V//--)!

!.!.!.1.! 2ara el modo de paginacin completa %l campo de paginaci&n ser# de la siguiente forma! Q*>R S 6xxxxxxx9:>4 6 xxxxxxx 0onde %s un dgito :8*BB entre 0V1 que hace referencia a la tabla de formato de paginaci&n la cual se encuentra guardada en el terminal de paginaci&n 8on siete caracteres :8*BB que conforman un capcode valido para el formato de paginaci&n! : veces debe ser necesario llenar con ceros hasta conformar los siete caracteres! %s un smbolo :8*BB entre 0V- que identifica el c&digo de funci&n del buscapersonas! %s un dgito :8*BB es 0 o / este indica cuando el mensa e puede ser codificado como dato numrico (0) o alfanumrico (/) %s un caracter :8*BB, 0 o / que indica cuando el mensa e tiene prioridad (/ S se transmite inmediatamente) o no (0) %s un smbolo :8*BB entre 0VC que hace referencia a la tabla de O4alN timesP guardada en el terminal de paginaci&n!

9 : > 4

!.!.!.1.# *l comando 34econocido5 >uede tomar una de estas cuatro formas? Q:*TR Q*HRQopcionalRQ*HR Q<:TRQ*HRQopcionalRQ*HR QH8RQ*HRQopcionalRQ*HR Q%8*RQ%+4RQopcionalRQ*HR %l bloque recibido es aceptado, enve el pr&ximo %l bloque recibido contiene un error en el <checksum>, retransmitir! %l bloque recibido contiene un invalido <CP>, o los "ltimos C bloques han sido transmitidos con un error de <checksum> %l terminal de paginaci&n ha sido desconectado

!.!.!.1.' Calculo del chec6sum %l <checksum> es encontrado por la suma aritmtica de los valores de 1 bits de todos los procedentes caracteres en el bloque! Los /, bits menos significativos son agrupados en tres dgitos hexadecimales! !.!.!.1.( *+emplo de 5c6ec7sum8 *aracteres en el Bloque Q84DR 0 9alores %S*00 (:e;" 0, C0

/ , Q*HR : 6 * Q*HR Q%4DR

C/ C, +0 5/ 5, 5C 00 0C 4otal S /1J

%l bloque completo sera? OQ84DR0/,Q*HR:6*Q*HRQ%4DR/1JQ*HRP !.!.!.1.) 7n sencillo programa para calcular el chec6sum 8e tiene el siguiente bloque de mensa e FQ84DR0/,Q*HR:6*Q*HRQ%4DR/1JQ*HRF, un programa hecho en 6asic tendra la siguiente forma? H%2 V %ste e emplo en 6:8B* procesa el mensa e :8*BB H%2 V Q84DR / , C Q*HR : 6 * Q*HR Q%4DR H%2 V para luego ser enviado al terminal de paginaci&n 0:4: ,, 5J, 5-, 50, /C, L5, LL, L1, /C, C, 0 sum S 0 /0 H%:0 i B9 i S 0 4M%< ,0 i S i V (B<4(i3/,J) W /,J) 8A2 S 8A2 Xi 7+4+ /0 ,0 >HB<4 YLa suma aritmtica de los valores de 1 bit es O; sum H%2 8e debe convertir a sum en valores :8*BB tomando solo los H%2 V /, bits menos representativos o significativos dCS 5J X sum V B<4(sum 3 /L) W /L sum S B<4(sum 3 /L) d, S 5J X sum V B<4(sum 3 /L) W /L sum S B<4(sum 3 /L) d/ S 5J X sum V B<4(sum 3 /L) W /L H%2 Z 8e imprimen por pantalla para poder ser visualizados >HB<4 Fd/SF; d/, Fd,SF; d,, FdCSF; dC >HB<4 Fd/[SF; *MH[(d/), Fd,[SF; *MH[(d,), FdC[SF; *MH[(dC) !.!.# Secuencia de descone&in

%l dispositivo de entrada puede terminar la transferencia de todas las transacciones con OQ%+4RQ*HRP! %sto significa que el dispositivo de entrada puede finalizar la transferencia de todos los datos de paginaci&n $ el terminal de paginaci&n puede desconectarse!

!.!.'

*+emplo de transaccin

%l siguiente es un e emplo de la secuencia completa de entrada, transferencia de datos $ desconexi&n; se asume que el c&digo de seguridad es O/,C5P, la respuesta a transacci&n esta habilitada, el formato de bloque es C configurado para el formato >+*8:7 con 500 caracteres de longitud m#xima para cada mensa e?

2ispositi3o de entrada OQ*HRP

Terminal de paginacin OB0SP

*omentarios

OQ%8*R>7J/,C5P

%l dispositivo de entrada escoge el modo de paginaci&n completa! OQ:*TRQ*HRQopcionalR QL9RQ*HRP OQ%8*R;pQ*HRP %l terminal de paginaci&n reconoce el modo $ la clave %l terminal de paginaci&n esta listo para recibir el primer bloque %nva el bloque completo con el campo de paginaci&n, mensa e $ checNsum

OQ84DR C0005500,//0Q*HR :6*Q*HR Q%4DRCC5Q*HRP OQ:*TRQ*HRQopcionalR QL9RQ*HRP OQ%+4RQ*HRP OQ%8*RQ%+4RQ*HR QopcionalRQL9RQ*HRP

%l bloque recibido es aceptado, enve el pr&ximo %l dispositivo de entrada ha finalizado 0espedida!

Nota1 Los caracteres de control se pueden observar en el anexo /, llamado tabla de c&digos :8*BB!

An8lisis9 diseo : desarrollo de la solucin.

3.1

%n<lisis de requisitos del sistema. del so4t=are. y consideraciones para el model base

%l an#lisis del sistema es una actividad que engloba las tareas que realizara el sistema (soft'are, hard'are)! %ste estudio se centra en los elementos del sistema, lo cual conducir# a una definici&n del modelo base del sistema! #.1.1 Identi%icacin de las necesidades.

La empresas que brindan el servicio de envo de mensa es a buscapersonas, cuentan con la exigencia de distinguirse de la competencia; para crear esta diferencia $ ofrecer nuevos servicios $ tarifas, se debe partir tanto de la parte tcnica, administrativa $ comercial de la empresa! %ntre los principales requerimientos de las empresas del sector se tienen! /! 4omar venta a de nuevas tecnologas, como por e emplo el reconocimiento de voz, celulares, buz&n de voz, servicios de Bnternet, etc! ,! +frecer nuevos servicios basados en el traba o de red! C! 0isminuci&n del tiempo, en caso de una ampliaci&n, que solo se necesite conectar una nueva terminal en la red! 5! >oseer compatibilidad con protocolos 4*>3B>, se podr#n ofrecer servicios basados en Bnternet tales como mensa es a travs de la Eeb, correo electr&nico, etc! 5! %l mane o de la informaci&n del sistema, debe ser en una base de datos comercial, para evitar incompatibilidades entre plataformas! L! 2e or soporte tcnico, $ de tal forma menor tiempo de respuesta para llegar a una pronta soluci&n en caso de desperfectos, o daos en los programas! 8i se logra satisfacer estas necesidades, se puede resumir en los siguientes beneficios para los clientes $ para la empresa? /! *reara diferencia con las empresas del sector! ,! 2e oramiento del servicio prestado por la misma! C! :dministraci&n m#s eficiente del sistema!

5! 2e oramiento de la imagen ante los usuarios! 3.1.1.1 Fines generales del sistema
a$

%l fin fundamental de este sistema, es el envo de mensa es a un buscapersonas utilizando la topologa local5 en una red de buscapersonas!

b) 8e debe tener comunicaci&n en una red L:<, $ que cada usuario de la red L:< tenga la posibilidad tanto de enviar mensa es al terminal de paginaci&n o administrar los usuarios del sistema! c) 6rindar seguridad en la transmisi&n de los datos al terminal de paginaci&n! d) >oseer herramientas de administraci&n de los usuarios del sistema, en donde, se encuentre depositada todo los datos pertinentes, tanto tcnicos como administrativos! e) %nviar en una forma sencilla toda clase de mensa es ? <ormales o posfechados, mensa e de grupo, o alg"n otro mensa e que el administrador del sistema requiera! f) >oseer una conexi&n externa, la cual permita que los usuarios puedan entrar al sistema a enviar mensa es sin tener que pasar a travs de un operador que conteste una llamada telef&nica, esto reducira costos $ se dara un nuevo servicio a los clientes; esta conexi&n tambin debe verificar la seguridad de la transmisi&n 3.1.1.2 Funcionamiento y rendimiento requeridos
a$

8e debe tener compatibilidad con el protocolo de comunicaciones 4:>5 para enviar los mensa es al terminal de paginaci&n!

b) %n la comunicaci&n con el terminal de paginaci&n, se este vigilando constantemente esta transmisi&n $ cualquier dao, $a sea en los datos enviados como en hard'are de

Esta topolog%a se encuentra explicada en la seccin 2.1.3.1 Topologa local En la seccin 2.2 Protocolo de comunicacin del terminal de paginacin se explica con detalle el protocolo

-.P.

comunicaciones (terminal de paginaci&n $ enlace serial), informado de inmediato al operador de turno! c) %n la comunicaci&n del cliente externo, se debe verificar cada usuario que entre a travs de este enlace, $ que se generen mensa es de error en la comunicaci&n, tanto de intentos de entradas no autorizadas, como tambin sucesos en el hard'are del equipo tanto daos como reportes de estado! d) 8e debe llevar un hist&rico de los sucesos del sistema, $a sean daos o informaci&n pertinente al funcionamiento general! e) Los mensa es de cada usuario, ser#n guardados $ la cantidad de estos ser# definida por el administrador del sistema! f) %l aspecto de rendimiento en el envo del mensa e es fundamental, mas no crucial, debido a que los mensa es son enviados en velocidades mu$ ba as al terminal de paginaci&n de C00 bps a -L00 bps, as cualquier equipo de computo actual deber# ser capaz de mane ar este tipo de comunicaci&n sin presentar una desme ora importante en su rendimiento! 3.1.1.3 Tecnolog-a requerida y disponible %xisten , puntos del sistema que requieren de una tecnologa o desarrollo especial; primero se debe disponer de un terminal de paginaci&n, la forma de conexi&n ser# definida por el protocolo 4:>, o sea, que todo el desarrollo tiene que hacerse compatible con este est#ndar de los terminales de paginaci&n; segundo, la conexi&n con el cliente externo podr# realizarse mediante lneas conmutadas o par aislado, en todo caso esto conlleva a la utilizaci&n de modems, tanto de parte de quien presta el servicio como del que lo utiliza, as, los programas que se utilicen o desarrollen deben ser capaces de utilizar este tipo de hard'are!

>ara la comunicaci&n con un cliente externo se debe crear un protocolo para el envo de mensa es, este protocolo debe brindar cierta seguridad en el envo de los datos, o sea, que no permita la entrada de personas no autorizadas, adem#s debe ser pequeo $ flexible, para una utilizaci&n optima del tiempo en las lneas conmutadas, $a que si ha$ otros usuarios utilizando este servicio, se debe hacer que el uso de este servicio sea lo mas eficiente posible, para asegurar, que no se desperdicie tiempo realizando labores innecesarias o superfluas! 4oda la documentaci&n del protocolo de comunicaciones 4:> $ de los comandos del m&dem, se encuentran disponibles en manuales $ medios electr&nicos (Bnternet)! %l resto del sistema, no requiere un desarrollo especial, debido a que este, podr# realizarse con programas $ soft'are comercial; lo mismo es aplicable a la base de datos! 3.1.1.> Tipos de con4iguraciones. en la cone;in al terminal de paginacin. %n esta secci&n se discuten diferentes formas de conexi&n a los equipos de paginaci&n, la conexi&n definitiva vendr# dada por las necesidades especficas de cada operador del servicio $ los servicios que desee brindar a los usuarios! #.1.1.'.1 Cone&in directa. 8e utiliza cuando el computador cliente $ el terminal de paginaci&n se encuentran en el mismo edificio! 8e crea el enlace utilizando un puerto de comunicaciones del computador (>uertos seriales), el enlace se crea inicializando el puerto del computador con la misma configuraci&n del puerto de comunicaci&n del terminal de paginaci&n $ enviando los mensa es con el mismo protocolo del terminal!

Enlace en EIA/TIA 232C Terminal de paginacin Servidor/Cliente


9ig! /0 *onexi&n directa! #.1.1.'.! Cone&in a tra -s de mdem : lnea tele%nica. *uando la distancia entre el computador $ la terminal de paginaci&n se hace m#s extensa se debe pensar en una conexi&n mediante un par de cobre o una lnea telef&nica, si es por periodos cortos lo ideal es tener una lnea conmutada debido a su gran flexibilidad $ ba o costo, pero si el volumen de informaci&n es grande se pueden presentar algunas dificultades debido a la dependencia del proveedor del servicio telef&nico, poca seguridad en la red, problemas de ruido $ adem#s del costo adicional por el pago de la llamada (que en caso de un extenso volumen de informaci&n, el tiempo que se necesita estar conectado con el terminal de paginaci&n sera ma$or)!

Usuario final

Enlace con Protocolo TAP Servidor/Cliente Linea telefnica odem/!a" odem/!a" Terminal de paginacin Usuario final

9ig! // *onexi&n a travs de m&dem $ lnea telef&nica!

#.1.1.'.# Cone&in directa con un cliente e&terno %n ciertas ocasiones se hace necesario, no s&lo enviar mensa es desde una conexi&n directa al terminal de paginaci&n, sino tambin proveer el servicio a usuarios externos que no deseen utilizar el servicio de operadora, por desear una ma$or seguridad de sus mensa es o por poseer un n"mero considerable de mensa es, as se envan directamente al servidor donde este verifica la validez del usuario, para distribuir adecuadamente cada uno de los mensa es a su respectivo usuario!

Te rminal de paginacin

Usuario final

Clie nte Line a te le fnica ode m/!a" ode m/!a"

Servidor/Clie nte

9ig!/, *onexi&n directa con un cliente externo!

#.1.1.'.' Cone&in a un IS2 .Internet Ser ice 2ro ider0 An B8> (0nternet Ser3ice (ro3ider" es una compaa e&terna ;ue pro ee un enlace a Internet, esta se puede suministrar a organizaciones o individualmente! >ara crear el enlace entre %l B8> $ el servidor de mensa es se debe contar con un Internet Paging Gateway (IPG), que es un sistema de soft'are diseado para crear la interface entre los equipos codificadores e Internet. 7eneralmente se envia un eVmail (correo electr&nico) el cual se transmite directamente al buscapersonas utilizando una p#gina web.

%l sistema tambin podra enviar mensa es teniendo la base de datos conectada a una pagina en Internet en la cual se coloca la informaci&n de usuario $ mensa e para luego distribuirse adecuadamente a travs de la red! %l IPG reside entre Bnternet $ la compaa de buscapersonas, $ sirve de puente entre sus respectivas interfaces $ protocolos!

Enlace en %S232

Usuario final Servidor/Cliente Terminal de paginacin

ISP #/o IP$

Internet

IP$

ig! /C *onexi&n con un ISP. %n la gr#fica anterior se muestra la conexi&n con un B8>, el 8ervidor de mensa es se conecta $ descarga autom#ticamente los eVmail que han sido distribuidos por el IPG! %l IPG puede ser creado en lengua es de programaci&n com"nmente utilizados en Bnternet como \ava, *7B, >erl, etc!, este se crea en donde se encuentre la pagina Eeb, que podra ser el mismo B8> o un servidor diferente que preste el servicio de paginas Eeb! %l IPG se encarga de tomar los datos de la p#gina como son el c&digo del usuario $ mensa e, verificar que exista el c&digo del usuario para luego distribuirlo a una direcci&n de correo preestablecida! La lnea punteada de la fig! /C indica que el terminal de paginaci&n puede estar conectado directamente al ISP o sino a un computador externo! !me"age o

#.1.1.'.( Comparacin entre las di%erentes posibilidades de cone&in. Forma de cone;in Directa 9enta?as 0e ba o costo por la cantidad de equipos! 2es3enta?as >ocas posibilidades de expansi&n! 8olo permite la conexi&n de un usuario el cual enva los mensa es! /nea tele%nica >erfecta en caso de un ba o volumen de trafico de mensa es! 6a o costo 2u$ poco conveniente si el flu o de mensa es es alto! 0ependencia con el proveedor del servicio telef&nico! >oca seguridad en la red!

7ran flexibilidad, debido a que solo se necesita una lnea telef&nica para la conexi&n! Directa con cliente e&terno 0e ba o costo 7ran flexibilidad, debido a que solo se necesita una lnea telef&nica para la conexi&n! 2e ora en la seguridad del sistema 8e puede mane ar una ma$or cantidad de mensa es que con la conexi&n directa! IS2.0nternet Ser3ice pro3ider0 8e ofrecen nuevos servicios basados en Internet, como la distribuci&n de mensa es a travs de la red, mail (entrega de correo electr&nico directo al buscapersonas), $ la consulta de mensa es en cualquier parte del mundo! >ermite un cubrimiento m#s amplio del servicio!

>oca posibilidad de expansi&n 8e debe contar con el soft'are adecuado para el mane o de un cliente externo

La inversi&n en equipos $ soft'are es ma$or! 8e debe contar con un servicio de Internet permanente

8e debe contar con un IPG (Bnternet "aging gateway) que realice el enlace!

3.2

2e4inicin del model de la estructura del sistema.

Ka se han dado los primeros pasos en el an#lisis del sistema, se han definido las funciones del sistema, ahora se puede crear, un model& a desarrollar que represente las interrelaciones entre los diferentes elementos del sistema!
0dulo de comunicacin !-erminal de paginacin$ .dmin istrador Cliente

Cliente 0dulo de comunicacin !cliente externo$ /ase de datos Cliente

9ig /5 2odelo base del sistema! %l modelo presentado en la fig! /5 deber# estar soportado por una red L:<; en la secci&n anterior (#.$.$.% Ti"!s &e c!n'iguraci!nes, en (a c!ne)i*n a( termina( &e "aginaci*n) no se inclu$o una red de #rea local (L:<), la cual ofrece beneficios innegables para ofrecer un sistema mas amplio para el envo de mensa es; *omo se puede observar, todos los m&dulos se enlazan a la base de datos! %l tamao de esta viene dada por la cantidad de informaci&n, de usuarios, mensa es $ otros datos del sistema que contenga! La base de datos es compartida en una red para el f#cil acceso a los clientes del sistema! %l n"mero de clientes ser# dispuesto por el tamao de la red interna $ la configuraci&n del hard'are del servidor! #.!.1 Base de datos

%ncargada de soportar todas las entradas de informaci&n, seguridad en la entrega de los datos $ distribuci&n en una red de computadores, la base de datos esta constituida por las siguientes partes (o tablas)?

/ase de datos

E#entos del sistema

0antenimiento

0ensajes

1peradores

Sistema

(suarios

9ig!/5 0iagrama estructural de la base de datos! 3.2.1.1 E3entos del sistema


Campos 2ec3a45ora Cdigo 6escripcin

E#entos del sistema

9ig!/L %structura de la tabla %ventos del 8istema! >arte de la base de datos encargada de almacenar los acontecimientos del sistema, como son? %ntradas $ salidas en los m&dulos cliente, administraci&n $ de comunicaciones! *ambios en los datos de usuarios $ claves! %liminaci&n de informaci&n!

3.2.1.2 +antenimiento
0antenimiento Campos 1bser#aciones Cod/eeper Capcode 'mensaje 0arca 0odelo Serie 2ormato/lo7ue 2uncion .lfanumerico Prioridad -al8

9ig!/1 %structura de la tabla 2antenimiento! %sta parte de la base de datos se encarga de los buscapersonas que est#n en reparaci&n o mantenimiento, llevando un registro de estos equipos se logra tener un me or control de los daos! 3.2.1.3 +ensa?es
0ensajes Campos Codigo 0ensaje )ndice Estado de En#io 2ec3a y 5ora Capcode 1pciones 1perador En#io

9ig!/J %structura de la tabla 2ensa es %n esta parte se almacenan los datos referentes a todos los mensa es que van ha ser enviados a travs del m&dulo de comunicaci&n del terminal de paginaci&n, los mensa es son grabados originalmente con el estado de envo S <o, esto significa que estos mensa es est#n esperando para ser enviados, el m&dulo de comunicaciones peri&dicamente busca los mensa es no enviados o estado de envo igual a ]<o] para luego ser distribuidos a travs del terminal de paginaci&n! %n esta tabla se guarda los siguientes

datos ? c&digo del usuario, mensa e tipo alfanumrico, ndice de la cola de mensa es (sirve para llevar un consecutivo de mensa es), estado de envo del mensa e, fecha $ hora del envo, capcode del usuario, opciones (como son el formato de bloque, prioridad, talN, alfanumrico $ funci&n), operador quien enva el mensa e, $ envo (cuantas veces a sido reenviado el mensa e)! 3.2.1.> )peradores
1peradores Campos "o mbre .pellidos 6ireccion -elefono CC 6e 1bser#aciones 1perador Cla#e

9ig!/- %structura de la tabla +peradores! %sta informaci&n corresponde a las personas autorizadas para enviar mensa es en los equipos clientes conectados a la red, cada vez que un cliente intenta ingresar a la base de datos, se verifica el nombre o identificaci&n del operador con su respectiva clave, si la identificaci&n o clave no concuerda no se permite el acceso al sistema! Los operadores cuando ingresan al sistema podr#n realizar las siguientes labores? %nviar mensa es de usuario o grupo de usuarios! 6uscar informaci&n acerca del c&digo, nombre, apellido de un usuario registrado en la base de datos! Heenviar mensa es que $a han sido transmitidos al usuario!

3.2.1.@ Sistema
Sistema Campos PassSer# PassC6/ Ser#idor 'ongitud0ensaje .uto.rran7ue "u m0ensaje 1perador

9ig!,0 %structura de la tabla 8istema! %n este lugar la base de datos deposita informaci&n general acerca del sistema $ como debe operar, ha$ datos tales como la clave del equipo servidor de mensa es, clave administrativa, indicaci&n si el servidor de mensa es se encuentra activo, longitud de mensa es, autoarranque del servidor de mensa es, $ si se permite colocar n"mero mensa es $ c&digo del operador en los mensa es!

3.2.1.1 Asuarios
0antenimiento Campos "o mbre .pellidos 6ireccion -elefono1 -elefono2 "it 6e 1bser#aciones 1bs1perador Cod/eeper Capcode Capcode.ux 'mensaje 0arca 0odelo Serie 2ormato/lo7ue 2uncion .lfanumerico Prioridad -al8 Cuenta acti#a Cla#eEn#iar Cla#e9ecibir Cola0ensajes Cola )ndice

9ig!,/ %structura de la tabla Asuarios %n esta tabla se encuentra la informaci&n de los usuarios del sistema, estos datos se pueden dividir en varias clases, primero se encuentran los datos generales del cliente? nombre, apellidos, direcci&n, telefono/, telefono,, nit3cc de, observaciones $ las observaciones del usuario para el operador; en una segunda parte se colocan los datos del buscapersonas ? c&digo beeper, capcode, capcode auxiliar, longitud del mensa e, marca del buscapersonas, modelo, $ serie del equipo del usuario; en la tercera parte que se encuentra dividido se han puesto los datos tcnicos ? formato de bloque, funci&n, alfanumrico, prioridad, $ talN; en la "ltima parte se encuentran informaci&n referente a la cuenta como ? cuenta activa, clave para enviar mensa es,

clave para recibir mensa es, tamao de la cola mensa es, $ el ndice de la cola de mensa es! #.!.! "dulo de administracin.

%l m&dulo de administraci&n es el que se encarga de coordinar los diferentes m&dulos del sistema, adem#s a esta parte se le han asignado labores que solo competen al director del sistema! %ntre las tareas del administrador se encuentran? >ermitir la adici&n, modificaci&n, o borrado de registros tanto de usuarios, operadores, o buscapersonas en mantenimiento! *rear estadsticas de envos de mensa es como? 2es del ao ? 8e suman todos los mensa es enviados en el mes, desde enero hasta diciembre! 0a del mes ? 8e suman todos los mensa es del da del mes, desde el / hasta el "ltimo da del mes! 0as de la semana ? se suman los mensa es en el da, pero discriminados de Lunes a 0omingo! Mora del da ? %n las ,5 horas del da, se totaliza los mensa es enviados cada hora! Bmpresi&n de reportes o informes de los registros de la base de datos, se puede imprimir informaci&n de usuarios, operadores, mantenimiento o estadsticas! Bnspecci&n constante de eventos del sistema, como entradas $ salidas en los m&dulos cliente, administraci&n $ de comunicaciones, cambios en los datos de usuarios $ claves, o en la eliminaci&n de informaci&n!

*ambiar opciones del servidor conectado al terminal de paginaci&n, como ? colocar el numero $ operador al mensa e, iniciar autom#ticamente o cambiar la clave de entrada del servidor!

#.!.#

"dulo cliente.

%l traba o primordial de este es distribuir los mensa es a travs de una red de computadores hasta la base de datos para luego ser enviados al usuario correspondiente! Los clientes son mane ados por los operadores, cada vez que un operador intenta entrar, se pedir# su c&digo de acceso $ clave, solo los que se encuentren registrados en la base de datos con su correspondiente clave tendr#n ingreso al sistema! %ntre las labores de este m&dulo se encuentran? %nviar mensa es a los usuarios registrados $ activos del sistema! 6uscar datos de los usuarios, por nombre, apellido o c&digo! Heenviar a petici&n de un usuario en particular, los mensa es $a despachados anteriormente! #.!.' "dulo de comunicacin < terminal de paginacin.

%l sistema debe tener una interface entre los mensa es a enviar $ el protocolo del terminal de paginaci&n, esta es la labor fundamental de este m&dulo! %ntre las funciones de este m&dulo se encuentran? Ierificar que el terminal de paginaci&n se encuentre presente, o sea que se encuentre conectado al equipo $ encendido, para un correcto funcionamiento! *onectar al terminal de paginaci&n $ colocar en la tabla sistema el registro servidor en 8i, para avisar a lo clientes que se puede comenzar a enviar mensa es desde los clientes! %l servidor busca peri&dicamente mensa es sin enviar, los codifica en el protocolo que mane a el terminal de paginaci&n $ los despacha, luego hace el cambio respectivo en

la base de datos, o sea consigna en la base de datos que el mensa e ha sido enviado cambiando el valor del registro con O%stado de envo S 8iP! %l servidor tambin verifica que el mensa e no sea posfechado, o sea se pueden programar mensa es para que se despachen a una hora $ fecha programada, esto se logra cuando el servidor compara la fecha actual con la del mensa e si la fecha es ma$or que la actual el servidor no enva este mensa e, solo se distribu$e el mensa e cuando la fecha del mensa e sea menor o igual que la presente $ el O%stado de envo igual a <oP! #.!.( "dulo de comunicacin = cliente e&terno.

0ebido a la flexibilidad que ofrecen las lneas telef&nicas, es necesario pensar en la adopci&n de una estructura capaz de ofrecer el servicio de envo de mensa es a travs de una conexi&n con un par de modems! 0e esta forma el usuario podra enviar gran cantidad de mensa es sin tener que pasar a travs de un operador! %ste m&dulo est# equipado con una interface de soft'are el cual permite hacer la conexi&n con un m&dem compatible Ma$es, conectado a una lnea telef&nica, el protocolo para la comunicaci&n se diseara pensando en la velocidad $ flexibilidad del sistema!

Terminal de paginacin

Usuario final Servidor/Cliente

Cliente Linea telefnica odem odem LA(

9ig!,, *onexi&n con un cliente externo va telef&nica %ntre las funciones de este m&dulo se encuentran?

Clientes &%ed interna'

>roveer un enlace constante entre los usuarios externos (quienes se conectan a travs de un m&dem sobre una lnea telef&nica) $ el servidor de mensa es el cual se encarga de conectarse con la base de datos $ enviar los mensa es!

Ierificar la integridad de los datos en el envo de mensa es (que el usuario corresponda $ que se encuentre activo en la base de datos)!

2ane o de seguridad de los clientes externos, as no habr#n intromisiones de personas no autorizadas para el envo de mensa es!

3.3

Especi4icaciones especiales.

:parte de la compatibilidad con el protocolo del terminal de paginaci&n, se debe brindar tambin una opci&n de comunicaci&n para quienes utilizan la red en forma externa (sin utilizar los operadores telef&nicos), o sea mediante una conexi&n con modems; para esto se diseo el siguiente protocolo de comunicaci&n!

#.#.1

2rotocolo de comunicacin entre el ser idor : un cliente e&terno

%ste protocolo se diseo con el fin de proveer un enlace confiable $ seguro, para el envo de mensa es, por parte de un cliente externo a la red L:<! %l servidor es configurado solo en modo de respuesta, o sea que solamente contesta a las llamadas telef&nicas entrantes $ no se generan llamadas desde el servidor de mensa es, el protocolo solo esta diseado para traba ar con modems compatibles Ma$es, esto es utilizando comandos :4! La comunicaci&n entre el servidor $ el m&dem toma lugar mediante cadenas de texto :8*BB que terminan con un retorno de carro Q*HR o caracter n"mero /C en :8*BB! Nota1 8e puede observar una breve descripci&n de los comandos :4 en el :nexo ,! 3.3.1.1 *omandos del mdem. %l m&dulo de comunicaciones se comunica con el m&dem en forma de cadenas de ordenes que se conoce como comandos :4! La siguiente es la descripci&n de los comandos :4 utilizados en la comunicaci&n del m&dulo cliente, se inclu$en tanto las cadenas de inicializaci&n $ desconexi&n! 3.3.1.2 *adenas de inicialiBacin %l m&dem se inicializa para que conteste autom#ticamente las llamadas! 8e toman en cuenta par#metros tales como tiempo de espera de la portadora, volumen del parlante, caracter de escape, $ algunos otros! Las cadenas de inicializaci&n del m&dem son las siguiente ? A$> :4 @ *omando :4! Mace reset al m&dem!

A$*1?1@'ACBADB"1/SSCD)BSBDB1S!D'# :4 %/ *omando :4! Hecibir eco de los comandos!

I/ D5 ^*0 ^00 2/ L, 81SL0 80S0/ 8,S5C

Atilizar respuesta de c&digos en forma de texto! Mabilitar los c&digos de resultado extendido! :ctivar la detecci&n de portadora! %l m&dem ignora el 04H! %l parlante esta prendido hasta que la conexi&n sea estabilizada! %l parlante se coloca a la mitad del volumen! %spera de L0 segundos para la portadora %spera / timbre para contestar! %l caracter de escape es OXP

Las cadenas de inicializaci&n terminan con un retorno de carro Q*HR o caracter <o! /C, el cual indica al m&dem que la cadena termino $ que puede empezar a hacer las labores seleccionadas, se coloca una cadena como :4@ para hacer un reset en el m&dem $ hacer que el m&dem empiece con sus par#metros por defecto! 3.3.1.3 *adena de descone;in >ara que un m&dem vuelva al modo de comandos estando previamente en el modo en lnea, se necesita una cadena de desconexi&n, esta es una secuencia de escape definida o una seal de interrupci&n mientras est# en el modo en lnea, esta cadena es predefinida en la secuencia de inicializaci&n del m&dem! La cadena de desconexi&n ser# la siguiente? EEEFFFEEEA$HB ___ *rea un retardo de /!5 segundos! XXX 8ecuencia de escape, predefinido en el registro 8,, de la cadena de inicializaci&n! ___ *rea un retardo de /!5 segundos! :4 *omando :4! M0 *uelga la llamada! 3.3.1.> Secuencia de ingreso. La secuencia de ingreso se realiza despus de que se establece la comunicaci&n entre los modems, en esta el cliente externo se identifica mediante un c&digo de acceso, esto se hace para evitar entradas de personas o entidades no autorizadas!

Nota1 %n la siguiente descripci&n, las marcas OQ RP no son transmitidas $ son utilizadas para denotar un smbolo de control! Cliente e&terno *+<<%*4 Ser idor de mensa+es *+<<%*4 OB0SQ*HRP OppppQ*HRPP Comentarios *onexi&n establecida entre los modems! Bnicia la secuencia de entrada, enve c&digo de usuario %nva el c&digo de acceso, $ espera la respuesta de aceptaci&n o rechazo del servidor de mensa es! OQ:*TRQ*HR:*%>4:0 *lave aceptada + Q*HRP OQ<:TRQ*HR H%*M:@:0+Q*HRP 3.3.1.@ Trans4erencia de mensa?es. Ana vez realizada con xito la secuencia de ingreso, se podr# enviar mensa es utilizando la siguiente estructura de comandos, en donde OppppppppppP es el identificador del usuario a quien se le enva el mensa e! Cliente e&terno Ser idor de mensa+es Comentarios %l mensa e es aceptado, enve el pr&ximo mensa e! *lave no aceptada, el servidor de mensa es se desconecta!

OQ84DRppppppppppQ*HR Q:*TRQ*HR:*%>4:0 Qmensa eRQ*HRQ%4DR + Q*HR

Q<:TRQ*HRH%*M:@: %l mensa e contiene un usuario no 0+Q*HR v#lido, mensa e no enviado, contin"e con el pr&ximo mensa e Q%8*RQ%+4R:0B+8Q* %l servidor de mensa es se HR desconecto! 8i la longitud de Qmensa eR es ma$or que la soportada por el buscapersonas del usuario, el mensa e ser# truncado a la m#xima longitud de mensa e disponible! 3.3.1.1 Secuencia de descone;in %l servidor de mensa es puede terminar la transferencia de mensa es de todas las transacciones con la secuencia Q%8*RQ%+4R:0B+8Q*HR, el cliente se desconecta con Q%8*RQ%+4RQ*HR! :s el servidor de mensa es finaliza la comunicaci&n entre los

modems $ se desconectara de la lnea telef&nica!

3.3.1.& E?emplo de en3-o de mensa?es desde un cliente e;terno %l siguiente es un e emplo de la secuencia completa de ingreso, transferencia de mensa es $ desconexi&n; se inclu$en los comandos :4 del m&dem tanto de inicializaci&n $ desconexi&n, se asume que el telfono al cual esta conectado el m&dem es 555V5555, el c&digo de seguridad es O:6*0P $ que el c&digo del usuario es el C0,0! Cliente e&terno Ser idor de mensa+es :4@ Comentarios Heset del m&dem!

:4%/I/D5^*0^002/L Bnicializaci&n del m&dem! 881SL080S0/8,S5C :4@ :404 5555555 HB<7 *+<<%*4 *+<<%*4 OB0SQ*HRP O:6*0Q*HRPP Heset del m&dem del cliente! 2arca el telfono del servidor! 4imbra el telfono $ el servidor contesta! *onexi&n establecida entre los modems! Bnicia la secuencia de entrada, enve c&digo de usuario %nva el c&digo de acceso, $ espera la respuesta de aceptaci&n o rechazo del servidor de mensa es! OQ:*TRQ*HR:*%>4:0 *lave aceptada, puede empezar a enviar + Q*HRP mensa es! OQ84DRC0,0Q*HR 2ensa e de e emplo Q*HRQ%4DR Q:*TRQ*HR:*%>4:0 + Q*HR Q%8*RQ%+4RQ*H R 2ensa e al usuario C0,0!

%l mensa e es aceptado, enve el pr&ximo mensa e! %l cliente se desconecta!

Q%8*RQ%+4R:0B+8Q* %l servidor se desconecta! HR ___XXX___:4M0 %l servidor entra al modo de comandos $ cuelga la llamada!

Ana vez finalizada la sesi&n, el servidor se reiniciara nuevamente para esperar a un nuevo usuario, as se coloca al servidor en modo de espera autom#tico (el servidor contesta las llamadas sin que una persona este en el proceso)! Nota1 %n el anexo / se pueden observar los valores para los caracteres :8*BB de control que est#n entre la marcas OQ RP! 3.> Flu?o de in4ormacin entre los mdulos de comunicacin.

%n esta sesi&n se describir# la forma en que los diferentes m&dulos de comunicaciones comparten datos entre ellos; como son los clientes, $ clientes externos (que se conectan por m&dem), $ por supuesto la parte del sistema encargada de enviar los mensa es, el m&dulo de comunicaci&n con el terminal de paginaci&n! 8e observa que todo el flu o de informaci&n pasa a travs de un medio com"n, la base de datos, la cual brinda seguridad $ confianza en la entrega de los datos a cada uno de los m&dulos! %l siguiente es el esquema del flu o de datos entre los m&dulos de comunicaci&n?
0dulo de comunicacin !-erminal de paginacin$ ... ... ... ... ...

/ase de datos Tabla Mensajes ensa)e Envio 0ensaje 1 "o 0ensaje 2 Si 0ensaje & "o ... ... Tabla Usuarios Codigo Activo :::1 "o :::; Si :1:2 "o ... ...

0dulo de comunicacin !Cliente externo$

... ... ... ... ...

Cliente

9ig!,C 9lu o de informaci&n entre los m&dulos de comunicaci&n!

>ara que cualquiera de los m&dulos clientes (interno o externo) enven un mensa e a un usuario OxxxxP deber#n? Ierificar la validez del usuario o sea que exista en la base de datos en la tabla de Asuarios! `ue el usuario se encuentre activo en el sistema!

Luego de verificar esto se procede a crear un registro nuevo en la tabla 2ensa es llenando todos lo campos de la tabla (explicados anteriormente) $ con el campo O%stado S <oP, esto le indica al servidor que el mensa e no ha sido enviado! %l m&dulo que crea la comunicaci&n con el terminal de paginaci&n, verifica constantemente la tabla de mensa es, si encuentra registros que tengan el campo O%stado S <oP comprueba que la fecha3hora de envo no sea ma$or a la fecha3hora del sistema, si la fecha3hora es menor igual a la actual se codifica el mensa e al protocolo del terminal de paginaci&n $ se enva al terminal a travs de un puerto H8,C,, el servidor espera una respuesta valida (sin errores) del terminal $ cambia el campo O%stado S 8iP, esto significa que el mensa e ha sido enviado exitosamente! %n caso que la fecha3hora del mensa e sea ma$or a la actual, se de a el mensa e para ser transmitido cuando la fecha sea ma$or o igual a la actual, as se podr#n programar mensa es para una fecha $ hora determinados (mensa es posfechados)! 8i ocurren errores en el envo del mensa e estos quedaran registrados en la base de datos en la tabla de eventos, adem#s se genera una alarma para el operario del sistema! 3.@ %lgoritmos utiliBados para el control de las comunicaciones.

%n esta secci&n se mostraran los algoritmos, diseados para una adecuada $ segura comunicaci&n, tanto del m&dulo de comunicaci&n con el terminal de paginaci&n, como del m&dulo de comunicaci&n con el cliente externo!

#.(.1

Algoritmos de control de comunicaciones con el terminal de paginacin.

: continuaci&n se describen los algoritmos utilizados en la comunicaci&n con el terminal de paginaci&n; estos algoritmos inclu$en el control de errores, en caso de presentarse, tambin se muestra el tipo de error $ su descripci&n! [email protected] %lgoritmo para la secuencia de entrada al terminal de paginacin. :nteriormente se describi& la secuencia de entrada al terminal de paginaci&nL, ahora se vera como ese procedimiento se desarrolla en un algoritmo, que se puede llevar a un lengua e de programaci&n; tambin se especifican los tipos de errores que se pueden producir en dicha tarea !

<

Seccin 2.2.1 Secuencia de entrada ( ogon!

8e manda un *H al
Bniciar timeout %nvo de *H

terminal para comenzar la secuencia!

Ma$ respuestaSFB0SF $ no ha$ timeout 8i %nviar el modo de paginaci&n $ clave

<o

7enerar %rror

8e espera una respuesta correcta, si no se genera el error $ se sale!

Bniciar timeout

8e enva el modo de
%l terminal acept& $ no ha$ timeout 8i 8ecuencia de entrada realizada con exito <o 7enerar %rror

paginaci&n $ clave!

%l terminal debe aceptar la secuencia, en caso contrario se genera el respectivo error $ se sale de la secuencia! 8ecuencia realizada con xito, se puede comenzar a enviar mensa es!

$ipo de error 4imeout, tiempo fuera en la comunicaci&n!

Descripcin %l terminal de paginaci&n no contesto en el tiempo indicado; este tiempo esta definido en un segundo desde que se enva el mensa e! <o es reconocido el comando enviado! %l terminal de paginaci&n se desconecto, cerrando la sesi&n de envo de mensa es! <o se puede identificar la causa del error, puede indicar problemas en el envo de los datos!

%rror de envo <:T %l terminal se desconecto! %rror desconocido!

8i la secuencia de entrada es realizada sin errores, se puede proceder a enviar mensa es al terminal de paginaci&n!

[email protected] %lgoritmo para la secuencia de en3-o de mensa?es. : continuaci&n se describe el proceso de envo de mensa es desde el m&dulo de comunicaci&n al terminal de paginaci&n; este procedimiento se efect"a una vez se ha$a realizado la secuencia &e entra&a (+!g!n) en el terminal de paginaci&n, tambin se detallan los tipos de errores que pueden llegarse a producir en dicho proceso! %l algoritmo de la secuencia de entrada esta diseado, para que continuamente ha$a seguridad en la transmisi&n de datos por parte del m&dulo de comunicaci&n hacia el terminal de paginaci&n, cada vez que se genera un fallo el operador es informado mediante una alarma visual $ consignado en un archivo de registro, para un posterior examen del acontecimiento por parte del efe del sistema!

6usca registros con %stado S <o

6"squeda de los registros en la base de datos! Ierificaci&n que no ha$a sido enviado $ que no se sea posfechado!

Ierificaci&n del mensa e (%stadoS<o) $ (9echa QS 9echa :ctua)l 8i

<o

8e crea la trama del protocolo del terminal de paginaci&n! 8e enva el mensa e a travs del puerto serial, $ se activa el timeout! 0ebe haber respuesta antes de que termine el timeout, si no se genera el error! 8e verifica la respuesta del terminal que sea valida $ que no se ha$a generado un error en la transmisi&n! %xito en el envo, sigue con el siguiente registro!

*odificaci&n del mensa e en el protocolo del terminal de paginaci&n

%nvio del mensa e codificado al terminal de paginaci&n

:ctivaci&n del timeout en la comunicaci&n

Ma$ respuesta del terminal $ no se genero el timeout

<o

7enerar un error de timeout

8i

Ierificar respuesta v#lida

7enerar el error de respuesta invalida

8i

8e cambia el estadoS 8i para indicar exito en la transmisi&n

$ipo de error 4imeout, tiempo fuera en la comunicaci&n!

Descripcin %l terminal de paginaci&n no contesto en el tiempo indicado; este tiempo esta definido

en un segundo desde que se enva el mensa e! %rror de envo H8 %l bloque recibido contiene un invalido c&digo de usuario o los "ltimos C bloques han sido transmitidos con un error de QchecNsumR <o es reconocido el comando enviado! %l terminal de paginaci&n se desconecto, cerrando la sesi&n de envo de mensa es! <o se puede identificar la causa del error, puede indicar problemas en el envo de los datos!

%rror de envo <:T %l terminal se desconecto! %rror desconocido!

%l algoritmo de envo de mensa es esta diseado, para que siempre se compruebe la seguridad en la transmisi&n de datos por parte del m&dulo de comunicaci&n hacia el terminal de paginaci&n! %l terminal de paginaci&n puede terminar la transferencia de mensa es, $a sea por parte del m&dulo de comunicaci&n o por s mismo con la secuencia &e &esc!ne)i*n1 explicada anteriormente, se ha tenido en cuenta esto tanto en el algoritmo de la secuencia de entrada como en el envo de mensa es; cuando suceda ser# tratado como un error cuando el terminal se desconecte del m&dulo de comunicaciones, mas no as cuando el servidor enve la petici&n de desconexi&n para finalizar la sesi&n de envo de mensa es al terminal de paginaci&n!

#.(.!

Algoritmos de control de comunicaciones del mdulo del cliente e&terno.

: continuaci&n se describen los algoritmos utilizados en la comunicaci&n con el cliente externo; estos algoritmos inclu$en el control de errores, en caso de presentarse, tambin se muestra el tipo de error $ su descripci&n!

Seccin 2.2.3 Secuencia de descone"in

[email protected] %lgoritmo para la secuencia de ingreso para un cliente e;terno. 0e antemano se describi& la secuencia de ingreso de un cliente externo, ahora se vera como ese procedimiento se desarrolla en un algoritmo, que se puede llevarse a un lengua e de programaci&n; tambin se detallan los tipos de errores que se pueden producir en dicho proceso! $ipo de error 4imeout, tiempo fuera en la comunicaci&n! Descripcin %l cliente no contesto en el tiempo indicado; este tiempo esta definido en un segundo desde que se enva el mensa e! <o es reconocido el comando enviado! %l cliente se desconecto, cerrando la sesi&n de envo de mensa es! <o se puede identificar la causa del error, puede indicar problemas en el envo de los datos!

%rror de envo <:T %l terminal se desconecto! %rror desconocido!

%n el establecimiento del enlace entre los modems se mane an los errores correspondientes, $ no se explican aqu debido a que esta tarea es llevada a cabo en su totalidad por el par de modems! 8i la secuencia de ingreso se e ecuta sin errores, se puede proceder a enviar mensa es! [email protected] %lgoritmo para la secuencia de en3-o de mensa?es desde un cliente e;terno. : continuaci&n se describe el procedimiento de envo de mensa es desde un cliente externo; esta tarea se efect"a una vez se ha$a realizado la secuencia de ingreso, tambin se detallan los tipos de fallos que pueden llegarse a producir en dicha labor! %l algoritmo de la secuencia de entrada esta creado, para que ha$a confianza en la transmisi&n de datos por parte del cliente externo, cada vez que se genera un fallo el operador es informado mediante una alarma visual $ consignado en un archivo de registro (en la base de datos tabla eventos)!

%l algoritmo de envo de mensa es esta diseado, para que siempre se compruebe la seguridad en la transmisi&n de datos por parte del m&dulo de comunicaci&n hacia el cliente externo, cada vez que se genera un error el operario es informado mediante una alarma visual $ consignado en un archivo de registro, para un posterior an#lisis del suceso por parte del administrador del sistema! %l cliente puede terminar la transferencia de mensa es, $a sea por parte del m&dulo de comunicaci&n o por s mismo con la secuencia de desconexi&n (explicada anteriormente), se ha tenido en cuenta esto tanto en el algoritmo de la secuencia de ingreso como en el envo de mensa es; cuando suceda, esto ser# tratado como un error cuando el cliente se desconecte del m&dulo de comunicaciones, mas no as cuando el servidor enve la petici&n de desconexi&n para finalizar la sesi&n de envo de mensa es al terminal de paginaci&n!

Hecepci&n de un bloque completo de mensa e

%nvo de bloque de mensa e desde el cliente! Ierificaci&n del c&digo de usuario!

<o

%l FppppppppppF es v#lido $ se encuentra activo

8i

8e guarda el mensa e si el c&digo es v#lido $ se encuentra activo! 8i no se genera un error; se inicializa el timeout en la comunicaci&n! Ma$ envo de datos v#lidos desde el cliente, si se genera un timeout se finaliza la sesi&n! 8e finaliza sesi&n con la secuencia de desconexi&n!

8e salva el mensa e completo en la tabla de mensa es

7enerar error

Bniciar timeout

8i

Llego un nuevo mensa e $ no se genero un timeout <o 9inalizar sesi&n

$ipo de error 4imeout, tiempo fuera en la comunicaci&n! %rror de envo <:T %l terminal se desconecto! %rror desconocido!

Descripcin %l cliente no contesto en el tiempo indicado; este tiempo esta definido en un segundo desde que se enva el mensa e! <o es reconocido el comando enviado! %l cliente se desconecto, cerrando la sesi&n de envo de mensa es! <o se puede identificar la causa del error, puede indicar problemas en el envo de los datos!

3.1

*odi4icacin

%n la codificaci&n se llega al ob etivo final del diseo ? traducir las representaciones del soft'are a una forma que pueda ser comprendida por el computador! %l paso de la codificaci&n traduce una representaci&n del soft'are, dada por un diseo, a una realizaci&n en un lengua e de programaci&n! #.).1 $ipo de lengua+e utili,ado : herramientas utili,adas.

%n la codificaci&n del programa se realizo en el lengua e de programaci&n Iisual 6asic; como su nombre lo indica este es un entorno de programaci&n visual $ por lo tanto involucra elementos de este tipo! Las caractersticas avanzadas de Iisual 6asic 5!0, como la compilaci&n optimizada de c&digo nativo, el procesamiento m#s r#pido de formularios $ el acceso me orado a bases de datos, permiten crear aplicaciones $ componentes r#pidos $ de alto rendimiento! %l tipo de programaci&n utilizado es orientada a ob etos, generalmente a los procedimientos asociados a cada ob eto se le denomina mtodo $ a una acci&n (mover el 2ouse, presionar tecla, etc!) asociada al ob eto se le llama evento! 8e utilizan ob etos de acceso a datos (0:+, 0ata :ccess +b ects), se habilitan para utilizar el acceso $ manipular datos en bases de datos locales o remotas $ administrar bases de datos, los ob etos $ la estructura! 8e aprovecha la herramienta de comunicaciones 28*omm (control +L%), el cual provee comunicaci&n serial para la aplicaci&n, permitiendo la transmisi&n $ recepci&n de datos a travs de un puerto serial! #.).! Cdigo %uente

%n el Oanexo :P llamado c*&ig! 'uente, solo se considero el c&digo escrito m#s no los elementos visuales como son ? iconos, im#genes, formas, etc! 2as sin embargo todos los

elementos visuales incluidos el c&digo fuente $ compilado se encuentran en un anexo que viene en medio magntico! : pesar de que existen muchos modelos para la creaci&n de comentarios se tomo un patr&n, con comentarios de "r!(!g! $ tambin &escri"ti,!s. :l principio de cada m&dulo $ funci&n debe haber un comentario de prologo! %l formato para este comentario es ? / , C 5 5 L 1 J Ana sentencia de prop&sito que indique la funci&n del m&dulo! % emplo de secuencia de llamada! 0escripci&n de argumentos de entrada $ de salida! 9unciones utilizadas! %xplicaci&n de los datos pertinentes $ observaciones! 0iseador del m&dulo! %l revisor! 9echas de modificaci&n $ descripci&n!

Los comentarios descriptivos se inclu$en en el cuerpo del c&digo fuente $ se usan para describir el procesamiento que se realiza! Los comentarios vienen precedidos del caracter ; ] =! 4odo el c&digo fuente viene tabulado en bloques de operaci&n, por e emplo, cada bloque B9V%L8%V%<0 B9, tendr# dentro c&digo, con un espacio ma$or en caracteres con respecto al anterior! 4abulador 5 B9 (*ondicion) 4abulador J +perador/ :ccion/ !!! %L8% +perador/ :ccion, !!! %<0 B9

%sto facilita la lectura del c&digo fuente $ se realiza menos esfuerzo en comprender bloques de operaci&n del c&digo!

Conclusiones %l sistema de envo de mensa es es una soluci&n para los proveedores del servicio de buscapersonas, dando respuesta a la necesidad de un pro$ecto que tomara las venta as de las redes L:< con los pequeos $ medianos terminales de paginaci&n para proveer un buen servicio a sus clientes, as las pequeas $ medianas empresas que prestan el servicio de buscapersonas podr#n competir con empresas m#s grandes, las cuales generalmente desarrollan su propio soft'are de aplicaci&n para el envo de mensa es! %l sistema de envo de mensa es, permite que operarios enven mensa es alfanumricos en los sistemas de buscapersonas de #rea local! %sto se logra desde m"ltiples terminales en la red o desde una conexi&n externa, $ as se pueden enviar los mensa es a un terminal de paginaci&n, el cual codifica el mensa e $ lo coloca en la cola de transmisi&n, para luego ser transmitido al usuario final!

8e pueden brindar soluciones adicionales a proveedores del servicio de

buscapersonas, como por e emplo, servicios basados en Internet discutido en la secci&n C!nsi&eraci!nes en (a '!rma &e c!ne)i*n entre e( ser,i&!r y e( termina( &e "aginaci*n-, en el apartado C!ne)i*n a un ISP (Internet Ser,ice Pr!,i&er). , esta conexi&n ofrecera nuevos tipos de servicios relacionados con Internet.

Seccin &.1.1.+ Seccin &.1.1.+.+

>

La implementaci&n de este tipo de sistema implica tener la suficiente cantidad de usuarios $ que adem#s exista una necesidad real para que sea rentable! %n este traba o se labora b#sicamente una forma de enviar mensa es, que es personas enviando mensa es a personas, para traba os futuros se podran explorar otros tipos de maneras de enviar mensa es, por e emplo ? >ersonas enviando mensa es a cosas! Las cosas enviando mensa es a las personas! Las cosas enviando mensa es a las cosas! :s se podran ofrecer nuevos adelantos en este competitivo campo, por e emplo en *hile, los servicios de cotizaciones para la bolsa de valores se est#n poniendo de moda a travs de buscapersonas, aqu en *olombia, si se roban un carro, pueden apagar el motor activando un buscapersonas oculto en el sistema elctrico del mismo; no seria bueno tambin, que el sistema de seguridad de una casa, oficina, fabrica, etc! fuera capaz de enviar un mensa e a un buscapersonas cada vez que la alarma se activara, o en caso de un proceso industrial se generaran mensa es de alarmas, estado, etc! en casos preestablecidos por el ingeniero en efe! >ara la Aniversidad queda un traba o de comunicaciones, en el #rea de buscapersonas; de este traba o se pueden desprender otros relacionados con el tema! 8e resuelve el problema b#sico de envi& de mensa es, sumado a esto se hacen algunas consideraciones de las necesidades actuales $ las que podran ser en un futuro cercano!
An futuro traba o tambin podra relacionarse con la t!"!(!g/a &e re& &e

busca"ers!nas regi!na(, naci!na( ! internaci!na(0, ofreciendo compatibilidad con el protocolo 4<>> (4elocator <et'orN >aging >rotocol) de los terminales de paginaci&n,

Explicado en la seccin 2.1.&.2

as se puede ofrecer un servicio con ma$or cubrimiento que el de la t!"!(!gia (!ca(1, del cual trata este traba o!

Explicado en la seccin 2.1.&.1

Los conocimientos adquiridos en el #rea de comunicaciones son mu$ valiosos $a que brindan una visi&n m#s amplia los sistemas buscapersonas, configuraciones de redes de envi& de mensa es, protocolos utilizados tanto en el terminal de paginaci&n, como el protocolo que mane a el equipo buscapersonas, problemas actuales $ expectativas futuras (integraci&n con otros servicios de comunicaciones)!

Ane&o A. Cdigo %uente

+dulos comunes %l siguiente es el listado de los m&dulos comunes a todos los programas!

"dulo de comunicacin %n este programa se declaran variables $ procedimientos que ser#n utilizados en las comunicaciones seriales, se definen tambin las constantes de error $ de estructura de la trama de transmisi&n con el terminal de paginaci&n, como tambin el nombre $ variable de base de datos! ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? 2odulo comunicaci&n ]>H+>+8B4+ ? 0eclarar variables $ procedimientos que ser#n utilizados ]en las comunicaciones seriales, se definen tambin las constantes de ]error $ de estructura de la trama, como tambin la db ]%\%2>L+ 0% LL:2:0: ? <inguna ]%<4H:0:8 ? <inguna ]8:LB0:8 ? <inguna ]+68%HI:*B+<%8 ? Las variables $ funciones que aparecen en este m&dulo ]son comunes a todos lo programas del sistema ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]%rrores en la comunicacion

>ublic *onst 0% S 0 ]dato enviado correctamente >ublic *onst 0<% S / ]dato no enviado correctamente >ublic *onst 04 S , ]0esconexion del terminal >ublic *onst 49 S C ]4iempo fuera >ublic *onst %0 S 5 ]4iempo fuera ]base de datos del sistema >ublic 2$EorNspace :s EorNspace >ublic 2$0atabase :s 0atabase ] 0efine el nombre de la base de datos! 7lobal *onst 2$9ile S F062%<6!206F 7lobal *onst 2$9ile+pt S F8%42%<8!B<BF ]*onstantes para comunicaciones ]*onstantes para la configuracion de la trama >ublic *onst *H S /C >ublic *onst %8* S ,1 >ublic *onst 84D S , >ublic *onst %4D S C >ublic *onst %+4 S 5 >ublic *onst L9 S /0 >ublic *onst :*T S L >ublic *onst <:T S ,/ >ublic *onst H8 S C0 >ublic *onst 8+M S / ] >ublicas variables >ublic %cho ] %cho +n3+ff flag! ]Ialores constantes en la comunicacion serial de I6 >ublic *onst vb28*omm%vHeceive S , >ublic *onst vb28*omm%v8end S / >ublic *onst vb28*omm%v*48 S C >ublic *onst vb28*omm%v08H S 5 >ublic *onst vb28*omm%v*0 S 5 >ublic *onst vb28*omm%vHing S L >ublic *onst vb28*omm%v%+9 S 1 >ublic *onst vb28*omm%r6reaN S /00/ >ublic *onst vb28*omm%r*484+ S /00, >ublic *onst vb28*omm%r08H4+ S /00C >ublic *onst vb28*omm%r9rame S /005 >ublic *onst vb28*omm%r+verrun S /005 >ublic *onst vb28*omm%r*04+ S /00L >ublic *onst vb28*omm%rHx+ver S /001 >ublic *onst vb28*omm%rHx>arit$ S /00J >ublic *onst vb28*omm%r4x9ull S /00]*onstante para la verificaci&n de usuarios $ estructura >ublic *onst <o%xiste S / >ublic *onst %xiste S , >ublic *onst <o:ctivo S C >ublic *onst *lave<oIalida S 5 >ublic *onst %rrorde4rama S 5

]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? >rocedimiento 7uardar%ventos ]>H+>+8B4+ ? 8alvar en la base de datos los eventos que ocurren en el ]sistema ]%\%2>L+ 0% LL:2:0: ? (9echaMora%, *odigo%, 0escrip%) ]%<4H:0:8 ? 9echaMora% S 9echa $ hora en la que ocurre el evento ] *odigo% S *odigo de operador que genero el evento ] 0escrip% S 0escripcion del evento ]8:LB0:8 ? 0ebe grabar los datos a la 06 si existe algun error se ] al usuario ]>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <inguno ]+68%HI:*B+<%8 ? %l *&digo debe ser del siguiente formato Fd3m3K MM?22?88, si existe algun error al grabar los datos se informa al usuario!F ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 8ub 7uardar%ventos(6$Ial 9echaMora% :s Iariant, 6$Ial *odigo% :s 8tring, 6$Ial 0escrip% :s 8tring) 0im *ad8 :s 8tring 0im 2$4able :s Hecordset +n %rror 7o4o 06%rrorMandler ] 8i ha$ errores $a sabe que hacer! *ad8 S Fselect W from %ventosF 8et 2$4able S 2$0atabase!+penHecordset(*ad8, db+pen0$naset) Eith 2$4able !:dd<e' ]prepara para cambiar b9echaMora S 9echaMora% b*odigo S *odigo% b0escripcion S 0escrip% !Apdate %nd Eith 2$4able!*lose 8et 2$4able S <othing %xit 8ub 06%rrorMandler? 8elect *ase %rr *ase C0,5? 2sg6ox F<o se puede abrir la base de datos!F, vb%xclamation *ase C0,,? 2sg6ox F%l usuario $a existe en la base de datos!F, vb%xclamation *ase CC/5? 2sg6ox F0ebe llenar todos los campos!F, vb%xclamation *ase -/? 2sg6ox F<o se ha abierto la base de datos!F, vb%xclamation *ase %lse? 2sg6ox %rr ^ %rr!0escription, vb%xclamation %nd 8elect ]cerrar tabla 8et 2$4able S <othing %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? 9unci&n 6uscar ]>H+>+8B4+ ? %sta funci&n crea un sql buscando una tabla especifica el ] campo con un valor seleccionado $ devuelve si lo encontr& ] o no registros

]%\%2>L+ 0% LL:2:0: ? 6uscar(8`L) ]%<4H:0:8 ? 8`L S 0atos en una instrucci&n sql est#ndar de 2icrosoft ]8:LB0:8 ? Ialor boleano ]>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <inguno! ]+68%HI:*B+<%8 ? %l 8`L es referenciado al sql de 2icrosoft :ccess ] si 6uscar S 4rue existe la b"squeda ] $ por lo tanto ha$ registros en la 06 ] si 6uscar S 9alse no existen los registros en la 06 ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 9unction 6uscar(8`L :s 8tring) :s 6oolean 0im *ad8 :s 8tring 0im 2$4able :s Hecordset +n %rror 7o4o 06%rrorMandler ] 8i ha$ errores $a sabe que hacer! ] :brir tabla! 8et 2$4able S 2$0atabase!+penHecordset(8`L, db+pen0$naset) Eith 2$4able Bf !Hecord*ount 4hen 6uscar S 4rue ]existe la busqueda %lse 6uscar S 9alse ]no existe el registro %nd Bf %nd Eith 2$4able!*lose 8et 2$4able S <othing %xit 9unction 06%rrorMandler? 8elect *ase %rr *ase C0,5? 2sg6ox F<o se puede abrir la base de datos!F, vb%xclamation *ase C0,,? 2sg6ox F%l usuario $a existe en la base de datos!F, vb%xclamation *ase CC/5? 2sg6ox F0ebe llenar todos los campos!F, vb%xclamation *ase -/? 2sg6ox F<o se ha abierto la base de datos!F, vb%xclamation *ase %lse? 2sg6ox %rr ^ %rr!0escription, vb%xclamation %nd 8elect ]cerrar tabla 8et 2$4able S <othing %nd 9unction ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? procedimiento I442en ]>H+>+8B4+ ? Ierificar el tamao de la tabla de mensa es ]%\%2>L+ 0% LL:2:0: ? I442en(*odigo,*olaBnd) ]%<4H:0:8 ? *odigo S *&digo del cliente ] *olaBnd S <"mero del mensa e actual ]8:LB0:8 ? 8e modifica la 06 borrando el mensa e que tenga el mismo ] n"mero de *olaBnd ]>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <inguno ]+68%HI:*B+<%8 ? %l ]*&digo] debe de estar previamente verificado ]exista, activo, etc! ] si existe error en el acceso a la 06 se reporta al ]usuario

]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /0VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 8ub I442en(6$Ial *odigo :s 8tring, 6$Ial *olaBnd :s Bnteger) 0im *ap*ode :s 8tring, 2ensa e :s 8tring, +pciones :s 8tring 0im i, Hesp 0im *ad8 :s 8tring 0im st*ad :s 8tring 0im 2$4able :s Hecordset +n %rror 7o4o 06%rrorMandler ] 8i ha$ errores $a sabe que hacer! *ad8 S Fselect W from 2ensa es 'here *odigo S ]F ^ *odigo ^ F] +rder 6$ BndiceF 8et 2$4able S 2$0atabase!+penHecordset(*ad8, db+pen0$naset) Bf 2$4able!Hecord*ount QR 0 4hen Eith 2$4able !2oveLast ] llena el recordset !9ind9irst FBndice S F ^ *olaBnd ^ FF Bf <ot !<o2atch 4hen !0elete ] borra el mensa e anterior %nd Bf %nd Eith %nd Bf 2$4able!*lose 8et 2$4able S <othing %xit 8ub 06%rrorMandler? 8elect *ase %rr *ase C0,5? 2sg6ox F<o se puede abrir la base de datos!F, vb%xclamation *ase C0,,? 2sg6ox F%l usuario $a existe en la 06!F, vb%xclamation *ase CC/5? 2sg6ox F0ebe llenar todos los campos!F, vb%xclamation *ase -/? 2sg6ox F<o se ha abierto la base de datos!F, vb%xclamation *ase %lse? 2sg6ox %rr!0escription ^ F F ^ %rr, vb%xclamation %nd 8elect ]cerrar tabla 8et 2$4able S <othing %nd 8ub (rograma de administracin %l programa de administraci&n es el que se encarga de coordinar los diferentes m&dulos, adem#s a esta funci&n, se le han asignado labores que solo competen al director del sistema! "dulo mdlAdmin %ste m&dulo es usado para declarar variables globales a todo el programa, en este m&dulo se declara tambin la funci&n FmainF que es el primer procedimiento que se carga cuando se entra al programa!

]Iariables globales >ublic Logon%fectuado :s 6oolean >ublic >ath06 :s 8tring >ublic *lave :s 8tring >ublic *lave:dmin :s 8tring >ublic txt+per :s 8tring aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? >rocedimiento 2ain ]>H+>+8B4+ ? >rimer procedimiento que carga cuando entra al programa ]%\%2>L+ 0% LL:2:0: ? <inguno ]%<4H:0:8 ? <inguna ]8:LB0:8 ? >ath06 S >ath de la db es utilizado globalmente ]>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <inguno ]+68%HI:*B+<%8 ? 8e verifica en el registro de Eindo's si se ]grabo el path de la 06 en caso contrario se de a que el usuario ]lo inserte $ se graba en el registro, lugo se despliega la ]forma ]frmlogin] para pedir la clave $ se verifica Logon%fectuado ]para ver si se realizo adecuadamente el ingreso de la clave ]en caso de error se avisa al usuario $ se sale del programa ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 8ub 2ain() 0im Hesp +n %rror 7o4o 06%rrorMandler ] 8i ha$ errores $a sabe que hacer! frm8plash!8ho' frm8plash!4op S ,00 frm8plash!Hefresh L98 S *hr[(/C) ^ *hr[(/0) >ath06 S 7et8etting(F2ensa esF, F>athF, F6asededatosF, FF) :tras? Bf >ath06 S FF 4hen mdi>rincipal!0ial*omu!8ho'+pen >ath06 S mdi>rincipal!0ial*omu!filename Bf >ath06 QR FF 4hen 8ave8etting F2ensa esF, F>athF, F6asededatosF, >ath06 %lse %nd %nd Bf %nd Bf 8et 2$EorNspace S EorNspaces(0) 8et 2$0atabase S 2$EorNspace!+pen0atabase(>ath06) frmLogin!8ho' / Bf Logon%fectuado 4hen mdi>rincipal!8ho' %lse 2$0atabase!*lose %nd %nd Bf

Anload frm8plash %xit 8ub 06%rrorMandler? 8elect *ase %rr *ase C0,5? 2sg6ox F<o se puede abrir la base de datos!F, vb*ritical *ase C0,,? 2sg6ox F%l usuario $a existe en la base de datos!F, vb%xclamation *ase -/? 2sg6ox F<o se ha abierto la base de datos!F, vb%xclamation *ase %lse? 2sg6ox %rr!0escription, vb%xclamation %nd 8elect %nd %nd 8ub Gorma mdi2rincipal La forma mdi>rincipal, es la forma central esta contiene men"s $ submen"s, que hace de interface entre todos los elementos del programa de administraci&n! 0im frm%ventos :s <e' frmgrdAsuarios ] se utiliza como forma hi a frmgrdAsuarios ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? >rocedimiento 7rabar*lave:dmin ]>H+>+8B4+ ? 7rabar en la 06 una nueva clave :dministrativa ]%\%2>L+ 0% LL:2:0: ? 7rabar*lave:dmin(:dmin*lave) ]%<4H:0:8 ? :dmin*lave S 4exto que representa una clave a ]ser guardad en la 06 ]8:LB0:8 ? <inguna ]>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <inguno ]+68%HI:*B+<%8 ? 8e abre la base de datos $ se modifica el ]la tabla 8istena en el campo >ass*06 grabando este campo ]con el valor de :dmin*lave ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 8ub 7rabar*lave:dmin(:dmin*lave :s 8tring) 0im *ap*ode :s 8tring, 2ensa e :s 8tring, +pciones :s 8tring 0im i, Hesp, *ad8, 4mp 0im 2$4able :s Hecordset +n %rror 7o4o 06%rrorMandler ] 8i ha$ errores $a sabe que hacer! ] :brir tabla! *ad8 S Fselect W from 8istemaF 8et 2$4able S 2$0atabase!+penHecordset(*ad8, db+pen0$naset) Bf 2$4able!Hecord*ount QR 0 4hen Eith 2$4able !2oveLast ] Llena el Hecordset! !%dit b>ass*06 S :dmin*lave !Apdate %nd Eith %lse

2sg6ox F<o existe el registro de configuraci&n!F, vb*ritical, F%rrorF %nd Bf 2$4able!*lose 8et 2$4able S <othing %xit 8ub 06%rrorMandler? 8elect *ase %rr *ase C0,5? 2sg6ox F<o se puede abrir la base de datos!F, vb%xclamation *ase C0,,? 2sg6ox F%l usuario $a existe en la base de datos!F, vb%xclamation *ase CC/5? 2sg6ox F0ebe llenar todos los campos!F, vb%xclamation *ase -/? 2sg6ox F<o se ha abierto la base de datos!F, vb%xclamation *ase %lse? 2sg6ox %rr ^ %rr!0escription, vb%xclamation %nd 8elect ]cerrar tabla 8et 2$4able S <othing %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento id:bouta*licN ]>H+>+8B4+ ? 0esplegar la forma frm8plash ]%\%2>L+ 0% LL:2:0: ? <inguna ]%<4H:0:8 ? <inguna ]8:LB0:8 ? <inguna ]>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <inguno ]+68%HI:*B+<%8 ? 8e coloca el boton cmd+N visible, ]luego se muestra la forma en forma modal ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub id:bouta*licN() frm8plash!cmd+N!Iisible S 4rue frm8plash!8ho' / %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento id6orrar%ventosa*licN ]>H+>+8B4+ ? 6orrar eventos de la 06 ]%\%2>L+ 0% LL:2:0: ? <inguno ]%<4H:0:8 ? <inguna ]8:LB0:8 ? <inguna ]>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <inguno ]+68%HI:*B+<%8 ? 8e toman todos los elementos seleccionados ]de la forma frm%ventos en el grid grdAsuarios, se borra ]uno a uno hasta llegar al final de la lista! ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub id6orrar%ventosa*licN() 0im i

9or i S 0 4o frm%ventos!grdAsuarios!8el6ooNmarNs!*ount V / ]todos los registros seleccionados frm%ventos!dat>rimar$H8!Hecordset!6ooNmarN S frm%ventos!grdAsuarios!8el6ooNmarNs(i) ]se posiciona en el seleccionado frm%ventos!dat>rimar$H8!Hecordset!0elete <ext i frm%ventos!dat>rimar$H8!Hefresh %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento id6orrarAsuariosa*licN ]>H+>+8B4+ ? 6orrar usuarios de la 06 ]%\%2>L+ 0% LL:2:0: ? <inguno ]%<4H:0:8 ? <inguna ]8:LB0:8 ? <inguna ]>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <inguno ]+68%HI:*B+<%8 ? 8e toman todos los elementos seleccionados ]de la forma frmgrdAsuarios en el grid grdAsuarios, se borra ]uno a uno hasta llegar al final de la lista! ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub id6orrarAsuariosa*licN() +n %rror Hesume <ext 0im i 9or i S 0 4o frmgrdAsuarios!grdAsuarios!8el6ooNmarNs!*ount V / ]todos los registros seleccionados frmgrdAsuarios!dat>rimar$H8!Hecordset!6ooNmarN S frmgrdAsuarios!grdAsuarios!8el6ooNmarNs(i) ]se posiciona en el seleccionado frmgrdAsuarios!dat>rimar$H8!Hecordset!0elete <ext i frm%ventos!dat>rimar$H8!Hefresh %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento id*ambiar06a*licN ]>H+>+8B4+ ? *ambiar la base de datos del programa ]%\%2>L+ 0% LL:2:0: ? <inguno ]%<4H:0:8 ? <inguna ]8:LB0:8 ? <inguna ]>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ?/) 7uardar%ventos, ],)0elete8etting (I6)! ]+68%HI:*B+<%8 ? 8e pide confirmaci&n de la acci&n al usuario ]luego se guarda el evento $ se borra la ruta de la base de ]datos del registro, cuando se logra esto se avisa al usuario ]que debe reiniciar el programa para que los cambios surtan ]efecto ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ?

]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub id*ambiar06a*licN() 0im Hesp Hesp S 2sg6ox(F0ebe volver a iniciar la aplicaci&n $ escoger la nueva base de datos! 0esea cambiar la base de datosGF, vbKes<o, F*ambiar base de datos de :dminF) Bf Hesp S vbKes 4hen 7uardar%ventos <o', F:dminF, F*ambio de la base de datos de mensa es :dminF 0elete8etting F2ensa esF, F>athF, F6asededatosF 2sg6ox F8e debe reiniciar la aplicaci&n,eli a la base de datos cuando se reiniciebF, vbBnformation, F9inalizarbF Anload 2e %lse 2sg6ox F<o se realizo el cambio de la base de datosbF, vbBnformation, F8in cambiosbF %nd Bf %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento id*ascadaa*licN ]>H+>+8B4+ ? +rganizar las formas en forma de cascada ]%\%2>L+ 0% LL:2:0: ? <inguna ]%<4H:0:8 ? <inguna ]8:LB0:8 ? <inguna ]>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <inguno ]+68%HI:*B+<%8 ? +rganiza todas las formas activas en ]mdi>rincipal en forma de cascada ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub id*ascadaa*licN() 2e!:rrange vb*ascade %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento id*lv:dmina*licN ]>H+>+8B4+ ? *ambiar *lave administrativa ]%\%2>L+ 0% LL:2:0: ? <inguna ]%<4H:0:8 ? <inguna ]8:LB0:8 ? <inguna ]>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? 7rabar*lave:dmin ]+68%HI:*B+<%8 ? se muestra la forma frmlogin8 para ]pedir la nueva clave, si la clave anterior concuerda, ]se procede a llamar al procedimiento 7rabar*lave:dmin ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub id*lv:dmina*licN() frmLogin8!*aption S F*ambiar clave de :dminF *lave S *lave:dmin frmLogin8!8ho' vb2odal

Bf *lave QR *lave:dmin 4hen *lave:dmin S *lave 7rabar*lave:dmin *lave %nd Bf %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento id%st0ia2esa*licN ]>H+>+8B4+ ? *alcular los mensa es enviados, cada dia ]del mes ]%\%2>L+ 0% LL:2:0: ? <inguna ]%<4H:0:8 ? <inguna ]8:LB0:8 ? <inguna ]>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <inguno ]+68%HI:*B+<%8 ? 8e abre la tabla mensa es, se discriminan los ]mensa es por dia del mes, separandolos del dia / al C/, ]luego estos datos son graficados en la forma 7rafico ]mostrando una barra de progreso, para que el usuario se de ]cuenta del progreso de la acci&n ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub id%st0ia2esa*licN() 0im *ap*ode :s 8tring, 2ensa e :s 8tring, +pciones :s 8tring 0im i, Hesp, *ad8, \ 0im 0ia(/ 4o C/) :s Bnteger 0im 2$4able :s Hecordset +n %rror 7o4o 06%rrorMandler ] 8i ha$ errores $a sabe que hacer! ] :brir tabla! *ad8 S Fselect ;9echaMora=,;%stado= from ;2ensa es= 'here ;%stado=S]8i]F 8et 2$4able S 2$0atabase!+penHecordset(*ad8, db+pen0$naset) Bf 2$4able!Hecord*ount QR 0 4hen Eith 2$4able !2oveLast ] Llena el Hecordset! !2ove9irst ]lleva al primero 0o *ad8 S b9echaMora 0ia(0a$(*ad8)) S 0ia(0a$(*ad8)) X / !2ove<ext Loop Antil !%+9 %nd Eith %lse 2sg6ox F<o se ha enviado ning"n mensa eF, vbBnformation, F%rrorF 2$4able!*lose 8et 2$4able S <othing %xit 8ub %nd Bf 2$4able!*lose 8et 2$4able S <othing 7rafico!8ho'

7rafico!7rafica!7raph4$pe S L 7rafico!7rafica!7raph8t$le S C 7rafico!7rafica!7raph4itle S F>or da del mesF 7raficob7rafica!:utoBnc S 0 7raficob7rafica!<um>oints S C/ 7raficob7rafica!<um8ets S / >rogreso!8ho' >rogreso!Hefresh 9or i S / 4o / 7raficob7rafica!4his8et S i >rogreso!6arra>rogreso!Ialue S 0 9or \ S 0 4o C0 7raficob7rafica!4his>oint S \ X / Bf i S / 4hen 7raficob7rafica!7raph0ata S 0ia(\ X /) Bf i S , 4hen 7raficob7rafica!7raph0ata S /!C, X *os(C!/5/L 3 /J0 W \) W 5 7raficob7rafica!D>os0ata S \ X / >rogreso!6arra>rogreso!Ialue S \ 3 C0 W /00 <ext \ <ext i 7raficob7rafica!0ra'2ode S , Anload >rogreso %xit 8ub 06%rrorMandler? 8elect *ase %rr *ase C0,5? 2sg6ox F<o se puede abrir la base de datos!F, vb%xclamation *ase C0,,? 2sg6ox F%l usuario $a existe en la base de datos!F, vb%xclamation *ase CC/5? 2sg6ox F0ebe llenar todos los campos!F, vb%xclamation *ase -/? 2sg6ox F<o se ha abierto la base de datos!F, vb%xclamation *ase %lse? 2sg6ox %rr!0escription, vb%xclamation %nd 8elect ]cerrar tabla 8et 2$4able S <othing %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento id%st2enMoraa*licN ]>H+>+8B4+ ? *alcular los mensa es enviados, cada hora ]del dia ]%\%2>L+ 0% LL:2:0: ? <inguna ]%<4H:0:8 ? <inguna ]8:LB0:8 ? <inguna ]>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <inguno ]+68%HI:*B+<%8 ? 8e abre la tabla mensa es, se discriminan los ]mensa es por hora del dia, separandolos del la hora 0 a la ,C, ]luego estos datos son graficados en la forma 7rafico ]mostrando una barra de progreso, para que el usuario se de ]cuenta del progreso de la acci&n ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

>rivate 8ub id%st2enMoraa*licN() 0im *ap*ode :s 8tring, 2ensa e :s 8tring, +pciones :s 8tring 0im i, Hesp, *ad8, \ 0im 0ia(0 4o ,C) :s Bnteger 0im 2$4able :s Hecordset +n %rror 7o4o 06%rrorMandler ] 8i ha$ errores $a sabe que hacer! ] :brir tabla! *ad8 S Fselect ;9echaMora=,;%stado= from ;2ensa es= 'here ;%stado=S]8i]F 8et 2$4able S 2$0atabase!+penHecordset(*ad8, db+pen0$naset) Bf 2$4able!Hecord*ount QR 0 4hen Eith 2$4able ]!2oveLast ] Llena el Hecordset! !2ove9irst ]lleva al primero 0o *ad8 S 9ormat(b9echaMora, FhhF) 0ia(Ial(*ad8)) S 0ia(Ial(*ad8)) X / !2ove<ext Loop Antil !%+9 %nd Eith %lse 2sg6ox F<o se han enviado mensa esbF, vbBnformation, F%rrorF 2$4able!*lose 8et 2$4able S <othing %xit 8ub %nd Bf 2$4able!*lose 8et 2$4able S <othing 7rafico!8ho' 7rafico!7rafica!7raph4$pe S L 7rafico!7rafica!7raph8t$le S C 7rafico!7rafica!7raph4itle S F>or hora del daF 7raficob7rafica!:utoBnc S 0 7raficob7rafica!<um>oints S ,5 7raficob7rafica!<um8ets S / >rogreso!8ho' >rogreso!Hefresh 9or i S / 4o / 7raficob7rafica!4his8et S i >rogreso!6arra>rogreso!Ialue S 0 9or \ S 0 4o ,C 7raficob7rafica!4his>oint S \ X / 7raficob7rafica!7raph0ata S 0ia(\) 7raficob7rafica!D>os0ata S \ >rogreso!6arra>rogreso!Ialue S \ 3 ,5 W /00 <ext \ <ext i 7raficob7rafica!0ra'2ode S , Anload >rogreso %xit 8ub 06%rrorMandler? 8elect *ase %rr

*ase C0,5? 2sg6ox F<o se puede abrir la base de datos!F, vb%xclamation *ase C0,,? 2sg6ox F%l usuario $a existe en la base de datos!F, vb%xclamation *ase CC/5? 2sg6ox F0ebe llenar todos los campos!F, vb%xclamation *ase -/? 2sg6ox F<o se ha abierto la base de datos!F, vb%xclamation *ase %lse? 2sg6ox %rr!0escription, vb%xclamation %nd 8elect ]cerrar tabla 8et 2$4able S <othing %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento id%st2en2esa*licN ]>H+>+8B4+ ? *alcular los mensa es enviados, cada mes ]del ao ]%\%2>L+ 0% LL:2:0: ? <inguna ]%<4H:0:8 ? <inguna ]8:LB0:8 ? <inguna ]>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <inguno ]+68%HI:*B+<%8 ? 8e abre la tabla mensa es, se discriminan los ]mensa es por mes del ao, separandolos del mes / al /,, ]luego estos datos son graficados en la forma 7rafico ]mostrando una barra de progreso, para que el usuario se de ]cuenta del progreso de la acci&n ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub id%st2en2esa*licN() 0im *ap*ode :s 8tring, 2ensa e :s 8tring, +pciones :s 8tring 0im i, Hesp, *ad8, \ 0im 0ia(/ 4o /,) :s Bnteger 0im 2$4able :s Hecordset +n %rror 7o4o 06%rrorMandler ] 8i ha$ errores $a sabe que hacer! ] :brir tabla! *ad8 S Fselect ;9echaMora=,;%stado= from ;2ensa es= 'here ;%stado=S]8i]F 8et 2$4able S 2$0atabase!+penHecordset(*ad8, db+pen0$naset) Bf 2$4able!Hecord*ount QR 0 4hen Eith 2$4able !2oveLast ] Llena el Hecordset! !2ove9irst ]lleva al primero 0o *ad8 S b9echaMora 0ia(2onth(*ad8)) S 0ia(2onth(*ad8)) X / !2ove<ext Loop Antil !%+9 !*lose ]cierra la tabla %nd Eith %lse 2sg6ox F<o se ha enviado ning"n mensa ebF, vbBnformation, F%rrorF 2$4able!*lose 8et 2$4able S <othing

%xit 8ub %nd Bf 8et 2$4able S <othing 7rafico!8ho' 7rafico!7rafica!7raph4$pe S L 7rafico!7rafica!7raph8t$le S C 7rafico!7rafica!7raph4itle S F2ensa es por mesF 7raficob7rafica!:utoBnc S 0 7raficob7rafica!<um>oints S /, 7raficob7rafica!<um8ets S / >rogreso!8ho' >rogreso!Hefresh 9or i S / 4o / 7raficob7rafica!4his8et S i >rogreso!6arra>rogreso!Ialue S 0 9or \ S 0 4o // 7raficob7rafica!4his>oint S \ X / Bf i S / 4hen 7raficob7rafica!7raph0ata S 0ia(\ X /) Bf i S , 4hen 7raficob7rafica!7raph0ata S /!C, X *os(C!/5/L 3 /J0 W \) W 5 7raficob7rafica!D>os0ata S \ X / >rogreso!6arra>rogreso!Ialue S \ 3 /, W /00 <ext \ <ext i 7raficob7rafica!0ra'2ode S , Anload >rogreso %xit 8ub 06%rrorMandler? 8elect *ase %rr *ase C0,5? 2sg6ox F<o se puede abrir la base de datos!F, vb%xclamation *ase C0,,? 2sg6ox F%l usuario $a existe en la base de datos!F, vb%xclamation *ase CC/5? 2sg6ox F0ebe llenar todos los campos!F, vb%xclamation *ase -/? 2sg6ox F<o se ha abierto la base de datos!F, vb%xclamation *ase %lse? 2sg6ox %rr!0escription, vb%xclamation %nd 8elect ]cerrar tabla 8et 2$4able S <othing %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento id%st2en2esa*licN ]>H+>+8B4+ ? *alcular los mensa es enviados, cada dia ]de la semana ]%\%2>L+ 0% LL:2:0: ? <inguna ]%<4H:0:8 ? <inguna ]8:LB0:8 ? <inguna ]>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <inguno ]+68%HI:*B+<%8 ? 8e abre la tabla mensa es, se discriminan los ]mensa es por dia de la semana, separandolos del dia / al 1, ]luego estos datos son graficados en la forma 7rafico ]mostrando una barra de progreso, para que el usuario se de ]cuenta del progreso de la acci&n ]:A4+H ? Hicardona

]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub id%st2en8emanaa*licN() 0im *ap*ode :s 8tring, 2ensa e :s 8tring, +pciones :s 8tring 0im i, Hesp, *ad8, \ 0im 0ia(/ 4o 1) :s Bnteger 0im 2$4able :s Hecordset +n %rror 7o4o 06%rrorMandler ] 8i ha$ errores $a sabe que hacer! ] :brir tabla! *ad8 S Fselect ;9echaMora=,;%stado= from ;2ensa es= 'here ;%stado=S]8i]F 8et 2$4able S 2$0atabase!+penHecordset(*ad8, db+pen0$naset) Bf 2$4able!Hecord*ount QR 0 4hen Eith 2$4able !2oveLast ] Llena el Hecordset! !2ove9irst ]lleva al primero 0o *ad8 S b9echaMora 0ia(EeeN0a$(*ad8)) S 0ia(EeeN0a$(*ad8)) X / !2ove<ext Loop Antil !%+9 %nd Eith %lse 2sg6ox F<o se han enviado mensa esF, vbBnformation, F%rrorF 2$4able!*lose 8et 2$4able S <othing %xit 8ub %nd Bf 2$4able!*lose 8et 2$4able S <othing 7rafico!8ho' 7rafico!7rafica!7raph4$pe S L 7rafico!7rafica!7raph8t$le S C 7rafico!7rafica!7raph4itle S F>or da de la semanaF 7raficob7rafica!:utoBnc S 0 7raficob7rafica!<um>oints S 1 7raficob7rafica!<um8ets S / >rogreso!8ho' >rogreso!Hefresh 7raficob7rafica!4his8et S / >rogreso!6arra>rogreso!Ialue S 0 9or \ S 0 4o L 7rafico!7rafica!4his>oint S \ X / 7rafico!7rafica!7raph0ata S 0ia(\ X /) 7rafico!7rafica!D>os0ata S \ X / >rogreso!6arra>rogreso!Ialue S \ 3 L W /00 <ext \ 7rafico!7rafica!0ra'2ode S , Anload >rogreso

%xit 8ub 06%rrorMandler? 8elect *ase %rr *ase C0,5? 2sg6ox F<o se puede abrir la base de datos!F, vb%xclamation *ase C0,,? 2sg6ox F%l usuario $a existe en la base de datos!F, vb%xclamation *ase CC/5? 2sg6ox F0ebe llenar todos los campos!F, vb%xclamation *ase -/? 2sg6ox F<o se ha abierto la base de datos!F, vb%xclamation *ase %lse? 2sg6ox %rr!0escription, vb%xclamation %nd 8elect ]cerrar tabla 8et 2$4able S <othing %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento id%ventosa*licN ]>H+>+8B4+ ? 2ostrar frm%ventos en forma modal ]%\%2>L+ 0% LL:2:0: ? <inguna ]%<4H:0:8 ? <inguna ]8:LB0:8 ? <inguna ]>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <inguno ]+68%HI:*B+<%8 ? 8e cambia el titulo de la forma a Feventos ]del sistemaF, se quitan los botonos /,C,5,1,- de la barra ]de herramientas $a que no son necesarios para esta forma ]se cambia la selecci&n de datos para mostrar los eventos ]$ se cambia el ancho del grid, finalmente se muestra la ]forma frm%ventos en forma modal con el metodo ]sho'] ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub id%ventosa*licN() Eith frm%ventos !*aption S F%ventos del sistemaF !4lbarra!6uttons(5)!Iisible S 9alse !4lbarra!6uttons(1)!Iisible S 9alse !4lbarra!6uttons(-)!Iisible S 9alse !4lbarra!6uttons(/)!Iisible S 9alse !4lbarra!6uttons(C)!Iisible S 9alse !dat>rimar$H8!Hecord8ource S F8elect W from %ventosF !dat>rimar$H8!Hefresh !grdAsuarios!2arqueeAnique S 9alse !grdAsuarios!*olumns(,)!Eidth S 5000 !Mide !8ho' %nd Eith %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento idMorizontala*licN ]>H+>+8B4+ ? +rganizar las formas en forma horizontal ]%\%2>L+ 0% LL:2:0: ? <inguna ]%<4H:0:8 ? <inguna

]8:LB0:8 ? <inguna ]>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <inguno ]+68%HI:*B+<%8 ? +rganiza todas las formas activas en ]mdi>rincipal en forma horizontal ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub idMorizontala*licN() 2e!:rrange vb4ileMorizontal %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento id2antenidosa*licN ]>H+>+8B4+ ? 2ostra en forma modal la forma frm2antenimiento ]%\%2>L+ 0% LL:2:0: ? <inguna ]%<4H:0:8 ? <inguna ]8:LB0:8 ? <inguna ]>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <inguno ]+68%HI:*B+<%8 ? 8e carga en forma modal la forma ]frm2antenimiento con el metodo ]sho'] ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub id2antenidosa*licN() frm2antenimiento!8ho' vb2odal %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento id+Bconosa*licN ]>H+>+8B4+ ? +rganizar las iconos de la forma mdi>rincipal ]%\%2>L+ 0% LL:2:0: ? <inguna ]%<4H:0:8 ? <inguna ]8:LB0:8 ? <inguna ]>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <inguno ]+68%HI:*B+<%8 ? +rganiza todas los iconos en ]mdi>rincipal ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub id+Bconosa*licN() 2e!:rrange vb:rrangeBcons %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento id+perara*licN ]>H+>+8B4+ ? 2ostra en forma modal la forma frm+peradores ]%\%2>L+ 0% LL:2:0: ? <inguna ]%<4H:0:8 ? <inguna

]8:LB0:8 ? <inguna ]>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <inguno ]+68%HI:*B+<%8 ? 8e carga en forma modal la forma ]frm+peradores con el metodo ]sho'] ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub id+perara*licN() frm+peradores!8ho' vb2odal %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento id8alira*licN ]>H+>+8B4+ ? 0escargar la forma actual ]%\%2>L+ 0% LL:2:0: ? <inguno ]%<4H:0:8 ? <inguna ]8:LB0:8 ? <inguna ]>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <inguno ]+68%HI:*B+<%8 ? 0escarga la forma actual con el metodo ]unload] ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub id8alira*licN() Anload 2e %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento id8ervidora*licN ]>H+>+8B4+ ? 2ostra en forma modal la forma frm>roperties ]%\%2>L+ 0% LL:2:0: ? <inguna ]%<4H:0:8 ? <inguna ]8:LB0:8 ? <inguna ]>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <inguno ]+68%HI:*B+<%8 ? 8e carga en forma modal la forma ]frm>roperties con el metodo ]sho'] ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub id8ervidora*licN() frm>roperties!8ho' vb2odal %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento ]>H+>+8B4+ ? ]%\%2>L+ 0% LL:2:0: ? ]%<4H:0:8 ?

]8:LB0:8 ? ]>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? ]+68%HI:*B+<%8 ? ]:A4+H ? 7enerado por I6 ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub id8etupBmpa*licN() +n %rror Hesume <ext 0ial*omu!9lags S ^M50 ] >rinter setup dialog box onl$! 0ial*omu!8ho'>rinter %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento idAsuariosa*licN ]>H+>+8B4+ ? 2ostra en forma modal la forma frmAsuarios ]%\%2>L+ 0% LL:2:0: ? <inguna ]%<4H:0:8 ? <inguna ]8:LB0:8 ? <inguna ]>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <inguno ]+68%HI:*B+<%8 ? 8e carga en forma modal la forma ]frmAsuarios co el metodo ]sho'] ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub idAsuariosa*licN() frmAsuarios!8ho' vb2odal %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento idIerticala*licN ]>H+>+8B4+ ? +rganizar las formas en forma vertical ]%\%2>L+ 0% LL:2:0: ? <inguna ]%<4H:0:8 ? <inguna ]8:LB0:8 ? <inguna ]>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <inguno ]+68%HI:*B+<%8 ? +rganiza todas las formas activas en ]mdi>rincipal en forma vertical ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub idIerticala*licN() 2e!:rrange vb4ileIertical %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento 20B9ormaLoad ]>H+>+8B4+ ? >recargar $ condicionar variables cuando se carga la forma ]%\%2>L+ 0% LL:2:0: ? <inguno

]%<4H:0:8 ? <inguna ]8:LB0:8 ? <inguna ]>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <inguno ]+68%HI:*B+<%8 ? graba cada el evento de Fentrada al programaF ]cada vez que el programa arranca ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub 20B9ormaLoad() 7uardar%ventos <o', F:dminF, F%ntrada al programa adminF %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento 20B9ormaAnLoad ]>H+>+8B4+ ? 0escargar variables $ cerrar ob ectos ]cuando se descarga la forma ]%\%2>L+ 0% LL:2:0: ? <inguno ]%<4H:0:8 ? <inguna ]8:LB0:8 ? <inguna ]>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <inguno ]+68%HI:*B+<%8 ? graba cada el evento de Fsalida de adminF ]cada vez que el programa se descarga, la base de datos es ]cerrada con el metodo ]close], $ se finaliza por completo ]el programa ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub 20B9ormaAnload(*ancel :s Bnteger) 7uardar%ventos <o', F:dminF, F8alida de :dminF 2$0atabase!*lose %nd %nd 8ub Gorma %rmgrd7suarios La forma frmgrdAsuarios es utilizada para mostrar los datos de los usuarios en forma de grid o tabla, el siguiente es el c&digo fuente de dicha forma! +ption %xplicit ]hace necesario la declaracion de variables ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento dat>rimar$H8a%rror ]>H+>+8B4+ ? 2ane ar los errores que se generen en el mane o de los datos ]%\%2>L+ 0% LL:2:0: ? <inguna ]%<4H:0:8 ? 0ata%rr S *odigo de error ]8:LB0:8 ? Hesponse S Hespuesta a ese error ]>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <inguno ]+68%HI:*B+<%8 ? la llamada a este evento es automatica (cuando se genere un error)

]:A4+H ? 7enerado automaticamente por I6 ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub dat>rimar$H8a%rror(0ata%rr :s Bnteger, Hesponse :s Bnteger) ]4his is 'here $ou 'ould put error handling code ]Bf $ou 'ant to ignore errors, comment out the next line ]Bf $ou 'ant to trap them, add code here to handle them 2sg6ox F0ata error event hit err?F ^ %rror[(0ata%rr) Hesponse S 0 ]4hro' a'a$ the error %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento dat>rimar$H8aIalidate ]>H+>+8B4+ ? Ialidar los eventos del datprimar$rs ]%\%2>L+ 0% LL:2:0: ? <inguna ]%<4H:0:8 ? :ction S :ccion que se efectua en ese momento ]8:LB0:8 ? 8ave S 8e utiliza para cancelar una operacion de escritura ]>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? ninguno ]+68%HI:*B+<%8 ? Llamado automatico cada vez que se e ecuta una accion ]:A4+H ? 7enerado automaticamente por I6 ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub dat>rimar$H8aIalidate(:ction :s Bnteger, 8ave :s Bnteger) ]4his is 'here $ou put validation code ]4his event gets called 'hen the follo'ing actions occur 8elect *ase :ction *ase vb0ata:ction2ove9irst *ase vb0ata:ction2ove>revious *ase vb0ata:ction2ove<ext *ase vb0ata:ction2oveLast *ase vb0ata:ction:dd<e' *ase vb0ata:ctionApdate *ase vb0ata:ction0elete *ase vb0ata:ction9ind *ase vb0ata:ction6ooNmarN *ase vb0ata:ction*lose 8creen!2ouse>ointer S vb0efault %nd 8elect %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento 9ormaLoad ]>H+>+8B4+ ? >recargar $ condicionar variables cuando se carga la forma ]%\%2>L+ 0% LL:2:0: ? <inguno ]%<4H:0:8 ? <inguna ]8:LB0:8 ? <inguna ]>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <inguno ]+68%HI:*B+<%8 ? %n ]>ath06] se carga la ruta de la 06 ]:A4+H ? Hicardona

]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub 9ormaLoad() dat>rimar$H8!0atabase<ame S >ath06 %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento 9ormaHesize ]>H+>+8B4+ ? Hea ustar el tamao de forma $ control ]%\%2>L+ 0% LL:2:0: ? ninguna ]%<4H:0:8 ? <inguna ]8:LB0:8 ? <inguno ]>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <inguno ]+68%HI:*B+<%8 ? 8e redimensiona el grid de datos cuando se redimensiona la forma ]:A4+H ? 7enerado automaticamente por I6 ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub 9ormaHesize() 0im 4mp +n %rror Hesume <ext ]4his 'ill resize the grid 'hen the form is resized 4mp S 2e!8caleMeight V 4lbarra!Meight Bf 4mp RS 0 4hen grdAsuarios!Meight S 4mp %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento grdAsuariosa6efore0elete ]>H+>+8B4+ ? >recondicionar antes de borrar un registro ]%\%2>L+ 0% LL:2:0: ? <inguna ]%<4H:0:8 ? <inguna ]8:LB0:8 ? *ancel S *ancela borrar el registro ]>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? /! 7uardar%ventos ]+68%HI:*B+<%8 ? 8e pide confirmacion al usuario para borrar el registro ] $ se guarda el evento en la 06 en caso contrario se ] se cancela la accion! ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub grdAsuariosa6efore0elete(*ancel :s Bnteger) 0im mHesult :s Bnteger +n %rror Hesume <ext Bf 2e!*aption S FAsuariosF 4hen mHesult S 2sg6ox(F%sta seguro que desea borrar el registroF, vbKes<o, F*onfirma borrar un registro de usuario!F) Bf mHesult S vb<o 4hen *ancel S 4rue %lse

7uardar%ventos <o', F:dminF, F6orrado un registro de F ^ 2e!*aption %nd Bf %nd Bf %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento grdAsuariosa2ouseAp ]>H+>+8B4+ ? *uando se oprima el boton , de mouse presentar un menu de opciones ]%\%2>L+ 0% LL:2:0: ? <inguna ]%<4H:0:8 ? 6utton S 6oton del mouse oprimido ] 8hitf S Hetorna un entero correspondiente al estado de la tecla 8MB94, *4HL, $ :L4 ] x,$ S poscision actual del puntero en el control ]8:LB0:8 ? <inguna ]>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? /! popupmenu (I6) ]+68%HI:*B+<%8 ? 8e muestra el menu id+Asuarios $ id%ventos+cultos ] para brindar opcion de borrar datos ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub grdAsuariosa2ouseAp(6utton :s Bnteger, 8hift :s Bnteger, D :s 8ingle, K :s 8ingle) Bf 6utton S , 4hen Bf grdAsuarios!8el6ooNmarNs!*ount QR 0 4hen Bf 2e!*aption S FAsuariosF 4hen >opup2enu mdi>rincipal!id+Asuarios %lse >opup2enu mdi>rincipal!id%ventos+cultos %nd Bf %nd Bf %nd Bf %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento id6orrara*licN ]>H+>+8B4+ ? 6orrar los registros seleccionados en el grid ]%\%2>L+ 0% LL:2:0: ? <inguna ]%<4H:0:8 ? <inguna ]8:LB0:8 ? Hegistros borrados en la 06 ]>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <inguno ]+68%HI:*B+<%8 ? :ntes de entrar a este procedimiento se ] se e ecuta grdAsuariosa6efore0elete para confirmar ] la accion; se toman todos los registros seleccionados ] procediendo a borrar uno a uno de la 06! ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub id6orrara*licN() 0im i

9or i S 0 4o grdAsuarios!8el6ooNmarNs!*ount V / ]todos los registros seleccionados ]se posiciona en el seleccionado dat>rimar$H8!Hecordset!6ooNmarN S grdAsuarios!8el6ooNmarNs(i) dat>rimar$H8!Hecordset!0elete ]$ se borra <ext i dat>rimar$H8!Hefresh ] se actualizan los datos %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento 4lbarraa6utton*licN ]>H+>+8B4+ ? 2ane ar cuando sean oprimidos los diferentes botones ] de la barra de herramientas ]%\%2>L+ 0% LL:2:0: ? <inguno ]%<4H:0:8 ? 6utton S 6oton oprimido pasado como ob ecto comctlLib!button ]8:LB0:8 ? <inguna ]>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <inguno ]+68%HI:*B+<%8 ? se permite :dicionar mane ando las propiedades del grid, ] %liminar permite borrar datos cambiando la propiedad :llo'0elete del grid, ] 2odificar permite modificar datos cambiando la propiedad :llo'Apdate, ] *ontrol muestra la forma ]frmusuarios], 6uscar permite buscar por codigo ] de usuario, Bmprimir muestra la forma ]frmBmpAsuarios]! ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub 4lbarraa6utton*licN(6$Ial 6utton :s *omctlLib!6utton) 0im Hesp 8elect *ase 6utton!Te$ *ase F:dicionarF ] : checN button! Bf 6utton!Ialue S vbAnchecNed 4hen grdAsuarios!:llo':dd<e' S 9alse %lse ] AnchecN the button grdAsuarios!:llo':dd<e' S 4rue %nd Bf *ase F%liminarF Bf 6utton!Ialue S vbAnchecNed 4hen grdAsuarios!:llo'0elete S 9alse %lse ] AnchecN the button grdAsuarios!:llo'0elete S 4rue %nd Bf *ase F2odificarF Bf 6utton!Ialue S vbAnchecNed 4hen grdAsuarios!:llo'Apdate S 9alse %lse ] AnchecN the button grdAsuarios!:llo'Apdate S 4rue %nd Bf *ase F*ontrolF Anload 2e frmAsuarios!8ho' vb2odal *ase F6uscarF Hesp S Bnput6ox(F6uscar usurio con c&digo ? F, F6uscar usuarioF)

dat>rimar$H8!Hecordset!9ind9irst F*od6eeper S ]F ^ Hesp ^ F]F Bf dat>rimar$H8!Hecordset!<o2atch 4hen 2sg6ox F*&digo no encontradoF, vbBnformation, F6uscarF *ase FBmprimirF frmBmpAsuarios!8ho' vb2odal ] se llama a la forma imprimir datos del usuario %nd 8elect %nd 8ub Gorma %rmImp7suarios %sta forma es utilizada para imprimir los datos de los usuarios que se encuentran en la base de datos, el administrador puede seleccionar los campos, ordernar $ buscar con un cierto valor los campos a imprimir! +ption %xplicit ]obliga a la definici&n de variables 0im >revio :s 6oolean ]informe previo o impresora ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? 9uncion Llenar ]>H+>+8B4+ ? Llenar de caracteres ] ] (espacio) una cadena ]%\%2>L+ 0% LL:2:0: ? Llenar(*adena,:mp) ]%<4H:0:8 ? *adena S *adena de caracteres a ser llenada ] :mp S %ntero con Longitud de caracteres para llenar ]8:LB0:8 ? Llenar S *adena X espacios;amp= ]>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? /! Len (I6) ]+68%HI:*B+<%8 ? 8e le pasa una cadena la cual sera llenada ] con espacios tantos como :mp disponga $ se ] devuelve S *adena X F F;amp= ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 9unction Llenar(6$Ial *adena :s 8tring, 6$Ial :mp :s Bnteger) :s 8tring 0im i 9or i S Len(*adena) 4o :mp *adena S *adena ^ F F <ext i Llenar S *adena %nd 9unction ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? >rocedimiento Bmprimir0atos ]>H+>+8B4+ ? Bmprimir los datos que se muestran en el grid ] de usuarios ]grdAsuarios] ]%\%2>L+ 0% LL:2:0: ? Bmprimir0atos ]%<4H:0:8 ? grdAsuarios, previo ]8:LB0:8 ? Bmpresora o previo (cambio de datos) ]>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? /)Len, ,)2id, C)Llenar ]+68%HI:*B+<%8 ? 8e toman los datos de ]grdAsuarios] $ se genera ]dinamicamente un 8`l con lo que el usuario quiere para luego imprimir

]el encabezado con los nombres de los campos $ ordenandolos por ]cmb+rdenar] ]con un valor ]cbm*ampo], si no es un informe previo se utiliza el ob ecto de ]sistema printer para enviar estos datos a la impresora, si no simplemente ]se modifica el ob ecto ]grdAsuarios!recorsource] para mostrar nuevos datos ]si ocurre un error en la 06 o en la impresora se mane an en la etiqueta ]?%rrores] mostrando el error al usuario ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 8ub Bmprimir0atos() 0im a8`L :s 8tring 0im n8`L :s 8tring 0im Bmp*ad, 4mp :s 8tring 0im i, \ :s Bnteger 0im :ncho :s Bnteger 0im *D, *K, %spacio +n %rror 7o4o %rrores 2ouse>ointer S vbMourglass ]imprime el encabezado Bf <ot >revio 4hen >rinter!9ont S F*ourierF >rinter!9ont8ize S J :ncho S >rinter!Eidth 3 (lst%scogidos!List*ount W >rinter!4extEidth(F2F)) %spacio S >rinter!Eidth 3 lst%scogidos!List*ount >rinter!Line (0, >rinter!*urrentK)V(>rinter!Eidth, >rinter!*urrentK) >rinter!>rint *K S >rinter!*urrentK %nd Bf 9or i S 0 4o lst%scogidos!List*ount V / lst%scogidos!ListBndex S i 4mp S lst%scogidos Bf Len(4mp) R :ncho 4hen 4mp S 2id[(4mp, /, :ncho) %lse 4mp S Llenar(4mp, :ncho) %nd Bf Bf <ot >revio 4hen >rinter!*urrentK S *K >rinter!*urrentD S %spacio W i >rinter!>rint 4mp %nd Bf n8`L S n8`L ^ lst%scogidos ^ F,F ]nsql para crear la nueva consulta <ext i Bf <ot >revio 4hen >rinter!Line (0, >rinter!*urrentK)V(>rinter!Eidth, >rinter!*urrentK) >rinter!>rint %nd Bf Bmp*ad S FF

n8`L S 2id[(n8`L, /, Len(n8`L) V /) Bf cmb*ampo QR FF 4hen 4mp S F 'here F ^ cmb*ampo ^ F liNe ]F ^ txtBgual ^ F] F %lse 4mp S FF %nd Bf Bf cmb+rdenar QR FF 4hen ]se arma el sql completo si ha$ una ordenacion de campos n8`L S F8elect F ^ n8`L ^ F from usuarios F ^ 4mp ^ F order b$ F ^ cmb+rdenar %lse ]se arma el sql completo sin ordenacion n8`L S F8elect F ^ n8`L ^ F from usuariosF ^ 4mp %nd Bf Eith frmgrdAsuarios a8`L S !dat>rimar$H8!Hecord8ource !dat>rimar$H8!Hecord8ource S n8`L !dat>rimar$H8!Hefresh Bf <ot >revio 4hen Eith !grdAsuarios !Iisible S 9alse frmgrdAsuarios!dat>rimar$H8!Hecordset!2ove9irst 9or i S 0 4o frmgrdAsuarios!dat>rimar$H8!Hecordset!Hecord*ount V / Bf i QR 0 4hen frmgrdAsuarios!dat>rimar$H8!Hecordset!2ove<ext *K S >rinter!*urrentK 9or \ S 0 4o lst%scogidos!List*ount V / !*ol S \ 4mp S frmgrdAsuarios!grdAsuarios Bf Len(4mp) R :ncho 4hen 4mp S 2id[(4mp, /, :ncho) %lse 4mp S Llenar(4mp, :ncho) %nd Bf >rinter!*urrentK S *K >rinter!*urrentD S %spacio W \ >rinter!>rint 4mp <ext \ Bmp*ad S FF 4mp S FF <ext i !Iisible S 4rue %nd Eith >rinter!%nd0oc ]$ por fin finaliza !dat>rimar$H8!Hecord8ource S a8`L !dat>rimar$H8!Hefresh %nd Bf %nd Eith 2ouse>ointer S vb0efault %xit 8ub %rrores? ]mane o de errores 2sg6ox %rr!0escription %nd 8ub

]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento cmd:nadira*licN ]>H+>+8B4+ ? :adir un item de ]lst4abla] a ]lst%scogidos] ] ]cmb+rdenar], $ ]cmb*ampo], luego se quita el item ] de ]lst4abla] ]%\%2>L+ 0% LL:2:0: ? <inguno ]%<4H:0:8 ? ]lst4abla] S *adena de texto para aadir ]8:LB0:8 ?]lst%scogidos]S *adena de texto aadida ]cmb+rdenar] S *adena de texto aadida ]cmb*ampo] S *adena de texto aadida ]>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <inguno ]+68%HI:*B+<%8 ? se toma la cadena de ]lst4abla] para ser aadida ]a ]lst%scogidos], ]cmb+rdenar], $ ]cmb*ampo] con el ]metodo ]:ddBtem] de cada lista, luego se borra el item de ]lst4abla con el ]metodo ]Hemove] ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub cmd:nadira*licN() Bf lst4abla!ListBndex R V/ 4hen lst%scogidos!:ddBtem lst4abla cmb+rdenar!:ddBtem lst4abla cmb*ampo!:ddBtem lst4abla lst4abla!HemoveBtem lst4abla!ListBndex %nd Bf %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento cmd:4odosa*licN ]>H+>+8B4+ ? >asar todos los item de ]lst4abla] a ]lst%scogidos] ] ]cmb+rdenar], $ ]cmb*ampo], luego se quitan todos los items ] de ]lst4abla] ]%\%2>L+ 0% LL:2:0: ? <inguno ]%<4H:0:8 ? ]lst4abla] S *adenas de texto para aadir ]8:LB0:8 ?]lst%scogidos]S *adenas de texto aadida ]cmb+rdenar] S *adenas de texto aadida ]cmb*ampo] S *adenas de texto aadida ]>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <inguno ]+68%HI:*B+<%8 ? se toman las cadenas de ]lst4abla] para ser aadidas ] a ]lst%scogidos], ]cmb+rdenar], $ ]cmb*ampo] con el metodo ] ]:ddBtem] de cada lista, luego se borran todos los items ] de ]lst4abla] con el metodo ]*lear] ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub cmd:4odosa*licN() 0im i 9or i S 0 4o lst4abla!List*ount V / lst4abla!ListBndex S i

lst%scogidos!:ddBtem lst4abla cmb+rdenar!:ddBtem lst4abla cmb*ampo!:ddBtem lst4abla <ext i lst4abla!*lear %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento cmd*ancelara*licN ]>H+>+8B4+ ? 8alir ]frmBmpAsuarios] ]%\%2>L+ 0% LL:2:0: ? <inguno ]%<4H:0:8 ? <inguno ]8:LB0:8 ? 0escarga la forma ]frmBmpAsuarios] ]>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <inguno ]+68%HI:*B+<%8 ? 8e descarga la forma con el metodo ]unload] ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub cmd*ancelara*licN() Anload 2e %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento *ommand/a*licN ]>H+>+8B4+ ? *omando aceptar que permite al usuario lanzar ] una impresion previa, o sea no ha impresora ]%\%2>L+ 0% LL:2:0: ? ninguna ]%<4H:0:8 ? <inguna ]8:LB0:8 ? >revio S 6oleano que indica si es previo o no ]>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <inguno! ]+68%HI:*B+<%8 ? 8e toma la variable >revio para indicar al ]procedimiento Bmprimir0atos que es una impresion previa ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub *ommand/a*licN() >revio S 4rue cmd+Ta*licN %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento cmd+Ta*licN ]>H+>+8B4+ ? Bmprimir los datos de ]grdAsuarios] ]%\%2>L+ 0% LL:2:0: ? <inguno ]%<4H:0:8 ? >revio S boleano, indica impresion previa o no ]8:LB0:8 ? >or impresora o previo ]grdAsuarios] ]>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? /)Bmprimir0atos ]+68%HI:*B+<%8 ? 8e verifica que el usuario ha$a escogido ]los campos para poder imprimir luego se llama a una ]ca a de dialogo comun para de impresora para que el usuario

]esco a el tipo de impresora, papel, etc! a el final se ]toman estos datos $ se presenta el informe previo o por ]impresora ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub cmd+Ta*licN() +n %rror 7o4o %rrores Bf lst%scogidos!List*ount R 0 4hen Bf <ot >revio 4hen mdi>rincipal!0ial*omu!9lags S 0 mdi>rincipal!0ial*omu!*ancel%rror S 4rue mdi>rincipal!0ial*omu!8ho'>rinter %nd Bf Bmprimir0atos 2e!Mide mdi>rincipal!8et9ocus %nd Bf %xit 8ub %rrores? 8elect *ase %rr *ase 5J,? 2sg6ox F%rror al intentar imprimir; puede ser que no tenga instalada ninguna impresora en su sistema! >or favor verifique!F, vbBnformation, F%rrorF *ase C,155? *ase %lse? 2sg6ox %rr!0escription, vbBnformation, F%rrorF %nd 8elect 2ouse>ointer S vb0efault %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento cmd`4odosa*licN ]>H+>+8B4+ ? `uitar todos los item ]lst%scogidos] ] ]cmb+rdenar], $ ]cmb*ampo], luego se pasan todos los items ] a ]lst4abla] ]%\%2>L+ 0% LL:2:0: ? <inguno ]%<4H:0:8 ?]lst%scogidos]S *adenas de texto quitadas ]cmb+rdenar] S *adenas de texto quitadas ]cmb*ampo] S *adenas de texto quitadas ]8:LB0:8 ? ]lst4abla] S *adenas de texto para aadir ]>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <inguno ]+68%HI:*B+<%8 ? se ponen todas las cadenas a ]lst4abla] con el metodo ]:ddBtem] para ser quitadas ] a ]lst%scogidos], ]cmb+rdenar], $ ]cmb*ampo] con el metodo ] ]*lear] de cada lista ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub cmd`4odosa*licN()

0im i 9or i S 0 4o lst%scogidos!List*ount V / lst%scogidos!ListBndex S i lst4abla!:ddBtem lst%scogidos <ext i lst%scogidos!*lear cmb+rdenar!*lear cmb*ampo!*lear %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento cmd`uitara*licN ]>H+>+8B4+ ? `uitar un item de ]lst%scogidos] ] ]cmb+rdenar], $ ]cmb*ampo], luego se adiciona ] a ]lst4abla] ]%\%2>L+ 0% LL:2:0: ? <inguno ]%<4H:0:8?]lst%scogidos]S *adena de texto quitada ]cmb+rdenar] S *adena de texto quitada ]cmb*ampo] S *adena de texto quitada ]8:LB0:8 ? ]lst4abla] S *adena de texto aadida ]>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <inguno ]+68%HI:*B+<%8 ? se toma la cadena de ]lst%scogidos], ]cmb+rdenar], $ ]cmb*ampo] ] con el metodo ]HemoveBtem] de cada lista, luego se aade el ] item a ]lst4abla] con el metodo ]:ddBtem] ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub cmd`uitara*licN() Bf lst%scogidos!ListBndex R V/ 4hen lst4abla!:ddBtem lst%scogidos cmb+rdenar!HemoveBtem lst%scogidos!ListBndex cmb*ampo!HemoveBtem lst%scogidos!ListBndex lst%scogidos!HemoveBtem lst%scogidos!ListBndex %nd Bf %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento 9ormaLoad ]>H+>+8B4+ ? *argar variables con valores por defecto ]%\%2>L+ 0% LL:2:0: ? ]%<4H:0:8 ? <inguna ]8:LB0:8 ? lst4abla S Ialores por defecto ] >revio S 9alse ]>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <inguno ]+68%HI:*B+<%8 ? 8e cargan todos los valores para que el ]usuario pueda crear un informe con estos valores ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

>rivate 8ub 9ormaLoad() >revio S 9alse lst4abla!:ddBtem F<ombreF lst4abla!:ddBtem F:pellidosF lst4abla!:ddBtem F0ireccionF lst4abla!:ddBtem F4elefono/F lst4abla!:ddBtem F4elefono,F lst4abla!:ddBtem F<itF lst4abla!:ddBtem F0eF lst4abla!:ddBtem F+bservacionesF lst4abla!:ddBtem F+bs+peradorF lst4abla!:ddBtem F*od6eeperF lst4abla!:ddBtem F*ap*odeF lst4abla!:ddBtem F*apcode:uxF lst4abla!:ddBtem FLmensa eF lst4abla!:ddBtem F2arcaF lst4abla!:ddBtem F2odeloF lst4abla!:ddBtem F8erieF lst4abla!:ddBtem F9ormato6loqueF lst4abla!:ddBtem F9uncionF lst4abla!:ddBtem F:lfanumericoF lst4abla!:ddBtem F>rioridadF lst4abla!:ddBtem F4alNF lst4abla!:ddBtem F:ctivoF lst4abla!:ddBtem F*lave%nviarF lst4abla!:ddBtem F*laveHecibirF lst4abla!:ddBtem F*ola2ensa esF lst4abla!:ddBtem F*olaBndiceF %nd 8ub Gorma %rm/ogin La forma frmLogin es utilizada para verificar la clave de entrada al programa de administraci&n! +ption %xplicit ] hace necesario la declaraci&n de variables ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento cmd*ancela*licN ]>H+>+8B4+ ?>ermitir al usuario cancelar entrada al programa ]%\%2>L+ 0% LL:2:0: ? <inguno ]%<4H:0:8 ? <inguna ]8:LB0:8 ? 8alir al sistema ]>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <inguno ]+68%HI:*B+<%8 ? 8e avisa que no se efectuo la entrada al program ]$ descarga la forma ]:A4+H ? 7enerado automaticament por I6 ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? Hicardona /VagoV-J se avisa de la salida ]con logonefectuado S false

]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub cmd*ancela*licN() ]set the global var to false ]to denote a failed login Logon%fectuado S 9alse Anload 2e %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento cmd+N ]>H+>+8B4+ ? Ierificar la entrada del usuario que concuerde ]con la clave que esta en la 06 ]%\%2>L+ 0% LL:2:0: ? <inguno ]%<4H:0:8 ? txt*lave S texto que representa la clave de entrada ]8:LB0:8 ? logon%fectuado S boleano que indica que la operacion se efectuo ]>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <inguno ]+68%HI:*B+<%8 ? 8e abre la base de datos comparando la clave del sistema ]con txt*lave, sino concuerda se le indica al usuario, en caso contrario se ]se permite el acceso al resto del programa con Logon%fectuado S 4rue, se ]mane an los errores con ]06%rrorMandler?] ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub cmd+Ta*licN() 0im *ap*ode :s 8tring, 2ensa e :s 8tring, +pciones :s 8tring 0im i, Hesp, *ad8 0im 2$4able :s Hecordset +n %rror 7o4o 06%rrorMandler ] 8i ha$ errores $a sabe que hacer! ] :brir tabla! *ad8 S Fselect ;>ass*06= from ;8istema= 'here ;>ass*06=S]F ^ txt*lave!4ext ^ F]F 8et 2$4able S 2$0atabase!+penHecordset(*ad8, db+pen0$naset) Bf 2$4able!Hecord*ount QR 0 4hen Eith 2$4able !2oveLast ] Llena el Hecordset! Logon%fectuado S 4rue *lave:dmin S b>ass*06 Anload 2e %nd Eith %lse 2sg6ox F<o *oncuerdabF, vb*ritical, F%rrorF %nd Bf 2$4able!*lose 8et 2$4able S <othing %xit 8ub 06%rrorMandler? 8elect *ase %rr *ase C0,5? 2sg6ox F<o se puede abrir la base de datos!F, vb%xclamation *ase C0,,? 2sg6ox F%l usuario $a existe en la base de datos!F, vb%xclamation *ase CC/5? 2sg6ox F0ebe llenar todos los campos!F, vb%xclamation *ase -/? 2sg6ox F<o se ha abierto la base de datos!F, vb%xclamation

*ase %lse? 2sg6ox %rr!0escription, vb%xclamation %nd 8elect ]cerrar tabla 8et 2$4able S <othing %nd 8ub Gorma %rm/oginS %sta forma es utilizada para cambiar la clave de entrada al servidor del terminal de paginaci&n! +ption %xplicit ] hace necesario la declaraci&n de variables ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento cmd*ancela*licN ]>H+>+8B4+ ?>ermitir al usuario cancelar entrada al programa ]%\%2>L+ 0% LL:2:0: ? <inguno ]%<4H:0:8 ? <inguna ]8:LB0:8 ? descargar la forma ]>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <inguno ]+68%HI:*B+<%8 ? 8e avisa que no se efectuo la entrada al program ]$ descarga la forma ]:A4+H ? 7enerado automaticament por I6 ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub cmd*ancela*licN() Anload 2e %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento cmd+N ]>H+>+8B4+ ? Ierificar la entrada del usuario que concuerde ]con la clave que esta en la 06 $ colocar la nueva clave en la 06 ]%\%2>L+ 0% LL:2:0: ? <inguno ]%<4H:0:8 ? txt>ass S texto que representa la clave de entrada ]8:LB0:8 ? txt>ass< S texto que representa la nueva clave ]>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <inguno ]+68%HI:*B+<%8 ? 8e abre la base de datos comparando la clave del sistema ]con txt>ass, sino concuerda se le indica al usuario, en caso contrario se ]se graba la nueva clave del servidro en la 06 se ]mane an los errores con ]06%rrorMandler?] ]:A4+H ? 7enerado por I6 ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? /VagoV-J por Hicardona, cambio de mensa es a espaol ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub cmd+Ta*licN() ]checN for correct pass'ord Bf txt>ass S *lave 4hen Bf txt>ass< S txt>ass* 4hen

]place code to here to pass the ]success to the calling sub ]setting a global var is the easiest ]Login8ucceeded S 4rue Bf txt>ass< S FF 4hen 2sg6ox FLa clave no puede estar vacia, no hubo cambio de claveF, vbBnformation, F%rrorF %lse *lave S txt>ass< 7uardar%ventos <o', F:dminF, 2e!*aption Anload 2e %nd Bf %lse 2sg6ox F%n las dos casillas debe ir el mismo >ass'ordF, vbBnformation, F*ambiar >ass'ordF txt>ass!8et9ocus 8endTe$s FcMomedXc%nddF %nd Bf %lse 2sg6ox FLa clave no anterior no es correcta!F, vbBnformation, F*ambiar clave!F %nd Bf %nd 8ub Gorma %rm"antenimiento %sta forma es utilizada para administrar los datos de los buscapersonas que se encuentren en mantenimiento o reparaci&n! +ption %xplicit ]hace necesario la declaracion de variables ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? >rocedimiento Bmprimir0atos ]>H+>+8B4+ ? Bmprimir los datos de los beepers en mantenimiento ]%\%2>L+ 0% LL:2:0: ? Bmprimir0atos ]%<4H:0:8 ? 06 tabla;mantenimineto= ]8:LB0:8 ? datos a impresora ]>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <inguno! ]+68%HI:*B+<%8 ? 8e toman los datos de la tabla ]mantenimiento] $ se genera ]el encabezado con los nombres de los campos se utiliza el ob ecto de ]sistema printer para enviar estos datos a la impresora, ]si ocurre un error en la 06 o en la impresora se mane an en la etiqueta ]?%rrores] mostrando el error al usuario ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 8ub Bmprimir0atos() 0im *ad8 2ouse>ointer S vbMourglass

Eith dat>rimar$H8 Bf !Hecordset!Hecord*ount R 0 4hen !Hecordset!2ove9irst 0o >rinter!>rint F+bservaciones ? F ^ txt9ields(0) >rinter!>rint F*odigo ? F ^ txt9ields(/) ^ F, *apcode ? F ^ txt9ields(,) ^ F, Longuitud de mensa e ? F ^ txt9ields(C) >rinter!>rint F2arca ? F ^ txt9ields(5) ^ F, 2odelo ? F ^ txt9ields(5) ^ F, 8erie ? F ^ txt9ields(L) *ad8 S F :lfan"merico ? F Bf chN9ields(-) 4hen *ad8 S *ad8 ^ F8i, >rioridad ? F %lse *ad8 S *ad8 ^ F<o, >rioridad ? F %nd Bf Bf chN9ields(/0) 4hen *ad8 S *ad8 ^ F8iF %lse *ad8 S *ad8 ^ F<oF %nd Bf >rinter!>rint F9ormato de bloque ? F ^ txt9ields(1) ^ F, 9unci&n ? F ^ txt9ields(J) ^ *ad8 ^ F, 4alN ? F ^ txt9ields(//) >rinter!>rint !Hecordset!2ove<ext Loop Antil !Hecordset!%+9 >rinter!%nd0oc %nd Bf !Hecordset!2ove9irst %nd Eith 2ouse>ointer S vb0efault %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento cmd:dda*licN ]>H+>+8B4+ ? preparar par adicionar un registro ]%\%2>L+ 0% LL:2:0: ? <inguna ]%<4H:0:8 ? tabla;mantenimineto= ]8:LB0:8 ? <inguno ]>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <inguno! ]+68%HI:*B+<%8 ?>repara al control dat>rimar$Hs para ]adicionar un registro ]si ocurre un error en la 06 se mane an en la etiqueta ]?%rrores] mostrando el error al usuario ]:A4+H ? 7enerado por I6 ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub cmd:dda*licN() +n %rror 7o4o %rrores dat>rimar$H8!Hecordset!:dd<e' cmd*ancelar!%nabled S 4rue

cmd:dd!%nabled S 9alse %xit 8ub %rrores? 2sg6ox F%rror al adicionar F ^ %rr!0escription, vb*ritical, F%rrorF %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento cmd*ancelara*licN ]>H+>+8B4+ ? *ancelar la adicion de un nuevo registro ]%\%2>L+ 0% LL:2:0: ? <inguna ]%<4H:0:8 ? dat>rimar$Hs!:dd<e' S 4rue ]8:LB0:8 ? *ancel S 4rue ]>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <inguno! ]+68%HI:*B+<%8 ? *ancela la adicion de un nuevo registro ]con el metodo ]dat>rimar$H8!Hecordset!*ancelApdate] luego ]se inhabilita el boton ]cmd*ancelar] $ se habilita ]cmd:dd] ]?%rrores] mostrando el error al usuario ]:A4+H ? 7enerado por I6 ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub cmd*ancelara*licN() +n %rror 7o4o %rrores dat>rimar$H8!Hecordset!*ancelApdate cmd*ancelar!%nabled S 9alse cmd:dd!%nabled S 4rue %xit 8ub %rrores? 2sg6ox F%rror F ^ %rr!0escription, vb*ritical, F%rrorF %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento cmd0eletea*licN ]>H+>+8B4+ ? 6orrar el registro activo ]%\%2>L+ 0% LL:2:0: ? <inguna ]%<4H:0:8 ? <inguno ]8:LB0:8 ? Hegistro borrado de la 06 ]>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <inguno! ]+68%HI:*B+<%8 ? 8e confirma con el usuario si se desea ]borrar el registro, se borra el registro con ]dat>rimar$H8!Hecordset!0elete $ se mueve al siguiente registro ]si llega al final entonces lo mueve al ultimo registro ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub cmd0eletea*licN() +n %rror Hesume <ext 0im Hesp Hesp S 2sg6ox(F0esea borrar al codigo F ^ txt9ields(/), vbKes<o, F6orrarF) Bf Hesp S vbKes 4hen

Eith dat>rimar$H8!Hecordset !0elete !2ove<ext Bf !%+9 4hen !2oveLast %nd Eith %nd Bf %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento cmdBmprimira*licN ]>H+>+8B4+ ? Bmprimir los datos de mantenimiento ]%\%2>L+ 0% LL:2:0: ? <inguna ]%<4H:0:8 ? <inguna ]8:LB0:8 ? 0atos a impresora! ]>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? /)Bmprimir0atos ]+68%HI:*B+<%8 ? 8e pide al usuario los datos de impresion ]ho a, color, etc! luego se llama a Bmprimir0atos para ]enviar los datos a la impresora ]8i ocurre algun error en la 06 o Bmpresora se muestra en ]?%rrores] mostrando el error al usuario ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub cmdBmprimira*licN() +n %rror 7o4o %rrores mdi>rincipal!0ial*omu!9lags S 0 mdi>rincipal!0ial*omu!*ancel%rror S 4rue mdi>rincipal!0ial*omu!8ho'>rinter Bmprimir0atos %xit 8ub %rrores? 8elect *ase %rr *ase 5J,? 2sg6ox F%rror al intentar imprimir; puede ser que no tenga instalada ninguna impresora en su sistema! >or favor verifique!F, vbBnformation, F%rrorF *ase C,155? *ase %lse? 2sg6ox %rr!0escription, vbBnformation, F%rrorF %nd 8elect 2ouse>ointer S vb0efault %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento cmdApdatea*licN ]>H+>+8B4+ ? :ctualizar datos de un registro modificado ]%\%2>L+ 0% LL:2:0: ? <inguna ]%<4H:0:8 ? <inguno ]8:LB0:8 ? Hegistro modificado! ]>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <inguno! ]+68%HI:*B+<%8 ? 8e actualiza el registro con el metodo ]]dat>rimar$H8!ApdateHecord], luego se mueve al ultimo registro ]modificado, se habilita al boton ]cmd:dd] $ se inhabilita al ]boton ]cmd*ancelar] para evitar que el se equivoque cuando

]introduzca datos a los registros, si ocurre un error ]salta a la etiqueta ]?%rrores] mostrando el error al usuario ]:A4+H ? 7enerado por I6 ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub cmdApdatea*licN() +n %rror 7o4o %rrores dat>rimar$H8!ApdateHecord dat>rimar$H8!Hecordset!6ooNmarN S dat>rimar$H8!Hecordset!Last2odified cmd*ancelar!%nabled S 9alse cmd:dd!%nabled S 4rue %xit 8ub %rrores? 2sg6ox F%rror al actualizar F ^ %rr!0escription, vb*ritical, F%rrorF %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento cmd*losea*licN ]>H+>+8B4+ ? 0escargar $ salir de la forma ]%\%2>L+ 0% LL:2:0: ? <inguna ]%<4H:0:8 ? <inguna ]8:LB0:8 ? 0escarga la forma ]>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <inguno! ]+68%HI:*B+<%8 ? decarga la forma utilizando el ]metodo ]unload] ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub cmd*losea*licN() Anload 2e %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento dat>rimar$H8a%rror ]>H+>+8B4+ ? 2ane ar los errores que se generen en el mane o de los datos ]%\%2>L+ 0% LL:2:0: ? <inguna ]%<4H:0:8 ? 0ata%rr S *odigo de error ]8:LB0:8 ? Hesponse S Hespuesta a ese error ]>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <inguno ]+68%HI:*B+<%8 ? la llamada a este evento es automatica (cuando se genere un error) ]:A4+H ? 7enerado automaticamente por I6 ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? >or Hicardona /5VagoV-J cambio de mensa es ]a espaol ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub dat>rimar$H8a%rror(0ata%rr :s Bnteger, Hesponse :s Bnteger) ]4his is 'here $ou 'ould put error handling code

]Bf $ou 'ant to ignore errors, comment out the next line ]Bf $ou 'ant to trap them, add code here to handle them 2sg6ox F+currio el siguiente error? F ^ %rror[(0ata%rr) Hesponse S 0 ]4hro' a'a$ the error %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento dat>rimar$H8aHeposition ]>H+>+8B4+ ? 2ostrar al usuario en que registro se ]encuentra ]%\%2>L+ 0% LL:2:0: ? <inguna ]%<4H:0:8 ? <inguna ]8:LB0:8 ? dat>rimar$H8!*aption S >osicion en el recordset ]>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <inguno! ]+68%HI:*B+<%8 ? 8e muestra la posicion del registro actual ]en ]dat>rimar$H8!*aption ] haciendola igual a ]dat>rimar$H8!Hecordset!:bsolute>osition X /] ]:A4+H ? 7enerado por I6 ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub dat>rimar$H8aHeposition() 8creen!2ouse>ointer S vb0efault +n %rror Hesume <ext ]4his 'ill displa$ the current record position for d$nasets and snapshots dat>rimar$H8!*aption S FHegistro? F ^ (dat>rimar$H8!Hecordset!:bsolute>osition X /) %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento dat>rimar$H8aIalidate ]>H+>+8B4+ ? Ialidar los eventos del datprimar$rs ]%\%2>L+ 0% LL:2:0: ? <inguna ]%<4H:0:8 ? :ction S :ccion que se efectua en ese momento ]8:LB0:8 ? 8ave S 8e utiliza para cancelar una operacion de escritura ]>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? ninguno ]+68%HI:*B+<%8 ? Llamado automatico cada vez que se e ecuta una accion ]:A4+H ? 7enerado automaticamente por I6 ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub dat>rimar$H8aIalidate(:ction :s Bnteger, 8ave :s Bnteger) ]4his is 'here $ou put validation code ]4his event gets called 'hen the follo'ing actions occur 8elect *ase :ction *ase vb0ata:ction2ove9irst *ase vb0ata:ction2ove>revious *ase vb0ata:ction2ove<ext *ase vb0ata:ction2oveLast *ase vb0ata:ction:dd<e' *ase vb0ata:ctionApdate *ase vb0ata:ction0elete

*ase vb0ata:ction9ind *ase vb0ata:ction6ooNmarN *ase vb0ata:ction*lose 8creen!2ouse>ointer S vb0efault %nd 8elect 8creen!2ouse>ointer S vbMourglass %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento 9ormaLoad ]>H+>+8B4+ ? >recargar $ condicionar variables cuando se carga la forma ]%\%2>L+ 0% LL:2:0: ? <inguno ]%<4H:0:8 ? <inguna ]8:LB0:8 ? <inguna ]>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <inguno ]+68%HI:*B+<%8 ? %n ]>ath06] se carga la ruta de la 06 ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub 9ormaLoad() dat>rimar$H8!0atabase<ame S >ath06 %nd 8ub Gorma %rmHperadores La forma frm+peradores es utilizada para llevar un registro de la informaci&n correspondiente a cada uno de los operadores del sistema, los cuales ser#n autorizados por el administrador del sistema para enviar mensa es a los clientes +ption %xplicit ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? >rocedimiento Bmprimir0atos ]>H+>+8B4+ ? Bmprimir los datos de los beepers en mantenimiento ]%\%2>L+ 0% LL:2:0: ? Bmprimir0atos ]%<4H:0:8 ? 06 tabla;mantenimineto= ]8:LB0:8 ? datos a impresora ]>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <inguno! ]+68%HI:*B+<%8 ? 8e toman los datos de la tabla ]mantenimiento] $ se genera ]el encabezado con los nombres de los campos se utiliza el ob ecto de ]sistema printer para enviar estos datos a la impresora, ]si ocurre un error en la 06 o en la impresora se mane an en la etiqueta ]?%rrores] mostrando el error al usuario ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 8ub Bmprimir0atos()

2ouse>ointer S vbMourglass Eith dat>rimar$H8 Bf !Hecordset!Hecord*ount R 0 4hen !Hecordset!2ove9irst 0o >rinter!>rint F<ombre ? F ^ txt9ields(0) ^ F F ^ txt9ields(/) >rinter!>rint F0irecci&n ? F ^ txt9ields(,) ^ F 4elfono ? F ^ txt9ields(C) >rinter!>rint F** F ^ txt9ields(5) ^ F 0e ? F ^ txt9ields(5) >rinter!>rint F+bservaciones ? F ^ txt9ields(L) >rinter!>rint F*odigo ? F ^ txt9ields(1) ^ F *lave ? F ^ txt9ields(J) >rinter!>rint !Hecordset!2ove<ext Loop Antil !Hecordset!%+9 >rinter!%nd0oc %nd Bf !Hecordset!2ove9irst %nd Eith 2ouse>ointer S vb0efault %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento cmd:dda*licN ]>H+>+8B4+ ? preparar par adicionar un registro ]%\%2>L+ 0% LL:2:0: ? <inguna ]%<4H:0:8 ? tabla;operadores= ]8:LB0:8 ? <inguno ]>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <inguno! ]+68%HI:*B+<%8 ?>repara al control dat>rimar$Hs para ]adicionar un registro ]si ocurre un error en la 06 se mane an en la etiqueta ]?%rrores] mostrando el error al usuario ]:A4+H ? 7enerado por I6 ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub cmd:dda*licN() +n %rror 7o4o %rrores dat>rimar$H8!Hecordset!:dd<e' cmd*ancelar!%nabled S 4rue cmd:dd!%nabled S 9alse %xit 8ub %rrores? 2sg6ox F%rror al adicionar F ^ %rr!0escription, vb*ritical, F%rrorF %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento cmd*ancelara*licN ]>H+>+8B4+ ? *ancelar la adicion de un nuevo registro ]%\%2>L+ 0% LL:2:0: ? <inguna ]%<4H:0:8 ? dat>rimar$Hs!:dd<e' S 4rue ]8:LB0:8 ? *ancel S 4rue ]>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <inguno!

]+68%HI:*B+<%8 ? *ancela la adicion de un nuevo registro ]con el metodo ]dat>rimar$H8!Hecordset!*ancelApdate] luego ]se inhabilita el boton ]cmd*ancelar] $ se habilita ]cmd:dd] ]?%rrores] mostrando el error al usuario ]:A4+H ? 7enerado por I6 ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub cmd*ancelara*licN() +n %rror 7o4o %rrores dat>rimar$H8!Hecordset!*ancelApdate cmd*ancelar!%nabled S 9alse cmd:dd!%nabled S 4rue %xit 8ub %rrores? 2sg6ox F%rror F ^ %rr!0escription, vb*ritical, F%rrorF %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento cmd0eletea*licN ]>H+>+8B4+ ? 6orrar el registro activo ]%\%2>L+ 0% LL:2:0: ? <inguna ]%<4H:0:8 ? <inguno ]8:LB0:8 ? Hegistro borrado de la 06 ]>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <inguno! ]+68%HI:*B+<%8 ? 8e confirma con el usuario si se desea ]borrar el registro, se borra el registro con ]dat>rimar$H8!Hecordset!0elete $ se mueve al siguiente registro ]si llega al final entonces lo mueve al ultimo registro ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub cmd0eletea*licN() +n %rror Hesume <ext 0im Hesp Hesp S 2sg6ox(F0esea borrar al codigo F ^ txt9ields(-), vbKes<o, F6orrarF) Bf Hesp S vbKes 4hen Eith dat>rimar$H8!Hecordset !0elete !2ove<ext Bf !%+9 4hen !2oveLast %nd Eith %nd Bf %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento cmdBmprimira*licN ]>H+>+8B4+ ? Bmprimir los datos de mantenimiento ]%\%2>L+ 0% LL:2:0: ? <inguna ]%<4H:0:8 ? <inguna

]8:LB0:8 ? 0atos a impresora! ]>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? /)Bmprimir0atos ]+68%HI:*B+<%8 ? 8e pide al usuario los datos de impresion ]ho a, color, etc! luego se llama a Bmprimir0atos para ]enviar los datos a la impresora ]8i ocurre algun error en la 06 o Bmpresora se muestra en ]?%rrores] mostrando el error al usuario ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub cmdBmprimira*licN() +n %rror 7o4o %rrores mdi>rincipal!0ial*omu!9lags S 0 mdi>rincipal!0ial*omu!*ancel%rror S 4rue mdi>rincipal!0ial*omu!8ho'>rinter Bmprimir0atos %xit 8ub %rrores? 8elect *ase %rr *ase 5J,? 2sg6ox F%rror al intentar imprimir; puede ser que no tenga instalada ninguna impresora en su sistema! >or favor verifique!F, vbBnformation, F%rrorF *ase C,155? *ase %lse? 2sg6ox %rr!0escription, vbBnformation, F%rrorF %nd 8elect 2ouse>ointer S vb0efault %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento cmdApdatea*licN ]>H+>+8B4+ ? :ctualizar datos de un registro modificado ]%\%2>L+ 0% LL:2:0: ? <inguna ]%<4H:0:8 ? <inguno ]8:LB0:8 ? Hegistro modificado! ]>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <inguno! ]+68%HI:*B+<%8 ? 8e actualiza el registro con el metodo ]]dat>rimar$H8!ApdateHecord], luego se mueve al ultimo registro ]modificado, se habilita al boton ]cmd:dd] $ se inhabilita al ]boton ]cmd*ancelar] para evitar que el se equivoque cuando ]introduzca datos a los registros, si ocurre un error ]salta a la etiqueta ]?%rrores] mostrando el error al usuario ]:A4+H ? 7enerado por I6 ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub cmdApdatea*licN() +n %rror 7o4o %rrores dat>rimar$H8!ApdateHecord dat>rimar$H8!Hecordset!6ooNmarN S dat>rimar$H8!Hecordset!Last2odified cmd*ancelar!%nabled S 9alse

cmdApdate!%nabled S 9alse cmd:dd!%nabled S 4rue ]884ab/!%nabled S 9alse %xit 8ub %rrores? 2sg6ox F%rror al actualizar F ^ %rr!0escription, vb*ritical, F%rrorF %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento cmd*losea*licN ]>H+>+8B4+ ? 0escargar $ salir de la forma ]%\%2>L+ 0% LL:2:0: ? <inguna ]%<4H:0:8 ? <inguna ]8:LB0:8 ? 0escarga la forma ]>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <inguno! ]+68%HI:*B+<%8 ? decarga la forma utilizando el ]metodo ]unload] ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub cmd*losea*licN() Anload 2e %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento dat>rimar$H8a%rror ]>H+>+8B4+ ? 2ane ar los errores que se generen en el mane o de los datos ]%\%2>L+ 0% LL:2:0: ? <inguna ]%<4H:0:8 ? 0ata%rr S *odigo de error ]8:LB0:8 ? Hesponse S Hespuesta a ese error ]>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <inguno ]+68%HI:*B+<%8 ? la llamada a este evento es automatica (cuando se genere un error) ]:A4+H ? 7enerado automaticamente por I6 ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? >or Hicardona /5VagoV-J cambio de mensa es ]a espaol ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub dat>rimar$H8a%rror(0ata%rr :s Bnteger, Hesponse :s Bnteger) ]4his is 'here $ou 'ould put error handling code ]Bf $ou 'ant to ignore errors, comment out the next line ]Bf $ou 'ant to trap them, add code here to handle them 2sg6ox F0ata error event hit err?F ^ %rror[(0ata%rr) Hesponse S 0 ]4hro' a'a$ the error %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento dat>rimar$H8aHeposition ]>H+>+8B4+ ? 2ostrar al usuario en que registro se ]encuentra ]%\%2>L+ 0% LL:2:0: ? <inguna ]%<4H:0:8 ? <inguna

]8:LB0:8 ? dat>rimar$H8!*aption S >osicion en el recordset ]>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <inguno! ]+68%HI:*B+<%8 ? 8e muestra la posicion del registro actual ]en ]dat>rimar$H8!*aption ] haciendola igual a ]dat>rimar$H8!Hecordset!:bsolute>osition X /] ]:A4+H ? 7enerado por I6 ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub dat>rimar$H8aHeposition() 8creen!2ouse>ointer S vb0efault +n %rror Hesume <ext ]4his 'ill displa$ the current record position for d$nasets and snapshots dat>rimar$H8!*aption S FHecord? F ^ (dat>rimar$H8!Hecordset!:bsolute>osition X /) %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento dat>rimar$H8aIalidate ]>H+>+8B4+ ? Ialidar los eventos del datprimar$rs ]%\%2>L+ 0% LL:2:0: ? <inguna ]%<4H:0:8 ? :ction S :ccion que se efectua en ese momento ]8:LB0:8 ? 8ave S 8e utiliza para cancelar una operacion de escritura ]>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? ninguno ]+68%HI:*B+<%8 ? Llamado automatico cada vez que se e ecuta una accion ]:A4+H ? 7enerado automaticamente por I6 ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub dat>rimar$H8aIalidate(:ction :s Bnteger, 8ave :s Bnteger) ]4his is 'here $ou put validation code ]4his event gets called 'hen the follo'ing actions occur 8elect *ase :ction *ase vb0ata:ction2ove9irst *ase vb0ata:ction2ove>revious *ase vb0ata:ction2ove<ext *ase vb0ata:ction2oveLast *ase vb0ata:ction:dd<e' *ase vb0ata:ctionApdate *ase vb0ata:ction0elete *ase vb0ata:ction9ind *ase vb0ata:ction6ooNmarN *ase vb0ata:ction*lose 8creen!2ouse>ointer S vb0efault %nd 8elect 8creen!2ouse>ointer S vbMourglass %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento 9ormaLoad ]>H+>+8B4+ ? >recargar $ condicionar variables cuando se carga la forma ]%\%2>L+ 0% LL:2:0: ? <inguno

]%<4H:0:8 ? <inguna ]8:LB0:8 ? <inguna ]>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <inguno ]+68%HI:*B+<%8 ? %n ]>ath06] se carga la ruta de la 06 ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub 9ormaLoad() dat>rimar$H8!0atabase<ame S >ath06 %nd 8ub Gorma %rmSplash %sta forma muestra una ventana acerca del programa, es una ventana informativa del sistema! +ption %xplicit] se obliga a la definici&n de variables ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento cmd+Ta*licN ]>H+>+8B4+ ? 0escargar $ salir de la forma ]%\%2>L+ 0% LL:2:0: ? <inguna ]%<4H:0:8 ? <inguna ]8:LB0:8 ? 0escarga la forma ]>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <inguno! ]+68%HI:*B+<%8 ? decarga la forma utilizando el ]metodo ]unload] ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub cmd+Ta*licN() Anload 2e %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento 9ormaLoad ]>H+>+8B4+ ? >recargar $ condicionar variables cuando se carga la forma ]%\%2>L+ 0% LL:2:0: ? <inguno ]%<4H:0:8 ? <inguna ]8:LB0:8 ? <inguna ]>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <inguno ]+68%HI:*B+<%8 ? %n lblIersion!*aption se carga la ]version actual del programa para ser desplegada ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J

]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub 9ormaLoad() lblIersion!*aption S FIersion F ^ :pp!2a or ^ F!F ^ :pp!2inor ^ F!F ^ :pp!Hevision %nd 8ub Gorma %rm7suarios %sta forma es utilizada para administrar toda la informaci&n de los usuarios del sistema, se puede agregar, modificar $ borrar, a travs de esta forma la informaci&n de los usuarios! +ption %xplicit ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento cmd:dda*licN ]>H+>+8B4+ ? preparar par adicionar un registro ]%\%2>L+ 0% LL:2:0: ? <inguna ]%<4H:0:8 ? tabla;Asuarios= ]8:LB0:8 ? <inguno ]>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <inguno! ]+68%HI:*B+<%8 ?>repara al control dat>rimar$Hs para ]adicionar un registro ]si ocurre un error en la 06 se mane an en la etiqueta ]?%rrores] mostrando el error al usuario ]:A4+H ? 7enerado por I6 ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub cmd:dda*licN() +n %rror 7o4o %rrores dat>rimar$H8!Hecordset!:dd<e' cmd*ancelar!%nabled S 4rue ] cmdApdate!%nabled S 4rue cmd:dd!%nabled S 9alse ]884ab/!%nabled S 4rue %xit 8ub %rrores? 2sg6ox F%rror al adicionar F ^ %rr!0escription, vb*ritical, F%rrorF %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento cmd6orrar2ensa esa*licN ]>H+>+8B4+ ? 6orrar los mensa es de un usuarios ]%\%2>L+ 0% LL:2:0: ? <inguna ]%<4H:0:8 ? <inguno ]8:LB0:8 ? Hegistros borrados en la 06 ]>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <inguno! ]+68%HI:*B+<%8 ? 8e confirma con el usuario si se desea

]borrar los registro, se borran el registro con ]]2$0atabase!%xecute ] actualiza el campo ]*olaBndS0] ]del usuario para comenzar de nuevo a contar mensa es ]en caso se error se informa al usuario en ]%rrores?] ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub cmd6orrar2ensa esa*licN() +n %rror 7o4o %rrores 0im Hesp 0im *odigo *odigo S txt9ields(-) Hesp S 2sg6ox(F0esea borrar los 2ensa es del codigo F ^ *odigo, vbKes<o, F6orrar mensa esF) Bf Hesp S vbKes 4hen ]se borran todos los mensa es del usuario 2$0atabase!%xecute F0%L%4% W 9H+2 2ensa es EM%H% *odigo S ]F ^ *odigo ^ F];F ]se coloca el indice en 0 2$0atabase!%xecute FA>0:4% Asuarios 8%4 *olaBndice S 0 EM%H% *od6eeper S ]F ^ *odigo ^ F];F %nd Bf %xit 8ub %rrores? 2sg6ox %rr ^ F F ^ %rr!0escription, vbBnformation, F%rror al borrar mensa esF %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento cmd6uscara*licN ]>H+>+8B4+ ? 6uscar a un usuario por el codigo ]%\%2>L+ 0% LL:2:0: ? <inguna ]%<4H:0:8 ? txt*odigo S 4exto, codigo a buscars ]8:LB0:8 ? Heposicionamiento en el recordset ]>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <inguno! ]+68%HI:*B+<%8 ? se utiliza el metodo ]dat>rimar$H8!Hecordset!9ind9irst] para buscar en ]caso de encontrar el codigo se reposiciona $ si no ]se le indica al usuario que no se encontro ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub cmd6uscara*licN() +n %rror Hesume <ext dat>rimar$H8!Hecordset!9ind9irst F*od6eeper S ]F ^ txt*odigo ^ F]F Bf dat>rimar$H8!Hecordset!<o2atch 4hen 2sg6ox F<o se encontro al codigo F ^ txt*odigo, vbBnformation, F6usquedaF %lse 884abAsuarios!4ab S 0

%nd Bf %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento cmd*ancelara*licN ]>H+>+8B4+ ? *ancelar la adicion de un nuevo registro ]%\%2>L+ 0% LL:2:0: ? <inguna ]%<4H:0:8 ? dat>rimar$Hs!:dd<e' S 4rue ]8:LB0:8 ? *ancel S 4rue ]>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <inguno! ]+68%HI:*B+<%8 ? *ancela la adicion de un nuevo registro ]con el metodo ]dat>rimar$H8!Hecordset!*ancelApdate] luego ]se inhabilita el boton ]cmd*ancelar] $ se habilita ]cmd:dd] ]?%rrores] mostrando el error al usuario ]:A4+H ? 7enerado por I6 ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub cmd*ancelara*licN() +n %rror 7o4o %rrores dat>rimar$H8!Hecordset!*ancelApdate cmd*ancelar!%nabled S 9alse cmd:dd!%nabled S 4rue %xit 8ub %rrores? 2sg6ox F%rror F ^ %rr!0escription, vb*ritical, F%rrorF %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento cmd0eletea*licN ]>H+>+8B4+ ? 6orrar el registro activo ]%\%2>L+ 0% LL:2:0: ? <inguna ]%<4H:0:8 ? <inguno ]8:LB0:8 ? Hegistro borrado de la 06 ]>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <inguno! ]+68%HI:*B+<%8 ? 8e confirma con el usuario si se desea ]borrar el registro, se borra el registro con ]dat>rimar$H8!Hecordset!0elete $ se mueve al siguiente registro ]si llega al final entonces lo mueve al ultimo registro ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub cmd0eletea*licN() +n %rror Hesume <ext 0im Hesp Hesp S 2sg6ox(F0esea borrar al codigo F ^ txt9ields(-), vbKes<o, F6orrarF) Bf Hesp S vbKes 4hen Eith dat>rimar$H8!Hecordset !0elete

!2ove<ext Bf !%+9 4hen !2oveLast %nd Eith %nd Bf %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento cmdListadoa*licN ]>H+>+8B4+ ? 2ostrar el listado de usuarios ]%\%2>L+ 0% LL:2:0: ? <inguna ]%<4H:0:8 ? <inguno ]8:LB0:8 ? <inguno ]>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <inguno! ]+68%HI:*B+<%8 ? 8e descarga la forma actual $ se invoca ]el metodo ]frmgrdAsuarios!8ho'] para mostar el listado ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub cmdListadoa*licN() Anload 2e frmgrdAsuarios!8ho' %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento cmdApdatea*licN ]>H+>+8B4+ ? :ctualizar datos de un registro modificado ]%\%2>L+ 0% LL:2:0: ? <inguna ]%<4H:0:8 ? <inguno ]8:LB0:8 ? Hegistro modificado! ]>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <inguno! ]+68%HI:*B+<%8 ? 8e actualiza el registro con el metodo ]]dat>rimar$H8!ApdateHecord], luego se mueve al ultimo registro ]modificado, se habilita al boton ]cmd:dd] $ se inhabilita al ]boton ]cmd*ancelar] para evitar que el se equivoque cuando ]introduzca datos a los registros, si ocurre un error ]salta a la etiqueta ]?%rrores] mostrando el error al usuario ]:A4+H ? 7enerado por I6 ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub cmdApdatea*licN() +n %rror 7o4o %rrores dat>rimar$H8!ApdateHecord dat>rimar$H8!Hecordset!6ooNmarN S dat>rimar$H8!Hecordset!Last2odified cmd*ancelar!%nabled S 9alse ] cmdApdate!%nabled S 9alse cmd:dd!%nabled S 4rue ]884ab/!%nabled S 9alse %xit 8ub

%rrores? 2sg6ox F%rror al actualizar F ^ %rr!0escription, vb*ritical, F%rrorF %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento cmd*losea*licN ]>H+>+8B4+ ? 0escargar $ salir de la forma ]%\%2>L+ 0% LL:2:0: ? <inguna ]%<4H:0:8 ? <inguna ]8:LB0:8 ? 0escarga la forma ]>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <inguno! ]+68%HI:*B+<%8 ? decarga la forma utilizando el ]metodo ]unload] ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub cmd*losea*licN() 8creen!2ouse>ointer S vb0efault Anload 2e %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento dat>rimar$H8a%rror ]>H+>+8B4+ ? 2ane ar los errores que se generen en el mane o de los datos ]%\%2>L+ 0% LL:2:0: ? <inguna ]%<4H:0:8 ? 0ata%rr S *odigo de error ]8:LB0:8 ? Hesponse S Hespuesta a ese error ]>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <inguno ]+68%HI:*B+<%8 ? la llamada a este evento es automatica (cuando se genere un error) ]:A4+H ? 7enerado automaticamente por I6 ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? >or Hicardona /5VagoV-J cambio de mensa es ]a espaol ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub dat>rimar$H8a%rror(0ata%rr :s Bnteger, Hesponse :s Bnteger) ]4his is 'here $ou 'ould put error handling code ]Bf $ou 'ant to ignore errors, comment out the next line ]Bf $ou 'ant to trap them, add code here to handle them 2sg6ox F+currio un error?F ^ %rror[(0ata%rr) Hesponse S 0 ]4hro' a'a$ the error %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento dat>rimar$H8aHeposition ]>H+>+8B4+ ? 2ostrar al usuario en que registro se ]encuentra ]%\%2>L+ 0% LL:2:0: ? <inguna ]%<4H:0:8 ? <inguna ]8:LB0:8 ? dat>rimar$H8!*aption S >osicion en el recordset ]>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <inguno! ]+68%HI:*B+<%8 ? 8e muestra la posicion del registro actual

]en ]dat>rimar$H8!*aption ] haciendola igual a ]dat>rimar$H8!Hecordset!:bsolute>osition X /] ]:A4+H ? 7enerado por I6 ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub dat>rimar$H8aHeposition() 8creen!2ouse>ointer S vb0efault +n %rror Hesume <ext ]4his 'ill displa$ the current record position for d$nasets and snapshots dat>rimar$H8!*aption S F*odigo ]F ^ txt9ields(-)!4ext ^ F] Hegistro? F ^ (dat>rimar$H8!Hecordset!:bsolute>osition X /) %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento dat>rimar$H8aIalidate ]>H+>+8B4+ ? Ialidar los eventos del datprimar$rs ]%\%2>L+ 0% LL:2:0: ? <inguna ]%<4H:0:8 ? :ction S :ccion que se efectua en ese momento ]8:LB0:8 ? 8ave S 8e utiliza para cancelar una operacion de escritura ]>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? ninguno ]+68%HI:*B+<%8 ? Llamado automatico cada vez que se e ecuta una accion ]:A4+H ? 7enerado automaticamente por I6 ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub dat>rimar$H8aIalidate(:ction :s Bnteger, 8ave :s Bnteger) ]4his is 'here $ou put validation code ]4his event gets called 'hen the follo'ing actions occur 8elect *ase :ction *ase vb0ata:ction2ove9irst *ase vb0ata:ction2ove>revious *ase vb0ata:ction2ove<ext *ase vb0ata:ction2oveLast *ase vb0ata:ction:dd<e' *ase vb0ata:ctionApdate *ase vb0ata:ction0elete *ase vb0ata:ction9ind *ase vb0ata:ction6ooNmarN *ase vb0ata:ction*lose 8creen!2ouse>ointer S vb0efault %nd 8elect %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento 9ormaLoad ]>H+>+8B4+ ? >recargar $ condicionar variables cuando se carga la forma ]%\%2>L+ 0% LL:2:0: ? <inguno ]%<4H:0:8 ? <inguna ]8:LB0:8 ? >ath06 S *amino de la base de datos ]>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <inguno

]+68%HI:*B+<%8 ? %n ]>ath06] se carga la ruta de la 06 ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub 9ormaLoad() dat>rimar$H8!0atabase<ame S >ath06 %nd 8ub Gorma Ir8%ico %sta forma se utiliza para desplegar los an#lisis estadsticos del sistema en forma gr#fica, se pueden crear gr#ficos de diferentes tipos como pastel, barras, logartmicos, $ de lneas! +ption %xplicit ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento 6arraa6utton*licN ]>H+>+8B4+ ? 2ane ar cuando sean oprimidos los diferentes botones ] de la barra de herramientas ]%\%2>L+ 0% LL:2:0: ? <inguno ]%<4H:0:8 ? 6utton S 6oton oprimido pasado como ob ecto comctlLib!button ]8:LB0:8 ? <inguna ]>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <inguno ]+68%HI:*B+<%8 ? >ermite 7rabar el grafico como un archivo bmp, ] Bmprimir el grafico a la impresora determinada copiando los datos al ] clipboard $ luego enviandolos a la impresora, ] *opiar contenido de la grafica al portapapelesF ] >ropiedades muestra la forma frm>roperties con el metodo ]8ho'] ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub 6arraa6utton*licN(6$Ial 6utton :s 6utton) +n %rror 7o4o %rrores 8elect *ase 6utton!Te$ *ase F7rabarF 0ial*omu!9ilter S F:rchivos 62> eW!bmpeF ] 8pecif$ default filter! 0ial*omu!9ilterBndex S / ] 0ispla$ the 8ave :s dialog box! 0ial*omu!8ho'8ave 7rafica!Bmage9ile S 0ial*omu!filename Bf 7rafica!Bmage9ile QR FF 4hen 7rafica!0ra'2ode S C ]modo de mapa de bits 7rafica!0ra'2ode S L ]%scribir 7rafica!0ra'2ode S , ]modo normal de grafica %nd Bf

*ase FBmprimirF 0ial*omu!9lags S 0 0ial*omu!*ancel%rror S 4rue ]espera que se cancele la orden 0ial*omu!8ho'>rinter 2ouse>ointer S vbMourglass 7rafica!0ra'2ode S 5 ]copia al clipboard >rinter!>aint>icture *lipboard!7et0ata(), /, / >rinter!%nd0oc 7rafica!0ra'2ode S , ]modo normal de grafica 2ouse>ointer S vb0efault *ase F*opiarF ]*opia contenido de la grafica al portapapeles 7rafica!0ra'2ode S 5 ]copia al clipboard 7rafica!0ra'2ode S , ]modo normal de grafica *ase F>ropiedadesF >rop7rafico!8ho' / %nd 8elect %xit 8ub %rrores? 8elect *ase %rr *ase 5J,? 2sg6ox F%rror al intentar imprimir; puede ser que no tenga instalada ninguna impresora en su sistema! >or favor verifique!F, vbBnformation, F%rrorF *ase C,155? *ase %lse? 2sg6ox %rr!0escription, vbBnformation, F%rrorF %nd 8elect 2ouse>ointer S vb0efault %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento 9ormaHesize ]>H+>+8B4+ ? Hea ustar el tamao de la forma $ ] del control 7rafico ]%\%2>L+ 0% LL:2:0: ? ninguna ]%<4H:0:8 ? <inguna ]8:LB0:8 ? <inguno ]>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <inguno ]+68%HI:*B+<%8 ? 8e redimensiona el grid de datos cuando se ]redimensiona la forma ]:A4+H ? 7enerado automaticamente por I6 ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub 9ormaHesize() Bf 2e!Eindo'8tate QR / 4hen Bf 2e!Eidth R /000 4hen 7rafica!Eidth S 2e!Eidth V ,00 Bf 2e!Meight R /000 4hen 7rafica!Meight S 2e!Meight V /000 %nd Bf %nd 8ub

(rograma mensa?es %n este listado se detalla todo el c&digo fuente del programa de mensa es, tambin se agregaron ciertos tipo de comentarios tanto en el encabezado como en la estructura de cada m&dulo $ funci&n! "odulo principal %ste m&dulo es usado para declarar variables globales a todo el programa, en este m&dulo se declara tambin la funci&n FmainF que es el primer procedimiento que se carga cuando se entra al programa! +ption %xplicit >ublic Logon%fectuado :s 6oolean >ublic txt+per :s 8tring >ublic >ath06 :s 8tring ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? >rocedimiento 2ain ]>H+>+8B4+ ? :brir la base de datos $ verificar cada usuario ]que entra al sistema ]%\%2>L+ 0% LL:2:0: ? <inguna ]%<4H:0:8 ? <inguna ]8:LB0:8 ? <inguna ]>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <inguno ]+68%HI:*B+<%8 ? >rimer procedimiento al iniciar el programa, se ]abre la base de datos con el metodo ]opendatabase] $ ]posteriormente se muestra la forma frmLogin para solicitar ]informaci&n al usuario! ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 8ub 2ain() 0im L98 +n %rror 7o4o 06%rrorMandler frm8plash!8ho' frm8plash!4op S ,00 frm8plash!Hefresh L98 S *hr[(/C) ^ *hr[(/0) ] 8i ha$ errores $a sabe que hacer!

>ath06 S 7et8etting(F2ensa esF, F>athF, F6asededatosF, FF) Bf >ath06 S FF 4hen frmLogin!*0ialog!8ho'+pen >ath06 S frmLogin!*0ialog!filename

Bf >ath06 QR FF 4hen 8ave8etting F2ensa esF, F>athF, F6asededatosF, >ath06 %lse %nd %nd Bf %nd Bf 8et 2$EorNspace S EorNspaces(0) 8et 2$0atabase S 2$EorNspace!+pen0atabase(>ath06) frmLogin!8ho' / Bf Logon%fectuado 4hen frm2ensa es!8ho' %lse 2$0atabase!*lose %nd %nd Bf Anload frm8plash %xit 8ub 06%rrorMandler? 8elect *ase %rr *ase C0,5? 2sg6ox F<o se puede abrir la base de datos!F, vb%xclamation *ase C0,,? 2sg6ox F%l usuario $a existe en la base de datos!F, vb%xclamation *ase -/? 2sg6ox F<o se ha abierto la base de datos!F, vb%xclamation *ase %lse? 2sg6ox %rr!0escription, vb%xclamation %nd 8elect %nd %nd 8ub Gorma %rm/ogin La forma frmLogin es utilizada para verificar la clave de entrada al programa de mensa es! +ption %xplicit ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento cmd*ancela*licN() ]>H+>+8B4+ ? 0escargar la forma frmLogin ]%\%2>L+ 0% LL:2:0: ? <inguna ]%<4H:0:8 ? <inguna ]8:LB0:8 ? <inguna ]>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <inguna ]+68%HI:*B+<%8 ? 0escarga la forma con el metodo ]unload] ]$ coloca la variable global Logon%fectuado S 9alse para ]indicar una falla en la entrada al programa ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub cmd*ancela*licN() ]set the global var to false

]to denote a failed login Logon%fectuado S 9alse Anload 2e %nd 8ub ] ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento cmd+Ta*licN() ]>H+>+8B4+ ? Ierificar los datos entrados por el usuario ]cuando intenta entrar al programa ]%\%2>L+ 0% LL:2:0: ? <inguna ]%<4H:0:8 ? <inguna ]8:LB0:8 ? <inguna ]>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <inguno ]+68%HI:*B+<%8 ? cuando el boton es oprimido se verifica los ]datos que el operador entro, si estos datos no concuerdan ]con los de la db, no se permitira la entrada al resto del programa ]*ualquier error que ocurra en la secuencia sera ]informado al usuario! ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub cmd+Ta*licN() 0im *ap*ode :s 8tring, 2ensa e :s 8tring, +pciones :s 8tring 0im i, Hesp, *ad8 0im 2$4able :s Hecordset +n %rror 7o4o 06%rrorMandler ] 8i ha$ errores $a sabe que hacer! ] :brir tabla! *ad8 S Fselect W from ;+peradores= 'here ;+perador=S]F ^ txtAsuario!4ext ^ F] F ^ F:nd ;*lave=S]F ^ txt*lave!4ext ^ F];F 8et 2$4able S 2$0atabase!+penHecordset(*ad8, db+pen0$naset) Bf 2$4able!Hecord*ount QR 0 4hen Eith 2$4able !2oveLast ] Llena el Hecordset! Logon%fectuado S 4rue frm2ensa es!*aption S F2ensa es V +perador F ^ b<ombre ^ F F ^ b:pellidos ^ F F ^ txtAsuario txt+per S txtAsuario Anload 2e %nd Eith %lse 2sg6ox F<o se encontro al operadorbF, vb*ritical, F%rrorF %nd Bf 2$4able!*lose 8et 2$4able S <othing %xit 8ub 06%rrorMandler? 8elect *ase %rr

*ase C0,5? 2sg6ox F<o se puede abrir la base de datos!F, vb%xclamation *ase C0,,? 2sg6ox F%l usuario $a existe en la base de datos!F, vb%xclamation *ase CC/5? 2sg6ox F0ebe llenar todos los campos!F, vb%xclamation *ase -/? 2sg6ox F<o se ha abierto la base de datos!F, vb%xclamation *ase %lse? 2sg6ox %rr!0escription, vb%xclamation %nd 8elect ]cerrar tabla 8et 2$4able S <othing %nd 8ub Gorma %rm"ensa+es %sta forma es diseada para recibir mensa es $ grabarlos a la base de datos, estos mensa es son despachados inmediatamente por el servidor (si no existe un tr#fico alto)! +ption %xplicit 0im >ermitir :s 6oolean 0im 8erv, Long2ens, <ume2ens, +per ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? >rocedimiento 2ant ]>H+>+8B4+ ? Llenar los campos de un mensa e con los datos de un ]buscapersonas en mantenimiento ]%\%2>L+ 0% LL:2:0: ? 2ant(*odigo) ]%<4H:0:8 ? *odigo S 4exto, valor del codigo a buscar si se encuentra ]en mantenimiento ]8:LB0:8 ? <inguna ]>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <inguno ]+68%HI:*B+<%8 ? 8e toma un codigo, se llenan todos los datos del ]mensa e con los datos del beeper en mantenimiento ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 8ub 2ant(6$Ial *odigo :s 8tring) 0im *ap*ode :s 8tring, 2ensa e :s 8tring, +pciones :s 8tring 0im i, Hesp, *ad8 0im st*ad :s 8tring 0im 2$4able :s Hecordset +n %rror 7o4o 06%rrorMandler ] 8i ha$ errores $a sabe que hacer! ]:brir tabla! *ad8 S Fselect W from 2antenimiento 'here *od6eeper S ]F ^ *odigo ^ F] F 8et 2$4able S 2$0atabase!+penHecordset(*ad8, db+pen0$naset) Bf 2$4able!Hecord*ount QR 0 4hen Eith 2$4able !2oveLast ] Llena el Hecordset! txt9ields(5)!4ext S b*ap*ode ]*apcode

]opciones del beeper txt9ields(L)!4ext S 9ormat(b9ormato6loque) ^ 9ormat(b9uncion) ]+pciones Bf b:lfanumerico 4hen st*ad S F/F %lse st*ad S F0F txt9ields(L)!4ext S txt9ields(L)!4ext ^ st*ad Bf b>rioridad 4hen st*ad S F/F %lse st*ad S F0F txt9ields(L)!4ext S txt9ields(L)!4ext ^ st*ad ^ txt9ields(L)!4ext ^ 9ormat(b4alN) !*lose %nd Eith %lse 2sg6ox F<o se encontro el codigo de mantenimientoF, vb*ritical, F%rrorF %nd Bf 8et 2$4able S <othing %xit 8ub 06%rrorMandler? 8elect *ase %rr *ase C0,5? 2sg6ox F<o se puede abrir la base de datos!F, vb%xclamation *ase C0,,? 2sg6ox F%l usuario $a existe en la base de datos!F, vb%xclamation *ase CC/5? 2sg6ox F0ebe llenar todos los campos!F, vb%xclamation *ase -/? 2sg6ox F<o se ha abierto la base de datos!F, vb%xclamation *ase %lse? 2sg6ox %rr ^ %rr!0escription, vb%xclamation %nd 8elect ]cerrar tabla 8et 2$4able S <othing %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? >rocedimiento Limpiar*ad ]>H+>+8B4+ ? Limpiar un texto de caracteres R /,1 en :8*BB ]%\%2>L+ 0% LL:2:0: ? Limpiar*ad(*adena) ]%<4H:0:8 ? *adena S texto a ser limpiado ]8:LB0:8 ? <inguna ]>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? /)Len (I6),,)mid (I6),C):scv (I6) ]+68%HI:*B+<%8 ? la cadena se verifica car#cter a car#cter $ luego se ]compara si es ma$or que /,1 no se suma a la cadena total ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 8ub Limpiar*ad(6$Hef *adena :s 8tring) 0im i, 4emp 4emp S FF 9or i S / 4o Len(*adena) Bf :sc(2id(*adena, i, /)) Q /,1 4hen 4emp S 4emp ^ 2id(*adena, i, /) %nd Bf <ext i *adena S 4emp %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? >rocedimiento %mpezar ]>H+>+8B4+ ?

]%\%2>L+ 0% LL:2:0: ? *argar valores de la base de datos cuando se Yinicia el programa ]%<4H:0:8 ? <inguna ]8:LB0:8 ? <inguna ]>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <inguno ]+68%HI:*B+<%8 ? se toman las variables de la db de la tabla sistema ]luego se cargan estos valores en el programa, se verifica si el ]servidor esta encendido, si se colocan numero $ operador en el mensa e ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 8ub %mpezar() 0im *ap*ode :s 8tring, 2ensa e :s 8tring, +pciones :s 8tring 0im i, Hesp, *ad8 0im 2$4able :s Hecordset +n %rror 7o4o 06%rrorMandler ] 8i ha$ errores $a sabe que hacer! ] :brir tabla! *ad8 S Fselect W from 8istemaF 8et 2$4able S 2$0atabase!+penHecordset(*ad8, db+pen0$naset) Bf 2$4able!Hecord*ount QR 0 4hen Eith 2$4able !2oveLast ] Llena el Hecordset! 8erv S b8ervidor Bf <ot 8erv 4hen 2sg6ox F<o se inicio correctamente el servidor!F, vb*ritical, F8ervidor no iniciadoF Anload 2e %nd Bf Long2ens S bLongitud2ensa e <ume2ens S b<um2ensa e +per S b+perador %nd Eith %lse 2sg6ox F<o existe el registro de configuraci&n!F, vb*ritical, F%rrorF %nd %nd Bf 2$4able!*lose 8et 2$4able S <othing %xit 8ub 06%rrorMandler? 8elect *ase %rr *ase C0,5? 2sg6ox F<o se puede abrir la base de datos!F, vb%xclamation *ase C0,,? 2sg6ox F%l usuario $a existe en la base de datos!F, vb%xclamation *ase CC/5? 2sg6ox F0ebe llenar todos los campos!F, vb%xclamation *ase -/? 2sg6ox F<o se ha abierto la base de datos!F, vb%xclamation *ase %lse? 2sg6ox F%l campo no debe estar vacio debe insertar un 2ensa e! F ^ %rr ^ %rr!0escription, vb%xclamation %nd 8elect

]cerrar tabla 8et 2$4able S <othing %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? 9unci&n IeriAsua ]>H+>+8B4+ ? Ierificar la existencia de un usuario ]%\%2>L+ 0% LL:2:0: ? IeriAsua(*odigo, %nviar) ]%<4H:0:8 ? *odigo S *odigo del usuario a buscar ]%nviar S booleano, Ierificar clave de envio ]8:LB0:8 ? IeriAsua S %ntero,estado devuelto, ]>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <inguno ]+68%HI:*B+<%8 ? se busca en la db la informaci&n del c!&ig! luego se ]verifica si tiene clave de envio $ si esta activo, se devuelve ]*lave<oIalida, <o%xiste, <o:ctivo, $ %xiste ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 9unction IeriAsua(6$Ial *odigo :s 8tring, 6$Ial %nviar :s 6oolean) :s Bnteger 0im i, Hesp, *ad8 0im 2$4able :s Hecordset +n %rror 7o4o 06%rrorMandler ] 8i ha$ errores $a sabe que hacer! ] :brir tabla! *ad8 S Fselect W from Asuarios 'here *od6eeper S ]F ^ *odigo ^ F] F 8et 2$4able S 2$0atabase!+penHecordset(*ad8, db+pen0$naset) Bf 2$4able!Hecord*ount QR 0 4hen Eith 2$4able !2oveLast ]llena el recordset Bf 9ormat(b:ctivo, FQF) S FsiF 4hen txt9ields(/)!2axLength S bL2ensa e <ombre!*aption S b<ombre ^ F F ^ b:pellidos lbl+bservacion S b+bservaciones ^ F; F ^ b+bs+perador IeriAsua S %xiste Bf %nviar 4hen Bf b*lave%nviar QR FF 4hen BmgTe$!Iisible S 4rue lbl*%nviar!Iisible S 4rue ]lbl%nviar!*aption S b*lave%nviar lbl%nviar!Iisible S 4rue Hesp S Bnput6ox(F*lave para enviar mensa esF, FIerificar claveF) Bf Hesp S b*lave%nviar 4hen %lse <ombre!*aption S F*lave invalida F ^ <ombre 6eep 6eep 6eep 6eep IeriAsua S *lave<oIalida %nd Bf %lse lbl%nviar!*aption S FF

%nd Bf %nd Bf Bf <ot %nviar 4hen Bf b*laveHecibir QR FF 4hen BmgTe$H!Iisible S 4rue lbl*Hecibir!Iisible S 4rue ]lblHecibir!*aption S b*laveHecibir lblHecibir!Iisible S 4rue Hesp S Bnput6ox(F*lave para enviar mensa esF, FIerificar claveF) Bf Hesp S b*laveHecibir 4hen lblHecibir!*aption S F*orrectabF %lse lblHecibir!*aption S Finvalida, no concuerdaF IeriAsua S *lave<oIalida %nd Bf %lse lblHecibir!*aption S FF %nd Bf %nd Bf %lse <ombre!*aption S FBnactivo F ^ b<ombre ^ F F ^ b:pellidos ^ F; F ^ b +bs+perador 6eep 6eep 6eep IeriAsua S <o:ctivo %nd Bf %nd Eith %lse <ombre!*aption S F<o se encuentrabF IeriAsua S <o%xiste %nd Bf 2$4able!*lose 8et 2$4able S <othing %xit 9unction 06%rrorMandler? 8elect *ase %rr *ase C0,5? 2sg6ox F<o se puede abrir la base de datos!F, vb%xclamation *ase C0,,? 2sg6ox F%l usuario $a existe en la base de datos!F, vb%xclamation *ase CC/5? 2sg6ox F0ebe llenar todos los campos!F, vb%xclamation *ase -/? 2sg6ox F<o se ha abierto la base de datos!F, vb%xclamation *ase %lse? 2sg6ox %rr!0escription, vb%xclamation %nd 8elect ]cerrar tabla 8et 2$4able S <othing %nd 9unction ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? >rocedimiento ]>H+>+8B4+ ? Bnsertar un mensa e >regrabado ]%\%2>L+ 0% LL:2:0: ? Bnsertar(*ampo)

]%<4H:0:8 ? *ampo S <"mero del campo a ser insertado ]8:LB0:8 ? <inguna ]>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <inguno ]+68%HI:*B+<%8 ? 8e toma campo $ se busca este elemento en la lista ]2abrev luego se inserta este texto en el campo mensa e ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 8ub Bnsertar(6$Ial *ampo) 0im i>os +n %rror Hesume <ext Bf txt9ields(/)!%nabled 4hen 2:brev!ListBndex S *ampo V / i>os S Bn8tr(/, 2:brev, F F) ]txt9ields(/)!4ext S txt9ields(/)!4ext ^ 2id(2:brev, i>os X /, Len(2:brev)) ^ F F txt9ields(/)!8el4ext S 2id(2:brev, i>os X /, Len(2:brev)) ^ F F txt9ields(/)!8et9ocus ]txt9ields(/)!8el8tart S Len(txt9ields(/)!4ext) %lse txt9ields(0)!8et9ocus %nd Bf %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento cmd:dda*licN() ]>H+>+8B4+ ? >reparar para entrar un nuevo registro ]%\%2>L+ 0% LL:2:0: ? <ingun+ Y%<4H:0:8 ? <B<7A<: Y8:LB0:8 ? <B<7A<: Y>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <B<7A<+ ]+68%HI:*B+<%8 ? >repara datprimar$rs para insertar un nuevo registro ]:A4+H ? 7enerado automaticamente por I6 ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub cmd:dda*licN() +n %rror Hesume <ext Bf txt9ields(/)!%nabled 4hen dat>rimar$H8!Hecordset!:dd<e' %nd Bf 2ouse>ointer S vb0efault %xit 8ub %rror06? 2sg6ox %rr!0escription, vb*ritical, F%rror al intentar adicionarF 2ouse>ointer S vb0efault %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

]4B4AL+ ? %vento cmdApdatea*licN() ]>H+>+8B4+ ? 7rabar los datos de un nuevo mensa e ]%\%2>L+ 0% LL:2:0: ? <inguna Y%<4H:0:8 ? <B<7A<: Y8:LB0:8 ? <B<7A<: Y>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? /)2ant, ]+68%HI:*B+<%8 ? 8e busca el usuario, se toma el indice, se verifica ]que no este en mantenimiento, se llenan todos los datos pertinentes al ]protocolo,fecha $ hora, operador $ numero de veces que ha sifo ]enviado, luego se graba en la db, si ocurre algun error este es ]avisado al operador de turno ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub cmdApdatea*licN() 0im *ap*ode :s 8tring, 2ensa e :s 8tring, +pciones :s 8tring 0im i, Hesp, *ad8 0im st*ad :s 8tring 0im 2$4able :s Hecordset +n %rror 7o4o 06%rrorMandler ] 8i ha$ errores $a sabe que hacer! ] :brir tabla! *ad8 S Fselect W from Asuarios 'here *od6eeper S ]F ^ txt9ields(0)!4ext ^ F] F 8et 2$4able S 2$0atabase!+penHecordset(*ad8, db+pen0$naset) Bf 2$4able!Hecord*ount QR 0 4hen Eith 2$4able !2oveLast ] Llena el Hecordset! !%dit ]se va cambiar el indice $ en ciertos casos se borrara el mensa e mas vie o b*olaBndice S b*olaBndice X / Bf b*olaBndice R b*ola2ensa es 4hen ]se debe borrar el mensa e mas vie o b*olaBndice S / %nd Bf ]verificar el tamao de la tabla de mensa es I442en txt9ields(0)!4ext, b*olaBndice txt9ields(,)!4ext S 9ormat(b*olaBndice) ] coloca f de mensa e $ operador Bf <ume2ens 4hen txt9ields(/)!4ext S txt9ields(/)!4ext ^ F QF ^ txt9ields(,)!4ext ^ FRF Bf +per 4hen txt9ields(/)!4ext S txt9ields(/)!4ext ^ F QF ^ txt+per ^ FRF txt9ields(5)!4ext S 0ate ^ F F ^ 4ime ]9echa hora Bf b*ap*ode:ux QR FF 4hen ]si el buscapersonas se encuentra el mantenimiento 2ant b*ap*ode:ux ]Llena los campos con los datos del buscapersonas de mantenimiento %lse ]llena los campos con el buscapersonas propio txt9ields(5)!4ext S b*ap*ode ]*apcode ]opciones del beeper txt9ields(L)!4ext S 9ormat(b9ormato6loque) ^ 9ormat(b9uncion) ]+pciones

Bf b:lfanumerico 4hen st*ad S F/F %lse st*ad S F0F txt9ields(L)!4ext S txt9ields(L)!4ext ^ st*ad Bf b>rioridad 4hen st*ad S F/F %lse st*ad S F0F txt9ields(L)!4ext S txt9ields(L)!4ext ^ st*ad ^ txt9ields(L)!4ext ^ 9ormat(b4alN) %nd Bf %stado S F<oF ]%stado del envio txt9ields(C)!4ext S / ]%nvio txt9ields(1)!4ext S txt+per ]+perador de mensa es ]adicionar nuevo registro dat>rimar$H8!ApdateHecord ]adicionar nuevo mensa e dat>rimar$H8!Hecordset!6ooNmarN S dat>rimar$H8!Hecordset!Last2odified cmd:dda*licN !Apdate ]salva el cambio al indice %nd Eith %lse 6eep 2sg6ox F<o se encontro el usuarioF, vb*ritical, F%rrorF %nd Bf 2$4able!*lose 8et 2$4able S <othing %xit 8ub 06%rrorMandler? 8elect *ase %rr *ase C0,5? 2sg6ox F<o se puede abrir la base de datos!F, vb%xclamation *ase C0,,? 2sg6ox F%l usuario $a existe en la base de datos!F, vb%xclamation *ase CC/5? 2sg6ox F0ebe llenar todos los campos!F, vb%xclamation *ase -/? 2sg6ox F<o se ha abierto la base de datos!F, vb%xclamation *ase %lse? 2sg6ox F%l campo no debe estar vacio debe insertar un 2ensa e! F ^ %rr ^ %rr!0escription, vb%xclamation %nd 8elect ]cerrar tabla 8et 2$4able S <othing %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento 067rida2ouseAp ]>H+>+8B4+ ? 2ostrar el menu Bdoculto ]%\%2>L+ 0% LL:2:0: ? <inguna ]%<4H:0:8 ? 6utton S %ntero, que representa el boton oprimido ]8hift S entero, representa si las teclas 8hitf, :lt o *trl estan ]presionadas ]D S real, posicion x en la pantalla ]K S real, posicion $ en la pantalla ]8:LB0:8 ? <B<7A<: ]>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <B<7A<+ ]+68%HI:*B+<%8 ? 2ostrar el menu Bdoculto cuando se oprima el boton , ]del mouse! ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

>rivate 8ub 067rida2ouseAp(6utton :s Bnteger, 8hift :s Bnteger, D :s 8ingle, K :s 8ingle) Bf (>ic2en!Iisible) +r (>ic62en!Iisible) 4hen Bf 6utton S , 4hen Bf 067rid!8el6ooNmarNs!*ount QR 0 4hen >opup2enu id+culto %nd Bf %nd Bf %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento 9ormaLoad() ]>H+>+8B4+ ? *argar valores por defecto en las variables cuando la ]forma se carge ]%\%2>L+ 0% LL:2:0: ? <inguna Y%<4H:0:8 ? <B<7A<: Y8:LB0:8 ? <B<7A<: Y>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <B<7A<+ ]+68%HI:*B+<%8 ? *argar valores por defecto en las variables cuando la ]forma se carge en el programa ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub 9ormaLoad() 0im 8uc, i %mpezar 9or i S / 4o /, 2:brev!:ddBtem 7et8etting(F2ensa esF, F+pcionesF, F9F ^ 9ormat(i), F9F ^ 9ormat(i)) <ext i dat>rimar$H8!0atabase<ame S >ath06 dat7rid!0atabase<ame S >ath06 %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento 9ormaAnload ]>H+>+8B4+ ? 0escargar la forma ]%\%2>L+ 0% LL:2:0: ? <inguna Y%<4H:0:8 ? <B<7A<: Y8:LB0:8 ? <B<7A<: Y>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? /)7uardar%ventos ]+68%HI:*B+<%8 ? se confirma con el usuario se desea salir, luego se ]guarda el evento de salida del programa $ por ultimo se cierra la db ]$ sale del programa ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub 9ormaAnload(*ancel :s Bnteger) 0im Hesp 8creen!2ouse>ointer S vb0efault

Hesp S 2sg6ox(F0esea salir de mensa esGF, vb0efault6utton, X vbKes<o X vb%xclamation, F*onfirmaci&n de salir!F) Bf Hesp S vbKes 4hen 7uardar%ventos <o', txt+per, F8alida del programa mensa esF 2$0atabase!*lose %nd %lse *ancel S V/ %nd Bf %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento id*ambiar4urnoa*licN() ]>H+>+8B4+ ? *ambiar de turno cuando ingrese un nuevo operador ]%\%2>L+ 0% LL:2:0: ? <inguna Y%<4H:0:8 ? <B<7A<: Y8:LB0:8 ? <B<7A<: Y>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <B<7A<+ ]+68%HI:*B+<%8 ? %sconde las formas $ luego llama regresa a la funcion ]principal para pedir los datos de un nuevo operador ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub id*ambiar4urnoa*licN() 2$0atabase!*lose 2e!Mide 2ain %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento id*60atosa*licN() ]>H+>+8B4+ ? *ambiar el camino de acceso a la 06 ]%\%2>L+ 0% LL:2:0: ? <inguna Y%<4H:0:8 ? <B<7A<: Y8:LB0:8 ? <B<7A<: Y>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <B<7A<+ ]+68%HI:*B+<%8 ? 8e pide clave de acceso administrativa para el cambio ]de la db, si es correcta se procede a pedir confirmaci&n, se borran ]los datos del registro $ se pide al usuario que vuelva a iniciar la ]aplicaci&n ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub id*60atosa*licN() Logon%fectuado S 9alse frmLogin*06!8ho' vb2odal Bf Logon%fectuado 4hen Bf >ath06 QR FF 4hen

7uardar%ventos <o', txt+per, F*ambio de la base de datos de mensa es por parte del administradorF 0elete8etting F2ensa esF, F>athF, F6asededatosF 2sg6ox F8e debe reiniciar la aplicaci&n,eli a la base de datos cuando se reiniciebF, vbBnformation, F9inalizarbF Anload 2e %lse 2sg6ox F<o se realizo el cambio de la base de datosbF, vbBnformation, F8in cambiosbF %nd Bf %lse 2sg6ox F<o se realizo el cambio de la base de datosbF, vbBnformation, F8in cambiosbF %nd Bf %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento id*odigoa*licN() ]>H+>+8B4+ ? Br a la opci&n buscar codigo ]%\%2>L+ 0% LL:2:0: ? <inguna Y%<4H:0:8 ? <B<7A<: Y8:LB0:8 ? <B<7A<: Y>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <B<7A<+ ]+68%HI:*B+<%8 ? se ocultan los controles $ se muestra >ic6*od que es ]la opci&n de buscar por c&digo ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub id*odigoa*licN() >ic6<om!Iisible S 9alse >ic2en!Iisible S 9alse >ic62en!Iisible S 9alse >ic6*od!Iisible S 4rue txt*odigo!8et9ocus %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento id*onsultaa*licN() ]>H+>+8B4+ ? 2ostrar los controles de consulta de mensa es ]%\%2>L+ 0% LL:2:0: ? <inguna Y%<4H:0:8 ? <B<7A<: Y8:LB0:8 ? <B<7A<: Y>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <B<7A<+ ]+68%HI:*B+<%8 ? se ocultan los controles $ se muestra >ic62en que es ]la opci&n de buscar mensa es de un c&digo ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub id*onsultaa*licN()

>ic6<om!Iisible S 9alse >ic2en!Iisible S 9alse >ic6*od!Iisible S 9alse >ic62en!Iisible S 4rue 4ext*odigo!8et9ocus %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %ventos id9/a*licN hasta id9/,a*licN ]>H+>+8B4+ ? Bnsertar el mensa e pregrabado en el campo del mensa e ]%\%2>L+ 0% LL:2:0: ? <inguna Y%<4H:0:8 ? <B<7A<: Y8:LB0:8 ? <B<7A<: Y>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? insertar ]+68%HI:*B+<%8 ? *uando una tecla de 9/ a 9/, es oprimida, se ]selecciona el mensa e a ser insertado en el campo mensa e ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub id9/a*licN() Bnsertar / %nd 8ub >rivate 8ub id9,a*licN() Bnsertar , %nd 8ub >rivate 8ub idfCa*licN() Bnsertar C %nd 8ub >rivate 8ub id95a*licN() Bnsertar 5 %nd 8ub >rivate 8ub id95a*licN() Bnsertar 5 %nd 8ub >rivate 8ub id9La*licN() Bnsertar L %nd 8ub >rivate 8ub id91a*licN() Bnsertar 1 %nd 8ub >rivate 8ub id9Ja*licN() Bnsertar J %nd 8ub >rivate 8ub id9-a*licN() Bnsertar %nd 8ub >rivate 8ub id9/0a*licN() Bnsertar /0 %nd 8ub >rivate 8ub id9//a*licN()

Bnsertar // %nd 8ub >rivate 8ub id9/,a*licN() Bnsertar /, %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento id2ensa esa*licN() ]>H+>+8B4+ ? 2ostrar la opci&n de enviar mensa es ]%\%2>L+ 0% LL:2:0: ? <inguna Y%<4H:0:8 ? <B<7A<: Y8:LB0:8 ? <B<7A<: Y>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <B<7A<+ ]+68%HI:*B+<%8 ? 8e ocultan los demas controles $ se muestra la opci&n ]>ic2en que es un control con los datos del mensa e, se carga en el ]dbgrid los datos de los mensa es $ se cambian los tamaos de las ]columnas para que el operador pueda verlos me or ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub id2ensa esa*licN() >ic6<om!Iisible S 9alse >ic62en!Iisible S 9alse >ic6*od!Iisible S 9alse >ic2en!Iisible S 4rue 067rid!*aption S FListado de 2ensa esF dat7rid!Hecord8ource S Fselect top /0 ;*odigo=, ;2ensa e=, ;Bndice=, ;%stado=, ;9echaMora=,;%nvio=,;+perador= from ;2ensa es= 'here ;+perador=S]F ^ txt+per ^ F] +rder 6$ Bd descF dat7rid!Hefresh 067rid!Hefresh txt*odigo!4ext S FF 067rid!*olumns(0)!Eidth S L00 067rid!*olumns(/)!Eidth S 5500 067rid!*olumns(,)!Eidth S 550 067rid!*olumns(C)!Eidth S 550 067rid!*olumns(5)!Eidth S /L00 067rid!*olumns(5)!Eidth S 500 067rid!*olumns(L)!Eidth S 100 txt9ields(0)!8et9ocus %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento id<ombrea*licN() ]>H+>+8B4+ ? 2ostrar los controles de busqueda por nombre ]%\%2>L+ 0% LL:2:0: ? <inguna Y%<4H:0:8 ? <B<7A<: Y8:LB0:8 ? <B<7A<: Y>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <B<7A<+ ]+68%HI:*B+<%8 ? 8e ocultan los demas controles $ se muestra pic62en ]que es control que muestra al usuario los campos para buscar por ]nombre

]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub id<ombrea*licN() >ic6<om!Iisible S 4rue >ic2en!Iisible S 9alse >ic6*od!Iisible S 9alse >ic62en!Iisible S 9alse txt<ombre!8et9ocus %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento ]>H+>+8B4+ ? 2ostrar la forma frm+bservaciones ]%\%2>L+ 0% LL:2:0: ? <inguna Y%<4H:0:8 ? <B<7A<: Y8:LB0:8 ? <B<7A<: Y>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <B<7A<+ ]+68%HI:*B+<%8 ? 0espliega la forma frmobservaciones con el metodo sho' ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub id+bservacionesa*licN() frm+bservaciones!8ho' vb2odal %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento idHeenviara*licN() ]>H+>+8B4+ ? Heenviar los mensa es que se encuentren seleccionados en ]el dbgrid ]%\%2>L+ 0% LL:2:0: ? <inguna Y%<4H:0:8 ? <B<7A<: Y8:LB0:8 ? <B<7A<: Y>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <B<7A<+ ]+68%HI:*B+<%8 ? se verifica que existen seleccionados, luego se toman ]los datos de estado $ envio, uno a uno se cambia estado S no $ se ]aumenta envio en / ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub idHeenviara*licN() 0im i 0im Ialor :s *olumn 0im %nvios :s *olumn Bf 067rid!8el6ooNmarNs!*ount QR 0 4hen ]si ha$ alguno seleccionado 8et Ialor S 067rid!*olumns(C) ]dato estado 8et %nvios S 067rid!*olumns(5) ]dato envio 9or i S 0 4o 067rid!8el6ooNmarNs!*ount V / ]todos los registros seleccionados

dat7rid!Hecordset!6ooNmarN S 067rid!8el6ooNmarNs(i) ]se posiciona en el seleccionado Bf A*ase(Ialor!Ialue) QR F<+F 4hen ]si $a ha sido enviado Ialor!Ialue S F<oF %nvios!Ialue S %nvios!Ialue X / %nd Bf <ext i %nd Bf dat7rid!Hefresh 067rid!Hefresh 067rid!8croll 0, dat>rimar$H8!Hecordset!Hecord*ount %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento 2:breva0bl*licN() ]>H+>+8B4+ ? *ambiar los mensa es pregrabados ]%\%2>L+ 0% LL:2:0: ? <inguna Y%<4H:0:8 ? <B<7A<: Y8:LB0:8 ? <B<7A<: Y>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <B<7A<+ ]+68%HI:*B+<%8 ? 2uestra al operador un campo para que entre el nuevo ]mensa e, luego este es grabado en la posici&n a la cual se le hizo ]doble clicN ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub 2:breva0bl*licN() 0im Hesp :s 8tring 0im i i S 2:brev!ListBndex Bf i QR - 4hen Hesp S Bnput6ox(F%ntre el valor para la tecla 9F ^ 9ormat(/ X i), F*ambiar valorF, FF) Bf Hesp QR FF 4hen Limpiar*ad Hesp 2:brev!HemoveBtem i 2:brev!:ddBtem F9F ^ 9ormat(i X /) ^ F F ^ Hesp, i 8ave8etting F2ensa esF, F+pcionesF, F9F ^ 9ormat(i X /), F9F ^ 9ormat(i X /) ^ F F ^ Hesp %nd Bf %nd Bf %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento 4ext*odigoaTe$>ress ]>H+>+8B4+ ? Ierificar cada vez que se oprime una tecla ]%\%2>L+ 0% LL:2:0: ? <inguna Y%<4H:0:8 ? Te$:scii S %ntero, que representa una tecla oprimida Y8:LB0:8 ? <B<7A<: Y>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? /)7uardar%ventos, ,)IeriAsua ]+68%HI:*B+<%8 ? 8i se oprime la tecla escape los campos de mensa es ]son borrados, si se oprime la tecla enter se buscan los mensa es

]se refrescan los datos $ se redimensiona el dbgrid ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub 4ext*odigoaTe$>ress(Te$:scii :s Bnteger) 0im Hesp, IAs +n %rror 7o4o %rrores Bf Te$:scii S ,1 4hen 4ext*odigo S FF Te$:scii S 0 %nd Bf Bf (Te$:scii S /C) :nd (4ext*odigo!4ext QR FF) 4hen BmgTe$H!Iisible S 9alse lbl*Hecibir!Iisible S 9alse lblHecibir!Iisible S 9alse IAs S IeriAsua(4ext*odigo, 9alse) 8elect *ase IAs *ase %xiste 7uardar%ventos <o', txt+per, F*onsulta de todos los mensa es del c&digo F ^ 4ext*odigo Te$:scii S 0 067rid!*aption S FListado de 2ensa esF ]select ;*odigo=,;2ensa e=,;Bndice=,;%stado=,;9echaMora=,;%nvio=,;+perador= from ;2ensa es= dat7rid!Hecord8ource S Fselect ;*odigo=,;2ensa e=,;Bndice=,;%stado=,;9echaMora=, ;%nvio=,;+perador= from ;2ensa es= 'here ;*odigo= LiNe ]F ^ 4ext*odigo!4ext ^ F] +rder 6$ ;9echaMora=F dat7rid!Hefresh 067rid!Hefresh 067rid!*olumns(0)!Eidth S L00 067rid!*olumns(/)!Eidth S 5C00 067rid!*olumns(,)!Eidth S 550 067rid!*olumns(C)!Eidth S 550 067rid!*olumns(5)!Eidth S /L00 067rid!*olumns(5)!Eidth S 100 067rid!*olumns(L)!Eidth S 100 dat7rid!Hecordset!2oveLast 067rid!*aption S FListado V F ^ dat7rid!Hecordset!Hecord*ount 4ext*odigo!8et9ocus *ase <o:ctivo lblHecibir!Iisible S 4rue lblHecibir S F<o esta activoF *ase <o%xiste lblHecibir!Iisible S 4rue lblHecibir S F<o existeF %nd 8elect %nd Bf %xit 8ub %rrores?

Hesp S 2sg6ox(%rr!0escription, vb*ritical) %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento 4imer/a4imer() ]>H+>+8B4+ ? :ctualizar periodicamente los datos de los mensa es ]%\%2>L+ 0% LL:2:0: ? <inguna Y%<4H:0:8 ? <B<7A<: Y8:LB0:8 ? <B<7A<: Y>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <B<7A<+ ]+68%HI:*B+<%8 ? periodicamente se actualizan los datos de los mensa es ]que ha enviado el operador para verificar si han salido o no! ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub 4imer/a4imer() +n %rror 7o4o %rrores Bf >ic2en!Iisible 4hen Bf 067rid!8el6ooNmarNs!*ount S 0 :nd txt9ields(0)!4ext S FF 4hen dat7rid!Hefresh 067rid!*olumns(0)!Eidth S L00 067rid!*olumns(/)!Eidth S 5500 067rid!*olumns(,)!Eidth S 550 067rid!*olumns(C)!Eidth S 550 067rid!*olumns(5)!Eidth S /L00 067rid!*olumns(5)!Eidth S 500 067rid!*olumns(L)!Eidth S 100 %nd Bf %nd Bf %xit 8ub %rrores? %xit 8ub %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento txt:pellidosaTe$>ress ]>H+>+8B4+ ? Ierificar cada vez que se oprime una tecla ]%\%2>L+ 0% LL:2:0: ? <inguna Y%<4H:0:8 ? <B<7A<: Y8:LB0:8 ? <B<7A<: Y>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <B<7A<+ ]+68%HI:*B+<%8 ? si se oprime escape los campos de nombre $ apellidos ]se borran, si es enter se procede a buscar con estos datos, cambiando ]el sql de conexi&n $ refrescando los datos del dbgrid ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub txt:pellidosaTe$>ress(Te$:scii :s Bnteger) 0im Hesp

+n %rror 7o4o %rrores Bf Te$:scii S ,1 4hen txt<ombre S FF txt:pellidos S FF Te$:scii S 0 %nd Bf Bf (Te$:scii S /C) :nd (txt:pellidos!4ext QR FF) 4hen 7uardar%ventos <o', txt+per, F*onsulta de usuario con nombre F ^ txt<ombre ^ F F ^ txt:pellidos Te$:scii S 0 067rid!*aption S FListado de AsuariosF ]select ;*odigo=,;2ensa e=,;Bndice=,;%stado=,;9echaMora=,;%nvio=,;+perador= from ;2ensa es= dat7rid!Hecord8ource S Fselect ;*od6eeper=,;<ombre=,;:pellidos=,;+bs+perador= from ;Asuarios= 'here ;<ombre= liNe ]F ^ txt<ombre!4ext ^ F]F ^ F :nd ;:pellidos= liNe ]F ^ txt:pellidos!4ext ^ F]F ]dat7rid!Hecord8ource S FAsuariosF dat7rid!Hefresh 067rid!Hefresh txt<ombre!8et9ocus %nd Bf %xit 8ub %rrores? Hesp S 2sg6ox(%rr!0escription, vb*ritical) %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento txt*odigoaTe$>ress ]>H+>+8B4+ ? Ierificar cada vez que se oprime una tecla ]%\%2>L+ 0% LL:2:0: ? <inguna Y%<4H:0:8 ? Te$:scii S %ntero, que representa una tecla oprimida Y8:LB0:8 ? <B<7A<: Y>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <B<7A<+ ]+68%HI:*B+<%8 ? si se oprime escape el campo de codigo se borra, ]si es enter se procede a buscar con estos datos, cambiando ]el sql de conexi&n $ refrescando los datos del dbgrid ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub txt*odigoaTe$>ress(Te$:scii :s Bnteger) 0im 4mp Bf Te$:scii S ,1 4hen txt*odigo S FF Te$:scii S 0 %nd Bf Bf (Te$:scii S /C) :nd (txt*odigo!4ext QR FF) 4hen Te$:scii S 0 7uardar%ventos <o', txt+per, F6usqueda de usuario por codigo F ^ txt*odigo 067rid!*aption S FListado de AsuariosF

]select ;*odigo=,;2ensa e=,;Bndice=,;%stado=,;9echaMora=,;%nvio=,;+perador= from ;2ensa es= dat7rid!Hecord8ource S Fselect ;*od6eeper=,;<ombre=,;:pellidos=,;+bs+perador= from ;Asuarios= 'here ;*od6eeper= liNe ]F ^ txt*odigo!4ext ^ F]F dat7rid!Hefresh 067rid!Hefresh %nd Bf %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento txt9ieldsaTe$>ress ]>H+>+8B4+ ? Ierificar cada vez que se oprime una tecla ]%\%2>L+ 0% LL:2:0: ? <inguna Y%<4H:0:8 ? Te$:scii S %ntero, que representa una tecla oprimida ]index S %ntero, representa el indice del control ]8:LB0:8 ? <B<7A<: Y>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? /)7uardar%ventos, ,)IeriAsua ]+68%HI:*B+<%8 ? 8i se oprime la tecla escape los campos de mensa es ]son borrados, si se oprime la tecla enter se envia el mensa e con el ]metodo update, se refrescan los datos $ se redimensiona el dbgrid ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub txt9ieldsaTe$>ress(Bndex :s Bnteger, Te$:scii :s Bnteger) +n %rror Hesume <ext 0im IAs Bf Te$:scii Q /,1 4hen Bf Te$:scii S ,1 4hen txt9ields(0) S FF txt9ields(/) S FF txt9ields(/)!%nabled S 9alse <ombre!*aption S FF BmgTe$!Iisible S 9alse lbl*%nviar!Iisible S 9alse lbl%nviar!Iisible S 9alse lbl%nviar!*aption S FF txt9ields(0)!8et9ocus lbl+bservacion S FF %nd Bf Bf Bndex S 0 4hen Bf (Te$:scii S /C) 4hen Te$:scii S 0 IAs S IeriAsua(txt9ields(0)!4ext, 4rue) 8elect *ase IAs *ase %xiste txt9ields(/)!%nabled S 4rue txt9ields(/)!8et9ocus *ase <o%xiste txt9ields(0)!8et9ocus *ase <o:ctivo

txt9ields(0)!8et9ocus *ase *lave<oIalida txt9ields(0)!8et9ocus %nd 8elect %nd Bf %nd Bf Bf Bndex S / 4hen Bf Te$:scii S /C :nd txt9ields(/)!4ext QR FF 4hen cmdApdatea*licN Te$:scii S 0 dat7rid!Hefresh 067rid!*olumns(0)!Eidth S L00 067rid!*olumns(/)!Eidth S 5500 067rid!*olumns(,)!Eidth S 550 067rid!*olumns(C)!Eidth S 550 067rid!*olumns(5)!Eidth S /L00 067rid!*olumns(5)!Eidth S 500 067rid!*olumns(L)!Eidth S 100 dat7rid!Hecordset!2oveLast txt9ields(0)!8et9ocus txt9ields(/)!%nabled S 9alse <ombre!*aption S FF BmgTe$!Iisible S 9alse lbl*%nviar!Iisible S 9alse lbl%nviar!Iisible S 9alse lbl%nviar!*aption S FF lbl+bservacion S FF %lse Bf Te$:scii S /C 4hen Te$:scii S 0 %nd Bf %nd Bf %lse Te$:scii S 0 %nd Bf %nd 8ub Gorma %rmHbser aciones 9rm+bservaciones se utiliza en caso de que un usuario le indique a la operadora, que coloque un aviso sobre algo en especial de su cuenta; por e emplo que le enven mensa es dobles, verificar nombre de quien le enva el mensa e, no enviar despus de las J p!m! etc! +ption %xplicit ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? 9unci&n IeriAsua ]>H+>+8B4+ ? Ierificar la existencia de un usuario ]%\%2>L+ 0% LL:2:0: ? IeriAsua(*odigo, %nviar)

]%<4H:0:8 ? *odigo S *odigo del usuario a buscar ]%nviar S booleano, Ierificar clave de envio ]8:LB0:8 ? IeriAsua S %ntero,estado devuelto, ]>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <inguno ]+68%HI:*B+<%8 ? se busca en la db la informaci&n del c!&ig! luego se ]verifica si tiene clave de envio $ si esta activo, se devuelve ]*lave<oIalida, <o%xiste, <o:ctivo, $ %xiste ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 9unction IeriAsua(6$Ial *odigo :s 8tring) :s Bnteger 0im i, Hesp, *ad8 0im 2$4able :s Hecordset +n %rror 7o4o 06%rrorMandler ] 8i ha$ errores $a sabe que hacer! ] :brir tabla! *ad8 S Fselect W from Asuarios 'here *od6eeper S ]F ^ *odigo ^ F] F 8et 2$4able S 2$0atabase!+penHecordset(*ad8, db+pen0$naset) Bf 2$4able!Hecord*ount QR 0 4hen Eith 2$4able !2oveLast ]llena el recordset Bf 9ormat(b:ctivo, FQF) S FsiF 4hen ]txt9ields(/)!2axLength S bL2ensa e lbl<ombre!*aption S b<ombre ^ F F ^ b:pellidos ^ F; F ^ b+bs+perador IeriAsua S %xiste %lse lbl<ombre!*aption S FBnactivo F ^ b<ombre ^ F F ^ b:pellidos ^ F; F ^ b +bs+perador IeriAsua S <o:ctivo %nd Bf %nd Eith %lse lbl<ombre!*aption S F<o se encuentrabF IeriAsua S <o%xiste %nd Bf 2$4able!*lose 8et 2$4able S <othing %xit 9unction 06%rrorMandler? 8elect *ase %rr *ase C0,5? 2sg6ox F<o se puede abrir la base de datos!F, vb%xclamation *ase C0,,? 2sg6ox F%l usuario $a existe en la base de datos!F, vb%xclamation *ase CC/5? 2sg6ox F0ebe llenar todos los campos!F, vb%xclamation *ase -/? 2sg6ox F<o se ha abierto la base de datos!F, vb%xclamation *ase %lse? 2sg6ox %rr!0escription, vb%xclamation %nd 8elect ]cerrar tabla ] 2$4able!*lose 8et 2$4able S <othing %nd 9unction ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

]4B4AL+ ? %vento cmdApdatea*licN() ]>H+>+8B4+ ? 7rabar las nuevas observaciones al usuario ]%\%2>L+ 0% LL:2:0: ? <inguna Y%<4H:0:8 ? <B<7A<: Y8:LB0:8 ? <B<7A<: Y>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <B<7A<+ ]+68%HI:*B+<%8 ? :ctualiza el registro del usuario con el metodo ]ApdateHecord $ luego descarga la forma ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub cmdApdatea*licN() lbl*odigo S txt*odigo lbl+bs S txt+bservacion dat>rimar$H8!ApdateHecord dat>rimar$H8!Hecordset!6ooNmarN S dat>rimar$H8!Hecordset!Last2odified Anload 2e %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento cmd*losea*licN ]>H+>+8B4+ ? 0escarlar la forma ]%\%2>L+ 0% LL:2:0: ? <inguna Y%<4H:0:8 ? <B<7A<: Y8:LB0:8 ? <B<7A<: Y>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <B<7A<+ ]+68%HI:*B+<%8 ? 0escarga la forma con el metodo unload ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub cmd*losea*licN() 8creen!2ouse>ointer S vb0efault Anload 2e %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento Load ]>H+>+8B4+ ? *argar las variables con valores por defecto ]%\%2>L+ 0% LL:2:0: ? <inguna Y%<4H:0:8 ? <B<7A<: Y8:LB0:8 ? <B<7A<: Y>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <B<7A<+ ]+68%HI:*B+<%8 ? 8e carga el path de la base de datos en la variable ]dat>rimar$H8!0atabase<ame, con la variable global >ath06 ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

>rivate 8ub 9ormaLoad() dat>rimar$H8!0atabase<ame S >ath06 %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento txt*odigoaTe$>ress ]>H+>+8B4+ ? verificar cada vez que se oprima una tecla ]%\%2>L+ 0% LL:2:0: ? <inguna Y%<4H:0:8 ? Te$:scii S %ntero, que representa la tecla oprimida Y8:LB0:8 ? <B<7A<: Y>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? IeriAsua ]+68%HI:*B+<%8 ? 8i se oprime %sc entonces se borran los campos si se ]oprime enter se verifica el codigo ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub txt*odigoaTe$>ress(Te$:scii :s Bnteger) 0im Ierificar +n %rror 7o4o %rrores Bf Te$:scii S ,1 4hen 8creen!2ouse>ointer S vb0efault Anload 2e %nd Bf Bf Te$:scii S /C 4hen Ierificar S IeriAsua(txt*odigo) Bf Ierificar QR <o%xiste 4hen txt+bservacion!%nabled S 4rue dat>rimar$H8!Hecordset!9ind9irst F*od6eeper S ]F ^ txt*odigo ^ F]F txt+bservacion!%nabled S 4rue txt+bservacion!8et9ocus %nd Bf %nd Bf %xit 8ub %rrores? 2sg6ox %rr!0escription %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento txt+bservacionaTe$>ress ]>H+>+8B4+ ? verificar cada vez que se oprima una tecla ]%\%2>L+ 0% LL:2:0: ? <inguna Y%<4H:0:8 ? Te$:scii S %ntero, que representa la tecla oprimida Y8:LB0:8 ? <B<7A<: Y>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? IeriAsua ]+68%HI:*B+<%8 ? 8i se oprime %sc entonces se borran los campos si se ]oprime enter se actualiza el campo observaci&n ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

>rivate 8ub txt+bservacionaTe$>ress(Te$:scii :s Bnteger) Bf Te$:scii S ,1 4hen 8creen!2ouse>ointer S vb0efault Anload 2e %nd Bf Bf Te$:scii S /C 4hen lbl*odigo S txt*odigo lbl+bs S txt+bservacion Bf cmdApdate!%nabled 4hen cmdApdatea*licN %nd Bf %nd 8ub Gorma %rmSplash 8e muestra una ventana acerca del programa, es una ventana informativa del sistema de envo de mensa es! +ption %xplicit ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento 9ormaLoad ]>H+>+8B4+ ? *argar variables por defecto ]%\%2>L+ 0% LL:2:0: ? <inguna Y%<4H:0:8 ? <B<7A<: Y8:LB0:8 ? <B<7A<: Y>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <B<7A<+ ]+68%HI:*B+<%8 ? 8e carga el lblIersion la version actual del programa ]$ en lbl>roduct<ame el titulo de la aplicaci&n! ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub 9ormaLoad() lblIersion!*aption S FIersion F ^ :pp!2a or ^ F!F ^ :pp!2inor ^ F!F ^ :pp!Hevision lbl>roduct<ame!*aption S :pp!4itle %nd 8ub (rograma ser3idor del cliente e;terno >rograma utilizado para comunicarse con los clientes externos, el programa cuando se arranca verifica la comunicaci&n con el m&dem! Gorma %rm"odem %n este formulario se mane a todo el programa del servidor de modm! +ption %xplicit

0im 6%sperar :s 6oolean ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? 9uncion Ierificar4rama ]>H+>+8B4+ ? Ierificar la trama del mensa e que envia el cliente ]externo ]%\%2>L+ 0% LL:2:0: ? Ierificar4rama(4rama, chrB, chr9, *ampos) ]%<4H:0:8 ? 4rama S 8tring, contiene la cadena que llego al servidor ]chrB S *ar#cter de inicio de la trama ]chr9 S *ar#cters final de la trama, ]*ampos S entero, n"mero de campos a buscar en la trama ]8:LB0:8 ? Ierificar4rama S Iariant, contiene todos los campos de la ]trama ]>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? /)mid (vb), ,)Len (I6), C)Bn8tr (I6) ]+68%HI:*B+<%8 ? se quita el primer $ ultimo de los caracteres, se ]verifica la cantidad de campos contando el n"mero de *H en la trama ]Luego se llenan estos campos en una variable temporal, $ se retornan ]como resultado de la funci&n ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 9unction Ierificar4rama(4rama :s 8tring, chrB :s 8tring, chr9 :s 8tring, *ampos :s 6$te) :s Iariant 0im i, 0im 4emp, *ad4mp He0im %lementos(/ 4o *ampos) :s 8tring Bf (2id(4rama, /, /) S chrB) :nd (2id(4rama, Len(4rama), /) S chr9) 4hen 4emp S 0 ]inicializa variables 4rama S 2id(4rama, ,, Len(4rama) V /) ]se quita el primer $ ultimo de los caracteres 9or i S / 4o Len(4rama) ]se verifica la cantidad de campos Bf 2id(4rama, i, /) S vb*r 4hen ]contando los *H en la trama 4emp S 4emp X / %nd Bf <ext i Bf 4emp S *ampos 4hen S/ *ad4mp S 4rama 9or i S / 4o *ampos S Bn8tr(/, *ad4mp, vb*r) ]Bf S 0 4hen ] %lementos(i) S FF ]%lse %lementos(i) S 2id(*ad4mp, /, V /) ]%nd Bf Bf i QR *ampos 4hen *ad4mp S 2id(*ad4mp, X /, Len(*ad4mp)) <ext i Ierificar4rama S %lementos() %lse Ierificar4rama S %lementos() %nd Bf %lse Ierificar4rama S %lementos()

%nd Bf %nd 9unction ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? 9uncion 8ecuenciadeBngreso() ]>H+>+8B4+ ? Healizar la secuencia de ingreso de un cliente externo ]%\%2>L+ 0% LL:2:0: ? 8ecuenciadeBngreso() ]%<4H:0:8 ? <B<7A<: ]8:LB0:8 ? 8ecuenciadeBngreso S 6ooleano, indica si se realizo con ]xito la secuencia de ingreso ]>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? /)mid (vb), ,)Len (I6), C)Bn8tr (I6), ]5)0esconectar2odem, 5)Ierificar4rama ]+68%HI:*B+<%8 ? %nvio de un OB0SP al cliente, se verifica la trama, ]luego se verifica el nombre del usuario si existe se da entrada sino ]es rechazado $ se termina las comuniaciones $ se desconecta el modem, ]en cada envio de ]informaci&n se verifica los timeout para transmisi&n ]ademas si ha$ error en la transmisi&n serial problemas con el puerto ]serial o modem ]son reportadas al operador ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 9unction 8ecuenciadeBngreso() :s 6oolean +n %rror 7o4o %rrores 0im *ads :s 8tring 0im Hesp 0im *ampos 0im 8`L :s 8tring cmd*errar!%nabled S 9alse ]comienza la secuencia de ingreso >ort*omm!+utput S FB0SF ^ vb*r ]inicia la secuencia de ingreso 4ime+ut!Bnterval S 5000 ]se amplia el tiempo de espera en el tiempo fuera a 5 segundos 4ime+ut!%nabled S 4rue 0o Bf 4ime+ut!%nabled S 9alse 4hen Bf >ort*omm!Bn6uffer*ount S 0 4hen txtLog S txtLog ^ F%rror en la conexi&n, por favor verifique la conexi&nF ^ vb*rLf 0esconectar2odem ]cambia a modo de comandos $ se reinicia %xit 9unction %nd Bf %nd Bf Bf >ort*omm!Bn6uffer*ount R 0 4hen *ads S *ads ^ >ort*omm!Bnput 0o%vents Loop Antil (Bn8tr(/, *ads, *hr(%4D)) QR 0) *ampos S Ierificar4rama(*ads, *hr(84D), *hr(%4D), ,) ]se verifica la trama Bf *ampos(/) QR FF 4hen Bf *ampos(,) S FF 4hen 8`L S F8%L%*4 *odbeeper, *laveHecibir from usuarios 'here *odbeeper S]F ^ *ampos(/) ^ F] and *laveHecibirS<ullF %lse

8`L S F8%L%*4 *odbeeper, *laveHecibir from usuarios 'here *odbeeper S]F ^ *ampos(/) ^ F] and *laveHecibirS]F ^ *ampos(,) ^ F]F %nd Bf Bf 6uscar(8`L) 4hen txtLog S txtLog ^ F%ntrada al usuario F ^ *ampos(/) ^ vbLf >ort*omm!+utput S *hr(:*T) ^ vb*r ^ F:*%>4:0+F ^ vb*r ]se acepta la clave 8ecuenciadeBngreso S 4rue %lse >ort*omm!+utput S *hr(<:T) ^ vb*r ^ FH%*M:@:0+F ^ vb*r ]se Hechaza la clave txtLog S txtLog ^ FHechazado el usuario F ^ *ampos(/) ^ vbLf 8ecuenciadeBngreso S 9alse %nd Bf %lse 8ecuenciadeBngreso S 9alse %nd Bf %xit 9unction %rrores? 2sg6ox %rr!0escription, vb*ritical, F%rror en la secuencia de entradaF %nd 9unction ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? >rocedimiento 0esconectar2odem ]>H+>+8B4+ ? desconectar el modem $ reiniciarlo ]%\%2>L+ 0% LL:2:0: ? 0esconectar2odem() ]%<4H:0:8 ? <B<7A<: ]8:LB0:8 ? <B<7A<: ]>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? /)mid (vb), ,)Len (I6), C)Bn8tr (Ib) ]+68%HI:*B+<%8 ? 8e envia la cadena de desconexi&n al usuario externo ]luego se saca el modem del modo en linea $ se reinicia para que ]pueda esperar nuevos usuarios ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 8ub 0esconectar2odem() 0im *ads +n %rror 7o4o %rrores 6%sperar S 9alse 4ime+ut!Bnterval S /000 ] se coloca el tiempo de espera en / segundo >ort*omm!+utput S *hr(%8*) ^ *hr(%+4) ^ F:0B+8F ^ vb*r ]indica que se desconecto >ort*omm!+utput S F___XXX___:4M0F ^ vb*r ]sale del modo en linea $ entra a modo de comandos 4ime+ut!%nabled S 4rue 0o Bf 4ime+ut!%nabled S 9alse 4hen Bf >ort*omm!Bn6uffer*ount S 0 4hen txtLog S txtLog ^ F%rror en la cadena de desconexi&n, por favor verifique la conexi&n con el m&demF ^ vb*rLf ]0esconectar2odem ]cambia a modo de comandos $ se reinicia

cmd:brir>uerto!%nabled S 4rue cmd*errar!%nabled S 9alse %xit 8ub %nd Bf %nd Bf Bf >ort*omm!Bn6uffer*ount R 0 4hen *ads S *ads ^ >ort*omm!Bnput 0o%vents Loop Antil (Bn8tr(/, *ads, F+TF) QR 0) cmd:brir>uerto!%nabled S 4rue cmd*errar!%nabled S 9alse *all cmd:brir>uertoa*licN ]reinicia nuevamente para esperar otros usuarios %xit 8ub %rrores? 2sg6ox %rr!0escription, vb*ritical, F%rror al desconectar modemF %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento cmd:brir>uertoa*licN() ]>H+>+8B4+ ? :rbir el puerto de comunicaciones e iniciar el modem ]%\%2>L+ 0% LL:2:0: ? <inguna Y%<4H:0:8 ? <B<7A<: Y8:LB0:8 ? <B<7A<: Y>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <B<7A<+ ]+68%HI:*B+<%8 ? se inicializa el modem con las cadenas de ]inicializaci&n luego se espera coloca en modo de espera, en cada envio ]de datos al modem se verifican los timeout, si es asi todo error sera ]informado al operador ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub cmd:brir>uertoa*licN() +n %rror 7o4o %rrores ]+n %rror Hesume <ext 0im *ads :s 8tring cmd:brir>uerto!%nabled S 9alse 4ime+ut!%nabled S 9alse 4ime+ut!4ag S / Bf <ot >ort*omm!>ort+pen 4hen >ort*omm!>ort+pen S 4rue >ort*omm!+utput S F:4@F ^ vb*r ]reset del modem 4ime+ut!%nabled S 4rue 0o Bf 4ime+ut!%nabled S 9alse 4hen Bf >ort*omm!Bn6uffer*ount S 0 4hen txtLog S txtLog ^ F%rror en la conexi&n, por favor verifique la conexi&nF ^ vb*rLf >ort*omm!>ort+pen S 9alse cmd:brir>uerto!%nabled S 4rue %xit 8ub %nd Bf %nd Bf Bf >ort*omm!Bn6uffer*ount R 0 4hen *ads S *ads ^ >ort*omm!Bnput

0o%vents Loop Antil (Bn8tr(/, *ads, F+TF) QR 0) 4ime+ut!%nabled S 9alse 4ime+ut!4ag S / txtLog S txtLog ^ FBnicializando modem!!!F ^ vb*rLf >ort*omm!+utput S F:4%/I/D5^*0^002/L,81SL080S0/8,S5CF ^ vb*r ]cadena de inicializaci&n *ads S FF 4ime+ut!%nabled S 4rue 0o 0o%vents Bf 4ime+ut!%nabled S 9alse 4hen Bf >ort*omm!Bn6uffer*ount S 0 4hen ]2sg6ox F%rror en la conexi&n, por favor verifique la conexi&nF, vb*ritical, F%rror al conectarF txtLog S txtLog ^ F%rror en la conexi&n, por favor verifique la conexi&nF ^ vb*rLf >ort*omm!>ort+pen S 9alse cmd:brir>uerto!%nabled S 4rue %xit 8ub %nd Bf %nd Bf Bf >ort*omm!Bn6uffer*ount R 0 4hen *ads S *ads ^ >ort*omm!Bnput 0o%vents Loop Antil (Bn8tr(/, *ads, F+TF) QR 0) 4ime+ut!%nabled S 9alse 4ime+ut!4ag S / txtLog S txtLog ^ FBnicializaci&n completabF ^ vb*rLf ^ F%sperando usuarios !!!F ^ vb*rLf cmd:brir>uerto!%nabled S 9alse cmd*errar!%nabled S 4rue 6%sperar S 4rue %xit 8ub %rrores? 2sg6ox F%rror F ^ %rr!0escription, vb*ritical, F%rror al iniciar el servidorF cmd*errar!%nabled S 9alse cmd:brir>uerto!%nabled S 4rue %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento cmd*errara*licN() ]>H+>+8B4+ ? *errar las comunicaciones con los clientes externos ]%\%2>L+ 0% LL:2:0: ? <inguna ]%<4H:0:8 ? <B<7A<: ]8:LB0:8 ? <B<7A<: ]>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <B<7A<+ ]+68%HI:*B+<%8 ? 8e envian los datos de reset al modem, luego se cierra ]el puerto de comunicaciones, se mane an errores de timeout, si ocurre ]otro tipo de error sera informado al operador] ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

>rivate 8ub cmd*errara*licN() +n %rror 7o4o %rrores 0im *ads Bf >ort*omm!>ort+pen 4hen cmd*errar!%nabled S 9alse 6%sperar S 9alse >ort*omm!+utput S F:4@F ^ vb*r ^ vb<ull 4ime+ut!%nabled S 4rue 0o 0o%vents Bf 4ime+ut!%nabled S 9alse 4hen Bf >ort*omm!Bn6uffer*ount S 0 4hen 2sg6ox F%rror en la conexi&n, por favor verifique la conexi&nF, vb*ritical, F%rror al conectarF cmd:brir>uerto!%nabled S 4rue cmd*errar!%nabled S 9alse >ort*omm!>ort+pen S 9alse %xit 8ub %nd Bf %nd Bf Bf >ort*omm!Bn6uffer*ount R 0 4hen *ads S *ads ^ >ort*omm!Bnput 0o%vents Loop Antil (Bn8tr(/, *ads, F+TF) QR 0) txtLog S txtLog ^ F*errando comunicaci&n!!!F ^ vb*r ^ vbLf >ort*omm!>ort+pen S 9alse cmd:brir>uerto!%nabled S 4rue cmd*errar!%nabled S 9alse %nd Bf %xit 8ub %rrores? 2sg6ox F%rror F ^ %rr!0escription, vb*ritical, F%rror al iniciar el servidorF cmd*errar!%nabled S 9alse cmd:brir>uerto!%nabled S 4rue %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento cmd8alira*licN() ]>H+>+8B4+ ? *errar el programa del *liente externo ]%\%2>L+ 0% LL:2:0: ? <inguna Y%<4H:0:8 ? <B<7A<: Y8:LB0:8 ? <B<7A<: Y>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <B<7A<+ ]+68%HI:*B+<%8 ? se cierra la base de datos $ se sale del programa con ]el metodo %nd ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub cmd8alira*licN()

2$0atabase!*lose ]cierra la base de datos %nd ]cierra las comunicaciones ]$ sale del programa %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento 9ormaLoad ]>H+>+8B4+ ? *argar variables cuando se carga la forma ]%\%2>L+ 0% LL:2:0: ? <inguna ]%<4H:0:8 ? <B<7A<: ]8:LB0:8 ? <B<7A<: ]>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <B<7A<+ ]+68%HI:*B+<%8 ? 8e abre la base de datos, se carga la configuraci&n ]del puerto de comunicaciones, en caso se error se informa al usuario ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub 9ormaLoad() +n %rror 7o4o 06%rrorMandler ] 8i ha$ errores $a sabe que hacer! 6%sperar S 9alse txtLog!4ext S F:briendo base de datos !!!F ^ vb*rLf 8et 2$EorNspace S EorNspaces(0) 8et 2$0atabase S 2$EorNspace!+pen0atabase(:pp!>ath ^ FgF ^ 2$9ile) txtLog!4ext S txtLog!4ext ^ F6ase de datos lista!!!F ^ vb*rLf >ort*omm!8ettings S 7et8etting(:pp!4itle, F>ropertiesF, F8ettingsF, F-L00,n,J,/F) >ort*omm!*omm>ort S 7et8etting(:pp!4itle, F>ropertiesF, F*omm>ortF, F/F) >ort*omm!MandshaNing S 7et8etting(:pp!4itle, F>ropertiesF, FMandshaNingF, F0F) %xit 8ub 06%rrorMandler? 8elect *ase %rr *ase C0,5? 2sg6ox F<o se puede abrir la base de datos!F, vb%xclamation *ase C0,,? 2sg6ox F%l usuario $a existe en la base de datos!F, vb%xclamation *ase -/? 2sg6ox F<o se ha abierto la base de datos!F, vb%xclamation %nd 8elect %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento 9ormaAnload ]>H+>+8B4+ ? 2inimizar la forma en caso de que se quiera cerrar ]%\%2>L+ 0% LL:2:0: ? <inguna Y%<4H:0:8 ? <B<7A<: Y8:LB0:8 ? <B<7A<: Y>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <B<7A<+ ]+68%HI:*B+<%8 ? 8e coloca la forma minimizada con Eindo'8tate S ]vb2inimized, se oculta $ se cancela la descarga ] ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ?

]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub 9ormaAnload(*ancel :s Bnteger) 2e!Eindo'8tate S vb2inimized 2e!Mide *ancel S V/ %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento >ort*omma+n*omm() ]>H+>+8B4+ ? Ierificar los datos que llegan al puerto de comunicaciones ]%\%2>L+ 0% LL:2:0: ? <inguna Y%<4H:0:8 ? <B<7A<: Y8:LB0:8 ? <B<7A<: Y>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <B<7A<+ ]+68%HI:*B+<%8 ? 8e utiliza para verificar los datos que llegan al ]puerto serial, se verifica las cadenas de entrada para determinar ]cuando ingresa un nuevo cliente, despues de esto se sale del modo ]de espera $ se inicia la secuenciadeingreso si se realizada ]adecuadamente se reciben los mensa es enviados, en este evento se ]mane an los errores que ocurren en el puerto serial $ modem, avisando ]al operador de cualquier anomalia ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub >ort*omma+n*omm() 8tatic *ads :s 8tring 0im %I2sg[ 0im %H2sg[ ] 6ranch according to the *omm%vent propert$! 8elect *ase >ort*omm!*omm%vent ] %vent messages! *ase com%vHeceive Bf 6%sperar 4hen ]if esta en modo automatico *ads S *ads ^ >ort*omm!Bnput ]guarda lo que llega Bf Bn8tr(/, *ads, FHB<7F) 4hen ]esta timbrando el telefono *ads S FF ]txtLog!4ext S txtLog ^ F4imbrando !!!F ^ *ad8 ^ vb*r ^ vbLf %nd Bf Bf Bn8tr(/, *ads, F*+<<%*4F) :nd 6%sperar 4hen 6%sperar S 9alse ]flag de conexi&n establecida txtLog!4ext S txtLog ^ F*onexion realizada!!! F ^ vb*rLf ^ *ads ^ vb*rLf *ads S FF ]limpia el buffer de recepcion Hecibir2ensa es ]inicia la secuencia de recepcion de mensa es %nd Bf %nd Bf ]0im 6uffer :s Iariant ]6uffer S >ort*omm!Bnput ]0ebug!>rint FHeceive V F ^ 8tr*onv(6uffer, vbAnicode) ]8ho'0ata txt4erm, (8tr*onv(6uffer, vbAnicode)) *ase com%v8end

*ase com%v*48 %I2sg[ S F*ambio en *48 0etectadoF *ase com%v08H %I2sg[ S FF *ase com%v*0 %I2sg[ S FF *ase com%vHing %I2sg[ S FLlamada en el servidorF *ase com%v%+9 %I2sg[ S F%nd of 9ile 0etectedF ] %rror messages! *ase com6reaN %H2sg[ S F8e recibio un 6reaNF *ase com*04+ %H2sg[ S F4imeout en detecci&n de portadoraF *ase com*484+ %H2sg[ S F*48 4imeoutF *ase com0*6 %H2sg[ S F%rror recibiendo 0*6F *ase com08H4+ %H2sg[ S F08H 4imeoutF *ase com9rame %H2sg[ S F%rror de 9ramingF *ase com+verrun %H2sg[ S F%rror de +verrunF *ase comHx+ver %H2sg[ S F8obreflu o del 6uffer de recepci&nF *ase comHx>arit$ %H2sg[ S F%rror de paridadF *ase com4x9ull %H2sg[ S F6uffer de transmisi&n llenoF *ase %lse %H2sg[ S F%rror desconocidoF %nd 8elect Bf Len(%I2sg[) 4hen txtLog!4ext S txtLog ^ %I2sg[ ^ vb*r ^ vbLf %lseBf Len(%H2sg[) 4hen txtLog!4ext S txtLog ^ %H2sg[ ^ vb*r ^ vbLf 6eep %nd Bf %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? >rocedimiento Hecibir2ensa es() ]>H+>+8B4+ ? Ierificar los mensa es que llegan desde los clientes ]%\%2>L+ 0% LL:2:0: ? <inguna Y%<4H:0:8 ? <B<7A<: Y8:LB0:8 ? <B<7A<: Y>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <B<7A<+

]+68%HI:*B+<%8 ? se verifica que se ha$a realizado la secuencia de ]ingreso, se debe verificar la estructura del mensa e ademas ]de la existencia del usuario $ su clave para enviar ]se debe verificar que el usuario exista , ademas ]que se encuentre activo en el sistema $ que la ]clave enviada concuerde con la de la base de datos ]se graba el mensa e en la base de datos el procedimiento debe ]verificar el tamao de la cola de mensa es, el codigo aux, ]$ se envio de mensa e de aceptaci&n, si el usuario se desconecta se ]debe reiniciar el modem $ esperar un nuevo usuario! ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 8ub Hecibir2ensa es() 0im *ads :s 8tring 0im Hesp 0im 8`L :s 8tring ]8e realiza la secuencia de ingreso Bf 8ecuenciadeBngreso 4hen 4ime+ut!%nabled S 4rue 0o 4ime+ut!%nabled S 4rue 0o ]8e esperan mensa es de los usuarios Bf 4ime+ut!%nabled S 9alse 4hen Bf >ort*omm!Bn6uffer*ount S 0 4hen txtLog S txtLog ^ F%rror en la conexi&n, por favor verifique la conexi&nF ^ vb*rLf 0esconectar2odem ]cambia a modo de comandos $ se reinicia %xit 8ub %nd Bf %nd Bf Bf >ort*omm!Bn6uffer*ount R 0 4hen *ads S *ads ^ >ort*omm!Bnput 0o%vents Bf (Bn8tr(/, *ads, *hr(%8*) ^ *hr(%+4) ^ vb*r) QR 0) 4hen ]se desconecto el cliente 0esconectar2odem %xit 8ub %nd Bf Loop Antil (Bn8tr(/, *ads, *hr(%4D)) QR 0) ]espera hasta el final de un mensa e %nd 4ransmision 4ime+ut!%nabled S 9alse 4ime+ut!4ag S / ]se debe verificar la estructura del mensa e ademas ]de la existencia del usuario $ su clave para enviar Hesp S Ierificar4rama(*ads, *hr(84D), *hr(%4D), C) Bf Hesp(/) QR FF 4hen ]se debe verificar que el usuario exista , ademas ]que se encuentre activo en el sistema $ que la ]clave enviada concuerde con la de la base de datos

Bf Hesp(,) S FF 4hen 8`L S F8elect *odbeeper, *lave%nviar, :ctivo from usuarios 'here *odbeeper S]F ^ Hesp(/) ^ F] and *laveHecibirS<ull and :ctivo LiNe ]si]F %lse 8`L S F8elect *odbeeper, *lave%nviar, :ctivo from usuarios 'here *odbeeper S]F ^ Hesp(/) ^ F] and *laveHecibirS]F ^ Hesp(,) ^ F] and :ctivo LiNe ]si]F %nd Bf Bf 6uscar(8`L) 4hen txtLog S txtLog ^ F2ensa e al usuario F ^ Hesp(/) ^ vb*rLf ]se graba el mensa e en la base de datos ]el procedimiento debe verificar el tamao de ]la cola de mensa es, el codigo aux, ]envio de mensa e de aceptaci&n >ort*omm!+utput S *hr(:*T) ^ vb*r ^ F:*%>4:0+F ^ vb*r ]se acepta la clave %lse >ort*omm!+utput S *hr(<:T) ^ vb*r ^ FH%*M:@:0+F ^ vb*r ]se Hechaza la clave txtLog S txtLog ^ FHechazado el usuario F ^ Hesp(/) ^ vbLf %nd Bf %lse ]fallo en recibir mensa es >ort*omm!+utput S *hr(<:T) ^ vb*r ^ FH%*M:@:0+F ^ vb*r ]se Hechaza la clave txtLog S txtLog ^ FHechazado el usuario F ^ Hesp(/) ^ vbLf %nd Bf *ads S FF Loop %lse 0esconectar2odem %nd Bf %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento 4ime+uta4imer() ]>H+>+8B4+ ? %sperar un tiempo determinado para generar un timeout ]%\%2>L+ 0% LL:2:0: ? <inguna Y%<4H:0:8 ? <B<7A<: Y8:LB0:8 ? <B<7A<: Y>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <B<7A<+ ]+68%HI:*B+<%8 ? %l 4imer 4ime+ut se utiliza para medir los tiempos ]de comunicaciones por fuera del tiempo preestablecido ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub 4ime+uta4imer() Bf 4ime+ut!4ag S / 4hen 4ime+ut!4ag S 0 %lse 4ime+ut!4ag S /

4ime+ut!%nabled S 9alse %nd Bf %nd 8ub (rograma ser3idor del terminal de paginacin %ste programa se encarga de las comunicaciones con el terminal de paginaci&n soportando el protocolo del terminal de paginaci&n! "odulo "odSer idor %ste m&dulo es usado para declarar variables globales a todo el programa! +ption %xplicit >ublic *<2ens, **+per, Bniciar :s 6oolean >ublic L2 :s 6$te >ublic *lave :s 8tring >ublic Logon%fectuado :s 6oolean Gorma %rmSplashS 8e muestra una ventana acerca del programa, es una ventana informativa del sistema de envo de mensa es! +ption %xplicit ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento 9ormaLoad() ]>H+>+8B4+ ? cargar variables con valores predefinidos ]%\%2>L+ 0% LL:2:0: ? <inguna Y%<4H:0:8 ? <B<7A<: Y8:LB0:8 ? <B<7A<: Y>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <B<7A<+ ]+68%HI:*B+<%8 ? se carga lblIersion!caption con l aversion del ] programa para ser mostrado al usuario ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub 9ormaLoad() lblIersion!*aption S FIersion F ^ :pp!2a or ^ F!F ^ :pp!2inor ^ F!F ^ :pp!Hevision %nd 8ub Gorma %rm2rincipal 9orma principal, es esta se enlazan los diferentes partes del programa de comunicaci&n, esta forma es la primera que se carga cuando arranca el programa!

]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? >rocedimiento 8ervidor:ctivo ]>H+>+8B4+ ? 7rabar en la base de datos que el servidor se encuentra ]activo ]%\%2>L+ 0% LL:2:0: ? 8ervidor:ctivo() ]%<4H:0:8 ? <B<7A<: ]8:LB0:8 ? <B<7A<: ]>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <B<7A<+ ]+68%HI:*B+<%8 ? 8e abre la db, $ se guarda en el registro del sistema ]la entrada a operaci&n del servidor, los clientes cuando entran al ]programa verifica este registro $ se informa del estado del mismo! ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 8ub 8ervidor:ctivo() 0im *ap*ode :s 8tring, 2ensa e :s 8tring, +pciones :s 8tring 0im i, Hesp, *ad8 0im 2$4able :s Hecordset +n %rror 7o4o 06%rrorMandler ] 8i ha$ errores $a sabe que hacer! ] :brir tabla! *ad8 S Fselect W from 8istemaF 8et 2$4able S 2$0atabase!+penHecordset(*ad8, db+pen0$naset) Bf 2$4able!Hecord*ount QR 0 4hen Eith 2$4able !2oveLast ] Llena el Hecordset! !%dit ]prepara para cambiar b8ervidor S 4rue ]indica que el servidor esta activo a los clientes !Apdate %nd Eith %lse 2sg6ox F<o existe el registro de configuraci&n!F, vb*ritical, F%rrorF %nd Bf 2$4able!*lose 8et 2$4able S <othing %xit 8ub 06%rrorMandler? 8elect *ase %rr *ase C0,5? 2sg6ox F<o se puede abrir la base de datos!F, vb%xclamation *ase C0,,? 2sg6ox F%l usuario $a existe en la base de datos!F, vb%xclamation *ase CC/5? 2sg6ox F0ebe llenar todos los campos!F, vb%xclamation *ase -/? 2sg6ox F<o se ha abierto la base de datos!F, vb%xclamation *ase %lse? 2sg6ox F%l campo no debe estar vacio! F ^ %rr ^ %rr!0escription, vb%xclamation %nd 8elect ]cerrar tabla 8et 2$4able S <othing %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? >rocedimiento %mpezar()

]>H+>+8B4+ ? 4omar leer las variables por defecto de la db e iniciarlas ]en el programa ]%\%2>L+ 0% LL:2:0: ? %mpezar() ]%<4H:0:8 ? <B<7A<: ]8:LB0:8 ? <B<7A<: ]>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <B<7A<+ ]+68%HI:*B+<%8 ? abre la db, luego se coloca la servidor S false en el ]registro del sistema, $ se toman las variables de los operadores ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 8ub %mpezar() 0im *ap*ode :s 8tring, 2ensa e :s 8tring, +pciones :s 8tring 0im i, Hesp, *ad8 0im 2$4able :s Hecordset +n %rror 7o4o 06%rrorMandler ] 8i ha$ errores $a sabe que hacer! ]:brir tabla! *ad8 S Fselect W from 8istemaF 8et 2$4able S 2$0atabase!+penHecordset(*ad8, db+pen0$naset) Bf 2$4able!Hecord*ount QR 0 4hen Eith 2$4able !2oveLast ] Llena el Hecordset! !%dit ]prepara para cambiar b8ervidor S 9alse ]indica que el servidor esta activo *<2ens S b<um2ensa e **+per S b+perador Bniciar S b:uto:rranque L2 S bLongitud2ensa e *lave S b>ass8erv !Apdate %nd Eith %lse 2sg6ox F<o existe el registro de configuraci&n!F, vb*ritical, F%rrorF %nd Bf 2$4able!*lose 8et 2$4able S <othing %xit 8ub 06%rrorMandler? 8elect *ase %rr *ase C0,5? 2sg6ox F<o se puede abrir la base de datos!F, vb%xclamation *ase C0,,? 2sg6ox F%l usuario $a existe en la base de datos!F, vb%xclamation *ase CC/5? 2sg6ox F0ebe llenar todos los campos!F, vb%xclamation *ase -/? 2sg6ox F<o se ha abierto la base de datos!F, vb%xclamation *ase %lse? 2sg6ox %rr ^ %rr!0escription, vb%xclamation %nd 8elect ]cerrar tabla 8et 2$4able S <othing %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

]4B4AL+ ? 9uncion %nviar() ]>H+>+8B4+ ? 7rabar en la base de datos que el servidor se encuentra ]activo ]%\%2>L+ 0% LL:2:0: ? %nviar(*ap*ode, 2ensa e,+pciones) ]%<4H:0:8 ? *apcode S texto, contiene el capcode del usuario ]2ensa e S texto, contiene el mensa e a ser enviado al t!p! ]+pciones S texto, opciones del protocolo 4:> ]8:LB0:8 ? %nviar S %ntero devuelve el resultado de la operaci&n ]>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? /) :sc (vb), ,)2id (Ib), C)Len (I6) ]+68%HI:*B+<%8 ? 8e toman los datos del mensa es se verifica con ]*hecN8um, el checsum se convierte a un texto cadena entre ]F0/,C55L1J-0?;QSRGF, la funci&n retorna 0% (0ato %nviado), 0<% (0ato ]<o %nviado), 04 (0esconexi&n de la 4erminal), $ %0 (%rror 0esconocido) ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 9unction %nviar(6$Hef *ap*ode :s 8tring, 6$Hef 2ensa e :s 8tring, 6$Hef +pciones :s 8tring) :s 6$te 0im *hecN :s Bnteger 0im *hecN8, 4mp 0im i, 0atos, 0at *hecN S 0 ]Bnicializa variables a sumar para el checNsum 9or i S / 4o Len(*ap*ode) *hecN S *hecN X :sc(2id(*ap*ode, i, /)) <ext i 9or i S / 4o Len(2ensa e) *hecN S *hecN X :sc(2id(2ensa e, i, /)) <ext i 9or i S / 4o Len(+pciones) *hecN S *hecN X :sc(2id(+pciones, i, /)) <ext i *hecN8 S Mex(*hecN) Bf Len(*hecN8) R C 4hen *hecN8 S 2id(*hecN8, Len(*hecN8) V ,, C) %nd Bf 4mp S *hecN8 *hecN8 S FF 9or i S / 4o Len(4mp) Bf :sc(2id(4mp, i, /)) R 51 4hen *hecN8 S *hecN8 ^ *hr(:sc(2id(4mp, i, /)) V 1) ]lo convierte a una cadena entre F0/,C55L1J-0?;QSRGF %lse *hecN8 S *hecN8 ^ (2id(4mp, i, /)) %nd Bf <ext i Bf 28*omm/!>ort+pen 4hen 28*omm/!+utput S *hr(84D) ^ 2id(+pciones, /, /) ^ *ap*ode ^ 2id(+pciones, ,, 5) ^ *hr(*H) ^ 2ensa e ^ *hr(*H) ^ *hr(%4D) ^ *hecN8 ^ *hr(*H) %nd Bf 4imeBnic!4ag S /

4imeBnic!%nabled S 4rue ] habilita timer para un timeout 0o ]%spera respuesta del terminal 0o%vents Loop Antil (4imeBnic!4ag S 0) +r (28*omm/!Bn6uffer*ount R C) 4imeBnic!%nabled S 9alse ] deshabilita timer para un timeout Bf 28*omm/!Bn6uffer*ount R 0 4hen 0atos S 28*omm/!Bnput %lse 4extLog!4ext S 4extLog ^ F4iempo fuera en la comunicaci&n!F ^ *hr(*H) ^ *hr(L9) %nviar S 49 ]%rror de time out en la comunicaci&n %xit 9unction %nd Bf 0at S :sc(2id(0atos, /, /)) 8elect *ase 0at *ase :*T %nviar S 0% ]0ato enviado *orrectamente 4extLog!4ext S 4extLog!4ext ^ F%nviando 2ensa e al F ^ *ap*ode ^ *hr(/C) ^ *hr(/0) *ase <:T %nviar S 0<% ]Los datos contienen errores 4extLog!4ext S 4extLog!4ext ^ F%rror de envio <:T F ^ *hr(/C) ^ *hr(/0) *ase H8 %nviar S 0<% ]Los datos contienen errores 4extLog!4ext S 4extLog!4ext ^ F%rror de envio H8 F ^ *hr(/C) ^ *hr(/0) *ase %8* %nviar S 04 ]0esconexion del terminal 4extLog!4ext S 4extLog!4ext ^ F%l terminal se desconecto!F ^ *hr(/C) ^ *hr(/0) Bni>ar!%nabled S 4rue 4ime2ens!%nabled S 9alse Bni>ara*licN *ase 0efault %nviar S %0 ]%rror desconocido en la transmisi&n 4extLog!4ext S 4extLog!4ext ^ F%rror desconocido! F ^ 9ormat(0at) ^ *ap*ode ^ *hr(/C) ^ *hr(/0) %nd 8elect ]*hecN8 S *hr(84D) ^ 2id(+pciones, /, /) ^ *ap*ode ^ 2id(+pciones, ,, 5) ^ *hr(*H) ^ 2ensa e ^ *hr(*H) ^ *hr(%4D) ^ *hecN8 ^ *hr(*H) %nd 9unction ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento *ommand/a*licN() ]>H+>+8B4+ ? 2ostrar frm>roperties ]%\%2>L+ 0% LL:2:0: ? <inguna ]%<4H:0:8 ? <B<7A<: ]8:LB0:8 ? <B<7A<: ]>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <B<7A<+ ]+68%HI:*B+<%8 ? 8e muestra la forma con el metodo 8ho' ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ?

]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub *ommand/a*licN() frm>roperties!8ho' / %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento *ommand,a*licN() ]>H+>+8B4+ ? Heiniciar las comunicaciones con el terminal de paginaci&n ]%\%2>L+ 0% LL:2:0: ? <inguna Y%<4H:0:8 ? <B<7A<: Y8:LB0:8 ? <B<7A<: Y>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <B<7A<+ ]+68%HI:*B+<%8 ? %nvia un Q%+4RQ*HR para terminar una una sesi&n que ]no se termino adecuadamente! ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub *ommand,a*licN() +n %rror Hesume <ext 2ouse>ointer S vbMourglass Bf <ot 28*omm/!>ort+pen 4hen 28*omm/!>ort+pen S 4rue 28*omm/!+utput S *hr(%+4) ^ *hr(*H) Bni>ar!%nabled S 4rue Bni>ar!*aption S F^BniciarF 28*omm/!>ort+pen S 9alse 2ouse>ointer S vb0efault %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento *ommandCa*licN() ]>H+>+8B4+ ? *errar la forma activa ]%\%2>L+ 0% LL:2:0: ? <inguna Y%<4H:0:8 ? <B<7A<: Y8:LB0:8 ? <B<7A<: Y>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <B<7A<+ ]+68%HI:*B+<%8 ? 8e descarga la forma activa con el mtodo unlaod ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub *ommandCa*licN() Anload 2e %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento 9orma:ctivate() ]>H+>+8B4+ ? *argar la configuraci&n de puerto serial cuando se activa ]la forma ]%\%2>L+ 0% LL:2:0: ? <inguna Y%<4H:0:8 ? <B<7A<: Y8:LB0:8 ? <B<7A<:

Y>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <B<7A<+ ]+68%HI:*B+<%8 ? se toman del registro de Eindo's todos las ]configuraciones del puerto serial estas son cargadas en el control ]28*omm/ ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub 9orma:ctivate() ]obtener la configuraci&n anterior del puerto ]28*omm/!8ettings S 7et8etting(F8ervidorF, F*onfiguracionF, F>uertoF, ) 28*omm/!8ettings S 7et8etting(:pp!4itle, F>ropertiesF, F8ettingsF, F-L00,n,J,/F) 28*omm/!*omm>ort S 7et8etting(:pp!4itle, F>ropertiesF, F*omm>ortF, F/F) 28*omm/!MandshaNing S 7et8etting(:pp!4itle, F>ropertiesF, FMandshaNingF, F0F) Bf Bniciar 4hen Bni>ara*licN %nd Bf 4ime2ens!4ag S 0 ]9inalizar el envio de mensa es %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento 9ormaLoad() ]>H+>+8B4+ ? :brir la base de datos $ esperar a conectarse al terminal ]%\%2>L+ 0% LL:2:0: ? <inguna Y%<4H:0:8 ? <B<7A<: Y8:LB0:8 ? <B<7A<: Y>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <B<7A<+ ]+68%HI:*B+<%8 ? 8e carga el 8plash, se abre la base de datos, $ se ]guarda el evento de entrada al programa en la db tabla eventos ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub 9ormaLoad() 0im L98 +n %rror 7o4o 06%rrorMandler ] 8i ha$ errores $a sabe que hacer! L98 S *hr[(/C) ^ *hr[(/0) frm8plash8!8ho' frm8plash8!4op S ,00 frm8plash8!Hefresh 4extLog!4ext S F:briendo base de datos !!!F ^ L98 8et 2$EorNspace S EorNspaces(0) 8et 2$0atabase S 2$EorNspace!+pen0atabase(:pp!>ath ^ FgF ^ 2$9ile) 4extLog!4ext S 4extLog!4ext ^ F6ase de datos lista!!!F ^ L98 ]28*omm,!>ort+pen S 4rue ] >ara verificar %mpezar ]*arga las opciones al arrancar Anload frm8plash8

7uardar%ventos <o', F8ervidorF, F%ntrada al programa 8ervidor MermesF %xit 8ub 06%rrorMandler? 8elect *ase %rr *ase C0,5? 2sg6ox F<o se puede abrir la base de datos!F, vb%xclamation *ase C0,,? 2sg6ox F%l usuario $a existe en la base de datos!F, vb%xclamation *ase -/? 2sg6ox F<o se ha abierto la base de datos!F, vb%xclamation %nd 8elect %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento 9ormaAnload ]>H+>+8B4+ ? Ierificar cuando se va$a a salir del programa ]%\%2>L+ 0% LL:2:0: ? <inguna Y%<4H:0:8 ? <B<7A<: Y8:LB0:8 ? <B<7A<: Y>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <B<7A<+ ]+68%HI:*B+<%8 ? 8e pide confirmaci&n al usuario para salir, si sale ]se guarda el evento de salidad del programa, se cierra la db $ ]finaliza el programa, en caso contrario se cancela la acci&n! ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub 9ormaAnload(*ancel :s Bnteger) 0im Hesp 6eep 6eep Hesp S 2sg6ox(F0esea 8alir de 8ervidor GF, vb*ritical X vbKes<o X vb0efault6utton,, F*onfirmaci&n salirF) Bf Hesp S vbKes 4hen 7uardar%ventos <o', F8ervidorF, F8alida del programa 8ervidor MermesF 2$0atabase!*lose ] *ierra la base de datos! %nd %lse *ancel S V/ %nd Bf %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento Bni>ara*licN() ]>H+>+8B4+ ? Bniciar las comunicaciones con el terminal de paginaci&n ]%\%2>L+ 0% LL:2:0: ? <inguna ]%<4H:0:8 ? <B<7A<: ]8:LB0:8 ? <B<7A<: ]>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? /)7uardar%ventos, ,)*hr (I6),C)2id(vb) ]5)Bn8tr (I6) ]+68%HI:*B+<%8 ? se abre el puerto $ se inicia con la secuencia de ]ingreso, si el puerto $a estaba abierto se realiza la secuencia de ]desconexi&n, si se logra conexi&n se graba el suceso en la db $ ]se coloca una imgLed en verde para indicar que hubo conexi&n con el ]terminal de paginaci&n en caso contrario permanece en color ro o

]cualquier error de comunicaci&n o error en el puerto serial sera ]indicado al operador de turno ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub Bni>ara*licN() +n %rror Hesume <ext Bni>ar!%nabled S 9alse 0im +pen9lag, Bn0at, >os Bf 28*omm/!>ort+pen 4hen 4ime2ens!4ag S 0 ]9inalizar el envio de mensa es 0o 0o%vents Loop Antil 4ime2ens!%nabled S 9alse 28*omm/!+utput S *hr(%+4) ^ *hr(*H) ]9inaliza la comunicaci&n con el terminal 7uardar%ventos <o', F8ervidorF, F9inalizada la sesion para los operadoresF %nd Bf 28*omm/!>ort+pen S <ot 28*omm/!>ort+pen Bf %rr 4hen 2sg6ox %rror[, 5J +pen9lag S 28*omm/!>ort+pen ]Bntentando abrir el puerto Bf +pen9lag 4hen 28*omm/!+utput S *hr(*H) ]%nvia un caracter $ espera FB0SF 4extLog!4ext S 4extLog!4ext ^ FBniciando !!!F ^ *hr(/C) ^ *hr(/0) 4imeBnic!%nabled S 4rue 0o ]%spera respuesta del terminal 0o%vents Loop Antil (4imeBnic!4ag S 0) +r (28*omm/!Bn6uffer*ount R C) 4imeBnic!%nabled S 9alse ]inicializa el timer nuevamente 4imeBnic!4ag S / Bf 28*omm/!Bn6uffer*ount R C 4hen Bn0at S 28*omm/!Bnput ]si recibio respuesta >os S Bn8tr(Bn0at, FB0SF) ]la compara con FB0SF como respuesta valida Bf >os QR 0 4hen ]8i es una respuesta valida se envia el siguiente comando 28*omm/!+utput S *hr(%8*) ^ F>7J:6*0F ^ *hr(*H) 4extLog!4ext S 4extLog!4ext ^ F%ntrando al terminal!!!F ^ *hr(/C) ^ *hr(/0) 4imeBnic!%nabled S 4rue 0o ]%spera respuesta del terminal 0o%vents Loop Antil (4imeBnic!4ag S 0) +r (28*omm/!Bn6uffer*ount R C) 4imeBnic!%nabled S 9alse ]inicializa el timer nuevamente 4imeBnic!4ag S / Bf 28*omm/!Bn6uffer*ount R C 4hen Bn0at S 28*omm/!Bnput ]si recibio respuesta >os S Bn8tr(Bn0at, F;pF) ]la compara con F;pF como respuesta valida Bf >os QR 0 4hen 7uardar%ventos <o', F8ervidorF, F8ervidor habilitado para los operadoresF 8ervidor:ctivo ]habilita el servidor para los clientes

4extLog!4ext S 4extLog!4ext ^ F*omunicaci&n iniciada!F ^ *hr(/C) ^ *hr(/0) BmgLed S BmgIerde 4erminal!%nabled S 9alse Bni>ar!*aption S F^>ararF 4ime2ens!%nabled S 4rue ]8e inicializa el timer para enviar mensa es 4ime2ens!4ag S / %lse 28*omm/!+utput S *hr(%+4) ^ *hr(*H) ]9inaliza la comunicaci&n con el terminal 4extLog!4ext S 4extLog!4ext ^ F<o se logra conexi&n con el terminal!!!F ^ *hr(/C) ^ *hr(/0) 7uardar%ventos <o', F8ervidorF, F8ervidor no logra conexi&n con el 4erminal de paginaci&nF 28*omm/!>ort+pen S 9alse %nd Bf %lse 4extLog!4ext S 4extLog!4ext ^ F<o se logra conexi&n con el terminal!!!F ^ *hr(/C) ^ *hr(/0) 28*omm/!>ort+pen S 9alse %nd Bf %lse ]<o ocurrio respuesta valida, indica el error $ retorna 4extLog!4ext S 4extLog!4ext ^ F<o se logra conexi&n con el terminal!!!F ^ *hr(/C) ^ *hr(/0) 28*omm/!>ort+pen S 9alse %nd Bf %lse 4extLog!4ext S 4extLog!4ext ^ F<o se logra conexi&n con el terminal!!!F ^ *hr(/C) ^ *hr(/0) 28*omm/!>ort+pen S 9alse %nd Bf 4imeBnic!%nabled S 9alse 4imeBnic!4ag S / %lse BmgLed S BmgHo o 4erminal!%nabled S 4rue Bni>ar!*aption S F^BniciarF 4extLog!4ext S 4extLog!4ext ^ F*errando comunicaci&n!!!F ^ *hr(/C) ^ *hr(/0) %mpezar ]deshabilita el servidor para los clientes %nd Bf Bni>ar!%nabled S 4rue %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento 4erminala*licN() ]>H+>+8B4+ ? % ecutar el programa Is4erm!exe ]%\%2>L+ 0% LL:2:0: ? <inguna Y%<4H:0:8 ? <B<7A<: Y8:LB0:8 ? <B<7A<: Y>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? /)8hell, ,)7uardar%ventos ]+68%HI:*B+<%8 ? 8e e ecuta la aplicaci&n Is4erm!exe con la funci&n

]8hel, si se inicia se guarda el evento en la 06, si ocurre un error ]se informa al operador con la respectiva descripci&n! ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub 4erminala*licN() 0im Het +n %rror 7o4o 2ane o%rror Het S 8hell(:pp!>ath ^ FgF ^ FI84%H2!%D%F, vb<ormal9ocus) Bf Het S 0 4hen 2sg6ox F<o se pudo inicializar el 4erminal, por favor verifique que la aplicaci&n este instalada!F, vb%xclamation %lse 7uardar%ventos <o', F8ervidorF, FBniciado el I84%H2!%D%F %nd Bf %xit 8ub 2ane o%rror? 2sg6ox %rr!0escription ^ F <o se pudo inicializar el 4erminal, por favor verifique que la aplicaci&n este instalada!F, vb%xclamation %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento 4imeBnica4imer() ]>H+>+8B4+ ? %sperar un tiempo determinado para generar un timeout ]%\%2>L+ 0% LL:2:0: ? <inguna Y%<4H:0:8 ? <B<7A<: Y8:LB0:8 ? <B<7A<: Y>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? <B<7A<+ ]+68%HI:*B+<%8 ? %l 4imer 4imeBnic se utiliza para medir los tiempos ]de comunicaciones, por fuera del tiempo preestablecido ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub 4imeBnica4imer() Bf 4imeBnic!4ag S / 4hen 4imeBnic!4ag S 0 %lse 4imeBnic!4ag S / %nd Bf %nd 8ub ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]4B4AL+ ? %vento 4ime2ensa4imer() ]>H+>+8B4+ ? Macer un ciclo para verificar nuevos mensa es en la db $ ]enviarlos al terminal de paginaci&n ]%\%2>L+ 0% LL:2:0: ? <inguna Y%<4H:0:8 ? <B<7A<: Y8:LB0:8 ? <B<7A<: Y>H+*%0B2B%<4+8 H%9%H%<*B:0+8 ? /)%nviar

]+68%HI:*B+<%8 ? 8e abre la db $ se buscan los mensa es que no ha$an ]sido enviados o sea con estado S <o, se envia el mensa e con la ]funci&n %nviar(), $ se espera un 0%, si es asi se cambia el estado a ]8i $ se continua con el siguiente mensa e! ]:A4+H ? Hicardona ]:A0B4+H ? ]9%*M: ? /VagoV-J ]2+0B9B*:*B+<%8 ? ]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >rivate 8ub 4ime2ensa4imer() 0im *ap*ode :s 8tring, 2ensa e :s 8tring, +pciones :s 8tring 0im i, Hesp 0im I9Mora +n %rror 7o4o 06%rrorMandler ] 8i ha$ errores $a sabe que hacer! ] :brir tabla! Bni>ar!%nabled S 9alse 8et 2$4able S 2$0atabase!+penHecordset(F8elect W from 2ensa es EM%H% %stado S ]<o];F, db+pen0$naset) Bf 2$4able!Hecord*ount QR 0 4hen Eith 2$4able !2oveLast ] Llena el Hecordset! principal!*aption S F8ervidor V sin enviar ? F ^ 2$4able!Hecord*ount ] %ncuentra el primer registro que coincide ] con la cadena de b"squeda! 8ale del bucle si no existe ning"n registro! !9ind9irst F%stado S ]<o]F Bf <ot !<o2atch 4hen 0o Ehile 4rue 0o%vents *ap*ode S 2$4able(F*apcodeF) 2ensa e S 2$4able(F2ensa eF) +pciones S 2$4able(F+pcionesF) I9Mora S <o' ]9echa hora actual Bf I9Mora RS b9echaMora 4hen ]if el mensa e no es postfechado se envia Hesp S %nviar(*ap*ode, 2ensa e, +pciones) Bf Hesp S 0% 4hen ]8i se envio correctamente se actualiza el registro a enviado !%dit b%stado S F8iF ]*ambia el estado del mensa e a enviado !Apdate %nd Bf %nd Bf !9ind<ext F%stado S ]<o]F Bf (!<o2atch) +r (4ime2ens!4ag S 0) 4hen %xit 0o %nd Bf Loop %nd Bf %nd Eith %lse principal!*aption S F8ervidor V sin mensa esF %nd Bf

2$4able!*lose 8et 2$4able S <othing Bf 4ime2ens!4ag S 0 4hen 4ime2ens!%nabled S 9alse Bni>ar!%nabled S 4rue %xit 8ub 06%rrorMandler? 8elect *ase %rr *ase C0,5? 2sg6ox F<o se puede abrir la base de datos!F, vb%xclamation *ase C0,,? 2sg6ox F%l registro $a existe en la base de datos!F, vb%xclamation *ase CC/5? 2sg6ox F0ebe llenar todos los campos!F, vb%xclamation *ase -/? 2sg6ox F<o se ha abierto la base de datos!F, vb%xclamation *ase %lse? 2sg6ox %rr!0escription, vb%xclamation %nd 8elect ]cerrar tabla 8et 2$4able S <othing %nd 8ub

Ane&o 1. $abla ASCII ?alores he&adecimales 000 <AL 00/ 8+M 00, 84D 00C %4D 0/0 68 0// M4 0/, <L 0/C I4 0,0 0L% 0,/ 0*/ 0,, 0*, 0,C 0*C 0C0 *:< 0C/ %2 0C, 8A6 0CC %8* 050 8> 05/ b 05, F 05C f 050 ( 05/ ) 05, W 05C X 0L0 0 0L/ / 0L, , 0LC C 010 J 01/ 01, ? 01C ; /00 h /0/ : /0, 6 /0C * //0 M /// B //, \ //C T /,0 > /,/ ` /,, H /,C 8 /C0 D /C/ K /C, @ /CC ; /50 j /5/ a /5, b /5C c /50 h /5/ i /5, /5C N /L0 p /L/ q /L, r /LC s /10 x /1/ $ /1, z /1C c ?alores decimales 0/ 8+M 0, 84D 0- M4 0: <L // 0*/ /, 0*, /- %2 /: 8A6 ,/ b ,, F ,- ) ,a W C/ / C, ,

005 %+4 0/5 <> 0,5 0*5 0C5 98 055 [ 055 , 0L5 5 015 Q /05 0 //5 L /,5 4 /C5 g /55 d /55 l /L5 t /15

005 %<` 0/5 *H 0,5 <:T 0C5 78 055 . 055 V 0L5 5 015 S /05 % //5 2 /,5 A /C5 = /55 e /55 m /L5 u /15 d

00L :*T 0/L 8+ 0,L 8K< 0CL H8 05L ^ 05L ! 0LL L 01L R /0L 9 //L < /,L I /CL i /5L f /5L n /LL v /1L _

001 6%L 0/1 8B 0,1 %46 0C1 A8 051 ] 051 3 0L1 1 011 G /01 7 //1 + /,1 E /C1 a /51 g /51 o /L1 ' /11 0%L

00 <AL 0J 68 /0 0L% /J *:< ,0 8> ,J ( C0 0

0C %4D 06 I4 /C 0*C /6 %8* ,C f ,b X CC C

05 %+4 0* <> /5 0*5 /* 98 ,5 [ ,c , C5 5

05 %<` 00 *H /5 <:T /0 78 ,5 . ,d V C5 5

0L :*T 0% 8+ /L 8K< /% H8 ,L ^ ,e ! CL L

01 6%L 09 8B /1 %46 /9 A8 ,1 ] ,f 3 C1 1

CJ 50 5J 50 5J L0 LJ 10 1J

J h M > D j h p x

C5/ 55/ 5L/ L1/ 1-

: B ` K a i q $

Ca 5, 5a 5, 5a L, La 1, 1a

? 6 \ H @ b r z

Cb 5C 5b 5C 5b LC Lb 1C 1b

; * T 8 ; c N s c

Cc 55 5c 55 5c L5 Lc 15 1c

Q 0 L 4 g d l t

Cd 55 5d 55 5d L5 Ld 15 1d

S % 2 A = e m u d

Ce 5L 5e 5L 5e LL Le 1L 1e

R 9 < I i f n v _

Cf G 51 7 5f + 51 E 5f a L1 g Lf o 11 ' 1f 0%L

Ane&o !. Comandos A$. %l soft'are de comunicaciones se comunica con el m&dem en un idioma de comando especial que a menudo se conoce como el uego de comandos :4! : pesar de que no se puede ver este idioma, es el "nico que el m&dem comprende; la siguiente es una descripci&n resumida de los comandos :4 $ su utilizaci&n! *mo Asar los *omandos %T Los m&dem siempre funcionan en uno de estos modos? el modo de comando o el modo en lnea! %n el modo comando que se usa para la configuraci&n del m&dem o para marcar, puede comunicarse con el m&dem a travs del con unto de comandos :4! 0espus de e ecutar un comando, el m&dem regresa un c&digo de resultado de confirmaci&n! 0espus de que se establezca una conexi&n con un m&dem o m#quina de fax remota, el m&dem pasa al modo en lnea (a menos que el modificador de marcado lo especifique de otra manera)! %n el modo en lnea, el m&dem recibe caracteres desde la computadora, convierte los datos en seales anal&gicas $ luego transmite estas seales a travs de la lnea telef&nica!

>uede introducir comandos "nicamente cuando el m&dem est# en el modo comando! <o puede entrar comandos cuando el m&dem est# en el modo en lnea, es decir, enviando o recibiendo datos mediante las lneas telef&nicas! 8i el m&dem se encuentra en el modo en lnea, regresa al modo comando ba o esta circunstancias? An punto $ coma (;) ocurre al fin de la secuencia de marcado! %l m&dem recibe una secuencia de escape definida o una seal de interrupci&n mientras est# en el modo en lnea! 8e desconecta una llamada! <o puede completar una llamada satisfactoriamente o el portador de datos del m&dem remoto se desconecta! 8i ocurre un error durante la e ecuci&n de una lnea de comando, el procesamiento se detiene $ todo aquello que sigue al comando incorrecto se ignora! $e4erencia de *omandos %T de +dem #+AC 1' La siguiente tablas enumeran los comandos :4 reconocidos por el m&dem! *ada descripci&n de comando denomina el comando, lo explica $ enumera todos los par#metros asociados! Comandos A$ Descripcin de comandos A$ *&digo de :tenci&n! F:4F es el prefi o de lnea de comando que indica al m&dem que se est# entrando un comando o secuencia de comandos! >recede todos los comandos con excepci&n de los comandos F:3F (repetir) $ FXXXF (escapar)! *uando se entra por s solo, F:4F hace que el m&dem responda con +T (:ceptar) o con 0 si est# listo para recibir comandos! >ar#metros? ninguno AJ Hepetir kltimo *omando! F:3F hace que el m&dem repita el comando anterior, como por e emplo el volver a marcar un n"mero telef&nico! %l comando e ecutado previamente permanece en el almacenamiento temporario de comandos hasta que F:4F se entra o se desactiva la energa! :mbas acciones borran la memoria intermedia $ causa que quede no v#lido el comando F:3F, puesto que no existe un comando a repetir! <o es necesario entrar un QcrR o F:4F debido a que los mismos tambin quedan en la memoria intermedia de comandos con el comando anterior!

Bn

Dn

*n

Hn

In

>ar#metros? ninguno *omando de Hespuesta! F:F hace que el m&dem conteste una llamada sin esperar por un timbre! %sto es "til al contestar una llamada de modo manual o cuando se efect"an conexiones directas con otro m&dem en el modo original! *ualquier comando que siga despus de la F:F en la misma lnea de comando se ignora! >ar#metros? ninguno +pci&n %st#ndar de *omunicaciones! 0etermina el est#ndar B4A vs! 6ell! >ar#metros? n S 0 V C, /5, /L n S 0 B4A I!,, para /,00 bps n S / 6ell ,/,: para /,00 bps (valor predeterminado) n S ,, C :nula la selecci&n de B4A I,C canal inverso n S /5 B4A I!,/ para C00 bps n S /L 6ell /0C\ para C00 bps (valor predeterminado) *omando de 2arcado! F0F (2arcado) hace que el m&dem marque el n"mero que sigue a la F0F en la lnea de comando! Los dgitos v#lidos para marcar $ modificar el marcado se definen en la p#gina 2odificadores de 2arcado! %n el marcado a impulsos, los caracteres que no sean dgitos no tienen efecto alguno! >ar#metros? ninguno *omando de %co! F%nF determina si los caracteres que usted escribe con el teclado se repitan de manera que se visualicen en el monitor (eco local) mientras el m&dem se encuentra en el modo de comando! >ar#metros? n S 0, / n S 0 Bnhabilita el eco local n S / Mabilita el eco local (valor predeterminado) *ontrol de 7ancho! FMnF comunica al m&dem para que cuelgue para desconectar una llamada o para que levante el auricular para que la lnea telef&nica se vuelve ocupada! >ar#metros? n S 0, / n S 0 2&dem desconectado (colgar) (valor predeterminado) n S / 2&dem conectado 8olicitar Bdentificaci&n! FBnF interroga al m&dem para que comunique el c&digo de identificaci&n de producto, el checNsum de H+2 o el estado del checNsum de H+2! >ar#metros? n S 0, /, ,, C, 5, 5, n S 0, C 0evuelve la velocidad predeterminada $ la versi&n de firm'are del controlador n S / *alcula el checNsum de H+2 $ lo visualiza (por e emplo, /,:6) n S , Healiza la comprobaci&n de H+2, calcula $ verifica el checNsum, visualizando :*%>4:H o %HH+H! n S 5 0evuelve la versi&n de firm'are para el bombeo de datos

/n

"n

Nn

*nc .Hn0

n S 5 0evuelve la B0 de tablero? versi&n de soft'are, versi&n de hard'are e B0 de pas n S - 0evuelve el c&digo de pas Iolumen del :ltavoz del 2onitor! F:4LnF fi a el volumen del altavoz durante las comunicaciones de fax $ de datos, a ba o, mediano o alto! >ar#metros? n S 0 V C n S 0, / Iolumen ba o n S , Iolumen mediano (valor predeterminado) n S C Iolumen alto NH$A1 >ara apagar los parlantes por completo, use el comando 20! +pci&n de *ontrol de >arlantes! F2nF controla la operaci&n de enc!3apag! del altavoz durante las comunicaciones de fax $ de datos! >ar#metros? n S 0 V C n S 0 >arlante apagado n S / >arlante est# encendido hasta que el m&dem detecta una seal de portador (valor predeterminado) n S , >arlante siempre est# encendido cuando el m&dem est# conectado n S C >arlante est# encendido despus de marcar hasta que el m&dem detecta una seal de portador, excepto cuando est# marcando 2odulaci&n del %stablecimiento de *omunicaci&n! F<nF controla si el m&dem local realizar# o no el establecimiento de comunicaci&n negociada durante el tiempo de conexi&n con el m&dem remoto cuando las velocidades de comunicaci&n de los dos m&dems son diferentes! >ar#metros? n S 0, / n S 0 :l originar o contestar, establezca comunicaci&n "nicamente a nivel de la norma de comunicaciones especificada por 8C1 $ el comando :46! n S / :l originar o contestar, comience el establecimiento de comunicaciones "nicamente a nivel de la norma de comunicaciones especificada por 8C1 $ el comando :46! 0urante el establecimiento de comunicaciones, puede retroceder a una velocidad m#s ba a (predeterminada)! *omando %n Lnea! F+nF hace que el m&dem quede en el modo en lnea! >ar#metros? n S 0, /, C n S 0 %ncienda en lnea n S / Bnicie la recapacitaci&n del ecualizador antes de regresar al modo de datos en lnea n S C %mita una renegociaci&n de velocidad antes de regresar al modo de datos en lnea NH$A1 Atilice este comando para regresar al modo en lnea despus de FescaparF al modo de comando usando el comando XXX! 2arcado a Bmpulsos! F>F establece el modo de marcado a impulsos! 4odas las llamadas siguen en el modo de marcado a impulsos hasta que seleccione marcado a tonos usando el comando F4F! 4ambin puede usar este comando como un modificador de marcado! >ar#metros? ninguno

Kn

SrDn

SnL

?n

@n

8upresi&n del *&digo de Hesultado! F`nF habilita el m&dem para que enve los c&digos de resultado! >ar#metros? n S 0, / n S 0 Mabilita los c&digos de resultado (valor predeterminado) n S / Bnhabilita la devoluci&n de los c&digos de resultados (silenciosos) %scribir a un Hegistro 8! 8rSn establece el registro r como el valor n! %l contenido de estos registros se puede modificar con este comando! >ar#metros? ninguno 2argen? r S 0 V ,1, ,-, C/ V CC, C5, C1, J- (n"mero de registro) n S 0 V ,55 (valor) I"2H4$AN$*1 >uede provocar resultados err#ticos al escribir a registros reservados o de lectura solamente! Leer un Hegistro 8! 8nG indica el valor del registro designado por n, el cual puede ser el n"mero de cualquier registro 8 v#lido! >ar#metros? ninguno 2argen? n S 0 V ,1, ,-, C/ V CC, C5, C1, JNH$A1 Los valores se indican en formato de decimal! >ara interpretar valores de registro con correspondencia de bits, convierta el valor decimal a uno binario! 2arcado a 4onos! F4F establece el modo de marcado al de a tonos! %l marcado a tonos es el modo predeterminado! 4ambin puede usar este comando como un modificador de marcado! >ar#metros? ninguno 9ormulario de *&digos de Hesultados! FAnF determina el tipo de c&digo de resultado devuelto por el m&dem! >ar#metros? n S 0, / n S 0 *&digo de resultado se enva en forma de n"meros (forma abreviada o dgitos) n S / *&digo de resultado se enva como texto (forma larga o verboso) (valor predeterminado) %stablecer *&digo de Hesultado $ >rogreso de Llamada! FDnF selecciona el con unto de c&digos de resultado $ las funciones de marcado! %l comando FInF determina si el c&digo de resultado se enva como palabras o como n"meros! *&digos de resultado extendidos? 8i est# habilitado, el m&dem visualiza c&digos de resultado b#sicos, unto con el mensa e de conexi&n $ la velocidad de datos del m&dem $ una indicaci&n de los valores para la correcci&n de errores $ compresi&n de datos! 8i est# inhabilitado, solamente +T (:ceptar), *+<<%*4 (*+<%*4:H), HB<7 (4B26H%), <+ *:HHB%H (<+ M:K >+H4:0+H) $ %HH+H (%HH+H) se visualizan! 0etecci&n del tono de marcado? 8i est# habilitado, el m&dem marca solamente cuando detecta un tono de marcado; desconecta la llamada si no detecta un tono de marcado dentro de /0 segundos! 8i est# inhabilitado, el m&dem marca si detecta un tono de marcado o no! Asted

>

FFF

puede seleccionar el n"mero de segundos que el m&dem espera antes de marcar en el registro 8L! 0etecci&n de la seal de ocupado? 8i est# habilitado, el m&dem verifica las seales de ocupado! 8i est# inhabilitado, el m&dem ignora las seales de ocupado! >ar#metros? n S 0 V 5, 1 n S 0 Bnhabilitar los c&digos de resultado extendidos, la detecci&n del tono de marcado $ la detecci&n de la seal de ocupado! n S / Mabilitar c&digos de resultado extendidos; inhabilitar la detecci&n del tono de marcado $ de la seal de ocupado! n S , Mabilitar los c&digos de resultado extendidos $ la detecci&n del tono de marcado; inhabilitar la detecci&n de la seal de ocupado! n S C Mabilitar los c&digos de resultado extendidos $ la detecci&n de la seal de ocupado! Bnhabilitar la detecci&n del tono de marcado! n S 5 Mabilitar los c&digos de resultado extendidos, la detecci&n de tonos de marcado $ la detecci&n de la seal de ocupado! (valor predeterminado)! n S 1 Bnhabilitar los c&digos de resultado extendidos; habilitar la detecci&n del tono de marcado $ de la seal de ocupado! Hestaurar la *onfiguraci&n 7uardada! %ste comando indica al m&dem que debe desconectarse $ restaurar la configuraci&n guardada con el "ltimo comando ^E! 8ecuencia de *&digo de %scape! :l enviar el con unto de caracteres establecido en el registro 8, tres veces r#pidamente al m&dem (vase 8/,), el m&dem escapa al estado de comando! %l valor predeterminado para el car#cter de escape es X! *uando la documentaci&n indica que debe entrar XXX, entre el uego de caracteres en el registro 8, tres veces en sucesi&n r#pida! <o debe preceder la secuencia del c&digo de escape con F:4F, $ no debe oprimir la tecla %nter despus! NH$A1 >ara regresar al estado en lnea, use el comando :4+!

$e4erencia de *omandos del $egistro S #+AC 1' La siguiente tabla enumera los registros 8 disponibles para el m&dem! %l margen de valores v#lidos, valor predeterminado $ unidades, donde se aplica! 24*CA7CIMN1 La escritura en un registro reservado podra causar resultados inesperados! NH$A1 %l margen $ los valores predeterminados que se dan en esta tabla son "nicamente para <orteamrica! %stos valores pueden variar seg"n el pas!

4egistro SB

Descripcin Hespuesta :utom#tica %l establecer 80 en un valor de 0 hasta ,55 coloca

S1

S!

S#

S'

S(

S)

SC

el m&dem en el modo de respuesta! %l m&dem contesta autom#ticamente despus de transcurrir un n"mero especfico de timbres! 8i establece 80 en 0 inhabilita la contestaci&n autom#tica de manera que el m&dem "nicamente contesta cuando se da un comando :4:! 2argen? 0 V ,55 Ialor predeterminado? 0 Anidades? 4imbres *ontador de 4imbres! 8/ es de s&lo lectura! %l valor de 8/ se incrementa con cada timbre! 8i no ha$ timbres despus de un intervalo de seis segundos, este registro se borra! *ar#cter :4 de %scape! 8, especifica el car#cter de c&digo de escape usado para de ar el modo de datos en lnea $ volver a entrar en el modo de comando! Los valores ma$ores de /,1 inhabilitan la secuencia de c&digo de escape! >ara entrar al modo de comando cuando se ha inhabilitado el c&digo de escape, una prdida de portador debe ocurrir o la seal de terminal de datos listo (04H) debe estar establecido en 0 (seg"n el comando ^0)! 2argen? 0 V ,55 Ialor predeterminado? 5C (:8*BB X) *ar#cter de 4erminaci&n de la Lnea de *omando! 8C especifica el valor usado para identificar el fin de la lnea de comando! 2argen? de 0 hasta /,1, :8*BB decimal Ialor predeterminado? /C (retroceso de carro) *ar#cter de 9ormateo de Hespuesta! 85 especifica la salida de car#cter por el m&dem a la computadora como avance de lnea! 2argen? de 0 hasta /,1, :8*BB decimal Ialor predeterminado? /0 (avance de lnea) *ar#cter de %dici&n de Lnea de *omando! 85 especifica el valor :8*BB del car#cter usado para editar la lnea de comando! %l m&dem no reconoce el car#cter de Hetroceso si no est# establecido en un valor superior a decimal C,! %ste car#cter puede usarse para editar una lnea de comando! *uando est# habilitado la funci&n de eco, el m&dem repite el car#cter retroceso, el car#cter de espacio de :8*BB, $ un segundo car#cter retroceso a la computadora! %sto significa que un total de tres caracteres se transmite cada vez que el m&dem procesa el car#cter de retroceso! 2argen? de 0 hasta /,1, :8*BB decimal Ialor predeterminado? J (retroceso) %sperar :ntes de 2arca! 8L establece la duraci&n del perodo (en segundos) que espera el m&dem despus de conectarse antes de marcar el primer dgito de un n"mero telef&nico! La caracterstica de espera para el tono de marcado, establecido por el modificador de marcado E, suplanta esta configuraci&n del registro 8! 2argen? , V L5 Ialor predeterminado? , Anidades? 8egundos Bntervalo de %spera de 4erminaci&n de *onexi&n! 81 especifica el intervalo

SN

S1B

S11

S1!

S!N

S#!

S##

S#(

de tiempo (en segundos) que el m&dem espera para recibir una seal de portador antes de colgarse! %l cron&metro empieza cuando el m&dem termina de marcar o se desconecta! %ste cron&metro tambin establece el intervalo de espera de silencio para el modificador h de marcado! 2argen? / V ,55 Ialor predeterminado? 50 Anidades? 8egundos 2odificador *oma de 2arcado Bntervalo! 8J denota el intervalo de tiempo (en segundos) que el m&dem pausa cuando lee una coma en la cadena de comando de marcado! 2argen? 0 V L5 Ialor predeterminado? , 0emora :utom#tica de 0esconexi&n! 8/0 especifica el tiempo de demora (en dcimas de segundos) desde la prdida de portador hasta colgar! 2argen? / V ,55 Ialor predeterminado? ,0 Anidades? 0,/ segundo Ielocidad de 2arcado 0429! 8// determina el ancho de pulso de 0429 $ el tiempo interdgito! 2argen? 50 V /50 Ialor predeterminado? -5 Anidades? 0,00/ segundo Bntervalos de >rotecci&n del *&digo de %scape! %l valor 8/, determina el intervalo de inactividad (en unidades de ,0 milisegundos) antes $ despus de la entrada de la secuencia de c&digos de escape! 2argen? 0 V ,55 Ialor predeterminado? 50 Anidades? 0,0, segundos Mabilitar3Bnhabilitar de 2odulaci&n I!C5 8,J habilita o inhabilita tcnicas de modulaci&n I!C5! Ialores v#lidos son 0 V ,55! 0 Bnhabilitado / V ,55 Mabilitado (valor predeterminado S /) Iolumen de 4imbre 8inttico! 8C, proporciona un volumen de timbre sinttico (en d6) con un signo de restar implcito (/L es valor predeterminado)! 9recuencia de 4imbre 8intetizado! Ialores v#lidos son 0 V 5! 0 Bnhabilitaci&n de timbre sintetizado (predeterminado) / V 5 *inco frecuencias de timbre variables 4ono de Llamada de 0atos! %l 4ono de Llamada de 0atos es un tono de cierta frecuencia $ cadencia seg"n se especifica en I!,5, lo cual permite el reconocimiento remoto de 0atos39ax3Ioz! La frecuencia es /C00 Mz con una cadencia de 0,5 segundos de actividad $ , segundos en descanso! 0 Bnhabilitar tono de llamada de datos (valor predeterminado) / Mabilitar tono de llamada de datos

S#C

S#N

Ielocidad de la Lnea de 2arcado! %l valor predeterminado es 0! 0 8eleccionar velocidad m#xima / Heservado , /,00315 bps C C00 bps 5 Heservado 5 /,00 bps L ,500 bps 1 5J00 bps J 1,00 bps - -L00 bps /0 /,000 bps // /5500 bps /, /LJ00 bps /C /-,00 bps /5 ,/L00 bps /5 ,5000 bps /L ,L500 bps /1 ,JJ00 bps /J C/,00 bps /- CCL00 bps Ielocidad de la Lnea de 2arcado de 5LT! 8CJ establece la velocidad m#xima hacia aba o al cual el m&dem intenta conectarse! >ara inhabilitar 5LT, establezca 8CJ en 0! 8C1 establece la velocidad hacia arriba de I!C5! NH$A1 5LT no est# disponible en algunos modems! 0 5LT inhabilitado / 5LT habilitado, selecci&n de velocidad autom#tica a velocidad m#xima del m&dem (valor predeterminado) , C,000 bps C C5000 bps 5 CL000 bps 5 CJ000 bps L 50000 bps 1 5,000 bps J 55000 bps - 5L000 bps /0 5J000 bps // 50000 bps /, 5,000 bps

SNO

/C 55000 bps /5 5L000 bps /5 5J000 bps /L L0000 bps *ron&metro de 2odo 0ormir! 8J- establece $ muestra el n"mero de segundos de inactividad (no se envan caracteres desde la computadora, ning"n timbre entrante) en el estado de comando fuera de lnea antes de que el m&dem pase al modo de espera (dormir)! An valor de 0 impide el modo en espera! 2argen? 0, 5 Z ,55 Ialor predeterminado? /0 Anidades? 8egundos Ane&o #. Caractersticas del terminal de paginacin9 >etron "odelo 1) codi%icador al%anum-rico.

9ig!,5 @etron 2odelo /L codificador alfanumrico 4:> ;@%4-1=! %l modelo /L acepta mensa es desde la interface H8V,C,, esta se conecta directamente a un computador, terminal o m&dem compatible Ma$es! %ste codifica los mensa es en formatos POCS2G o 7ola$ $ lo enva al transmisor! %l modelo /L opera con par#metros que pueden cambiarse f#cilmente con una conexi&n H8V,C, o m&dem compatible Ma$es, conectado a un computador o terminal! 8e utiliza un men" de opciones que guan al usuario a travs de las caractersticas de programaci&n, par#metros de comunicaci&n, configuraci&n del transmisor, formatos de paginaci&n e identificaci&n de la estaci&n B0! %l modelo /L esta protegido con clave para no se produzca entradas al men" de configuraci&n sin autorizaci&n! Soporte al protocolo T%( #DET &'.

9ig!,5 *onexi&n con m&dem al @etron modelo /L 4:> ;@%4-1=! %l terminal de paginaci&n soporta el 4elocator :lphanumeric >rotocol (T2P) a travs de una conexi&n directa H8V,C, o un m&dem compatible Ma$es conectado al puerto H8V,C,! Los dispositivos que hacen la conexi&n deben soportar el protocolo $ as podr#n enviar mensa es a alg"n usuario que se encuentre registrado en la base de datos! *aracter-sticas generales T%( #DET &' 3!rmat! &e se4a(es >+*8:7 5/, $/,00 baudios, 7ola$! Pr!t!c!(! &e entra&a 2anual o paginaci&n completa, a travs del puerto H8V,C, o m&dem con clave de seguridad! 5ase &e &at!s &e usuari!s *apcode, funci&n, validaci&n, formato asignado, numrico o alfanumrico, solo de tono, prioridad del mensa e! Pane( 'r!nta( L%0s de poder $ transmisi&n! Pane( "!steri!r *onector removible de radio, modo digital, >44, :udio, entrada *+H, entrada de ocupado (bus$ input), salidas l&gicas H8,C, o compatible 44L, >44 ,L voltios, / amp, entrada de - pines H8,C,!

Puert! Seria( >uerto serial compatible, con velocidades escoger C00, /,00, ,500, 5J00, -L00 baudios! 3uente &e "!&er //V/5 I0* o -V/, I:*, opcional el adaptador //0V/,0 I:* L0 Mz o ,,0V,50 I:* 503L0 Mz Tem"eratura &e !"eraci*n 0o a X50l grados centgrados!

Ane&o '. 4ecomendacin del hardPare para los computadores cliente : ser idor9 : la red /AN. *uando en una red existe una clara demanda de archivos, parece claro que ha$ que pensar en c&mo permitir que estos recursos sean compartidos! Los servidores son dispositivos de red que permiten que los archivos, dispositivos u otros recursos puedan ser compartidos por los clientes de la red! Los servidores de archivos son computadores diseados para dar acceso a archivos almacenados en sus discos duros, pero dependiendo del tamao de la red estos servidores $ la red misma deben poseer unas caractersticas mnimas, las configuraciones que se dan a continuaci&n suponen una red de ,, 5 $ /0 usuarios! *on4iguracin ser3idor (2 usuarios" EquipoEprocesador >* standard con procesador 5JL0D a 50 2hz o superior! +emoria /, 26 para Eindo's(H) -5; /L 26 para Eindo's <4(H) EorNstation! %s posible que se requiera m#s memoria para e ecutar simult#neamente otras aplicaciones! 2isco duro 8e requiere /0V/5 26 de espacio disponible en disco duro para instalaci&n de todas
!9$

0arcas registradas de 0icrosoft Corporation.

las aplicaciones, adem#s se requiere espacio adicional para la base de datos, aproximadamente 0!52b por cada /00 usuarios! Anidades e;ternas de almacenamiento 0isco de Cm o un formato compatible ! +onitor :daptador de vdeo I7: o de resoluci&n superior! Sistema operati3o 8istema operativo 2icrosoft Eindo's -5 o 2icrosoft Eindo's <4 EorNstation C!5/ con 8ervice >acN ,, o posterior! Tar?eta de $ed %thernet /0 2bps o superior! (eri4FricosE9arios 2&dem a -L00 baudios o m#s r#pido, 2icrosoft 2ouse o dispositivo sealador compatible, puertos seriales adicionales para el terminal de paginaci&n $ m&dem en caso de que sea externo! Con%iguracin de ( a 1B usuarios para el ser idor. Las configuraciones sugeridas para el servidor con un n"mero de usuarios entre 5 $ /0 se dan a continuaci&n! *omputador EquipoEproces ador +emoria 2isco duro @ Asuarios 5JL0D a LL 2hz o superior! /L 26 para Ein-5; ,0 26 para Ein<4 /0V/5 26 instalaci&n completa, adicional, aprox! 0!52b por /00 usuarios! 1, Asuarios 5JL0D a /00 2hz o superior! ,0 26 para Ein-5; ,5 26 para Ein<4 /0V/5 26 instalaci&n completa, adicional, aprox! 0!52b por /00 usuarios! 0isco de Cm o un formato compatible !

Anidades 0isco de Cm o un formato e;ternas de compatible ! almacenamient o +onitor Sistema operati3o Tar?eta de red I7: o de resoluci&n superior! Ein-5 o Ein<4! %thernet de /0 2bps

I7: o de resoluci&n superior! Ein-5 o Ein<4! %thernet de /0 2bps 2&dem a -L00 baudios o m#s r#pido, 2icrosoft 2ouse o dispositivo sealador compatible, puerto serial adicional para el

(eri4FricosE9ar 2&dem a -L00 baudios o m#s ios r#pido, 2icrosoft 2ouse o dispositivo sealador compatible, puerto serial adicional para el

terminal de paginaci&n $ m&dem en caso de que sea externo! *on4iguracin cliente

terminal de paginaci&n $ m&dem en caso de que sea externo!

EquipoEprocesador >* standard con procesador CJL o superior! +emoria 06$7 26 para Eindo's -5! %s posible que se requiera m#s memoria para e ecutar simult#neamente otras aplicaciones! 2isco duro 8e requiere 5VJ 26 de espacio disponible en disco duro para instalaci&n del soft'are cliente! Anidades e;ternas de almacenamiento 0isco de Cm o un formato compatible ! +onitor :daptador de vdeo I7: o de resoluci&n superior! Sistema operati3o 8istema operativo 2icrosoft Eindo's -5 o posterior! Tar?eta de $ed %thernet /0 2bps o superior! (eri4FricosE9arios 2icrosoft 2ouse o dispositivo sealador compatible! *on4iguracin red C%/ #C%S 1' Las redes son agrupaciones de computadores independientes que se pueden comunicar con otros sobre un medio fsico compartido! Las redes de #rea local (L:<) son aquellas que com"nmente est#n restringidas a un #rea geogr#fica pequea, como un edificio o el campus de una universidad! %l desarrollo de diversas normas (est#ndares) en las conexiones fsicas $ protocolos de red, han hecho posible la proliferaci&n de L:<s %thernet es la tecnologa L:< m#s utilizada actualmente! +tros tipos son 4oNeng Hing, 900B $ Local4alN! *ada una tiene sus venta as $ desventa as? %thernet tiene una buena relaci&n entre la velocidad, precio $ facilidad de instalaci&n! >untos fuertes que, combinados con su amplia aceptaci&n en el mercado de redes $ la capacidad para soportar virtualmente los protocolos de red m#s populares, hace de %thernet una tecnologa ideal en el traba o de redes!

Cableado : $opologas Q/ASO)R Ana parte importante en el diseo e instalaci&n de una red %thernet, es el seleccionar la me or estructura de cableado posible! Ma$ cuatro tipos importantes de cableado? 4hicN'ire (coaxial grueso), 4hin coax (coaxial fino) , par trenzado sin apantallar (A4>) $ fibra &ptica! La selecci&n cuidadosa del cableado %thernet apropiado, puede evitar costosos recableados cuando la red crezca! Los cableados %thernet se usan en dos topologas o configuraciones generales? FbusF $ FestrellaF! %stas dos topologas definen c&mo los FnodosF se conectan uno a otro! An FnodoF es un dispositivo activo conectado a la red, como un computador, una impresora o equipo de red, como un repetidor o un router! T!"!(!g/a en bus. *onsiste en nodos conectados en serie a lo largo del cable! 8e pueden conectar muchos nodos en el bus $ comunicarse con otros nodos que estn en el mismo segmento de cable! Ana rotura en cualquier parte del cable ocasionar# que el segmento entero quede inoperativo hasta que la rotura se repare! T!"!(!g/a en estre((a. 8&lo une dos nodos! La principal venta a de este tipo de red es la fiabilidad, $a que si ha$ una rotura en un enlace punto a punto, s&lo afectar# a los dos nodos del segmento! Los otros nodos en la red continuar#n funcionando como si los de ese segmento no existieran! 8e pueden utilizar repetidores para extender la distancia fsica de red, uniendo varios segmentos punto a punto! $ipos de redes *thernet Q/ASO)R 4ipo de 4ed /06:8%5 /06:8%, /06:8%V4
=

$ipo de cable NS "8&. de Nodos por segmento 4hicN'ire 4hin coax ( coaxial fino ) A4> /00 C0 ,W

Distancia "8&. por segmento 500 m /J5 m /00 m

Esta configuracin solo toma el cable 7ue conecta 2 dispositi#os, se debe recordar 7ue (-P, conectan 3ubs

!concentradores$ 7ue ampl%an las redes 1:/.SEA-.

%l cable de par trenzado sin apantallar (A4>), ofrece muchas venta as sobre los thicN'ire $ thin coax! %l thicN'ire $ el thin coax son cables coaxiales, por lo que son relativamente caros $ requieren ciertos cuidados durante la instalaci&n! %L A4> es parecido al cable telef&nico que se instala en los edificios! Los cables A4> est#n clasificados en varios grados, cuanto ma$or es el grado, me ores son las funcionalidades! %l cable <ivel 5 es el de grado m#s alto ($ el m#s caro), con una velocidad de transmisi&n de hasta /00 2bps (2egabits por segundo)! Los cables de <ivel 5 $ <ivel C hasta ahora eran los m#s utilizados en instalaciones /06:8%V4; el cable <ivel 5 puede soportar velocidades de hasta ,0 2bps, <ivel C hasta /L 2bps, <ivel , $ <ivel / son los grados ba os $ m#s baratos, diseados inicialmente para voz $ transmisiones de ba a velocidad (menos de 5 2bps); stos no deberan usarse en el diseo de redes /06:8%V4! An cable %thernet A4> o /06:8%V4 utiliza una topologa de estrella! 7eneralmente un computador se ubica en un extremo del segmento, $ el otro extremo se conecta a un dispositivo centralizado, como un repetidor o hub (concentrador)! Ka que el cable A4> se instala frecuentemente unto con el cable telef&nico, esta ubicaci&n central puede ser el lugar donde se coloque el concentrador(es)! Los segmentos de cable A4> est#n limitados a /00 metros de longitud! $ecomendacin red C%/ Hecapitulando esta informaci&n se puede sugerir la siguiente estructura de red!

9ig!,L %structura recomendada de la red L:<! Tipo de cableado A4> <ivel C o superior *onector del cableado *onectores H\55! Tar?etas de red %thernet de /0 2bps o superior! :ub (*oncentrador" 0e 5 puertos o superior, depende de la cantidad de usuarios de la red! (rotocolo de red 4*>3B>, <etbios o B>D38>D

C onc entra dor

Ane&o (. So%tPare de programacin : base de datos utili,ada9 caractersticas generales. Las siguientes son las caractersticas generales del soft'are que se utilizo para desarrollar los programas que componen el sistema de envo de mensa es; se dan algunas caractersticas generales, venta as $ recursos del sistema, tanto de la base de datos $ el entorno de programaci&n! %stos datos fueron cedidos por el distribuidor del producto, 2icrosoft *orp, *olombia! +icroso4t %ccess & para Gindo=s($" @ #+0* !' :ccess -1 para los sistemas operativos Eindo's(H) -5 $ Eindo's <4(H) proporciona la eficacia de las bases de datos relacionales para facilitar la informaci&n que se necesita para tomar me ores decisiones! Bntegra datos de ho as de c#lculo $ otras bases de datos, $ constitu$e una forma f#cil de buscar respuestas, compartir informaci&n en redes internas (Bntranet) $ en Bnternet, $ construir soluciones de negocios m#s r#pidas! :ccess -1 permite generar, analizar $ crear informes! %s f#cil de utilizar desde la entrada de datos hasta la impresi&n en M42L! ?enta+as 4anto si es un usuario nuevo como si tiene conocimientos avanzados, esta base de datos relacional es eficaz $, a la vez, f#cil de utilizar! *aractersticas como el :sistente para :$uda facilitan la b"squeda de respuestas a preguntas acerca de la utilizaci&n de :ccess -1, $ a$uda a los usuarios a aprovechar al m#ximo sus herramientas de soft'are! *omparta peri&dicamente informaci&n con su entorno de traba o! :ccess -1 tiene varias caractersticas que integran las caractersticas de red, redes internas e Bnternet; adem#s,

!9$

0arcas registradas de 0icrosoft Corporation.

permite producir informes profesionales en papel, en lnea o en M42L! :ccess -1 es escalable! 0esde los negocios personales hasta las corporaciones! 4e;uisitos del sistema EquipoEprocesador >*, o >* multimedia, con procesador 5JL o superior! +emoria /, 26 para Eindo's(H) -5; /L 26 para Eindo's <4(H) EorNstation! %s posible que se requiera m#s memoria para e ecutar simult#neamente otras aplicaciones! 2isco duro 8e requiere ,JVL0 26 de espacio disponible en disco duro; se requiere 50 26 para la instalaci&n est#ndar, dependiendo de la configuraci&n (durante la instalaci&n, utilice el :sistente para actualizar 2icrosoft +ffice $ asG maximizar el espacio libre en disco)! Anidades e;ternas de almacenamiento Anidad de *0VH+2 (el *0VH+2 contiene 2icrosoft Bnternet %xplorer, controladores adicionales, archivos !avi $ sonidos no disponibles en los discos de Cm)! +onitor :daptador de vdeo I7: o de resoluci&n superior (se recomienda 8I7: a ,5L colores)! Sistema operati3o 8istema operativo 2icrosoft Eindo's -5 o 2icrosoft Eindo's <4 EorNstation C!5/ con 8ervice >acN 5, o posterior (no se e ecutar# en versiones anteriores)! (eri4FricosE9arios m&dem a -L00 baudios o m#s r#pido (se recomienda m&dem a /5500 baudios); la caracterstica >ublicar en el Eeb requiere 2icrosoft Bnternet Bnformation 8erver para 2icrosoft Eindo's <4 o 2icrosoft >ersonal Eeb 8erver para Eindo's -5! +icroso4t 9isual Basic @., #+0* !' Mace seis aos, 2icrosoft *orporation revoluciono la forma en que se creaban las aplicaciones! *on el sistema de programaci&n de Iisual 6asic, los programadores

pudieron, por primera vez, desarrollar r#pidamente aplicaciones para Eindo's! *omo resultado, tres millones de programadores est#n creando ahora aplicaciones mediante la tecnologa de 2icrosoft Iisual 6asic, con una productividad sin precedentes $ una facilidad de uso sin competencia! ?enta+as Las caractersticas avanzadas de Iisual 6asic 5!0, como la compilaci&n optimizada de c&digo nativo, el procesamiento m#s r#pido de formularios $ el acceso me orado a bases de datos, permiten a los programadores crear aplicaciones $ componentes r#pidos $ de alto rendimiento! Iisual 6asic 5!0 tambin le a$udar# a traspasar las nuevas fronteras tecnol&gicas, como Bnternet, sin abandonar el c&digo $ las capacidades de programaci&n existentes! 4e;uisitos del sistema EquipoEprocesador >* con procesador 5JL0D a LL 2Mz o superior (se recomienda un procesador >entium o superior) o un procesador :lpha con 2icrosoft Eindo's <4 EorNstation! +emoria /L 26 de H:2 en Eindo's -5; C, 26 en Eindo's <4 EorNstation 2isco duro Bnstalaci&n mnima? C5 26! Bnstalaci&n m#xima de todas las aplicaciones $ los libros en pantalla? C55 26! Anidad de almacenamiento e;terno Anidad de *0VH+2 +onitor :daptador gr#fico I7: o de ma$or resoluci&n! Sistema operati3o 2icrosoft Eindo's -5, 2icrosoft Eindo's <4 EorNstation versi&n 5!0 (se recomienda 8ervice >acN ,) o 2icrosoft Eindo's <4 EorNstation versi&n C!5/ con 8ervice >acN 5! (eri4FricosE3arios 2icrosoft 2ouse o dispositivo sealador compatible!

Ane&o ). Iua del 7suario

Sistema de En3-o de +ensa?es Buscapersonas

?ersin 1.B.B S*4?IDH4 $*4"INA/ D* 2AIINACIMN %l 4erminal de >aginaci&n es un equipo especializado para el envo de mensa es; este terminal ser# el encargado de distribuidor de dichos mensa es a los buscapersonas de los clientes! %n el siguiente gr#fico, se muestra la pantalla desplegada al usuario cuando el programa servidor es arrancado correctamente; es importante anotar, que sin este dispositivo no se pueden enviar mensa es a ning"n usuario; este programa deber# estar instalado en el servidor de la red!
Seguimiento del ser#idor /otn configurar )ndicador de conexin /otn reiniciar /otn terminal /otn salir

/otn iniciar

Seguimiento del Ser idor %n este cuadro se despliega mensa es, se esta informando constantemente acerca de la actividad que se realiza en el servidor del terminal de paginaci&n, esta informaci&n es mu$ "til, $a que indica acerca del buen o mal funcionamiento del terminal de paginaci&n! Indicador de Cone&in %sta pequea imagen en forma de Diodo *misor de Luz (L%0), posee , estados? $o?o ? *uando no se ha hecho o no se ha$a logrado terminar la secuencia de entrada! 9erde ? *uando se logra efectuar con xito la secuencia de entrada! Botn Iniciar %ste bot&n es utilizado para crear la conexi&n entre el 8ervidor $ el 4erminal de >aginaci&n, cuando es pulsado se inicia la secuencia de entrada, si la secuencia termina con xito el Bndicador de *onexi&n se coloca de color erde $ en el *uadro de 8eguimiento del 8ervidor se da el mensa e de O*one;in E4ectuadaP! Botn Con%igurar %ste bot&n establece las propiedades de comunicaci&n, para los 2uertos 1 : !, tales como? %l NTmero del 2uerto (*om/, *om,, *omC, etc!), la ?elocidad (-L00, /5500, /-,00, etc!), los Bits de Datos (5, L, J, etc!), la 2aridad (%ven, +dd, <one, 2arN, etc!), los Bits de 2arada (/, /!5, ,, etc!), si Habilita el puerto o no para lo que debe marcar,

por "ltimo el Control de Glu+o en el puerto de comunicaciones H8,C,! (Ier siguiente figura)!

Botn $erminal *uando es oprimido este bot&n, se e ecuta un programa secundario, el cual act"a como un terminal texto; ste se hace necesario, puesto que en algunos 2odelos de 4erminales de >aginaci&n, la configuraci&n se hace mediante un terminal que se encuentra conectada al puerto H8,C,! Botn 4einiciar :l oprimir este bot&n, ste vuelve a e ecutar la secuencia de entrada en el 4erminal de >aginaci&n, esto se hace en caso de que ocurra un error al iniciar la conexi&n $ el terminal se desconecte! Botn Salir %ste bot&n se debe oprimir cuando se desea abandonar el programa, cerrando el puerto de comunicaciones $ terminando la sesi&n de envo de mensa es! Importante 1 8i se cierra este programa, los mensa es no podr#n ser enviados al terminal de paginaci&n! 24HI4A"A "*NSAU*S %ste programa se utiliza para el envo de mensa es, una vez que se ha ingresado a la pantalla, se debe digitar el c&digo del usuario a quien se le desea enviar el mensa e, luego en el Campo de "ensa+es proceda a digitar & selecci&nelo de la ventana de "ensa+es Abre iados! La pr&xima pantalla se visualiza cuando el programa mensa es entra en funcionamiento, antes de que aparezca esta pantalla, se hace un chequeo de seguridad para verificar que el cliente que ingresa se encuentre debidamente registrado, si no lo est#, no tendr# acceso al sistema; este programa deber# estar instalado en los clientes de la red $ si se desea tambin podr# estar en el computador servidor!
0enB 3erramientas

'istado de 0enB abre#iados mensajes

Campo de mensaje 2ec3a y 3ora actual Campo de "ensa+e 0ensajes abre#iados

%n este campo es donde generalmente se sit"a el operario para enviar mensa es; para ello, debe digitar antes el c&digo $ luego el mensa e; cuando oprime la tecla %<4%H el sistema valida el c&digo del usuario $ si no se produce ning"n error, coloca el nuevo mensa e en la cola de mensa es del servidor! Gecha : Hora Actual *ampo informativo, visualiza la fecha $ hora actual del sistema! "ensa+es Abre iados Listado de todos los mensa es abreviados, para que el operador no tenga que memorizar cada uno de ellos $ pueda mediante el uso de la teclas correspondientes usar dichos mensa es, para esto solo tendra que marcar las teclas desde G1 hasta G1!! /istado de "ensa+es %ste control en forma de re illa, despliega informaci&n acerca de los mensa es en la cola del servidor, constantemente se actualizan los campos para indicar al operario que los mensa es $a han sido enviados! (Ier siguiente figura)! Cdigo ? 2uestra el c&digo del usuario al cual se ha enviado el mensa e! "ensa+e ? 4exto que ha sido enviado al buscapersonas! Indice ? <"mero consecutivo, es utilizado para indicar el n"mero de mensa es de los usuarios! *stado ? Bndica el estado de envo, o sea si el servidor ha enviado o no la misiva! Gecha Hora ? Bndica la fecha $ hora del envo del mensa e! *n o ? 8e refiere al n"mero de veces que se ha enviado un mensa e (se puede reenviar mensa es), en caso de que un mensa e sea reenviado este campo se incrementara autom#ticamente! Hperador ? *lave de operario que envi& el mensa e! "enT Abre iado %ste men" es utilizado para colocar mensa es abreviados en el campo de mensa e; generalmente ha$ frases que se repiten sucesivamente, por lo que dichos mensa es se colocan para que el operario tenga un r#pido acceso a ellos mediante las teclas de funci&n 9/ hasta 9/,! >or e emplo ? $*C/A G1 G# G( GO "*NSAU* 9:I+H LL:2:H : AH7%<4% 9:I+H BH >:8:H 4%2>H:<+

>ara proceder a digitar el valor a al tecla de control se debe ubicar en el campo donde se encuentran los 2ensa es :breviados $ luego hacer doble clip con el rat&n en la tecla de control que desee e inmediatamente aparece una pantalla donde debe digitar el contenido de sta! (Ier siguiente figura)!

"enT Herramientas %sta opci&n brinda al operario instrumentos para un me or desempeo en sus labores permitiendo hacer b"squedas por el nombre, el c&digo, enviar mensa e posfechados, colocar observaciones, etc! (Ier siguiente figura)!

7suario por Nombre & ;Ctrl = G1= ? %n caso de que un operario olvide el c&digo de un

usuario, podr# llevar a cabo la b"squeda por el nombre $ apellido de ste $ el sistema le brindara la informaci&n solicitada! (Ier siguiente figura)!

7suario por Cdigo & ;Ctrl = G!=? %sta herramienta ofrece informaci&n de un usuario partiendo de el c&digo del buscapersonas! (Ier siguiente figura)!

"ensa+es del Cdigo & ;Ctrl = G#= ? 8i ocurren circunstancias tales como que un

usuario via o $ no recibi& sus mensa es o tena apagado el equipo buscapersonas o se le agoto la batera, etc! el operador puede buscar los mensa es $ reenviarlos al respectivo usuario mediante este comando! (Ier siguiente figura)!

*n iar "ensa+es & ;Ctrl = G'= ? %sta opci&n se utiliza para el envo de mensa es, para

esto tendr# que digitar el c&digo del usuario e inmediatamente el sistema muestra en pantalla en nombre de sta, si el c&digo est# incorrecto, el sistema muestra un mensa e de error al respecto; despus de digitar el c&digo, se procede a digitar el mensa e, despus presione enter para que el mensa e sea enviado! (Ier siguiente figura)!

"ensa+es 2os%echados & ;Ctrl = G(=? 8i se desean programar mensa es a una determinada fecha $ hora, con una secuencia de tiempo en especial (das, horas $ minutos), de lunes a viernes o de lunes a domingo, se puede utilizar esta herramienta; as se puede recordar fechas importantes como aniversarios, cumpleaos, asuntos pendientes, etc! a un usuario en particular! (Ier siguiente figura)!

Hbser aciones & ;Ctrl = G)=? 8irve para colocar observaciones a los buscapersonas, para esto se debe digitar el c&digo del usuario e inmediatamente el sistema muestra en pantalla el nombre del usuario, luego debe digitar la observaci&n $ por "ltimo debe

oprimir el bot&n aceptar para proceder a enviar la observaci&n o el bot&n cancelar en caso de que $a no desee enviar dicha observaci&n!

24HI4A"A D* AD"INIS$4ACIMN %ste programa est# dirigido al administrador del sistema, permitiendo modificar, borrar, adicionar, etc!, los usuario, los operadores $ el mantenimiento de los buscapersonas! La pantalla que se muestra a continuaci&n corresponde al programa de administraci&n, antes de ingresar a sta, el sistema hace un chequeo de seguridad para verificar que el cliente que ingresa se encuentre debidamente registrado $ con permisos de administrador, si no lo esta no tendr# acceso al sistema! %n este programa se organizan las tareas correspondientes al administrador del sistema; este podr# estar instalado tanto en los clientes de la red como en el servidor!
0enB #entanas

0enB grupos

0enB 1pciones 0enB estad%sticas

0enB ayuda

"*NV I472HS %sta opci&n permite la administraci&n de los usuarios, operadores $ mantenimiento, se puede adicionar, borrar, modificar e imprimir reportes de estos elementos; en eventos del sistema se hace un seguimiento de los sucesos del sistema; configurar la impresora, permite tambin crear las preferencias de usuario para imprimir los informes; antes de salir, cierra el programa! Las siguiente son la opciones ? 7suarios : travs de esta opci&n se suministra la informaci&n general de los usuarios como nombres, direcci&n, telfono, etc!, los datos del buscapersonas, los datos tcnicos $ los datos de la cuenta! Las siguiente son la opciones ? In%ormacin Ieneral ? 8irve ingresar la informaci&n de los usuarios, se debe digitar el nombre, el apellido, la direcci&n, la profesi&n, la ciudad, el telfono de la casa $ el de la oficina, el n"mero del <it $ de donde, esto es, en caso de que dicho usuario lo tenga, luego las observaciones se requieran para el usuario $ por "ltimo las observaciones del operador! (Ier siguiente figura)!

Datos del Beeper (Buscapersonas) ? 8e utiliza para ingresar los datos del

buscapersonas, como el c&digo, el capcode (este debe ser de J dgitos), un c&digo auxiliar, la longitud del mensa e en caracteres, la marca, el modelo, la serie $ por "ltimo la fecha de venta! (Ier siguiente figura)!

Datos $-cnicos ? 8e suministran los datos tcnicos, como el formato del bloque,

marcar un chulo si es alfanumrico, lo mimo para la prioridad, tambin el puerto, el tipo de buscapersonas (>ocsag, 7ola$, etc!), la clase de buscapersonas (4ono, :lfanumrico, 4ono, etc!)! Datos de la Cuenta ? 8e suministra la informaci&n de los datos de la cuenta, como la clave para enviar, la clave para consultar, el tamao de la cola del mensa e, la cuenta activa (<o, 8i, 7ravar no enviar, etc!), el estado $ el plan! (Ier siguiente figura)!

Nota 1 %n la parte inferior de todas las opciones de 7suarios, aparece un campo donde si se requiere hacer una modificaci&n se debe colocar un chulo en el campo (ermite +odi4icar los 2atos, para as poder 2&ici!nar, 6orrar o Gra,ar la informaci&n, si requiere un listado de toda la infomaci&n solo tiene que oprimir el bot&n Listado, para abandonar la opci&n oprima el bot&n salir Hperadores 8e utiliza para ingresar la informaci&n del operador del sistema como los datos de ste, el operador $ la clave, los permisos $ asignar tareas! Las siguientes son las opciones ? Datos del Hperador ? 8irve ingresar la informaci&n del operador, para esto se debe digitar, el nombre, el apellido, la direcci&n, el telfono, la cdula de ciudadana $ las observaciones! (Ier siguiente figura)!

Hperador : Cla es ? 8e usa para cambiar el nombre $ la clave del operador, para esto

se debe digitar el nuevo nombre $ la nueva clave del ste! (Ier siguiente figura)!

la parte inferior de todas las opciones de Hperadores, aparece un campo donde si se requiere hacer una modificaci&n se debe colocar en el campo (ermite +odi4icar los 2atos, para as poder 2&ici!nar, 6orrar o Gra,ar la informaci&n, si requiere un listado de toda la infomaci&n solo tiene que oprimir el bot&n Listado, para abandonar la opci&n oprima el bot&n salir * entos %sta opci&n se utiliza para consultar los diferentes eventos que se dan en el sistema como las entradas a los diferentes programas, las consultas que se hacen por el c&digo del usuario, por el nombre, etc!, apareciendo una primer columna donde se visualiza la fecha $ hora en que se dio el evento, en la siguiente columna el c&digo del operador quien realizo el evento $ por "ltimo la descripci&n del evento! (Ier siguiente figura)!

"ensa+es : travs de esta opci&n se pueden hacer dos tipos de consultas, en la primera se puede consultar todos los que se encuentran en la cola de mensa es, mostrando el c&digo, descripci&n, fecha $ hora del mensa e, tambin el operador quien lo envi& $ el estado del mensa e! (Ier siguiente figura)!

%n la segunda opci&n se puede hacer consultas de los mensa es por operador, para esto solo tiene que digitar el c&digo del operador e inmediatamente se muestran todos lo mensa es enviado por dicho operador; mostrando igual que en la opci&n anterior el c&digo, descripci&n, fecha $ hora del mensa e, tambin el operador quien lo envi& $ el estado del mensa e! (Ier siguiente figura)!

Con%iguracin de la Impresora >or esta opci&n se puede definir la configuraci&n de la impresora, como ? 8eleccionar la impresora, tamao $ orientaci&n del papal, etc! (Ier siguiente figura)!

"*NV H2CIHN*S %ste men" permite crear preferencias del programa servidor, como son ? *olocar el c&digo del operador, colocar n"mero de mensa e; adem#s aqu se puede cambiar la clave del administrador si se desea! (Ier siguiente figura)!

Ser idor %sta opci&n se utiliza para definir el formato de los mensa es como el colocar el n"mero del mensa e $ del operador, si inicia autom#ticamente! (Ier siguiente figura)!

4ambin se puede cambiar la Cla e del Ser idor del servidor, para esto oprima el bot&n correspondiente, luego debe digitar el c&digo de la clave anterior, el c&digon de la nueva clave $ la confirmaci&n de la clave! %sta clave no se puede visulalizar en pantalla puesto que sta est# encriptada, solo muestra unos asteriscos! (Ier siguiente figura)!

Cambiar Cla e de Administracin %sta opci&n se utiliza para cambiar la clave del administraci&n, para esto se debe digitar el c&digo de la clave anterior, el c&digon de la nueva clave $ confirmaci&n de la clave! %sta clave no se puede visulalizar en pantalla puesto que sta est# encriptada, solo muestra unos asteriscos! (Ier siguiente figura)!

Cambiar Base de Datos Administracin 8e usa para cambiar de base de datos, antes el sistema muestra un mensa e donde pide confirmar si realmente desea cambiar de base de datos, $a que esto implica volver a iniciar la aplicaci&n! (Ier siguiente figura)!

"*NV *S$ADIS$ICAS 8e puede producir informaci&n del envo de mensa es $ representarla en diferentes tipos de gr#ficos (pastel, barras, logartmico, lneas, etc!), se pueden tener los siguientes informes? 2or mes del ao ? %n este reporte se toman todos los mensa es $ se discriminan por meses, >ara luego aplicar la siguiente f&rmula ?

" , donde n es la cantida de mensa es $ x es el mensa e correspondiente al mes, o


i= 1

sea que se suman los mensa es correspondientes al mes $ se grafica dicho resultado! 2or da del mes ? se toma del / al C/ de cada mes, luego se saca el promedio de cada da del mes, para ser representados en una gr#fica escogida por el usuario! 2or da de la semana ? en esta estadstica se toman los das discriminados de lunes a domingo, sumando $ promediando los mensa es correspondiente a ese da, luego se gr#fica en la opci&n escogida por el usuario! 2or hora del da ? ahora se divide el da en sus ,5 horas, nuevamente se suma $ promedian los mensa es de cada hora $ luego se gr#fica!

Nota 1 4odos estos informes se pueden imprimir, grabar en un formato gr#fico o copiar para la edici&n en un programa independiente! %stos reportes dan al administrador una idea del trafico del terminal de paginaci&n $ as en momentos de menor trafico puede programar labores de mantenimiento, reparaci&n, calibraci&n o cambio de equipos del sistema, afectando a la menor cantidad de usuarios $ por lo tanto manteniendo un servicio mas confiable! "*NV ?*N$ANAS >ermite hacer comandos propios del sistema operativo como organizar ventanas o ver las ventanas que ha$ abiertas en ese momento en el programa! "*NV AW7DA 2uestra la pantalla O:cerca de !!!P, de la aplicaci&n ! 24HI4A"A S*4?IDH4 D*/ "MD*" La pantalla mostrada a continuaci&n corresponde al programa del servidor del m&dem, en este se habilita para que usuarios externos (conectados va m&dem) puedan enviar mensa es desde un computador externo a la red L:<; este programa deber# estar instalado en el servidor de la red!

/otn comenzar

Botn Comen,ar *uando es oprimido, el programa enva las cadenas de inicializaci&n al m&dem $ se queda en modo de espera hasta que llegue un usuario, cuando el usuario finaliza la sesi&n de envo de mensa es, el programa autom#ticamente vuelve a enviar las cadenas de inicializaci&n para quedar de nuevo en modo de espera! Botn Ginali,ar *ierra la comunicaci&n con el m&dem $ sale del programa Seguimiento del Ser idor %n este cuadro en el cual se despliega texto, constantemente se esta informando acerca de la activada que se realiza en el servidor del m&dem, esta informaci&n es mu$ "til $a que peri&dicamente indica del buen o mal funcionamiento del servidor del m&dem al administrador del sistema! Importante 1 8i este programa no est# corriendo, los usuarios externos no podr#n ingresar al sistema para enviar sus mensa es! %l m&dem deber# estar encendido apropiadamente, conectado a una lnea telef&nica $ configurado adecuadamente en su sistema!

Seguimiento del ser#idor

4e%erencias ;2+4-L= 2+4+H+L:, Bnc! 4elocator :lphanumeric >rotocolo! %dici&n electr&nica, %nero /1 de /--L! ;2+4-1= 2+4+H+L:, Bnc! 4elocator <et'orN >aging >rotocol (4<>>)! %dici&n electr&nica, 8eptiembre J de /--1! ;*+<-1= *+<7H%8+ 0% 6A8*:>%H8+<:8 >:H: L:4B<+:2nHB*: K %L *:HB6%, 2iami 6each, 9lorida, <oviembre de /--1! ;L:8-L= L:88+, 9ernando! 2anual de %thernet, 8BD, 8!L! >aseo 2arqus de @afra, 55 ,J0,J 2:0HB0 (%8>:o:)! /--L! ;6H:-1= 6H:0L%K, 0$e! >aging products 7roup, 2essaging, Bnformation and 2edia 8ector! 2otorola, Bnc! %dici&n %lectr&nica! /--1! ;2B*-J= 2B*H+8+94, Bnc, Heferencias de productos +ffice $ 6acN+ffice! %dici&n %lectr&nica! /--J!

;@%4-1= @%4H+<, Bnc, *aractersticas del modelo /L codificador alfanumrico! 2anual de referencia al usuario! /--1! ;2AL-L= 2AL4BV4%*M, 8$stems, Bnc, Heference guide, 2ulti2odem for fax ^ C!, data transmission, ,,05 Eoodale 0rive 2ounds Iie' A!8!:! /--L!

4e%erencias Bibliogr8%icas >H%882:<, Hoger 8! Bngeniera del soft'are, un enfoque practico! C ed! 2adrid %spaa? 2c7ra' Mill, /--5! 2*TB<<%K, 6ruce! >rogramaci&n avanzada en Iisual 6asic! 2adrid %spaa? 2c7ra' Mill, /--L! B<84B4A4+ *+L+26B:<+ 0% <+H2:8 4n*<B*:8 K *%H4B9B*:*BU<! 4esis $ otros traba os de grados? *ompendio! 8antaf de 6ogot#? B*+<4%*, /--L! 2n<0%@ pLI:H%@, *arlos %duardo! 2etodologa? 7ua para elaborar diseos de investigaci&n en ciencias econ&micas, contables $ administrativas, , ed! 8antaf de 6ogot#? 2c7ra' Mill, /--5!

DIS*XH * I"2/*"*N$ACIMN D*/ SIS$*"A A7$H"A$I>ADH D* *N?IH D* "*NSAU*S9 D*SD* 7NA C*N$4A/ D* B7SCA2*4SHNAS "AN*UADA *N 7NA 4*D /AN.

4ICA4DH CA4DHNA 4A"I4*>

7NI?*4SIDAD NACIHNA/ D* CH/H"BIA S*D* "ANI>A/*S GAC7/$AD D* INI*NI*4IA W A4K7I$*C$74A INI*NI*4IA */*C$4HNICA /IN*A D* 24HG7NDI>ACIMN *N A7$H"A$I>ACIMN W CHN$4H/ 1OON

DIS*XH * I"2/*"*N$ACIMN D*/ SIS$*"A A7$H"A$I>ADH D* *N?IH D* "*NSAU*S9 D*SD* 7NA C*N$4A/ D* B7SCA2*4SHNAS "AN*UADA *N 7NA 4*D /AN.

4ICA4DH CA4DHNA 4A"I4*> DI4*C$H4 1 INI. HSCA4 "A4INH DIA> $raba+o de grado en la modalidad de 2ro:ecto Ginal

7NI?*4SIDAD NACIHNA/ D* CH/H"BIA

S*D* "ANI>A/*S GAC7/$AD D* INI*NI*4IA W A4K7I$*C$74A INI*NI*4IA */*C$4HNICA /IN*A D* 24HG7NDI>ACIMN *N A7$H"A$I>ACIMN W CHN$4H/ 1OON

$abla de contenido
* +ESC%IPCI,( +EL P%-.LE A//////////////////////////////////////////////////////////////////////////////////////////////////////////////* 2 A%C- TE,%IC-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0 2.1 S)S-E0.S /(SC.PE9S1".S........................................................................................................................< 2.1.1 Componentes de un Sistema de buscapersonas.................................................................................#
2.1.1.1 2uente de entrada......................................................................................................................................; 2.1.1.2 E7uipos de -ransmisin y -erminal de paginacin...................................................................................; 2.1.1.& /uscapersonas...........................................................................................................................................;

2.1.2 $lgunos protocolos del sistema buscapersonas................................................................................%


2.1.2.1 Colay !1@?&$ D/9.@;E..............................................................................................................................@ 2.1.2.2 P1CS.C !1@?1$ D/9.@;E........................................................................................................................@ 2.1.2.& E90ES !1@@:$ D/9.@;E........................................................................................................................1:

2.1.3 Topologas de redes en sistemas buscapersonas.............................................................................1&


2.1.&.1 -opolog%a local........................................................................................................................................1: 2.1.&.2 -opolog%a 9egional, "acional e )nternacional.........................................................................................11 2.1.&.2.1 Configuracin Simplex....................................................................................................................11 2.1.&.2.2 Configuracin duplex......................................................................................................................12 2.1.&.2.& Configuracin en cadena.................................................................................................................12 2.1.&.2.+ Configuracin en anillo...................................................................................................................1& 2.1.&.2., Configuracin en estrella.................................................................................................................1& 2.1.&.2.< En#%o de mensajes utilizando sat lites.............................................................................................1+

2.2 P91-1C1'1 6E C10(")C.C)F" 6E' -E90)".' 6E P.C)".C)F" D01-@<E...........................................1+ 2.2.1 Secuencia de entrada ( ogon!.........................................................................................................1' 2.2.2 Secuencia de trans(erencia de datos...............................................................................................1#
2.2.2.1 Estructura de la secuencia de transferencia de datos ...............................................................................1; 2.2.2.1.1 Para el modo de base de datos interna.............................................................................................1; 2.2.2.1.2 Para el modo de paginacin completa.............................................................................................1?

2.2.2.1.& El comando G9econocidoH.............................................................................................................1? 2.2.2.1.+ Calculo del c3ec8sum......................................................................................................................1? 2.2.2.1., Ejemplo de Gc3ec8sumH.................................................................................................................1? 2.2.2.1.< (n sencillo programa para calcular el c3ec8sum.............................................................................1@

2.2.3 Secuencia de descone"in................................................................................................................1) 2.2.* +jemplo de transaccin ..................................................................................................................2& 3 A(1LISIS2 +ISE3- 4 +ESA%%-LL- +E LA S-LUCI,(/////////////////////////////////////////////////////////////////25 &.1 ."I')S)S 6E 9EJ()S)-1S 6E' S)S-E0., 6E' S12-K.9E, L C1"S)6E9.C)1"ES P.9. E' 016E'F /.SE .......................................................................................................................................................................21 3.1.1 ,denti(icacin de las necesidades....................................................................................................21
&.1.1.1 2ines generales del sistema......................................................................................................................22 &.1.1.2 2uncionamiento y rendimiento re7ueridos...............................................................................................22 &.1.1.& -ecnolog%a re7uerida y disponible...........................................................................................................2& &.1.1.+ -ipos de configuraciones, en la conexin al terminal de paginacin.......................................................2+ &.1.1.+.1 Conexin directa.............................................................................................................................2+ &.1.1.+.2 Conexin a tra# s de mdem y l%nea telefnica...............................................................................2, &.1.1.+.& Conexin directa con un cliente externo..........................................................................................2< &.1.1.+.+ Conexin a un )SP !)nternet Ser#ice Pro#ider$................................................................................2< &.1.1.+., Comparacin entre las diferentes posibilidades de conexin...........................................................2?

&.2 6E2)")C)F" 6E' 016E'F 6E '. ES-9(C-(9. 6E' S)S-E0...................................................................2@ 3.2.1 -ase de datos...................................................................................................................................2)
&.2.1.1 E#entos del sistema ................................................................................................................................&: &.2.1.2 0antenimiento........................................................................................................................................&1 &.2.1.& 0ensajes..................................................................................................................................................&1 &.2.1.+ 1peradores..............................................................................................................................................&2 &.2.1., Sistema....................................................................................................................................................&& &.2.1.< (suarios..................................................................................................................................................&+

3.2.2 Mdulo de administracin..............................................................................................................3' 3.2.3 Mdulo cliente.................................................................................................................................3# 3.2.* Mdulo de comunicacin . terminal de paginacin.......................................................................3# 3.2.' Mdulo de comunicacin / cliente e"terno......................................................................................30 &.& ESPEC)2)C.C)1"ES ESPEC).'ES................................................................................................................&? 3.3.1 Protocolo de comunicacin entre el ser1idor 2 un cliente e"terno.................................................3)
&.&.1.1 Comandos del mdem.............................................................................................................................&@ &.&.1.2 Cadenas de inicializacin........................................................................................................................&@ &.&.1.& Cadena de desconexin...........................................................................................................................+: &.&.1.+ Secuencia de ingreso...............................................................................................................................+: &.&.1., -ransferencia de mensajes.......................................................................................................................+1 &.&.1.< Secuencia de desconexin.......................................................................................................................+1

&.&.1.; Ejemplo de en#%o de mensajes desde un cliente externo..........................................................................+2

&.+ 2'(M1 6E )"2190.C)F" E"-9E '1S 0F6('1S 6E C10(")C.C)F"........................................................+& &., .'C19)-01S (-)')N.61S P.9. E' C1"-91' 6E '.S C10(")C.C)1"ES...............................................++ 3.'.1 $lgoritmos de control de comunicaciones con el terminal de paginacin......................................*'
&.,.1.1 .lgoritmo para la secuencia de entrada al terminal de paginacin...........................................................+, &.,.1.2 .lgoritmo para la secuencia de en#%o de mensajes..................................................................................+;

3.'.2 $lgoritmos de control de comunicaciones del mdulo del cliente e"terno.....................................*)


&.,.2.1 .lgoritmo para la secuencia de ingreso para un cliente externo..............................................................,: &.,.2.2 .lgoritmo para la secuencia de en#%o de mensajes desde un cliente externo...........................................,:

&.< C16)2)C.C)F"..........................................................................................................................................,& 3.#.1 Tipo de lenguaje utili3ado 2 4erramientas utili3adas......................................................................'3 3.#.2 Cdigo (uente...................................................................................................................................'3 C-(CLUSI-(ES///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////66 A(E7- A/ C,+I$- !UE(TE/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////68
0dulos comunes..............................................................................................................................................,? 0dulo de comunicacin..............................................................................................................................,? Programa de administracin...............................................................................................................................<2 0dulo mdl.dmin........................................................................................................................................<2 2orma mdiPrincipal......................................................................................................................................<+ 2orma frmgrd(suarios..................................................................................................................................;? 2orma frm)mp(suarios.................................................................................................................................?& 2orma frm'ogin............................................................................................................................................@: 2orma frm'oginS.........................................................................................................................................@2 2orma frm0antenimiento.............................................................................................................................@& 2orma frm1peradores...................................................................................................................................@@ 2orma frmSplas3.........................................................................................................................................1:, 2orma frm(suarios.....................................................................................................................................1:< 2orma CrOfico............................................................................................................................................112 Programa mensajes...........................................................................................................................................11+ 0odulo principal.........................................................................................................................................11+ 2orma frm'ogin..........................................................................................................................................11, 2orma frm0ensajes....................................................................................................................................11; 2orma frm1bser#aciones............................................................................................................................1&< 2orma frmSplas3.........................................................................................................................................1+: Programa ser#idor del cliente externo..............................................................................................................1+: 2orma frm0odem.......................................................................................................................................1+: Programa ser#idor del terminal de paginacin..................................................................................................1,2 0odulo 0odSer#idor..................................................................................................................................1,2 2orma frmSplas3S......................................................................................................................................1,2

2orma frmPrincipal ....................................................................................................................................1,2

A(E7- */ TA.LA ASCII ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////*09 A(E7- 2/ C- A(+-S AT///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////*06 CF01 (S.9 '1S C10."61S .- ..............................................................................................................1<, 9E2E9E"C). 6E C10."61S .- 6E 0F6E0 D0('@<E ...........................................................................1<< 9E2E9E"C). 6E C10."61S 6E' 9EC)S-91 S D0('@<E...........................................................................1;: A(E7- 3/ CA%ACTE%:STICAS +EL TE% I(AL +E PA$I(ACI,(2 ;ET%-( -+EL- *0

C-+I!ICA+-% AL!A(U <%IC-///////////////////////////////////////////////////////////////////////////////////////////////////////////*=9 S1P19-E .' P91-1C1'1 -.P DNE-@;E.....................................................................................................1;+ C.9.C-E9PS-)C.S CE"E9.'ES -.P DNE-@;E............................................................................................1;, A(E7- 9/ %EC- E(+ACI,( +EL >A%+?A%E PA%A L-S C- PUTA+-%ES CLIE(TE 4 SE%@I+-%2 4 LA %E+ LA(///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////*=0 C1"2)C(9.C)F" SE9Q)619 !2 (S(.9)1S$ .................................................................................................1;< Con(iguracin de ' a 1& usuarios para el ser1idor...............................................................................100 C1"2)C(9.C)F" C')E"-E ..........................................................................................................................1;? C1"2)C(9.C)F" 9E6 '." D'.S@<E..........................................................................................................1;? Cableado 2 Topologas 5 $S)#6...........................................................................................................10) Tipos de redes +t4ernet 5 $S)#6..........................................................................................................10) 9EC10E"6.C)F" 9E6 '.".......................................................................................................................1?: A(E7- 6/ S-!T?A%E +E P%-$%A ACI,( 4 .ASE +E +AT-S UTILI;A+A2 CA%ACTE%:STICAS $E(E%ALES//////////////////////////////////////////////////////////////////////////////////////////////////////////*82 0)C91S12- .CCESS @; P.9. K)"61KS9$ @, D0)C@?E...........................................................................1?2 7entajas ................................................................................................................................................1%2 8e9uisitos del sistema............................................................................................................................1%3 0)C91S12- Q)S(.' /.S)C ,.: D0)C@?E....................................................................................................1?& 7entajas.................................................................................................................................................1%* 8e9uisitos del sistema............................................................................................................................1%* A(E7- 0/ $U:A +EL USUA%I-/////////////////////////////////////////////////////////////////////////////////////////////////////////////*86 %E!E%E(CIAS/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////*A= %E!E%E(CIAS .I.LI-$%1!ICAS////////////////////////////////////////////////////////////////////////////////////////////////////////*A= TA.LA +E C-(TE(I+-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////*AA

También podría gustarte