Reto 08: El desastre de Ludovico [Intermedio]

En esta sección plantearemos distintos retos para todos aquellos que lo quieran intentar resolver y mejorar su conocimiento de Access ;-)
Avatar de Usuario
Administrador
Administrador
Mensajes: 194
Registrado: Sab Oct 24, 2015 12:55 pm

Reto 08: El desastre de Ludovico [Intermedio]

Mensajepor Administrador » Dom Ene 01, 2017 11:06 am

Imagen

¡¡Año Nuevo, Reto Nuevo!!

¿Qué mejor manera de empezar un año que resolviendo uno de los retos NkSv Access Solutions? :lol: Para empezar "de tranqui", os proponemos un reto sencillito, que dice tal que así:

Ludovico, antiguo compañero de instituto, después de años sin noticias suyas nos llama al móvil y nos dice:

Ludovico escribió:¡¡¡Hombre, amigote!!! ¡Cuánto tiempo!!
Me acabo de enterar de que te dedicas a resolver consultas de gente sobre Access por internet, y me viene que ni pintado. Ya sabes que yo la informática la aprobé por los pelos…
Verás, acabo de montar un pequeño negocio de productos químicos, y por ahorrarme unos eurillos, visité la web de Access de un tal Nickito, o Neckiito, o algo así, y, en base a alguno de sus ejemplos, le fui añadiendo cosillas más otras que fui encontrando por internet, pero no acaba de funcionar, sólo me da errores, errores y más errores…
Y encima, hago una consulta en los foros y un tipo con un nombre impronunciable (Sbinjorn, creo) me da una solución que hace que lo que antes funcionaba ahora me casque. Muy simpático, sí, pero creo que mucha idea de Access no tiene… En fin: un desastre, vamos…

Te explico de qué va el tema:

Nuestros clientes nos dicen los metros que necesitan trabajar de su producto y nosotros les preparamos el líquido tratante para cubrir esa superficie. El producto líquido que nosotros preparamos se basa en dos componentes: un líquido base y un producto químico.

Si coges la base de Access lo entenderás enseguida: el cliente nos dice, por ejemplo, que quiere tratar 45 metros, y nosotros debemos prepararle una base de acetaldehído con polvo de bauxita. Para el líquido base nosotros debemos saber en qué rango nos movemos, así que nos vamos a la tabla TMetros y vemos que para 45 metros debemos situarnos en el rango 2 (entre 25 y 150 metros).
Ahora nos vamos a la tabla TMetrosLiquidos y vemos que de acetaldehído, para el rango 2, necesitamos 275 litros. Con eso ya tenemos la base líquida.
Ahora nos vamos a la tabla TProductos y vemos que necesitamos, para el polvo de bauxita, 1,5 gramos por metro, es decir, 45*1,5= 67,5 gramos.
Como ya sabemos los litros y el precio por litro y los gramos y el precio por kilo… basta con sumar para sacar el total del pedido. ¿A qué es sencillo? Pues a mí no hay manera de que me salga…

¿Te importaría echarle un vistazo a ver qué puedes hacer? Venga….que no te cuesta nada… ¡Y te invito a una caña uno de estos días!


Aplicación de Ludovico

El reto consta de dos partes:

1º/ Formulario FPedidos
Arreglar el destrozo que tiene Ludovico, y poner comentarios en el código para que entienda lo que hace cada cosa. Los lugares para indicar los comentarios están marcados con <<''XXXXX>>

A tener en cuenta: los errores pueden abarcar distintos ámbitos, es decir:
- Pueden ser de compilación
- Pueden ser de sintaxis
- Pueden ser de deficiente estructura de programación
- Pueden ser de métodos de cálculo erróneos

Los objetivos que se deben conseguir, en general y en consecuencia, son:
a) Que no haya ningún error de código, influya o no en los resultados que muestra el formulario
b) Que el formulario muestre los resultados correctos.
c) Que se contemplen las situaciones normales de lo que sería el trabajo en el formulario; es decir, adiciones de registros y modificaciones de registros existentes, y que en ambas situaciones lógicamente los datos reflejados en el formulario sean correctos.

