alias se_lotes
index temp001 left(dtos(data_venc),6)+pDesc
outroarq se_prod seip_c pcod
VARIAVEL LST_TP = 58 
VARIAVEL z_de = date()
VARIAVEL z_ate = date()

T10,17,15,60,Produtos por Dt Vencimento
T2,4,Data Vencimento Inicial:,8,z_de,99.99.99
T3,4,Data Vencimento Final..:,8,z_ate,99.99.99

comando antes dbgotop()
COMANDO ANTES #TEXTO_FONTE
 
   oLst:cAlias_DataCols := '_lotes'
   oLst:cAliasMaster := '_lotes'
   oLst:lPortrait := .t.
   
   oLst:lGeraDbTmp := .f.
   oLst:lOutputFr3 := .f.
   oLst:lOutputPdf := .t.
   
   // oLst:lOutputFr3 := .t.

   oLst:Cab1( "Lotes com Vencimento entre "+dtoc(z_de)+" e "+Dtoc(z_ate))
   oLst:Cab4( "Impressao em "+Dtoc(s_datual)+" as "+time() )
  
   oLst:AddCab( '_LINHA_FINA_' )
   oLst:AddCab( '_CABCOLS_' )
   oLst:AddCab( '_LINHA_GROSSA_' )

   oLst:AddCol('DataVenc;zdtvenc;P;@S7;7;;')
   oLst:AddCol('Codigo;pCod;N;999999;6;;')
   oLst:AddCol('Descricao;ZPDESC;P;@S40;40;;') 
   oLst:AddCol('Lote;plote;C;@s10;10;;') 
   oLst:AddCol('Estoque;se_prod->peatual;P;99999;5;;')

   oLst:AddRodape( '_LINHA_FINA_', "", {|| "Pagina "+Str(++pag,4)+" / ####"} )

#FIM_TEXTO_FONTE

comando duranteaf zpcod = pcod
comando duranteaf se_prod->(DbSeek(zpcod))

filtro DATA_VENC>=z_de.and.DATA_VENC<=z_ate .and. se_prod->peatual>0 .and. day(DATA_VENC)>0

comando durante zpdesc = se_prod->pdesc
comando durante zsaldo = peatbal+Mquant-Mqatend
comando durante zdtvenc = Substr(Dtoc(DATA_VENC),4,3)+Str(Year(Data_Venc),4)

COMANDO DURANTE oLst:PrtD( '_DATACOLS_' )

