TREPORT con imágenes

TREPORT con imágenes

Postby jnavas » Sat Dec 15, 2018 9:03 am

Saludos cordiales,
Agradecidos por sus aportes para generar bitmaps de códigos QR,
Ahora necesito realizar un reporte con las imágenes Bitmaps generados desde los códigos QR

Estaré evaluando mediante el uso del method oReport:SayBitmap


Code: Select all  Expand view  RUN


     ACTIVATE REPORT oReport;
              WHILE !A->(Eof());
              ON STARTGROUP oReport:NewLine();
              ON STARTPAGE  RepBitmap();
              ON CHANGE ONCHANGE()

FUNCTION ONCHANGE()
// Aqui Necesito Conocer la Coordenada del Reporte que está en Ejecución
oReport:SayBitmap(.3,.3, cFileBmp,.5,.5)

 
User avatar
jnavas
 
Posts: 479
Joined: Wed Nov 16, 2005 12:03 pm
Location: Caracas - Venezuela

Re: TREPORT con imágenes

Postby jnavas » Sat Dec 15, 2018 10:51 am

Saludos
Logré generar reporte, no he podido colocar la Imagen en la 3ra Columna del reporte

Code: Select all  Expand view  RUN


#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



 
User avatar
jnavas
 
Posts: 479
Joined: Wed Nov 16, 2005 12:03 pm
Location: Caracas - Venezuela

Re: TREPORT con imágenes

Postby cnavarro » Sat Dec 15, 2018 11:13 am

Tienes dos posibilidades dependiendo de la version que utilices
1) Report imprime automáticamente imágenes en las columnas
viewtopic.php?f=3&t=21145&p=112918&hilit=report+bitmap#p112918

2) Calculas y colocas tú la imagen, aunque en este caso seguramente te será más fácil crear tú el report con TPrinter y no con TReport
viewtopic.php?f=6&t=29669&p=189486&hilit=REPORT+BITMAP#p167718
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6549
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: TREPORT con imágenes

Postby jnavas » Tue Dec 18, 2018 8:00 am

Saludos,

Logré solucionarlos con las siguientes instrucciones
Code: Select all  Expand view  RUN


ACTIVATE REPORT oReport ;
              WHILE !oCursor:Eof();
              ON STARTGROUP oReport:NewLine();
              ON STARTPAGE  RepBitmap();
              ON CHANGE ONCHANGE()


/*
// En Cada Registro se puede Aplicar Fórmulas
// Es llamado por Skip()
*/

FUNCTION ONCHANGE()

   AEVAL(Array(2),{||oReport:Newline()})

   nContar++

RETURN .T.

FUNCTION REPQRCODE()
   LOCAL cFile:=INVQRCODE(oCursor:INV_CODIGO)
   LOCAL nLin:=1.35
   LOCAL nStep:=(2.17-1.75)

   IF !FILE(cFile)
      QRCODE(oCursor:INV_CODIGO,cFile,.F.)
   ENDIF

   IF nContar=1
      nLin:=1.75
   ENDIF

   IF nContar>1
     nLin:=2.17+(nStep*(nContar-2))
   ENDIF

   oReport:SayBitmap(nLin,6.4, cFile,.3,.34)

RETURN ""


 
User avatar
jnavas
 
Posts: 479
Joined: Wed Nov 16, 2005 12:03 pm
Location: Caracas - Venezuela


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 51 guests