× Linguagem de Programação ADVPL

Perguntas Etiqueta Zebra com QRcode

Mais
10 anos 4 meses atrás #23757 por klesia
Bom dia.

Preciso fazer uma etiqueta na impressora zebra e ao invés de utilizar o código de barras convencional eu preciso utilizar o QRCODE. Alguém pode me orientar/ajudar?

Obrigada

Klesia

Por favor Acessar ou Registrar para participar da conversa.

Mais
10 anos 4 meses atrás #23760 por admin
Respondido por admin no tópico Etiqueta Zebra com QRcode
Segue um exemplo que gera a saida em pdf.


#INCLUDE "PROTHEUS.CH"
#INCLUDE "FONT.CH"
#include "topconn.ch"
#Include "RPTDEF.CH"
#INCLUDE "TBICONN.CH"

User Function TstQrCode()
Local oDLG := Nil
Local cCodigo := "EMPRESA" +Space(30)
Private oQrCode
Private cItem := Space(10)
Private cTexto := Space(12)
Private oDataJ
Private cDataJ := Space(10)
Private oLearJ
Private cLearJ := Space(30)


DEFINE MSDIALOG oDlgJus TITLE "Impressao QRCode" FROM 000,000 TO 200,300 PIXEL OF oMainWnd
@ 32,04 Say 'Data Formato Juliana:' SIZE 75, 7 OF oDlgJus Pixel
@ 32,65 MSGET oDataJ VAR cDataJ SIZE 80, 010 Picture '@!' OF oDlgJus Pixel
@ 52,04 Say 'Part Number Lear:' SIZE 75, 7 OF oDlgJus Pixel
@ 52,65 MSGET oLearJ VAR cLearJ SIZE 80, 010 OF oDlgJus Pixel

DEFINE SBUTTON oBt1 FROM 075,100 TYPE 1 ACTION MsAguarde({|| U_QRMCode(AllTrim(cDataJ)+cLearJ),oDlgJus:End()}) ENABLE OF oDlgJus PIXEL
DEFINE SBUTTON oBt2 FROM 075,130 TYPE 2 ACTION oDlgJus:End() ENABLE OF oDlgJus PIXEL
ACTIVATE MSDIALOG oDlgJus Centered

Return .t.

/*

//Cria a Dialog
DEFINE MSDIALOG oDlg TITLE "Geracao Etiqueta Lear" FROM 0,0 TO 400,800 PIXEL
@ 060,160 SAY "Data Juliana:" SIZE 40, 7
@ 050,150 GET cItem PICTURE "@!" Valid NAOVAZIO() SIZE 150, 10
@ 050,150 SAY "Part Number Lear" Size 40,7
@ 050,040 GET cTexto Picture "@!" Valid NAOVAZIO() Size 150,10
DEFINE SBUTTON FROM 140,010 TYPE 1 ACTION {||Etiq()} ENABLE OF oDlg
DEFINE SBUTTON FROM 140,040 TYPE 2 ACTION Close(oDlg) ENABLE OF oDlg

//Cria o objeto FwQrCode
oQrCode := FwQrCode():New({15,15,150,150},oDlg,cCodigo)

//Get com o codigo exibido
@050,150 GET oGet VAR cCodigo OF oDlg SIZE 200,10 PIXEL

//Botao Gerar
@75,150 BUTTON "Gerar" SIZE 30,20 PIXEL OF oDlg ACTION MsgRun("Gerando QRCode","Aguarde",{|| MyRefresh(cCodigo)}) PIXEL

//Exibe a Dialog em Video
ACTIVATE MSDIALOG oDlg CENTERED

Return

Static Function MyRefresh(cNewCod)
oQrCode:SetCodeBar(cNewCod)
oQrCode:Refresh()
Return

STATIC Function IMPETIQ()

oPrn := TMSPrinter():New('LEAR')
oPrn:Setup()//SetPortrait() //SetLandScape()
oPrn:SetPortrait()//SetPortrait() //SetLandScape()

oFont60 := TFont():New("Arial",200,200,,.F.,,,,.T.,.F.)

//For nI := 1 To nCopia
oPrn:StartPage()


oPrn:Say(0040,0350,cItem,oFont60)


oPrn:EndPage()
//Next


oPrn:End()
oPrn:Preview()
Return

*/

User Function QRMCode(cTexto)
Local oPrinter
oFont1 := TFont():New( "Arial",,9,.t.,.t.,,,,,.f. )

lAdjustToLegacy := .T. //.F.
lDisableSetup := .T.
oPrinter := FWMSPrinter():New('qrcode', IMP_PDF, lAdjustToLegacy, , lDisableSetup)
oPrinter:SetResolution(78)
oPrinter:SetPortrait()
oPrinter:SetPaperSize(DMPAPER_A4)
oPrinter:SetMargin(10,10,10,10) // nEsquerda, nSuperior, nDireita, nInferior
oPrinter:cPathPDF := "C:\TEMP\" // Caso seja utilizada impressão em IMP_PDF

oPrinter:StartPage()
oPrinter:Say( 080, 330, "2456771MSS",oFont1,100 )
oPrinter:Say( 130, 330, 'L0282925AB01',oFont1,100 )
oPrinter:QRCode(0,050,cTexto, 010)
oPrinter:EndPage()
oPrinter:Preview()
FreeObj(oPrinter)
oPrinter := Nil
Return .t.

Por favor Acessar ou Registrar para participar da conversa.

Mais
10 anos 4 meses atrás - 10 anos 4 meses atrás #23763 por klesia
Respondido por klesia no tópico Etiqueta Zebra com QRcode
Obrigado!

Você sabe se pela função do protheus tem uma opção para gerar o qrcode em imagem?
Pois eu preciso imprimir qr code em uma impressora zebra.


Atenciosamente
klesia
Ultima edição: 10 anos 4 meses atrás por klesia.

Por favor Acessar ou Registrar para participar da conversa.

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