
Seleccionar campos del ultimo registro de una subtabla
Publicado por Cristhian (13 intervenciones) el 22/11/2016 00:49:16
Buenas noches
Estoy programando en FoxPro9. No soy experto, entiendo lo básico
Tengo una tabla llamada crédito
Nro de factura Cliente Condición Saldo
1 cliente1 pendiente 10000
1 cliente1 pendiente 5000
4 cliente2 pendiente 25000
7 cliente3 pendiente 20000
7 cliente3 pendiente 10000
7 cliente3 cancelado 0
12 cliente4 pendiente 50000
12 cliente4 pendiente 30000
12 cliente4 pendiente 25000
quiero que al iniciar un formulario, se complete automaticamente un grid con los datos de las facturas no canceladas. tomar solo el ultimo registro de cada numero de factura aun no cancelada. en el caso de la tabla del ejemplo seria
Nro de factura Cliente Condición Saldo
1 cliente1 pendiente 5000
4 cliente2 pendiente 25000
12 cliente4 pendiente 25000
Mi codigo es el siguiente, en el Activate del formulario
SELECT credito
GO TOP
num1=credito.numero
SELECT credito
DO WHILE !EOF()
LOCATE FOR credito.numero=num1
IF FOUND()
SELECT *;
from credito;
WHERE credito.numero=num1 ORDER BY credito.numero INTO CURSOR encontrado1
SELECT encontrado1
GO BOTTOM
IF encontrado1.condicion="PENDIENTE"
SELECT informaciones &&Grid
APPEND BLANK
replace informaciones.aviso WITH "Vencimiento factura cliente: "+ALLTRIM(encontrado1.cliente)+" - Saldo: "+ALLTRIM(STR(encontrado1.saldo))+" - Fecha: "+ DTOC(encontrado1.vencimiento)
ENDIF
ELSE
SELECT credito
SKIP
num1=num1+1
ENDIF
No me funciona este codigo
Alguien puede ayudarme?
ENDDO
Estoy programando en FoxPro9. No soy experto, entiendo lo básico
Tengo una tabla llamada crédito
Nro de factura Cliente Condición Saldo
1 cliente1 pendiente 10000
1 cliente1 pendiente 5000
4 cliente2 pendiente 25000
7 cliente3 pendiente 20000
7 cliente3 pendiente 10000
7 cliente3 cancelado 0
12 cliente4 pendiente 50000
12 cliente4 pendiente 30000
12 cliente4 pendiente 25000
quiero que al iniciar un formulario, se complete automaticamente un grid con los datos de las facturas no canceladas. tomar solo el ultimo registro de cada numero de factura aun no cancelada. en el caso de la tabla del ejemplo seria
Nro de factura Cliente Condición Saldo
1 cliente1 pendiente 5000
4 cliente2 pendiente 25000
12 cliente4 pendiente 25000
Mi codigo es el siguiente, en el Activate del formulario
SELECT credito
GO TOP
num1=credito.numero
SELECT credito
DO WHILE !EOF()
LOCATE FOR credito.numero=num1
IF FOUND()
SELECT *;
from credito;
WHERE credito.numero=num1 ORDER BY credito.numero INTO CURSOR encontrado1
SELECT encontrado1
GO BOTTOM
IF encontrado1.condicion="PENDIENTE"
SELECT informaciones &&Grid
APPEND BLANK
replace informaciones.aviso WITH "Vencimiento factura cliente: "+ALLTRIM(encontrado1.cliente)+" - Saldo: "+ALLTRIM(STR(encontrado1.saldo))+" - Fecha: "+ DTOC(encontrado1.vencimiento)
ENDIF
ELSE
SELECT credito
SKIP
num1=num1+1
ENDIF
No me funciona este codigo
Alguien puede ayudarme?
ENDDO
Valora esta pregunta


0