VB6. Convertir cuotas en porcentajes version 4

Posted by in Visual Basic y VBA

¿pensaban que me iba a quedar en la versión 3? Pues no, todavía hay más!

En la versión 4 vamos a ver lo fácil que es usar IEventsHandler, la clase manejadora de eventos, y vamos a dividir aun más nuestro software.

Salir de la aplicación

En el formulario, vamos a incluir un botón de «Salir», y también vamos a controlar cuando el usuario cierra el formulario pulsando en la «X» de la ventana. En concreto, es el evento Form_QueryUnload.

Modificando el formulario

Modificando el formulario

En ambos casos, el código será el mismo, y es una llamada a salir de la aplicación (la hemos puesto en una subrutina aparte, por si tuvieramos que controlar algo adicional antes de salir, hacerlo desde un mismo sitio, una sola vez):

Lanza evento salir

Lanza evento salir

En la clase, vamos a incluir una subrutina para cuando se termina de trabajar con la clase, para que cierre todos los objetos abiertos.

Por otro lado, vamos a bEvent_RaisedEvent para controlar el evento «salir«, haciendo una llamada a una subrutina en el módulo de inicio:

Facil, ¿no?

Nueva clase Coutas2Porc

La actual clase cCalculaCuotas se caracteriza por 2 cosas:

  • Controla el formulario y sus eventos
  • Controla los cálculos

Sin embargo, es hora de separar ambas cuestiones. ¿el motivo? Cada objeto o clase debería controlar una sola de esas acciones.

Creamos la clase Cuotas2Porcentajes, mediante Agregar nuevo módulo de clase. Lo primero es agregar 6 propiedades públicas: CuotaLocal, CuotaEmpate, CuotaVisit, PorcLocal, PorcEmpate, PorcVisit. En realidad, los porcentajes sólo nos interesa que sean propiedades de lectura, por tanto, eliminaremos (o mejor, comentaremos) las opciones de escritura. Para el almacenamiento interno, usamos las matrices dValor y dPorc, que trasladamos desde cCalculaCuotas. Hacemos también el traslado de la función interna LeeValor.

Vamos a controlar si se efectúa o no el cálculo, es decir, control de errores. Vamos a poner 2 propiedades, ambas de sólo lectura:

  • Calculado, de tipo boleano
  • Error, de tipo texto

Con Calculado, podemos controlar si se ha efectuado el cálculo o ha habido errores, mientras que con Error enviaremos un mensaje de texto con el error. La mejora es importante, pues ahora podemos mostrar errores al usuario.

La función de Calcular es también trasladada a Coutas2Porcentajes, con los ajustes oportunos, eliminando llamadas a rutinas de la clase cCalculaCuotas.

Haciendo uso de la nueva clase Coutas2Porcentajes

Volvemos a la clase cCalculaCuotas, y creamos una variable que llama a Coutas2Porcentajes, y lo hacemos como privada para usarla en cualquier sitio de la clase, y la iniciamos al arrancar la clase (la cerramos al terminar de trabajar con la clase):

Private oC2P as Cuotas2Porcentajes

Para utilizar la clase oC2P, tenemos que actualizar varias rutinas, empezando por MuestraResultados, y también en Coutas, donde además, empleamos la detección de errores.

Usando la nueva clase Coutas2Porcentajes

Usando la nueva clase Coutas2Porcentajes

Comprobamos que funciona la detección de errores.

Detección de errores

Detección de errores

Corrección de errores

Seguramente, ninguno lector (ni siquiera yo mismo, hasta hace unos minutos) ha caído en que los resultados mostrados NO son correctos. ¿es que no está bien calculado? Pues la verdad es que no. ¿Cómo? Llevamos 4 entradas haciendo un programa que tiene errores? La respuesta es sí.

El error es que los porcentajes presentados al usuario están en tantos por 1, y no en tantos por 100.

Para corregir el error, sólo es necesario modificar una sóla línea:

Corrigiendo errores

Corrigiendo errores

Y ahora comprobamos de que todo está correcto:

De Cuotas a Porcentajes version 4

De Cuotas a Porcentajes version 4

Gracias por leerme, y espero que os sirva!