¿Qué estrategia usar en pantalla de Editar datos?

Puse este post en .NET porque programo en este lenguaje pero la pregunta es más general.
Estoy haciendo un software en el que tengo las típicas operaciones CRUD.
Resulta que Tengo que hacer la pantalla de Editar o Modificación.
El problema es el siguiente:
Tengo Datos que corresponden a la cabecera, y tengo dos grillas a las que se le pueden agregar o quitar filas. Los datos de esas grillas están relacionadas a la cabecera, que es la tabla principal.
El tema es que la pantalla de Editar muestra la cabecera y las dos grilla con todos los datos precargados, para que el usuario modifique si desea datos de la cabecera y agregue o quite filas de las grillas. En la pantalla al final de la misma hay dos botones, GUARDAR Y CANCELAR.

Estrategia 1: si el usuario saca y pone filas en las grillas. Cuando el usuario Oprime el botón guardar, los datos de la cabecera se guardan fácil, PERO QUE HACER CON LAS GRILLAS. ¿Tengo qué borrar todos los datos asociados a cada grilla en la base de datos y volver a grabar lo que tienen las grillas en la modificación?

Estrategia 2: Que los datos de la cabecera se gurden cuando hace click en el botón GUARDAR, ¿pero los datos de la grillas se reflejen en la base de datos directamente cuando agrega y quita de la lista? Es decir el botón GUARDAR solo servirá para los datos de la cabecera porque las acciones sobre las grillas pegan directamente en la base de datos.

¿Cuál es la estrategia más usada en estos casos?

1 respuesta

Respuesta

Los desarrolladores de software tienen esa capacidad de decidir que estrategia seguir para sus programas, además eligen la más apropiada, eficaz y eficiente para que la aplicación no tenga retrasos en cuanto a la actualización de sus datos.

Las dos estrategias que has analizado son lo suficientemente apropiadas para en tu caso, hasta podrían haber muchas más para hacer que el software tenga una usabilidad apropiada para cualquiera que lo utilice; analizando un poco, la estrategia más adecuada sería la opción 2 ya que como expones, los datos estarán directamente incrustados (por decirlo de ese modo) a la base de datos PERO algo que no comprendí muy bien, ¿Los dos DataGridView están aparte de los botones, es decir, se encuentran en la pantalla misma y no en cada registro? Esto lo digo porque imagino que tu intención es modificar un registro a la vez pues no es así, ya que el usuario final puede modificar N registros y al momento de guardar, hay un pequeño lío en cuanto a actualizar varios registros a la vez y debas utilizar JOIN para guardar el arreglo de filas modificadas (Link de ayuda http://www.dataprix.com/blog-it/bases-datos/update-select-registros-agregados-sqlserver ) y sea un poco lioso este tema pero bueno, ya es decisión suya.

Aquí te expondré otras estrategias haber cual te resulta más adecuada o puedes combinarles con las que ya tienes:

  1. Implementar otras tres columnas con botones en cada registro (Esto se puede hacer mediante los atributos del DataGridView y cada columna contendría el botón correspondiente a Actualizar, Eliminar o Cancelar -Este último estaría inhabilitado hasta seleccionar Actualizar-) y al momento de guardar o eliminar mostrar un MessageBox para confirmar el guardado o el eliminado del registro, esta es una opción ideal para evitar guardar varios registros a la vez y acumulación de tareas en el proceso de transacción.
  2. Inhabilitar los atributos del DataGridView de AllowUserTo (AddRows, DeleteRows) y habilitar ReadOnly para que el usuario no pueda modificar las celdas de cada registro; para esto debería diseñar una interfaz de ingreso con GroupBox o mediante una pantalla emergente para el Ingreso de nuevos registros o el Actualizado del mismo, para que los DataGridViews solo sean para el visualizamiento de los datos modificados o agregados (Si esta opción le parece adecuada).
  3. Aplicando la primera opción pero al momento de intervenir en el DataGridView de un registro, inhabilitar los demás registros para que no haya registros sin guardar o similares hasta que el registro modificado tenga alguna acción valida para habilitar los demás registros (Actualizar, Eliminar o Cancelar).

Le comento, todo proceso que usted haga sea como sea, debe de recargar los datos en el DataGridView ya que a veces los datos que se guardan no quedan reflejados directamente entre la base de datos y el Grid, de los cuales es recomendable volver a cargar los datos de la tabla en cada DataGridView.

Espero que lo expuesto aquí le sea de utilidad, le deseo lo mejor y saludos!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas