FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Error al Ejecutar Reporte usando la Clase tpdf
Posts: 1078
Joined: Thu Sep 27, 2007 03:47 PM
Error al Ejecutar Reporte usando la Clase tpdf
Posted: 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 (fw): Select all Collapse
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 (fw): Select all Collapse
#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
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Error al Ejecutar Reporte usando la Clase tpdf
Posted: Mon Jun 10, 2024 07:53 AM

Estimado Ruben,

Tienes que usar los m茅todos StartPage() y EndPage()

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 1078
Joined: Thu Sep 27, 2007 03:47 PM
Re: Error al Ejecutar Reporte usando la Clase tpdf
Posted: 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
Posts: 652
Joined: Wed Oct 19, 2005 12:03 PM
Re: Error al Ejecutar Reporte usando la Clase tpdf
Posted: 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 (fw): Select all Collapse
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
Posts: 1078
Joined: Thu Sep 27, 2007 03:47 PM
Re: Error al Ejecutar Reporte usando la Clase tpdf
Posted: 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 (fw): Select all Collapse
聽 聽 聽 聽 \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 (fw): Select all Collapse
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

Continue the discussion