Error al Ejecutar Reporte usando la Clase tpdf

Error al Ejecutar Reporte usando la Clase tpdf

Postby ruben Dario » Sun Jun 09, 2024 11:39 pm

Saludos,

Trato de Ejecutar en reporte con la clase TPDF, y me genera este error
Antes funcionaba bien,

Code: Select all  Expand view  RUN

Application
===========
   Path and name: K:\v_xharb_v3\Pruebas Varias\tpdf\ejemplo4.exe (32 bits)
   Size: 4,556,288 bytes
   Compiler version: Harbour 3.2.0dev (r2403071241)
   FiveWin  version: FWH 20.12
   C compiler version: Borland/Embarcadero C++ 7.7 (32-bit)
   Windows version: 6.2, Build 9200 (Windows 11)

   Time from start: 0 hours 0 mins 2 secs
   Error occurred at: 06/09/24, 18:23:29
   Error description: Error BASE/1004  Message not found: TPDF:PDFNEWPAGE
   Args:
     [   1] = O   TPDF

Stack Calls
===========
   Called from: ../../../tobject.prg => __ERRRT_SBASE( 0 )
   Called from: ../../../tobject.prg => TPDF:ERROR( 0 )
   Called from: ../../../tobject.prg => (b)HBOBJECT( 0 )
   Called from: ../../../tobject.prg => TPDF:MSGNOTFOUND( 0 )
   Called from: ../../../tobject.prg => TPDF:PDFNEWPAGE( 0 )
   Called from: ejemplo4.prg => CREAPDFCC( 36 )
   Called from: ejemplo4.prg => (b)MAIN( 11 )
   Called from: .\source\classes\MENU.PRG => TMENU:COMMAND( 1560 )
   Called from: .\source\classes\WINDOW.PRG => TWINDOW:COMMAND( 1141 )
   Called from: .\source\classes\WINDOW.PRG => TWINDOW:HANDLEEVENT( 0 )
   Called from: .\source\classes\WINDOW.PRG => _FWH( 3559 )
   Called from: .\source\classes\WINDOW.PRG => WINRUN( 0 )
   Called from: .\source\classes\WINDOW.PRG => TWINDOW:ACTIVATE( 1097 )
   Called from: ejemplo4.prg => MAIN( 16 )



 


Este es el Codigo
Code: Select all  Expand view  RUN

#include "FiveWin.ch"
#include "PdfHbDoc.ch"

Static oWnd, n

Function Main()

   Local oMenu

   MENU oMenu
      MENUITEM "My First Pdf" ACTION creapdfcc()
      MENUITEM "Exit" ACTION oWnd:End
   ENDMENU

   DEFINE WINDOW oWnd MENU oMenu
   ACTIVATE WINDOW oWnd MAXIMIZED

Return Nil

function creapdfcc()

   local dresult // :=  DEHASTA()
   local cImpdos
   local oprn
   local nsaldo := 0
   local nvalor := 0
   local z := 0
   local cPath := "C:\PDF\MEUPDF.pdf"
   local oPdf
   local ntotal := 0

   n  := 2.9

   opdf := tpdf():new(cPath)

   opdf:Pdfnewpage("A4","P")

   opdf:Pdfimage(".\QRCODE.jpg", cm2dpi(2.5), 0,85,66)

   opdf:Pdfatsay("QUÍMICA MEGA SA",cm2dpi( .7 ),100,.T.)

   oPdf:Pdfatsay("Matanza 1456/58",cm2dpi( 1.2 ),100,.T.)

   oPdf:Pdfatsay("Avellaneda-Pcia Bs As",cm2dpi( 1.6 ),100,.T.)

   oPdf:Pdfatsay("T.E.: 4289-2700(Rotativas)",cm2dpi( 2.0 ),100,.T.)

   oPdf:Pdfatsay(replicate("_",115),cm2dpi( 2.5 ),10,.T.)

   opdf:Pdfclosepage()
   opdf:pdfclose()

   msginfo("Archivo creado con éxito","Aviso del sistema")

   /*
   if !empty(cmail)
      correo(cMail,,("Enviamos resumen de cuenta desde " + transform(dresult[1],"@d") + " hasta " +  transform(dresult[1],"@d") ),"Resumen de cuenta", alltrim(cPath ) )
   endif
   */


   ShellExecute( oWnd:hWnd, "open", "c:\pdf\meupdf.pdf" )

return .t.

/*******************************************************************************/

function cm2dpi( nCM, page, lHeight )

   Local nHeight,nDpi := 72
   Local nRes

   if empty( lHeight )
      lHeight := .T.
   endif

   if lHeight
      nHeight := 842.0
      nRes := nHeight - ( nCM * nDpi / 2.54 )
   else
      nRes := ( nCM * nDpi / 2.54 )
   endif

return nRes

 
#pragma BEGINDUMP

int _streams;

#pragma ENDDUMP

 
Ruben Dario Gonzalez
Cali-Colombia
rubendariogd@hotmail.com - rubendariogd@gmail.com
User avatar
ruben Dario
 
Posts: 1070
Joined: Thu Sep 27, 2007 3:47 pm
Location: Colombia

Re: Error al Ejecutar Reporte usando la Clase tpdf

Postby Antonio Linares » Mon Jun 10, 2024 7:53 am

Estimado Ruben,

Tienes que usar los métodos StartPage() y EndPage()
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42111
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Error al Ejecutar Reporte usando la Clase tpdf

Postby ruben Dario » Mon Jun 10, 2024 11:49 pm

Esta solamente se usan para TDosPrn() o PRINTER , es lo que tengo entendido, sigue igual con usando StartPage() y EndPage()

Parece que no usan esta clase tpdf()
Ruben Dario Gonzalez
Cali-Colombia
rubendariogd@hotmail.com - rubendariogd@gmail.com
User avatar
ruben Dario
 
Posts: 1070
Joined: Thu Sep 27, 2007 3:47 pm
Location: Colombia

Re: Error al Ejecutar Reporte usando la Clase tpdf

Postby surGom » Thu Jun 13, 2024 12:32 am

Hola Ruben te envío un ejemplo que uso permanentemente en la empresa para enviar información a los clientes

Dónde aMae es un arreglo de los datos del cliente
oVar es una estructura de la clase Tarray que cargo los datos que quiero enviar

