#Include "FiveWin.ch"
FUNCTION IMP_TIPO_ORDEM_ENT_RECO( DeOndePartiu, oDlgBtn )
LOCAL oDlgPdf, oFnt, oFont, IDCor, oPrevAdobe, oSaida, ;
oIco, oPrevFive, oPrevGravar, oBrush, aGrad
aGrad := { { 0.30, CLR_WHITE, CLR_WHITE },{ 0.50, CLR_WHITE, CLR_WHITE } }
DEFINE ICON oIco NAME "ICONE"
DEFINE FONT oFnt NAME "Ms Sans Serif" SIZE 0, 14 BOLD
DEFINE FONT oFont NAME "Ms Sans Serif" SIZE 0, -14 BOLD
// ESTA EM: AMBIENTY.RES
DEFINE DIALOG oDlgPdf RESOURCE "DLG_BOTOES_IMPRIMIR_ORDEM" GRADIENT aGrad
oDlgPdf:lHelpIcon := .F.
For IDCor = 401 To 402 // Os ID's dos TEXTOS na DIALOG.
REDEFINE SAY ID IDCor OF oDlgPdf ;
COLORS CLR_BLACK, CLR_WHITE UPDATE FONT oFnt TRANSPARENT
Next IDCor
REDEFINE GROUP oGroup ID 501 OF oDlgPdf FONT oFnt TRANSPARENT COLOR CLR_BLACK
REDEFINE BUTTONBMP oPrevAdobe ID 301 OF oDlgPdf ;
ACTION( IMPRIMIR_ORDEM_ENTREGA( DeOndePartiu := "DIRETONAIMP", oDlgPdf ) )
oPrevAdobe:cToolTip := OemToAnsi( "Criar o Arquivo PDF com Preview do Adobe" )
REDEFINE BUTTONBMP oPrevFive ID 302 OF oDlgPdf ;
ACTION( IMPRIMIR_ORDEM_ENTREGA( DeOndePartiu := "COMPREVIEWFIVE", oDlgPdf ) )
oPrevFive:cToolTip := OemToAnsi( "Criar o Arquivo PDF com Preview do FiveWin" )
REDEFINE BUTTONBMP oPrevGravar ID 303 OF oDlgPdf ;
ACTION( IMPRIMIR_ORDEM_ENTREGA( DeOndePartiu := "COMPREVIEWPDF", oDlgPdf ) )
oPrevGravar:cToolTip := OemToAnsi( "Preview, Apenas Gravar o PDF Para Email" )
REDEFINE BUTTONBMP oSaida ID 304 OF oDlgPdf ;
ACTION( oDlgPdf:End() ) CANCEL
oSaida:cToolTip := OemToAnsi( "Saida - Exit - Cancelar" )
SET FONT OF oPrevAdobe TO oFont
SET FONT OF oPrevFive TO oFont
SET FONT OF oPrevGravar TO oFont
SET FONT OF oSaida TO oFont
ACTIVATE DIALOG oDlgPdf CENTERED
oFnt:End()
oFont:End()
RETURN( NIL )
STATIC FUNCTION IMPRIMIR_ORDEM_ENTREGA( DeOndePartiu, oDlgPdf )
LOCAL nI
// SetCopies - Nao funciona, fazer assim: se precisar de varias copias
FOR nI := 1 TO nCopias
// ImpresionDocumento()
IMPRIMIR_DOC_ENTREGA( DeOndePartiu, oDlgPdf )
/*
MsgRun( "GERANDO RELATÓRIO DO ORÇAMENTO. AGUARDE...", ;
"Por Favor, Espere! Pode Demorar um Pouco...", ; // 3
{ || CursorWait(), WinExec( IMPRIMIR_DOC_ENTREGA( DeOndePartiu, oDlgPdf ) ), 0 } ) // QUERO QUE ESPERE.
*/
NEXT
RETURN NIL
// IMPRIMIR A ORDEM DE ENTREGA
STATIC FUNCTION IMPRIMIR_DOC_ENTREGA( DeOndePartiu, oDlgPdf )
LOCAL oPrn, nMargin, nWidth, nColWidth, nRow, nCol, oImage
LOCAL XDATALISTA, cAlias
LOCAL oFont, oFontLogo, oFontDivi, oFontList, oFontCurs, oPen1, oPen2, ;
oPen3, oFontSubl, ResLinha, ResColuna, cProposta, nLinha, nColuna, ;
oFontBold, nTotalParc := 0.00, nTotalGeral := 0.00
LOCAL nPulaLinha, oFontMin, oFontSub2, nPagina, oFontRua, nVrTotal
LOCAL cFile // := "C:\ORCAMPDF\CHAMADO.PDF"
LOCAL cImpLinha, cEntregador, cFerramenta, nTotRegistro
XDATALISTA := "São Paulo" + ", " + "____/____/_______"
IF NETERR()
MsgInfo( "ERRO NA REDE. Verifique!", "Confirma " )
RETURN( .F. )
ENDIF
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()
SELECT( DBRECOMPOS )
SET ORDER TO 01
GO TOP
SEEK VAL( nProposta )
IF .NOT. FOUND()
MsgStop( OemToAnsi( "Nenhuma Proposta Localizada Para ImpressÆo" )+CRLF+ ;
OemToAnsi( "Ou NÆo Tem Produtos Informados nas µreas. " ), ;
OemToAnsi( "Nenhuma Proposta Localizada Para ImpressÆo" ) )
RETURN NIL
ENDIF
// cProposta := VAL( nProposta ) // Numero da Proposta de orcamento
cProposta := nProposta // PARA O INIDICE TEMPORARIO NAO PODE O VAL()
/*
INDEX ON PROPOCOD TAG 04 TO ORCATEMP FOR ( .NOT. EOF() ) .AND. ;
( DBRECOMPOS )->PROPOCOD >= cProposta .AND. ;
( DBRECOMPOS )->PROPOCOD <= cProposta MEMORY //TEMPORARY
GO TOP
BROWSE()
*/
// filtro p/pegar a proposta, caso exista e mostrar na ListBox abaixo
ORDSCOPE( 0, cProposta ) // SE EXISTE PARA ALTERACAO, EXCLUSAO, INCLUSAO
ORDSCOPE( 1, cProposta )
GO TOP
cAlias := ALIAS()
nTotRegistro := 0
WHILE .NOT. EOF()
SYSREFRESH()
IF ( cAlias )->PRODUNOME = SPACE(30)
SKIP
LOOP
ENDIF
SKIP
++nTotRegistro
ENDDO
// filtro p/pegar a proposta, caso exista e mostrar na ListBox abaixo
ORDSCOPE( 0, cProposta ) // SE EXISTE PARA ALTERACAO, EXCLUSAO, INCLUSAO
ORDSCOPE( 1, cProposta )
GO TOP
cAlias := ALIAS()
IF EOF()
MsgStop( OemToAnsi( "Nenhuma Proposta Localizada Para ImpressÆo" ), ;
OemToAnsi( "Nenhuma Proposta Localizada Para ImpressÆo" ) )
RETURN NIL
ENDIF
// LOGO DA PROPOSTA
oImage := ".\LOGO.jpg" // tem que estar na pasta
cLogo := "LOGO.JPG"
IF VALIDA_JPG( cLogo ) // ESTA EM: FUNCOES.PRG
// NADA A FAZER - IMAGEM VALIDA
ELSE
cLogo := " " // PARA NAO QUEBRAR
ENDIF
IF DeOndePartiu = "DIRETONAIMP" // DIRETO NA IMPRESSORA
PRINT oPrn NAME "ORDEM_DE_ENTREGA" // DIRETO NA IMP.
ELSEIF DeOndePartiu = "COMPREVIEWFIVE"
PRINT oPrn NAME "ORDEM_DE_ENTREGA" PREVIEW MODAL
ELSEIF DeOndePartiu = "COMPREVIEWPDF" // GERAR O ARQUIVO PDF.
PRINT oPrn PREVIEW
ENDIF
DEFINE FONT oFontRua NAME "Courier New" SIZE 0, -10 BOLD OF oPrn
DEFINE FONT oFontMin NAME "Courier New" SIZE 0, -10 BOLD OF oPrn
DEFINE FONT oFont NAME "Lucida Console" SIZE 0, -10 OF oPrn
DEFINE FONT oFontBold NAME "Lucida Console" SIZE 0, -10 BOLD OF oPrn
DEFINE FONT oFontSubl NAME "Courier New" SIZE 0, -14 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_BLACK OF oPrn
DEFINE PEN oPen2 WIDTH 2 COLOR CLR_BLACK OF oPrn
DEFINE PEN oPen3 WIDTH 5 COLOR CLR_BLACK OF oPrn
oPrn:SetPage(9) //-> A4
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
// 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
// oPrn:SayImage( nRow, nCol, "LOGO.JPG", oPrn:nHorzRes(), oPrn:nVertRes() , NIL, .T. )
// oPrn:SayImage( 0, 0, "LOGO.JPG" )
oPrn:SayImage( 1.00, 350, "LOGO.JPG", 650, 650 )
// CABECALHO
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 )
// ? LEN( ALLTRIM( nProposta ) )
IF LEN( ALLTRIM( nProposta ) ) = 1
nLinha := 2.50
nColuna := 4.05
ELSEIF LEN( ALLTRIM( nProposta ) ) = 2
nLinha := 2.50
nColuna := 4.15
ELSEIF LEN( ALLTRIM( nProposta ) ) = 3
nLinha := 2.50
nColuna := 4.25
ELSEIF LEN( ALLTRIM( nProposta ) ) = 4 // OK
nLinha := 2.50
nColuna := 4.35
ELSEIF LEN( ALLTRIM( nProposta ) ) = 5 // OK
nLinha := 2.50
nColuna := 4.45
ELSEIF LEN( ALLTRIM( nProposta ) ) = 6 // OK
nLinha := 2.50
nColuna := 4.55
ELSEIF LEN( ALLTRIM( nProposta ) ) = 7 // OK
nLinha := 2.50
nColuna := 4.65
ELSEIF LEN( ALLTRIM( nProposta ) ) = 8 // OK
nLinha := 2.50
nColuna := 4.75
ELSEIF LEN( ALLTRIM( nProposta ) ) = 9 // OK
nLinha := 2.50
nColuna := 4.85
ELSEIF LEN( ALLTRIM( nProposta ) ) = 10 // OK
nLinha := 2.50
nColuna := 4.95
ELSE
nLinha := 2.50
nColuna := 5.05
ENDIF
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
"Orçamento Nº.: " + ALLTRIM( nProposta ), oFont, , ;
CLR_BLACK, , PAD_CENTER )
nColuna := nColuna += 19.50
oPrn:cmSay( nLinha, 19.50, "" + XDATALISTA, ;
oFont, , ;
CLR_BLACK, , PAD_RIGHT )
nLinha := nLinha += 0.80
// ? LEN( ALLTRIM( STR( nClienCod ) ) )
IF LEN( ALLTRIM( STR( nClienCod ) ) ) = 1
nColuna := 7.60
ELSEIF LEN( ALLTRIM( STR( nClienCod ) ) ) = 2
nColuna := 7.70
ELSEIF LEN( ALLTRIM( STR( nClienCod ) ) ) = 3
nColuna := 7.80
ELSEIF LEN( ALLTRIM( STR( nClienCod ) ) ) = 4 // OK
nColuna := 7.90
ELSEIF LEN( ALLTRIM( STR( nClienCod ) ) ) = 5
nColuna := 8.00
ELSEIF LEN( ALLTRIM( STR( nClienCod ) ) ) = 6
nColuna := 8.10
ELSEIF LEN( ALLTRIM( STR( nClienCod ) ) ) = 7
nColuna := 8.20
ELSEIF LEN( ALLTRIM( STR( nClienCod ) ) ) = 8
nColuna := 8.30
ELSEIF LEN( ALLTRIM( STR( nClienCod ) ) ) = 9
nColuna := 8.40
ELSEIF LEN( ALLTRIM( STR( nClienCod ) ) ) = 10
nColuna := 8.80
ENDIF
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ "CÓD.: " + ALLTRIM( STR( nClienCod ) ) + " - " +ClienPropo, ;
oFontRua, , CLR_BLACK, , PAD_CENTER )
nLinha := nLinha += 0.50
nColuna := 6.55 // 7.75
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ EnderPropo, oFontRua, , CLR_BLACK, , PAD_CENTER )
nLinha := nLinha += 0.50
nColuna := 5.30 // 5.85
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
"BAIRRO: " + BairrPropo, oFontRua, , CLR_BLACK, , PAD_CENTER )
nColuna := nColuna += 6.50 // 5.05
// Cidade / Uf falta
// CidadPropo, UFdaPropo
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 )
cOrcamento := [ORDEM DE ENTREGA]
nLinha := nLinha += 0.70
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, ;
+ OemToAnsi( "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 )
GO TOP
nTotLinhas := 0
nSomaLinha := 0
nLinRodap := 0
nLinRoda := 0
// 5.97
nLinEsq := 6.31 // LINHA VERTICAL DA ESQUERDA DO QUADRO
nColEsq := 1.50
// 5.99
nLinMeio := 6.31 // LINHA VERTICAL DO MEIO DO QUADRO
nColMeio := 3.30
nLinDir := 6.31 // LINHA VERTICAL DA DIREITA DO QUADRO
nColDir := 19.01
// GIRAR OS PRODUTOS: AQUI.
nLinha := nLinha += 0.50 // PRIMEIRO PRODUTO
WHILE .NOT. EOF()
SYSREFRESH()
IF ( cAlias )->PRODUNOME = SPACE(30)
SKIP
LOOP
ENDIF
// LINHAS VERTICAIS E HORIZONTAIS DO PREVIEW - 05/04/2019 - Joao
// LIN VERTICAL DO LADO ESQUERDO DO QUADRO.
// oPrn:cmSay( nLinEsq, nColEsq, "|", oFont,, CLR_BLACK,, PAD_LEFT )
oPrn:Say( nLinEsq * ResLinha, nColEsq * ResColuna, ;
+ "|", oFont,, CLR_BLACK,, PAD_LEFT )
nLinEsq += 0.292
// LIN VERTICAL DO MEIO
// oPrn:cmSay( nLinMeio, nColMeio, "|", oFont,, CLR_BLACK,, PAD_LEFT )
oPrn:Say( nLinMeio * ResLinha, nColMeio * ResColuna, ;
+ "|", oFont,, CLR_BLACK,, PAD_LEFT )
nLinMeio += 0.292
// LINHA VERTICAL DO LADO DIREITO DO QUADRO.
// oPrn:cmSay( nLinDir, nColDir, "|", oFont,, CLR_BLACK,, PAD_LEFT )
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:cmSay( nLinEsq, nColEsq, "|", oFont,, CLR_BLACK,, PAD_LEFT )
oPrn:Say( nLinEsq * ResLinha, nColEsq * ResColuna, ;
+ "|", oFont,, CLR_BLACK,, PAD_LEFT )
nLinEsq += 0.292 // DIZIMA
// LIN VERTICAL DO MEIO
// oPrn:cmSay( nLinMeio, nColMeio, "|", oFont,, CLR_BLACK,, PAD_LEFT )
oPrn:Say( nLinMeio * ResLinha, nColMeio * ResColuna, ;
+ "|", oFont,, CLR_BLACK,, PAD_LEFT )
nLinMeio += 0.292
// LIN VERTICAL DO LADO DIREITO DO QUADRO.
// oPrn:cmSay( nLinDir, nColDir, "|", oFont,, CLR_BLACK,, PAD_LEFT )
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
// ? nLinha
// NOVA PAGINA AQUI // PREENCHEU O PREVIEW, PULA.
IF nLinha >= 25.00 // 26.50 // achou o rodape do preview nova pagina
nLinha := 27.00
nColuna := 10.50
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ OemToAnsi( "Rua Ant“nio Andr‚ Rodrigues, 433 - Ch cara Mafalda - SÆo Paulo - SP" ), ;
oFontBold, , CLR_GREEN, , PAD_CENTER )
nLinha := nLinha += 0.50
nColuna := 10.40
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ OemToAnsi( "CEP - 03372-030 - Fone/Fax: 2674-3173 - Site: <!-- w --><a class="postlink" href="http://www.ambienty.com.br">www.ambienty.com.br</a><!-- w --> " ), ;
oFontBold, , CLR_GREEN, , PAD_CENTER )
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
oPrn:SayImage( 1.00, 350, "LOGO.JPG", 650, 650 )
// 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 )
IF LEN( ALLTRIM( nProposta ) ) = 1
nLinha := 2.50
nColuna := 4.05
ELSEIF LEN( ALLTRIM( nProposta ) ) = 2
nLinha := 2.50
nColuna := 4.15
ELSEIF LEN( ALLTRIM( nProposta ) ) = 3
nLinha := 2.50
nColuna := 4.25
ELSEIF LEN( ALLTRIM( nProposta ) ) = 4 // OK
nLinha := 2.50
nColuna := 4.35
ELSEIF LEN( ALLTRIM( nProposta ) ) = 5 // OK
nLinha := 2.50
nColuna := 4.45
ELSEIF LEN( ALLTRIM( nProposta ) ) = 6 // OK
nLinha := 2.50
nColuna := 4.55
ELSEIF LEN( ALLTRIM( nProposta ) ) = 7 // OK
nLinha := 2.50
nColuna := 4.65
ELSEIF LEN( ALLTRIM( nProposta ) ) = 8 // OK
nLinha := 2.50
nColuna := 4.75
ELSEIF LEN( ALLTRIM( nProposta ) ) = 9 // OK
nLinha := 2.50
nColuna := 4.85
ELSEIF LEN( ALLTRIM( nProposta ) ) = 10 // OK
nLinha := 2.50
nColuna := 4.95
ELSE
nLinha := 2.50
nColuna := 5.05
ENDIF
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
"Proposta Nº.: " + ALLTRIM( nProposta ), oFont,, ;
CLR_BLACK,, PAD_CENTER )
oPrn:cmSay( nLinha, 19.50, "" + XDATALISTA, ;
oFont, , ;
CLR_BLACK, , PAD_RIGHT )
nLinha := nLinha += 0.80
IF LEN( ALLTRIM( STR( nClienCod ) ) ) = 1
nColuna := 7.70
ELSEIF LEN( ALLTRIM( STR( nClienCod ) ) ) = 2
nColuna := 7.80
ELSEIF LEN( ALLTRIM( STR( nClienCod ) ) ) = 3
nColuna := 7.90
ELSEIF LEN( ALLTRIM( STR( nClienCod ) ) ) = 4 // OK
nColuna := 8.00
ELSEIF LEN( ALLTRIM( STR( nClienCod ) ) ) = 5
nColuna := 8.10
ELSEIF LEN( ALLTRIM( STR( nClienCod ) ) ) = 6
nColuna := 8.20
ELSEIF LEN( ALLTRIM( STR( nClienCod ) ) ) = 7
nColuna := 8.30
ELSEIF LEN( ALLTRIM( STR( nClienCod ) ) ) = 8
nColuna := 8.40
ELSEIF LEN( ALLTRIM( STR( nClienCod ) ) ) = 9
nColuna := 8.50
ELSEIF LEN( ALLTRIM( STR( nClienCod ) ) ) = 10
nColuna := 8.60
ENDIF
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ "CÓD.: " + ALLTRIM( STR( nClienCod ) ) + " - " +ClienPropo, ;
oFontRua, , CLR_BLACK, , PAD_CENTER )
nLinha := nLinha += 0.50
nColuna := 6.65 // 7.75
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ EnderPropo, oFontRua, , CLR_BLACK, , PAD_CENTER )
nLinha := nLinha += 0.50
nColuna := 5.35
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 )
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 // 1.00 // PRIMEIRO PRODUTO
ENDIF
SKIP
ENDDO
// RODAPE DO QUADRO COM POUCOS PRODUTOS
nLinha := nLinMeio += 1.25
nColuna := 18.00
cImpLinha := "______________________________" + SPACE(10) + ;
"______________________________"
cEntregador := " ENTREGADOR " + SPACE(10) + ;
" RECEBIDO POR(NOME/CARGO) "
oPrn:cmSay( nLinha, nColuna, "" + cImpLinha, ;
oFont,, CLR_BLACK,, PAD_RIGHT )
nLinha := nLinha += 0.50
oPrn:cmSay( nLinha, nColuna, "" + cEntregador, ;
oFont,, CLR_BLACK,, PAD_RIGHT )
// Ferramentas: 03/04/2019
cFerramenta := "Ferramentas:________________________________________________________"
cFerrament2 := "____________________________________________________________________"
nLinha := nLinha += 2.50 // Ferramentas
nColuna := 10.40
oPrn:cmSay( nLinha, nColuna, "" + cFerramenta, ;
oFont,, CLR_BLACK,, PAD_CENTER )
nLinha := nLinha += 0.50 // Ferramentas
oPrn:cmSay( nLinha, nColuna, "" + cFerrament2, ;
oFont,, CLR_BLACK,, PAD_CENTER )
nLinha := nLinha += 0.50 // Ferramentas
oPrn:cmSay( nLinha, nColuna, "" + cFerrament2, ;
oFont,, CLR_BLACK,, PAD_CENTER )
nLinha := 27.00
nColuna := 10.50
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ OemToAnsi( "Rua Ant“nio Andr‚ Rodrigues, 433 - Ch cara Mafalda - SÆo Paulo - SP" ), ;
oFontBold, , CLR_GREEN, , PAD_CENTER )
nLinha := nLinha += 0.50
nColuna := 10.40
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
+ OemToAnsi( "CEP - 03372-030 - Fone/Fax: 2674-3173 - Site: <!-- w --><a class="postlink" href="http://www.ambienty.com.br">www.ambienty.com.br</a><!-- w --> " ), ;
oFontBold, , CLR_GREEN, , PAD_CENTER )
ENDPAGE
// DESLIGA O METAFILE NA GERACAO DO PDF. Joao
IF DeOndePartiu = "COMPREVIEWPDF"
// oPrn:lMeta = .F. // Nao mostrar o PREVIEW do PDF.
ENDIF
ENDPRINT
IF DeOndePartiu = "COMPREVIEWPDF"
oDlgPdf:End()
/*
// NAME "ORDEM_DE_ENTREGA" + ALLTRIM( nProposta )
FWSavePreviewToPDF( oPrn, "ORDEM_DE_ENTREGA" + ALLTRIM( nProposta ), .F. )
// ESTA EM: PRV2PDF.PRG do Five.
// .F. NAO PERGUNTA SE QUER VISUALIZAR. ALIAS, NAO CHAMA O ADOBE.
// FWSavePreviewToPDF( oPrn, "pruebafactura.pdf" ,.F. )
MsgInfo( "ORDEM DE ENTREGA CRIADO EM C:\ORCAMPDF", ;
"ORDEM DE ENTREGA CRIADO EM C:\ORCAMPDF" )
*/
// MUDEI EM: 08/02/2021 Uma nova experiencia com os PDFS. Joao.
FWSavePreviewToPDF( oPrn, "ORDEMRECOMP.PDF", .F. )
PDF_SALVO_EM_ORCAMPDF() // ESTA EM FUNCOES.PRG 23/11/2020 Joao
// Para visualizar o PDF. HTMLPDF.PRG - Nuevas versiones.
HTMLVIEW( "C:\ORCAMPDF\ORDEMRECOMP.PDF" )
ENDIF
oFont:End()
oFontBold:End()
oFontSubl:End()
oFontMin:End()
oFontSub2:End()
oFontRua:End()
oPen1:End()
oPen2:End()
oPen3:End()
// PARA FECHAR O ARQUIVO TEMPORARIO
// OrdDestroy( "nome_do_arquico_temporario" )
OrdDestroy( "ORCATEMP" )
RETURN( .T. )
// fin
Saludos.