2º/ Formulario FPedidos2
¿Cómo mejoraríais vosotros el código?
Es decir, el código que sirve de base, correctamente arreglado, funciona sin problemas, pero no está optimizado. Lo que se pide es ver si podéis dar algún tipo de idea o ideas para optimizar ese código, y que las plasméis programando esas mejoras en el formulario FPedidos2.
Ni que decir tiene que FPedidos2, una vez optimizado con vuestras propuestas, debe funcionar correctamente para las situaciones de adición y modificación de registros.


¡Suerte!
La Administración de Dudas Access Foro

Avatar de Usuario
Administrador
Administrador
Mensajes: 194
Registrado: Sab Oct 24, 2015 12:55 pm

Re: Reto 08: El desastre de Ludovico [Intermedio]

Mensajepor Administrador » Vie Ene 20, 2017 6:47 pm

Un poco tarde el aviso, pero ya podéis empezar a enviar vuestras soluciones.

Un saludo!
La Administración de Dudas Access Foro

Avatar de Usuario
javiteran
Colaborador
Reto11
Mensajes: 221
Registrado: Mié Dic 02, 2015 8:11 pm

Re: Reto 08: El desastre de Ludovico [Intermedio]

Mensajepor javiteran » Vie Ene 20, 2017 6:55 pm

y no se puede estrangular al programador que ha cometido todos esos errores y hacerlo todo, todo de cero? :D :D :D

Bromas a parte.
Hay también errores de diseño?, para que hay un IdProductoPedido y un IdProductoBPedido y para que ha dos tablas TProducto en las relaciones?

Igual es que no he entendido algo.
Un saluo.

Avatar de Usuario
Administrador
Administrador
Mensajes: 194
Registrado: Sab Oct 24, 2015 12:55 pm

Re: Reto 08: El desastre de Ludovico [Intermedio]

Mensajepor Administrador » Vie Ene 20, 2017 7:14 pm

Hola, Javi:

La idea es no poneros las cosas demasiado fáciles, porque si os las ponemos fáciles nosotros también tenemos la corrección demasiado sencilla, y claro, nos aburrimos... :lol:

La BD está pensada para que sea un desastre, y, para dar esa sensación de desastre, también puede que haya algunos errores en nomenclaturas poco afortunadas de campos y campos que podría ser que sobrasen... :roll: Y hasta aquí puedo leer.

Aunque el reto está centrado en la corrección del código propiamente dicho, esos posibles gazapillos, si es que los hay (je, je...) están pensados precisamente para eso: para haceros fruncir el ceño. Como ya hemos visto en diferentes retos, si os dejáramos empezar la aplicación de cero probablemente habría tantas propuestas diferentes como proponentes :shock:

En definitiva, que olvida los inconvenientes de diseño que te parezca que pueda haber y céntrate solo en lo que sería la solución en cuanto a código.

Y, si has de estrangular a alguien, que no sea ni a Diego ni a Miquel, puesto que nosotros solo os transmitimos lo que Ludovico nos comentó :mrgreen:

Un saludo!
La Administración de Dudas Access Foro

Avatar de Usuario
javiteran
Colaborador
Reto11
Mensajes: 221
Registrado: Mié Dic 02, 2015 8:11 pm

Re: Reto 08: El desastre de Ludovico [Intermedio]

Mensajepor javiteran » Vie Ene 20, 2017 10:02 pm

Buenas noches.
Tengo otra duda.

Ahora nos vamos a la tabla TProductos y vemos que necesitamos, para el polvo de bauxita, 1,5 gramos por metro, es decir, 45*1,5= 67,5 gramos.
Como ya sabemos los litros y el precio por litro y los gramos y el precio por kilo… basta con sumar para sacar el total del pedido


Puede que en la tabla venga el precio por kilo. ¿Pero estamos seguro de eso? 1kg son 1000 gr no?. Es que si aplico ese cálculo el precio del producto siempre me sale residual. 2, 5, 10, 15 € mientras que el cálculo del líquido base me sale del orden de los miles de €.

Eso es así? Me lo he leído varias veces y no veo una salida coherente.
Un saludo.

Avatar de Usuario
Administrador
Administrador
Mensajes: 194
Registrado: Sab Oct 24, 2015 12:55 pm

Re: Reto 08: El desastre de Ludovico [Intermedio]

Mensajepor Administrador » Vie Ene 20, 2017 10:37 pm

Para no dar muchas pistas, simplemente diremos que en la propia BD tienes la respuesta a tu pregunta.... :roll:

Y sí, si algo aprendimos los de EGB es que 1Kg=1.000gr :lol: :lol:
La Administración de Dudas Access Foro

Avatar de Usuario
ximo
Nivel 4
Reto08
Mensajes: 91
Registrado: Mar Dic 15, 2015 4:19 pm

Re: Reto 08: El desastre de Ludovico [Intermedio]

Mensajepor ximo » Dom Ene 22, 2017 12:24 pm

Hola Javi,

Creo que estas equivocado, en la tabla 'TProductos' biene bien claro 'CantxMetro' y 'PrecioGrProducto' cogiendonos a este segundo campo si lo analizas verás que no puede ser que la cantidad x metro este expresada en kilos (1500gr) que por 33€ son 49.500€ ni el caviar de beluga señores, bajo mi humilde opinión, creo que la cantidad son gramos/metro y el precio es el gramo, lo que si sería discutible son los precios no creo que Ludovico venda muchos productos, salvo que haya un error y el precio sea por kilos con lo que pasamos de tener para 1 m 49,50€ de polvo a 0,0495€.

Como ves ahora también estoy hecho un lío, veremos en que acaba todo esto.


Saludos, ximo
La incansable busqueda de información abre nuestras mentes.
http://www.numisoftware.com

Avatar de Usuario
Administrador
Administrador
Mensajes: 194
Registrado: Sab Oct 24, 2015 12:55 pm

Re: Reto 08: El desastre de Ludovico [Intermedio]

Mensajepor Administrador » Lun Ene 30, 2017 8:55 pm

¡Buenas tardes a todos!

Con algo de retraso a lo que os tenemos acostumbrados, os dejamos por fin el desenlace del presente reto.

Ludovico, tras examinar vuestras propuestas, nos comunica que no está del todo satisfecho, pues no terminan de funcionar como él esperaba y le "chirría" alguna que otra cosilla...

Tras examinar concienzudamente todas las propuestas, y quizás pecando de rigurosos en exceso, hemos decidido no dar por superado el reto a ninguno de los participantes, pues aunque se corrigieron bastantes gazapos, hay otros que se os escaparon y no deberían. Tampoco los formularios acaban de funcionar correctamente, no tanto al añadir registros como al modificarlos...

En esta ocasión, no habrá segundo intento. Os dejamos nuestra solución, en la que podréis ver el formulario inicial con los "destrozos" que le hicimos comentados, el formulario "corregido" para que no salten errores de código y sea funcional, y el formulario "optimizado" de una de las posibles formas. También como es habitual encontraréis unos comentarios nuestros sobre el reto.

Por último, remarcar (como hacemos en la BD-Solución) que no haber llegado a la fórmula correcta para el cálculo del precio del pedido no lo hemos tenido en cuenta a la hora de valorar las propuestas. Lo que sí hemos considerado es que los cálculos fueran consistentes al añadir o modificar registros, y entre los dos formularios.

Cualquier duda o aclaración que necesitéis, en este mismo hilo o a administrador@nksvaccessolutions.com

¡Gracias por vuestra participación!
La Administración de Dudas Access Foro


Volver a “El Reto de NkSv”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado