Jump to content
Fivewin Brasil

TDOSPRN


maudruidas

Recommended Posts

Mostre ETIPRO.PRG -> Linha: 47 e IMPPRO.PRG Linha: 86 você colocou o cabeçalho de impressão da TDOSPRN.PRG? antes da função?

//----- Definicao de comando SAY para TdosPrn ---------------------------------
	#xcommand @ <nRow>, <nCol> SAY <cText> OF <oPrinter> => <oPrinter>:Say(<nRow>, <nCol>, <cText> )
	STATIC FUNCTION IMPRIME_MALA( lAppend, DbClientes, DbCabec, DbPaieMae,    ;
                                       DeOndeVem )
	   FIELD RAZ_MATRIC, DEST_NOME, END, BAI, CID, CEP
	   ...

Verifique na TDOSPRN.PRG:

     DATA lZeraBuffer // By Gilmer www.fivewin.com.br

Abs.

Regards, saludos.

 

Link to comment
Share on other sites

O estranho que na minha versão antiga do Fivewin (7.0) ela funciona, e o prg não mudou nada, deve estar pegando outra versão do Tdosprn.

 

Veja o PRG INTEIRO abaixo:

#include "FiveWin.ch"
#include "Utilprn.ch"

#define PRETO  nRGB( 0,0,0)
#define XPAZULC  nRGB( 111,143,175)
#Define BRWBACK 14483196 // Amarelo enbranquecido
#Define COR1 14410170
#Define COR2 14810095
#Define COR3 RGB(255,128,128)
#Define COR4 RGB(250,168,86)   // Laranja
#define CLR_AZUL nRGB(204, 218, 241)

STATIC OMETER2,ODLCRL,XXI

FUNCTION ETIPRO()
  LOCAL COP,PRO,VRAD2,CSAY1

  DEFINE FONT OFNC NAME "Arial" SIZE 0, -12 BOLD
  DEFINE FONT OGETFNT NAME "Arial" SIZE 0, -12
  DEFINE FONT OFNC3 NAME "ARIAL" SIZE 0, -13 BOLD
  DEFINE FONT OFNC4 NAME "ARIAL" SIZE 0, -11
  DEFINE FONT OFNC2 NAME "TIMES NEW ROMAN" SIZE 0, -17 BOLD
  DEFINE FONT OFNC5 NAME "TIMES NEW ROMAN" SIZE 6, -16 BOLD

  CorBot := { | lMouseOver | If( lMouseOver,;
                   { { 1/3, nRGB( 219, 230, 244 ), nRGB( 207-50, 221-25, 255 ) }, ;
                   { 2/3, nRGB( 201-50, 217-25, 255 ), nRGB( 231, 242, 255 ) }  ;
                   }, ;
                   { { 1/2, nRGB( 230, 230, 230 ), nRGB( 202, 223, 220 ) }, ;
                   { 1/2, nRGB( 181, 209, 210 ), nRGB( 230, 230, 230 ) }  ;
                   } ) }


  DEFINE DIALOG ODLEXT RESOURCE "DLGEPRO" COLOR CLR_BLACK,RGB(247,248,233) FONT OFNC;
  TITLE "Etiquetas em Colunas"
  ODLEXT : LHELPICON := .F.  // Tira a ? da janela
  ODLEXT : lTransparent := .T.

  VRAD2 := 1

  REDEFINE RADIO RDPR2 VAR VRAD2 ID 116,117,114,118 Color CLR_BLACK,GETSYSCOLOR(15) OF ODLEXT


  REDEFINE BTNBMP OBTN3 ID 111 OF ODLEXT ;
           RESOURCE "IMPRESS" LEFT 2007 ;
           PROMPT " &Imprime" TEXTRIGHT ;
           ACTION(IMPEPRO(VRAD2),VRAD2:=1,RDPR2:REFRESH())
           oBtn3:CTOOLTIP = "Imprime as Etiquetas"
           SET FONT OF OBTN3 TO OFNC
           oBtn3:bClrGrad = CorBot

  REDEFINE BTNBMP OBTN4 ID 112 OF ODLEXT ;
           RESOURCE "CANCELA" LEFT 2007 ;
           PROMPT "Cance&la" TEXTRIGHT ;
           ACTION ODLEXT:END()
           oBtn4:cToolTip = "Cancelar / Sair"
           SET FONT OF OBTN4 TO OFNC
           oBtn4:bClrGrad = CorBot

  ACTIVATE DIALOG ODLEXT CENTERED RESIZE16 ON INIT ROUNDRECTA( oDlext:hWnd, 20 )
  RETURN(.T.)


FUNCTION IMPEPRO(VRAD2)
  LOCAL NTAM,COL,LN,NUM,NUM2,XCO,NETI,NLIN,NLI,NOR2,REDUZIDO,NORMAL,EXPRD,NOR

  SELE 26
  GO TOP
  IF EOF()
     MSGALERT("Lote de Etiquetas Está Vazio, Favor Incluir Produtos !!!","Mensagem")
     RETURN(.F.)
  ENDIF

  IMP := ESCIMP()  // ESCOLHE A TIPO DE IMPRESSÃO (MATRICIAL OU JATODE TINTA)

  IF IMP = 0
     RETURN NIL
  ENDIF

  IF IMP = 1
     IF VRAD2 = 3
        MSGALERT("Não Existe Impressão de 3 Col. Para Imp. Matricial","Atenção...")
        RETURN(NIL)
     ENDIF
     OPRN := TDOSPRN():NEW("LPT1")
     OPRN:LZERABUFFER:=.T. // PULAR PÁGINA=.F. NÃO PULAR=.T.    //(onde dá o erro)

     NOR := CHR(18)
     REDUZIDO := CHR(15)
     NORMAL := CHR(18)
     EXPRD := CHR(14)+CHR(15)
     NOR2 := CHR(27)+CHR(33)+CHR(0)+NOR
  ELSE
     PRINTER OPRN NAME "IMPRESSÃO DE ETIQUETAS EM COLUNAS" PREVIEW MODAL
  //   IF EMPTY( OPRN:hdc )
  //      RETURN NIL
   //  ENDIF
     OPRN:SETPAGE(9)
     NTAM:=oPrn:nLogPixelX()/10
     DEFINE FONT OFNT1 NAME "COURIER NEW" SIZE NTAM,-(NTAM+5)
     DEFINE FONT OFNT2 NAME "COURIER NEW" SIZE NTAM,-(NTAM+5) BOLD
     DEFINE FONT OFNT3 NAME "COURIER NEW" SIZE NTAM-3,-(NTAM+5) BOLD
     DEFINE FONT OFNT4 NAME "COURIER NEW" SIZE NTAM-18,-(NTAM+18) BOLD
     DEFINE FONT OFNT5 NAME "COURIER NEW" SIZE NTAM+2,-(NTAM+10) BOLD

     DEFINE FONT OFNT6 NAME "COURIER NEW" SIZE NTAM-32,-(NTAM+32) BOLD
     DEFINE FONT OFNT7 NAME "COURIER NEW" SIZE NTAM+1,-(NTAM+25) BOLD
     DEFINE FONT OFNT8 NAME "COURIER NEW" SIZE NTAM-30,-(NTAM+30) BOLD
     DEFINE FONT OFNT9 NAME "COURIER NEW" SIZE NTAM-2.5,-(NTAM+5) BOLD

  ENDIF

  CURSORWAIT()
  IF IMP = 1
     OPRN:STARTPAGE()
  ELSE
     PAGE
  ENDIF

  IF VRAD2 = 1   // UMA COL.
     LN   := 0
     NETI := 0

     SELE 26
     GO TOP
     DO WHILE !EOF()
        PRO := PRODUTO
        COP := QUANTIDADE

        SELE 11
        SET ORDER TO 1
        SEEK STR(PRO,13)

        DPRO := DESCRICAO
        PRE  := PRECO
        VIS  := PREVIS
        PER  := ((PRE*100)/VIS)-100

        XCO  := 0
        DO WHILE XCO < COP
           IF IMP = 1
              oPrn:Say(LN,01,EXPRD + STRZERO(PRO,13) + " - " + NOR2 + REDUZIDO + SUBSTR(DPRO,1,20) + NORMAL)
              LN := LN + 1
              oPrn:Say(LN,01,EXPRD + "   A PRAZO   |   A VISTA")
              LN := LN + 1
              oPrn:Say(LN,01,EXPRD + "R$" + TRANS(PRE,"@E 99,999.99") + "  |  R$" + TRANS(VIS,"@E 99,999.99") + NOR2)
              LN := LN + 1
//              IF STR(PRE,10,2) > STR(100,10,2)
//                 oPrn:Say(LN,01,REDUZIDO + "2X R$" + TRANS(PRE/2,"@E 999.99") + " (30/60 Dias)  |")
//              ELSE
                 oPrn:Say(LN,01,REDUZIDO + "1X R$" + TRANS(PRE,"@E 999.99") + " (30 Dias)     |")
//              ENDIF
              LN := LN + 1
              oPrn:Say(LN,01,"Tot R$" + TRANS(PRE,"@E 999.99") + "  % Acr. " + STR(PER,5,2) + " |" + NORMAL)
              LN := LN + 2
           ELSE
              oPrn:CMSay(LN,2,"       " + STRZERO(PRO,13),OFNT2)
              IF XCO = 0             // Na Primeira estiqueta tem que pular mais (Não sei Pq)
                 LN := LN + 0.7
              ELSE
                 LN := LN + 0.4
              ENDIF
              oPrn:CMSay(LN,0,SUBSTR(DPRO,1,38),OFNT3)
              LN := LN + 0.4
              oPrn:CMSay(LN,0,"       A PRAZO    |     A VISTA",OFNT5)
              LN := LN + 0.4
              oPrn:CMSay(LN,0,"     R$" + TRANS(PRE,"@E 99,999.99")  + "  |   R$" + TRANS(VIS,"@E 99,999.99"),OFNT5)
              LN := LN + 0.4
//              IF STR(PRE,10,2) > STR(100,10,2)
//                 oPrn:CMSay(LN,0,"2X R$" + TRANS(PRE/2,"@E 999.99") + " (30/60 Dias)",OFNT4)
//              ELSE
                 oPrn:CMSay(LN,0,"1X R$" + TRANS(PRE,"@E 99,999.99") + " (30 Dias)",OFNT4)
//              ENDIF
              oPrn:CMSay(LN,0,SPACE(18) + "|",OFNT5)
              LN := LN + 0.4
              oPrn:CMSay(LN,0,"T R$" + TRANS(PRE,"@E 99,999.99") + " % Acr. " + STR(PER,5,2),OFNT4)
              oPrn:CMSay(LN,0,SPACE(18) + "|",OFNT5)
              LN := LN + 0.8
           ENDIF
           XCO  := XCO + 1
           NETI := NETI + 1
           IF IMP = 1
              IF NETI = 11
//                 NETI := 0
//                 LN   := 0
//                 OPRN:ENDPAGE()
              ENDIF
           ELSE
              IF NETI = 9
                 NETI := 0
                 LN   := 0
                 ENDPAGE
                 PAGE
              ENDIF
           ENDIF
        ENDDO
        SELE 26
        SKIP
        UNLOCK
     ENDDO

     IF IMP = 1
        OPRN:LZERABUFFER:=.F. // PULAR PÁGINA=.F. NÃO PULAR=.T.
        OPRN:ENDPAGE()
        OPRN:END()
     ELSE
        ENDPAGE
        ENDPRINT
     ENDIF
  ENDIF

  IF VRAD2 = 2   // DUAS COL.

     SELE 4
     ZAP

     *************************** Adiciona os produtos na Matriz
     SELE 26
     GO TOP
     DO WHILE !EOF()
        PRO := PRODUTO
        COP := QUANTIDADE

        XCO := 0
        DO WHILE XCO < COP
           SELE 4
           INCREG2()
           REPL PRODUTO WITH PRO
           UNLOCK
           COMMIT

           XCO := XCO + 1
        ENDDO

        SELE 26
        SKIP
        UNLOCK
     ENDDO
     ***************************************

     LN   := 1.52
     NETI := 0
     XCO  := 0

     SELE 4
     GO TOP
     DO WHILE !EOF()
        IF IMP = 1
 //          NETI := 0
