OUTROARQ SCCRCLI
OUTROARQ SE_PROD SEIP_C PCOD 
variavel zPcod := 0
variavel zQuant := 0
variavel zPrTotal := 0
variavel zPdesc := ''
variavel zPrUnit := 0
variavel pag := 1
variavel sPrtLineLen := 79
variavel zDesenhoDoForm := ""
variavel zFgTemServicos := .f.
variavel zTotMercadoria := 0
variavel zTotServicos   := 0
variavel zTotDevolucoes := 0
variavel zareaOrig := select()
variavel wCrNumPed := ""
VARIAVEL #TEXTO_FONTE
   
      debugalert('0 cupom.lst ')

      oLst:cAlias_DataCols := 'itens'
      oLst:cAliasMaster := 'itens'
      oLst:lPrtRodape := .f.
      oLst:lPortrait := .t.
      OLST:NLinesPorPagina := 50

      OLST:lOutputPDF := .f.
      OLST:lOutputXML := .f.
      OLST:lOutputXLS := .f.
      OLST:lOutputFr3 := .f.
      OLST:lOutputMatricial := .t.

      oLst:AddCol('Prod;zPcod;P;999999;6;;')
      oLst:AddCol('Descricao;zPdesc;P;@S35;35;;')
      oLst:AddCol('Quant;zQuant;P;9999.99;7;;')
      oLst:AddCol('Vl.Unit;zPrUnit;P;@E 99,999.99;9;;')
      oLst:AddCol('Vl.Total;zPrTotal;P;@E 99,999.99;9;;')
      
      oLst:AddCab( {"AplicaFormatacaoDefaultNoCabecalho"=>"nao", "style"=>"font:Helvetica-Bold#size:14", "COLS"=>"0,C"}, "PEDIDO "+StrZero(m_fnumped,10) )

      oLst:AddCab( '_LINHA_GROSSA_' )
      oLst:AddCab( {"style"=>"font:Helvetica-Bold", "COLS"=>"0,C"}, "NAO E' NOTA FISCAL - NAO E' VALIDO COMO RECIBO E COMO GARANTIA DE" )
      oLst:AddCab( {"style"=>"font:Helvetica-Bold", "COLS"=>"0,C"}, "MERCADORIA - NAO COMPROVA PAGAMENTO" )

      oLst:AddCab( '_LINHA_GROSSA_' )
      oLst:AddCab( 'Emitente:'+AllTrim(hDadosEmp["EMP_NOME"]), 'CNPJ: '+AllTrim(emp_cgc) )
      oLst:AddCab( 'Vendedor: ('+lTrim(Str(m_fVendedor,6))+') '+AllTrim(m_fnome), 'Em '+Dtoc(m_fDataEmi)+' as '+left(m_fHora,5)+'hs')
      oLst:AddCab( '_LINHA_FINA_' )
      
      if m_fcli>0
         Sccrcli->(DbGoto( m_fcli ))
         oLst:AddCab( 'Destinatario: '+strzero(m_fcli,6)+'- '+AllTrim (wcCrNome))
         oLst:AddCab( 'Cpf/CNPJ....: '+AllTrim(sccrcli->cr_CGC), 'RG.IE: '+AllTrim(sccrcli->cr_INSC_ES), 'Fone:'+AllTrim(sccrcli->cr_fone))
         oLst:AddCab( 'Endereco: '+sccrcli->(AllTrim(cr_rua)+' '+AllTrim(cr_bairro)+' '+AllTrim(cr_cep)) )
         if !empty(sccrcli->cr_pontore)
            oLst:AddCab( 'Ponto Ref: '+AllTrim(sccrcli->cr_pontore) )
         endif
         oLst:AddCab( 'Email: '+AllTrim(sccrcli->cr_email),'Fax/Celular:'+AllTrim(sccrcli->Cr_fax))
      else
         oLst:AddCab( 'Destinatario: Cliente Avulso', '')
      endif

      if sys_segmento='osauto'
         oLst:AddCab( '_LINHA_GROSSA_' )
         oLst:AddCab( 'Marca: '+m_VeicMarca , 'Modelo: '+m_VeicModel, 'Ano Fabricacao: '+m_VeicAnoFab)
         oLst:AddCab( 'Placa: '+m_VeicPlaca, 'Renavam/Chassi: '+m_VeicRenav)
      endif

      oLst:AddCab( '_LINHA_GROSSA_' )
      Abra("0NOIDX",r_siga,"vb_fpag","vb_fpag","vb_fpag","fplanopag")
      if dbseek(m_fplanopag)
         oLst:AddCab( {"COLS"=>"0,C"} ,{"style"=>"font:Helvetica-BoldOblique"}, 'Forma de Pagamento: '+AllTrim(vb_fpag->pdesc) )
      endif
      DbCloseArea()
      wCrNumPed := strzero(m_fnumped,6)
      ABRA ("0NOIDX", r_siga, "SCCRDUP", "SCCRDUP", "SCRID_ND", "CR_NUM_PED")
      if DbSeek(wCrNumPed)
         oLst:AddCab( {"style"=>"font:Helvetica-BoldOblique"}, 'Parcela       Vencto' ,'Valor  Td' )
         do while .not. eof() .and. left(cr_num_ped,6) = wCrNumPed
            if (cr_cod_Cli=m_fcli .or. cr_tip_dup="FP" ) 
               oLst:AddCab( {"style"=>"font:Helvetica-BoldOblique"}, alltrim(cr_num_ped)+' '+Dtoc(if(cr_tip_dup$"CT/CH",cr_dt_doc,cr_dt_venc)) , Transform(cr_valor,"@E 99999,999.99")+' '+cr_tip_dup )
            endif
            skip
         enddo
      endif
      DbCloseArea()
      DbSelectArea(zareaOrig)

      oLst:AddCab( '' )
      oLst:AddCab( '_LINHA_GROSSA_' )
      oLst:AddCab( {"style"=>"font:Courier-Oblique"}, '_CABCOLS_')
      oLst:AddCab( '_LINHA_FINA_' )

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

debugalert('1 imprimira itens vendidos na cupom.lst ')
      nRow := 1
      do while nRow <= len(v_pcod)
         zPcod := v_pcod[nRow]
         zQuant := v_quant[nRow]
         zPrTotal := v_valor[nRow]
         if zQuant > 0 .and. se_prod->(DbSeek(zPcod))
            if se_prod->pServico="S"
               zFgTemServicos := .t.               
            else
               zPdesc := se_prod->pDesc
               zPrUnit := v_valor[nRow]/zQuant
               oLst:EvalLineBlocks('DETALHE', '_DATACOLS_')
               zTotMercadoria := zTotMercadoria + v_valor[nRow]
            endif
         endif
         nRow := nRow+1
      enddo

debugalert('1 imprimira servicos vendidos na cupom.lst ')
      if zFgTemServicos
         oLst:EvalLineBlocks('DETALHE', '')
         // oLst:EvalLineBlocks('DETALHE', {"style"=>"font:Helvetica-BoldOblique#size:12#ncolor:99#width:80#bgfill:{1,{0.75,0.75,0.75},3}", "COLS"=>"0,C"}, 'SERVICOS EXECUTADOS')
         oLst:EvalLineBlocks('DETALHE', {"style"=>"font:Helvetica-BoldOblique#size:12#ncolor:99#width:80#bgfill:SombraEscuraComBorda", "COLS"=>"0,C"}, 'SERVICOS EXECUTADOS')
         oLst:EvalLineBlocks('DETALHE', {"style"=>"font:Courier-Oblique"}, '_CABCOLS_')
         // oLst:EvalLineBlocks('DETALHE', '_LINHA_GROSSA_')
         nRow := 1
         do while nRow <= len(v_pcod)
            zPcod := v_pcod[nRow]
            zQuant := v_quant[nRow]
            zPrTotal := v_valor[nRow]
            if zQuant > 0 .and. se_prod->(DbSeek(zPcod)) .and. se_prod->pServico="S"
               zPdesc := se_prod->pDesc
               zPrUnit := v_valor[nRow]/zQuant
               oLst:EvalLineBlocks('DETALHE', '_DATACOLS_')
               zTotServicos := zTotServicos + v_valor[nRow]
            endif
            nRow := nRow+1
         enddo
      endif

debugalert('1 imprimira DEVOLUCOES na cupom.lst ')
      if m_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_')
         nRow := 1
         do while nRow <= len(v_dpcod) 
            zPcod := v_Dpcod[nRow]
            zQuant := v_Dquant[nRow]
            zPrTotal := v_Dvalor[nRow]
            if zQuant > 0 .and. se_prod->(DbSeek(zPcod)) 
               zPdesc := se_prod->pDesc
               zPrUnit := v_Dvalor[nRow]/zQuant
               oLst:EvalLineBlocks('DETALHE', '_DATACOLS_')
               zTotDevolucoes := zTotDevolucoes + v_Dvalor[nRow]
            endif
            nRow := nRow+1
         enddo
      endif

      oLst:EvalLineBlocks('DETALHE', '_LINHA_GROSSA_' )
      nRow := 0
      m_fobs:=AllTrim(m_fobs)
      if len(m_fobs)>0
         oLst:EvalLineBlocks('DETALHE', {"COLS"=>"0,C"} ,{"style"=>"font:Helvetica-BoldOblique"}, 'Observacoes' )
         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', '_LINHA_GROSSA_' )
      endif
      
      oLst:EvalLineBlocks('DETALHE', m_ftotprod>0,     " ","Quantidade de Itens.: "+ Transform(m_ftotprod,"@E 99,999,999,999") )
      oLst:EvalLineBlocks('DETALHE', zTotMercadoria>0.and.zTotMercadoria<>m_fVal, " ","Valor dos Produtos..: "+ Transform(zTotMercadoria ,"@E 99,999,999,999.99") )
      oLst:EvalLineBlocks('DETALHE', zTotServicos>0.and.zTotServicos<>m_fVal,  " ","Valor dos Servicos..: "+ Transform(zTotServicos   ,"@E 99,999,999,999.99") )
      oLst:EvalLineBlocks('DETALHE', zTotDevolucoes>0, " ","Valor das Devolucoes: "+ Transform(zTotDevolucoes ,"@E 99,999,999,999.99") )
      oLst:EvalLineBlocks('DETALHE', m_fDesconto>0,    " ","Descontos Concedidos: "+ Transform(m_fDesconto,"@E 99,999,999,999.99") )
      oLst:EvalLineBlocks('DETALHE',                   " ")
      oLst:EvalLineBlocks('DETALHE',                   " ","TOTAL DO PEDIDO.....: "+ Transform(m_fVal,"@E 99,999,999,999.99") )
      // oLst:EvalLineBlocks('DETALHE', m_fValDev>0,      " ","Creditos: "+ Transform(m_fValDev,"@E 99,999,999,999.99") )

debugalert('11 vai renderizar cupom.lst ')
      
      oLst:Run()
      oLst:End()
#FIM_TEXTO_FONTE

comando antes DbGoBottom()

      // oLst:AddCab( {"AplicaFormatacaoDefaultNoCabecalho"=>"nao","style"=>"font:Helvetica-Bold#size:14#ncolor:99#width:80#bold;", "COLS"=>"0,C"}, "ORCAMENTO "+StrZero(m_fnumped,10) )
      // Method Say (nRow, nCol, aCellsDeUmaRowParaModificar, cPict, cFont, nSize, uColor, lBold )
      // Method Say ( nRow, nCol, cTxt, oFont, nSize, nColor, lFgRowColEmPixels, lRedefina_Largura_e_Altura_Corrente, cAlinhamento, nTamanhoDaColuna)

      // pendencia1: colocar quadrado com dados do emitente no topo da pagina  com fontsize 10
      // pendencia1: colocar logomarca .jpg no lado esquerdo, com 1/5 do comprimento da linha 
      
      // oLst:AddCab( {"style"=>"font:Helvetica#size:14#ncolor:99#width:80#bold;", "COLS"=>"0,C"}, "ORCAMENTO "+StrZero(m_fnumped,10) )
      // oLst:AddCab( {"eval_pdf"=>"eval(zFormPdf)"}, "ORCAMENTO "+StrZero(m_fnumped,10) )

