No data returned using 2D FontEncode Functions in PowerBuilder

< Back
You are here:
Print

No data returned using 2D FontEncode Functions in PowerBuilder

When using PDF417 and Data Matrix FontEncode Functions in PowerBuilder, there is no data returned. This issue applies to all IDAutomation Barcode Font and Encoder products.

Solution(s):

The following is an example of using the PDF417 FontEncode function from IDAutomation ActiveX Barcode Controls in PowerBuilder. The FontEncode function should return the data formatted for the PDF417 barcode font in the variable Is_barcode_pdf. In this example, the variable Is_barcode_pdf is not updated.

string
ls_location_plain = “123456789”
string
ls_barcode_pdf
OLEObject        ole_pdf417
ole_pdf417 = Create OLEObject
li_retval = ole_pdf417.ConnectToNewObject( "IDAuto.PDF417" )
ole_pdf417.FontEncode( ls_barcode_plain, 0, 0, 0, 0, 0, 0, ls_barcode_pdf 
)

To fix this problem change the above line of code to:

ole_pdf417.FontEncode( ls_barcode_plain, 0, 0, 0, 0, 0, 0, REF ls_barcode_pdf 
)

The first line of code did not work because the last parameter of FontEncode is passed into the function “By Value”. Passing the parameter “By Value” causes a copy of the variable to be sent into the function, thus, when it returns, the actual variable is not updated. The workaround for this is to use the REF keyword before the variable name. The REF keyword tells PowerBuilder to pass the address of the variable to the FontEncode function allowing the variable to be populated and returned by the FontEncode function.