//           LN   := 0
 //          OPRN:ENDPAGE()
        ELSE
           IF NETI = 10
              NETI := 0
              LN   := 1.52
              XCO  := 0
              ENDPAGE
              PAGE
           ENDIF
        ENDIF

        PRO1 := PRODUTO

        SELE 11
        SET ORDER TO 1
        SEEK STR(PRO1,13)

        DPRO1 := DESCRICAO
        PRE1  := PRECO
        VIS1  := PREVIS
        PER1  := ((PRE1*100)/VIS1)-100

        SELE 4
        SKIP
        UNLOCK

        IF !EOF()
           PRO2 := PRODUTO

           SELE 11
           SET ORDER TO 1
           SEEK STR(PRO2,13)

           DPRO2 := DESCRICAO
           PRE2  := PRECO
           VIS2  := PREVIS
           PER2  := ((PRE2*100)/VIS2)-100
        ELSE
           PRO2  := 0
           PRE2  := 0
        ENDIF

        IF IMP = 1
           oPrn:Say(LN,01,EXPRD + STRZERO(PRO1,13) + "-" + NOR2 + REDUZIDO + SUBSTR(DPRO1,1,38) +;
                 IIF(PRO2<>0,EXPRD + "     " + STRZERO(PRO2,13) + "-" + NOR2 + REDUZIDO + SUBSTR(DPRO2,1,38) + NORMAL,""))
           LN := LN + 1
           oPrn:Say(LN,01,EXPRD + "   A PRAZO   |   A VISTA" + IIF(PRO2<>0,SPACE(14) + "   A PRAZO   |   A VISTA",""))
           LN := LN + 1
           oPrn:Say(LN,01,EXPRD + "R$" + TRANS(PRE1,"@E 99,999.99") + "  |  R$" + TRANS(VIS1,"@E 99,999.99") +;
                 IIF(PRO2<>0,EXPRD + SPACE(11) + "R$" + TRANS(PRE2,"@E 99,999.99") + "  |  R$" + TRANS(VIS2,"@E 99,999.99") + NOR2,""))
           LN := LN + 1
           oPrn:Say(LN,01,REDUZIDO + "1X R$" + TRANS(PRE1,"@E 999.99") + " (30 Dias)     |" +;
                 IIF(PRO2<>0,SPACE(49) + "1X R$" + TRANS(PRE2,"@E 999.99") + " (30 Dias)     |",""))
           LN := LN + 1
           oPrn:Say(LN,01,"Tot R$" + TRANS(PRE1,"@E 999.99") + "  % Acr. " + STR(PER1,5,2) + " |" +;
                 IIF(PRO2<>0,SPACE(49) + "Tot R$" + TRANS(PRE2,"@E 999.99") + "  % Acr. " + STR(PER2,5,2) + " |" + NORMAL,""))
           LN := LN + 2
//           oPrn:Say(LN,01,REDUZIDO + "1X R$" + TRANS(PRE1,"@E 999.99") + " (30 Dias)     |" +;
//                 IIF(PRO2<>0,SPACE(49) + IIF(STR(PRE2,10,2) > STR(100,10,2),"2X R$" + TRANS(PRE2/2,"@E 999.99") + " (30/60 Dias)  |","1X R$" + TRANS(PRE2,"@E 999.99") + " (30 Dias)     |"),""))
//           oPrn:Say(LN,01,REDUZIDO + IIF(STR(PRE1,10,2) > STR(100,10,2),"2X R$" + TRANS(PRE1/2,"@E 999.99") + " (30/60 Dias)  |","1X R$" + TRANS(PRE1,"@E 999.99") + " (30 Dias)     |") +;
//                 IIF(PRO2<>0,SPACE(49) + IIF(STR(PRE2,10,2) > STR(100,10,2),"2X R$" + TRANS(PRE2/2,"@E 999.99") + " (30/60 Dias)  |","1X R$" + TRANS(PRE2,"@E 999.99") + " (30 Dias)     |"),""))
        ELSE
           oPrn:CMSay(LN,2,"       " + STRZERO(PRO1,13) + IIF(PRO2<>0,SPACE(28) + STRZERO(PRO2,13),""),OFNT2)
//           IF XCO = 0             // Na Primeira estiqueta tem que pular mais (Não sei Pq)
//              LN := LN + 0.7
//           ELSE
              LN := LN + 0.4
//           ENDIF
           XCO := 1
           oPrn:CMSay(LN,0.8,SUBSTR(DPRO1,1,38),OFNT3)
           IF PRO2<>0
              oPrn:CMSay(LN,11.5,SUBSTR(DPRO2,1,38),OFNT3)
           ENDIF

           LN = LN + 0.4
           oPrn:CMSay(LN,0,"         A PRAZO    |     A VISTA                "+IIF(PRO2<>0,"A PRAZO    |     A VISTA",""),OFNT5)
           LN = LN + 0.4
           oPrn:CMSay(LN,0,"     R$" + TRANS(PRE1,"@E 99,999.99")  + "    |   R$" + TRANS(VIS1,"@E 99,999.99")+;
           IIF(PRO2<>0,"            R$" + TRANS(PRE2,"@E 99,999.99")  + "  |   R$" + TRANS(VIS2,"@E 99,999.99"),""),OFNT5)

           LN = LN + 0.4

           oPrn:CMSay(LN,0.8,"1X R$" + TRANS(PRE1,"@E 99,999.99") + " (30 Dias)" ,OFNT4)
           IF PRO2<>0
              oPrn:CMSay(LN,11.5,"1X R$" + TRANS(PRE2,"@E 99,999.99") + " (30 Dias)",OFNT4)
           ENDIF
           oPrn:CMSay(LN,0,SPACE(20) + "|" + IIF(PRO2<>0,SPACE(39) + "|",""),OFNT5)

           LN = LN + 0.4

           oPrn:CMSay(LN,0.8,"T R$" + TRANS(PRE1,"@E 99,999.99") + " % Acr. " + STR(PER1,5,2),OFNT4)
           IF PRO2<>0
              oPrn:CMSay(LN,11.5,"T R$" + TRANS(PRE2,"@E 99,999.99") + " % Acr. " + STR(PER2,5,2),OFNT4)
           ENDIF
           oPrn:CMSay(LN,0,SPACE(20) + "|" + IIF(PRO2<>0,SPACE(39) + "|",""),OFNT5)

           LN = LN + 0.55
//           oPrn:CMSay(LN,0,IIF(STR(PRE1,10,2) > STR(100,10,2),"2X R$" + TRANS(PRE1/2,"@E 999.99") + " (30/60 Dias)","1X R$" + TRANS(PRE1,"@E 999.99") + " (30 Dias)") +;
//           IIF(PRO2<>0,SPACE(38)+"1X R$" + TRANS(PRE2,"@E 999.99") + " (30 Dias)",""),OFNT4)
//           IIF(PRO2<>0,SPACE(38)+IIF(STR(PRE2,10,2) > STR(100,10,2),"2X R$" + TRANS(PRE2/2,"@E 999.99") + " (30/60 Dias)","1X R$" + TRANS(PRE2,"@E 999.99") + " (30 Dias)"),""),OFNT4)
//           oPrn:CMSay(LN,0,IIF(STR(PRE1,10,2) > STR(100,10,2),"2X R$" + TRANS(PRE1/2,"@E 999.99") + " (30/60 Dias)","1X R$" + TRANS(PRE1,"@E 999.99") + " (30 Dias)") +;
        ENDIF
        NETI := NETI + 1
        SELE 4
        IF !EOF()
           SKIP
           UNLOCK 
        ENDIF
     ENDDO
     IF IMP = 1
        OPRN:LZERABUFFER:=.F. // PULAR PÁGINA=.F. NÃO PULAR=.T.
        OPRN:ENDPAGE()
        OPRN:END()
     ELSE
//        IF NETI <> 10
           ENDPAGE
//        ENDIF
        ENDPRINT
     ENDIF
  ENDIF

  IF VRAD2 = 3   // TRÊS COL. APENAS JATO DE TINTA

     SELE 4
     ZAP

     *************************** Adiciona os produtos na Matriz
     SELE 26
     GO TOP
     DO WHILE !EOF()
        PRO := PRODUTO
        COP := QUANTIDADE

        XCO := 0
        DO WHILE XCO < COP
           SELE 4
           INCREG2()
           REPL PRODUTO WITH PRO
           UNLOCK
           COMMIT

           XCO := XCO + 1
        ENDDO

        SELE 26
        SKIP
        UNLOCK
     ENDDO
     ***************************************

     LN   := 1.52
     NETI := 0
     XCO  := 0

     SELE 4
     GO TOP
     DO WHILE !EOF()
        IF NETI = 10
           NETI := 0
           LN   := 1.52
           XCO  := 0
           ENDPAGE
           PAGE
        ENDIF

        PRO1 := PRODUTO
        ************************* PEGA O 1º PRODUTO
        SELE 11
        SET ORDER TO 1
        SEEK STR(PRO1,13)

        DPRO1 := DESCRICAO
        PRE1  := PRECO
        VIS1  := PREVIS
        PER1  := ((PRE1*100)/VIS1)-100

        ************************* PEGA O 2º PRODUTO SE TIVER
        SELE 4
        SKIP
        UNLOCK

        IF !EOF()
           PRO2 := PRODUTO

           SELE 11
           SET ORDER TO 1
           SEEK STR(PRO2,13)

           DPRO2 := DESCRICAO
           PRE2  := PRECO
           VIS2  := PREVIS
           PER2  := ((PRE2*100)/VIS2)-100
        ELSE
           PRO2  := 0
           PRE2  := 0
        ENDIF

        ************************* PEGA O 3º PRODUTO SE TIVER
        SELE 4
        SKIP
        UNLOCK

        IF !EOF()
           PRO3 := PRODUTO

           SELE 11
           SET ORDER TO 1
           SEEK STR(PRO3,13)

           DPRO3 := DESCRICAO
           PRE3  := PRECO
           VIS3  := PREVIS
           PER3  := ((PRE3*100)/VIS3)-100
        ELSE
           PRO3  := 0
           PRE3  := 0
        ENDIF


        IF IMP = 1
        ELSE
           oPrn:CMSay(LN,2," " + STRZERO(PRO1,13) + IIF(PRO2<>0,SPACE(13) + STRZERO(PRO2,13),"")+ IIF(PRO3<>0,SPACE(14) + STRZERO(PRO3,13),""),OFNT2)
//           IF XCO = 0             // Na Primeira estiqueta tem que pular mais (Não sei Pq)
//              LN := LN + 0.7
//           ELSE
              LN := LN + 0.4
