![]() |
Maestro/Detalle (No graba en tabla Maestro)
Hola a todos,
estoy empezando a programar en delphi con una aplicacion para hacer presupuestos, albaranes, etc. con clientes y productos. Uso delphi 5 y paradox 7 y mi problema es el siguiente: tengo un formulario para hacer un albaran, del siguiente modo: DBedits con datos generales del albaran, Idalb, fecha, observaciones, etc. (Talbaranes) Tabla Maestra. Un apartado para seleccionar el cliente mediante un boton en el que se abre otro formulario donde se selecciona y se rellena el campo cliente de Talbaranes. Otro apartado para ir añadiendo la linea de detalle del albaran, es decir, producto, cantidad, precio. Estos ultimos datos los guardo en TalbprodDetalle, Tabla Detalle. Hasta aqui todo funciona bien, despues tengo un botón Confirmar, para validar el albaran y guardarlo en tabla, este botón realiza el siguiente codigo, (entre otras cosas):
Bien pues el tema es que guarda los datos en la tabla detalle, pero no en la tabla maestra, ya que lo compruebo abriendo directamente las tablas con el Database Desktop. Espero que alguien sepa el porqué ocurre esto y haberlo explicado adecuadamente. Un saludo. Muchas gracias. |
Hola
Esto no lo se (para variar), nunca lo he hecho pero me pregunto, no es al revés?. Saludos |
Hola teclilla
Cita:
según el código, veo que solo realizas una actualización de la base.. pero no indicas como almacenas la info... por lo general se ingresa (insert) y luego se realiza el Refresh (update ) y con el post se estaría confirmando el ingreso y/o actualizacion Cita:
pero como es eso de Eso no lo sabes (para variar), veo que te gusta pasar de incognito... (o de novato...) ;):D Salu2:p:D |
a ver si tengo la misma duda, porq realizas un applyupdate y luego un post?, deja cacheupdate en falso y listo.
Por otro lado lo que dice bluesteel es logico, te falta la parte de la insercion. Como recomendacion agrega la instruccion MiTabla.FlushBuffer; en el evento afterpost de las tablas para asegurar que se guarde la info. |
Ok, el formulario visualiza los datos del albaran en DBEdits y el detalle del albarán en Datagrid. Despues tengo un DBNavegator para moverme.
El formulario tiene un boton Añadir (para añadir un albaran) que realiza lo siguiente:
entonces relleno en los DbEdits los demás campos generales del albarán observaciones y tal, y despues tengo un boton que me lleva a otro formulario para elegir producto y cantidad y al darle aceptar lo añado al Dbgrid del siguiente modo:
en las dos tablas realizo un Append y despues al pulsar el Boton de Confirmar realiza el codigo que os puse en el post de mas arriba. ¿Hay algo que estoy haciendo mal? Muchas gracias. |
Hola de nuevo,
Caral he probado a intercambiar las instrucciones, es decir:
pero sigue igual, Eduarcol tambien he comprobado que tengo CachedUpdates de Talbaranes False y las dos tablas estan en edicion mientras voy escribiendo en los DBedits correspondientes ... Me faltaria comprobar esta instrucción:
¿he de ponerla tanto en la tabla maestra como en Detalle o solo en la maestra? Muchas gracias a todos. Espero poder resolverlo. Saludos. |
en las dos, esa instruccion se utiliza en paradox para forzar la escritura a disco
|
He probado esta ultima instruccion y sigue igual, aunque he probado una cosa: Si inserto un registro en la tabla Maestro/Detalle (Talbaranes/TalbprodDetalle), confirmo y cierro la aplicacion no me guarda en la tabla maestra pero si en la tabla detalle. Pero si antes de cerrar me muevo de registro con el DBNavegator entonces si guarda bien en las dos tablas. ¿A que puede ser debido? ¿Como puedo solvertarlo por si el usuario cierra al dar de alta un registro sin moverse en la tabla?
MUCHAS GRACIAS. |
tienes que hacer post en la tabla de albarranes
TAlbarranes.Post; |
Perdona Eduarcol, pero si que lo hago,
¿tengo que hacerlo otra vez antes de cerrar la aplicacion? Gracias. |
si yo veo que en el codigo que colocas lo pones, pero estas seguro que ese codigo es llamado en la ejecucion del programa?:confused:
|
Hola teclilla,
¿Podrías por favor exponernos el código? Dices que haces eso y aquello otro... es posible que el problema venga de otro lado. Necesitamos que nos aportes mayores detalles de lo que nos brindas. Un poco más de tu código podría revelarnos parte del problema y/o su solución. No dudes en exponer tu duda, cuanto más información nos brindes mejor sera para ti. No te vamos a cobrar por la cantidad palabras. Pon un poco más de tu parte para que podamos ayudarte. Saludos, |
OK,
Al crear el formulario:
Despues tengo en el formulario un botón para añardir un nuevo albaran:
Despues introducimos los demas DbEdits que queramos del albaran y despues le damos al boton de confirmar para grabar:
Al ejecutar el programa, si doy de alta un albaran, y sin cambiar de registro cierro, no se guarda en la tabla maestra y si en la tabla detalle, pero si cambio de registro antes de salir se graba en las dos :confused: MUCHAS GRACIAS. |
La franja horaria es GMT +2. Ahora son las 06:52:00. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi