|
Bem Vindo, Visitante
|
Todos os Fórums
ADVPL
|
Imprimir
Enviar Para um Amigo Precisa estar Logado
|
|
|
Assunto: |
Problema com impressão em impressora Zebra |
|
Versão: |
12.1.33 |
|
Plataforma: |
Microsoft |
Complemento: |
|
|
DB: |
Oracle |
Complemento: |
|
|
|
|
|
Mensagem do
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 |
|
|
Mensagem do
GUDEFENDI
em 22/03/2023, 14:17 h
Local: SP Registro: 10/07/2018 Postagens: 52 |
Ninguém consegue me ajudar? |
|
|
Mensagem do
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
|
|