//           ENDIF
           XCO := 1
           oPrn:CMSay(LN,0.6,DPRO1,OFNT6)
           IF PRO2<>0
              oPrn:CMSay(LN,7.4,DPRO2,OFNT6)
           ENDIF
           IF PRO3<>0
              oPrn:CMSay(LN,14.0,DPRO3,OFNT6)
           ENDIF

           LN = LN + 0.4
           oPrn:CMSay(LN,0,"   A PRAZO   |   A VISTA      "+IIF(PRO2<>0,"A PRAZO   |   A VISTA    ","")+IIF(PRO3<>0,"A PRAZO   |   A VISTA",""),OFNT7)
           LN = LN + 0.4
           oPrn:CMSay(LN,0," R$" + TRANS(PRE1,"@E 99,999.99")  + "   R$" + TRANS(VIS1,"@E 99,999.99")+;
           IIF(PRO2<>0,"    R$" + TRANS(PRE2,"@E 99,999.99")  + "   R$" + TRANS(VIS2,"@E 99,999.99"),"")+;
           IIF(PRO3<>0,"  R$" + TRANS(PRE3,"@E 99,999.99")  + "   R$" + TRANS(VIS3,"@E 99,999.99"),""),OFNT9)

           oPrn:CMSay(LN,0,SPACE(13) + "|" + IIF(PRO2<>0,SPACE(26) + "|","")+ IIF(PRO3<>0,SPACE(24) + "|",""),OFNT7)

           LN = LN + 0.4

           oPrn:CMSay(LN,0.6,"1X R$" + TRANS(PRE1,"@E 99,999.99") + " (30 Dias)" ,OFNT8)
           IF PRO2<>0
              oPrn:CMSay(LN,7.6,"1X R$" + TRANS(PRE2,"@E 99,999.99") + " (30 Dias)",OFNT8)
           ENDIF
           IF PRO3<>0
              oPrn:CMSay(LN,14.2,"1X R$" + TRANS(PRE3,"@E 99,999.99") + " (30 Dias)",OFNT8)
           ENDIF
           oPrn:CMSay(LN,0,SPACE(13) + "|" + IIF(PRO2<>0,SPACE(26) + "|","")+ IIF(PRO3<>0,SPACE(24) + "|",""),OFNT7)

           LN = LN + 0.4

           oPrn:CMSay(LN,0.6,"T R$" + TRANS(PRE1,"@E 99,999.99") + " %Ac. " + STR(PER1,5,2),OFNT8)
           IF PRO2<>0
              oPrn:CMSay(LN,7.6,"T R$" + TRANS(PRE2,"@E 99,999.99") + " %Ac. " + STR(PER2,5,2),OFNT8)
           ENDIF
           IF PRO3<>0
              oPrn:CMSay(LN,14.2,"T R$" + TRANS(PRE3,"@E 99,999.99") + " %Ac. " + STR(PER3,5,2),OFNT8)
           ENDIF
           oPrn:CMSay(LN,0,SPACE(13) + "|" + IIF(PRO2<>0,SPACE(26) + "|","")+ IIF(PRO3<>0,SPACE(24) + "|",""),OFNT7)

           LN = LN + 0.55
//           oPrn:CMSay(LN,0,IIF(STR(PRE1,10,2) > STR(100,10,2),"2X R$" + TRANS(PRE1/2,"@E 999.99") + " (30/60 Dias)","1X R$" + TRANS(PRE1,"@E 999.99") + " (30 Dias)") +;
//           IIF(PRO2<>0,SPACE(38)+"1X R$" + TRANS(PRE2,"@E 999.99") + " (30 Dias)",""),OFNT4)
//           IIF(PRO2<>0,SPACE(38)+IIF(STR(PRE2,10,2) > STR(100,10,2),"2X R$" + TRANS(PRE2/2,"@E 999.99") + " (30/60 Dias)","1X R$" + TRANS(PRE2,"@E 999.99") + " (30 Dias)"),""),OFNT4)
//           oPrn:CMSay(LN,0,IIF(STR(PRE1,10,2) > STR(100,10,2),"2X R$" + TRANS(PRE1/2,"@E 999.99") + " (30/60 Dias)","1X R$" + TRANS(PRE1,"@E 999.99") + " (30 Dias)") +;
        ENDIF
        NETI := NETI + 1
        SELE 4
        IF !EOF()
           SKIP
           UNLOCK 
        ENDIF
     ENDDO
     IF IMP = 1
//        OPRN:LZERABUFFER:=.F. // PULAR PÁGINA=.F. NÃO PULAR=.T.
        OPRN:ENDPAGE()
        OPRN:END()
     ELSE
//        IF NETI <> 10
           ENDPAGE
//        ENDIF
        ENDPRINT
     ENDIF
  ENDIF

  IF VRAD2 = 4   // CINCO COL.
     SELE 4
     ZAP

     *************************** Adiciona os produtos na Matriz
     SELE 26
     GO TOP
     DO WHILE !EOF()
        PRO := PRODUTO
        COP := QUANTIDADE

        XCO := 0
        DO WHILE XCO < COP
           SELE 4
           INCREG2()
           REPL PRODUTO WITH PRO
           UNLOCK
           COMMIT

           XCO := XCO + 1
        ENDDO

        SELE 26
        SKIP
        UNLOCK
     ENDDO
     ***************************************

     LN   := 0
     NETI := 0
     XCO  := 0

     SELE 4
     GO TOP
     DO WHILE !EOF()
        STORE 0 TO PRO2,PRO3,PRO4,PRO5
        PRO1 := PRODUTO

        SELE 11
        SET ORDER TO 1
        SEEK STR(PRO1,13)

        DPRO1 := DESCRICAO
        PRE1  := PRECO
        VIS1  := PREVIS
        PER1  := ((PRE1*100)/VIS1)-100

        SELE 4
        SKIP
        UNLOCK

        IF !EOF()
           PRO2 := PRODUTO

           SELE 11
           SET ORDER TO 1
           SEEK STR(PRO2,13)

           DPRO2 := DESCRICAO
           PRE2  := PRECO
           VIS2  := PREVIS
           PER2  := ((PRE2*100)/VIS2)-100

           SELE 4
           SKIP
           UNLOCK

           IF !EOF()
              PRO3 := PRODUTO

              SELE 11
              SET ORDER TO 1
              SEEK STR(PRO3,13)

              DPRO3 := DESCRICAO
              PRE3  := PRECO
              VIS3  := PREVIS
              PER3  := ((PRE3*100)/VIS2)-100

              SELE 4
              SKIP
              UNLOCK

              IF !EOF()
                 PRO4 := PRODUTO

                 SELE 11
                 SET ORDER TO 1
                 SEEK STR(PRO4,13)

                 DPRO4 := DESCRICAO
                 PRE4  := PRECO
                 VIS4  := PREVIS
                 PER4  := ((PRE4*100)/VIS2)-100

                 SELE 4
                 SKIP
                 UNLOCK

                 IF !EOF()
                    PRO5 := PRODUTO

                    SELE 11
                    SET ORDER TO 1
                    SEEK STR(PRO5,13)

                    DPRO5 := DESCRICAO
                    PRE5  := PRECO
                    VIS5  := PREVIS
                    PER5  := ((PRE5*100)/VIS2)-100
                 ELSE
                    PRO5 := 0
                    PRE5 := 0
                 ENDIF
              ELSE
                 PRO4 := 0
                 PRE4 := 0
              ENDIF
           ELSE
              PRO3 := 0
              PRE3 := 0
           ENDIF
        ELSE
           PRO2 := 0
           PRE2 := 0
        ENDIF

        IF IMP = 1
           oPrn:Say(LN,0,STRZERO(PRO1,13) + " " + ;
           IIF(PRO2<>0,STRZERO(PRO2,13),"") + " " + ;
           IIF(PRO3<>0,STRZERO(PRO3,13),"") + " " + ;
           IIF(PRO4<>0,STRZERO(PRO4,13),"") + " " + ;
           IIF(PRO5<>0,STRZERO(PRO5,13),""))
           LN := LN + 1
           oPrn:Say(LN,0,"R$" + TRANS(PRE1,"@E 9,999.99") + ;
           IIF(PRO2<>0,"    R$" + TRANS(PRE2,"@E 9,999.99"),"") + ;
           IIF(PRO3<>0,"    R$" + TRANS(PRE3,"@E 9,999.99"),"") + ;
           IIF(PRO4<>0,"    R$" + TRANS(PRE4,"@E 9,999.99"),"") + ;
           IIF(PRO5<>0,"    R$" + TRANS(PRE5,"@E 9,999.99"),""))
           LN := LN + 2
        ELSE
           oPrn:CMSay(LN,0,STRZERO(PRO1,13)  + " " + ;
           IIF(PRO2<>0,STRZERO(PRO2,13),"") + " " + ;
           IIF(PRO3<>0,STRZERO(PRO3,13),"") + " " + ;
           IIF(PRO4<>0,STRZERO(PRO4,13),"") + " " + ;
           IIF(PRO5<>0,STRZERO(PRO5,13),""),OFNT2)
           IF XCO = 0             // Na Primeira estiqueta tem que pular mais (Não sei Pq)
              LN := LN + 0.7
           ELSE
              LN := LN + 0.4
           ENDIF
           XCO := 1
           oPrn:CMSay(LN,0,"R$" + TRANS(PRE1,"@E 999.99") + ;
           IIF(PRO2<>0,"      R$" + TRANS(PRE2,"@E 999.99"),"") + ;
           IIF(PRO3<>0,"      R$" + TRANS(PRE3,"@E 999.99"),"") + ;
           IIF(PRO4<>0,"      R$" + TRANS(PRE4,"@E 999.99"),"") + ;
           IIF(PRO5<>0,"      R$" + TRANS(PRE5,"@E 999.99"),""),OFNT1)
           LN := LN + 0.7
        ENDIF
        NETI := NETI + 1
        IF IMP = 1
//           NETI := 0
//           LN   := 0
//           OPRN:ENDPAGE()
        ELSE
           IF NETI = 9
              NETI := 0
              LN   := 0
              XCO  := 0
              ENDPAGE
              PAGE
           ENDIF
        ENDIF
        SELE 4
        IF !EOF()
           SKIP
           UNLOCK
        ENDIF
     ENDDO
     IF IMP = 1
        OPRN:LZERABUFFER:=.F. // PULAR PÁGINA=.F. NÃO PULAR=.T.
        OPRN:ENDPAGE()
        OPRN:END()
     ELSE
        IF NETI <> 9
           ENDPAGE
        ENDIF
        ENDPRINT
     ENDIF
  ENDIF
  RETURN(NIL)

Link to comment
Share on other sites

Essa função está meio CRUEL. Ache os erros! Eu sou PHODA!! kkkkkkkkkkkkkkk

Veja como eu faria:

// C:\FWH...\SAMPLES\MAUDRUID.PRG - MODIFICADO: 21/09/2022 - kapiaba.
	#include "FiveWin.ch"
#include "Utilprn.ch" // PARA? CLASSE DE TERCEIROS IMITANDO A PRINTER.PRG?
	#define PRETO  nRGB( 0,0,0)
