Hora: 27-Jan-2020, 11:39 AM ¡Hola, Invitado! (Iniciar sesiónRegístrate)

Enviar respuesta 
Acceso a Datos 09: Altas y Bajas: (1) Sentido Común
Autor Mensaje
admin Sin conexión
Administrator
*******

Mensajes: 16,280
Registro en: Dec 2005
Mensaje: #1
Acceso a Datos 09: Altas y Bajas: (1) Sentido Común
Algo que debemos considerar siempre es la posibilidad de que se vaya la luz a media operación, asi que un sistema bien diseñado debe tener el menor numero posible de tablas y bases abiertas, o les pasa lo que sucede con los tristemente célebres programas de ASPEL, COI, NOI, y SAE. A los que conocen mi trabajo recordarán que cuando se va la luz los sistemas se recuperan de manera transparente.

Para poder conseguir esto, lo mejor es abrir y cerrar las bases y/o tablas cada operación excepto en procesos intensos, y rara vez abrir a la vez dos tablas. Claro que ayuda tener no breaks fiables en la medida de lo posible.

Sin embargo, eso está fuera del alcance de este tema, aunque mas adelante lo veremos PARCIALMENTE cuando veamos ADO.

Antes de codificar, vamos a ver a grandes rasgos que pasa cuando alguien da un alta de datos en una tabla, DE LO QUE SEA:

PASOS PARA DAR UN ALTA

....1. Deshabilitar las opciones de altas, bajas y cambios en los menús para evitar problemas por doble click. Habilitar opciones de cancelar y guardar cambios.
....2. Revisar si ya existe el dato que queremos dar en esta tabla.
....3. Si existe
  • Avisar y restablecer botones
  • Cancelar el proceso
....4. Verificamos que existan los datos obligatorios, TODOS.
....5. Si faltan
  • Avisar
  • Llevar a donde falta el dato
  • Cancelar el proceso
....6. Revisar si hay datos duplicados que no deban serlo ( que en la columna unico de nuestra tabla tengan si )
  • Si hay avisar, llevar, restablecer botones y cancelar proceso
....7. Si todo es correcto, guardar. ( Si algo falla preferentemente interceptar )
....8. Restablecer botones y refrescar pantalla

PASOS PARA DAR UNA BAJA

....1. Deshabilitar las opciones de altas, bajas y cambios en los menús para evitar problemas por doble click rapido.
....2. Revisar si el dato que queremos ya esta seleccionado
....3. Si no
  • Pedir que se seleccione
  • Restablecer botones
  • Cancelar el proceso
....4. Verificamos si esta ligado a otra tabla, si es así, avisamos que no se puede borrar (no podemos borrar un banco si tiene cuentas, por ejemplo)
....5. Continuamos SOLO si ya no hay datos ligados
....6. Si procede lo demas, preguntamos si queremos borrar, dando por default no.
....7. Si deciden borrar, borrar
....8. Restablecer botones y refrescar pantalla

Para hacer esto es necesario tratar de convertir todo a código. Es importante mencionar que no todos los pasos se hacen con el mismo botón en altas, solo el primer boton corresponde a altas, y todo lo demas al boton de guardar cambios.

Si se fijan todos los pasos anteriores son elementales. Vamos a referirnos ahora a el código de tiposmovimentos, específicamente de sus botones, lo que nos lleva al evento click de cmdtiposmov.

Nota: Cuando Comenté que se usaran las propiedades index, la finalidad es simplificar la programación. Esto se debe a que si no manejamos un arreglo de botones , tendriamos seis eventos de controles DIFERENTES, y además de tener que repetir código, sería dificil de mantener. De esta manera usaremos un solo procedimiento, para altas, bajas y cambios por cada tabla.

Veremos un ejemplo, que en lo personal es mi base para la mayoría de las veces, porque con hacer unas cuantas modificaciones, terminamos un módulo ABC completo en cuestión de minutos. A varios que me conocen, les consta que en una hora puedo sacar 6 o 7 módulos completos con reportes, aunque no se suele necesitar esa velocidad.

Después de ver el ejemplo veremos varios de esos procesos obvios, son los que tienen un link dentro del documento.

Vean este ejemplo código de un programa de productos, noten que hay procesos obvios por el nombre (con un link a donde está el código) pero que no son ordenes validas, por ejemplo, resaltacontrol. El ejemplo incluye también el manejo de cambios pero eso lo veremos en tres correos o mas junto con las ordenes que faltan, por ejemplo, la explicación de que es DataClass. Si Usan ahora es bajo su propio riesgo.

NOTA: Las líneas que empiezan con // deben ir al final de la línea anterior. Mas adelante subiré el c&oacutedigo en el proyecto, pero necesito que lo vean ahora por referencia.

[code]Private Sub cmdProd_Click(Index As Integer)
Dim strprov As String
Dim strsubc As String
cmdProd(Index).Enabled = False
Select Case Index

[color="#FFFFCC"]Case 0: ' altas[/color]

' tomamos proveedor
strprov = lstProv.List(lstProv.ListIndex)
If strprov = "" Then
02-Apr-2009 07:59 PM
Encuentra todos sus mensajes Cita este mensaje en tu respuesta
Enviar respuesta 


Posibles temas similares...
Tema: Autor Respuestas: Vistas: Último mensaje
  RANTS de Oracle, un manejador de bases de datos admin 5 5,746 13-Apr-2009 01:04 PM
Último mensaje: admin
  Acceso a Datos 07: Principios RAD admin 1 3,305 09-Apr-2009 10:36 AM
Último mensaje: Lux
  Acceso a Datos 16: La esencia de RAD admin 0 3,408 02-Apr-2009 08:01 PM
Último mensaje: admin
  15: Bajas por SQL Pros y Contras. admin 0 4,877 02-Apr-2009 08:01 PM
Último mensaje: admin

Salto de foro:


Usuario(s) navegando en este tema: 1 invitado(s)

Powered By MyBB, © 2002-2020 MyBB Group. | | Theme Created By effone of Equinox Design