Simplificar la complejidad de un proyecto


Cuando se nos presenta un proyecto en el cual hay que rellenar gran cantidad de datos, hemos de tratar por todos los medios simplificar en la medida de lo posible la introducción de los mismos.

Cuando tenemos 500 campos (por poner un número), además de FIRMA, FOTO, Direcciones de entrega-recogida, etc, el proyecto pasa a ser bastante engorroso puesto que la pantalla en movilidad es un espacio muy limitado.

En un proyecto complejo que se nos presentó de peritaje de vehículos, en el cual hay que meter datos de los distintos daños del vehículo, hacer fotos, tomar nota de los extras del vehículo, si está tuneado, luces del cuadro de instrumentos, etc, etc, tomamos la decisión de “picarlo” en distintas colecciones y no tener una única colección monstruosa.

La relación entre tablas es 1 a 1, de forma que tenemos una tabla “principal” de incidencias (la que debiera ser monstruoso cada registro) y otras tablas auxiliares con campos que “deberían” estar en la tabla principal pero que hemos repartido por otras tablas para simplificar la gestión.

Aquí una captura de pantalla de una de las pestañas de la aplicación, en la cual vemos cómo se llama a las distintas colecciones “auxiliares”, en este caso a través de botones:

<!--  ************************************************************************************
	- Buscaremos en las colecciones "auxiliares" si dicho registro ya existe, preguntando 
	  por el IDINCIDENCIA y en caso de no existir el registro, se crea.
 *****************************************************************************************  -->
 
<tunning>
	<action name="runscript">
		<script language="VBScript">
 
			st_incidencia=Cstr(This("IDINCIDENCIA"))
			Set CollTun=appdata.GetCollection("Tunning")
 
			' Buscamos si ya lo habíamos creado anteriormente
			Set ObjTun=CollTun("IDINCIDENCIA",st_incidencia)
 
			if ObjTun is nothing then
				' Si no existe, lo creamos
				Set ObjTun=CollTun.CreateObject
				CollTun.AddItem Empty,ObjTun
				' Le asignamos el IDINCIDENCIA
				ObjTun("IDINCIDENCIA")=st_incidencia
			end if
 
			' Lanzamos el objeto en edición
			AppData.PushValue ObjTun		
 
		</script>
	</action>
</tunning>
  1. Reducimos el espacio de pantalla necesario para rellenar los datos.
  2. Cada colección “independiente” tiene sus propias validaciones, reduciendo así la complejidad global del proyecto.
  3. Si, por ejemplo, un coche a peritar es “de serie” la parte de tunning ni siquiera se llega a rellenar.