#define XPAZULC  nRGB( 111,143,175)
#define BRWBACK 14483196 // Amarelo enbranquecido
#define COR1 14410170
#define COR2 14810095
#define COR3 RGB(255,128,128)
#define COR4 RGB(250,168,86)   // Laranja
#define CLR_AZUL nRGB(204, 218, 241)
	STATIC OMETER2, ODLCRL, XXI
	FUNCTION ETIPRO()
	   LOCAL OFNC, OGETFNT, OFNC3, OFNC4, OFNC2, OFNC5, OBTN3, OBTN4
   LOCAL COP, PRO, VRAD2, CSAY1, RDPR2
	   CorBot := { | lMouseOver | If( lMouseOver, ;
      { { 1/3, nRGB( 219, 230, 244 ), nRGB( 207 - 50, 221 - 25, 255 ) }, ;
      { 2/3, nRGB( 201 - 50, 217 - 25, 255 ), nRGB( 231, 242, 255 ) }  ;
      }, ;
      { { 1/2, nRGB( 230, 230, 230 ), nRGB( 202, 223, 220 ) }, ;
      { 1/2, nRGB( 181, 209, 210 ), nRGB( 230, 230, 230 ) }  ;
      } ) }
	   VRAD2 := 1
	   DEFINE FONT OFNC NAME "Arial" SIZE 0, - 12 BOLD
   DEFINE FONT OGETFNT NAME "Arial" SIZE 0, - 12
   DEFINE FONT OFNC3 NAME "ARIAL" SIZE 0, - 13 BOLD
   DEFINE FONT OFNC4 NAME "ARIAL" SIZE 0, - 11
   DEFINE FONT OFNC2 NAME "TIMES NEW ROMAN" SIZE 0, - 17 BOLD
   DEFINE FONT OFNC5 NAME "TIMES NEW ROMAN" SIZE 6, - 16 BOLD
	   DEFINE DIALOG ODLEXT RESOURCE "DLGEPRO" COLOR CLR_BLACK, RGB( 247, 248, 233 ) ;
      FONT OFNC TITLE "Etiquetas em Colunas"
	   ODLEXT : LHELPICON := .F.  // Tira a ? da janela
   ODLEXT : lTransparent := .T.
	// VRAD2 := 1
	   REDEFINE RADIO RDPR2 VAR VRAD2 ID 116, 117, 114, 118 COLOR CLR_BLACK, GETSYSCOLOR( 15 ) OF ODLEXT
	   REDEFINE BTNBMP OBTN3 ID 111 OF ODLEXT ;
      RESOURCE "IMPRESS" LEFT 2007 ;
      PROMPT " &Imprime" TEXTRIGHT ;
      ACTION( IMPEPRO( VRAD2 ), VRAD2 := 1, RDPR2:REFRESH() )
	   oBtn3:CTOOLTIP = "Imprime as Etiquetas"
	   SET FONT OF OBTN3 TO OFNC
	   oBtn3:bClrGrad = CorBot
	   REDEFINE BTNBMP OBTN4 ID 112 OF ODLEXT RESOURCE "CANCELA" LEFT 2007 ;
      PROMPT "Cance&la" TEXTRIGHT ACTION ODLEXT:END()
	   oBtn4:cToolTip = "Cancelar / Sair"
	   SET FONT OF OBTN4 TO OFNC
	   oBtn4:bClrGrad = CorBot
	   oBtn4:lCancel := .T. // CANCEL normal do BUTTON na BTNBMP e assim.
	   ACTIVATE DIALOG ODLEXT CENTERED RESIZE16 ON INIT ROUNDRECTA( oDlext:hWnd, 20 )
	   // feche sempre as fontes.
   OFNC:End()
   OGETFNT:End()
   OFNC3:End()
   OFNC4:End()
   OFNC2:End()
   OFNC5:End()
	RETURN NIL // (.T.) // E UM VALID AQUI?
	// MAUDRUIDAS: SEM ISSO O FIVEWIN NAO SABE QUE VOCE ESTA USANDO A TDOSPRN.PRG
	//----- Definicao de comando SAY para TdosPrn ---------------------------------
//
	#xcommand @ <nRow>, <nCol> SAY <cText> OF <oPrinter> => <oPrinter>:Say(<nRow>, <nCol>, <cText> )
	FUNCTION IMPEPRO( VRAD2 )
	   LOCAL NTAM, COL, LN, NUM, NUM2, XCO, NETI, NLIN, NLI, NOR2, REDUZIDO, NORMAL, EXPRD, NOR
	   /* CORRETO E AQUI, TEM QUE DECLARAR AS VARIAVEIS, LOCAL, MEMVAR, ETC...
   // SE NAO TRAVAR O PROGRAMA OU DEXAIR LENTO, DEIXE NO LOCAL. APENAS SUGESTAO
   STORE 0 TO PRO2, PRO3, PRO4, PRO5 // MELHOR POR NO INICIO DO MODULO
                                     // PODE TRAVAR O PROGRAMA.
                                     // ISSO PODE SER REPITIR MILHOES DE X.
   */
	   SELE 26
   GO TOP
	   IF EOF()
      MSGALERT( "Lote de Etiquetas Está Vazio, Favor Incluir Produtos !!!", "Mensagem" )
      RETURN( .F. )
   ENDIF
	   IMP := ESCIMP()  // ESCOLHE A TIPO DE IMPRESSÃO (MATRICIAL OU JATO DE TINTA)
	   IF IMP = 0
      RETURN NIL
   ENDIF
	   IF IMP = 1  // USANDO TDOSPRN.PRG
	      IF VRAD2 = 3
         MSGALERT( "Não Existe Impressão de 3 Col. Para Imp. Matricial", "Atenção..." )
         RETURN( NIL )
      ENDIF
	      // SE FOR IMPRESSORA USB, TEM QUE USAR O PRINTERFILERAW()
      /*
      OPRN := TDOSPRN():NEW( "LPT1" ) // MATRICIAL? SENAO, NAO VAI
      OPRN:LZERABUFFER := .T. // PULAR PÁGINA=.F. NÃO PULAR=.T.    //(onde dá o erro)
      */
	      oPrn:= TDosPrn():New( "ETIQUETA.TXT" ) // para ir para um arquivo .txt
      // oPrn:= TDosPrn():New()        // para ir para impressora em definitivo
      // oPrn := TDosPrn():New("lpt1") // para ir para impressora em definitivo
      // Este Comando, Liga a Impressora. NÆo Tirar Nunca
      oPrn:StartPage() // da Start(inicializa) na p gina.
      oPrn:lZeraBuffer := .T.             // Inibe o Pulo da P gina
	      NOR := CHR( 18 )
      REDUZIDO := CHR( 15 )
      NORMAL := CHR( 18 )
      EXPRD := CHR( 14 ) + CHR( 15 )
      NOR2 := CHR( 27 ) + CHR( 33 ) + CHR( 0 ) + NOR
	   ELSE // usando PRINTER.PRG
	      PRINTER OPRN NAME "IMPRESSÃO DE ETIQUETAS EM COLUNAS" PREVIEW MODAL
	      OPRN:SETPAGE( 9 )
	      NTAM := oPrn:nLogPixelX()/10
	      // FECHE AS FONTES AO SAIR DO RELATORIO USANDO A PRINTER.PRG
	      DEFINE FONT OFNT1 NAME "COURIER NEW" SIZE NTAM, - ( NTAM + 5 )
      DEFINE FONT OFNT2 NAME "COURIER NEW" SIZE NTAM, - ( NTAM + 5 ) BOLD
      DEFINE FONT OFNT3 NAME "COURIER NEW" SIZE NTAM - 3, - ( NTAM + 5 ) BOLD
      DEFINE FONT OFNT4 NAME "COURIER NEW" SIZE NTAM - 18, - ( NTAM + 18 ) BOLD
      DEFINE FONT OFNT5 NAME "COURIER NEW" SIZE NTAM + 2, - ( NTAM + 10 ) BOLD
	      DEFINE FONT OFNT6 NAME "COURIER NEW" SIZE NTAM - 32, - ( NTAM + 32 ) BOLD
      DEFINE FONT OFNT7 NAME "COURIER NEW" SIZE NTAM + 1, - ( NTAM + 25 ) BOLD
      DEFINE FONT OFNT8 NAME "COURIER NEW" SIZE NTAM - 30, - ( NTAM + 30 ) BOLD
      DEFINE FONT OFNT9 NAME "COURIER NEW" SIZE NTAM - 2.5, - ( NTAM + 5 ) BOLD
	   ENDIF
	   // CURSORWAIT() // ATRASA O PROGRAMA - DESNECESSARIO.
	   IF IMP = 1
	      // OPRN:STARTPAGE()
	      oPrn:= TDosPrn():New( "ETIQUETA.TXT" ) // para ir para um arquivo .txt
      // oPrn:= TDosPrn():New()        // para ir para impressora em definitivo
      // oPrn := TDosPrn():New("lpt1") // para ir para impressora em definitivo
      // Este Comando, Liga a Impressora. NÆo Tirar Nunca
      oPrn:StartPage() // da Start(inicializa) na p gina.
      oPrn:lZeraBuffer := .T.             // Inibe o Pulo da P gina
	   ELSE
      PAGE
   ENDIF
	   IF VRAD2 = 1   // UMA COL.
      LN   := 0
      NETI := 0
	      SELE 26
      GO TOP
	      WHILE .NOT. EOF()
	         SYSREFRESH()
	         PRO := PRODUTO
         COP := QUANTIDADE
	         SELE 11
         SET ORDER TO 1
         SEEK STR( PRO, 13 )
	         DPRO := DESCRICAO
         PRE  := PRECO
         VIS  := PREVIS
         PER  := ( ( PRE * 100 )/VIS ) - 100
	         XCO  := 0
	         WHILE XCO < COP
	            SYSREFRESH()
	            IF IMP = 1
	               oPrn:Say( LN, 01, EXPRD + STRZERO( PRO,13 ) + " - " + NOR2 + REDUZIDO + SUBSTR( DPRO,1,20 ) + NORMAL )
               LN := LN + 1
               oPrn:Say( LN, 01, EXPRD + "   A PRAZO   |   A VISTA" )
               LN := LN + 1
               oPrn:Say( LN, 01, EXPRD + "R$" + TRANS( PRE,"@E 99,999.99" ) + "  |  R$" + TRANS( VIS,"@E 99,999.99" ) + NOR2 )
               LN := LN + 1
               //              IF STR(PRE,10,2) > STR(100,10,2)
               //                 oPrn:Say(LN,01,REDUZIDO + "2X R$" + TRANS(PRE/2,"@E 999.99") + " (30/60 Dias)  |")
               //              ELSE
               oPrn:Say( LN, 01, REDUZIDO + "1X R$" + TRANS( PRE,"@E 999.99" ) + " (30 Dias)     |" )
               //              ENDIF
               LN := LN + 1
               oPrn:Say( LN, 01, "Tot R$" + TRANS( PRE,"@E 999.99" ) + "  % Acr. " + STR( PER,5,2 ) + " |" + NORMAL )
               LN := LN + 2
            ELSE
               oPrn:CMSay( LN, 2, "       " + STRZERO( PRO,13 ), OFNT2 )
               IF XCO = 0             // Na Primeira estiqueta tem que pular mais (Não sei Pq)
                  LN := LN + 0.7
               ELSE
                  LN := LN + 0.4
               ENDIF
               oPrn:CMSay( LN, 0, SUBSTR( DPRO,1,38 ), OFNT3 )
               LN := LN + 0.4
               oPrn:CMSay( LN, 0, "       A PRAZO    |     A VISTA", OFNT5 )
               LN := LN + 0.4
               oPrn:CMSay( LN, 0, "     R$" + TRANS( PRE,"@E 99,999.99" )  + "  |   R$" + TRANS( VIS,"@E 99,999.99" ), OFNT5 )
               LN := LN + 0.4
               //              IF STR(PRE,10,2) > STR(100,10,2)
               //                 oPrn:CMSay(LN,0,"2X R$" + TRANS(PRE/2,"@E 999.99") + " (30/60 Dias)",OFNT4)
               //              ELSE
               oPrn:CMSay( LN, 0, "1X R$" + TRANS( PRE,"@E 99,999.99" ) + " (30 Dias)", OFNT4 )
               //              ENDIF
               oPrn:CMSay( LN, 0, SPACE( 18 ) + "|", OFNT5 )
               LN := LN + 0.4
               oPrn:CMSay( LN, 0, "T R$" + TRANS( PRE,"@E 99,999.99" ) + " % Acr. " + STR( PER,5,2 ), OFNT4 )
               oPrn:CMSay( LN, 0, SPACE( 18 ) + "|", OFNT5 )
               LN := LN + 0.8
            ENDIF
            XCO  := XCO + 1
            NETI := NETI + 1
            IF IMP = 1
               IF NETI = 11
                  //                 NETI := 0
                  //                 LN   := 0
                  //                 OPRN:ENDPAGE()
               ENDIF
            ELSE
               IF NETI = 9
                  NETI := 0
                  LN   := 0
                  ENDPAGE
                  PAGE
               ENDIF
            ENDIF
         ENDDO
	         SELE 26
         SKIP
	         // UNLOCK //??
	      ENDDO
	      IF IMP = 1
	         // DESNECESSARIO AO SAIR E SIM NO ACTIVATE DA IMPRESSAO.
         // OPRN:LZERABUFFER := .F. // PULAR PÁGINA=.F. NÃO PULAR=.T.
	         OPRN:ENDPAGE()
         OPRN:END()
	         /*
         oPrn:EndPage()
         oPrn:End()
	         //--- imprime no spool do windows, liberando o micro para trabalhar.
         ImpSpool( "ETIQUETA.TXT",, .F. )
         //--- opcionamente pode-se apagar o arquivo passando .t. no 3o. parametro.
         */
	      ELSE
         ENDPAGE
         ENDPRINT
      ENDIF
   ENDIF
	   IF VRAD2 = 2   // DUAS COL.
	      SELE 4
      ZAP
	      //************************** Adiciona os produtos na Matriz
      SELE 26
      GO TOP
	      WHILE .NOT. EOF()
	         SYSREFRESH()
	         PRO := PRODUTO
         COP := QUANTIDADE
	         XCO := 0
	         WHILE XCO < COP
	            SYSREFRESH()
	            SELE 4
	            INCREG2()
	            REPL PRODUTO WITH PRO
	            // NAO E RECOMENDAVEL AQUI. NO WHILE.
            // UNLOCK
            // COMMIT
	            XCO := XCO + 1
         ENDDO
	         SELE 26
         SKIP
	         //UNLOCK
	      ENDDO
	      // RECOMENDAVEL Joao
      COMMIT
      UNLOCK
	      //**************************************
	      LN   := 1.52
      NETI := 0
      XCO  := 0
	      SELE 4
      GO TOP
	      WHILE .NOT. EOF()
	         SYSREFRESH()
	         IF IMP = 1
            //          NETI := 0
            //           LN   := 0
            //          OPRN:ENDPAGE()
         ELSE
            IF NETI = 10
               NETI := 0
               LN   := 1.52
               XCO  := 0
               ENDPAGE
               PAGE
            ENDIF
         ENDIF
	         PRO1 := PRODUTO
	         SELE 11
         SET ORDER TO 1
         SEEK STR( PRO1, 13 )
	         DPRO1 := DESCRICAO
         PRE1  := PRECO
         VIS1  := PREVIS
         PER1  := ( ( PRE1 * 100 )/VIS1 ) - 100
	         SELE 4
         SKIP
	         // UNLOCK  //??
	         IF .NOT. EOF()
            PRO2 := PRODUTO
	            SELE 11
            SET ORDER TO 1
            SEEK STR( PRO2, 13 )
	            DPRO2 := DESCRICAO
            PRE2  := PRECO
            VIS2  := PREVIS
            PER2  := ( ( PRE2 * 100 )/VIS2 ) - 100
         ELSE
            PRO2  := 0
            PRE2  := 0
         ENDIF
	         IF IMP = 1
            oPrn:Say( LN, 01, EXPRD + STRZERO( PRO1,13 ) + "-" + NOR2 + REDUZIDO + SUBSTR( DPRO1,1,38 ) + ;
               IIF( PRO2 <> 0, EXPRD + "     " + STRZERO( PRO2,13 ) + "-" + NOR2 + REDUZIDO + SUBSTR( DPRO2,1,38 ) + NORMAL, "" ) )
            LN := LN + 1
            oPrn:Say( LN, 01, EXPRD + "   A PRAZO   |   A VISTA" + IIF( PRO2 <> 0,SPACE(14 ) + "   A PRAZO   |   A VISTA","" ) )
            LN := LN + 1
            oPrn:Say( LN, 01, EXPRD + "R$" + TRANS( PRE1,"@E 99,999.99" ) + "  |  R$" + TRANS( VIS1,"@E 99,999.99" ) + ;
               IIF( PRO2 <> 0, EXPRD + SPACE( 11 ) + "R$" + TRANS( PRE2,"@E 99,999.99" ) + "  |  R$" + TRANS( VIS2,"@E 99,999.99" ) + NOR2, "" ) )
            LN := LN + 1
            oPrn:Say( LN, 01, REDUZIDO + "1X R$" + TRANS( PRE1,"@E 999.99" ) + " (30 Dias)     |" + ;
               IIF( PRO2 <> 0, SPACE( 49 ) + "1X R$" + TRANS( PRE2,"@E 999.99" ) + " (30 Dias)     |", "" ) )
            LN := LN + 1
            oPrn:Say( LN, 01, "Tot R$" + TRANS( PRE1,"@E 999.99" ) + "  % Acr. " + STR( PER1,5,2 ) + " |" + ;
               IIF( PRO2 <> 0, SPACE( 49 ) + "Tot R$" + TRANS( PRE2,"@E 999.99" ) + "  % Acr. " + STR( PER2,5,2 ) + " |" + NORMAL, "" ) )
            LN := LN + 2
            //           oPrn:Say(LN,01,REDUZIDO + "1X R$" + TRANS(PRE1,"@E 999.99") + " (30 Dias)     |" +;
            //                 IIF(PRO2<>0,SPACE(49) + IIF(STR(PRE2,10,2) > STR(100,10,2),"2X R$" + TRANS(PRE2/2,"@E 999.99") + " (30/60 Dias)  |","1X R$" + TRANS(PRE2,"@E 999.99") + " (30 Dias)     |"),""))
            //           oPrn:Say(LN,01,REDUZIDO + IIF(STR(PRE1,10,2) > STR(100,10,2),"2X R$" + TRANS(PRE1/2,"@E 999.99") + " (30/60 Dias)  |","1X R$" + TRANS(PRE1,"@E 999.99") + " (30 Dias)     |") +;
            //                 IIF(PRO2<>0,SPACE(49) + IIF(STR(PRE2,10,2) > STR(100,10,2),"2X R$" + TRANS(PRE2/2,"@E 999.99") + " (30/60 Dias)  |","1X R$" + TRANS(PRE2,"@E 999.99") + " (30 Dias)     |"),""))
         ELSE
            oPrn:CMSay( LN, 2, "       " + STRZERO( PRO1,13 ) + IIF( PRO2 <> 0,SPACE(28 ) + STRZERO(PRO2,13 ),"" ), OFNT2 )
            //           IF XCO = 0             // Na Primeira estiqueta tem que pular mais (Não sei Pq)
            //              LN := LN + 0.7
            //           ELSE
            LN := LN + 0.4
            //           ENDIF
            XCO := 1
            oPrn:CMSay( LN, 0.8, SUBSTR( DPRO1,1,38 ), OFNT3 )
            IF PRO2 <> 0
               oPrn:CMSay( LN, 11.5, SUBSTR( DPRO2,1,38 ), OFNT3 )
            ENDIF
	            LN = LN + 0.4
            oPrn:CMSay( LN, 0, "         A PRAZO    |     A VISTA                " + IIF( PRO2 <> 0,"A PRAZO    |     A VISTA","" ), OFNT5 )
            LN = LN + 0.4
            oPrn:CMSay( LN, 0, "     R$" + TRANS( PRE1,"@E 99,999.99" )  + "    |   R$" + TRANS( VIS1,"@E 99,999.99" ) + ;
               IIF( PRO2 <> 0, "            R$" + TRANS( PRE2,"@E 99,999.99" )  + "  |   R$" + TRANS( VIS2,"@E 99,999.99" ), "" ), OFNT5 )
	            LN = LN + 0.4
	            oPrn:CMSay( LN, 0.8, "1X R$" + TRANS( PRE1,"@E 99,999.99" ) + " (30 Dias)" , OFNT4 )
            IF PRO2 <> 0
               oPrn:CMSay( LN, 11.5, "1X R$" + TRANS( PRE2,"@E 99,999.99" ) + " (30 Dias)", OFNT4 )
            ENDIF
            oPrn:CMSay( LN, 0, SPACE( 20 ) + "|" + IIF( PRO2 <> 0,SPACE(39 ) + "|","" ), OFNT5 )
	            LN = LN + 0.4
	            oPrn:CMSay( LN, 0.8, "T R$" + TRANS( PRE1,"@E 99,999.99" ) + " % Acr. " + STR( PER1,5,2 ), OFNT4 )
            IF PRO2 <> 0
               oPrn:CMSay( LN, 11.5, "T R$" + TRANS( PRE2,"@E 99,999.99" ) + " % Acr. " + STR( PER2,5,2 ), OFNT4 )
            ENDIF
            oPrn:CMSay( LN, 0, SPACE( 20 ) + "|" + IIF( PRO2 <> 0,SPACE(39 ) + "|","" ), OFNT5 )
	            LN = LN + 0.55
            //           oPrn:CMSay(LN,0,IIF(STR(PRE1,10,2) > STR(100,10,2),"2X R$" + TRANS(PRE1/2,"@E 999.99") + " (30/60 Dias)","1X R$" + TRANS(PRE1,"@E 999.99") + " (30 Dias)") +;
            //           IIF(PRO2<>0,SPACE(38)+"1X R$" + TRANS(PRE2,"@E 999.99") + " (30 Dias)",""),OFNT4)
            //           IIF(PRO2<>0,SPACE(38)+IIF(STR(PRE2,10,2) > STR(100,10,2),"2X R$" + TRANS(PRE2/2,"@E 999.99") + " (30/60 Dias)","1X R$" + TRANS(PRE2,"@E 999.99") + " (30 Dias)"),""),OFNT4)
            //           oPrn:CMSay(LN,0,IIF(STR(PRE1,10,2) > STR(100,10,2),"2X R$" + TRANS(PRE1/2,"@E 999.99") + " (30/60 Dias)","1X R$" + TRANS(PRE1,"@E 999.99") + " (30 Dias)") +;
         ENDIF
         NETI := NETI + 1
         SELE 4
         IF .NOT. EOF()
            SKIP
	            // UNLOCK // ??
	         ENDIF
      ENDDO
      IF IMP = 1
	         // OPRN:LZERABUFFER := .F. // PULAR PÁGINA=.F. NÃO PULAR=.T.
	         OPRN:ENDPAGE()
         OPRN:END()
      ELSE
         //        IF NETI <> 10
         ENDPAGE
         //        ENDIF
         ENDPRINT
      ENDIF
   ENDIF
	   IF VRAD2 = 3   // TRÊS COL. APENAS JATO DE TINTA
	      SELE 4
      ZAP
	      //************************** Adiciona os produtos na Matriz
      SELE 26
      GO TOP
	      WHILE .NOT. EOF()
	         SYSREFRESH()
	         PRO := PRODUTO
         COP := QUANTIDADE
	         XCO := 0
	         WHILE XCO < COP
	            SYSREFRESH()
	            SELE 4
            INCREG2()
            REPL PRODUTO WITH PRO
	           /*
           UNLOCK
           COMMIT
           */
	            XCO := XCO + 1
         ENDDO
	         SELE 26
         SKIP
	         // UNLOCK
	      ENDDO
	      // RECOMENDAVEL AQUI
      COMMIT
      UNLOCK
	      //**************************************
	      LN   := 1.52
      NETI := 0
      XCO  := 0
	      SELE 4
      GO TOP
	      WHILE .NOT. EOF()
	         SYSREFRESH()
	         IF NETI = 10
            NETI := 0
            LN   := 1.52
            XCO  := 0
            ENDPAGE
            PAGE
         ENDIF
	         PRO1 := PRODUTO
         //************************ PEGA O 1º PRODUTO
         SELE 11
         SET ORDER TO 1
         SEEK STR( PRO1, 13 )
	         DPRO1 := DESCRICAO
         PRE1  := PRECO
         VIS1  := PREVIS
         PER1  := ( ( PRE1 * 100 )/VIS1 ) - 100
	         //************************ PEGA O 2º PRODUTO SE TIVER
         SELE 4
         SKIP
	         // UNLOCK
	         IF .NOT. EOF()
            PRO2 := PRODUTO
	            SELE 11
            SET ORDER TO 1
            SEEK STR( PRO2, 13 )
	            DPRO2 := DESCRICAO
            PRE2  := PRECO
            VIS2  := PREVIS
            PER2  := ( ( PRE2 * 100 )/VIS2 ) - 100
         ELSE
            PRO2  := 0
            PRE2  := 0
         ENDIF
	         //************************ PEGA O 3º PRODUTO SE TIVER
         SELE 4
         SKIP
	         // UNLOCK
	         IF .NOT. EOF()
            PRO3 := PRODUTO
	            SELE 11
            SET ORDER TO 1
            SEEK STR( PRO3, 13 )
	            DPRO3 := DESCRICAO
            PRE3  := PRECO
            VIS3  := PREVIS
            PER3  := ( ( PRE3 * 100 )/VIS3 ) - 100
         ELSE
            PRO3  := 0
            PRE3  := 0
         ENDIF
	         IF IMP = 1
	         ELSE
	            oPrn:CMSay( LN, 2, " " + STRZERO( PRO1,13 ) + IIF( PRO2 <> 0,SPACE(13 ) + STRZERO(PRO2,13 ),"" ) + IIF( PRO3 <> 0,SPACE(14 ) + STRZERO(PRO3,13 ),"" ), OFNT2 )
            //           IF XCO = 0             // Na Primeira estiqueta tem que pular mais (Não sei Pq)
            //              LN := LN + 0.7
            //           ELSE
            LN := LN + 0.4
            //           ENDIF
            XCO := 1
            oPrn:CMSay( LN, 0.6, DPRO1, OFNT6 )
            IF PRO2 <> 0
               oPrn:CMSay( LN, 7.4, DPRO2, OFNT6 )
            ENDIF
            IF PRO3 <> 0
               oPrn:CMSay( LN, 14.0, DPRO3, OFNT6 )
            ENDIF
	            LN = LN + 0.4
            oPrn:CMSay( LN, 0, "   A PRAZO   |   A VISTA      " + IIF( PRO2 <> 0,"A PRAZO   |   A VISTA    ","" ) + IIF( PRO3 <> 0,"A PRAZO   |   A VISTA","" ), OFNT7 )
            LN = LN + 0.4
            oPrn:CMSay( LN, 0, " R$" + TRANS( PRE1,"@E 99,999.99" )  + "   R$" + TRANS( VIS1,"@E 99,999.99" ) + ;
               IIF( PRO2 <> 0, "    R$" + TRANS( PRE2,"@E 99,999.99" )  + "   R$" + TRANS( VIS2,"@E 99,999.99" ), "" ) + ;
               IIF( PRO3 <> 0, "  R$" + TRANS( PRE3,"@E 99,999.99" )  + "   R$" + TRANS( VIS3,"@E 99,999.99" ), "" ), OFNT9 )
	            oPrn:CMSay( LN, 0, SPACE( 13 ) + "|" + IIF( PRO2 <> 0,SPACE(26 ) + "|","" ) + IIF( PRO3 <> 0,SPACE(24 ) + "|","" ), OFNT7 )
	            LN = LN + 0.4
	            oPrn:CMSay( LN, 0.6, "1X R$" + TRANS( PRE1,"@E 99,999.99" ) + " (30 Dias)" , OFNT8 )
            IF PRO2 <> 0
               oPrn:CMSay( LN, 7.6, "1X R$" + TRANS( PRE2,"@E 99,999.99" ) + " (30 Dias)", OFNT8 )
            ENDIF
            IF PRO3 <> 0
               oPrn:CMSay( LN, 14.2, "1X R$" + TRANS( PRE3,"@E 99,999.99" ) + " (30 Dias)", OFNT8 )
            ENDIF
            oPrn:CMSay( LN, 0, SPACE( 13 ) + "|" + IIF( PRO2 <> 0,SPACE(26 ) + "|","" ) + IIF( PRO3 <> 0,SPACE(24 ) + "|","" ), OFNT7 )
	            LN = LN + 0.4
	            oPrn:CMSay( LN, 0.6, "T R$" + TRANS( PRE1,"@E 99,999.99" ) + " %Ac. " + STR( PER1,5,2 ), OFNT8 )
            IF PRO2 <> 0
               oPrn:CMSay( LN, 7.6, "T R$" + TRANS( PRE2,"@E 99,999.99" ) + " %Ac. " + STR( PER2,5,2 ), OFNT8 )
            ENDIF
            IF PRO3 <> 0
               oPrn:CMSay( LN, 14.2, "T R$" + TRANS( PRE3,"@E 99,999.99" ) + " %Ac. " + STR( PER3,5,2 ), OFNT8 )
            ENDIF
            oPrn:CMSay( LN, 0, SPACE( 13 ) + "|" + IIF( PRO2 <> 0,SPACE(26 ) + "|","" ) + IIF( PRO3 <> 0,SPACE(24 ) + "|","" ), OFNT7 )
	            LN = LN + 0.55
            //           oPrn:CMSay(LN,0,IIF(STR(PRE1,10,2) > STR(100,10,2),"2X R$" + TRANS(PRE1/2,"@E 999.99") + " (30/60 Dias)","1X R$" + TRANS(PRE1,"@E 999.99") + " (30 Dias)") +;
            //           IIF(PRO2<>0,SPACE(38)+"1X R$" + TRANS(PRE2,"@E 999.99") + " (30 Dias)",""),OFNT4)
            //           IIF(PRO2<>0,SPACE(38)+IIF(STR(PRE2,10,2) > STR(100,10,2),"2X R$" + TRANS(PRE2/2,"@E 999.99") + " (30/60 Dias)","1X R$" + TRANS(PRE2,"@E 999.99") + " (30 Dias)"),""),OFNT4)
            //           oPrn:CMSay(LN,0,IIF(STR(PRE1,10,2) > STR(100,10,2),"2X R$" + TRANS(PRE1/2,"@E 999.99") + " (30/60 Dias)","1X R$" + TRANS(PRE1,"@E 999.99") + " (30 Dias)") +;
         ENDIF
	         NETI := NETI + 1
	         SELE 4
	         IF .NOT. EOF()
            SKIP
	            // UNLOCK  // ???
	         ENDIF
      ENDDO
      IF IMP = 1
	         //        OPRN:LZERABUFFER:=.F. // PULAR PÁGINA=.F. NÃO PULAR=.T.
	         OPRN:ENDPAGE()
         OPRN:END()
      ELSE
         //        IF NETI <> 10
         ENDPAGE
         //        ENDIF
         ENDPRINT
      ENDIF
   ENDIF
	   IF VRAD2 = 4   // CINCO COL.
      SELE 4
      ZAP
	      //************************** Adiciona os produtos na Matriz
      SELE 26
      GO TOP
	      WHILE .NOT. EOF()
	         SYSREFRESH()
	         PRO := PRODUTO
         COP := QUANTIDADE
	         XCO := 0
	         WHILE XCO < COP
	            SYSREFRESH()
	            SELE 4
            INCREG2()
            REPL PRODUTO WITH PRO
	           /*
           UNLOCK
           COMMIT
           */
	            XCO := XCO + 1
         ENDDO
	         SELE 26
         SKIP
	         // UNLOCK //??? VICIO OCULTO?
	      ENDDO
	      // RECOMENDAVEL
      COMMIT  // 1
      UNLOCK  // 2
	      //**************************************
	      LN   := 0
      NETI := 0
      XCO  := 0
	      SELE 4
      GO TOP
	      WHILE .NOT. EOF()
	         SYSREFRESH()
	         // MAUDRUIDAS:
         STORE 0 TO PRO2, PRO3, PRO4, PRO5 // MELHOR POR NO INICIO DO MODULO
                                           // PODE TRAVAR O PROGRAMA.
                                           // ISSO PODE SER REPITIR MILHOES DE X.
	         PRO1 := PRODUTO
	         SELE 11
         SET ORDER TO 1
         SEEK STR( PRO1, 13 )
	         DPRO1 := DESCRICAO
         PRE1  := PRECO
         VIS1  := PREVIS
         PER1  := ( ( PRE1 * 100 )/VIS1 ) - 100
	         SELE 4
         SKIP
	         // UNLOCK //??
	         IF .NOT. EOF()
            PRO2 := PRODUTO
	            SELE 11
            SET ORDER TO 1
            SEEK STR( PRO2, 13 )
	            DPRO2 := DESCRICAO
            PRE2  := PRECO
            VIS2  := PREVIS
            PER2  := ( ( PRE2 * 100 )/VIS2 ) - 100
	            SELE 4
            SKIP
	            // UNLOCK
	            IF .NOT. EOF()
               PRO3 := PRODUTO
	               SELE 11
               SET ORDER TO 1
               SEEK STR( PRO3, 13 )
	               DPRO3 := DESCRICAO
               PRE3  := PRECO
               VIS3  := PREVIS
               PER3  := ( ( PRE3 * 100 )/VIS2 ) - 100
	               SELE 4
               SKIP
	               // UNLOCK  /// POHHHHAA.... KKKKKK
	               IF .NOT. EOF()
                  PRO4 := PRODUTO
	                  SELE 11
                  SET ORDER TO 1
                  SEEK STR( PRO4, 13 )
	                  DPRO4 := DESCRICAO
                  PRE4  := PRECO
                  VIS4  := PREVIS
                  PER4  := ( ( PRE4 * 100 )/VIS2 ) - 100
	                  SELE 4
                  SKIP
	                  // UNLOCK  //???
	                  IF .NOT. EOF()
                     PRO5 := PRODUTO
	                     SELE 11
                     SET ORDER TO 1
                     SEEK STR( PRO5, 13 )
	                     DPRO5 := DESCRICAO
                     PRE5  := PRECO
                     VIS5  := PREVIS
                     PER5  := ( ( PRE5 * 100 )/VIS2 ) - 100
                  ELSE
                     PRO5 := 0
                     PRE5 := 0
                  ENDIF
               ELSE
                  PRO4 := 0
                  PRE4 := 0
               ENDIF
            ELSE
               PRO3 := 0
               PRE3 := 0
            ENDIF
         ELSE
            PRO2 := 0
            PRE2 := 0
         ENDIF
	         IF IMP = 1
            oPrn:Say( LN, 0, STRZERO( PRO1,13 ) + " " + ;
               IIF( PRO2 <> 0, STRZERO( PRO2,13 ), "" ) + " " + ;
               IIF( PRO3 <> 0, STRZERO( PRO3,13 ), "" ) + " " + ;
               IIF( PRO4 <> 0, STRZERO( PRO4,13 ), "" ) + " " + ;
               IIF( PRO5 <> 0, STRZERO( PRO5,13 ), "" ) )
            LN := LN + 1
            oPrn:Say( LN, 0, "R$" + TRANS( PRE1,"@E 9,999.99" ) + ;
               IIF( PRO2 <> 0, "    R$" + TRANS( PRE2,"@E 9,999.99" ), "" ) + ;
               IIF( PRO3 <> 0, "    R$" + TRANS( PRE3,"@E 9,999.99" ), "" ) + ;
               IIF( PRO4 <> 0, "    R$" + TRANS( PRE4,"@E 9,999.99" ), "" ) + ;
               IIF( PRO5 <> 0, "    R$" + TRANS( PRE5,"@E 9,999.99" ), "" ) )
            LN := LN + 2
         ELSE
            oPrn:CMSay( LN, 0, STRZERO( PRO1,13 )  + " " + ;
               IIF( PRO2 <> 0, STRZERO( PRO2,13 ), "" ) + " " + ;
               IIF( PRO3 <> 0, STRZERO( PRO3,13 ), "" ) + " " + ;
               IIF( PRO4 <> 0, STRZERO( PRO4,13 ), "" ) + " " + ;
               IIF( PRO5 <> 0, STRZERO( PRO5,13 ), "" ), OFNT2 )
            IF XCO = 0             // Na Primeira estiqueta tem que pular mais (Não sei Pq)
               LN := LN + 0.7
            ELSE
               LN := LN + 0.4
            ENDIF
            XCO := 1
            oPrn:CMSay( LN, 0, "R$" + TRANS( PRE1,"@E 999.99" ) + ;
               IIF( PRO2 <> 0, "      R$" + TRANS( PRE2,"@E 999.99" ), "" ) + ;
               IIF( PRO3 <> 0, "      R$" + TRANS( PRE3,"@E 999.99" ), "" ) + ;
               IIF( PRO4 <> 0, "      R$" + TRANS( PRE4,"@E 999.99" ), "" ) + ;
               IIF( PRO5 <> 0, "      R$" + TRANS( PRE5,"@E 999.99" ), "" ), OFNT1 )
            LN := LN + 0.7
         ENDIF
         NETI := NETI + 1
         IF IMP = 1
            //           NETI := 0
            //           LN   := 0
            //           OPRN:ENDPAGE()
         ELSE
            IF NETI = 9
               NETI := 0
               LN   := 0
               XCO  := 0
               ENDPAGE
               PAGE
            ENDIF
         ENDIF
	         SELE 4
	         IF .NOT. EOF()
	            SKIP
	            // UNLOCK //???
	         ENDIF
      ENDDO
      IF IMP = 1
	         // OPRN:LZERABUFFER := .F. // PULAR PÁGINA=.F. NÃO PULAR=.T.
	         OPRN:ENDPAGE()
         OPRN:END()
      ELSE
         IF NETI <> 9
            ENDPAGE
         ENDIF
         ENDPRINT
      ENDIF
   ENDIF
	RETURN NIL
	// FIM

