Maestros, no encuentro ningún error en este informe, aparentemente es perfecto.
Code: Select all | Expand
FUNCTION IMPRIMIR_ESCOPOS_LIMP( DeOndePartiu, oDlgBtn )
LOCAL oPrn, nMargin, nWidth, nColWidth, nRow, nCol, oImage
LOCAL XDATALISTA, cAlias, cMemoria
LOCAL oFont, oFontLogo, oFontDivi, oFontList, oFontCurs, oPen1, oPen2, ;
oPen3, oFontSubl, ResLinha, ResColuna, cProposta, nLinha, nColuna, ;
oFontBold, nTotalParc := 0.00, nTotalGeral := 0.00, nTotalProdu
LOCAL nPulaLinha, oFontMin, oFontSub2, nPagina, oFontRua, nItem
LOCAL cSublin, cImpSub, cFile
PRIVATE WE1, WE2, WE3, LARGEXTEN2
PUBLIC nValorVenda
STOR SPAC( 70 ) TO WE1, WE2, WE3
cFile := "C:\ORCAMPDF\" + "ORCAM" + ALLTRIM( nProposta ) + ".PDF"
XDATALISTA := "São Paulo" + ", " + LTRIM( STR( DAY( DATE() ) ) ) + ;
" de " + OemToAnsi( CMONTH( DATE() ) ) + ;
" de " + LTRIM( STR( YEAR( DATE() ) ) ) + "."
HB_GCALL( .F. ) // PARA LIMPAR A MEMORIA
LCHDIR( cDirPleno )
SET DEFAULT TO
aPrn := GetPrinters() // 02/08/2017 Teste para ver se avisa erro.
IF Empty( aPrn ) // Empty( oPrn:hDC )
MsgStop( "Nenhuma Impressora Encontrada", "Nenhuma Impressora Encontrada" )
RETURN NIL
ENDIF
PRINTER oPrn PREVIEW MODAL // PARA TESTAR A IMPRESSORA ANTES DE IMPRIMIR
IF EMPTY( oPrn:hDC ) // MODIFICADO EM: 05/05/2015 - Quebrou na Gilmaria.
MsgInfo( "ALGUMA COISA OCORREU DE ERRADO COM A IMPRESSORA.", "LIGUE A IMPRESSORA." )
oPrn:End()
RETURN( .F. )
ENDIF
oPrn:End()
IF .NOT. NETERR()
SELECT( DBRECOMPOS )
ELSE
MsgInfo( "ERRO DE REDE. Verifique!", "Confirma " )
LIBERA_TUDO()
RETURN NIL
ENDIF
cProposta := nProposta // PARA O INDICE TEMPORARIO TEM QUE SER ASSIM.
INDEX ON PROPOCOD TAG 04 TO ORCATEMP FOR ( .NOT. EOF() ) .AND. ;
( DBRECOMPOS )->PROPOCOD >= cProposta .AND. ;
( DBRECOMPOS )->PROPOCOD <= cProposta MEMORY // TEMPORARY
GO TOP
IF EOF()
MsgStop( OemToAnsi( "Nenhuma Proposta Localizada Para ImpressÆo" ), ;
OemToAnsi( "Nenhuma Proposta Localizada Para ImpressÆo" ) )
RETURN NIL
ENDIF
cAlias := ALIAS()
oImage := ".\LOGO.jpg" // tem que estar na pasta do plenoind
IF DeOndePartiu = "DIRETONAIMP" // DIRETO NA IMPRESSORA
PRINT oPrn NAME "LIMPEZA_JARDIM" // DIRETO NA IMP.
ELSEIF DeOndePartiu = "COMPREVIEWFIVE" // COM PREVIEW(Visualizacao)
PRINT oPrn NAME "LIMPEZA_JARDIM" PREVIEW MODAL
ELSEIF DeOndePartiu = "COMPREVIEWPDF" // GERAR O ARQUIVO PDF.
PRINT oPrn PREVIEW
ENDIF
DEFINE FONT oFontRua NAME "Courier New" SIZE 0, - 10 OF oPrn
DEFINE FONT oFontMin NAME "Courier New" SIZE 0, - 10 BOLD OF oPrn
DEFINE FONT oFont NAME "Courier New" SIZE 0, - 12 OF oPrn
DEFINE FONT oFontBold NAME "Courier New" SIZE 0, - 12 BOLD OF oPrn
DEFINE FONT oFontSubl NAME "Courier New" SIZE 0, - 12 BOLD UnderLine OF oPrn
DEFINE FONT oFontSub2 NAME "Courier New" SIZE 0, - 12 BOLD UnderLine OF oPrn
//-> 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)
//- Como Imprimir em Centimetros sem errar e em qualquer Impressora
ResLinha := oPrn:nLogPixely()/2.54
ResColuna := oPrn:nLogPixelx()/2.54
nMargin := Int( 0.1 * oPrn:nHorzRes() )
nWidth := 8 * nMargin
nColWidth := Int( ( nWidth - nMargin ) / 2 )
nPagina := 1
PAGE
nRow := 1.50 // Linha
nCol := 650.00 // Coluna do Logo.jpg
@ nLinLogo, nColLogo PRINT TO oPrn IMAGE "LOGO.JPG" SIZE nLargLogo, nAltLogo LASTROW nRow
nLinha := 1.00
nColuna := 18.00
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
OemToAnsi( "P g.: " + ALLTRIM( STRZERO( nPagina, 2 ) ) ), oFont, , ;
CLR_BLACK, , PAD_CENTER )
nLinha := 3.00 // era 2.50
IF LEN( ALLTRIM( nProposta ) ) = 1
nColuna := 4.35
ELSEIF LEN( ALLTRIM( nProposta ) ) = 2
nColuna := 4.45
ELSEIF LEN( ALLTRIM( nProposta ) ) = 3
nColuna := 4.55
ELSEIF LEN( ALLTRIM( nProposta ) ) = 4 // OK
nColuna := 4.65
ELSEIF LEN( ALLTRIM( nProposta ) ) = 5 // OK
nColuna := 4.75
ELSEIF LEN( ALLTRIM( nProposta ) ) = 6 // OK
nColuna := 4.85 // 5.00 -.15
ELSEIF LEN( ALLTRIM( nProposta ) ) = 7 // OK
nColuna := 4.95
ELSEIF LEN( ALLTRIM( nProposta ) ) = 8 // OK
nColuna := 5.05
ELSEIF LEN( ALLTRIM( nProposta ) ) = 9 // OK
nColuna := 5.15
ELSEIF LEN( ALLTRIM( nProposta ) ) = 10 // OK
nColuna := 5.25
ELSE
nColuna := 5.35
ENDIF
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
"Orçamento Nº.: " + ALLTRIM( nProposta ), oFont, , ;
CLR_BLACK, , PAD_CENTER )
oPrn:cmSay( nLinha, 19.00, "" + XDATALISTA, oFontRua, , CLR_BLACK, , PAD_RIGHT )
nLinha := nLinha += 0.80
IF LEN( ALLTRIM( STR( nClienCod ) ) ) = 1
nColuna := 7.48 // 7.50
ELSEIF LEN( ALLTRIM( STR( nClienCod ) ) ) = 2
nColuna := 7.58 // 7.60
ELSEIF LEN( ALLTRIM( STR( nClienCod ) ) ) = 3
nColuna := 7.68 // 7.70
ELSEIF LEN( ALLTRIM( STR( nClienCod ) ) ) = 4 // OK
nColuna := 7.78 // 7.80
ELSEIF LEN( ALLTRIM( STR( nClienCod ) ) ) = 5
nColuna := 7.83 // 7.85
ELSEIF LEN( ALLTRIM( STR( nClienCod ) ) ) = 6
nColuna := 7.93 // 7.95
ELSEIF LEN( ALLTRIM( STR( nClienCod ) ) ) = 7
nColuna := 8.03 // 8.05
ELSEIF LEN( ALLTRIM( STR( nClienCod ) ) ) = 8
nColuna := 8.13 // 8.15
ELSEIF LEN( ALLTRIM( STR( nClienCod ) ) ) = 9
nColuna := 8.23 // 8.25
ELSEIF LEN( ALLTRIM( STR( nClienCod ) ) ) = 10
nColuna := 8.33 // 8.35
ENDIF
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ "CÓD.: " + ALLTRIM( STR( nClienCod ) ) + " - " + ClienPropo, ;
oFontRua, , CLR_BLACK, , PAD_CENTER )
nLinha := nLinha += 0.50
nColuna := 6.40 // 6.55
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ EnderPropo, oFontRua, , CLR_BLACK, , PAD_CENTER )
nLinha := nLinha += 0.50
nColuna := 5.15 // 5.30
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
"BAIRRO: " + BairrPropo, oFontRua, , CLR_BLACK, , PAD_CENTER )
nColuna := nColuna += 6.50 // 5.05
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
"CIDADE: " + CidadPropo, oFontRua, , CLR_BLACK, , PAD_CENTER )
nColuna := nColuna += 4.50
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
"UF: " + UFdaPropo, oFontRua, , CLR_BLACK, , PAD_CENTER )
nLinha := nLinha += 0.60
nColuna := 2.85 // 2.95
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
"Att.: ", oFontRua, , CLR_BLACK, , PAD_CENTER )
nColuna := 7.10
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ cContatoCli, oFontRua, , CLR_BLACK, , PAD_CENTER )
cOrcamento := "REF.: " // + cTPSerNome // NOME DO SERVICO
nLinha := nLinha += 1.00
nColuna := 2.95 // "REF.:" // 3.10
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ cOrcamento, oFontBold, , CLR_BLACK, , PAD_CENTER )
nColuna := 7.70 // 7.70
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ cTPSerNome, oFontBold, , CLR_BLACK, , PAD_CENTER )
cSublin := "REF.: " + ALLTRIM( cTPSerNome ) // TIRAR BRANCOS P/ENCAIXAR
cImpSub := LEN( cSublin ) + 1.2 // PARA SUBLINHADO.
nLinha := nLinha += 0.05 // Tiro os Brancos e Encaixo embaixo o SUBLINHADO
nColuna := 2.20 // - 2.35 -.15
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
REPLICATE( "_", cImpSub ), oFontBold , , CLR_BLACK, , PAD_LEFT )
cConforme1 := "Conforme solicitação segue proposta abaixo: "
nLinha := nLinha += 0.80
nColuna := 13.20 // -.15
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ cConforme1, oFont, , CLR_BLACK, , PAD_CENTER )
nLinha := nLinha += 0.80
nColuna := 5.35
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ "01. ESCOPO DOS TRABALHOS:", oFontSub2, , CLR_BLACK, , PAD_CENTER )
// PODAS AQUI
nLinha := nLinha += 0.60
nColuna := 10.05 // 10.15 -.10
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ cPodas1, oFont, , CLR_BLACK, , PAD_CENTER )
nLinha := nLinha += 0.50
nColuna := 10.05
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ cPodas2, oFont, , CLR_BLACK, , PAD_CENTER )
nLinha := nLinha += 0.50
nColuna := 10.05
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ cPodas3, oFont, , CLR_BLACK, , PAD_CENTER )
nLinha := nLinha += 0.50
nColuna := 10.05
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ cPodas4, oFont, , CLR_BLACK, , PAD_CENTER )
nLinha := nLinha += 0.50
nColuna := 10.05
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ cPodas5, oFont, , CLR_BLACK, , PAD_CENTER )
IF .NOT. EMPTY( cPodas6 )
nLinha := nLinha += 0.50
nColuna := 10.05
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ cPodas6, oFont, , CLR_BLACK, , PAD_CENTER )
ENDIF
IF .NOT. EMPTY( cPodas7 )
nLinha := nLinha += 0.50
nColuna := 10.05
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ cPodas7, oFont, , CLR_BLACK, , PAD_CENTER )
ENDIF
IF .NOT. EMPTY( cPodas8 )
nLinha := nLinha += 0.50
nColuna := 10.05
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ cPodas8, oFont, , CLR_BLACK, , PAD_CENTER )
ENDIF
IF .NOT. EMPTY( cPodas9 )
nLinha := nLinha += 0.50
nColuna := 10.05
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ cPodas9, oFont, , CLR_BLACK, , PAD_CENTER )
ENDIF
IF .NOT. EMPTY( cPodas10 )
nLinha := nLinha += 0.50
nColuna := 10.05
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ cPodas10, oFont, , CLR_BLACK, , PAD_CENTER )
ENDIF
IF .NOT. EMPTY( cPodas11 )
nLinha := nLinha += 0.50
nColuna := 10.05
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ cPodas11, oFont, , CLR_BLACK, , PAD_CENTER )
ENDIF
IF .NOT. EMPTY( cPodas12 )
nLinha := nLinha += 0.50
nColuna := 10.05
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ cPodas12, oFont, , CLR_BLACK, , PAD_CENTER )
ENDIF
IF .NOT. EMPTY( cPodas13 )
nLinha := nLinha += 0.50
nColuna := 10.05
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ cPodas13, oFont, , CLR_BLACK, , PAD_CENTER )
ENDIF
IF .NOT. EMPTY( cPodas14 )
nLinha := nLinha += 0.50
nColuna := 10.05
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ cPodas14, oFont, , CLR_BLACK, , PAD_CENTER )
ENDIF
IF .NOT. EMPTY( cPodas15 )
nLinha := nLinha += 0.50
nColuna := 10.05
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ cPodas15, oFont, , CLR_BLACK, , PAD_CENTER )
ENDIF
IF .NOT. EMPTY( cPodas16 )
nLinha := nLinha += 0.50
nColuna := 10.05
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ cPodas16, oFont, , CLR_BLACK, , PAD_CENTER )
ENDIF
IF .NOT. EMPTY( cPodas17 )
nLinha := nLinha += 0.50
nColuna := 10.05
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ cPodas17, oFont, , CLR_BLACK, , PAD_CENTER )
ENDIF
IF .NOT. EMPTY( cPodas18 )
nLinha := nLinha += 0.50
nColuna := 10.05
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ cPodas18, oFont, , CLR_BLACK, , PAD_CENTER )
ENDIF
IF .NOT. EMPTY( cPodas19 )
nLinha := nLinha += 0.50
nColuna := 10.05
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ cPodas19, oFont, , CLR_BLACK, , PAD_CENTER )
ENDIF
IF .NOT. EMPTY( cPodas20 )
nLinha := nLinha += 0.50
nColuna := 10.05
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ cPodas20, oFont, , CLR_BLACK, , PAD_CENTER )
ENDIF
IF .NOT. EMPTY( cPodas21 )
nLinha := nLinha += 0.50
nColuna := 10.05
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ cPodas21, oFont, , CLR_BLACK, , PAD_CENTER )
ENDIF
IF .NOT. EMPTY( cPodas22 )
nLinha := nLinha += 0.50
nColuna := 10.05
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ cPodas22, oFont, , CLR_BLACK, , PAD_CENTER )
ENDIF
IF .NOT. EMPTY( cPodas23 )
nLinha := nLinha += 0.50
nColuna := 10.05
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ cPodas23, oFont, , CLR_BLACK, , PAD_CENTER )
ENDIF
IF .NOT. EMPTY( cPodas24 )
nLinha := nLinha += 0.50
nColuna := 10.05
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ cPodas24, oFont, , CLR_BLACK, , PAD_CENTER )
ENDIF
IF .NOT. EMPTY( cPodas25 )
nLinha := nLinha += 0.50
nColuna := 10.05
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ cPodas25, oFont, , CLR_BLACK, , PAD_CENTER )
ENDIF
IF .NOT. EMPTY( cPodas26 )
nLinha := nLinha += 0.50
nColuna := 10.05
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ cPodas26, oFont, , CLR_BLACK, , PAD_CENTER )
ENDIF
IF .NOT. EMPTY( cPodas27 )
nLinha := nLinha += 0.50
nColuna := 10.05
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ cPodas27, oFont, , CLR_BLACK, , PAD_CENTER )
ENDIF
IF .NOT. EMPTY( cPodas28 )
nLinha := nLinha += 0.50
nColuna := 10.05
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ cPodas28, oFont, , CLR_BLACK, , PAD_CENTER )
ENDIF
IF .NOT. EMPTY( cPodas29 )
nLinha := nLinha += 0.50
nColuna := 10.05
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ cPodas29, oFont, , CLR_BLACK, , PAD_CENTER )
ENDIF
IF .NOT. EMPTY( cPodas30 )
nLinha := nLinha += 0.50
nColuna := 10.05
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ cPodas30, oFont, , CLR_BLACK, , PAD_CENTER )
ENDIF
IF .NOT. EMPTY( cPodas31 )
nLinha := nLinha += 0.50
nColuna := 10.05
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ cPodas31, oFont, , CLR_BLACK, , PAD_CENTER )
ENDIF
IF nLinha >= 23.00 // PARA AS OBSERVACOES
nLinha := 27.00
nColuna := 10.50
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ OemToAnsi( "Rua Fl¢rio, 271 Ch cara Mafalda-SÆo Paulo-SP CEP: 03372-050 Tel: 2674-3173 www.ambienty.com.br" ), ;
oFontMin, , CLR_GREEN, , PAD_CENTER )
ENDPAGE
PAGE // NOVA PAGINA
// oPrn:SayImage( nLinLogo, nColLogo, "LOGO.JPG", nLargLogo, nAltLogo )
@ nLinLogo, nColLogo PRINT TO oPrn IMAGE "LOGO.JPG" SIZE nLargLogo, nAltLogo LASTROW nRow
++nPagina
nLinha := 1.00
nColuna := 18.00 // 17.50
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
OemToAnsi( "P g.: " + ALLTRIM( STRZERO( nPagina, 2 ) ) ), oFont, , ;
CLR_BLACK, , PAD_CENTER )
nLinha := 3.00 // 23 Linhas
ELSE
nLinha := nLinha += 0.70 // MUDEI EM: 23/09/2021 - Joao.
ENDIF
nTotalProdu := 0.00
GO TOP
WHILE( .NOT. EOF() )
SYSREFRESH()
nTotalProdu := nTotalProdu + ( cAlias )->VRVENDA * ;
( cAlias )->PRODUQTDE
SKIP
ENDDO
IF( nTotalProdu ) > 0.00
lLigaProduto := .T.
ENDIF
GO TOP
IF lLigaProduto // := .F. // STATIC NO INICIO DO MODULO
IF lImpFonte12 // := .T. // COURIER NEW 12 - 07/10/2021 Implementei.
nColuna := 2.10 // 3.20
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ OemToAnsi( "C¢digo:" ), oFont,, CLR_BLACK,, PAD_CENTER )
nColuna := 5.05 // 5.84
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ OemToAnsi( "Produto:" ), oFont,, CLR_BLACK,, PAD_CENTER )
nColuna := 11.90
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ OemToAnsi( "Un:" ), oFont,, CLR_BLACK,, PAD_CENTER )
nColuna := 13.20 // 13.10
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ OemToAnsi( "Qtd:" ), oFont,, CLR_BLACK,, PAD_CENTER )
nColuna := 15.30
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ OemToAnsi( "Valor Un:" ), oFont,, CLR_BLACK,, PAD_CENTER )
nColuna := 18.70 // 18.30
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ OemToAnsi( "Total:" ), oFont,, CLR_BLACK,, PAD_CENTER )
ELSE // COURIR NEW 10 - 07/10/2021 - Joao
nColuna := 3.25
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ OemToAnsi( "C¢digo:" ), oFont,, CLR_BLACK,, PAD_CENTER )
nColuna := 5.84 // 5.84
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ OemToAnsi( "Produto:" ), oFont,, CLR_BLACK,, PAD_CENTER )
nColuna := 11.75
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ OemToAnsi( "Un:" ), oFont,, CLR_BLACK,, PAD_CENTER )
nColuna := 13.20
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ OemToAnsi( "Qtd:" ), oFont,, CLR_BLACK,, PAD_CENTER )
nColuna := 15.30
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ OemToAnsi( "Valor Un:" ), oFont,, CLR_BLACK,, PAD_CENTER )
nColuna := 18.70
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ OemToAnsi( "Total:" ), oFont,, CLR_BLACK,, PAD_CENTER )
ENDIF
nLinha := nLinha += 0.60 // LINHA DOS PRODUTOS
ENDIF
GO TOP
WHILE( .NOT. EOF() )
SYSREFRESH()
IF ( cAlias )->PRODUNOME = SPACE( 30 ) // NAO MOSTRA O PRODUTO
SKIP
LOOP
ENDIF
IF lImpFonte12 // := .T. // COURIER NEW 12
nColuna := 2.50 // 3.35
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ ( cAlias )->PRODUCOD, oFont,, CLR_BLACK,, PAD_CENTER )
nColuna := 7.80 // 8.00 - Estava oFontRua
// ESCOPO DOS TRABALHOS AQUI. PRODUTOS DA LIMPEZA
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ ( cAlias )->PRODUNOME, oFont, , CLR_BLACK, , PAD_CENTER )
nColuna := 13.00 // 12.50
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ ( cAlias )->PRODUUNID, oFont, , CLR_BLACK, , PAD_CENTER )
nColuna := 13.70
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ ALLTRIM( TRANS( ( cAlias )->PRODUQTDE, "@ 99999" ) ), ;
oFont,, CLR_BLACK,, PAD_RIGHT )
nColuna := 16.40 // 16.00
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ ALLTRIM( TRANS( ( cAlias )->VRVENDA, "@E 99,999.99" ) ), ;
oFont,, CLR_BLACK,, PAD_RIGHT )
nColuna := 19.50 // 19.05
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ ALLTRIM( TRANS( ( cAlias )->VRTOTAL, "@E 9,999,999.99" ) ), ;
oFont,, CLR_BLACK,, PAD_RIGHT )
ELSE // COURIER NEW 10
nColuna := 3.40 // 3.35
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ ( cAlias )->PRODUCOD, oFontRua,, CLR_BLACK,, PAD_CENTER )
nColuna := 8.00
// ESCOPO DOS TRABALHOS AQUI. PRODUTOS DA LIMPEZA
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ ( cAlias )->PRODUNOME, oFontRua, , CLR_BLACK, , PAD_CENTER )
nColuna := 12.50 // 12.50
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ ( cAlias )->PRODUUNID, oFontRua, , CLR_BLACK, , PAD_CENTER )
nColuna := 13.70
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ ALLTRIM( TRANS( ( cAlias )->PRODUQTDE, "@ 99999" ) ), ;
oFontRua,, CLR_BLACK,, PAD_RIGHT )
nColuna := 16.30
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ ALLTRIM( TRANS( ( cAlias )->VRVENDA, "@E 99,999.99" ) ), ;
oFontRua,, CLR_BLACK,, PAD_RIGHT )
nColuna := 19.50
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ ALLTRIM( TRANS( ( cAlias )->VRTOTAL, "@E 9,999,999.99" ) ), ;
oFontRua,, CLR_BLACK,, PAD_RIGHT )
ENDIF // FIM DA COURIER NEW 10
SKIP
IF nLinha >= 23.00 // PARA AS OBSERVACOES/ ACHO QUE ENTRARA NO WHILE DOS PRODUTOS
nLinha := 27.00
nColuna := 10.50
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ OemToAnsi( "Rua Fl¢rio, 271 Ch cara Mafalda-SÆo Paulo-SP CEP: 03372-050 Tel: 2674-3173 www.ambienty.com.br" ), ;
oFontMin, , CLR_GREEN, , PAD_CENTER )
ENDPAGE
PAGE // NOVA PAGINA
// CONFIGURACAO ESTA EM: AMBLOGO.DBF
// oPrn:SayImage( nLinLogo, nColLogo, "LOGO.JPG", nLargLogo, nAltLogo )
@ nLinLogo, nColLogo PRINT TO oPrn IMAGE "LOGO.JPG" SIZE nLargLogo, nAltLogo LASTROW nRow
++nPagina
nLinha := 1.00
nColuna := 18.00 // 18.00
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
OemToAnsi( "P g.: " + ALLTRIM( STRZERO( nPagina, 2 ) ) ), oFont, , ;
CLR_BLACK, , PAD_CENTER )
nLinha := 3.00
ENDIF
nLinha := nLinha += 0.50
ENDDO
cProdutos := "Produtos: "
IF lLigaProduto // := .F. // SE TIVER PRODUTOS
IF nLinha # 3.00
nLinha := nLinha += 0.40
ENDIF
nColuna := 4.00
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ cProdutos, oFont, , CLR_BLACK, , PAD_CENTER )
nColuna := 4.70 // 4.60
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
REPLICATE( ".", 046 ), oFont, , CLR_BLACK, , PAD_LEFT )
nColuna := 15.56
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ " ", oFont, , CLR_BLACK, , PAD_CENTER )
nColuna := 19.50
IF lImpFonte12 // := .T. // COURIER NEW 12 - 07/10/2021 Implementei.
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ ALLTRIM( TRANS( nTotalProdu, "@E 9,999,999.99" ) ), ;
oFont, , CLR_BLACK, , PAD_RIGHT )
ELSE
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ ALLTRIM( TRANS( nTotalProdu, "@E 9,999,999.99" ) ), ;
oFontRua, , CLR_BLACK, , PAD_RIGHT )
ENDIF
ENDIF
cMaoObra := "Mão de Obra: "
IF( nVrUnSer ) > 0.00
nLinha := nLinha += 0.50
nColuna := 4.00
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ cMaoObra, oFont, , CLR_BLACK, , PAD_CENTER )
nColuna := 5.45
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
REPLICATE( ".", 043 ), oFont, , CLR_BLACK, , PAD_LEFT )
nColuna := 15.56
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ " ", oFont, , CLR_BLACK, , PAD_CENTER )
nColuna := 19.50
IF lImpFonte12 // := .T. // COURIER NEW 12 - 07/10/2021 Implementei.
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ ALLTRIM( TRANS( nVrUnSer, "@E 9,999,999.99" ) ), ;
oFont, , CLR_BLACK, , PAD_RIGHT )
ELSE
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ ALLTRIM( TRANS( nVrUnSer, "@E 9,999,999.99" ) ), ;
oFontRua, , CLR_BLACK, , PAD_RIGHT )
ENDIF
ENDIF
IF nDesconto > 0.00
nLinha := nLinha += 0.50
nColuna := 3.60
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ OemToAnsi( "Desconto: " ), oFont, , CLR_BLACK, , PAD_CENTER )
nColuna := 4.65
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
REPLICATE( ".", 046 ), oFont, , CLR_BLACK, , PAD_LEFT )
nColuna := 19.50
IF lImpFonte12 // := .T. // COURIER NEW 12 - 07/10/2021 Implementei.
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ ALLTRIM( TRANS( nDesconto, "@E 999,999.99" ) ), ;
oFont, , CLR_BLACK, , PAD_RIGHT )
ELSE
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ ALLTRIM( TRANS( nDesconto, "@E 999,999.99" ) ), ;
oFontRua, , CLR_BLACK, , PAD_RIGHT )
ENDIF
nValorTotal := 0.00
nDesconto := 0.00 // INCLUIDO EM: 04/09/2019
nTotalNfe := 0.00
GO TOP
WHILE( .NOT. EOF() )
SYSREFRESH()
nDesconto := nDesconto + VRDESCONTO
SKIP
ENDDO
GO TOP
WHILE( .NOT. EOF() )
SYSREFRESH()
nTotalNfe := nTotalNfe + ( cAlias )->VRVENDA * ;
( cAlias )->PRODUQTDE + ;
( cAlias )->VRUNSER
SKIP
ENDDO
nValorTotal := nTotalNfe - nDesconto // - nDesconto // somente se a Fernanda disser que sim
ENDIF
nLinha := nLinha += 1.00
nColuna := 3.45
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ OemToAnsi( "02. TOTAL:" ), oFontSub2, , CLR_BLACK, , PAD_CENTER )
nVal := nValorTotal // lDin
EXTENSO( nVal, 50, WE1, WE2, WE3 )
nLinha := nLinha += 0.70
nColuna := 3.60 // 3.75
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ OemToAnsi( "R$ " ), oFont, , CLR_BLACK, , PAD_CENTER )
nColuna := nColuna += 0.60
IF WE2 # SPACE( 50 )
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ ALLTRIM( TRANS( nValorTotal, "@E 999,999,999.99" ) ) + " (" + ;
ALLTRIM( WE1 ), oFont, , CLR_BLACK, , PAD_LEFT )
IF WE2 # SPACE( 50 )
nLinha := nLinha += 0.50
nColuna := nColuna += 2.60
IF WE3 = SPACE( 50 )
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ ALLTRIM( WE2 ) + ").", oFont, , CLR_BLACK, , PAD_LEFT )
ELSE
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ ALLTRIM( WE2 ), oFont, , CLR_BLACK, , PAD_LEFT )
ENDIF
ENDIF
IF WE3 # SPACE( 50 )
nLinha := nLinha += 0.50
nColuna := nColuna += 2.60
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ ALLTRIM( WE3 ) + ").", oFont, , CLR_BLACK, , PAD_LEFT )
ENDIF
ELSE // - < QUE 50 CARACTERES.
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ ALLTRIM( TRANS( nValorTotal, "@E 999,999,999.99" ) ) + " (" + ;
ALLTRIM( WE1 ) + ").", oFont, , CLR_BLACK, , PAD_LEFT )
ENDIF
IF nLinha >= 23.00 // PARA AS OBSERVACOES/ ACHO QUE ENTRARA NO WHILE DOS PRODUTOS
nLinha := 27.00
nColuna := 10.50
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ OemToAnsi( "Rua Fl¢rio, 271 Ch cara Mafalda-SÆo Paulo-SP CEP: 03372-050 Tel: 2674-3173 www.ambienty.com.br" ), ;
oFontMin, , CLR_GREEN, , PAD_CENTER )
ENDPAGE
PAGE // NOVA PAGINA
// CONFIGURACAO ESTA EM: AMBLOGO.DBF
// oPrn:SayImage( nLinLogo, nColLogo, "LOGO.JPG", nLargLogo, nAltLogo )
@ nLinLogo, nColLogo PRINT TO oPrn IMAGE "LOGO.JPG" SIZE nLargLogo, nAltLogo LASTROW nRow
++nPagina
nLinha := 1.00
nColuna := 18.00 // 18.00
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
OemToAnsi( "P g.: " + ALLTRIM( STRZERO( nPagina, 2 ) ) ), oFont, , ;
CLR_BLACK, , PAD_CENTER )
nLinha := 3.00
ENDIF
IF nLinha # 3.00
nLinha := nLinha += 0.80
ENDIF
nColuna := 5.61
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ OemToAnsi( "03. CONDIیES DE PAGAMENTO:" ), ;
oFontSub2, , CLR_BLACK, , PAD_CENTER )
nLinha := nLinha += 0.60
nColuna := 3.20
// cCondPagto pode alterar no dialogo, Lucia pediu edicao - OK
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ cCondPagto, oFont, , CLR_BLACK, , PAD_LEFT )
// OBSERVACOES AQUI - DEPENDENDO DO TAMANHO DO TEXTO FICA NA MESMA PAG. Joao
IF .NOT. EMPTY( cObserva1 )
nLinha := nLinha += 0.80
nColuna := 4.075 // 4.15
// ter opcao de alterar
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ OemToAnsi( "04. OBSERVAۂO:" ), ;
oFontSub2, , CLR_BLACK, , PAD_CENTER )
nLinha := nLinha += 0.60
nColuna := 10.95 // 11.05 -.10
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ cObserva1, oFont, , CLR_BLACK, , PAD_CENTER )
ENDIF
IF .NOT. EMPTY( cObserva2 )
nLinha := nLinha += 0.50
nColuna := 10.95 //10.55
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ cObserva2, oFont, , CLR_BLACK, , PAD_CENTER )
ENDIF
IF .NOT. EMPTY( cObserva3 )
nLinha := nLinha += 0.50
nColuna := 10.95
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ cObserva3, oFont, , CLR_BLACK, , PAD_CENTER )
ENDIF
IF .NOT. EMPTY( cObserva4 )
nLinha := nLinha += 0.50
nColuna := 10.95
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ cObserva4, oFont, , CLR_BLACK, , PAD_CENTER )
ENDIF
IF .NOT. EMPTY( cObserva5 )
nLinha := nLinha += 0.50
nColuna := 10.95
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ cObserva5, oFont, , CLR_BLACK, , PAD_CENTER )
ENDIF
IF .NOT. EMPTY( cObserva6 )
nLinha := nLinha += 0.50
nColuna := 10.95
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ cObserva6, oFont, , CLR_BLACK, , PAD_CENTER )
ENDIF
IF .NOT. EMPTY( cObserva7 )
nLinha := nLinha += 0.50
nColuna := 10.95
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ cObserva7, oFont, , CLR_BLACK, , PAD_CENTER )
ENDIF
IF .NOT. EMPTY( cObserva8 )
nLinha := nLinha += 0.50
nColuna := 10.95
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ cObserva8, oFont, , CLR_BLACK, , PAD_CENTER )
ENDIF
IF .NOT. EMPTY( cObserva9 )
nLinha := nLinha += 0.50
nColuna := 10.95
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ cObserva9, oFont, , CLR_BLACK, , PAD_CENTER )
ENDIF
IF .NOT. EMPTY( cObserva10 )
nLinha := nLinha += 0.50
nColuna := 10.95
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ cObserva10, oFont, , CLR_BLACK, , PAD_CENTER )
ENDIF
IF .NOT. EMPTY( cObserva11 )
nLinha := nLinha += 0.50
nColuna := 10.95
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ cObserva11, oFont, , CLR_BLACK, , PAD_CENTER )
ENDIF
IF .NOT. EMPTY( cObserva12 )
nLinha := nLinha += 0.50
nColuna := 10.95
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ cObserva12, oFont, , CLR_BLACK, , PAD_CENTER )
ENDIF
IF .NOT. EMPTY( cObserva13 )
nLinha := nLinha += 0.50
nColuna := 10.95
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ cObserva13, oFont, , CLR_BLACK, , PAD_CENTER )
ENDIF
IF nLinha >= 23.00 // PARA AS OBSERVACOES
nLinha := 27.00
nColuna := 10.50
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ OemToAnsi( "Rua Fl¢rio, 271 Ch cara Mafalda-SÆo Paulo-SP CEP: 03372-050 Tel: 2674-3173 www.ambienty.com.br" ), ;
oFontMin, , CLR_GREEN, , PAD_CENTER )
ENDPAGE
PAGE // NOVA PAGINA
@ nLinLogo, nColLogo PRINT TO oPrn IMAGE "LOGO.JPG" SIZE nLargLogo, nAltLogo LASTROW nRow
++nPagina
nLinha := 1.00
nColuna := 18.00 // 18.00
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
OemToAnsi( "P g.: " + ALLTRIM( STRZERO( nPagina, 2 ) ) ), oFont, , ;
CLR_BLACK, , PAD_CENTER )
nLinha := 3.00
ENDIF
IF nLinha # 3.00
nLinha := nLinha += 0.50
ENDIF
IF .NOT. EMPTY( cObserva14 )
nColuna := 10.95
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ cObserva14, oFont, , CLR_BLACK, , PAD_CENTER )
ENDIF
IF .NOT. EMPTY( cObserva15 )
nLinha := nLinha += 0.50
nColuna := 10.95
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ cObserva15, oFont, , CLR_BLACK, , PAD_CENTER )
ENDIF
IF .NOT. EMPTY( cObserva16 )
nLinha := nLinha += 0.50
nColuna := 10.95 // 11.05
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ cObserva16, oFont, , CLR_BLACK, , PAD_CENTER )
ENDIF
IF nLinha >= 23.00 // PARA AS OBSERVACOES/ ACHO QUE ENTRARA NO WHILE DOS PRODUTOS
nLinha := 27.00
nColuna := 10.50
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ OemToAnsi( "Rua Fl¢rio, 271 Ch cara Mafalda-SÆo Paulo-SP CEP: 03372-050 Tel: 2674-3173 www.ambienty.com.br" ), ;
oFontMin, , CLR_GREEN, , PAD_CENTER )
ENDPAGE
PAGE // NOVA PAGINA
@ nLinLogo, nColLogo PRINT TO oPrn IMAGE "LOGO.JPG" SIZE nLargLogo, nAltLogo LASTROW nRow
++nPagina
nLinha := 1.00
nColuna := 18.00
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
OemToAnsi( "P g.: " + ALLTRIM( STRZERO( nPagina, 2 ) ) ), oFont, , ;
CLR_BLACK, , PAD_CENTER )
nLinha := 3.00
ENDIF
IF nLinha # 3.00
nLinha := nLinha += 1.00
ENDIF
// INCLUIDO EM: 24/09/2021 VALIDADE DA PROPOSTA. Leda pediu.
IF .NOT. EMPTY( cValidade ) // Lucia ajudou a melhorar.
nColuna := 4.88
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ OemToAnsi( "05. PRAZO DE VALIDADE" ), ;
oFontSub2, , CLR_BLACK, , PAD_CENTER )
nLinha := nLinha += 0.60
nColuna := 9.60 // 9.70
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ cValidade, oFont, , CLR_BLACK, , PAD_CENTER )
nLinha := nLinha += 1.00
ENDIF
nColuna := 12.90
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ OemToAnsi( "Sem mais, " ), ;
oFont, , CLR_BLACK, , PAD_CENTER )
nLinha := nLinha += 0.80
nColuna := 4.80 // 2.90
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, + cAssinaProp, ;
oFontBold, , CLR_BLACK, , PAD_CENTER )
nLinha := nLinha += 0.80
nColuna := 7.20 // 5.20
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ SUBST( WNOMEEMPRESA, 1, 20 ) + SPACE( 19 ), ;
oFont, , CLR_BLACK, , PAD_CENTER )
nLinha := 27.00
nColuna := 10.50
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ OemToAnsi( "Rua Fl¢rio, 271 Ch cara Mafalda-SÆo Paulo-SP CEP: 03372-050 Tel: 2674-3173 www.ambienty.com.br" ), ;
oFontMin, , CLR_GREEN, , PAD_CENTER )
// Called from: PRINTER.prg => PAGEEND( 0 ) // 64 bits MEMORIA
ENDPAGE
ENDPRINT
IF DeOndePartiu = "COMPREVIEWPDF"
oDlgBtn:End()
FWSavePreviewToPDF( oPrn, "LIMPEZA.PDF", .F. )
PDF_SALVO_EM_ORCAMPDF() // ESTA EM FUNCOES.PRG 23/11/2020 Joao
HTMLVIEW( "C:\ORCAMPDF\LIMPEZA.PDF" )
ENDIF
oFont:End()
oFontBold:End()
oFontSubl:End()
oFontMin:End()
oFontSub2:End()
oFontRua:End()
oPen1:End()
oPen2:End()
oPen3:End()
lFechaJan := .F.
lFechaWin := .F.
lLigaProduto := .F.
OrdDestroy( "ORCATEMP" )
lLigaProduto := .F.
RETURN NIL
Gracias, tks.
Regards, saludos.