Code: Select all  Expand view  RUN
FUNCTION  impibrpdf( aMae, lPcia, oVar, cPath )

   LOCAL z := 0
   LOCAL nrow := 3.2
   LOCAL cTitulo := ""
   LOCAL oPdf
   LOCAL nComproba
   LOCAL x

   IF lPcia

      cTitulo := "Pcia de Buenos Aires"
      nComproba :=  ovar:nNBruto
   ELSE
      nComproba := oVar:nNbrucap
      cTitulo := "Capital Federal"
   ENDIF

   try
   opdf := tpdf():new( cPath )

   titpdef( oPdf )                    // creopdf están los titulos



   oPdf:Pdfatsay( "CUIT 30-65485547-8",cm2dpi( 2.4 ), 100, .T. )
   oPdf:Pdfatsay( ( "Agente de Retención: " + oApp:nroBruto ), cm2dpi( 2.4 ), 350, .T. )

   oPdf:Pdfsetfont( "COURIER", NORMAL, 10 )
   oPdf:Pdfatsay( "Retención de Ingresos Brutos", cm2dpi( nrow += .8 ), cmancho( 8 ) )
   oPdf:Pdfatsay( cTitulo, cm2dpi( nrow += .5 ), cmancho( 8.4 ) )
   oPdf:Pdfatsay( "Fecha: " + DToC( oVar:dfecha ), cm2dpi( nrow += .7 ), cmancho( 1.5 ) )
   oPdf:Pdfatsay( "Constancia N° " + valstr( nComproba ), cm2dpi( nrow += .5 ), cmancho( 1.5 ) )
   oPdf:Pdfatsay( ( "Rentenido a: " + aMae[ 2 ] ), cm2dpi( nrow += .5 ), cmancho( 1.5 ) )
   oPdf:Pdfatsay( ( "CUIT " + aMae[ 7 ] ), cm2dpi( nrow += .5 ), cmancho( 1.5 ) )
   oPdf:Pdfatsay( ( "Domicilio: " + AllTrim(aMae[ 3 ] ) + Space(2 ) + AllTrim(aMae[ 4 ] ) ), cm2dpi( nrow += .5 ), cmancho( 1.5 ) )
   oPdf:Pdfatsay( aMae[ 5 ], cm2dpi( nrow += .5 ), cmancho( 1.5 ) )
   oPdf:Pdfatsay( ( "Número de IIBB: " + aMae[ 17 ] ), cm2dpi( nrow += .5 ), cmancho( 1.5 ) )
   oPdf:Pdfatsay( "Pago efectuado: $" + Transform( oVar:totalre,"@e 99,999,999.99" ), cm2dpi( nrow += .5 ), cmancho( 1.5 ) )
   oPdf:Pdfatsay( "Importe retenido: $" + Transform( iif(lPcia,oVar:nRetib,oVar:nRetibcap ),"@e 99,999,999.99" ), cm2dpi( nrow += .5 ), cmancho( 1.5 ) )
   oPdf:Pdfatsay( "Alícuota aplicada: %" + iif( lPcia,Transform(oVar:nPorIB, "@e 99.99" ),Transform(oVar:Ibrecap, "@e 99.99" ) ), cm2dpi( nrow += .5 ), cmancho( 1.5 ) )


   FOR x = 1 TO Len( oVar:adeta )
      IF oVar:adeta[ x, 5 ] >= oApp:minibru
         oPdf:Pdfatsay( ( "Afecta a comprobante Nº " + oVar:adeta[ x,2 ] + " Base Imp. " + Transform(oVar:adeta[ x,5 ],"@e 99,999,999.99" ) ), cm2dpi( nrow += .5 ), cmancho( 1.5 ) )
      ENDIF
   NEXT
   oPdf:Pdfatsay( "Importe que será depositado por declaración jurada correspondiente al mes de", cm2dpi( nrow += 1.2 ), cmancho( 1.5 ) )
   oPdf:Pdfatsay( ( mes(Month(oVar:dfecha ) ) + " de " + valstr(Year(oVar:dFecha ) ) ), cm2dpi( nrow += .5 ), cmancho( 1.5 ) )


   opdf:Pdfimage( oApp:curproga + "firma1.jpg", cm2dpi( nrow += 3.5 ), cmancho( 9.5 ), 158, 100 )

   opdf:Pdfclosepage()
   oPdf:pdfclose()
catch
   ? "No encuentro variable"
end

RETURN NIL


Esta funcionando desde hace varios años.
Espero te sirva

Luis
surGom
 
Posts: 640
Joined: Wed Oct 19, 2005 12:03 pm

Re: Error al Ejecutar Reporte usando la Clase tpdf

Postby ruben Dario » Tue Jun 18, 2024 12:21 am

Gracias ya encontre el problema, es al crear la libreria, si coloco los fuentes dentro del proyecto sin usar la libreria si funciona.

Tu tienes el bache de compilacion para crear la libreria, para ver el error

