Código: Selecionar todos
FUNCTION IMPRIMECOT( DeOndeVem, lAppend, DbEstoque, DbCotacao, ;
DbFornece, DbClientes, ;
oLbxCota )
LOCAL cAlias, oImagem, gcFile
LOCAL ResColuna, ResLinha
LOCAL oPrn, oFont, oFontLogo, oFontDivi, oFontList, ;
oFontCurs, oPen1, oPen2, oPen3, oFontSubl
LOCAL nLinha, nColuna // Linha e coluna da Descicao
LOCAL nDinheiro, nCheque, nChequePre, nTickets, nCartaoCred,;
nCartaoDebi, nContraVale, nPagina, nTotalGeral, xDataLista
LOCAL nSomaGeral, nTotGeral
PUBLIC XNOMEEMP, XENDDIR, XCIDDIR, XBAIDIR, XTELDIR, XEMAILEMP, XSITEEMP
PUBLIC XNOMEOPERAD
XDATALISTA := ALLTRIM(XCIDDIR)+ ", " + ;
LTRIM( STR( DAY( DATE() ) ) ) + ;
" de " + ;
OemToAnsi(CMONTH( DATE() )) + ;
" de " + ;
STR( YEAR( DATE() ) ) + ;
"."
nTotGeral := 0
SELECT( DbCotacao:cAlias )
GO TOP
cAlias := ALIAS() // DbPedidos
WHILE( .NOT. EOF() )
SYSREFRESH()
CURSORWAIT()
nSomaGeral := ( ( cAlias )->VALOR_UNIT ) * ( ( cAlias )->QUANTIDADE )
nTotGeral := nTotGeral + nSomaGeral
SKIP
ENDDO
GO TOP
IF DeOndeVem = [FORNECEDOR]
SELECT( DbFornece:cAlias )
SET ORDER TO 01
GO TOP
SEEK VAL( ( cAlias )->CODFORNE )
IF FOUND()
lImprimeForn := .T.
ELSE
lImprimeForn := .F.
ENDIF
SELECT( DbCotacao:cAlias )
GO TOP
ELSE // Clientes
SELECT( DbClientes:cAlias )
SET ORDER TO 01
GO TOP
SEEK VAL( ( cAlias )->CODFORNE )
SELECT( DbCotacao:cAlias )
GO TOP
ENDIF
//-> Mostra o Relatorio... Preview da Cotacao
PRINT oPrn NAME "Fluxo do Caixa Discriminado" PREVIEW MODAL
IF EMPTY( oPrn:hDC )
RETURN NIL // Printer was not installed or ready
ENDIF
DEFINE FONT oFont NAME "Courier New" SIZE 0, -8 OF oPrn
DEFINE FONT oFontDivi NAME "Courier New" SIZE 0, -12 BOLD OF oPrn
DEFINE FONT oFontCurs NAME "Courier New" SIZE 0, -14 BOLD OF oPrn
DEFINE FONT oFontSubl NAME "Courier New" SIZE 0, -16 BOLD UnderLine OF oPrn
//-> Problemas com o Windows XP - Formato da FONTE Nao Reconhecido
IF IsWinNT() .OR. IsWin2000() // Para Windows XP/NT e 2000 / 2003
DEFINE FONT oFontLogo NAME "Courier New" SIZE 0, -16 BOLD OF oPrn
DEFINE FONT oFontList NAME "Courier New" SIZE 0, -20 BOLD OF oPrn
ELSE //-> 95/98/ME
DEFINE FONT oFontLogo NAME "Courier New" SIZE 0, -20 BOLD OF oPrn
DEFINE FONT oFontList NAME "Courier New" SIZE 0, -22 BOLD OF oPrn
ENDIF
//-> Caneta do Preview
DEFINE PEN oPen1 WIDTH 4 COLOR CLR_BROWN OF oPrn
DEFINE PEN oPen2 WIDTH 2 COLOR CLR_BROWN OF oPrn
DEFINE PEN oPen3 WIDTH 5 COLOR CLR_BLACK OF oPrn
oPrn:SetPage(9) //-> A4 //9
oPrn:SetPortrait() //-> Vertical(Retrato)
//oPrn:SetLandscape() //-> Horizontal
//- Como Imprimir em Centimetros sem errar e em qualquer Impressora
ResLinha := oPrn:nVertRes() / 40
ResLinha := oPrn:nLogPixely() / 2.54
ResColuna := oPrn:nLogPixelx() / 2.54
nPagina := 1
IF DeOndeVem = [FORNECEDOR] // Impressao dos Fornecedores
PAGE
// Fornecedores
// oPrn:SayImage( 0, 0, oImagem )
// oPrn:SayBitmap( 0, 0, "c:\fwh..\bitmaps\fivewin.bmp" )
nLinha := 0.50
nColuna := 08.50
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
ALLTRIM(XNOMEEMP), oFontDivi,, CLR_BLACK,, PAD_CENTER )
nLinha += 0.50
nColuna := 08.05
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
ALLTRIM(XENDDIR), oFont,, CLR_BLACK,, PAD_CENTER )
nLinha += 0.30
nColuna := 08.50
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
ALLTRIM(XBAIDIR) +" - "+ ALLTRIM(XCIDDIR), ;
oFont,, CLR_BLACK,, PAD_CENTER )
// XTELDIR
nLinha += 0.30
nColuna := 09.50
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
ALLTRIM(XTELDIR), oFont,, CLR_BLACK,, PAD_CENTER )
// XEMAILEMP
nLinha += 0.30
nColuna := 08.50
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
ALLTRIM(XEMAILEMP), oFont,, CLR_BLACK,, PAD_CENTER )
// XSITEEMP
nLinha += 0.30
nColuna := 08.75
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
ALLTRIM(XSITEEMP), oFont,, CLR_BLACK,, PAD_CENTER )
nLinha += 0.30
nColuna := 1.00
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
REPLICATE("-",110), oFont,, CLR_BLACK,, PAD_LEFT )
// Se tiver Fornecedor no banco das COTACOES, mostrara
IF lImprimeForn
nLinha += 0.30
nColuna := 1.00
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
OemToAnsi( "Fornecedor: " ) + ;
ALLTRIM( ( DbFornece:cAlias )->RAZAO ) + ;
OemToAnsi( " - C¢digo: " ) + ;
ALLTRIM( ( DbFornece:cAlias )->MATRICULA ), oFont,,;
CLR_BLACK,, PAD_LEFT )
nLinha += 0.30
nColuna := 1.00
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
OemToAnsi( "Endere‡o..: " ) + ;
ALLTRIM( ( DbFornece:cAlias )->END ) + ;
OemToAnsi( " - Bairro: " ) + ;
ALLTRIM( ( DbFornece:cAlias )->BAI ), oFont,,;
CLR_BLACK,, PAD_LEFT )
nLinha += 0.30
nColuna := 1.00
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
OemToAnsi( "Cidade....: " ) + ;
ALLTRIM( ( DbFornece:cAlias )->CID ) + ;
OemToAnsi( " - Cep: " ) + ;
ALLTRIM( ( DbFornece:cAlias )->CEP ), ;
oFont,, CLR_BLACK,, PAD_LEFT )
nColuna := 12.50
//XNOMEOPERAD
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
OemToAnsi( "Comprador: " ) + ALLTRIM(XNOMEOPERAD), ;
oFont,, CLR_BLACK,, PAD_LEFT )
nLinha += 0.30
nColuna := 1.00
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
OemToAnsi( "A/C: " ) + ;
ALLTRIM( ( DbFornece:cAlias )->VEN ) + ;
OemToAnsi( " - Fone: " ) + ;
ALLTRIM( ( DbFornece:cAlias )->TEL+" - "+ ;
( DbFornece:cAlias )->TEL2+" - "+ ;
( DbFornece:cAlias )->TEL3 ), oFont,, CLR_BLACK,, PAD_LEFT )
nLinha += 0.30
nColuna := 1.00
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
REPLICATE("-",110), oFont,, CLR_BLACK,, PAD_LEFT )
ENDIF
nLinha += 0.50
nColuna := 1.00
//-> Data de Hoje
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
OemToAnsi( "Data: " + DTOC( DATE() ) ), oFont,, ;
CLR_BLACK,, PAD_LEFT )
nColuna := 10.00
//-> Cabe‡alho
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
"COTAÇÃO Nº "+ STRZERO( ( cAlias )->COTACAO ), ;
oFontDivi,, CLR_BLACK,, PAD_CENTER )
nColuna := 17.50
//-> Pagina
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
OemToAnsi( "P gina: " + STRZERO( nPagina ) ), oFont,, ;
CLR_BLACK,, PAD_CENTER )
nLinha += 0.50
nColuna := 1.00
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
REPLICATE("-",110), oFont,, CLR_BLACK,, PAD_LEFT )
nLinha += 0.30 //-> Pula a Linha
//-> Cabecalho
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
OemToAnsi( "QUANT. " + SPACE(07) + ;
"UNID. " + SPACE(05) + ;
"CàDIGO " + SPACE(14) + ;
"DESCRIۂO " + SPACE(16) + ;
"PRE€O INIT. " + SPACE(12) + ;
"TOTAL ÖTEM " ), oFont,, ;
CLR_BLACK,, PAD_LEFT )
nLinha += 0.30 //-> Pula a Linha
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
REPLICATE("-",110), oFont,, CLR_BLACK,, PAD_LEFT )
nLinha += 0.30
//-> Vou imprimir os produtos
WHILE ( .NOT. EOF() )
SYSREFRESH()
IF EOF()
EXIT
ENDIF
IF nLinha >= 27 // Nova Pagina = 54 Linhas
ENDPAGE // Fecho a Pagina Anterior, Para Nao Quebrar o Metafile
PAGE // Nova Pagina - Abro uma nova pagina
nPagina := nPagina + 1
// aqui cabecalho
// Fornecedores
// oPrn:SayImage( 0, 0, oImagem )
// oPrn:SayBitmap( 0, 0, "c:\fwh..\bitmaps\fivewin.bmp" )
nLinha := 0.50
nColuna := 08.50
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
ALLTRIM(XNOMEEMP), oFontDivi,, CLR_BLACK,, PAD_CENTER )
nLinha += 0.50
nColuna := 08.05
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
ALLTRIM(XENDDIR), oFont,, CLR_BLACK,, PAD_CENTER )
nLinha += 0.30
nColuna := 08.50
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
ALLTRIM(XBAIDIR) +" - "+ ALLTRIM(XCIDDIR), ;
oFont,, CLR_BLACK,, PAD_CENTER )
// XTELDIR
nLinha += 0.30
nColuna := 09.50
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
ALLTRIM(XTELDIR), oFont,, CLR_BLACK,, PAD_CENTER )
// XEMAILEMP
nLinha += 0.30
nColuna := 08.50
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
ALLTRIM(XEMAILEMP), oFont,, CLR_BLACK,, PAD_CENTER )
// XSITEEMP
nLinha += 0.30
nColuna := 08.75
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
ALLTRIM(XSITEEMP), oFont,, CLR_BLACK,, PAD_CENTER )
nLinha += 0.30
nColuna := 1.00
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
REPLICATE("-",110), oFont,, CLR_BLACK,, PAD_LEFT )
// Se tiver Fornecedor no banco das COTACOES, mostrara
IF lImprimeForn
nLinha += 0.30
nColuna := 1.00
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
OemToAnsi( "Fornecedor: " ) + ;
ALLTRIM( ( DbFornece:cAlias )->RAZAO ) + ;
OemToAnsi( " - C¢digo: " ) + ;
ALLTRIM( ( DbFornece:cAlias )->MATRICULA ), oFont,,;
CLR_BLACK,, PAD_LEFT )
nLinha += 0.30
nColuna := 1.00
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
OemToAnsi( "Endere‡o..: " ) + ;
ALLTRIM( ( DbFornece:cAlias )->END ) + ;
OemToAnsi( " - Bairro: " ) + ;
ALLTRIM( ( DbFornece:cAlias )->BAI ), oFont,,;
CLR_BLACK,, PAD_LEFT )
nLinha += 0.30
nColuna := 1.00
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
OemToAnsi( "Cidade....: " ) + ;
ALLTRIM( ( DbFornece:cAlias )->CID ) + ;
OemToAnsi( " - Cep: " ) + ;
ALLTRIM( ( DbFornece:cAlias )->CEP ), ;
oFont,, CLR_BLACK,, PAD_LEFT )
nColuna := 12.50
//XNOMEOPERAD
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
OemToAnsi( "Comprador: " ) + ;
ALLTRIM(XNOMEOPERAD), ;
oFont,, CLR_BLACK,, PAD_LEFT )
nLinha += 0.30
nColuna := 1.00
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
OemToAnsi( "A/C: " ) + ;
ALLTRIM( ( DbFornece:cAlias )->VEN ) + ;
OemToAnsi( " - Fone: " ) + ;
ALLTRIM( ( DbFornece:cAlias )->TEL+" - "+ ;
( DbFornece:cAlias )->TEL2+" - "+ ;
( DbFornece:cAlias )->TEL3 ), oFont,, CLR_BLACK,, PAD_LEFT )
nLinha += 0.30
nColuna := 1.00
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
REPLICATE("-",110), oFont,, CLR_BLACK,, PAD_LEFT )
ENDIF
nLinha += 0.50
nColuna := 1.00
//-> Data de Hoje
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
OemToAnsi( "Data: " + DTOC( DATE() ) ), oFont,, ;
CLR_BLACK,, PAD_LEFT )
nColuna := 10.00
//-> Cabe‡alho
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
"COTAÇÃO Nº "+ STRZERO( ( cAlias )->COTACAO ), ;
oFontDivi,, CLR_BLACK,, PAD_CENTER )
nColuna := 17.50
//-> Pagina
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
OemToAnsi( "P gina: " + STRZERO( nPagina ) ), oFont,, ;
CLR_BLACK,, PAD_CENTER )
nLinha += 0.50
nColuna := 1.00
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
REPLICATE("-",110), oFont,, CLR_BLACK,, PAD_LEFT )
nLinha += 0.30 //-> Pula a Linha
//-> Cabecalho
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
OemToAnsi( "QUANT. " + SPACE(07) + ;
"UNID. " + SPACE(05) + ;
"CàDIGO " + SPACE(14) + ;
"DESCRIۂO " + SPACE(16) + ;
"PRE€O INIT. " + SPACE(12) + ;
"TOTAL ÖTEM " ), oFont,, ;
CLR_BLACK,, PAD_LEFT )
nLinha += 0.30 //-> Pula a Linha
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
REPLICATE("-",110), oFont,, CLR_BLACK,, PAD_LEFT )
nLinha += 0.30
ENDIF
nColuna := 2.75
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
TRANSF( ( cAlias )->QUANTIDADE, "9999999999.999" ), ;
oFont,, CLR_BLACK,, PAD_RIGHT )
nColuna := 3.25
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
( cAlias )->UNIDADE, oFont,, CLR_BLACK,, PAD_LEFT )
nColuna := 4.75
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
( cAlias )->CODIGO, oFont,, CLR_BLACK,, PAD_LEFT )
nColuna := 7.25
//-> Nome do Produto
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
SUBSTR(( cAlias )->DESCRICAO,1,30), oFont,, ;
CLR_BLACK,, PAD_LEFT )
nColuna := 1.00
nLinha += 0.30 //-> Pula a Linha
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
REPLICATE("-",110), oFont,, CLR_BLACK,, PAD_LEFT )
SKIP // Proximo Produto
nLinha += 0.50 //-> Pula a Linha Para o Proximo Produto
ENDDO
ENDPAGE
ELSE // Impressao Clientes
PAGE
//oPrn:SayImage( 0, 0, oImagem )
//oPrn:SayBitmap( 0, 0, "c:\fwh1101\bitmaps\fivewin.bmp" )
nLinha := 0.50
nColuna := 10.00
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
ALLTRIM(XNOMEEMP), oFontDivi,, CLR_BLACK,, PAD_CENTER )
nLinha += 0.50
nColuna := 08.05
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
ALLTRIM(XENDDIR), oFont,, CLR_BLACK,, PAD_CENTER )
nLinha += 0.30
nColuna := 08.50
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
ALLTRIM(XBAIDIR) +" - "+ ALLTRIM(XCIDDIR), ;
oFont,, CLR_BLACK,, PAD_CENTER )
// XTELDIR
nLinha += 0.30
nColuna := 09.50
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
ALLTRIM(XTELDIR), oFont,, CLR_BLACK,, PAD_CENTER )
// XEMAILEMP
nLinha += 0.30
nColuna := 08.50
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
ALLTRIM(XEMAILEMP), oFont,, CLR_BLACK,, PAD_CENTER )
// XSITEEMP
nLinha += 0.30
nColuna := 08.75
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
ALLTRIM(XSITEEMP), oFont,, CLR_BLACK,, PAD_CENTER )
nLinha += 0.30
nColuna := 1.00
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
REPLICATE("-",110), oFont,, CLR_BLACK,, PAD_LEFT )
nLinha += 0.30
nColuna := 1.00
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
OemToAnsi( "Cliente.: " ) + ;
ALLTRIM( ( DbClientes:cAlias )->DEST_NOME ) + ;
OemToAnsi( " - C¢digo: " ) + ;
ALLTRIM( ( DbClientes:cAlias )->RAZ_MATRIC ), oFont,, ;
CLR_BLACK,, PAD_LEFT )
nLinha += 0.30
nColuna := 1.00
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
OemToAnsi( "Endere‡o: " ) + ;
ALLTRIM( ( DbClientes:cAlias )->END+", "+ ;
ALLTRIM( ( DbClientes:cAlias )->NUMERO )+" "+ ;
ALLTRIM( ( DbClientes:cAlias )->COMPLEMENT ) ) + ;
OemToAnsi( " - Bairro: " ) + ;
ALLTRIM( ( DbClientes:cAlias )->BAI ), oFont,, ;
CLR_BLACK,, PAD_LEFT )
nLinha += 0.30
nColuna := 1.00
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
OemToAnsi( "Cidade..: " ) + ;
ALLTRIM( ( DbClientes:cAlias )->CID ) + ;
OemToAnsi( " - Uf: " ) + ;
ALLTRIM( ( DbClientes:cAlias )->UF ) + ;
OemToAnsi( " - Cep: " ) + ;
ALLTRIM( ( DbClientes:cAlias )->CEP ), ;
oFont,, CLR_BLACK,, PAD_LEFT )
nColuna := 12.50
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
OemToAnsi( "Vendedor: " ) + ALLTRIM(XNOMEOPERAD), ;
oFont,, CLR_BLACK,, PAD_LEFT )
//XNOMEOPERAD
nLinha += 0.30
nColuna := 1.00
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
OemToAnsi( "A/C: " ) + ;
ALLTRIM( ( DbClientes:cAlias )->CONTATO ) + ;
OemToAnsi( " - Fone: " ) + ;
ALLTRIM( ( DbClientes:cAlias )->TEL+" - "+ ;
( DbClientes:cAlias )->TEL2+" - "+ ;
( DbClientes:cAlias )->TEL3 ), oFont,, CLR_BLACK,, PAD_LEFT )
nLinha += 0.30
nColuna := 1.00
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
REPLICATE("-",110), oFont,, CLR_BLACK,, PAD_LEFT )
nLinha += 0.50
nColuna := 1.00
//-> Data de Hoje
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
OemToAnsi( "Data: " + DTOC( DATE() ) ), oFont,, ;
CLR_BLACK,, PAD_LEFT )
nColuna := 10.00
//-> Cabe‡alho
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
"COTAÇÃO Nº "+ STRZERO( ( cAlias )->COTACAO ), ;
oFontDivi,, CLR_BLACK,, PAD_CENTER )
nColuna := 17.50
//-> Pagina
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
OemToAnsi( "P gina: " + STRZERO( nPagina ) ), oFont,, ;
CLR_BLACK,, PAD_CENTER )
nLinha += 0.50
nColuna := 1.00
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
REPLICATE("-",110), oFont,, CLR_BLACK,, PAD_LEFT )
nLinha += 0.30 //-> Pula a Linha
//-> Cabecalho
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
OemToAnsi( "QUANT. " + SPACE(07) + ;
"UNID. " + SPACE(05) + ;
"CàDIGO " + SPACE(14) + ;
"DESCRIۂO " + SPACE(16) + ;
"PRE€O INIT. " + SPACE(12) + ;
"TOTAL ÖTEM " ), oFont,, ;
CLR_BLACK,, PAD_LEFT )
nLinha += 0.30 //-> Pula a Linha
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
REPLICATE("-",110), oFont,, CLR_BLACK,, PAD_LEFT )
nLinha += 0.30
//-> Vou imprimir os produtos
WHILE ( .NOT. EOF() )
SYSREFRESH()
CURSORWAIT()
IF EOF()
EXIT
ENDIF
IF nLinha >= 27 // Nova Pagina = 54 Linhas
ENDPAGE // Fecho a Pagina Anterior, Para Nao Quebrar o Metafile
PAGE // Nova Pagina - Abro uma nova pagina
nPagina := nPagina + 1
// aqui cabecalho novo da proxima pagina
//oPrn:SayImage( 0, 0, oImagem )
//oPrn:SayBitmap( 0, 0, "c:\fwh1101\bitmaps\fivewin.bmp" )
nLinha := 0.50
nColuna := 10.00
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
ALLTRIM(XNOMEEMP), oFontDivi,, CLR_BLACK,, PAD_CENTER )
nLinha += 0.50
nColuna := 08.05
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
ALLTRIM(XENDDIR), oFont,, CLR_BLACK,, PAD_CENTER )
nLinha += 0.30
nColuna := 08.50
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
ALLTRIM(XBAIDIR) +" - "+ ALLTRIM(XCIDDIR), ;
oFont,, CLR_BLACK,, PAD_CENTER )
// XTELDIR
nLinha += 0.30
nColuna := 09.50
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
ALLTRIM(XTELDIR), oFont,, CLR_BLACK,, PAD_CENTER )
// XEMAILEMP
nLinha += 0.30
nColuna := 08.50
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
ALLTRIM(XEMAILEMP), oFont,, CLR_BLACK,, PAD_CENTER )
// XSITEEMP
nLinha += 0.30
nColuna := 08.75
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
ALLTRIM(XSITEEMP), oFont,, CLR_BLACK,, PAD_CENTER )
nLinha += 0.30
nColuna := 1.00
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
REPLICATE("-",110), oFont,, CLR_BLACK,, PAD_LEFT )
nLinha += 0.30
nColuna := 1.00
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
OemToAnsi( "Cliente.: " ) + ;
ALLTRIM( ( DbClientes:cAlias )->DEST_NOME ) + ;
OemToAnsi( " - C¢digo: " ) + ;
ALLTRIM( ( DbClientes:cAlias )->RAZ_MATRIC ), oFont,, ;
CLR_BLACK,, PAD_LEFT )
nLinha += 0.30
nColuna := 1.00
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
OemToAnsi( "Endere‡o: " ) + ;
ALLTRIM( ( DbClientes:cAlias )->END ) + ;
OemToAnsi( " - Bairro: " ) + ;
ALLTRIM( ( DbClientes:cAlias )->BAI ), oFont,, ;
CLR_BLACK,, PAD_LEFT )
nLinha += 0.30
nColuna := 1.00
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
OemToAnsi( "Cidade..: " ) + ;
ALLTRIM( ( DbClientes:cAlias )->CID ) + ;
OemToAnsi( " - Uf: " ) + ;
ALLTRIM( ( DbClientes:cAlias )->UF ) + ;
OemToAnsi( " - Cep: " ) + ;
ALLTRIM( ( DbClientes:cAlias )->CEP ), oFont,, ;
CLR_BLACK,, PAD_LEFT )
nColuna := 12.50
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
OemToAnsi( "Vendedor: " ) + ALLTRIM(XNOMEOPERAD), ;
oFont,, CLR_BLACK,, PAD_LEFT )
//XNOMEOPERAD
nLinha += 0.30
nColuna := 1.00
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
OemToAnsi( "A/C: " ) + ;
ALLTRIM( ( DbClientes:cAlias )->CONTATO ) + ;
OemToAnsi( " - Fone: " ) + ;
ALLTRIM( ( DbClientes:cAlias )->TEL+" - "+ ;
( DbClientes:cAlias )->TEL2+" - "+ ;
( DbClientes:cAlias )->TEL3 ), oFont,, CLR_BLACK,, PAD_LEFT )
nLinha += 0.30
nColuna := 1.00
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
REPLICATE("-",110), oFont,, CLR_BLACK,, PAD_LEFT )
nLinha += 0.50
nColuna := 1.00
//-> Data de Hoje
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
OemToAnsi( "Data: " + DTOC( DATE() ) ), oFont,, ;
CLR_BLACK,, PAD_LEFT )
nColuna := 10.00
//-> Cabe‡alho
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
"COTAÇÃO Nº "+ STRZERO( ( cAlias )->COTACAO ), ;
oFontDivi,, CLR_BLACK,, PAD_CENTER )
nColuna := 17.50
//-> Pagina
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
OemToAnsi( "P gina: " + STRZERO( nPagina ) ), oFont,, ;
CLR_BLACK,, PAD_CENTER )
nLinha += 0.50
nColuna := 1.00
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
REPLICATE("-",110), oFont,, CLR_BLACK,, PAD_LEFT )
nLinha += 0.30 //-> Pula a Linha
//-> Cabecalho
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
OemToAnsi( "QUANT. " + SPACE(07) + ;
"UNID. " + SPACE(05) + ;
"CàDIGO " + SPACE(14) + ;
"DESCRIۂO " + SPACE(16) + ;
"PRE€O UNIT. " + SPACE(12) + ;
"TOTAL ÖTEM " ), oFont,, ;
CLR_BLACK,, PAD_LEFT )
nLinha += 0.30 //-> Pula a Linha
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
REPLICATE("-",110), oFont,, CLR_BLACK,, PAD_LEFT )
nLinha += 0.30
ENDIF
nColuna := 2.75
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
TRANSF( ( cAlias )->QUANTIDADE, "9999999999.999" ), ;
oFont,, CLR_BLACK,, PAD_RIGHT )
nColuna := 3.25
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
( cAlias )->UNIDADE, oFont,, CLR_BLACK,, PAD_LEFT )
nColuna := 4.75
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
( cAlias )->CODIGO, oFont,, CLR_BLACK,, PAD_LEFT )
nColuna := 7.25
//-> Nome do Produto
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
SUBSTR(( cAlias )->DESCRICAO,1,30), oFont,, ;
CLR_BLACK,, PAD_LEFT )
nColuna := 13.00
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
TRANSF((( cAlias )->VALOR_UNIT), "@E 999,999,999.99" ), ;
oFont,, CLR_BLACK,, PAD_LEFT )
nColuna := 16.00
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
CALCULAR_TOTAL_ITEM( cAlias ), oFont,, ;
CLR_BLACK,, PAD_LEFT )
nColuna := 1.00
nLinha += 0.30 //-> Pula a Linha
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
REPLICATE("-",110), oFont,, CLR_BLACK,, PAD_LEFT )
SKIP // Proximo Produto
nLinha += 0.50 //-> Pula a Linha Para o Proximo Produto
ENDDO
GO TOP // Para Mostrar a Condicao de Pagamento e outros
IF nLinha <= 27 // Nova Pagina = 54 Linhas
nColuna := 14.50
nLinha += 0.50
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
OemToAnsi( "TOTAL GERAL: " ), oFont,, ;
CLR_BLACK,, PAD_CENTER )
nColuna := 16.00
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
TRANSF( nTotGeral, "@E 999,999,999,999.99" ), oFont,, ;
CLR_BLACK,, PAD_LEFT )
nColuna := 1.00
nLinha += 0.50 //-> Pula a Linha
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
REPLICATE("-",110), oFont,, CLR_BLACK,, PAD_LEFT )
IF nLinha > 26
ENDPAGE
PAGE
nPagina := nPagina + 1
nColuna := 1.00
nLinha := 0.50 //-> Pula a Linha
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
REPLICATE("-",110), oFont,, CLR_BLACK,, PAD_LEFT )
nLinha += 0.50
nColuna := 1.00
//-> Data de Hoje
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
OemToAnsi( "Data: " + DTOC( DATE() ) ), oFont,, ;
CLR_BLACK,, PAD_LEFT )
nColuna := 10.00
//-> Cabe‡alho
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
"COTAÇÃO Nº "+ STRZERO( ( cAlias )->COTACAO ), ;
oFontDivi,, CLR_BLACK,, PAD_CENTER )
nColuna := 17.50
//-> Pagina
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
OemToAnsi( "P gina: " + STRZERO( nPagina ) ), oFont,, ;
CLR_BLACK,, PAD_CENTER )
nLinha += 0.50
nColuna := 1.00
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
REPLICATE("-",110), oFont,, CLR_BLACK,, PAD_LEFT )
nColuna := 1.00
nLinha += 0.50 //-> Pula a Linha
ELSE
nColuna := 1.00
nLinha += 0.50 //-> Pula a Linha
ENDIF
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
OemToAnsi( "Condi‡äes.......: " + ;
ALLTRIM( ( cAlias )->COND_PAGTO ) ), oFont,, ;
CLR_BLACK,, PAD_LEFT )
nColuna := 1.00
nLinha += 0.50 //-> Pula a Linha
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
OemToAnsi( "Prazo de Entrega: " + ;
ALLTRIM( ( cAlias )->PRAZO_PGTO ) ), oFont,, ;
CLR_BLACK,, PAD_LEFT )
nColuna := 1.00
nLinha += 0.50 //-> Pula a Linha
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
OemToAnsi( "Validade........: " + ;
ALLTRIM( ( cAlias )->VALIDADE ) ), oFont,, ;
CLR_BLACK,, PAD_LEFT )
nColuna := 12.50
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
REPLICATE("-",040), oFont,, CLR_BLACK,, PAD_LEFT )
nColuna := 19.25
nLinha += 0.30
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
ALLTRIM(XNOMEEMP), oFont,, CLR_BLACK,, PAD_RIGHT )
nColuna := 1.00
nLinha += 0.70 //-> Pula a Linha
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
REPLICATE("-",110), oFont,, CLR_BLACK,, PAD_LEFT )
IF .NOT. EMPTY( ( cAlias )->OBS1 )
nColuna := 1.00
nLinha += 0.50 //-> Pula a Linha
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
OemToAnsi( "Obs.: " ), oFont,, ;
CLR_BLACK,, PAD_LEFT )
nColuna := 2.50
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
ALLTRIM( ( cAlias )->OBS1 ), oFont,, ;
CLR_BLACK,, PAD_LEFT )
nColuna := 2.50
nLinha += 0.50 //-> Pula a Linha
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
ALLTRIM( ( cAlias )->OBS2 ), oFont,, ;
CLR_BLACK,, PAD_LEFT )
nColuna := 2.50
nLinha += 0.50 //-> Pula a Linha
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
ALLTRIM( ( cAlias )->OBS3 ), oFont,, ;
CLR_BLACK,, PAD_LEFT )
nColuna := 2.50
nLinha += 0.50 //-> Pula a Linha
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
ALLTRIM( ( cAlias )->OBS4 ), oFont,, ;
CLR_BLACK,, PAD_LEFT )
nColuna := 2.50
nLinha += 0.50 //-> Pula a Linha
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
ALLTRIM( ( cAlias )->OBS5 ), oFont,, ;
CLR_BLACK,, PAD_LEFT )
nColuna := 2.50
nLinha += 0.50 //-> Pula a Linha
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
ALLTRIM( ( cAlias )->OBS6 ), oFont,, ;
CLR_BLACK,, PAD_LEFT )
nColuna := 2.50
nLinha += 0.50 //-> Pula a Linha
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
ALLTRIM( ( cAlias )->OBS7 ), oFont,, ;
CLR_BLACK,, PAD_LEFT )
nColuna := 2.50
nLinha += 0.50 //-> Pula a Linha
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
ALLTRIM( ( cAlias )->OBS8 ), oFont,, ;
CLR_BLACK,, PAD_LEFT )
ENDIF
ELSE // se nao couber na pagina
nColuna := 14.50
nLinha += 0.50
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
OemToAnsi( "TOTAL GERAL: " ), oFont,, ;
CLR_BLACK,, PAD_CENTER )
nColuna := 16.00
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
TRANSF( nTotGeral, "@E 999,999,999,999.99" ), oFont,, ;
CLR_BLACK,, PAD_LEFT )
nColuna := 1.00
nLinha += 0.50 //-> Pula a Linha
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
REPLICATE("-",110), oFont,, CLR_BLACK,, PAD_LEFT )
IF nLinha >= 27
ENDPAGE
PAGE
nPagina := nPagina + 1
nColuna := 1.00
nLinha := 0.50 //-> Pula a Linha
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
REPLICATE("-",110), oFont,, CLR_BLACK,, PAD_LEFT )
nLinha += 0.50
nColuna := 1.00
//-> Data de Hoje
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
OemToAnsi( "Data: " + DTOC( DATE() ) ), oFont,, ;
CLR_BLACK,, PAD_LEFT )
nColuna := 10.00
//-> Cabe‡alho
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
"COTAÇÃO Nº "+ STRZERO( ( cAlias )->COTACAO ), ;
oFontDivi,, CLR_BLACK,, PAD_CENTER )
nColuna := 17.50
//-> Pagina
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
OemToAnsi( "P gina: " + STRZERO( nPagina ) ), oFont,, ;
CLR_BLACK,, PAD_CENTER )
nLinha += 0.50
nColuna := 1.00
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
REPLICATE("-",110), oFont,, CLR_BLACK,, PAD_LEFT )
nColuna := 1.00
nLinha += 0.50 //-> Pula a Linha
ELSE
nColuna := 1.00
nLinha += 0.50 //-> Pula a Linha
ENDIF
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
OemToAnsi( "Condi‡äes.......: " + ;
ALLTRIM( ( cAlias )->COND_PAGTO ) ), oFont,, ;
CLR_BLACK,, PAD_LEFT )
nColuna := 1.00
nLinha += 0.50 //-> Pula a Linha
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
OemToAnsi( "Prazo de Entrega: " + ;
ALLTRIM( ( cAlias )->PRAZO_PGTO ) ), oFont,, ;
CLR_BLACK,, PAD_LEFT )
nColuna := 1.00
nLinha += 0.50 //-> Pula a Linha
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
OemToAnsi( "Validade........: " + ;
ALLTRIM( ( cAlias )->VALIDADE ) ), oFont,, ;
CLR_BLACK,, PAD_LEFT )
nColuna := 12.50
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
REPLICATE("-",040), oFont,, CLR_BLACK,, PAD_LEFT )
nColuna := 19.25
nLinha += 0.30
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
ALLTRIM(XNOMEEMP), oFont,, CLR_BLACK,, PAD_RIGHT )
nColuna := 1.00
nLinha += 0.70 //-> Pula a Linha
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
REPLICATE("-",110), oFont,, CLR_BLACK,, PAD_LEFT )
IF .NOT. EMPTY( ( cAlias )->OBS1 )
nColuna := 1.00
nLinha += 0.50 //-> Pula a Linha
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
OemToAnsi( "Obs.: " ), oFont,, ;
CLR_BLACK,, PAD_LEFT )
nColuna := 2.50
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
ALLTRIM( ( cAlias )->OBS1 ), oFont,, ;
CLR_BLACK,, PAD_LEFT )
nColuna := 2.50
nLinha += 0.50 //-> Pula a Linha
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
ALLTRIM( ( cAlias )->OBS2 ), oFont,, ;
CLR_BLACK,, PAD_LEFT )
nColuna := 2.50
nLinha += 0.50 //-> Pula a Linha
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
ALLTRIM( ( cAlias )->OBS3 ), oFont,, ;
CLR_BLACK,, PAD_LEFT )
nColuna := 2.50
nLinha += 0.50 //-> Pula a Linha
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
ALLTRIM( ( cAlias )->OBS4 ), oFont,, ;
CLR_BLACK,, PAD_LEFT )
nColuna := 2.50
nLinha += 0.50 //-> Pula a Linha
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
ALLTRIM( ( cAlias )->OBS5 ), oFont,, ;
CLR_BLACK,, PAD_LEFT )
nColuna := 2.50
nLinha += 0.50 //-> Pula a Linha
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
ALLTRIM( ( cAlias )->OBS6 ), oFont,, ;
CLR_BLACK,, PAD_LEFT )
nColuna := 2.50
nLinha += 0.50 //-> Pula a Linha
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
ALLTRIM( ( cAlias )->OBS7 ), oFont,, ;
CLR_BLACK,, PAD_LEFT )
nColuna := 2.50
nLinha += 0.50 //-> Pula a Linha
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
ALLTRIM( ( cAlias )->OBS8 ), oFont,, ;
CLR_BLACK,, PAD_LEFT )
ENDIF
ENDIF
ENDPAGE
ENDIF
ENDPRINT
oFont:End()
oFontLogo:End()
oFontDivi:End()
oFontList:End()
oFontCurs:End()
oFontSubl:End()
oPen1:End()
oPen2:End()
oPen3:End()
oLbxCota:GoTop()
oLbxCota:Refresh()
lImprimeForn := .F.
RETURN NIL