PdfTableHaveMore(tblHandle As Integer) As Boolean

 

Checks whether there are more rows to draw.

 

Used to distribute the rows of a table over several pdf pages.

If you draw a table, you can loop and fill pages until the whole table is drawn.

 

 

Parameters:

 

Name

Type

Description

tblHandle

Integer

The identification number (handle) of a table,

obtained from the PdfTableCreate function.

 

Returns:

 

Type

Value

Description

Boolean

True or False

Returns True if more rows need to be drawn

Returns False if all rows have been drawn

 

Available in:

 

WindowMain

WindowLink

YES

YES

 

Hint: You can find references to XojoScripts which make use of this function by sending the following SQL statement to the database:

Select id,GUID, ScriptName,ScriptCode from im_scripts where ScriptCode Like '%PdfTableHaveMore%'

 

Example XojoScript:

 

Dim width As Double = 150.0

Dim rows As Integer = 50

Dim x,y As Double = 30.0

Dim pageCounter As Integer = 0

 

If PdfStart("testfile.pdf") > 0 Then

 

// sets a predefined page or paper format

Call PdfSetPageformat("E6")  // 312.0 x 439.0

PdfSetPageCoordsTopDown // Set top top-left as 0,0 coordinates

PdfSetFont("Arial","Regular",10.0) // Set output font

Call PdfSetFillColor("&c00000000") // // Set black textcolor

pageCounter = pageCounter + 1  // increase page counter

Call PdfWriteText(x,y,"Page " + Str(pageCounter)) // write page number

 

Dim hTbl As Integer = PdfTableCreate(rows,2,width,9.0)

If hTbl >= 0 Then

Call PdfTableSetColumnWidth(hTbl, 0, 20.0, False) // Set width of first colum, the last column autoadjusts

Call PdfTableSetFont(hTbl,-1, -1, "Arial", 10.0, "Regular") // Set Font, Size and Style for table

Call PdfTableSetBorderWidth(hTbl,-1, -1, 0.0, 0.5, 0.0, 0.5) // Set outer border

Call PdfTableSetGridWidth(hTbl, 0.5,0.5) // Set inner gridlines

Call PdfTableSetCellPadding(hTbl,-1, 1, 5.0, 0.0, 5.0, 0.0) // column 2 (1st column is 0)

Dim rowNum As Integer = 0 // Hold number of PDFTableRows created

rowNum = PdfTableAddRow(hTbl) // Add header row

 

// All columns of first row are set as headers

Call PdfTableSetflags(hTbl,rowNum,-1,2) 

 

// Add header text

Call PdfTableSetCellText(hTbl,rowNum, 0, "Left",   "Top", "NO.")

Call PdfTableSetCellText(hTbl,rowNum, 1, "Right",  "Top", "ITEM")

 

// Add all rows to table and insert some text to cells

For i As Integer = 0 To rows-1

rowNum = PdfTableAddRow(hTbl)

Dim cnt As String = Str(rowNum+1)

Call PdfTableSetCellText(hTbl,rowNum, 0, "Left",   "Top", cnt)

Call PdfTableSetCellText(hTbl,rowNum, 1, "Right",  "Top", "Item" + cnt)

Next

y = y + 30.0 // Set new vertical position

 

Do // Now draw table to pdf and add pages if necessary

Call PdfTableDraw(hTbl,x,y,250.0) // 250.0= Maximum height of table, 0.0 = avoid pagebreaks

 

If PdfTableHaveMore(hTbl) Then

Call PdfEndpage // Terminate page

Call PdfAppend  // Add a new page

y = 30.0 // Reset vertical position

PdfSetFont("Arial","Regular",10.0) // Define font for new page and write text

pageCounter = pageCounter + 1  // Increase page number

Call PdfWriteText(x,y,"Page " + Str(pageCounter)) // write page number

y = y + 30.0 // Set vertical position for table to continue

PdfTableSetPdf(hTbl) // Expand table to new pdf page

Else

Exit  // terminate loop

End If

Loop

End If // hTbl >= 0

Call PdfcloseFile // Finalize PDF

Call pdflaunch // Show it to the user

End If