Está en la página 1de 11

UNIVERSIDAD ABIERTA INTERAMERICANA

CATEDRA: LENGUAJES DE PROGRAMACIÓN PARA LA ADMINISTRACIÓN

TITULAR: Ing SABATO

TRABAJO PRACTICO INDIVIDUAL

CONTROL PARA DETERMINAR EL I.M.C.

Autor: Ernesto Luis Deffis , 5to año Ing. Sistemas – 2003 – UAI Sede Boulogne 1
INDICE

1. Descripción del trabajo

2. Aplicaciones

3. Características

4. Especificaciones Técnicas

5. Código

6. Demostración y pruebas

Autor: Ernesto Luis Deffis , 5to año Ing. Sistemas – 2003 – UAI Sede Boulogne 2
1 - Descripción del componente

En 1869, en Francia se ideó una medida que se llamó Indice de Masa Corporal
(IMC), pero su aceptación masiva solo se produjo en el siglo XX. Actualmente se
lo considera un indicador muy importante para diagnóstico de obesidad.

El componente descripto en el presente trabajo permite el cálculo de dicho


indicador en función de los valores de peso y altura de un paciente mayor de 18
años indicando 4 niveles de riesgo de trastornos de la salud.

2 - Aplicaciones

El IMC se trata de un indicador complementario para análisis clínico de pacientes.


Muy utilizado para seguimiento de actividades deportivas
En Recursos Humanos es un parámetro de selección para personal afectado a
actividad física relevante en sus tareas.

Se deja aclarado que en todos los casos de su utilización para diagnósticos, debe
ser manejado por profesionales y como indicador-complemento de otros análisis y
estudios médicos.

3 – Características del componente

El componente del presente trabajo ha sido creado e instanciado, para su prueba,


en un entorno de programación visual basado en objetos: Visual Basic 6.0.

Su utilización por usuarios finales es aplicable a soft medico y de RRHH, a los


cuales debe integrarlo un programador.

La pantalla presenta dos textbox para ingresar peso y altura, un textbox que
muestra el IMC calculado y otro textbox que muestra el diagnóstico a cada
paciente ingresado. Para cada uno de estos niveles de riesgo se cambia el color
de fondo del text box según el nivel de riesgo, enmarcado en un frame.
Los botones de comando para operar son tres: para calcular, para limpiar los
textbox y para salir de la aplicación.

Autor: Ernesto Luis Deffis , 5to año Ing. Sistemas – 2003 – UAI Sede Boulogne 3
4 - Especificaciones Técnicas

Los controles son objetos, que incluyen elementos gráficos y código, reutilizables;
esto es porque encapsulan la interfaz del usuario y la lógica del proceso en un
componente de soft pudiéndo así reutilizarse fácilmente.

En el presente trabajo se creó un objeto usercontrol ctl_imc con módulos de


código y elementos visuales y ha sido instanciado como ctl_imc1 en un formulario
form_imc ; ambos proyectos integrados en el grupo_imc.

4 a - Propiedades

Mediante el código apropiado se encapsulan las propiedades para que puedan ser
utilizadas por el usuario fuera del control.
Al recorrer la ejecución con F8 se verá los procedimientos Property Get (para leer
el valor de la variable y asignarlo a la propiedad) y Property Let (para establecer el
valor de la propiedad al nuevo valor asignado por el usuario y pasar el valor de la
variable a la propiedad) .
El procedimiento se completa con ReadProperties y WriteProperties.

El usercontrol es un objeto que se va creando y destruyendo porque pasa las


etapas de diseño y ejecución cuando se instancia repetidas veces en el formulario,
estos procedimientos se disparan a los efectos que podamos guardar en memoria
los valores de las propiedades para que no se pierdan (son persistentes).
Las propiedades son las siguientes:

PESO, del paciente


ALTURA, del paciente
IMC, resultante de (peso / (altura ^2))

4 b - Métodos

Son las acciones que realiza el objeto ctl_imc.


