evertonlb Posted October 10, 2018 Report Share Posted October 10, 2018 Boa noite amigos. Tenha a impressão de etiquetas na Argox (vou colocar o código abaixo). Mas estou com um probleminha na impressão, não chega a impedir o uso da etiqueta, mas o cliente não quer que aconteça mais isso. O que está acontecendo é que no início da ultima linha que mando imprimir aparece uma letra "C"... Aparece a letra "C" e logo após imprime os dados que enviei.. mas só na última linha, nas anteriores não.. Alguém tem alguma ideia da solução? Local cLetra, nHand, cLote Local cArqImp := "Argox.TXT" Local cPrinter := PrinterPortToName( "Argox214" ) * nHand:=fCreate(cArqImp) * * Controle de cabeçalho da impressora * fWrite(nHand, "L" + Chr(13)+Chr(10) ) fWrite(nHand, "m" + Chr(13)+Chr(10) ) fWrite(nHand, "e" + Chr(13)+Chr(10) ) fWrite(nHand, "K1701"+ Chr(13)+Chr(10) ) fWrite(nHand, "PC" + Chr(13)+Chr(10) ) fWrite(nHand, "D11" + Chr(13)+Chr(10) ) fWrite(nHand, "H14" + Chr(13)+Chr(10) ) fWrite(nHand, "z" + Chr(13)+Chr(10) ) * * Montagem da Etiqueta 01 * * Esquema basico de enderecamento de etiquetas * na ALLEGRO DATAMAX. * * 1 1 1 1 000 0005 0130 EVERTON LUIS BATTISTON * ÄÂÄÂÄÂÄÂ ÄÂÄ ÄÄÂÄ ÄÄÂÄ ÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄ * ³ ³ ³ ³ ³ ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄ Texto a ser impresso * ³ ³ ³ ³ ³ ³ ³ * ³ ³ ³ ³ ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Posicao no eixo "X" * ³ ³ ³ ³ ³ ³ * ³ ³ ³ ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Posicao no eixo "Y" * ³ ³ ³ ³ ³ * ³ ³ ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Altura do codigo de barra 000 altura padrao * ³ ³ ³ ³ * ³ ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Largura da barra fina * ³ ³ ³ * ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Largura da barra larga * ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Tipo de codigo de barra * ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Orientacao anti-oraria: 1 - 0§, 2 - 240§, 3 - 180§, 4 - 90§ * * * Montagem da Etiqueta 01 * if !empty( Cod1 ) fWrite(nHand,"130002002400160" + "LH Laser" + CHR(13) + CHR(10) ) fWrite(nHand,"1F2205001400080" + Cod1 + CHR(13) + CHR(10) ) fWrite(nHand,"121100001000050" + Des1 + CHR(13) + CHR(10) ) fWrite(nHand,"190000200200050" + "CNPJ.:" + CNP1 + CHR(13) + CHR(10) ) endif * ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ * * SEGUNDA ETIQUETA * * ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ if !empty( Cod2 ) fWrite(nHand,"130002002400580" + "LH Laser" + CHR(13) + CHR(10) ) fWrite(nHand,"1F2205001400500" + Cod2 + CHR(13) + CHR(10) ) fWrite(nHand,"121100001000470" + Des2 + CHR(13) + CHR(10) ) fWrite(nHand,"190000200200470" + "CNPJ.:" + CNP2 + CHR(13) + CHR(10) ) endif * * Comandos de quantidade e finalização da impressora * fWrite(nHand,"Q"+ strzero( QtdeEtique, 4, 0 ) + Chr(13)+Chr(10) ) fwrite(nHand,"E" + Chr(13)+Chr(10) ) fClose(nHand) * cPrintEt := "Argox214" PrintFileRaw( cPrintEt, cArqImp, "Etiquetas - Estoque" ) * Ta ai.. Obrigado por qualquer dica! Att. Everton Battiston Quote Link to comment Share on other sites More sharing options...
kapiaba Posted October 10, 2018 Report Share Posted October 10, 2018 Veja se ajuda, ahi no Paranáuê do Moro(bleaaaarrrggghhh) kkkkkkkkkkkkkkk [/code] FUNCTION IMPETIQARGOX( lAppend, oDbfEstoque, xop, xgrupo, oDbfEnf ) FIELD COD, DESC, ULTTABA, ULTTAB, TIPO, CODFORN, PROD1, nome, GRUPO, NNF LOCAL XCOPIASI, NHANDLE, XCOR, XTAMA, XPRECO, XARQC, XDESC, xpro, oPrn MEMVAR XCOD, XNCOPIAS PUBLIC XEMPDIR, XF, XDA //-> Para Checar se a Impressora Existe ou Esta Ativa EXTERNAL ISPRINTER IF !ISPRINTER() CHECA_IMP() RETURN NIL ENDIF IF MsgYesNo( "Atenção Por Favor: " + CRLF + ; "Posso Imprimir? " + CRLF + ; "Impressora Já Está Ligada?" + CRLF + ; + CRLF + ; "Por Favor, Verifique Se a " + CRLF + ; "Impressora Já Está Pronta!", ; "Por Favor, Confirme!!!" ) = .F. RETURN NIL ENDIF IF xop = 9 // Cracha operadores * oDbfEstoque ‚ de proposito pois vem com odbfvendedor do operador.prg SELECT( oDbfEstoque:cAlias ) XCOD = "1" + left( COD, 2 ) + DECRYPT( ALLTRIM( ( oDbfEstoque:cAlias )->PROD1 ), "*+-." ) XDESC = NOME xNcopias := 1 ELSEIF xop = 6 // Etiqueta gondula grupo - APOS REAJUSTE DE PRECO SELECT( oDbfEstoque:cAlias ) IF MsgNoYes( oemtoansi( "ATEN€ÇO: ** ETIQUETAS DOS PRODUTOS EM PROMO€ÇO ** " ) + CRLF + ; + CRLF + ; oemtoansi( "Para Imprimir Etiqueta de G“ndula Somente dos Produtos em " ) + CRLF + ; oemtoansi( " Promo‡Æo, escolha a op‡Æo [SIM]" ) + CRLF + ; + CRLF + ; oemtoansi( "Para Imprimir Etiqueta de G“ndula de Grupo ou Fam¡lia dos Produtos," ) + CRLF + ; oemtoansi( " escolha a op‡Æo [NÇO]" ) + CRLF + ; + CRLF + ; + CRLF + ; oemtoansi( "[SIM] -> Imprimir Etiqueta dos Produtos em Promo‡Æo" ) + CRLF + ; oemtoansi( "[NÇO] -> Imprimir Etiqueta do Grupo ou Fam¡lia de Produtos" ), ; "Informação Para o Usuário... " ) = .T. Xpro := 2 ELSE Xpro := 1 ENDIF IF xPro = 1 SET ORDER TO 5 ( oDbfEstoque:cAlias )->( OrdScope( 0, xGrupo ) ) // Inicio do SCOPE. ( oDbfEstoque:cAlias )->( OrdScope( 1, xGrupo ) ) // Fim do SCOPE. GO TOP ELSE SET ORDER TO 1 ( oDbfEstoque:cAlias )->( OrdScope( 0, nil ) ) // Inicio do SCOPE. ( oDbfEstoque:cAlias )->( OrdScope( 1, nil ) ) // Fim do SCOPE. LOCATE FOR VAL( SUBSTR( TIPO, 65, 8 ) ) > 0 .AND. CTOD( SUBS( TIPO, 28, 8 ) ) >= XDA ENDIF XNCOPIAS := 1 ELSEIF xop = 7 // Etiqueta gondula reajuste de pre‡o SELECT( oDbfEstoque:cAlias ) IF MsgNoYes( oemtoansi( "ATEN€ÇO: ** ETIQUETAS DOS PRODUTOS EM PROMO€ÇO ** " ) + CRLF + ; + CRLF + ; oemtoansi( "Para Imprimir Etiqueta de G“ndula Somente dos Produtos em " ) + CRLF + ; oemtoansi( " Promo‡Æo, escolha a op‡Æo [SIM]" ) + CRLF + ; + CRLF + ; oemtoansi( "Para Imprimir Etiqueta de G“ndula de Grupo ou Fam¡lia dos Produtos," ) + CRLF + ; oemtoansi( " escolha a op‡Æo [NÇO]" ) + CRLF + ; + CRLF + ; + CRLF + ; oemtoansi( "[SIM] -> Imprimir Etiqueta dos Produtos em Promo‡Æo" ) + CRLF + ; oemtoansi( "[NÇO] -> Imprimir Etiqueta do Grupo ou Fam¡lia de Produtos" ), ; "Informação Para o Usuário... " ) = .T. Xpro := 2 ELSE Xpro := 1 ENDIF IF xPro = 1 SET ORDER TO 1 SELECT( oDbfEnf:cAlias ) SET ORDER TO 3 SET FILTER TO ( oDbfEnf:cAlias )->NNF = XGRUPO GO TOP ELSE LOCATE FOR VAL( SUBSTR( TIPO, 65, 8 ) ) > 0 .AND. CTOD( SUBS( TIPO, 28, 8 ) ) >= XDA ENDIF XNCOPIAS := 1 ELSE XCOD = COD XDESC = DESC XPRECO = ULTTABA XCOR := LEFT( CODFORN, 8 ) XTAMA := SUBS( CODFORN, 9, 4 ) IF VAL( SUBSTR( TIPO, 65, 8 ) ) > 0 .AND. XDA <= CTOD( SUBS( TIPO, 28, 8 ) ) XPRECO := VAL( SUBSTR( TIPO, 65, 8 ) ) ENDIF xNcopias := 1 ENDIF XARQC = "BARRAS.TXT" XCOPIASI = 0 WHILE ! EOF() SYSREFRESH() IF XOP = 6 .OR. XOP = 7 IF XOP = 7 .AND. XPRO = 1 XCOD := COD SELECT( oDbfEstoque:cAlias ) SEEK xcod ENDIF XCOD = COD XDESC = DESC XPRECO = ULTTABA IF VAL( SUBSTR( TIPO, 65, 8 ) ) > 0 .AND. XDA <= CTOD( SUBS( TIPO, 28, 8 ) ) XPRECO := VAL( SUBSTR( TIPO, 65, 8 ) ) ENDIF IF XOP = 7 .AND. XPRO = 1 SELECT( oDbfEnf:cAlias ) ENDIF ENDIF XCOPIASI = 0 DO WHILE XCOPIASI < XNCOPIAS SYSREFRESH() XARQC = "BARRAS.TXT" IF( NHANDLE := FCREATE( XARQC,0 ) ) == - 1 SINAL( "ARQUIVO DE TRABALHO BARRAS NAO CRIADO !!! !!!" ) ENDIF FWRITE( NHANDLE, "L" + CHR( 13 ) ) FWRITE( NHANDLE, "m" + CHR( 13 ) ) FWRITE( NHANDLE, "e" + CHR( 13 ) ) FWRITE( NHANDLE, "PC" + CHR( 13 ) ) FWRITE( NHANDLE, "D11" + CHR( 13 ) ) FWRITE( NHANDLE, "H14" + CHR( 13 ) ) FWRITE( NHANDLE, "z" + CHR( 13 ) ) IF XOP = 3 // Promocional FWRITE( NHANDLE, "161100002900050 P R O M O € A O" + CHR( 13 ) ) FWRITE( NHANDLE, "161100001700050" + LEFT( XDESC,23 ) + CHR( 13 ) ) FWRITE( NHANDLE, "161100000400500" + LTRIM( TRANSFORM(XPRECO,"@E 999,999.99" ) ) + CHR( 13 ) ) FWRITE( NHANDLE, "111100000050130" + ALLTRIM( XEMPDIR ) + CHR( 13 ) ) IF LEN( ALLTRIM( XCOD ) ) < 13 FWRITE( NHANDLE, "1G2207000300050" + LEFT( XCOD,7 ) + CHR( 13 ) ) ELSE FWRITE( NHANDLE, "1F2207000300050" + LEFT( XCOD,12 ) + CHR( 13 ) ) ENDIF ELSEIF XOP = 1 IF "COMBINACAO E ESTILO" $ XF FWRITE( NHANDLE, "111100005550050" + LEFT( XEMPDIR,35 ) + CHR( 13 ) ) FWRITE( NHANDLE, "111100005550590" + LEFT( XEMPDIR,35 ) + CHR( 13 ) ) FWRITE( NHANDLE, "111100005250050" + LEFT( XDESC,35 ) + CHR( 13 ) ) FWRITE( NHANDLE, "111100005250590" + LEFT( XDESC,35 ) + CHR( 13 ) ) FWRITE( NHANDLE, "111100004950050" + "COR: " + TRIM( XCOR ) + " TAMANHO: " + TRIM( XTAMA ) + CHR( 13 ) ) FWRITE( NHANDLE, "111100004950590" + "COR: " + TRIM( XCOR ) + " TAMAMHO: " + TRIM( XTAMA ) + CHR( 13 ) ) FWRITE( NHANDLE, "111100004550050" + "DATA DA COMPRA: -----/-----/-----" + CHR( 13 ) ) FWRITE( NHANDLE, "111100004550590" + "DATA DA COMPRA: -----/-----/-----" + CHR( 13 ) ) IF LEN( ALLTRIM( XCOD ) ) < 13 FWRITE( NHANDLE, "1G2207003100120" + LEFT( XCOD,7 ) + CHR( 13 ) ) FWRITE( NHANDLE, "1G2207003100650" + LEFT( XCOD,7 ) + CHR( 13 ) ) ELSE FWRITE( NHANDLE, "1F2207003100120" + LEFT( XCOD,12 ) + CHR( 13 ) ) FWRITE( NHANDLE, "1F2207003100650" + LEFT( XCOD,12 ) + CHR( 13 ) ) ENDIF FWRITE( NHANDLE, "111100002400050" + LEFT( XEMPDIR,35 ) + CHR( 13 ) ) FWRITE( NHANDLE, "111100002400590" + LEFT( XEMPDIR,35 ) + CHR( 13 ) ) FWRITE( NHANDLE, "111100002100090" + LEFT( XDESC,35 ) + CHR( 13 ) ) FWRITE( NHANDLE, "111100002100590" + LEFT( XDESC,35 ) + CHR( 13 ) ) FWRITE( NHANDLE, "111100001800070" + "COR: " + TRIM( XCOR ) + " TAMANHO: " + TRIM( XTAMA ) + CHR( 13 ) ) FWRITE( NHANDLE, "111100001800590" + "COR: " + TRIM( XCOR ) + " TAMANHO: " + TRIM( XTAMA ) + CHR( 13 ) ) FWRITE( NHANDLE, "111100001550050" + SPACE( 10 ) + "PRECO: R$ " + LTRIM( TRANSFORM(XPRECO,"@E 999,999.99" ) ) + CHR( 13 ) ) FWRITE( NHANDLE, "111100001550590" + SPACE( 10 ) + "PRECO: R$ " + LTRIM( TRANSFORM(XPRECO,"@E 999,999.99" ) ) + CHR( 13 ) ) IF LEN( ALLTRIM( XCOD ) ) < 13 FWRITE( NHANDLE, "1G2207000350120" + LEFT( XCOD,7 ) + CHR( 13 ) ) FWRITE( NHANDLE, "1G2207000350650" + LEFT( XCOD,7 ) + CHR( 13 ) ) ELSE FWRITE( NHANDLE, "1F2207000350120" + LEFT( XCOD,12 ) + CHR( 13 ) ) FWRITE( NHANDLE, "1F2207000350650" + LEFT( XCOD,12 ) + CHR( 13 ) ) ENDIF ELSE FWRITE( NHANDLE, "111100001950050" + LEFT( XDESC,28 ) + CHR( 13 ) ) FWRITE( NHANDLE, "111100001950401" + LEFT( XDESC,28 ) + CHR( 13 ) ) FWRITE( NHANDLE, "111100001950730" + LEFT( XDESC,28 ) + CHR( 13 ) ) FWRITE( NHANDLE, "131100001400110" + "R$ " + LTRIM( TRANSFORM(XPRECO,"@E 999,999.99" ) ) + CHR( 13 ) ) FWRITE( NHANDLE, "131100001400470" + "R$ " + LTRIM( TRANSFORM(XPRECO,"@E 999,999.99" ) ) + CHR( 13 ) ) FWRITE( NHANDLE, "131100001400800" + "R$ " + LTRIM( TRANSFORM(XPRECO,"@E 999,999.99" ) ) + CHR( 13 ) ) IF LEN( ALLTRIM( XCOD ) ) < 13 FWRITE( NHANDLE, "1G2207000300050" + LEFT( XCOD,7 ) + CHR( 13 ) ) FWRITE( NHANDLE, "1G2207000300401" + LEFT( XCOD,7 ) + CHR( 13 ) ) FWRITE( NHANDLE, "1G2207000300730" + LEFT( XCOD,7 ) + CHR( 13 ) ) ELSE FWRITE( NHANDLE, "1F2207000300050" + LEFT( XCOD,12 ) + CHR( 13 ) ) FWRITE( NHANDLE, "1F2207000300401" + LEFT( XCOD,12 ) + CHR( 13 ) ) FWRITE( NHANDLE, "1F2207000300730" + LEFT( XCOD,12 ) + CHR( 13 ) ) ENDIF ENDIF ELSEIF XOP = 2 .OR. XOP = 6 .OR. xop = 7 // etiqueta DE GONDULA // ok FWRITE(NHANDLE,"161100001700050"+LEFT(XDESC,23)+CHR(13)) // ok FWRITE(NHANDLE,"161100000400700"+LTRIM(TRANSFORM(XPRECO,"@E 999,999.99"))+CHR(13)) // OK 15=TAMANHO da letra // 11=ALTURA da letra FWRITE( NHANDLE, "151100001900050" + LEFT( XDESC,35 ) + CHR( 13 ) ) IF len( alltrim( xdesc ) ) > 16 FWRITE( NHANDLE, "161200000000700" + LTRIM( TRANSFORM(XPRECO,"@E 999,999.99" ) ) + CHR( 13 ) ) ELSE FWRITE( NHANDLE, "161200000250700" + LTRIM( TRANSFORM(XPRECO,"@E 999,999.99" ) ) + CHR( 13 ) ) ENDIF FWRITE( NHANDLE, "111100000050130" + ALLTRIM( XEMPDIR ) + CHR( 13 ) ) IF LEN( ALLTRIM( XCOD ) ) < 13 FWRITE( NHANDLE, "1G2207000300050" + LEFT( XCOD,7 ) + CHR( 13 ) ) ELSE FWRITE( NHANDLE, "1F2207000300050" + LEFT( XCOD,12 ) + CHR( 13 ) ) ENDIF ELSEIF XOP = 9 // etiqueta cracha FWRITE( NHANDLE, "111100001950050" + "Nome: " + LEFT( XDESC,28 ) + CHR( 13 ) ) FWRITE( NHANDLE, "1F2207000300050" + LEFT( XCOD,12 ) + CHR( 13 ) ) // FWRITE(NHANDLE,"1H2207000300050"+LEFT(XCOD,12)+CHR(13)) ENDIF FWRITE( NHANDLE, "Q0001" + CHR( 13 ) ) FWRITE( NHANDLE, "E" + CHR( 13 ) ) FCLOSE( NHANDLE ) IF "COMBINACAO E ESTILO" $ XF XCOPIASI = XCOPIASI + 2 ELSE IF XOP = 1 XCOPIASI = XCOPIASI + 3 ELSE XCOPIASI = XCOPIASI + 1 ENDIF ENDIF COPY file( XARQC ) TO LPT1 SysRefresh() ENDDO IF XOP # 6 .AND. xop # 7 EXIT ENDIF IF XOP = 6 .AND. Xpro = 2 CONTINUE ELSEIF XOP = 7 .AND. Xpro = 2 CONTINUE ELSE SKIP ENDIF ENDDO MsgInfo( oemtoansi( "Etiqueta c¢digo de barras gerada Impressora Argox !" ), oemtoansi( "BalcÆo - Etiqueta de c¢digo de barras de operador" ) ) IF xop = 7 .AND. XPRO = 1 SET FILTER TO ELSEIF xop = 6 SET ORDER TO 1 ENDIF AEVAL( DIRECTORY( "BARRA*.TXT" ), { |aFILE| FERASE( aFILE[F_NAME] ) } ) RETURN NIL [/code] evertonlb 1 Quote Link to comment Share on other sites More sharing options...
kapiaba Posted October 10, 2018 Report Share Posted October 10, 2018 http://www.pctoledo.com.br/forum/viewtopic.php?p=100508#p100508 evertonlb 1 Quote Link to comment Share on other sites More sharing options...
evertonlb Posted October 11, 2018 Author Report Share Posted October 11, 2018 Kapiaba do céu... valeu mesmo cara. Eu mandava o "Chr(13) + Chr(10)" depois de cada linha... tirei.. deixei só o Chr(13) e funcionou!! kapiaba 1 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.