Saludos
Logré generar reporte, no he podido colocar la Imagen en la 3ra Columna del reporte
Code: Select all | Expand
#include "DpxReport.ch"
PROCE MAIN(oGenRep)
LOCAL cSql,oCursor,cMsg:="",oFont1,oFont2
PRIVATE oReport,nLineas:=0
IF oGenRep=NIL
RETURN .F.
ENDIF
CursorWait()
oCursor:=OpenTable(cSql,.T.)
IF oCursor:RecCount()=0
MensajeErr("No fué posible Encontrar Información","Consulta Vacia Reporte <REPORTE>")
oCursor:End()
Return .F.
ENDIF
oCursor:GoTop()
DEFINE FONT oFont1 NAME "ARIAL" SIZE 0,-10
DEFINE FONT oFont2 NAME "ARIAL" SIZE 0,-10 BOLD
REPORT oReport TITLE "Código QR",;
"Fecha: "+dtoc(Date())+" Hora: "+TIME();
CAPTION "Código QR" ;
FOOTER "Página: "+str(oReport:nPage,3)+" Registros: "+alltrim(str(nLineas,5)) CENTER ;
FONT oFont1,oFont2;
PREVIEW
COLUMN TITLE "Código";
DATA oCursor:INV_CODIGO;
SIZE 20;
LEFT
COLUMN TITLE "Descripción";
DATA oCursor:INV_DESCRI;
SIZE 40;
LEFT
END REPORT
oReport:bSkip:={||oCursor:DbSkip()}
ACTIVATE REPORT oReport ;
WHILE !oCursor:Eof();
ON STARTGROUP oReport:NewLine();
ON STARTPAGE RepBitmap();
ON CHANGE ONCHANGE()
oFont1:End()
oFont2:End()
RETURN NIL
/*
// En Cada Registro se puede Aplicar Fórmulas
// Es llamado por Skip()
*/
FUNCTION ONCHANGE()
LOCAL cFile:="QRCODE\DPINV"+ALLTRIM(oCursor:INV_CODIGO)+".BMP"
IF !FILE(cFile)
QRCODE(oCursor:INV_CODIGO,cFile,.F.)
ENDIF
nLineas:=nLineas+1
oReport:SayBitmap(nLineas,110, cFile,.4,.4)
AEVAL(Array(5),{||oReport:Newline()})
RETURN .T.
/*
// Imprime Campos Memos
*/
FUNCTION PrintMemo(cMemo,nCol,lData,nIni)
LOCAL nFor,aLines
IF Empty(cMemo)
RETURN ""
ENDIF
// Inicio del Línea
DEFAULT nIni:=1
cMemo :=STRTRAN(cMemo,CHR(10),"") // Convierte el Campo Memo en Arreglos
aLines:=_VECTOR(cMemo,CHR(13))
IF lData // Requiera la Primera Línea de Datos
Return aLines[1]
ENDIF
// oReport:BackLine(1) // Retroceder una Línea
// oReport:Newline() // Adelanta una Línea
FOR nFor := nIni TO LEN(aLines)
oReport:StartLine()
oReport:Say(nCol,aLines[nFor])
oReport:EndLine()
NEXT
oReport:Newline()
RETURN ""
/*
// Inicio en Cada Página
*/
STATIC FUNCTION RepBitMap()
DEFAULT oDp:cLogoBmp:="BITMAPS\LOGO.BMP"
oReport:SayBitmap(.3,.3, oDp:cLogoBmp,.5,.5)
RETURN NIL
// EOF