PERGUNTAS E RESPOSTAS
 
Bem Vindo, Visitante  Todos os Fórums
  ADVPL
Enviar para a impressoraImprimir  Enviar e-mail para um amigoEnviar Para um Amigo
Precisa estar Logado

Subject Assunto:
Problema com impressão em impressora Zebra
Versão:
12.1.33
Plataforma:
Microsoft
Complemento:
DB:
Oracle
Complemento:
LinkedIn
Foto
Mensagem do Enviar e-mail Abrir o Perfil do usuário GUDEFENDI GUDEFENDI em 13/03/2023, 13:57 h
Local: SP  Registro: 10/07/2018  Postagens: 52
Boa tarde a todos!

Montei o fonte abaixo para impressão de uma etiqueta em uma rotina personalizada. O problema que estou tendo é o seguinte:
- Ao realizar a impressão da etiqueta, aparece 2x a tela de setup para imprimir a etiqueta e quando eu seleciono a impressora Zebra TLP 2844, sai uma etiqueta em branco e em seguida sai a etiqueta certa.

- Agora quando eu seleciono a impressora Zebra ZD 220, aparece a tela de de setup 2x também, porém só sai a etiqueta correta.

Alguém sabe o que posso fazer para parar de aparecer a tela de setup 2x e como resolver o problema de não imprimir mais a etiqueta branca na Zebra TLP 2844?

Na Zebra TLP 2844, já fiz realinhamento, recalibração e mesmo assim o problema persiste.

-------------------------------------------------------------------------------
Fonte

#INCLUDE "RWMAKE.CH"
#INCLUDE "COLORS.CH"
#INCLUDE "FONT.CH"
#INCLUDE "TOPCONN.CH"
#INCLUDE "PROTHEUS.CH"
#Include "TOTVS.ch"
#Include "RPTDEF.ch"

/*
+------------------+---------------------------------------------------------+
!Descricao        ! Etiqueta de padrão de cor                               !
+------------------+---------------------------------------------------------+
!Nome              ! ETQART                                                  !
+------------------+---------------------------------------------------------+
!Data de Criacao   ! 07/03/2023                                              !
+------------------+---------------------------------------------------------+
*/

User Function ETQART()

     Private oPrinter    := FWMsPrinter():New("ETQART")
     Private oArial12N      := TFont():New("Arial",,16,,.T.,,,,,.F.,.F.)
     Private oArial9         := TFont():New("Arial",,9,,.F.,,,,,.F.,.F.)
     Private oArial9N        := TFont():New("Arial",,9,,.T.,,,,,.F.,.F.)

     oPrinter:Setup()
     oPrinter:SetPortrait()
     oPrinter:SetPaperSize(9)
     oPrinter:StartPage()
     printPage()
     oPrinter:Preview()

Return

Static Function printPage()
Local nLin := 0
Local nLin1 := 70
Local cDtEnvio
Local cDtVal
Local cValidade

