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 work-around
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.
|