Para crearlos se establecen los procedimientso Public Function en el código del
usercontrol.

Los métodos son los siguientes:


CALCULO, donde se realiza el cálculo propiamente dicho, la validación de entrada
y el llamdo a eventos.
LIMPIAR, permite borrar la pantalla para efectuar una nueva entrada de datos (ya
sea por validación o por nuevo cálculo requerido).

Autor: Ernesto Luis Deffis , 5to año Ing. Sistemas – 2003 – UAI Sede Boulogne 4
4 c - Eventos

Los eventos notifican al formulario, en el que está instanciado el ctl_imc, que se ha


producido una acción que resulta del cálculo que se realiza dentro del método del
usercontrol.

NORMAL, responde a una tabulación de valores posibles del IMC


RIESGOSO, idem anterior.
MUYRIESGOSO, idem anterior.
PELIGROSO, idem anterior.
FALTAPARAMETRO, notifica sobre la inconsistencia o ausencia de datos de
entrada.

4 d – Pantallas en tiempo de diseño ( del usercontrol y del formulario).

Autor: Ernesto Luis Deffis , 5to año Ing. Sistemas – 2003 – UAI Sede Boulogne 5
Autor: Ernesto Luis Deffis , 5to año Ing. Sistemas – 2003 – UAI Sede Boulogne 6
5 a - Código del Control, mediante el asistente para creación de controles.
Al mismo se le agregó el código correspondiente a los métodos CALCULO y
LIMPIAR.

'Event Declarations:
Event normal()
Event riesgoso()
Event muyriesgoso()
Event peligroso()
Event faltaparametro()

'ADVERTENCIA: NO QUITAR NI MODIFICAR LAS SIGUIENTES LINEAS CON


COMENTARIOS
'MappingInfo=txtpeso,txtpeso,-1,Text
Public Property Get peso() As String
peso = txtpeso.Text
End Property

Public Property Let peso(ByVal New_peso As String)


txtpeso.Text() = New_peso
PropertyChanged "peso"
End Property

'ADVERTENCIA: NO QUITAR NI MODIFICAR LAS SIGUIENTES LINEAS CON


COMENTARIOS
'MappingInfo=txtaltura,txtaltura,-1,Text
Public Property Get altura() As String
altura = txtaltura.Text
End Property

Public Property Let altura(ByVal New_altura As String)


txtaltura.Text() = New_altura
PropertyChanged "altura"
End Property

'ADVERTENCIA: NO QUITAR NI MODIFICAR LAS SIGUIENTES LINEAS CON


COMENTARIOS
'MappingInfo=txtIMC,txtIMC,-1,Text
Public Property Get imc() As String
imc = txtIMC.Text
End Property

Public Property Let imc(ByVal New_imc As String)


txtIMC.Text() = New_imc
PropertyChanged "imc"
End Property

Autor: Ernesto Luis Deffis , 5to año Ing. Sistemas – 2003 – UAI Sede Boulogne 7
'ADVERTENCIA: NO QUITAR NI MODIFICAR LAS SIGUIENTES LINEAS CON
‘COMENTARIOS 'MemberInfo=14
' -------------------------------METODO CALCULO
Public Function calculo() As Single
If (Val(txtpeso) <= 0) Or (Val(txtaltura) <= 0) Then
RaiseEvent faltaparametro
txtpeso = ""
txtaltura = ""
txtpeso.SetFocus
Else
'
calculo = (CSng(peso) / (CSng(altura) ^ 2))
txtIMC = calculo
Select Case calculo
Case Is > 40: RaiseEvent peligroso
Case 30 To 39.99: RaiseEvent muyriesgoso
Case 25 To 29.99: RaiseEvent riesgoso
Case 20 To 24.99: RaiseEvent normal
Case Is < 20: RaiseEvent faltaparametro
End Select
End If ' es del if de comprobacion de valores * no quitar *
End Function

