Código: Selecionar todos
local oPrinter,linha,desenho
local cFileName, oWin32Bmp,nome_impressora,xcalculo,xcopia
local xempresa,xendereco,xbairro,xcidade,xtelefone
dbselectarea(9) // data
dbsetorder(1)
dbseek("1")
xempresa := field -> cliente
xendereco := field -> endereco
xbairro := field -> bairro
xcidade := field -> cidade
xtelefone := field -> telefone
xcalculo := xtotal := 0
xcopia := 1
nome_impressora := GetDefaultPrinter()
// Create printer object and configure print job
oPrinter := Win32Prn():new( nome_impressora )
oPrinter:landscape := .f.
oPrinter:formType := DMPAPER_A4
oPrinter:copies := xcopia
// Create device context
IF .NOT. oPrinter:create()
Alert( "Cannot create device context" )
QUIT
ENDIF
// Create print job
if ! oPrinter:startdoc( "Emissão de Pedido" ) // nome do arquivo para impressao
Alert( "Cannot create document" )
QUIT
ENDIF
linha := 1
desenho := 320
oPrinter:newline()
oPrinter:newline()
oPrinter:setfont('courier new',10,{1,13}, 700 ,.F.,.F.)
oPrinter:setprc( oPrinter:Prow() , Pcol() + 8 )
oPrinter:textout( alltrim(xempresa) )
oPrinter:newline()
oPrinter:setfont('courier new',8,{1,13}, 700 ,.F.,.F.)
oPrinter:setprc( oPrinter:Prow() , Pcol() + 2 )
oPrinter:textout( alltrim(xendereco) )
oPrinter:newline()
oPrinter:setprc( oPrinter:Prow() , Pcol() + 2 )
oPrinter:textout( alltrim(xbairro) + " - " + alltrim(xcidade) )
oPrinter:newline()
oPrinter:setprc( oPrinter:Prow() , Pcol() + 2 )
oPrinter:textout( alltrim(xtelefone) )
oPrinter:newline()
oPrinter:newline()
if xforma = "CREDIÁRIO"
dbselectarea(5) // cliente
dbsetorder(1)
dbseek( xcodcliente )
oPrinter:setprc( oPrinter:Prow() , Pcol() )
oPrinter:textout( "Cliente : " + alltrim(f_cliente) )
oPrinter:newline()
oPrinter:setprc( oPrinter:Prow() , Pcol() )
oPrinter:textout( "End : " + left( field -> end,30) )
oPrinter:newline()
oPrinter:setprc( oPrinter:Prow() , Pcol() )
oPrinter:textout( "Bairro : " + left( field -> bairro,30) )
oPrinter:newline()
if field -> cnpj = space(1)
oPrinter:setprc( oPrinter:Prow() , Pcol() )
oPrinter:textout( "C.P.F : " + field -> cpf )
else
oPrinter:setprc( oPrinter:Prow() , Pcol() )
oPrinter:textout( "CNPJ : " + field -> cnpj )
endif
oPrinter:newline()
oPrinter:setprc( oPrinter:Prow() , Pcol() )
oPrinter:textout( "Telefone : " + field -> telefone )
else
oPrinter:setprc( oPrinter:Prow() , Pcol() )
oPrinter:textout( "Cliente : " + alltrim(f_cliente) )
endif
oPrinter:newline()
oPrinter:setprc( oPrinter:Prow() , Pcol() )
oPrinter:textout( "Pedido N° : " + alltrim(str(xpedido)) )
oPrinter:newline()
oPrinter:setprc( oPrinter:Prow() , Pcol() )
oPrinter:textout( "Emissão : " + dtoc(xdata) )
oPrinter:newline()
oPrinter:setprc( oPrinter:Prow() , Pcol() )
oPrinter:textout( "Meios de Pagamento : " + alltrim(xforma) )
oPrinter:newline()
oPrinter:setprc( oPrinter:Prow() , Pcol() )
oPrinter:textout( replicate( "-" , 76 ) )
oPrinter:newline()
oPrinter:setprc( oPrinter:Prow() , Pcol() + 10 )
oPrinter:textout( "DESCRIÇÃO" )
oPrinter:newline()
oPrinter:setprc( oPrinter:Prow() , Pcol() )
oPrinter:textout( "QTD" )
oPrinter:setprc( oPrinter:Prow() , Pcol() + 10 )
oPrinter:textout( "PR. UNIT." )
oPrinter:setprc( oPrinter:Prow() , Pcol() + 29 )
oPrinter:textout( "TOTAL" )
oPrinter:newline()
oPrinter:setprc( oPrinter:Prow() , Pcol() )
oPrinter:textout( replicate( "-" , 76 ) )
oPrinter:newline()
dbselectarea(7) // his_vend
dbsetorder(1)
OrdScope( 0 , xpedido )
OrdScope( 1 , xpedido )
dbgotop()
do while ! eof()
if deleted()
dbskip()
loop
endif
if field -> quantidade <> 0
linha += 2
oPrinter:setprc( oPrinter:Prow() , Pcol() )
oPrinter:textout( field -> produto )
oPrinter:newline()
oPrinter:setprc( oPrinter:Prow() , Pcol() )
oPrinter:textout( alltrim( str( field -> quantidade ) ) )
oPrinter:setprc( oPrinter:Prow() , Pcol() + 7 )
oPrinter:textout( "X" )
oPrinter:setprc( oPrinter:Prow() , Pcol() + 10 )
oPrinter:textout( transform( field -> valor , "@E 99,999.99" ) )
oPrinter:setprc( oPrinter:Prow() , Pcol() + 25 )
oPrinter:textout( transform( field -> total , "@E 99,999.99" ) )
oPrinter:newline()
xcalculo += field -> total
if linha = 62
linha := 0
oPrinter:newpage()
endif
endif
dbskip()
enddo
oPrinter:setprc( oPrinter:Prow() , Pcol() )
oPrinter:textout( replicate( "-" , 76 ) )
oPrinter:newline()
oPrinter:setprc( oPrinter:Prow() , Pcol() )
oPrinter:textout( "VALOR DA COMPRA R$ " + transform( xcalculo , "@E 99,999.99" ) )
oPrinter:newline()
oPrinter:setprc( oPrinter:Prow() , Pcol() )
oPrinter:textout( "DESCONTO R$ " + transform( xdesconto , "@E 99,999.99" ) )
oPrinter:newline()
oPrinter:setprc( oPrinter:Prow() , Pcol() )
oPrinter:textout( "ACRÉSCIMO R$ " + transform( xacrescimo , "@E 99,999.99" ) )
oPrinter:newline()
oPrinter:setprc( oPrinter:Prow() , Pcol() )
oPrinter:textout( "ENTRADA R$ " + transform( xentrada , "@E 99,999.99" ) )
oPrinter:newline()
oPrinter:setprc( oPrinter:Prow() , Pcol() )
oPrinter:textout( "TOTAL R$ " + transform( xpagar , "@E 99,999.99" ) )
oPrinter:newline()
oPrinter:setprc( oPrinter:Prow() , Pcol() )
oPrinter:textout( "DINHEIRO R$ " + transform( xdinheiro , "@E 99,999.99" ) )
oPrinter:newline()
oPrinter:setprc( oPrinter:Prow() , Pcol() )
oPrinter:textout( "TROCO R$ " + transform( xtroco , "@E 99,999.99" ) )
if xforma = "CREDIÁRIO"
oPrinter:newline()
oPrinter:newline()
oPrinter:newline()
oPrinter:newline()
oPrinter:setprc( oPrinter:Prow() , Pcol() + 5 )
oPrinter:textout( replicate( "-" , 23 ) )
oPrinter:newline()
oPrinter:setprc( oPrinter:Prow() , Pcol() + 5 )
oPrinter:textout( "Assinatura do Cliente" )
endif
oPrinter:newline()
oPrinter:newline()
oPrinter:setprc( oPrinter:Prow() , Pcol() )
oPrinter:textout( "." )
oPrinter:endDoc()
oPrinter:destroy()