Abs. Se precisar, avise que eu te envio no seu email, basta dizer em cual, ok?

Regards, saludos.

Link to comment
Share on other sites

Maudruidas, se voce tiver impressora na UBS, por favor teste para mim, e retorne se esta funçao esta funcionando, PLS.

//----------------------------------------------------------------------------//
// Funcao    : ImpSpool( cFileTxt, cPorta, lErase )
// Autor     : Ednaldo Rolim (edrol@pop.com.br)
// Descricao : Envia um arquivo TXT criado pela TDosPrn para uma 
//             porta de Impressora.
//----------------------------------------------------------------------------//
FUNCTION ImpSpool( cFileTxt, cPorta, lErase )
	    LOCAL CPRINTER
	    // para capturar antes da impressão
    // cPorta := PrnGetPorta()
    // WinExec( cPorta )
    // depois da impressão
    // WinExex( "Net Use Lpt1: \Delete" )
    // Ficou mais facil e simples do que criar as portas na Classe TDosPrn
    // cPorta := If( cPorta == nil, Alltrim( PrnGetPort() ), cPorta ) ; lErase := If( lErase == nil, .T., lErase );
	    // cPorta := PrnGetPort()
    Default cPorta := Alltrim( PrnGetPort() ), lErase:= .t.
	    cPrinter := PrinterPortToName( cPorta )
	    IF EMPTY( cPrinter )
	       cPrinter := PrinterPortToName( "USB002" )
	       IF EMPTY(cPrinter)
	          cPrinter := PrinterPortToName( "USB001" )
	          IF EMPTY(cPrinter)
	             cPrinter := PrinterPortToName( "USB003" )
	          ENDIF
	       ENDIF
	    ENDIF
    
    IF .NOT. FILE( cFileTxt )
	       MsgInfo( OemToAnsi( "NÇO ACHEI O ARQUIVO MODO TEXTO PARA IMPRIMIR NA MATRICIAL" ), ;
                OemToAnsi( "NÇO ACHEI O ARQUIVO MODO TEXTO PARA IMPRIMIR NA MATRICIAL" ) )
	       RETURN( .F. )
	    ENDIF
	    IF .NOT. EMPTY( cPrinter )  // TEM USB
	       PrintFileRaw( cPrinter, TrueName( "CUPOM.TXT" ), "Impressão de Vendas" )
	    ELSEIF LEN( cPorta ) <= 5 .and. Left( Upper(cPorta), 4 ) = "LPT1"
	       //--- Spool Local - Matricial em LPT1
       cPorta:= "PRN"
	       WAITRUN("COMMAND.COM /C COPY /B " + cFileTxt + " " + cPorta, 0 )
	    ELSE
	       //--- Spool Remoto - Matricial em LPT1
       WAITRUN("COMMAND.COM /C COPY /B " + cFileTxt + " " + cPorta, 0 )
	    ENDIF
	    IF lErase // Vem .T. da tela de vendas
       FERASE( cFileTxt )
    ENDIF
	RETURN( .T. )

gracias, thanks

Regards, saludos.

Link to comment
Share on other sites

Bom dia, minha impressora matricial não é USB, é paralelo.

Continua dando o mesmo erro, observei que dentro desta Classe (Tdosprn.prg) não existe esta opção 

OPRN:LZERABUFFER

será que nesta versão fivewin está faltando eu compilar algo? Veja minha compilação:

@ECHO OFF
CLS
ECHO ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
ECHO ³ FiveWin for xHarbour 21.02 - Feb. 2021          Harbour development power  ³Ü
ECHO ³ (c) FiveTech 1993-2021 for Microsoft Windows 9X/NT/200X/ME/XP/Vista/7/8/10 ³Û
ECHO ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙÛ
ECHO ÿ ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß

                                                                       
ECHO Compiling...

SET GT=GTGUI
SET HDIR=C:\XHARBOUR21
SET FWH=C:\FWH21
SET BCDIR=C:\BCC73

@If Exist SiscPF.exe Del SiscPF.exe
@If Exist *.Bak      Del *.Bak
@If Exist *.Obj      Del *.Obj
@If Exist *.Log      Del *.Log
@If Exist *.Map      Del *.Map
@If Exist *.PPO      Del *.Ppo
@If Exist *.TDS      Del *.TDS
@If Exist *.Bc       Del *.bc
@If Exist *.C        Del *.C

%hdir%\bin\harbour SiscPF   /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Entrada  /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Funcoes  /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Bematech /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Reorg    /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Config   /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Sobre    /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Cademp   /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour CADGRU   /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Relgru   /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Codbar   /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Cadsub   /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Relsub   /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Cadpro   /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Relpro   /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Etipro   /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Cadcli   /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Relcli   /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Placli   /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Relani   /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Carani   /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Cadfor   /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Relfor   /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Cadusu   /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Relusu   /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Pdv      /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Senusu   /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Vendas   /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Cadest   /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Cadcid   /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Relcid   /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Cadpra   /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Relpra   /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Extrato  /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Relbal   /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Relest   /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Relpat   /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Venmen   /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Balvpro  /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Relmais  /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Baldia   /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Balmes   /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Relrec   /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Atrasin  /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Atrana   /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Balcon   /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Calcpro  /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Atusal   /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Tabela   /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Cadnot   /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Cadcfo   /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Relcfo   /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Compras  /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Relnot   /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Emicom   /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Relacom  /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Carpag   /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Compagsi /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Pagfre   /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Conpag   /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Conpagan /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Relbxpg  /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Atrap2   /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Orca     /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Emiorc   /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Relorc   /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Caddav   /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Emidav   /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Emicdav  /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Reldav   /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Impdav   /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Cadche   /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Cadban   /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Relban   /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Relche   /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Cadibpt  /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Relibpt  /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Eminfe4  /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Importa  /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Gerar    /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Cadcai   /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Cadcon   /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Relcoc   /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Cadcons  /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Relcos   /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Relcai   /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Relsin   /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Relcai2  /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Relcai3  /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Relcai5  /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Cadord   /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Cadtab   /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Reltab   /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Cadtabpr /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Relcup   /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Gerbal   /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Relpatv  /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Senger   /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Senmod   /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Relvpro  /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Altppro  /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Relmin   /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Financ   /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Confven  /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Relcsin  /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Relcana  /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Conspre  /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Emidav2  /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Promono  /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Proncm   /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Calcus   /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Cotacao  /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Bxcli    /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Recibo   /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Bxfor    /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Cadcta   /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour Relcta   /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log

%hdir%\bin\harbour Code128  /n /i%fwh%\include;%hdir%\include   /p %2 %3  > clip.log

%hdir%\bin\harbour ./include/Timprime /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log
%hdir%\bin\harbour ./include/Utilprn  /n /i%fwh%\include;%hdir%\include /p %2 %3 > clip.log


@type clip.log
IF ERRORLEVEL 1 PAUSE
IF ERRORLEVEL 1 GOTO EXIT

%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include SiscPF.C   >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Entrada.C  >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Funcoes.C  >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Bematech.C >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Reorg.C    >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Config.C   >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Sobre.C    >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Cademp.C   >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Cadgru.C   >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Relgru.C   >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Codbar.C   >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Cadsub.C   >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Relsub.C   >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Cadpro.C   >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Relpro.C   >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Etipro.C   >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Cadcli.C   >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Relcli.C   >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Placli.C   >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Relani.C   >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Carani.C   >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Cadfor.C   >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Relfor.C   >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Cadusu.C   >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Relusu.C   >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Pdv.C      >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Senusu.C   >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Vendas.C   >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Cadest.C   >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Cadcid.C   >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Relcid.C   >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Cadpra.C   >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Relpra.C   >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Extrato.C  >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Relbal.C   >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Relest.C   >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Relpat.C   >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Venmen.C   >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Balvpro.C  >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Relmais.C  >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Baldia.C   >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Balmes.C   >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Relrec.C   >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Atrasin.C  >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Atrana.C   >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Balcon.C   >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Calcpro.C  >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Atusal.C   >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Tabela.C   >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Cadnot.C   >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Cadcfo.C   >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Relcfo.C   >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Compras.C  >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Relnot.C   >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Emicom.C   >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Relacom.C  >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Carpag.C   >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Compagsi.C >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Pagfre.C   >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Conpag.C   >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Conpagan.C >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Relbxpg.C  >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Atrap2.C   >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Orca.C     >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Emiorc.C   >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Relorc.C   >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Caddav.C   >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Emidav.C   >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Emicdav.C  >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Reldav.C   >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Impdav.C   >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Cadche.C   >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Cadban.C   >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Relban.C   >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Relche.C   >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Cadibpt.C  >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Relibpt.C  >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Eminfe4.C  >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Importa.C  >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Gerar.C    >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Cadcai.C   >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Cadcon.C   >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Relcoc.C   >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Cadcons.C  >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Relcos.C   >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Relcai.C   >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Relsin.C   >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Relcai2.C  >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Relcai3.C  >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Relcai5.C  >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Cadord.C   >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Cadtab.C   >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Reltab.C   >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Cadtabpr.C >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Relcup.C   >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Gerbal.C   >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Relpatv.C  >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Senger.C   >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Senmod.C   >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Relvpro.C  >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Altppro.C  >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Relmin.C   >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Financ.C   >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Confven.C  >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Relcsin.C  >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Relcana.C  >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Conspre.C  >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Emidav2.C  >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Promono.C  >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Proncm.C   >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Calcus.C   >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Cotacao.C  >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Bxcli.C    >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Recibo.C   >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Bxfor.C    >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Cadcta.C   >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Relcta.C   >> clip.log

