HPDF ERROR FOR DBF TO PDF
Moderator: Rathinagiri
-
- Posts: 17
- Joined: Mon Apr 01, 2013 12:15 pm
HPDF ERROR FOR DBF TO PDF
I AM CONVERTING A DBF FILE TO PDF FILE BY USING HPDF
THIS DBF FILE HAVE ONE FIELD AND THAT FIELD IS WRITTEN LINE BY LINE IN PDF FILE ,
BUT I GET ERROR
MY CODE IS AS UNDER :
#INCLUDE "HMG.CH"
#INCLUDE "HFCL.CH"
FUNCTION EXPORTTOPDF()
CLOS ALL
USE EDITOR1
*THIS IS DBF FILE AND WILL CONVERTED TO PDF, IT HAS ONLY ONE TEXT FIELD NAMED SLINE
SELECT HPDFDOC "PDFREPO.PDF" PAPERSIZE HPDF_PAPER_A4
START HPDFDOC
DO WHIL .T.
P1=1
*THIS IS PAGE LINE COUNTER
START HPDFPAGE
DO WHIL .NOT. EOF()
@P1,1 HPDFPRINT EDITOR1->SLINE FONT "COURIER" SIZE 10
P1=P1+1
SKIP
IF P1>50
*IF PAGE HAS MORE THE 50 LINE THEN CREATE NEW PAGE
EXIT
ENDIF
ENDDO
END HPDFPAGE
IF EOF()
EXIT
ENDIF
ENDDO
END HPDFDOC
EXECUTE FILE "PDFREPO.PDF"
RETU
THIS GIVES ERROR THAT : ERROR DBCMD/2001 : WORK AREA NOT IS USE : DBGOTO
WHAT IS ERROR IN THIS, PLEASE HELP
THIS DBF FILE HAVE ONE FIELD AND THAT FIELD IS WRITTEN LINE BY LINE IN PDF FILE ,
BUT I GET ERROR
MY CODE IS AS UNDER :
#INCLUDE "HMG.CH"
#INCLUDE "HFCL.CH"
FUNCTION EXPORTTOPDF()
CLOS ALL
USE EDITOR1
*THIS IS DBF FILE AND WILL CONVERTED TO PDF, IT HAS ONLY ONE TEXT FIELD NAMED SLINE
SELECT HPDFDOC "PDFREPO.PDF" PAPERSIZE HPDF_PAPER_A4
START HPDFDOC
DO WHIL .T.
P1=1
*THIS IS PAGE LINE COUNTER
START HPDFPAGE
DO WHIL .NOT. EOF()
@P1,1 HPDFPRINT EDITOR1->SLINE FONT "COURIER" SIZE 10
P1=P1+1
SKIP
IF P1>50
*IF PAGE HAS MORE THE 50 LINE THEN CREATE NEW PAGE
EXIT
ENDIF
ENDDO
END HPDFPAGE
IF EOF()
EXIT
ENDIF
ENDDO
END HPDFDOC
EXECUTE FILE "PDFREPO.PDF"
RETU
THIS GIVES ERROR THAT : ERROR DBCMD/2001 : WORK AREA NOT IS USE : DBGOTO
WHAT IS ERROR IN THIS, PLEASE HELP
Re: HPDF ERROR FOR DBF TO PDF
You have not started new print page if > 50. Your start is before do while.
I would do this different but I your case I think.
After
IF EOF()
EXIT
ENDIF
START HPDFPAGE
LOOP
I did not try but give a try.
Franco
I would do this different but I your case I think.
After
IF EOF()
EXIT
ENDIF
START HPDFPAGE
LOOP
I did not try but give a try.
Franco
All The Best,
Franco
Canada
Franco
Canada
Re: HPDF ERROR FOR DBF TO PDF
mmmm.... Yo lo harìa en 2 partes
*---------------------------------------------
mmmm .... I would do it in 2 parts
P.D. No lo he probado
*------------------------------------
P.S. I have not tried it
*---------------------------------------------
mmmm .... I would do it in 2 parts
Code: Select all
#INCLUDE "HMG.CH"
#INCLUDE "HFCL.CH"
FUNCTION EXPORTTOPDF()
LOCAL cSLine := "", i1 := 0, aHoja := {}
USE EDITOR1
DBGoTop()
DO WHILE .NOT. EOF()
cSLine := cSLine + SLINE + HB_OsNewLine()
SKIP
i1++
IF i1 = 50 .OR. EOF()
AAdd( aHoja, cSLine )
i1 := 0
cSline := ""
ENDIF
ENDDO
SELECT HPDFDOC "PDFREPO.PDF" PAPERSIZE HPDF_PAPER_A4
START HPDFDOC
FOR i1 = 1 TO HMG_LEN( aHoja )
START HPDFPAGE
@ 1,1 HPDFPRINT aHoja[i1] FONT "COURIER" SIZE 10
END HPDFPAGE
NEXT
END HPDFDOC
EXECUTE FILE "PDFREPO.PDF"
RETURN
P.D. No lo he probado
*------------------------------------
P.S. I have not tried it
Andrés González López
Desde Guadalajara, Jalisco. México.
Desde Guadalajara, Jalisco. México.
Re: HPDF ERROR FOR DBF TO PDF
Try this,
Works in w10 hmg3.4.4
WOOPS FORGOT TO CHANGE NAME FIELD TO EDITOR1->SLINE
Franco
Code: Select all
#include <hmg.ch>
#INCLUDE "HFCL.CH"
FUNCTION EXPORTTOPDF()
LOCAL pline := 5, page := 1
USE EDITOR1 // OR ANY TABLE
DBGoTop()
SELECT HPDFDOC "PDFREPO.PDF" PAPERSIZE HPDF_PAPER_A4
START HPDFDOC
START HPDFPAGE
@ pline, 100 hpdfprint 'New Report'
pline := pline + 5
do while ! eof()
@ pline,5 hpdfprint EDITOR1->SLINE size 10 // OR ANY FIELD FROM TABLE
skip
if pline >= 270 .and. ! eof()
@ pline + 12,100 hpdfprint 'Continued Page ' +alltrim(str(page+1))
page:=page+1
END HPDFPAGE
START HPDFPAGE
pline := 5
loop
else
pline := pline+5
loop
endif
enddo
@ pline+5,100 hpdfprint ' End of Report'
END HPDFPAGE
END HPDFDOC
EXECUTE FILE "PDFREPO.PDF"
Return
WOOPS FORGOT TO CHANGE NAME FIELD TO EDITOR1->SLINE
Franco
All The Best,
Franco
Canada
Franco
Canada
Re: HPDF ERROR FOR DBF TO PDF
You can also use the following. I use the second one for my business reports with pictures (you no not need hpdfprint.
Code: Select all
#include <hmg.ch>
*#INCLUDE "HFCL.CH"
EXPORTTOPD1()
EXPORTTOPD()
RETURN
FUNCTION EXPORTTOPD
LOCAL pline := 5, page := 0
USE EDITOR1
DBGoTop()
SELECT HPDFDOC "PDFREPO.PDF" PAPERSIZE HPDF_PAPER_A4
START HPDFDOC
START HPDFPAGE
@ pline, 100 hpdfprint 'New Report' size 12
pline := pline + 5
do while ! eof()
@ pline,8 hpdfprint sline size 10
skip
if pline >= 270 .and. ! eof()
@ pline + 12,100 hpdfprint 'Continued Page ' +alltrim(str(page+1))
page:=page+1
END HPDFPAGE
START HPDFPAGE
pline := 5
loop
else
pline := pline+5
loop
endif
enddo
@ pline+5,100 hpdfprint ' End of Report'
END HPDFPAGE
END HPDFDOC
close editor1
EXECUTE FILE "PDFREPO.PDF"
Return
FUNCTION EXPORTTOPD1
LOCAL pline := 5, page := 1, pdp := '', lsuccess:= '', plen := 250
USE EDITOR1
DBGoTop()
pdp := 'PDFREPO1.pdf'
IF MSGYESNO('Do you Want To PDF (Y/N) ? ')
SELECT PRINTER PDF PDP TO LSUCCESS
IF ! lSuccess .OR. LEN(ALLTRIM(PDP)) < 1
MSGINFO('PDF File Not Available')
RETURN
ENDIF
PLEN :=260
ELSE
SELECT PRINTER DEFAULT TO lSUCCESS preview ;
ORIENTATION PRINTER_ORIENT_PORTRAIT ;
PAPERSIZE PRINTER_PAPER_LETTER ;
QUALITY PRINTER_RES_MEDIUM
IF LSUCCESS == .F.
MSGINFO('Printer Not Available')
RETURN
ENDIF
PLEN := 250
ENDIF
START PRINTDOC
START PRINTPAGE
@ pline, 100 print 'New Report' size 12
pline := pline + 5
do while ! eof()
@ pline,5 print sline size 10
skip
if pline >= plen .and. ! eof()
@ pline + 12,100 print 'Continued Page ' +alltrim(str(page+1)) size 10
page:=page+1
END PRINTPAGE
START PRINTPAGE
pline := 5
loop
else
pline := pline+5
loop
endif
enddo
@ pline+5,100 print ' End of Report' size 10
END PRINTPAGE
END PRINTDOC
close editor1
if plen = 260 // pdf print when 270 FIXED ERROR HERE WAS 270 CHANGED TO 260
EXECUTE FILE "PDFREPO1.PDF"
endif
Return
Last edited by franco on Wed Apr 22, 2020 7:14 pm, edited 1 time in total.
All The Best,
Franco
Canada
Franco
Canada
- dragancesu
- Posts: 930
- Joined: Mon Jun 24, 2013 11:53 am
- DBs Used: DBF, MySQL, Oracle
- Location: Subotica, Serbia
Re: HPDF ERROR FOR DBF TO PDF
I do not use creating pdf directly, it is easily solved by using pdf printer
this demo creates a report, enough to see where you are wrong
this demo creates a report, enough to see where you are wrong
- Attachments
-
- test.zip
- (3.83 KiB) Downloaded 138 times
-
- Posts: 17
- Joined: Mon Apr 01, 2013 12:15 pm
Re: HPDF ERROR FOR DBF TO PDF
RESPECTED BROTHERdragancesu wrote: ↑Wed Apr 22, 2020 10:29 am I do not use creating pdf directly, it is easily solved by using pdf printer
this demo creates a report, enough to see where you are wrong
A POWERFULL SOFTWARE DOES NOT REQUIRE ANY PDF PRINTER , IT CAN PRINT ITSELF TO PDF WITHOUT ANY EXTRA SOFTWARE
I AM CREATING A PROGRAM WHICH CAN EXPORT REPORT TO EXCEL FILE, PDF FILE, TEXT FILE , HTML FILE AND WORD FILE
REPORT CAN BE PREPARED IN ONE DBF FILE AND THEN SHOWN BY USING GRID CONTROL, THEN IT CAN BE EXPORTED TO ALL THIS FORMATS
BUT I GET ERROR IN PDF FORMAT
-
- Posts: 17
- Joined: Mon Apr 01, 2013 12:15 pm
Re: HPDF ERROR FOR DBF TO PDF
YES BROTHER, I HAVE TO WORK IN THIS METHOD TO GET CORRECT RESULTandyglezl wrote: ↑Tue Apr 21, 2020 5:10 pm mmmm.... Yo lo harìa en 2 partes
*---------------------------------------------
mmmm .... I would do it in 2 parts
Code: Select all
#INCLUDE "HMG.CH" #INCLUDE "HFCL.CH" FUNCTION EXPORTTOPDF() LOCAL cSLine := "", i1 := 0, aHoja := {} USE EDITOR1 DBGoTop() DO WHILE .NOT. EOF() cSLine := cSLine + SLINE + HB_OsNewLine() SKIP i1++ IF i1 = 50 .OR. EOF() AAdd( aHoja, cSLine ) i1 := 0 cSline := "" ENDIF ENDDO SELECT HPDFDOC "PDFREPO.PDF" PAPERSIZE HPDF_PAPER_A4 START HPDFDOC FOR i1 = 1 TO HMG_LEN( aHoja ) START HPDFPAGE @ 1,1 HPDFPRINT aHoja[i1] FONT "COURIER" SIZE 10 END HPDFPAGE NEXT END HPDFDOC EXECUTE FILE "PDFREPO.PDF" RETURN
P.D. No lo he probado
*------------------------------------
P.S. I have not tried it
I HAVE MODIFY MY CODE AS UNDER AND GET CORRECT RESULT
#INCLUDE "HMG.CH"
#INCLUDE "HFCL.CH"
FUNCTION EXPORTTOPDF()
CLOS ALL
USE EDITOR1
V:={}
DL=0
DO WHIL .NOT. EOF()
AADD(V,SLINE)
*HERE SLINE IS FIELD OF DBF FILE EDITOR1
DL=DL+1
SKIP
ENDDO
LDL=DL
DL=1
P1:=5
SELECT HPDFDOC "PDFREPO.PDF" PAPERSIZE HPDF_PAPER_A4
START HPDFDOC
START HPDFPAGE
DO WHIL DL<=LDL
@P1,5 HPDFPRINT V[DL] FONT "Courier" SIZE 10
P1:=P1+5
DL:=DL+1
IF P1 >= 270
END HPDFPAGE
START HPDFPAGE
P1:=5
ENDIF
ENDDO
END HPDFPAGE
END HPDFDOC
EXECUTE FILE "PDFREPO.PDF"
BY READING THIS I AM COME TO DECISSION THAT WE CAN NOT USE DBF FILE COMMAND LIKE SEEK OR DBSEEK() WITH HPDF LIBRARY, THE CODE NOT WORK, BUT WHEN I HAVE MODIFIED THIS AS WRITTEN ABOVE, I GET CORRET RESULT
-
- Posts: 17
- Joined: Mon Apr 01, 2013 12:15 pm
Re: HPDF ERROR FOR DBF TO PDF
I WANT TO SHARE ONE MORE LITTLE KNOWLEDGE, PLEASE WRITE IN BUILT FONT NAME AS SPECIFIED IN HPDF HELP FILE
I AM WRITING FONT NAME "COURIER" BUT IT DOES NOT WORK
NOW I WRITE "Courier", THEN IT WORKS
I AM WRITING FONT NAME "COURIER" BUT IT DOES NOT WORK
NOW I WRITE "Courier", THEN IT WORKS