ALIAS Sf_FatP
variavel znil = DbGoto(z_recno)
variavel nRow = 0
variavel m_fobs = ''
variavel zPcod := 0
variavel zQuant := 0
variavel zQreserv := 0
variavel zQatend := 0
variavel zPrTotal := 0
variavel zPdesc := ''
variavel zPrUnit := 0
variavel pag := 1
variavel zQtdProdutos := 0
variavel zQtdUnidades := 0
variavel sPrtLineLen := 90
variavel zDesenhoDoForm := ""
variavel zFgTemServicos := .f.
variavel znil = DebugAlert("Pedido: "+Str(fnumped)+"  NF: "+str(fnum) )
VARIAVEL #TEXTO_FONTE
   debugalert('0 entrou no cupom_nfe_separacao.lst ')
     // Fontes Padroes:
     // Courier               
     // Courier-Bold          negrito
     // Courier-Oblique       italico
     // Courier-BoldOblique   negrito italico
     // Helvetica             
     // Helvetica-Bold        negrito
     // Helvetica-Oblique     italico
     // Helvetica-BoldOblique negrito italico
      
      oLst:nLinesPorPagina := 66
      oLst:lOutPutXML := .f.

      oLst:cAlias_DataCols := 'itens'
      oLst:cAliasMaster := 'itens'
      oLst:lPrtRodape := .f.
      
      oLst:AddCol('Prod;zPcod;P;999999;6;;')
      oLst:AddCol('Descricao;zPdesc;P;@S35;35;;')
      oLst:AddCol('Pedida;zQuant;P;9999.99;7;;')
      oLst:AddCol('Produzida;zQreserv;P;999999.99;9;;')
      oLst:AddCol('Pendente;zQuant-zQreserv;P;999999.99;9;;')
      oLst:AddCol('Exped;zQatend;P;999999.99;9;;')
      
      oLst:AddCab( {"AplicaFormatacaoDefaultNoCabecalho"=>"nao", "style"=>"font:Helvetica-Bold#size:14", "COLS"=>"0,C"}, "CONFERENTE DE PRODUCAO DA OP "+StrZero(Sf_FatP->fnumped,10) )

      oLst:AddCab( '_LINHA_GROSSA_' )
      oLst:AddCab( {"COLS"=>"0,C"} ,{"style"=>"font:Helvetica-BoldOblique"}, 'Identificacao do Estabelecimento Emitente' )
      oLst:AddCab( 'Emitente:'+AllTrim(hDadosEmp["EMP_NOME"]), '',  'CNPJ: '+AllTrim(emp_cgc) )
      // oLst:AddCab( 'Vendedor: ('+lTrim(Str(Sf_FatP->fVendedor,6))+') '+m_fnome, 'Emissao: '+Dtoc(m_fDataEmi)+' as '+m_fHora)
      oLst:AddCab( 'Vendedor: ('+lTrim(Str(Sf_FatP->fVendedor,6))+') ', 'Emissao: '+Dtoc(Sf_FatP->fDataEmi)+' as '+Sf_FatP->fHora)
      oLst:AddCab( '_LINHA_FINA_' )
      oLst:AddCab( {"COLS"=>"0,C"} ,{"style"=>"font:Helvetica-BoldOblique"}, 'Identificacao do Destinatario' )
      if Sf_FatP->fcli>0
         Sccrcli->(DbGoto( Sf_FatP->fcli ))
         oLst:AddCab( 'Nome: '+strzero(Sf_FatP->fcli,6)+'- '+AllTrim (Sccrcli->Cr_Nome), 'CNPJ/CPF: '+AllTrim(sccrcli->Cr_Cgc))
         // oLst:AddCab( 'Fantasia: '+sccrcli->cr_fantasi, 'Contato: '+sccrcli->cr_contato, 'Fone:'+sccrcli->cr_fone)
         oLst:AddCab( 'Contato: '+AllTrim(sccrcli->cr_contato), 'Fone:'+AllTrim(sccrcli->cr_fone))
         oLst:AddCab( 'Email: '+AllTrim(sccrcli->cr_email))
         oLst:AddCab( 'Endereco: '+sccrcli->(AllTrim(cr_rua)+' '+AllTrim(cr_numrua)+' '+AllTrim(cr_bairro)+' '+AllTrim(cr_cep)) )
         if !empty(sccrcli->cr_pontore)
            oLst:AddCab( 'Ponto Ref: '+AllTrim(sccrcli->cr_pontore) )
         endif
      else
         oLst:AddCab( 'Nome: Cliente Avulso', '')
      endif

      oLst:AddCab( {"style"=>"font:Helvetica-BoldOblique#size:12#ncolor:99#width:80#bgfill:SombraEscuraComBorda", "COLS"=>"0,C"}, 'ITENS DA OP' )
      oLst:AddCab( {"style"=>"font:Courier-Oblique"}, '_CABCOLS_')

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

      DbSelectArea("Sf_PnMv")
      DbSeek(Sf_FatP->fNumPed)
      do while Sf_FatP->fNumPed = fNumPed .and. .not. eof()
         if Quant > 0 
            zPcod := Sf_PnMv->Cod
            zQuant := Sf_PnMv->Quant 
            if zQuant > 0 .and. se_prod->(DbSeek(zPcod))
               zQreserv := Sf_PnMv->mqReserv
               zQatend  := Sf_PnMv->mqAtend 
               if se_prod->pServico="S"
                  zFgTemServicos := .t.               
               else
                  zQtdProdutos := zQtdProdutos + 1
                  zQtdUnidades := zQtdUnidades + zQuant 
                  zPdesc := se_prod->pDesc
                  oLst:EvalLineBlocks('DETALHE', '_DATACOLS_')
               endif
            endif
         endif
         DbSkip()
      enddo

      zQreserv := 0
      zQatend  := 0

debugalert('2 imprimira servicos vendidos na cupom_nfe_separacao.lst')
      if zFgTemServicos
         oLst:EvalLineBlocks('DETALHE', '')
         oLst:EvalLineBlocks('DETALHE', {"style"=>"font:Helvetica-BoldOblique#size:12#ncolor:99#width:80#bgfill:SombraEscuraComBorda", "COLS"=>"0,C"}, 'SERVICOS DA OP')
         oLst:EvalLineBlocks('DETALHE', {"style"=>"font:Courier-Oblique"}, '_CABCOLS_')
         DbSeek(Sf_FatP->fNumPed)
         do while Sf_FatP->fNumPed = fNumPed .and. .not. eof()
            if Quant > 0 
               zPcod := Sf_PnMv->Cod
               zQuant := Sf_PnMv->Quant 
               if zQuant > 0 .and. se_prod->(DbSeek(zPcod)) .and. se_prod->pServico="S"
                  zPdesc := se_prod->pDesc
                  oLst:EvalLineBlocks('DETALHE', '_DATACOLS_')
               endif
            endif
            DbSkip()
         enddo
      endif

debugalert('1 imprimira DEVOLUCOES na cupom_nfe_separacao.lst ')
      if Sf_FatP->fValDev > 0
         oLst:EvalLineBlocks('DETALHE', '')
         oLst:EvalLineBlocks('DETALHE', {"style"=>"font:Helvetica-BoldOblique#size:12#ncolor:99#width:80#bgfill:SombraEscuraComBorda", "COLS"=>"0,C"}, 'PRODUTOS DEVOLVIDOS')
         oLst:EvalLineBlocks('DETALHE', {"style"=>"font:Courier-Oblique"}, '_CABCOLS_')
         DbSeek(Sf_FatP->fNumPed)
         do while Sf_FatP->fNumPed = fNumPed .and. .not. eof()
            if Quant > 0 
               zPcod := Sf_PnMv->Cod
               zQuant := Sf_PnMv->quantdev
               if zQuant > 0 .and. se_prod->(DbSeek(zPcod)) 
                  zPdesc := se_prod->pDesc
                  oLst:EvalLineBlocks('DETALHE', '_DATACOLS_')
               endif
            endif
            DbSkip()
         enddo
      endif

      oLst:EvalLineBlocks('DETALHE', '')
      // oLst:EvalLineBlocks('DETALHE', {"style"=>"font:Helvetica-Oblique#col:40#row:(oPdf:nLinesPorPagina-6-1)"}, "")
      m_fobs:=AllTrim(Sf_FatP->fobs)
      nRow := 0
      do while ++nRow <= mlCount(m_fobs, 60)
         oLst:EvalLineBlocks('DETALHE', {"style"=>"font:Courier-Oblique#size:8#col:0#row:(oPdf:pRow+1)"}, Rtrim(memoline(m_fobs,60,nRow)) )
      enddo

      // oLst:EvalLineBlocks('DETALHE', zQtdProdutos>0, {"style"=>"font:Helvetica-Oblique#col:40#row:(oPdf:nLinesPorPagina-6)"}, " ","PRODUTOS DISTINTOS: "+   Transform(zQtdProdutos,"@E 99,999,999,999.99") )
      oLst:EvalLineBlocks('DETALHE', zQtdProdutos>0, {"style"=>"font:Helvetica-Oblique#col:40"}, " ","PRODUTOS DISTINTOS: "+   Transform(zQtdProdutos,"@E 99,999,999,999.99") )
      oLst:EvalLineBlocks('DETALHE', zQtdUnidades>0,  {"style"=>"font:Helvetica-Oblique#col:30"},            " ","TOTAL DE UNIDADES: "+   Transform(zQtdUnidades,"@E 99,999,999,999.99") )

debugalert('11 saindo da cupom_nfe_separacao.lst ')
      
      oLst:Run()
      oLst:End()
#FIM_TEXTO_FONTE

comando antes DbGoBottom()