/*
*******************************************************
* Trecho de codigo que atribui query no padrão ADVPL. *
*******************************************************
*/
     cCodEmp := FWCodEmp()

     IF cCodEmp = "01"
          cQuery := " SELECT A.Z48_ID                                    AS ID,                                                                                                                                                                                                                "
          cQuery += "        TRIM(A.Z48_CLI)                             AS CLIENTE,                                                                                                                                                                                                           "
          cQuery += "        TRIM(A.Z48_DESC)                             AS PRODUTO,                                                                                                                                                                                                           "
          cQuery += "        TRIM(A.Z48_CLIPPE) || ‘/‘ || TRIM(A.Z48_REV) AS CODPROD,                                                                                                                                                                                                           "
          cQuery += "        TRIM(B.G1_ZZCDEXT)                           AS CODEXTERNO,                                                                                                                                                                                                        "
          cQuery += "        TRIM(B.G1_ZZDIA || ‘ x ‘ || B.G1_ZZCOMP)     AS DIMENSOES,                                                                                                                                                                                                         "
          cQuery += "        decode(to_char(to_date(decode(A.z48_dtenv, ‘        ‘, ‘19000101‘, A.z48_dtenv), ‘YYYYMMDD‘), ‘DD/MM/YYYY‘), ‘01/01/1900‘, ‘ ‘, to_char(to_date(decode(A.z48_dtenv, ‘        ‘, ‘19000101‘, A.z48_dtenv), ‘YYYYMMDD‘), ‘DD/MM/YYYY‘))     AS DTENVIO,              "
          cQuery += "        decode(to_char(to_date(decode(A.z48_dtvenc, ‘        ‘, ‘19000101‘, A.z48_dtvenc), ‘YYYYMMDD‘), ‘DD/MM/YYYY‘), ‘01/01/1900‘, ‘ ‘, to_char(to_date(decode(A.z48_dtvenc, ‘        ‘, ‘19000101‘, A.z48_dtvenc), ‘YYYYMMDD‘), ‘DD/MM/YYYY‘)) AS DTVENC,               "
          cQuery += "        substr(decode(to_char(to_date(decode(A.z48_dtenv, ‘        ‘, ‘19000101‘, A.z48_dtenv), ‘YYYYMMDD‘), ‘DD/MM/YYYY‘), ‘01/01/1900‘, ‘ ‘, to_char(to_date(decode(A.z48_dtenv, ‘        ‘, ‘19000101‘, A.z48_dtenv), ‘YYYYMMDD‘), ‘DD/MM/YYYY‘)),9,2)     AS DTENVIO1, "
          cQuery += "        substr(decode(to_char(to_date(decode(A.z48_dtvenc, ‘        ‘, ‘19000101‘, A.z48_dtvenc), ‘YYYYMMDD‘), ‘DD/MM/YYYY‘), ‘01/01/1900‘, ‘ ‘, to_char(to_date(decode(A.z48_dtvenc, ‘        ‘, ‘19000101‘, A.z48_dtvenc), ‘YYYYMMDD‘), ‘DD/MM/YYYY‘)),9,2) AS DTVENC1   "
          cQuery += "     FROM Z48010 A,                                                                                                                                                                                                                                                        "
          cQuery += "          SG1010 B                                                                                                                                                                                                                                                         "
          cQuery += "        WHERE A.Z48_COD    = B.G1_COD                                                                                                                                                                                                                                     "
          cQuery += "           AND A.Z48_REV    = B.G1_TRT                                                                                                                                                                                                                                     "
          cQuery += "           AND G1_COMP      = ‘27334‘                                                                                                                                                                                                                                      "
          cQuery += "           AND A.Z48_ID     = ‘"+ Z48->Z48_ID + "‘                                                                                                                                                                                                                         "
          cQuery += "           AND A.D_E_L_E_T_ = ‘ ‘                                                                                                                                                                                                                                          "
          cQuery += "           AND B.D_E_L_E_T_ = ‘ ‘                                                                                                                                                                                                                                          "
     ELSE
          cQuery := " SELECT A.Z48_ID                                    AS ID,                                                                                                                                                                                                                "
          cQuery += "        TRIM(A.Z48_CLI)                             AS CLIENTE,                                                                                                                                                                                                           "
          cQuery += "        TRIM(A.Z48_DESC)                             AS PRODUTO,                                                                                                                                                                                                           "
          cQuery += "        TRIM(A.Z48_CLIPPE) || ‘/‘ || TRIM(A.Z48_REV) AS CODPROD,                                                                                                                                                                                                           "
          cQuery += "        TRIM(B.G1_ZZCDEXT)                           AS CODEXTERNO,                                                                                                                                                                                                        "
          cQuery += "        TRIM(B.G1_ZZDIA || ‘ x ‘ || B.G1_ZZCOMP)     AS DIMENSOES,                                                                                                                                                                                                         "
          cQuery += "        decode(to_char(to_date(decode(A.z48_dtenv, ‘        ‘, ‘19000101‘, A.z48_dtenv), ‘YYYYMMDD‘), ‘DD/MM/YYYY‘), ‘01/01/1900‘, ‘ ‘, to_char(to_date(decode(A.z48_dtenv, ‘        ‘, ‘19000101‘, A.z48_dtenv), ‘YYYYMMDD‘), ‘DD/MM/YYYY‘))     AS DTENVIO,              "
          cQuery += "        decode(to_char(to_date(decode(A.z48_dtvenc, ‘        ‘, ‘19000101‘, A.z48_dtvenc), ‘YYYYMMDD‘), ‘DD/MM/YYYY‘), ‘01/01/1900‘, ‘ ‘, to_char(to_date(decode(A.z48_dtvenc, ‘        ‘, ‘19000101‘, A.z48_dtvenc), ‘YYYYMMDD‘), ‘DD/MM/YYYY‘)) AS DTVENC               "
          cQuery += "        substr(decode(to_char(to_date(decode(A.z48_dtenv, ‘        ‘, ‘19000101‘, A.z48_dtenv), ‘YYYYMMDD‘), ‘DD/MM/YYYY‘), ‘01/01/1900‘, ‘ ‘, to_char(to_date(decode(A.z48_dtenv, ‘        ‘, ‘19000101‘, A.z48_dtenv), ‘YYYYMMDD‘), ‘DD/MM/YYYY‘)),9,2)     AS DTENVIO1, "
          cQuery += "        substr(decode(to_char(to_date(decode(A.z48_dtvenc, ‘        ‘, ‘19000101‘, A.z48_dtvenc), ‘YYYYMMDD‘), ‘DD/MM/YYYY‘), ‘01/01/1900‘, ‘ ‘, to_char(to_date(decode(A.z48_dtvenc, ‘        ‘, ‘19000101‘, A.z48_dtvenc), ‘YYYYMMDD‘), ‘DD/MM/YYYY‘)),9,2) AS DTVENC1   "
          cQuery += "     FROM Z48020 A,                                                                                                                                                                                                                                                        "
          cQuery += "          SG1010 B                                                                                                                                                                                                                                                         "
          cQuery += "        WHERE A.Z48_COD    = B.G1_COD                                                                                                                                                                                                                                     "
          cQuery += "           AND A.Z48_REV    = B.G1_TRT                                                                                                                                                                                                                                     "
          cQuery += "           AND G1_COMP      = ‘27334‘                                                                                                                                                                                                                                      "
          cQuery += "           AND A.Z48_ID     = ‘"+ Z48->Z48_ID + "‘                                                                                                                                                                                                                         "
          cQuery += "           AND A.D_E_L_E_T_ = ‘ ‘                                                                                                                                                                                                                                          "
          cQuery += "           AND B.D_E_L_E_T_ = ‘ ‘                                                                                                                                                                                                                                          "
     ENDIF

     If Select("TRB") > 0
          TRB->(DbCloseArea())
     EndIf
     TcQuery cQuery New Alias "TRB"
     DbSelectArea("TRB")


