Página 1 de 1

Impressão salta uma pagina do relatorio

Enviado: 09 Nov 2015 16:34
por Daiane
Olá pessoal,estou tendo problemas no relatório,acontece que na hora de imprimir para empresa diferente salta uma pagina sendo que não dei nenhum comando para isso,alguma ideia do q pode ser?
e o mais estranho é q na hora de visualizar não salta essa pagina,so na hora de imprimir msm

estou usando:
#include "FiveWin.ch"
#include "relatorio.ch"
#define TAM_PAG 55

Impressão salta uma pagina do relatorio

Enviado: 09 Nov 2015 17:37
por Kapiaba
Mostre como está fazendo. experimente desligar a Page com EndPage() e criar novamente.

Impressão salta uma pagina do relatorio

Enviado: 10 Nov 2015 10:45
por Daiane
Na verdade eu ja faço isso,no final do relatorio coloco o EndPage
e a cada final de pagina,quando chega a 55 linhas eu dou um EndPage e depois um StartPage

Ta ai uns trechos do fonte,não coloquei todo pq é enorme

Código: Selecionar todos

METHOD Build() class ImpFolha13Adiant
	
	REST FROM &(::bancos:arqParam) ADDI
	
	::nPag := 0
	
	::state := .T.  
	
	::folha:XMES := KWMES
	::folha:XDTI := KWDATINI
	::folha:XDTF := KWDATFIM
	
	GO TOP
	::StartPage()
	::BuildRel() 
	::EndPage()
	
	IF(::state)
		MsgAlert("Não há registros para este Relatório.", "FOLHA DE ADIANTAMENTO") 
		RETURN .F.
	ELSE
		return .T.
	ENDIF


METHOD BuildRel() class ImpFolha13Adiant
   local subdir, n, vxY
   
   REST FROM &(::bancos:arqParam) ADDI
   
	::folha:XMES := KWMES
	::folha:XDTI := KWDATINI
	::folha:XDTF := KWDATFIM
	
	::folha:xultdatas := ULTIMODIA( "/"+STRZERO(val(::folha:xmpavos),2)+RIGHT(DTOC(KWDATFIM),5)  )
	::vper      := DTOC(::folha:XDTI)+" a "+DTOC(::folha:XDTF)
	
	::VAI := "S"
	
	::xtpfol := IF(::vtipofol=1, "8", if(::vtipofol=2, "6", "7"))
	
	subdir := ::bancos:getSubDir()
	
	::Xdentrotot := .f.
	DO WHILE !EOF() .AND. ::VAI = "S"
	   
		::NPAG := 0
	   ::VAI := IF( ::XIG = "S", ::VAI, "N" )
	   IF ::XIG = "S"
	      IF SN#"S" ...
              ::Write(::lin, 3, ::pc[n]+"  "+LEFT(4->descricao,20)+if( ::PC[N]="000".AND.::XIMPH="N" , "", IF(::pq[n]>0," ("+STR(::pq[n],6,2)+")"," " ) ), .F., .T.)
	               ::Write(::LIN, 39, cValtoStr(::pv[n], "@E 99,999.99"))
             End
        End

       IF ::LIN >= TAM_PAG
	         ::LIN := 99
	         ::CABEC02()
      ENDIF

      skip
      EndDo


METHOD CABEC02() class ImpFolha13Adiant
	IF ::LIN >= TAM_PAG + 3 //58
		IF ::state
			::state := .F.
			::Write(1, 1, ::pdrimp+REPLICATE("=",96), .T., .T.)
		ELSE
			::EndPage()
			::StartPage()
			::Write(1, 1, REPLICATE("=",96))
		ENDIF
		::nPAG++
		
	   ::Write(2, 1, ::xnomefol+SPACE(5))
	   
		IF ::XNEGRITO = "S"
			::setFont(::oFont2)
		ENDIF
		::Write(2, 6+LEN(::xnomefol), compete())
	   ::setFont(::oFont1)
	   	
		::Write(2, 81, "DATA: "+DTOC(DATE()))
	   
	   IF ::XNEGRITO = "S"
			::setFont(::oFont2)
		ENDIF
		::Write(3, 1, ::EMPRESA, .F., .T.)
	   ::setFont(::oFont1)
	   
		::Write(3, 82, "FOLHA:      "+STRZERO(::NPAG,3))
	   ::Write(4, 1, TRANCGC(13->CGC,13->CGCEI)+"  -  "+alltrim(::VCID)+" - "+::VESTAD, .F., .T.)
	   ::LIN := 4
		IF ::XIMPRESUMO="N"
	      IF ::XTCC="S"
	         if ::Xdentrotot
	            *if 1->CCUSTO+1->CCUSTO1 <> xccant
	            3->( DBSEEK( ::xccant ) )
	        		IF ::XNEGRITO = "S"
						::setFont(::oFont2)
					ENDIF
					::Write(::LIN+=1, 1, "Centro de Custo: "+LEFT(::XCCANT,3)+"."+RIGHT(::XCCANT,3)+" - "+3->DESCRICAO, .F., .T.)
	            ::setFont(::oFont1)
	         else   
	            3->( DBSEEK( 1->CCUSTO+1->CCUSTO1 ) )
	            IF ::XNEGRITO = "S"
						::setFont(::oFont2)
					ENDIF
					::Write(::LIN+=1, 1, "Centro de Custo: "+1->CCUSTO+"."+1->CCUSTO1+" - "+ 3->DESCRICAO, .F., .T.)
	            ::setFont(::oFont1)
	         endif   
	      ENDIF
	   ENDIF
	   ::Write(::LIN+=1, 1, REPLICATE("=",96))
	   ::Write(::LIN+=1, 11, "P R O V E N T O S")
	   ::Write(::LIN   , 49, "|")
	   ::Write(::LIN   , 61, "D E S C O N T O S")
	   ::Write(::LIN+=1, 1 , REPLICATE("=",96))
	   ::LIN++
	ENDIF
RETURN




Impressão salta uma pagina do relatorio

Enviado: 10 Nov 2015 11:04
por Kapiaba

Código: Selecionar todos

   DO WHILE !EOF() .AND. ::VAI = "S"
  
      ::NPAG := 0
      ::VAI := IF( ::XIG = "S", ::VAI, "N" )

      IF ::XIG = "S"
         IF SN#"S" ...
            ::Write(::lin, 3, ::pc[n]+" "+LEFT(4->descricao,20)+if( ::PC[N]="000".AND.::XIMPH="N" , "", IF(::pq[n]>0," ("+STR(::pq[n],6,2)+")"," " ) ), .F., .T.)
            ::Write(::LIN, 39, cValtoStr(::pv[n], "@E 99,999.99"))
         Endif
      Endif

      // PARE O PROGRAMA AQUI E VEJA SE NAO E NECESSARIO DESLIGAR E LIGAR A PAGINA
      IF ::LIN >= TAM_PAG
         ::LIN := 99
         ::CABEC02()
      ENDIF

      skip

   EndDo

Código: Selecionar todos

   IF ::LIN >= TAM_PAG + 3 //58  // DIMINUA PARA 55 LINHAS, FORMATO A-4

      IF ::state

          // PARE O PROGRAMA AQUI E VEJA SE NAO E NECESSARIO DESLIGAR E LIGAR A PAGINA
         ::state := .F.
         ::Write(1, 1, ::pdrimp+REPLICATE("=",96), .T., .T.)

         ELSE  // IGUAL AQUI

         ::EndPage()
         ::StartPage()
         ::Write(1, 1, REPLICATE("=",96))

      ENDIF
   ..
Abs

Impressão salta uma pagina do relatorio

Enviado: 10 Nov 2015 11:19
por Kapiaba
Veja se ajuda:

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

Impressão salta uma pagina do relatorio

Enviado: 10 Nov 2015 11:23
por Daiane
Acabei de fazer isso e criou pagina em branco no inicio do relatorio e também criou outras paginas em branco entre uma empresa e outra


Valeu,vou dar uma olhada no codigo