Operaciones entre tablas

Francisco
26 de Diciembre del 2003
Hola, por favor necesito ayuda en algo.... tengo dos tablas de articulos, la una es de articulos de mercaderia por mayor y la otra tabla es de articulos de mercaderia por menor cuando se hace una transferencia de mercaderia de por mayor a por menor tiene que transferirse el articulo con el precio incrementado en un 20%. Lo que quiero hacer es lo siguiente: en una textbox ingreso la categoria inicial y en otro la categoria final del articulo y hacer que todo ese rango de articulos desde-hasta ingresado en los textbox copie los precios de los mismos articulos de pormayor y me los incremente el precio en un 20% en la tabla de por menor pero en la tabla de por mayor queden intactos.... si alguien puede ayudarme con eso por favor les agradeceria infinitamente... saludos y si quieren una explicacion mas detallada por favor pidanmelo por mail, gracias un saludo a todos

Raul
26 de Diciembre del 2003
Hola Francisco:

Cuando ingreses la categoria inicial en el 1er. TextBox captura el precio de la categoria inicial en una variable de memoria, lo mismo que esta variable la multiplicas por 1.20 y la guardas en otra variable que sera la variable con la que reemplazaras el precio en la tabla de los articulos al por menor.
Lo anterior es haciendolo uno por uno.
Si lo que haces es un query llamando un rango de productos en el query puedes determinar una sentencia mas o menos asi:

Select tablapormayor.codigo, tablapormayor.precio,tablapormayor.precio*1.20 as preciomenor, 00000 as cantidad;
from tablapormayor;
into table mitabla

Con lo anterior tendras una tabla con el rango de articulos que quieres pasar con el precio por menor con un 20% mas y solo tendrias que poner las cantidades que trasladaras.

Espero te sirva y Felices Fiestas

Francisco
26 de Diciembre del 2003
Gracias Raul, se me soluciono el problema pero solo una parte, a lo mejor no me supe explicar bien, lo que pasa es lo siguiente tengo 2 tablas MAYOR y Menor, pero en MAYOR existen muchicimos mas articulos que Menor ya que MAYOR es el proveedor de Menor, lo que quiero es que todos los articulos de Menor se incrementen en un 20% mas de los precios de MAYOR es decir que si en MAYOR tengo 100 articulos y en Menor tengo 50 articulos quiero que los 50 articulos de Menor me compare con los mismos 50 articulos de MAYOR y si el precio es el mismo entonces que me lo incremente en Menor un 20%, huyy, espero que me enteiendan porque creo que ni yo mismo me entiendo lo que quiero explicar, pero mas o menos esa es la idea, por favor si tienen mas ideas ayudenme se los agradecere infinitamente, muchos saludos y felices fiestas.

ferherpe
26 de Diciembre del 2003
Si lo que deseas hacer es una actualizacion de la tabla Menor en relacion a la tabla Mayor dependiendo del precio existente en dicha tabla no has considerado el uso de un Scan?. Ejemplo

If not used ('mayor')
use mayor in 0 exclusive
else
use mayor in 0 exclusive
endif

If not used ('menor')
use menor in 0 exclusive
else
use menor in 0 exclusive
endif

select menor
go top
a=menor.costo
Scan for a > 0
c=menor.claveprod
b=menor.costoprod
select mayor
go top
seek &c
if found() and mayor.precio=&b
d=mayor.precio
select menor
replace menor.costoprod with d*1.2
else
select menor
endif
endscan

Considero que la rutina anterior te puede resolver el problema.
Saludos

ferherpe
26 de Diciembre del 2003
Correccion en la activacion de las tablas

If not used ('mayor')
use mayor in 0 exclusive
else
select mayor
endif

If not used ('menor')
use menor in 0 exclusive
else
select menor
endif

la busqueda lo vas a hacer por medio de:
seek ( en caso de tablas indexadas )
locate for ( en caso de que no uses indices )

Saludos