//    if m_fcli>0 .and. .f.

//       Sccrcli->(DbGoto( m_fcli ))
//       oLst:EvalLineBlocks('DETALHE', 'Destinatario: '+strzero(m_fcli,6)+'- '+AllTrim (wcCrNome))
//       oLst:EvalLineBlocks('DETALHE', 'Cpf/CNPJ....: '+AllTrim(sccrcli->cr_CGC), 'RG.IE: '+AllTrim(sccrcli->cr_INSC_ES), 'Fone:'+AllTrim(sccrcli->cr_fone))
//       oLst:EvalLineBlocks('DETALHE', 'Endereco: '+sccrcli->(AllTrim(cr_rua)+' '+AllTrim(cr_bairro)+' '+AllTrim(cr_cep)) )
//       if !empty(sccrcli->cr_pontore)
//          oLst:AddCab( 'Ponto Ref: '+AllTrim(sccrcli->cr_pontore) )
//       endif
//       oLst:AddCab( 'Email: '+AllTrim(sccrcli->cr_email),'Fax/Celular:'+AllTrim(sccrcli->Cr_fax))
//
//       DevPos( prow()+10, 0 ) ; DevOut( replicate (" ", zTamLinha) )
//       abra ("0", r_siga, "SCCRCLI","SCCRCLI")
//       dbGoto(m_fcli)
//       X_CR_NOME = CR_NOME
   
//       DevPos( prow()+2, 0 ) ; DevOut( replicate (".", zTamLinha) )
//       DevPos( prow()+1, 0 ) ; DevOut( padc("*** NOTA PROMISSORIA ***",zTamLinha) )
//       DevPos( prow()+1, 0 ) ; DevOut( Padc("Emitente: "+Alltrim(Empresa),zTamLinha) )
//       DevPos( prow()+1, 0 ) ; DevOut( Padc("CPF/CNPJ: "+Alltrim(EMP_CGC),zTamLinha) )
//       DevPos( prow()+1, 0 ) ; DevOut( Padc("No "+StrZero(m_fnumped,6)+"  Vencimento __________      "+"R$ "+ltrim(transform(m_fval,"@E 999,999,999.99")) ,zTamLinha))
//       DevPos( prow()+1, 0 ) ; DevOut( replicate (".", zTamLinha) )
   
//       DevPos( prow()+2, 0 ) ; DevOut( "Ao(s) "+pad("_",zTamLinha-20,"_") )
//       DevPos( prow()+1, 0 ) ; DevOut( "pagarei por esta unica via de nota promissoria" )
//       DevPos( prow()+1, 0 ) ; DevOut( "a empresa "+Empresa+", ou a sua ordem, ")
//       DevPos( prow()+1, 0 ) ; DevOut( "a quantia de R$ "+Ltrim(Transform(m_fval,"@E 999.999,99"))+" em moeda corrente deste pais.")
//       DevPos( prow()+2, 0 ) ; DevOut( replicate (".", zTamLinha) )
         
//       dbCloseArea()
//       DevPos( prow()+2, 0 ) ; DevOut( padc("DECLARO TER ADQUIRIDO PRODUTOS NO VALOR DE "+Ltrim(Transform(m_fval,"@E 999,999,999.99")),zTamLinha) )
//       DevPos( prow()+1, 0 ) ; DevOut( padc("E COMPROMETO-ME A PAGAR SEUS VALORES",zTamLinha) )
   
//       DevPos( prow()+2, 0 ) ; DevOut( SPAC( 5)+REPL("_",27) )
//       DevPos( prow()+1, 0 ) ; DevOut( SPAC( 7)+X_cr_nome )
  
//    endif
//    DbCloseAll()

