Leer desde una tabla y grabar en otra

Como leo tablas de principio a fin
Tengo que leer una tabla de movimientos que contiene 3 campos, uno que es tipo de movimiento, el otro que es cantidad, y el otro es código de producto. La otra tabla es un kardex de productos. Debo leer desde la tabla movimiento, buscar con el código de producto en kardex y según el tipo de movimiento debo sumar o restar el campo saldo de bodega.
Luego de cada fila leída, tengo que ir borrandodola para que en otro proceso no vuelva a modificar el saldo.
¿Me podría ayudad please?

1 Respuesta

Respuesta
1
Antes que todo mi recomendación es que te empapes de los conceptos, OBJETO, CLASE, HERENCIA, POLIMORFISMO, PROPIEDADES, EVENTOS, MÉTODOS, y todo lo relacionado con la programación de reciente generación, clipper es un lenguaje con muchas bondades, incluso contiene un pequeño motor de clases, sin embargo esto no te lleva al entendimiento de la modalidad conocida como programación orientada a objetos y/o programación orientada a eventos.
De las cuales esta ultima es la que contiene como principio, la herramienta de desarrollo Power Builder.
Con respecto a tu comentario, tienes simplemente que añadir un nuevo paso o proceso, que simplemente efectúe un insert dentro de la tabla que mencionas, el proceso que anteriormente te propongo es aun factible, y simplemente tendrás que añadir un registro en una tercera tabla, esto como te digo lo puedes hacer con una simple instrucción INSERT
Recuerda que power builder permite utilizar los conceptos, BEGIN TRANSACTION y COMMIT, ROLLBACK, el cual puede ayudarte en este caso pues creo que estas ahora haciendo 2 procesos de actualización y por lo que pude ver en tu exposición, en una tabla actualizas y ahora en otra insertas, los 2 procesos están atados, pues no puedes actualizar sin insertar, y no podrás insertar sin actualizar.
Con las opciones COMMIT y ROLLBACK, puedes evitar esto, con commit confirmas toda la transacción y si sucediera algo malo simplemente efectúas un ROLLBACK, y la transacción es rechazada.
Por supuesto que si esto sucede simplemente quiere decir que algún error sucedió, por lo que el proceso deberá enviar un mensaje de error, e incluso detenerse si así fuera el caso.
Estoy siguiendo tu consejo y tienes razón, power tiene herramientas que antes ni se soñaban, he leído lo que hace el datastore y eso es lo que voy a utilizar.
Muchas gracias
Podrías darme un poco más detallado tu problema,
lo que necesitas es leer y grabar para luego leer o crear una consulta,¿?
O lo que necesitas es crear una consulta de kardex.
Gracias por tu respuesta, en relación a lo que me pides te aclaro lo siguiente :
Son 2 tablas, una se llama movimiento y la otra kardex, te resumo los campos más importantes de cada una.
Movimiento :
Tipo de movimiento (11 al 19) entradas)
(21 AL 29 SALIDAS)
Código de producto
Cantidad
kardex:
Código de producto
Saldo
Ahora te detallo el procedimiento:
Primero leo un registro del movimiento, con el código del producto, busco en el kardex, si el tipo de movimiento es entre 11 y 19, sumo la cantidad al campo saldo del kardex, de lo contrario, esa cantidad debe ser restada.
Cada linea leída y actualizada en el kardex, debe ser borrada, para no ser reprocesada, la otra opción puede ser que al final del proceso, borre todo el contenido de la tabla movimiento.
Eso es todo, de antemano gracias por tu ayuda.
La forma más simple con la que puedes resolver este problema es utilizando DATASTORE.
Un objeto datastore, es simplemente un datawindow, con la diferencia que este no es visual, sin embargo contiene todas las bodades del datawindow, o en otras palabras, puedes insertar, modificar o borrar un registro y este es igualmente afectado en la tabla a la que relaciona el datastores.
La idea es crear 1 datastore, este contendrá la tabla principal, en este caso creo que es la del MOVIMIENTOS.
Una vez cargado los datos en el datastores, puedes moverte dentro de el libremente, por ejemplo utilizando un ciclo controlado.
un for
El cual ira desde el registro 1 hasta el ultimo, y este leerá cada registro secuencialmente hasta que finalize dicho for.
Si utilizas este proceso no se si aun persistes en borrar el registro, pero igualmente si los necesitas borrar, te recomiendo lo hagas al final, pues borrar un registro en un datastore, reconfigura el apuntador.
Bien
Una vez cargado los datos de la tabla principal, entonces efectúas tus cálculos, y con estos haces un UPDATE directamente en la tabla de KARDEX.
Y así hasta finalizar el ultimo registro del datastores.
Recuerda siempre que ejecutas un update, efectuar un commit, pues si esto lo hicieras al final de todo el proceso, posiblemente satures el área de swaping de tu base de datos y degrades al sistema.
Al finalizar esto obtendrás el resultado que esperas
Espero que esto pueda ser de utilidad para resolver tu problema

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas