Universidad de Buenos Aires - Facultad de Ciencias Econmicas
Licenciatura en Sistemas de Informacin de las Organizaciones
TEO!A "E LE#$UA%ES & SISTE'AS O(EATI)OS * +, (ACIAL (I'E * CUATI'ESTE -../ LEA ATE#TA'E#TE LA TOTALI"A" "EL E#U#CIA"O A#TES "E CO'E#0A Fec1a2 4 de mayo de 2007 #om3re 4 A5ellido..egistro...... Una empresa desea agilizar el pedido y entrega de elementos de trabajo, y para eso implementar un sistema que permitir la creacin, aprobacin y recepcin de solicitudes. a in!ormacin que manejar entonces este sistema a construir ser la siguiente. "e cada usuario del sistema se usan los siguientes datos# $ombre de usuario %tipo caracter&. 'la(e de )ngreso %tipo caracter&. $ombre del Usuario que aprueba sus solicitudes. *l sistema tiene capacidad para cargar +asta ,00 usuarios, administrados por un sistema e-terno. "e cada solicitud se guardan los siguientes datos, todos obligatorios# 'digo %lo ingresa el usuario, tipo caracter&. "escripcin de lo que solicita %tipo carcter&. 'antidad %entre 0.000. y .000000, aceptando decimales&. Usuario creador de la solicitud. Usuario que debe aprobar la solicitud. *stado de la solicitud %/01 solicitada, /21 aprobada, o /31 recibida&. *l sistema tiene capacidad para cargar +asta 40000 solicitudes. Guin de usuario: .. 2l iniciarse el sistema realizar una carga inicial de los datos que necesita para trabajar y los que se pudieran +aber cargado en ejecuciones anteriores del mismo. *05* 6U$57 82 *052 "*023372"7. 2. uego le pedir al usuario nombre y cla(e, tantas (eces como sea necesario para que coincida con un usuario del sistema, de(ol(iendo la !ila del usuario ingresado. *05* 6U$57 82 *052 "*023372"7. ,. uego presentar un men9 para elegir# crear una solicitud %opcin /'1&, aprobar solicitudes %opcin /21&, recibir solicitudes %$7 "*0233723, opcin /31& o salir %opcin /01&. 4. 0i el usuario elige la opcin de salir, el sistema realizar un guardado !inal de toda la in!ormacin que agrega o modi!ica. :U23"2"7 ;)$2 82 "*023372"7. 4. )ngresando en la creacin de solicitudes# a. *l sistema comenzar por buscar una posicin libre para cargarla# en caso de no e-istir una posicin libre, in!ormar al usuario y (ol(er directamente al men9 principal. b. uego pedir el cdigo de la nue(a solicitud. 6resentar errores y (ol(er a pedirlo cuantas (eces sean necesarias +asta que lo ingresado no sea (ac<o ni repita el cdigo de otra solicitud ya ingresada. c. 6edir la descripcin de lo que el usuario solicita %por ej. una pizarra para marcadores&. d. 6edir la cantidad a solicitar %entre 0.000. y .000000, aceptando decimales&. e. 2lmacenar el nombre de usuario del creador, el de su aprobador, el estado de la solicitud %/01& y todos los datos de la solicitud que no se +ayan guardado +asta a+ora, dejndola completa. =ec+o esto, presentar en pantalla el cdigo de solitud guardada y (ol(er al men9 principal. >. )ngresando en la aprobacin de solicitudes# a. 0i no +ay solicitudes en estado /01 cuyo aprobador sea el usuario actual, in!ormar de esta situacin en pantalla y (ol(er al men9 principal. *n caso contrario, presentar cdigo, descripcin, cantidad y creador de esas solicitudes en pantalla, mientras se pide el cdigo de solicitud a aprobar, como se muestra a continuacin# b. ?alidar que la solicitud elegida e-ista. *n caso contrario presentar un mensaje y (ol(er al men9 principal. uego (alidar que est@ esperando aprobacin, y que su aprobador sea el usuario actual. *n caso contrario presentar un mensaje de error y (ol(er al men9 principal. c. uego de esto el estado de la solicitud se pasa a /21 y se indica en pantalla que la solicitud se aprob, con su respecti(o cdigo. Se pide: a& 'ompletar las llamadas a los procedimientos comprendidos en 'ommandAutton.B'licC%& b& "esarrollar el procedimiento 'rear0olicitud y 2probar0olicitud, con todas las !unciones y procedimientos de ni(el in!erior que considere necesarias para el mismo. Consideraciones: 5odos los ingresos deben de ser (alidados.%que $7 sean (acios y $7 esten !uera de los rangos permitidos&. "eben utilizarse las !uncionalidades pre(iamente desarrolladas. Extracto del cdigo desarrollado hasta el momento: Option Explicit Option Base 1 Const kiUsuarios As Integer = 300 Const klSolicitudes As Long = 50000 Const kstrOpcCSolic As String = C Const kstrOpcASolic As String = A Const kstrOpc!Solic As String = ! Const kstrOpcSalir As String = S Const kstrEstadoSolic As String = S Const kstrEstadoApro" As String = A Const kstrEstado!eci" As String = ! Const ksCant#in As Single = 0$0001 Const ksCant#ax As Single = 1000000 %ri&ate '(pe t)Usuario str*o+"re As String strCla&e As String strApro"ador As String End '(pe %ri&ate '(pe t)Solicitud strCodigo As String str,escripcion As String sCantidad As Single strCreador As String strApro"ador As String strEstado As String End '(pe %ri&ate Su" Co++andButton1)Click-. ,i+ tuUsuarios-kiUsuarios. As t)Usuario ,i+ tsSolicitudes-klSolicitudes. As t)Solicitud ,i+ i/ilaUsuario As Integer ,i+ strOpcion As String Call CargaInicial-$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$. i/ilaUsuario = i%ideUsuario-$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$. ,o strOpcion = str%ideString-kstrOpcCSolic 0 1 Crear Solicitud ) 0 C2r-13. 0 kstrOpcASolic 0 1 Apro"ar Solicitud ) 0 C2r-13. 0 kstrOpc!Solic 0 1 !eci"ir lo 3ue Solicit4 ) 0 C2r-13. 0 kstrOpcSalir 0 1 Salir.
Select Case strOpcion Case kstrOpcCSolic Call CrearSolicitud-$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$. Case kstrOpcASolic Call Apro"arSolicitud-$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$. Case kstrOpc!Solic Call !eci"irSolicitud-$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$. Case kstrOpcSalir Case Else #sgBox -Opci4n In&5lida. End Select Loop Until strOpcion = kstrOpcSalir Call 6uardado/inal-$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$. End Su" %ri&ate /unction str%ideString-B(7al strCartel As String. As String 87alida 3ue no se 2a(a ingresa un &acio$ ,o str%ideString = UCase-InputBox-strCartel.. I9 str%ideString = '2en #sgBox -,e"e ingresar alg:n dato. End I9 Loop Until str%ideString ;< End /unction