|
Bem Vindo, Visitante
|
Todos os Fórums
ADVPL
|
Imprimir
Enviar Para um Amigo Precisa estar Logado
|
|
|
Assunto: |
Duvida impressão Protheus 12.1.25 |
|
Versão: |
12.1.25 |
|
Plataforma: |
Microsoft |
Complemento: |
|
|
DB: |
Oracle |
Complemento: |
|
|
|
|
|
Mensagem do
GUDEFENDI
em 12/09/2019, 08:13 h
Local: SP Registro: 10/07/2018 Postagens: 52 |
Bom dia,
Tenho uma etiqueta personalizada que imprime sem problemas em qualquer usuário do Windows no Protheus 12.1.17.
Estamos realizando a validação do Protheus 12.1.25 e essa etiqueta só esta sendo impressa por um usuário do Windows, mesmo se eu logar no admin interno ela não imprime, alguem sabe o que pode ser?
Fonte da etiqueta:
#INCLUDE "RWMAKE.CH"
#INCLUDE "COLORS.CH"
#INCLUDE "FONT.CH"
#INCLUDE "TOPCONN.CH"
#INCLUDE "PROTHEUS.CH"
User Function ETIQ001()
Private oPrinter := tAvPrinter():New("ETIQ001")
PRIVATE cStartPath := GetSrvProfString(‘Startpath‘,‘‘)
PRIVATE cImag001 := ""
Private oArial13N := TFont():New("Arial",,13,,.T.,,,,,.F.,.F.)
Private oArial11N := TFont():New("Arial",,11,,.T.,,,,,.F.,.F.)
Private oArial10N := TFont():New("Arial",,10,,.T.,,,,,.F.,.F.)
Private oArial11 := TFont():New("Arial",,11,,.F.,,,,,.F.,.F.)
Private oArial9 := TFont():New("Arial",,9,,.F.,,,,,.F.,.F.)
Private oArial9N := TFont():New("Arial",,9,,.T.,,,,,.F.,.F.)
Private oArial8 := TFont():New("Arial",,8,,.F.,,,,,.F.,.F.)
Private oArial7 := TFont():New("Arial",,7,,.F.,,,,,.F.,.F.)
Private oArial8N := TFont():New("Arial",,8,,.T.,,,,,.F.,.F.)
Private oArial7N := TFont():New("Arial",,7,,.T.,,,,,.F.,.F.)
Private oArial5N := TFont():New("Arial",,5,,.T.,,,,,.F.,.F.)
Private nCount := 0
Private cPerg := "ETIQ001"
VALIDPERG(cPerg)
IF !PERGUNTE(cPerg,.T.)
RETURN()
ENDIF
oPrinter:Setup()
oPrinter:SetPortrait()
oPrinter:StartPage()
printPage()
oPrinter:Preview()
Return
Static Function printPage()
Local nTot := MV_PAR02+1
/*
*******************************************************
* Trecho de codigo que atribui query no padrão ADVPL. *
*******************************************************
*/
cQuery := "SELECT TRIM(F.A1_NOME) AS CLIENTE, "
cQuery += " TRIM(B.G1_ZZVAL) AS VALIDADE, "
cQuery += " B.G1_ZZDIA||‘x‘||B.G1_ZZCOMP ||‘ MM‘ AS MEDIDAS, "
cQuery += " TRIM(G.ZZ2_DESCR) AS ROSCA, "
cQuery += " TRIM(NVL(SUBSTR(estrutura.estrutura(A.B1_COD,B.G1_REVINI,A.B1_FILIAL,‘MP09‘),1,40),‘SEM VEDANTE‘))AS VEDANTE, "
cQuery += " TRIM(NVL(SUBSTR(estrutura.estrutura(A.B1_COD,B.G1_REVINI,A.B1_FILIAL,‘MP08‘),1,60),‘SEM VERNIZ‘)) AS VERNIZ, "
cQuery += " LENGTH(TRIM(NVL(SUBSTR(estrutura.estrutura(A.B1_COD,B.G1_REVINI,A.B1_FILIAL,‘MP08‘),1,60),‘SEM VERNIZ‘))) AS VERNIZ2, "
cQuery += " TRIM(A.B1_DESC) AS PRODUTO, "
cQuery += " TRIM(B.G1_ZZCDEXT) AS CODEXT, "
cQuery += " TRIM(C.C2_NUM) AS OP, "
cQuery += " TRIM(B.G1_ZZQTDEM) || ‘ UN‘ AS QNT_CAIXA,"
cQuery += " TRIM(H.BM_DESC) AS GRUPO_PROD"
cQuery += " FROM SB1010 A, "
cQuery += " SG1010 B, "
cQuery += " SC2010 C, "
cQuery += " SC6010 D, "
cQuery += " SC5010 E, "
cQuery += " SA1010 F, "
cQuery += " ZZ2010 G, "
cQuery += " SBM010 H "
cQuery += " WHERE A.B1_COD = B.G1_COD "
cQuery += " AND A.B1_COD = C.C2_PRODUTO "
cQuery += " AND C.C2_NUM = D.C6_NUMOP "
cQuery += " AND C.C2_PRODUTO = B.G1_COD "
cQuery += " AND C.C2_REVISAO = B.G1_REVINI "
cQuery += " AND D.C6_NUM = E.C5_NUM "
cQuery += " AND E.C5_CLIENTE = F.A1_COD "
cQuery += " AND E.C5_LOJACLI = F.A1_LOJA "
cQuery += " AND B.G1_ZZCDROS = G.ZZ2_ZZCOD "
cQuery += " AND A.B1_GRUPO = H.BM_GRUPO "
cQuery += " AND C.C2_NUM = ‘"+MV_PAR01+"‘ "
cQuery += " AND B.G1_COMP = ‘27334‘ "
cQuery += " AND C.C2_SEQUEN = ‘001‘ "
cQuery += " AND A.D_E_L_E_T_ = ‘ ‘ "
cQuery += " AND B.D_E_L_E_T_ = ‘ ‘ "
cQuery += " AND C.D_E_L_E_T_ = ‘ ‘ "
cQuery += " AND D.D_E_L_E_T_ = ‘ ‘ "
cQuery += " AND E.D_E_L_E_T_ = ‘ ‘ "
cQuery += " AND F.D_E_L_E_T_ = ‘ ‘ "
cQuery += " AND G.D_E_L_E_T_ = ‘ ‘ "
cQuery += " AND H.D_E_L_E_T_ = ‘ ‘ "
If Select("TRB") > 0
TRB->(DbCloseArea())
EndIf
TcQuery cQuery New Alias "TRB"
DbSelectArea("TRB")
/*
*********************************************************
* Trecho de codigo que desenhas os quadros do relatorio.*
*********************************************************
*/
while nTot > nCount
--nTot
oPrinter:StartPage()
oPrinter:Box(0040,0020,0750,1150) // OK 1
oPrinter:Box(0041,0021,0751,1151) // OK 1
oPrinter:Box(0040,0020,0180,0980) // OK 2
oPrinter:Box(0041,0021,0181,0981) // OK 2
oPrinter:Box(0040,0980,0180,1150) // OK 3
oPrinter:Box(0041,0981,0181,1151) // OK 3
oPrinter:Box(0180,0020,0230,1150) // OK 4
oPrinter:Box(0181,0021,0231,1151) // OK 4
oPrinter:Box(0230,0020,0280,0580) // OK 5
oPrinter:Box(0231,0021,0281,0581) // OK 5
oPrinter:Box(0230,0580,0280,1150) // OK 6
oPrinter:Box(0231,0581,0281,1151) // OK 6
oPrinter:Box(0280,0020,0330,0580) // OK 7
oPrinter:Box(0281,0021,0331,0581) // OK 7
oPrinter:Box(0280,0580,0330,1150) // OK 8
oPrinter:Box(0281,0581,0331,1151) // OK 8
oPrinter:Box(0330,0020,0380,0580) // OK 9
oPrinter:Box(0331,0021,0381,0581) // OK 9
oPrinter:Box(0330,0580,0380,1150) // OK 10
oPrinter:Box(0331,0581,0381,1151) // OK 10
oPrinter:Box(0380,0020,0470,1150) // OK 11
oPrinter:Box(0381,0021,0471,1151) // OK 11
oPrinter:Box(0470,0020,0580,0337) // OK 12
oPrinter:Box(0471,0021,0581,0338) // OK 12
oPrinter:Box(0470,0337,0580,0580) // OK 13
oPrinter:Box(0471,0338,0581,0581) // OK 13
oPrinter:Box(0470,0580,0580,0860) // OK 14
oPrinter:Box(0471,0581,0581,0861) // OK 14
oPrinter:Box(0470,0860,0580,1150) // OK 15
oPrinter:Box(0471,0861,0581,1151) // OK 15
oPrinter:Box(0580,0020,0680,0320) // OK 16
oPrinter:Box(0581,0021,0681,0321) // OK 16
oPrinter:Box(0580,0320,0680,0500) // OK 17
oPrinter:Box(0581,0321,0681,0501) // OK 17
oPrinter:Box(0580,0500,0680,0680) // OK 18
oPrinter:Box(0581,0501,0681,0681) // OK 18
oPrinter:Box(0580,0680,0680,0980) // OK 19
oPrinter:Box(0581,0681,0681,0981) // OK 19
oPrinter:Box(0580,0980,0680,1150) // OK 20
oPrinter:Box(0581,0981,0681,1151) // OK 20
/*
********************************************************
* Trecho de codigo que posiciona os campos e imagem *
* com logo da empresa no relatorio *
********************************************************
*/
cImag001 := cStartPath + "Imagens_rel\logobphpb.bmp"
oPrinter:SayBitMap(0050,0025,cImag001,0200,0120)
oPrinter:Say(0050,0290,"AAAAA",oArial11,,0)
oPrinter:Say(0095,0240,"AAAAA",oArial9,,0)
oPrinter:Say(0135,0310,"CAAAAA",oArial9,,0)
oPrinter:Say(0050,1030,"Nº",oArial13N,,0)
oPrinter:Say(0110,1010,Alltrim(STRZERO(nTot,4)),oArial13N,,0)
IF LEN(TRB->CLIENTE) < 40
oPrinter:Say(0185,0025,"CLIENTE: "+ ALLTRIM(TRB->CLIENTE),oArial11,,0)
ELSE
oPrinter:Say(0185,0025,"CLIENTE: "+ ALLTRIM(TRB->CLIENTE),oArial7N,,0)
END IF
oPrinter:Say(0235,0025,TRB->GRUPO_PROD,oArial11,,0)
oPrinter:Say(0235,0585,"VALIDADE: "+ TRB->VALIDADE,oArial11,,0)
oPrinter:Say(0285,0025,TRB->MEDIDAS,oArial11,,0)
oPrinter:Say(0285,0585,TRB->ROSCA,oArial9,,0)
oPrinter:Say(0335,0025,TRB->VEDANTE,oArial9,,0)
IF TRB->VERNIZ2 < 30
oPrinter:Say(0335,0590,TRB->VERNIZ,oArial9,,0)
ELSEIF TRB->VERNIZ2 < 35
oPrinter:Say(0335,0590,TRB->VERNIZ,oArial7N,,0)
ELSE
oPrinter:Say(0335,0590,TRB->VERNIZ,oArial5N,,0)
END IF
oPrinter:Say(0380,0025,"PRODUTO:",oArial9,,0)
IF LEN(TRB->PRODUTO) < 40
oPrinter:Say(0410,0025,TRB->PRODUTO,oArial13N,,0)
ELSE
oPrinter:Say(0410,0025,TRB->PRODUTO,oArial11N,,0)
END IF
oPrinter:Say(0475,0025,"CÓD. PROD.:",oArial9,,0)
IF LEN(TRB->CODEXT) < 13
oPrinter:Say(0520,0025,TRB->CODEXT,oArial9N,,0)
ELSE
oPrinter:Say(0520,0025,TRB->CODEXT,oArial8N,,0)
END IF
oPrinter:Say(0475,0345,"OP Nº:",oArial9,,0)
oPrinter:Say(0520,0380,TRB->OP,oArial11N,,0)
oPrinter:Say(0475,0585,"LINHA:",oArial9,,0)
oPrinter:Say(0475,0880,"QUANT. P/CX",oArial9,,0)
oPrinter:Say(0520,0880,TRB->QNT_CAIXA,oArial11N,,0)
oPrinter:Say(0580,0025,"C.Q.M.:",oArial9,,0)
oPrinter:Say(0580,0325,"C.Q.E.:",oArial9,,0)
oPrinter:Say(0580,0505,"EMB.:",oArial9,,0)
oPrinter:Say(0580,0685,"FAB.:",oArial9,,0)
oPrinter:Say(0620,0730," / / ",oArial11,,0)
oPrinter:Say(0580,0985,"HORA.:",oArial9,,0)
oPrinter:Say(0700,0060,"MANTER PROTEGIDO DO SOL, UMIDADE E POEIRA",oArial11N,,0)
oPrinter:EndPage()
enddo
Return
/*
********************************************************
* Trecho de codigo que cria grupo de perguntas na SX1 *
********************************************************
*/
STATIC FUNCTION VALIDPERG(cPerg)
_sAlias := GetArea()
dbSelectArea("SX1")
dbSetOrder(1)
cPerg := PADR(cPerg,10)
aRegs := {}
AADD(aRegs,{cPerg,"01","Ordem de Producao ?","Ordem de Producao ?","Ordem de Producao ?","MV_CH1","C",06,0,0,"G","","MV_PAR01","","","","","","","","","","","","","","","","","","","","","","","","","SC2","","","",""})
AADD(aRegs,{cPerg,"02","Qtde. Etiquetas ?","Qtde. Etiquetas ?","Qtde. Etiquetas ?","MV_CH2","C",09,0,0,"G","","MV_PAR02","","","","","","","","","","","","","","","","","","","","","","","","","SF2","","","",""})
FOR i:=1 TO LEN(aRegs)
IF !DBSEEK(cPerg+aRegs[i,2])
RECLOCK("SX1",.T.)
FOR j := 1 TO FCOUNT()
IF j <= Len(aRegs)
FieldPut(j,aRegs[i,j])
ENDIF
NEXT
MSUNLOCK()
ENDIF
NEXT
RestArea(_sAlias)
RETURN() |
|
|
Mensagem do
JONATASSIS
em 12/09/2019, 15:27 h
Local: SC Registro: 11/06/2014 Postagens: 6 |
tem a mensagem de erro ? ou aparece algo no console? |
|
|
Mensagem do
GUDEFENDI
em 13/09/2019, 09:49 h
Local: SP Registro: 10/07/2018 Postagens: 52 |
Não aparece nenhum erro.
Se eu ficar com a tela de visualização do que esta sendo impresso na impressora, vejo que a etiqueta é enviada para a impressora, mas não imprime. |
|
|
Mensagem do
PINTOH
em 13/09/2019, 16:32 h
Local: SP Registro: 30/05/2006 Postagens: 3 |
Eu debugaria o programa para ver se ele passando por todas as linhas.
Outra coisa, a sua funcao chama printpage, tente colocar outro nome.
|
|
|
Mensagem do
M_A_L
em 13/09/2019, 18:04 h
Local: SP Registro: 25/11/2013 Postagens: 80 |
Boa tarde.
Pega esse usuário e leva para outro terminal faça login verifica se imprime, talvez possa ser alguma característica do computador dele.
Ou vice-versa.
Abraço. |
|
Para postar no Fórum você precisa efetuar o seu login ou se registrar
|
|