Tempo aproximado para leitura: 00:01:00 min
Dúvida
É possível imprimir o QRcode pela classe TReport?
Ambiente
Cross Segmento - TOTVS Backoffice (Linha Protheus) - ADVPL - Todas as versões
Solução
A classe TReport não possui método para impressão de QrCode. Entretanto, existe a classe FwQrCode, nela é gravado como imagem na pasta TEMP do Próprio Windows.
Dessa maneira pode ser gerado o QrCode pela classe FwQrCode e após pela classe TReport utilizar o método SayBitmap para impressão da imagem.
Exemplo:
#Include "PROTHEUS.CH"
#Include "RPTDEF.CH"
#INCLUDE "TBICONN.CH"
#INCLUDE "FWPrintSetup.ch"
//Consulte: http://tdn.totvs.com.br/display/mp/FwQrCode
User Function TstQrCode1()
Local oDLG := Nil
Local cCodigo := "http://www.totvs.com.br" + Space(60)
Private cLocalImg
Private oQrCode
//Cria a Dialog
DEFINE MSDIALOG oDlg TITLE "RDMAKE para teste da classe FwQrCode" FROM 0,0 TO 400,800 PIXEL
//Cria o objeto FwQrCode
oQrCode := FwQrCode():New({25,25,200,200},oDlg,cCodigo)
cLocalImg:= oQrCode:oQrCode:CBMPFILE
//Exibe a Dialog em Video
ACTIVATE MSDIALOG oDlg CENTERED
U_TESTE03()
Return
user function teste03()
local oReport
RpcSetEnv("99","01")
oReport := reportDef(oReport)
oReport:printDialog()
FreeObj(oReport)
RpcClearEnv()
Return
static function reportDef(oReport)
local cTitulo := "Teste do metodo SayBitmap "
local cFile := 'TREPORT_'+ StrTran(Time(), ":", "-")
oReport := TReport():New(cFile, cTitulo, nil, {|oReport| PrintReport(oReport)},cTitulo)
oReport:SetPortrait()
oReport:SetTotalInLine(.F.)
oReport:ShowHeader()
oReport:lPreview:= .T.
oReport:nDevice := 6
oReport:nEnvironment:= 1
Return oReport
Static Function PrintReport(oReport)
oReport:SayBitmap( 600,100,cLocalImg,400,400 )
Return
Saiba Mais
0 Comentários