cDtEnvio := TRB->DTENVIO1
cDtVal    := TRB->DTVENC1
cValidade := Val(cDtVal) - Val(cDtEnvio)



/*
***********************************************************
* Trecho de codigo que desenhas os quadros do relatorio *
***********************************************************
*/
     oPrinter:StartPage()
     
     oPrinter:Box(nLin,0010,nLin+750,1085,"+2")
     nLin += 110
     oPrinter:Box(nLin,0010,nLin+110,1085,"+2")
     nLin += 110
     oPrinter:Box(nLin,0010,nLin+110,1085,"+2")
     nLin += 110
     oPrinter:Box(nLin,0010,nLin+110,1085,"+2")
     nLin += 110
     oPrinter:Box(nLin,0010,nLin+110,1085,"+2")
     nLin += 110
     oPrinter:Box(nLin,0010,nLin+110,1085,"+2")
     nLin += 100
     oPrinter:Box(nLin,0010,nLin+110,1085,"+2")


/*
***********************************************************
* Trecho de codigo que posiciona os campos no relatorio *
***********************************************************
*/                     
     oPrinter:Say(nLin1,0040,"Cliente: " + TRB->CLIENTE,oArial12N)
     nLin1 += 110
     oPrinter:Say(nLin1,0040,"Produto: " + TRB->PRODUTO,oArial12N)
     nLin1 += 110
     oPrinter:Say(nLin1,0040,"Código do Produto: " + TRB->CODPROD,oArial12N)
     nLin1 += 110
     oPrinter:Say(nLin1,0040,"Código externo: " + TRB->CODEXTERNO,oArial12N)
     nLin1 += 110
     oPrinter:Say(nLin1,0040,"Dimensões: " + ALLTRIM(TRB->DIMENSOES) + " mm",oArial12N)
     nLin1 += 110
     oPrinter:Say(nLin1,0040,"Data: " + TRB->DTENVIO,oArial12N)
     nLin1 += 100
     oPrinter:Say(nLin1,0040,"Data: " + ALLTRIM(cValToCHar(cValidade)) + " anos",oArial12N)

    oPrinter:EndPage()

Return

Foto
Mensagem do Enviar e-mail Abrir o Perfil do usuário GUDEFENDI GUDEFENDI em 22/03/2023, 14:17 h
Local: SP  Registro: 10/07/2018  Postagens: 52
Ninguém consegue me ajudar?

Foto
Mensagem do Enviar e-mail Abrir o Perfil do usuário CIRO CIRO em 22/03/2023, 16:29 h
Local: SP  Registro: 27/03/2007  Postagens: 11
Boa tarde,

Infelizmente eu não consigo te ajudar, pois nunca usei funções de relatório do sistema para imprimir etiquetas térmicas. Mas como sugestão, eu já desenvolvi etiquetas para essa impressora TLP 2844 e sempre uso as funções em ADVPL da TOTVS específicas para essa finalidade.

Exemplo:

https://centraldeatendimento.totvs.com/hc/pt-br/articles/360000130007-Cross-Segmento-TOTVS-Backoffice-Linha-Protheus-ADVPL-Teste-impressora-Zebra

Usando as funções acima, o ADVPL transforma a sua impressão em linguagem da própria impressora, tornando o processo mais ágil e simples.

Aqui no Help Fácil, em Downloads, procure pela palavra "Termica" na busca, pois aparecerá para ti algumas apostilas ótimas sobre essas funções.

Espero ter ajudado.

Abraço,

Ciro.

Para postar no Fórum você precisa efetuar o seu login ou se registrar

 Mudar para Fórum

 

 

 
 
   
Pagina Principal Shopping PROTHEUS Tire suas duvidas Vagas Microsiga em todo Brasil Aprofunde seus conhecimentos Noticias Online Fale Conosco Pagina Principal