Para conseguir o resultado que eu queria, tive que usar a boa e velha
GAMBIARRA!
Ficou muito bom. Rapido. Uma bala
- Listo todos os produtos comprados do fornecedor no periodo
- Organizo com data DECRESCENTE
- Descarto os outros resultado de compras q nao seja a ultima, pegando apenas o primeiro resultado de cada produto
cQuery = "SELECT a.codprd, a.uniprd, a.unicom, a.qtdprd, a.vlruni, a.numnot, a.datent, b.descri, b.sldstk " + ;
"FROM a04dnf a " + ;
"INNER JOIN a03prd b ON ( a.codprd=b.codigo ) " + ;
"WHERE a.is_deleted = 'N' and a.CodFrn='&nCodFrn' and a.datent between '&vDataI_' and '&vDataF_' " + ;
"ORDER BY b.descri, a.datent DESC "
GERA_TAB()
use &dbftmp as cQuery NEW SCROLLABLE
DbGoTop()
Do While !Eof()
nCodPrd := CodPrd
nConta := 0
Do While nCodPrd = CodPrd
If nConta = 0
@ PROW() + 01,000 SAY StrZero(CodPrd,5) + " " + Left(DesCri,40)
@ PROW() ,048 SAY UniCom
@ PROW() ,051 SAY UniPrd
@ PROW() ,056 SAY DatEnt
@ PROW() ,069 SAY QtdPrd Pict "@E 99,999.99"
@ PROW() ,083 SAY VlrUni Pict "@E 99,999.99"
@ PROW() ,096 SAY NumNot
@ PROW() ,123 SAY SldStk Pict "@E 99,999.99"
@ PROW() + 01,000 SAY REPLICATE("-",132)
Endif
nConta++
DbSkip()
Enddo
Enddo
Use