bpi.form.make2()

Note: This subroutine accepts params for creating a document.  Based on the value of params<p.format>, this routine will re-route to bpi.form.make.(value_of_params<p.format>).  For example, if params<p.format> = odt, then the routine will redirect to bpi.form.make2.odt()

This program accepts a template filename and a set of data to insert into that template.  Repeating multivalue data can be handled and parts of the template will be repeated for as many mulitvalues as are contained in the data.  The subroutine unpacks the ‘odt’ format, makes the insertions and then repacks the document and writes it to a specified output path.

Subroutine Syntax

 CALL bpi.form.make2( template.path, output.path, temp.path, params, blocks, tags, vals, verbose,error, message)

Parameters

Param

Direction

Description

template.path

passed

path to template file (odt file that contains tag/placeholders)

output.path

passed

Path to output file (where you want finished doc written)

temp.path

passed

path to temp (working) directory.  Usually based on pid

params

passed

An array of params for processing

params<.p.format> if set is the doc format (e.g., odt).  If not set, will try to determine format based on file extension.

blocks

passed

New in version 2 of BPI Forms.  @AM array associated with tags array.  If blockname is defined, then this tag will ONLY be applied to tag references if the tag in the document contains the same block reference.  For example, in a odt document, if the tag {repeat=tr;block=myblock} appared, then this tag’s values can be multivalued and the document block (in this example tr (table row) will be repeated for as many multivalues as are associated this tag.

tags

passed

Array of tag names associated with blocks and vals params

vals

passed

Array of values associated with same attribute position in the tags array.  This can be a multivalued array of values. 

verbose

passed

Level of verbosity

status

returned

error code or @FALSE if successful

message

returned

error message or blank if successful

 
Example:

See the example bpi_simple_test_program