FoxPro/Visual FoxPro - Dejar solo el registro más reciente

 
Vista:
Imágen de perfil de Cristhian
Val: 47
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Dejar solo el registro más reciente

Publicado por Cristhian (21 intervenciones) el 25/06/2020 17:53:15
Buenas
Tengo una tabla de presupuestos la cual voy cargando datos cada cierto tiempo, con precios de articulos de varios proveedores. Con el tiempo tendré muchos registros de precios de los mismos articulos.
Lo que yo quiero hacer es digitar el nombre del articulo en un TEXTBOX y al dar ENTER haga un BROWSE mostrando una sola vez el registro del articulo buscado(el mas reciente) de cada proveedor.

por ejemplo

Tabla Presupuestos

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


Buscando articulo1 en el BROWSE muestre asi:

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

Gracias de antemano
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Mauricio Antonio
Val: 471
Plata
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Dejar solo el registro más reciente

Publicado por Mauricio Antonio (1541 intervenciones) el 25/06/2020 18:15:42
Que tienes de codigo? O quieres que se te haga todo el trabajo?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Cristhian
Val: 47
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Dejar solo el registro más reciente

Publicado por Cristhian (21 intervenciones) el 25/06/2020 19:14:20
Gracias por la pronta respuesta

La verdad no estoy teniendo idea de como hacer.

Adjunto el código que tengo actualmente en el InteractiveChange del TextBox, así 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 el ejemplo que puse anteriormente, tengo tres articulos (articulo1, articulo2, articulo3) de dos distintos proveedores(proveedor1, proveedor2), en tres fechas distintas.

Si digito "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

1
2
3
4
5
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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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 mejor mi necesidad
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 34
Ha aumentado su posición en 2 puestos en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Dejar solo el registro más reciente

Publicado por Rodolfo (10 intervenciones) el 04/08/2020 20:27:12
Te sugiero agregar un campo boolean (reciente) para controlar la vigencia del precio, y cada vez que introduzcas un nuevo precio del mismo producto y proveedor deshabilitas los demás, de esta manera siempre tendrás identificados los más recientes sin necesidad de estar evaluando la fecha.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
SELECT presupuestos_proveedores
SELECT * from presupuestos_proveedores ;
WHERE ATC(UPPER(ALLTRIM(this.value)),UPPER(ALLTRIM(articulo))) > 0 ;
INTO CURSOR encontrada
 
 
SELECT encontrada
SCAN FOR reciente
	SCATTER MEMVAR
	SELECT detalle3
	APPEND BLANK
	GATHER MEMVAR
	replace codigo WITH encontrada.codigo_proveedor
	replace stock WITH encontrada.cantidad
	thisform.grid2.Refresh
ENDSCAN
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar