Tengo una pantalla de maestro/detalle (un documento con partidas). En la rejilla tengo asignadas las respectivas pantallas de alta/modificación/baja (esta última diferente con el botón “Eliminar”).
En la pantalla de baja de ficha de detalle, este a su vez tiene enlaces plurales, por lo que si lo intento eliminar asignando el botón “Eliminar” la acción Eliminar y el registro tiene plurales, el sistema no me permite la eliminación. Aquí es la solución “rápida” y que funciona, pero honestamente el mensaje por default del sistema no me gusta y aparte no me dice el por qué no se puede eliminar la ficha lo cual para así mostrarlo al usuario no me agrada.
He buscado y la otra alternativa es crear dos eventos, en uno de ellos hacer todas las validaciones que requiera de manera manual y mostrar los mensajes como yo los requiera, y el otro es un evento en javaScript con el comando:
//Eliminar ficha
theRoot.dataView().eliminate();
El cual mando llamar desde mi primer evento. Pero este no funcionó como lo esperaba: Si posterior al comando de llamar a este segundo evento le coloco el comando “Interfaz: Aceptar” para que cierre el formulario del registro, al regresar al formulario anterior, después de un par de segundos el registro desaparece de la rejilla, pero si salgo y vuelvo a entrar EL REGISTRO SIGUE AHÍ (aaarrggghh). Intenté ahora con el comando “Interfaz: Cancelar”, y el resultado es que al regresar al formulario anterior sigue apareciendo la linea de la ficha, pero ahora toda en blanco. Si salgo y regreso esta linea ya no aparece, es decir ahora la ficha si fue eliminada… pero ese efecto de que quede una linea en blanco en la rejilla pues obvio no se ve muy bien y puede llegar a confundir al usuario.
La parte que me lía un poco es el nulo control que tengo para llamar el formulario ya que el menú es genérico sin tabla asociada para que mande llamar el formulario correspondiente a la tabla en edición de acuerdo a los formularios indicados en las rejillas de las tablas. Entonces no se como forzar un Recalcular posterior al llamado del formulario.
Incluso hice un “Cargar lista” para que me trajera este mismo registro y de ahí borrarlo, pero al regresar al formulario anterior ya sea con Interfaz:Aceptar/Cancelar tengo el efecto de una linea en blanco.
Estoy abierto a cualquier otra opción que haga el trabajo y que se vea bonito para el usuario.
Saludos.
Otra opción que estuve analizando, pero no encontré como hacerla, es con un segundo botón de eliminar, el cual tenga configurada la acción de Eliminar, y la intención es desde el primer botón simular presionarlo, pero no encontré la manera.
LO LOGRÉ!!!
Comparto mi solución:
Use la opción del segundo evento en javaScript y posteriormente al llamado de este evento usar “Interfaz:Cancelar” la cual si me elimina efectivamente el registro.
Para el problema de actualizar, usé la relativamente nueva señal “Lista cambiada” y ahí ejecutar el recalcular de la rejilla, esto en la pantalla donde tengo la rejilla de los registros que quiero eliminar y despues de 2-3 segundo cuando mucho desaparece el registro que eliminé.
¡Muy bien marco_rangel!
1 me gusta