//- Como Imprimir em Centimetros sem errar e em qualquer Impressora
ResLinha := oPrn:nLogPixely()/2.54
ResColuna := oPrn:nLogPixelx()/2.54
WHILE .NOT. EOF()
SYSREFRESH()
IF ( cAlias )->PRODUNOME = SPACE(30)
SKIP
LOOP
ENDIF
// LINHAS VERTICAIS E HORIZONTAIS DO PREVIEW
// LIN VERTICAL DO LADO ESQUERDO DO QUADRO.
oPrn:Say( nLinEsq * ResLinha, nColEsq * ResColuna, ;
+ "|", oFont,, CLR_BLACK,, PAD_LEFT )
nLinEsq += 0.292
// LIN VERTICAL DO MEIO
oPrn:Say( nLinMeio * ResLinha, nColMeio * ResColuna, ;
+ "|", oFont,, CLR_BLACK,, PAD_LEFT )
nLinMeio += 0.292
// LINHA VERTICAL DO LADO DIREITO DO QUADRO.
oPrn:Say( nLinDir * ResLinha, nColDir * ResColuna, ;
+ "|", oFont,, CLR_BLACK,, PAD_LEFT )
nLinDir += 0.292
nColuna := 1.90 // COLUNA DA QTDE.
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ STR( ( cAlias )->PRODUQTDE ), oFont,, CLR_BLACK,, PAD_CENTER )
// LIN VERTICAL DO LADO ESQUERDO DO QUADRO.
oPrn:Say( nLinEsq * ResLinha, nColEsq * ResColuna, ;
+ "|", oFont,, CLR_BLACK,, PAD_LEFT )
nLinEsq += 0.292 // DIZIMA
// LIN VERTICAL DO MEIO
oPrn:Say( nLinMeio * ResLinha, nColMeio * ResColuna, ;
+ "|", oFont,, CLR_BLACK,, PAD_LEFT )
nLinMeio += 0.292
// LIN VERTICAL DO LADO DIREITO DO QUADRO.
oPrn:Say( nLinDir * ResLinha, nColDir * ResColuna, ;
+ "|", oFont,, CLR_BLACK,, PAD_LEFT )
nLinDir += 0.292
nColuna := 7.00 // COLUNA DO PRODUTO
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ ( cAlias )->PRODUNOME, oFont,, CLR_BLACK,, PAD_CENTER )
nLinha := nLinha += 0.20 // SEGUNDA LINHA EMBAIXO DO NOME
nColuna := 1.60
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
REPLICATE( "_", 82 ), oFont,, CLR_BLACK,, PAD_LEFT )
nLinha := nLinha += 0.38 // PROXIMO PRODUTO
// NOVA PAGINA AQUI // PREENCHEU O PREVIEW, PULA.
IF nLinha >= 25.00
nLinha := 27.50
nColuna := 10.50
ENDPAGE
PAGE // NOVA PAGINA, CONTINUACAO
// LOGO
nRow := 1.50 // Linha
nCol := 650.00 // Coluna do Logo.jpg
@ nRow, nCol PRINT TO oPrn IMAGE "LOGO.JPG" SIZE 650, 650 LASTROW nRow
// proxima pagina
++nPagina
nLinha := 1.00
nColuna := 18.00
//-> Pagina
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
OemToAnsi( "P g.: " + ALLTRIM( STRZERO( nPagina, 2 ) ) ), ;
oFont,, CLR_BLACK,, PAD_CENTER )
cOrcamento := [ORDEM DE ENTREGA]
nLinha := nLinha += 0.80
nColuna := 10.50
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ cOrcamento, oFontSubl,, CLR_BLACK,, PAD_CENTER )
nLinha := nLinha += 0.80 // LINHA DA QTDE - OK
nColuna := 2.70
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ OemToAnsi( "QTDE " ), oFont,, CLR_BLACK,, PAD_CENTER )
nLinha := nLinha -= 0.02
nColuna := 6.00
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ "PRODUTOS ", oFont,, CLR_BLACK,, PAD_CENTER )
// QTDE / PRODUTOS - AQUI
nLinha := nLinha += 0.20
nColuna := 1.60
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
REPLICATE( "_", 83 ), oFont,, CLR_BLACK,, PAD_LEFT )
nLinEsq := 6.41 // LINHA VERTICAL DA ESQUERDA DO QUADRO
nColEsq := 1.50
nLinMeio := 6.41 // 74 LINHA VERTICAL DA ESQUERDA DO QUADRO
nColMeio := 3.30
nLinDir := 6.41 // LINHA VERTICAL DA DIREITA DO QUADRO
nColDir := 19.01
// GIRAR OS PRODUTOS DO NOVO PREVIEW: AQUI.
nLinha := nLinha += 0.50
ENDIF
SKIP
ENDDO