Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Ayuda para relacionar dos tablas (https://www.clubdelphi.com/foros/showthread.php?t=37948)

axel77 27-11-2006 20:31:54

Ayuda para relacionar dos tablas
 
Pido su ayuda, tengo un programa que maneja inventario y ventas, tengo dos tablas en paradox uso delphi 6, el detalle es que necesito que cuando venda algun articulo, se me descuente automaticamente al hacer un post de la venta, en la tabla de inventarios.

lo que hago es llenar loscompos de venta y luego filtro la tabla de inventarios para hacer un post directo al articulo y luego guardar la venta, esta muy complicado, saben que estoy aprendiendo y nosoy muy experto espero me puedan ayudar.

no se si me explique necesito la ayuda de alguien.

gracias

Neftali [Germán.Estévez] 28-11-2006 11:54:12

Deberías leer algo sobre transacciones, ya que esas operaciones debes hacerlas todas dentro de una transacción.
Por lo demás es ir paso a paso.
Una vez guardado el primer registro, busca el correspondiente a la segunda tabla, actualiza el valor y haz el update.

Intenta hacerlo ppor pasos y si tienes problemas o algo no sale, dílo. Eso sí, intenta ser más concreto en las preguntas.

axel77 29-11-2006 17:28:36

Gracias por tus indicaciones voy a tratar de lñeer un poco mas, es solo que a veces necesitamos un empujon y voy a tratar de ser mas especifico

saludos:)

vinicc 01-12-2006 00:05:54

para la actualización de inventario
 
Hola, así a primera vista te sugiero lo siguiente:
utiliza el evento AfterPost, en la tabla de movimientos, es decir donde se registran tus ventas o compras. Luego mueve el puntero (con seek) en la tabla de inventarios al registro que conicida con tu producto. y luego suma o resta la cantidad.

ejemplo
MovsAfterPost()
seek(movs.codigo);
inve.existencia := inve.existencia + movs.cantidad;
end;

repito que es lo que primero se me ocurre, espero que esto ayude en algo.

axel77 05-12-2006 20:34:28

Gracias por tu respuesta vinicc, solo que soy muy nuevo en esto no se si pudierasser mas especifico no entiendo lo de movs. eso te lo da delphi en sus instrucciones, o mepudieras orientarque temas debo leer, gracias por tu ayuda.

Un comentario a Neftali, no he encontradomuchos temas de transacciones no me pudieras pasar algun link

gracias por su ayuda

Paoti 05-12-2006 23:46:39

axcel, haz de cuenta que tienes esto:

Articulos.db
ID_articulo
Nombre
Existencia


Ventas.
ID_VENtA
id_articulo
fecha_venta
cantidad



cuando hagas un post, haces esto supongo(agregando que actualize la existencia)



Código Delphi [-]
// tagregamos el detalle de venta.
tventas.insert;
tventas.fieldbyname('id_articulo').asinteger := varID_ARticulos;
tventas.fieldbyname('fecha_Venta').asdatetime := Date;
tevntas.post
// actualizamos el inventario
Tarti.close;
tarti.indexname := 'ixArticulo' // debemso de tener un indice por el campo id_articulo;
tarti.open;
tarti.gotokey 
tarti.fieldbyname('id_articulo').asinteger := varID_ARticulos;
tarti.gotonearest;  // <---- ve en la ayuda de Delphi gotonearest
// aqui encontro el id articulo, entonces hay que modificar la existencia


espero haberte dado una lijera ayuda.


busca en al ayuda de delphi gotonearest


tambien peudes hacer una consulta (TQuery)


P.S. GENIAL QUE VAS EMPEZANDO, PARADO ES BUENO PARA EMPEZAR PERO PARA HACER SISTEMAS TE RECOMENDRIA FIREBIRD, CLARO PARADOX TIENE LO SUYO, SE PUEDE HACER.



P.S. Bienvenido a club Delphi.


P.S. usa el buscador para checar el histórico, posiblemente ya haya alguien tenido tus misms dudas


La franja horaria es GMT +2. Ahora son las 15:27:14.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi