Uso del comando replace para actualizar datos en tabla

Estoy bloqueado con lo siguiente...

Desde una ventana (albaranes de proveedores), donde hay un campo con el código de proveedor, y una rejilla con los artículos que se han adquirido al proveedor, necesito recorrer cada artículo de la rejilla (cursor clineas), recoger el dato del artículo (clineas. Código) y seguidamente abrir la tabla artículos y reemplazar el valor del campo artículos. Clapro por el valor del proveedor que hay en thisform. Pestaña1. Pag1. Codpro.value.

Para ello estoy intentando lo siguiente... (que no me da error pero no me funciona) no me reemplaza el valor que necesito para que cada artículo tenga relacionado a su proveedor.

_valor=alltrim(thisform.pestaña1.pag1.codpro.value)  &&guardo en la variable _valor la clave del proveedor

Select clineas   &&abro este cursor para recorrer las líneas de cada artículo

Scan                 &&escaneo los artículos

select articulo   && abro la tabla articulo

Replace articulo.clapro with _valor   && a cada artículo le añado la clave del proveedor 

Endscan  &&finalizo el scan de clineas

¿Alguien puede ver el error que puedo estar cometiendo para que no lo guarde?

1 Respuesta

Respuesta
1

Puedes usar el comando SET RELATION, para ello debes crear un indice en la tabla de Proveedores; mira el ejemplo..

Luego en el método LOAD del formulario haces..

select select(1)

USE proveedores order id

select select(1)

USE articulos

SET RELATION codigo into proveedor

** El valor del campo que para el ejemplo llamé "codigo" sería el valor relacional que corresponde al mismo valor "id" de la tabla proveedores.

.. Por otro lado si en el formulario tienes cargado en DataEnvironment ambas tablas, solo debes abrir ésta pantalla de DataEnvironment, localiza el campo relacional de proveedores y lo arrastras hasta la tabla de articulos sobre el campo equivalente.

Por ej.

En el ejemplo desde la DataEnvironment selecioné tabla proveedores y defini el orden al indice que he creado antes "id".

En ésta captura de pantalla se puede apreciar como queda la relación hecha entre las tablas cuando arrastre mi campo "id" de proveedores a la tabla de artículos que contiene el mismo valor relacional del proceedor.

...

De éste modo cada vez que te muevas en la tabla articulos, el cursor se moverá automáticamente en la tabla proveedor y así podrás modificar lo que necesitas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas