*+±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
*+
*+ Function codigo()
*+
*+ Called from ( barras.prg ) 1 - function main()
*+
*+±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
*+
function codigo( tipo, lprime, cprime, nancho, nlargo, ncodigo, ncanti, nOpci1, nlongi, npix, lini, cini, nnufo, npre, nDespH, nDespV, lPvp, lRef, lDen, nDesPvp, nDesRef, nDesDen, lBanner, cRef, cDetalle,tipo128 )
// ************************************************************************************************************************************************
local oPrn
local ccodigo
local llprime
local ccprime
local pasada := 1
local texto
local textoc
local textor
local npvp
local echo := 1
local nufo := nnufo
local oFont
local oFont1
local Conta :=0
local nindice:=tempo->(Recno())
private nLIz
private nCIz
private nLIzpvp
private nCIzpvp
private nLIzRef
private nCIzRef
private nLIzDes
private nCIzDes
if nOpci1=1
tempo->( dbSetfILTER( {|| tempo->selec=.T.},'tempo->selec=.T.') )
tempo->(dbgotop())
endif
printer oPrn from user preview
oPrn:SetPage(9)
if nufo != nil
DEFINE FONT oFont NAME( nufo[ 14 ] ) ;
SIZE 0, ( nufo[ 1 ] ) of oPrn
DEFINE FONT oFont1 NAME( nufo[ 14 ] ) ;
SIZE 0, ( nufo[ 1 ] ) of oPrn
else
DEFINE FONT oFont NAME "Arial" SIZE 0, 8 OF oPrn
DEFINE FONT oFont1 NAME "Arial" SIZE 0, 10 OF oPrn
endif
if nOpci1=2
npvp := alltrim( transform( npre, "@E 9,999.99" ) )
if tipo = 6
ncodigo := 'A' + alltrim( ncodigo ) + 'T'
endif
endif
ccodigo:=alltrim(ncodigo)
do while .t.
page
if pasada = 1
llprime := lini
ccprime := cini
else
llprime := lprime
ccprime := cprime
endif
texto := llprime - .27
textor := llprime - .6
textoc := llprime + nlongi
do while llprime + nlargo <= 29.7
CmtToPixel(llprime+nDespV, ccprime+nDespH, oPrn )
CmtToPvp (texto+nDespV, ccprime+nDespH+nDespvp ,oPrn)
CmtToRef (texto+nlongi+ndesPV+.3, ccprime+nDespH+ndesRef, oPrn)
CmtToDes (texto+nlongi+ndesPV+.5, ccprime+nDespH+ndesDen, oPrn)
if nOpci1=1
ccodigo := alltrim(tempo->codigo)
ncanti := tempo->cant
npvp := alltrim( transform( tempo->Pvp , "@E 99,999.99" ) )
cRef := alltrim(tempo->referencia)
cDetalle:=tempo->articulo
if tipo = 6
ccodigo := 'A' + alltrim( ccodigo ) + 'T'
endif
endif
do case
case tipo = 1
if lBanner
@ nLIz, nCIz ean13 ccodigo width npix size nlongi of oPrn banner
else
@ nLIz, nCIz ean13 ccodigo width npix size nlongi of oPrn
endif
if lPvp
oPrn:Say( nLIzpvp, nCIzpvp,'PVP '+npvp+' '+ ' €.', ofont )
endif
// como el codigo es lo mismo que la referencia, he quitado la referencia
if lRef
oPrn:Say( nLIzref, nCIzref,cRef, ofont )
endif
if lDen
oPrn:Say( nLIzdes, nCIzdes,OemToAnsi(rtrim(cDetalle)), ofont )
endif
case tipo = 2
if lBanner
@ nLIz, nCIz ean8 ccodigo width npix size nlongi of oPrn BANNER
else
@ nLIz, nCIz ean8 ccodigo width npix size nlongi of oPrn
endif
if lPvp
oPrn:Say( nLIzpvp, nCIzpvp,'PVP '+npvp+' '+ ' €.', ofont )
endif
if lRef
oPrn:Say( nLIzref, nCIzref,cRef, ofont )
endif
if lDen
oPrn:Say( nLIzdes, nCIzdes,OemToAnsi(rtrim(cDetalle)), ofont )
endif
case tipo = 3
@ nLIz, nCIz code128 ccodigo width npix size nlongi of oPrn mode tipo128
if lPvp
oPrn:Say( nLIzpvp, nCIzpvp,'PVP '+npvp+' '+ ' €.', ofont )
endif
if lRef
oPrn:Say( nLIzref, nCIzref,cRef, ofont )
endif
if lDen
oPrn:Say( nLIzdes, nCIzdes,OemToAnsi(rtrim(cDetalle)), ofont )
endif
case tipo = 4
@ nLIz, nCIz code3_9 ccodigo width npix size nlongi of oPrn
if lPvp
oPrn:Say( nLIzpvp, nCIzpvp,'PVP '+npvp+' '+ ' €.', ofont )
endif
if lRef
oPrn:Say( nLIzref, nCIzref,cRef, ofont )
endif
if lDen
oPrn:Say( nLIzdes, nCIzdes,OemToAnsi(rtrim(cDetalle)), ofont )
endif
case tipo = 5
if lBanner
@ nLIz, nCIz upca ccodigo width npix size nlongi of oPrn banner
else
@ nLIz, nCIz upca ccodigo width npix size nlongi of oPrn
endif
if lPvp
oPrn:Say( nLIzpvp, nCIzpvp,'PVP '+npvp+' '+ ' €.', ofont )
endif
if lRef
oPrn:Say( nLIzref, nCIzref,cRef, ofont )
endif
if lDen
oPrn:Say( nLIzdes, nCIzdes,OemToAnsi(rtrim(cDetalle)), ofont )
endif
case tipo = 6
@ nLIz, nCIz codabar ccodigo width npix size nlongi of oPrn
if lPvp
oPrn:Say( nLIzpvp, nCIzpvp,'PVP '+npvp+' '+ ' €.', ofont )
endif
if lRef
oPrn:Say( nLIzref, nCIzref,cRef, ofont )
endif
if lDen
oPrn:Say( nLIzdes, nCIzdes,OemToAnsi(rtrim(cDetalle)), ofont )
endif
case tipo = 7
if lBanner
@ nLIz, nCIz sup5 ccodigo width npix size nlongi of oPrn banner
else
@ nLIz, nCIz sup5 ccodigo width npix size nlongi of oPrn
endif
if lPvp
oPrn:Say( nLIzpvp, nCIzpvp,'PVP '+npvp+' '+ ' €.', ofont )
endif
if lRef
oPrn:Say( nLIzref, nCIzref,cRef, ofont )
endif
if lDen
oPrn:Say( nLIzdes, nCIzdes,OemToAnsi(rtrim(cDetalle)), ofont )
endif
endcase
ccprime += nancho
if nOpci1 = 1
if echo = ncanti
tempo->( dbskip() )
if tempo->( eof() )
exit
endif
do while .t.
if tempo->Selec=.F. .or. tempo->cant <= 0
tempo->(dbskip())
if tempo->( eof() )
exit
endif
else
exit
endif
enddo
if tempo->( eof() )
exit
endif
echo := 0
endif
endif
if echo = ncanti
exit
endif
echo += 1
if ccprime + nancho > 21
llprime += nlargo
texto += nlargo
textoc += nlargo
ccprime := cprime
endif
if llprime + nlargo >= 29.7
pasada += 1
exit
endif
enddo
endpage
SysRefresh()
do case
case nOpci1=1
if tempo->(Eof())
* if echo = ncanti
exit
endif
case nOpci1=2
if echo = ncanti
exit
endif
endcase
enddo
endprint
oFont:end()
oFont1:end()
tempo->(Dbsetfilter())
tempo->(Dbgoto(nindice))
return nil
static function CmtToPixel( nLi, nCi, oPrn )
local aPixel
aPixel := oPrn:Cmtr2Pix( nLi, nCi )
memvar->nLIz := aPixel[ 1 ]
memvar->nCIz := aPixel[ 2 ]
return NIL