Asi compilo
Code: Select all  Expand view  RUN

        \harbour_v\harbour_bcc77\bin\harbour \v_xharb_v3\librerias\TPDF\pdf1.prg  /l /m /q /es2 /gc1 -D__EXPORT__ -D__HARBOUR__ /O.\obj1\ /I\fwh\include;\harbour_v\harbour_bcc77\include;\v_xharb_v3\include;\include;\harbour_v\harbour_bcc77\contrib\;\harbour_v\harbour_bcc77\contrib\gtwvg;\harbour_v\harbour_bcc77\contrib\hbwin  -w0 > compiler.log
        \C_BCC\BCC77\bin\BCC32  -c -tWM -I\harbour_v\harbour_bcc77\include;\harbour_v\harbour_bcc77\contrib\xhb -o.\obj1\pdf1.obj  .\obj1\pdf1.c > compiler.log
        echo + .\obj1\pdf1.obj  >> bl32.bc
        IF EXIST tmp del tmp
        echo  -c -tWM -D__HARBOUR__ > tmp
        \harbour_v\harbour_bcc77\bin\harbour \v_xharb_v3\librerias\TPDF\PDFHBDCS.prg  /l /m /q /es2 /gc1 -D__EXPORT__ -D__HARBOUR__ /O.\obj1\ /I\fwh\include;\harbour_v\harbour_bcc77\include;\v_xharb_v3\include;\include;\harbour_v\harbour_bcc77\contrib\;\harbour_v\harbour_bcc77\contrib\gtwvg;\harbour_v\harbour_bcc77\contrib\hbwin  -w0 > compiler.log
        \C_BCC\BCC77\bin\BCC32  -c -tWM -I\harbour_v\harbour_bcc77\include;\harbour_v\harbour_bcc77\contrib\xhb -o.\obj1\PDFHBDCS.obj  .\obj1\PDFHBDCS.c > compiler.log
        echo + .\obj1\PDFHBDCS.obj  >> bl32.bc
        IF EXIST tmp del tmp
        echo  -c -tWM -D__HARBOUR__ > tmp
        echo -I\harbour_v\harbour_bcc77\include;\harbour_v\harbour_bcc77\contrib\xhb  >> tmp
        \C_BCC\BCC77\bin\BCC32  -c -tWM -o.\obj1\pdfhbdoc.obj  @tmp \v_xharb_v3\librerias\TPDF\pdfhbdoc.c > compiler.log
        echo + .\obj1\pdfhbdoc.obj  >> bl32.bc
        IF EXIST tmp del tmp
        \C_BCC\BCC77\bin\TLIB \v_xharb_v3\lib\Harb\libTPdf_h.lib +.\obj1\pdf1.obj  +.\obj1\PDFHBDCS.obj +.\obj1\pdfhbdoc.obj  /0 /P64,, > compiler.log

 

Este es el error al crear la libreria

Code: Select all  Expand view  RUN

TLIB 7.1 Copyright (c) 1987-2019 Embarcadero Technologies, Inc.

Warning: 'pdf1' already in LIB, not changed!
Warning: 'PDFHBDCS' already in LIB, not changed!
Warning: 'pdfhbdoc' already in LIB, not changed!
Warning: public '_HB_FUN_HB_PDFNEW' in module 'pdfhbdoc' clashes with prior module 'PDFHBDCS'
Warning: public '_HB_FUN_HB_PDFNEWPAGE' in module 'pdfhbdoc' clashes with prior module 'PDFHBDCS'
Warning: public '_HB_FUN_HB_PDFENDPAGE' in module 'pdfhbdoc' clashes with prior module 'PDFHBDCS'
Warning: public '_HB_FUN_HB_PDFWRITEBOLDTEXT' in module 'pdfhbdoc' clashes with prior module 'PDFHBDCS'
Warning: public '_HB_FUN_HB_PDFWRITETEXT' in module 'pdfhbdoc' clashes with prior module 'PDFHBDCS'
Warning: public '_HB_FUN_HB_PDFCLOSE' in module 'pdfhbdoc' clashes with prior module 'PDFHBDCS'
 
Ruben Dario Gonzalez
Cali-Colombia
rubendariogd@hotmail.com - rubendariogd@gmail.com
User avatar
ruben Dario
 
Posts: 1070
Joined: Thu Sep 27, 2007 3:47 pm
Location: Colombia


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 46 guests