%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Code128.C  >> clip.log

%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Timprime.C >> clip.log
%bcdir%\bin\bcc32 -O2 -M -c -D__HARBOUR__ -I%hdir%\include Utilprn.C  >> clip.log


echo -O2 -eSiscPF.exe -I%hdir%\include SiscPF.c > b32.bc

%bcdir%\bin\bcc32 -M -c -v @b32.bc
:ENDCOMPILE


echo c0w32.obj    + >  b32.bc
echo SiscPF.obj   + >> b32.bc
echo Entrada.obj  + >> b32.bc
echo Funcoes.obj  + >> b32.bc
echo Bematech.obj + >> b32.bc
echo Reorg.obj    + >> b32.bc
echo Config.obj   + >> b32.bc
echo Sobre.obj    + >> b32.bc
echo Cademp.Obj   + >> b32.bc
echo CADGRU.Obj   + >> b32.bc
echo Relgru.Obj   + >> b32.bc
echo Codbar.Obj   + >> b32.bc
echo Cadsub.Obj   + >> b32.bc
echo Relsub.Obj   + >> b32.bc
echo Cadpro.Obj   + >> b32.bc
echo Relpro.Obj   + >> b32.bc
echo Etipro.Obj   + >> b32.bc
echo Cadcli.Obj   + >> b32.bc
echo Relcli.Obj   + >> b32.bc
echo Placli.Obj   + >> b32.bc
echo Carani.Obj   + >> b32.bc
echo Relani.Obj   + >> b32.bc
echo Cadfor.Obj   + >> b32.bc
echo Relfor.Obj   + >> b32.bc
echo Cadusu.Obj   + >> b32.bc
echo Relusu.Obj   + >> b32.bc
echo Pdv.Obj      + >> b32.bc
echo Senusu.Obj   + >> b32.bc
echo Vendas.Obj   + >> b32.bc
echo Cadest.Obj   + >> b32.bc
echo Cadcid.Obj   + >> b32.bc
echo Relcid.Obj   + >> b32.bc
echo Cadpra.Obj   + >> b32.bc
echo Relpra.Obj   + >> b32.bc
echo Extrato.Obj  + >> b32.bc
echo Relbal.Obj   + >> b32.bc
echo Relest.Obj   + >> b32.bc
echo Relpat.Obj   + >> b32.bc
echo Venmen.Obj   + >> b32.bc
echo Balvpro.Obj  + >> b32.bc
echo Relmais.Obj  + >> b32.bc
echo Baldia.Obj   + >> b32.bc
echo Balmes.Obj   + >> b32.bc
echo Relrec.Obj   + >> b32.bc
echo Atrasin.Obj  + >> b32.bc
echo Atrana.Obj   + >> b32.bc
echo Balcon.Obj   + >> b32.bc
echo Calcpro.Obj  + >> b32.bc
echo Atusal.Obj   + >> b32.bc
echo Tabela.Obj   + >> b32.bc
echo Cadnot.Obj   + >> b32.bc
echo Cadcfo.Obj   + >> b32.bc
echo Relcfo.Obj   + >> b32.bc
echo Compras.Obj  + >> b32.bc
echo Relnot.Obj   + >> b32.bc
echo Emicom.Obj   + >> b32.bc
echo Relacom.Obj  + >> b32.bc
echo Carpag.Obj   + >> b32.bc
echo Compagsi.Obj + >> b32.bc
echo Pagfre.Obj   + >> b32.bc
echo Conpag.Obj   + >> b32.bc
echo Conpagan.Obj + >> b32.bc
echo Relbxpg.Obj  + >> b32.bc
echo Atrap2.Obj   + >> b32.bc
echo Orca.Obj     + >> b32.bc
echo Emiorc.Obj   + >> b32.bc
echo Relorc.Obj   + >> b32.bc
echo Caddav.Obj   + >> b32.bc
echo Emidav.Obj   + >> b32.bc
echo Emicdav.Obj  + >> b32.bc
echo Reldav.Obj   + >> b32.bc
echo Impdav.Obj   + >> b32.bc
echo Cadche.Obj   + >> b32.bc
echo Cadban.Obj   + >> b32.bc
echo Relban.Obj   + >> b32.bc
echo Relche.Obj   + >> b32.bc
echo Cadibpt.Obj  + >> b32.bc
echo Relibpt.Obj  + >> b32.bc
echo Eminfe4.Obj  + >> b32.bc
echo Importa.Obj  + >> b32.bc
echo Gerar.Obj    + >> b32.bc
echo Cadcai.Obj   + >> b32.bc
echo Cadcon.Obj   + >> b32.bc
echo Relcoc.Obj   + >> b32.bc
echo Cadcons.Obj  + >> b32.bc
echo Relcos.Obj   + >> b32.bc
echo Relcai.Obj   + >> b32.bc
echo Relsin.Obj   + >> b32.bc
echo Relcai2.Obj  + >> b32.bc
echo Relcai3.Obj  + >> b32.bc
echo Relcai5.Obj  + >> b32.bc
echo Cadord.Obj   + >> b32.bc
echo Cadtab.Obj   + >> b32.bc
echo Reltab.Obj   + >> b32.bc
echo Cadtabpr.Obj + >> b32.bc
echo Relcup.Obj   + >> b32.bc
echo Gerbal.Obj   + >> b32.bc
echo Relpatv.Obj  + >> b32.bc
echo Senger.Obj   + >> b32.bc
echo Senmod.Obj   + >> b32.bc
echo Relvpro.Obj  + >> b32.bc
echo Altppro.Obj  + >> b32.bc
echo Relmin.Obj   + >> b32.bc
echo Financ.Obj   + >> b32.bc
echo Confven.Obj  + >> b32.bc
echo Relcsin.Obj  + >> b32.bc
echo Relcana.Obj  + >> b32.bc
echo Conspre.Obj  + >> b32.bc
echo Emidav2.Obj  + >> b32.bc
echo Promono.Obj  + >> b32.bc
echo Proncm.Obj   + >> b32.bc
echo Calcus.Obj   + >> b32.bc
echo Cotacao.Obj  + >> b32.bc
echo Bxcli.Obj    + >> b32.bc
echo Recibo.Obj   + >> b32.bc
echo Bxfor.Obj    + >> b32.bc
echo Cadcta.Obj   + >> b32.bc
echo Relcta.Obj   + >> b32.bc

echo Code128.Obj  + >> b32.bc

echo Utilprn.Obj  + >> b32.bc
echo Timprime.Obj + >> b32.bc

echo SiscPF.obj >> b32.bc
echo SiscPF.exe >> b32.bc
echo SiscPF.map >> b32.bc

echo %fwh%\lib\Fivehx.lib %fwh%\lib\FiveHC.lib %fwh%\lib\libmysql.lib  + >> b32.bc
echo .\include\CODBAR.lib     + >> b32.bc
echo %fwh%\lib\pgsql.lib      + >> b32.bc
echo %fwh%\lib\libpq.lib      + >> b32.bc

echo %hdir%\lib\hbhpdf.lib   + >> b32.bc
echo %hdir%\lib\libharu.lib  + >> b32.bc
echo %hdir%\lib\png.lib      + >> b32.bc
echo %hdir%\lib\rtl.lib       + >> b32.bc
echo %hdir%\lib\vm.lib        + >> b32.bc
rem echo %hdirl%\%GT%.lib     + >> b32.bc
echo %hdir%\lib\gtgui.lib     + >> b32.bc
echo %hdir%\lib\lang.lib      + >> b32.bc
echo %hdir%\lib\macro.lib     + >> b32.bc
echo %hdir%\lib\rdd.lib       + >> b32.bc
echo %hdir%\lib\dbfntx.lib    + >> b32.bc
echo %hdir%\lib\dbfcdx.lib    + >> b32.bc
echo %hdir%\lib\dbffpt.lib    + >> b32.bc
echo %hdir%\lib\hbsix.lib     + >> b32.bc
echo %hdir%\lib\debug.lib     + >> b32.bc
echo %hdir%\lib\common.lib    + >> b32.bc
echo %hdir%\lib\codepage.lib  + >> b32.bc
echo %hdir%\lib\pp.lib        + >> b32.bc
echo %hdir%\lib\pcrepos.lib   + >> b32.bc
echo %hdir%\lib\ct.lib        + >> b32.bc
echo %hdir%\lib\zlib.lib      + >> b32.bc
echo %hdir%\lib\hbzip.lib     + >> b32.bc
echo %hdir%\lib\libmisc.lib   + >> b32.bc
echo %hdir%\lib\tip.lib       + >> b32.bc
echo %hdir%\lib\hbzebra.lib  + >> b32.bc
echo %hdir%\lib\png.lib       + >> b32.bc

echo %bcdir%\lib\cw32.lib           + >> b32.bc
echo %bcdir%\lib\import32.lib       + >> b32.bc
echo %bcdir%\lib\uuid.lib           + >> b32.bc
echo %bcdir%\lib\ws2_32.lib         + >> b32.bc
echo %bcdir%\lib\psdk\odbc32.lib    + >> b32.bc
echo %bcdir%\lib\psdk\rasapi32.lib  + >> b32.bc
echo %bcdir%\lib\psdk\nddeapi.lib   + >> b32.bc
echo %bcdir%\lib\psdk\msimg32.lib   + >> b32.bc
echo %bcdir%\lib\psdk\psapi.lib     + >> b32.bc
echo %bcdir%\lib\psdk\gdiplus.lib   + >> b32.bc
echo %bcdir%\lib\psdk\iphlpapi.lib  + >> b32.bc
echo %bcdir%\lib\psdk\shell32.lib,  >> b32.bc

echo Sisc20n.res >> b32.bc

%bcdir%\bin\ilink32 -Gn -aa -Tpe -s @b32.bc

IF ERRORLEVEL 1 GOTO LINKERROR
ECHO * Application successfully built

SiscPF
GOTO EXIT
ECHO

rem delete temporary files
@del SiscPF.c

:LINKERROR
ECHO * There are errors
GOTO EXIT

:SINTAX
ECHO    SYNTAX: Build [Program]     {-- No especifiques la extensi¢n PRG
ECHO                                {-- Don't specify .PRG extension
GOTO EXIT

:NOEXIST
ECHO The specified PRG SiscPF does not exist

:EXIT
 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...