'ADVERTENCIA: NO QUITAR NI MODIFICAR LAS SIGUIENTES LINEAS CON


COMENTARIOS 'MemberInfo=14
' ---------------------------------METODO LIMPIAR
Public Function limpiar() As Variant
txtpeso = ""
txtaltura = ""
txtIMC = ""
txtpeso.SetFocus
End Function

'Cargar valores de propiedad desde el almacén


Private Sub UserControl_ReadProperties(PropBag As PropertyBag)
txtpeso.Text = PropBag.ReadProperty("peso", "")
txtaltura.Text = PropBag.ReadProperty("altura", "")
txtIMC.Text = PropBag.ReadProperty("imc", "")
End Sub

'Escribir valores de propiedad en el almacén


Private Sub UserControl_WriteProperties(PropBag As PropertyBag)
Call PropBag.WriteProperty("peso", txtpeso.Text, "")
Call PropBag.WriteProperty("altura", txtaltura.Text, "")
Call PropBag.WriteProperty("imc", txtIMC.Text, "")
End Sub

Autor: Ernesto Luis Deffis , 5to año Ing. Sistemas – 2003 – UAI Sede Boulogne 8
5 b - Registración del control en Microsoft

Para compilar el control creado desplegar el menu file del entorno de


programación.

Elegir make ctl_imc.ocx y aceptar. Cuando VB termina la compilación el nuevo


control Activex se habrá registrado en Windows y por lo tanto estará disponible
para que se use con cualquier lenguaje o aplicación Activex.

Para verificar el registro y que está disponible para su uso, se hace clic con botón
derecho sobre el Cuadro de herramientas y elegir components, el control estará en
cuadro de herramientas preparado para añadirlo en cualquier aplicación VB o en
el diseño de una página WEB.

Autor: Ernesto Luis Deffis , 5to año Ing. Sistemas – 2003 – UAI Sede Boulogne 9
5 c - Código del Formulario.
Comprende los procedimientos para tratar los eventos declarados en el control, la
llamada al método y la salida del programa.

Option Explicit

Private Sub cmdCalcular_Click()


ctl_imc1.calculo
End Sub

Private Sub cmdLimpiar_Click()


ctl_imc1.limpiar
txtDiagnostico = " "
txtDiagnostico.BackColor = &H8000000F
End Sub

Private Sub cmdSalir_Click()


End
End Sub

Private Sub ctl_imc1_faltaparametro()


MsgBox "Por favor verifique datos ingresados: Peso en formato nnn,nn y/o Altura
en formato nn,nn ", vbCritical, "mensaje de sistema"
End Sub

Private Sub ctl_imc1_muyriesgoso()


txtDiagnostico.BackColor = RGB(170, 0, 0)
txtDiagnostico = "OBESIDAD GRADO II (muy riesgoso, de 30 a 39,9) "
End Sub

Private Sub ctl_imc1_normal()


txtDiagnostico.BackColor = vbGreen
txtDiagnostico = "IMC NORMAL ( de 20 a 24,9)"
End Sub

Private Sub ctl_imc1_peligroso()


txtDiagnostico.BackColor = vbRed
txtDiagnostico = "OBESIDAD GRADO III ( peligroso, mayor a 40)"
End Sub

Private Sub ctl_imc1_riesgoso()


txtDiagnostico.BackColor = vbYellow
txtDiagnostico = "OBESIDAD GRADO I (riesgoso, de 25 a 29,9)"
End Sub

Autor: Ernesto Luis Deffis , 5to año Ing. Sistemas – 2003 – UAI Sede Boulogne 10
6 - Demostración y pruebas.

Se entrega un diskette con código fuente para correr la aplicación.

Recorriendo la ejecución con F8 se verá cada módulo y las lecturas y


asignaciones de variables a las propiedades y la manifestación de los eventos.

Autor: Ernesto Luis Deffis , 5to año Ing. Sistemas – 2003 – UAI Sede Boulogne 11

También podría gustarte