Perguntas Após impressão não retorna para a rotina

Mais
9 anos 1 mês atrás #29447 por Maceulus
Boa tarde amigos.

A função abaixo é chamada pela função SetKey na opção visualizar da rotina TECA040 (base instalada).

O problema é que após chamada pelo F8 a função faz a impressao da etiqueta corretamente e volta para o browse da TECA040 e fica travada, não perminto sequer fechar a rotina.

Fiz teste comentando todo o fonte e deixei apenas um MSGALERT no inicio e deu certo, então presumisse que é algo com a dialog ou com a função TMSPrinter. Alguém tem alguma sugestão?


//////// Impressao de Etiquetas com QrCode
User Function QrCodeEq(_cCodCli,_cLoja,_cModelo,_cNumSer)

Default _cCodCli :=""
Default _cLoja :=""
Default _cModelo :=""
Default _cNumSer :=""

Private oDlg := MSDIALOG():Create()
Private oQrCode
Private nWidth := 250 //200
Private nHeight := 250 //200
Private cImagem := ""
Private oPrint := TMSPrinter():New( "TESTE" )
Private oFont1 := TFont():New('Verdana',,-12,.t.,.t.,,,,,.f. )
Private oFont5 := TFont():New('Verdana',,-06,.t.,.t.,,,,,.f. )

Private vCliente := Space(07)
Private vModelo := Space(06)
Private vSerie := Space(05)
Private vSeparador := Space(02)
Private vLink := space(110)

Private cCliente := Space(09)
Private cModelo := Space(30)
Private cSerie := Space(20)
Private cLink := Space(115)
Private cNomeCli := Space(30)

Private vPos := Space(1)
Private nOpca := 0

Private oDlg2, oVar, obtnok, obtnCancel

Define MSDialog oDlg2 Title OemToAnsi("Etiquetas de Equipamentos") From 0,0 To 130,250 Pixel

@05,10 To 30,118 Pixel
@15,20 Say "Informe a posição da etiqueta :" Pixel Of oDlg2
@13,98 MSGet vPos Picture "@!" Size 15,10 Pixel Of oDlg2

@40,25 Button oBtnOk Prompt "&Ok" Size 30,15 Pixel ;
Action(nOpca:=1,oDlg2:End()) Of oDlg2

@40,75 Button oBtnCancel Prompt "&Cancelar" Size 30,15 Pixel ;
Action(nOpca:=2,oDlg2:End()) Of oDlg2

Activate MSDialog oDlg2 Centered

If nOpca = 2
Return
endif

DBSelectArea("SA1")
DBSetOrder(1)
IF !DBSeek(xFilial("SA1")+_cCodCli+_cLoja)
MsgStop("Cliente e Loja não encontrados !!!","MULTH")
Return (.F.)
Endif

cCliente := SUBSTRING(_cCodCli+"-"+_cLoja+" - ",1,13)
cNomeCli := ALLTRIM(SA1->A1_NOME)
cModelo := ALLTRIM(_cModelo)
cSerie := ALLTRIM(_cNumSer)

vCliente := "cliente="
vModelo := "modelo="
vSerie := "serie="
vSeparador := "&"

vLink := " www.multh.com.br/c-t/ ?"
vLink += vCliente+cCliente+cNomeCli+vSeparador+vModelo+cModelo+vSeparador+vSerie+cSerie

oQrCode := FwQrCode():New({25,25,nWidth,nHeight},oDlg,vLink)
cImagem := oQrCode:oQrCode:cBmpFile

oPrint:SetPaperSize(9)
oPrint:SetPortrait()
oPrint:StartPage()

If vPos = "1"
// ETIQUETA Nº 1
oPrint:SayBitMAP( 250, 650, cImagem, 250, 250 )
oPrint:Say( 375,1050, cModelo ,oFont1,100 )
oPrint:Say( 500,1050, cSerie ,oFont1,100 )
ElseIf vPos = "2"
// ETIQUETA Nº 2
oPrint:SayBitMAP( 850, 650, cImagem, 250, 250 )
oPrint:Say( 975, 1050, cModelo ,oFont1,100 )
oPrint:Say(1100, 1050, cSerie ,oFont1,100 )
Endif

oPrint:EndPage()
oPrint:End()
oPrint:Preview()
MS_FLUSH()

Close(oDlg)
Return

Por favor Acessar ou Registrar para participar da conversa.

Tempo para a criação da página:0.105 segundos
Joomla templates by a4joomla