0 votos
perguntado em Gestão de Pessoal por (210 pontos)

Desenvolvi o seguinte fonte para gerar etiqueta na impressora térmica, porem quando quando vou executar ele no Protheus a tela fica branca e trava tudo.

Segue fonte. 

#INCLUDE "RWMAKE.CH"

#INCLUDE "PROTHEUS.CH"

#INCLUDE "TOTVS.CH"

#INCLUDE "TOPCONN.CH"

User Function IDFUNC1()

Local cMPrint := "OS 214" //"Datamax I-4208" "DATAMAX M-4206" //ALLEGRO //ALLEGRO2 //DATAMAX

Local cPorta   := "LTP1"

Local cAlias := getNextAlias() //cria um alias temporário

Local cFiltro := "%"

Private cPerg := 'IDFUNC'

Pergunte(cPerg,.T.)

cFiltro += " SRA010.RA_FILIAL = '"+MV_PAR01+"' "

cFiltro += " AND NNA010.NNA_CODIGO = '"+MV_PAR02+"' "

cFiltro += "%"

 

BeginSql Alias cAlias

SELECT 

SRA010.RA_FILIAL, 

SRA010.RA_NOME, 

SUBSTRING(SRA010.RA_CIC, 1,3)+'.'+SUBSTRING(SRA010.RA_CIC, 4,3 )+'.'++SUBSTRING(SRA010.RA_CIC, 7,3)+'-'++SUBSTRING(SRA010.RA_CIC,10 ,2) AS CPF,  

SUBSTRING(SRA010.RA_NASC,7,2)+ '/'+SUBSTRING(SRA010.RA_NASC,5,2)+'/'+SUBSTRING(SRA010.RA_NASC,1,4) AS DATA_NASC, 

SUBSTRING(SRA010.RA_ADMISSA,7,2)+ '/'+SUBSTRING(SRA010.RA_ADMISSA,5,2)+'/'+SUBSTRING(SRA010.RA_ADMISSA,1,4) AS DATA_ADMISSAO,  

SUBSTRING(SRJ010.RJ_DESC, 1, LEN(SRJ010.RJ_DESC)-1) AS FUNCAO,

NNA010.NNA_CODIGO,

TM0010.TM0_MAT,

(CASE  TM0010.TM0_SANGUE 

WHEN '1' THEN 'A'

WHEN '2' THEN 'B'

WHEN '3' THEN 'AB'

WHEN '4' THEN 'O'

ELSE  '' END) AS T_SANGUE,

(CASE  TM0010.TM0_FATORH 

WHEN '1' THEN '+'

WHEN '2' THEN '-'

ELSE  '' END) AS T_FATOR

FROM SRA010 

LEFT JOIN NNA010 ON SRA010.RA_CIC = NNA010.NNA_CPF 

LEFT JOIN SRJ010 ON SRA010.RA_CODFUNC = SRJ010.RJ_FUNCAO

LEFT JOIN TM0010 ON SRA010.RA_CIC = TM0010.TM0_CPF 

WHERE %exp:cFiltro%

EndSql    

 

(cAlias)->(dbGoTop())

  //MSCBPRINTER(cModelPrt, cPorta, nDensidade, nTamanho, lSrv, nPorta, cServer, cEnv, nMemoria, cFila, lDrvWin, cPathSpool)

MSCBPRINTER(cMPrint,cPorta,NIL,,.F.,,,,,,.T.)

MSCBCHKSTATUS(.F.)

  While !(cAlias)->(Eof())

  //MSCBBEGIN(nxQtde,nVeloc,nTamanho,lSalva)

MSCBBEGIN(1,4)

  //MSCBSAY(nXmm, nYmm, cTexto, cRotacao, cFonte, cTam, lReverso, lSerial, cIncr, lZerosL, lNoAlltrim)

MSCBSAY(05,30,OemToAnsi((cAlias)->RA_NOME),"N","3","01")

//AQUI EU MOBTO O RESTANTE DO CODIGO 

  //MSCBSAYBAR(nXmm, nYmm, cConteudo, cRotacao, cTypePrt, nAltura, lDigVer, lLinha, lLinBaixo, cSubSetIni, nLargura, nRelacao, lCompacta, lSerial, cIncr, lZerosL)                          

//MSCBSAYBAR(62,54,alltrim((cAlias)->RA_FILIAL+""+TM0_MAT),"N","MB01",10,.F.,.T.,.F.,,2,1,.F.)    

MSCBEND() 

  Enddo          

MSCBCLOSEPRINTER() 

(cAlias)->(dbCloseArea())

return

1 Resposta

0 votos
respondida por (800 pontos)
Bom dia Lucas,

Quando você debuga... onde ocorre o problema? Em que linha vc percebe que para?

34 perguntas

28 respostas

22 comentários

77 usuários

Seja bem vindo a dbSeek, seu StackOverflow de Protheus, onde você pode fazer perguntas e receber respostas de outros membros da comunidade, alcançando sempre o melhor resultado.
...