Recuperar registros más recientes

15 views
Skip to first unread message

Cristhian Martínez

unread,
Jun 25, 2020, 2:40:00 PM6/25/20
to Visual Foxpro Latinoamérica
Buenas tardes

Tengo una tabla de presupuestos en la cual voy cargando datos cada cierto tiempo, con precios de articulos de varios proveedores. Con el tiempo tendré muchos registros los mismos articulos.
Lo que yo quiero hacer es que al escribir el nombre del articulo en un TEXTBOX cargue un grid con los registros del articulo buscado(el mas reciente) de cada proveedor.

El código lo tengo actualmente en el InteractiveChange del TextBox, asi cuando voy escribiendo, ya van apareciendo en un grid los articulos que coinciden con las letras que voy escribiendo.
Este código me recupera y carga en el grid los registros que coincidan con lo que voy escribiendo en el TextBox, pero yo quiero que solamente recupere el registro con la fecha más actual de cada proveedor. Es decir seria un único registro del articulo por cada proveedor.

En esta tabla de ejemplo, tengo tres articulos (articulo1, articulo2, articulo3) de dos distintos proveedores(proveedor1, proveedor2), en tres fechas distintas.

Tabla Presupuestos original


ARTICULO- PROVEEDOR -FECHA
articulo1 - proveedor1 - 01/01/20
articulo2 - proveedor1 - 01/01/20
articulo3 - proveedor1 - 01/01/20
articulo1 - proveedor2 - 01/01/20
articulo2 - proveedor2 - 01/01/20
articulo3 - proveedor2 - 01/01/20
articulo1 - proveedor1 - 02/02/20
articulo2 - proveedor1 - 02/02/20
articulo3 - proveedor1 - 02/02/20
articulo1 - proveedor2 - 02/02/20
articulo2 - proveedor2 - 02/02/20
articulo3 - proveedor2 - 02/02/20
articulo1 - proveedor1 - 03/03/20
articulo2 - proveedor1 - 03/03/20
articulo3 - proveedor1 - 03/03/20
articulo1 - proveedor2 - 03/03/20
articulo2 - proveedor2 - 03/03/20
articulo3 - proveedor2 - 03/03/20


Si escribo "articulo1" en el TextBox, deberia cargar en el grid. lo siguiente:

ARTICULO PROVEEDOR FECHA
articulo1 - proveedor1 - 03/03/20
articulo1 - proveedor2 - 03/03/20

Sin embargo con mi código actual carga lo siguiente:

ARTICULO PROVEEDOR FECHA
articulo1 - proveedor1 - 01/01/20
articulo1 - proveedor2 - 01/01/20
articulo1 - proveedor1 - 02/02/20
articulo1 - proveedor2 - 02/02/20
articulo1 - proveedor1 - 03/03/20
articulo1 - proveedor2 - 03/03/20


Codigo actual en InteractiveChangue del TextBox

SELECT presupuestos_proveedores &&Tabla donde están los presupuestos
SELECT *;
from presupuestos_proveedores;
WHERE ATC(UPPER(ALLTRIM(this.value)),UPPER(ALLTRIM(presupuestos_proveedores.articulo)))>0; &&Para que vaya cargando las coincidencias de lo que voy escribiendo
ORDER BY presupuestos_proveedores.fecha INTO CURSOR Encontrada

SELECT encontrada
GOTO TOP
DO WHILE !EOF()
SELECT detalle3 &&Cursor al cual esta conectado el grid
APPEND BLANK
replace detalle3.codigo WITH encontrada.codigo_proveedor
replace detalle3.articulo WITH encontrada.articulo
replace detalle3.stock WITH encontrada.cantidad
replace detalle3.costo WITH encontrada.costo
replace detalle3.proveedor with encontrada.proveedor
replace detalle3.fecha WITH encontrada.fecha
thisform.grid2.Refresh
SELECT encontrada
SKIP
ENDDO
ENDIF

Espero poder haber aclarado mi necesidad
Reply all
Reply to author
Forward
0 new messages