Cuando en un formulario editas un número hasta borrarlo

No encuentro la forma.
Cuando en un formulario tienes un objeto de edición numérico asociado a un campo (porque como esté asociado a una variable es aún más complejo) y vas y lo editas borrando una a una cada cifra (algo que hace todo el mundo a todas horas) puedes sin problema poner una conexión de evento que se dispare:
-al pulsar tecla
-al soltar tecla
-al cambiar valor del campo
-etc.
Y funciona mientras haya una cifra dentro. En el momento que borras la última cifra y se queda vacío el objeto, la última cifra que borraste se queda “pegada” en alguna parte.
Ejemplo.
Digamos que tengo el objeto PVP en un formulario y quiero mostrar el importe sin impuestos a medida que se modifica ese PVP, que además es un campo de una tabla.
Pues todo bien hasta que borro el último dígito.
Es como si primara el hecho de estar vacío sobre el hecho de que acabo de borrar la última cifra y ya no se dispara ninguna conexión ni nada de nada.
El asunto se complica teniendo en cuenta que ese formulario no tiene botón de aceptar sino que el aceptar está dentro de otro formulario-padre. Si en el padre pulso sobre el botón aceptar con el ratón, se produce pérdida de foco en el objeto PVP y no hay problema. Si por contra pulso F12, tecla asociada al botón aceptar, no se dispara nada en el form hijo que conserva ese último dígito y por lo tanto, aunque tenga el vacío (que es casi decir cero pero ni mucho menos) pues me graba un importe diferente de cero.
Y en soporte no hay quien me soporte. No. Es broma … o no tanto … :stuck_out_tongue_winking_eye:

Aquí cómo está él formulario antes de editar el PVP:
1Captura

Pulso retroceso una vez:
2Captura

Y con la tercera, observen que no cambia el desglose sin impuestos, se le pega el “5”:
3Captura

No había detectado este problema, voy a revisar.
¿Es necesario usar una conexión de evento? Para cálculos como este yo utilizo una fórmula en el contenido inicial del otro campo (importe sin impuestos) y no me ha pasado esto.
Saludos,

1 me gusta

Hola, buenos días.
Gracias por atender y responder.
Acabo de probar con la fórmula en el contenido inicial de otro campo que he añadido al efecto.
Sucede igualmente. Recuerda que solo pasa cuando el objeto se queda vacío, sin dígitos.
No hace mucho que quedó resuelto otro problema derivado de algo parecido a esto.
Por entonces (mayo-2021) lo que me pasaba era que el campo entregaba un “HighValue” al quedar vacío, es decir, el valor más alto que admitiera ese campo.
Lo puse en conocimiento a soporte y lo resolvieron (VELNEO-9720).
Ahora me da pereza dar la matraca con esto.
De momento lo he resuelto a lo chapuzas en tercer grado así:
En el formulario padre capturo el botón aceptar en una conexión a evento que se dispara como “Previo a la ejecución” y llamo a un evento.
El evento oculta en el formulario hijo el objeto edición numérica PVP.
En el formulario hijo creo una conexión a evento que se dispara como “OnHide” y llamo al evento que hace el cálculo desglosado.
Una cadena de sucesos que funciona a pesar de pulsar F12 para aceptar porque el problema serio surge solo ahí mientras que al pulsar con el ratón sobre el botón de aceptar no.

Pero el origen del horror, la fealdad del problema si prefieres decirlo así, sigue presente de alguna manera puesto que cuando terminas de pulsar “retroceso” o “suprimir” para borrar el número en pantalla sigue sin actualizarse el desglose y perfectamente tienes el PVP vacío y en el desglose cualquier cifra.
Y si por casual seleccionas todo el número con doble click y después pulsas borrar, se te queda “pegado” el número entero y no solo la última cifra.