Printed Forms form Relationships (ODT)

From IHRIS Wiki

Magic Data

The magic data to define a printed form based on relationship is defined underneath a page called $pageName. There are two places to define pages, either a top-level page under /I2CE/page/$pageName or a module page under /modules/$module/$pageName for the module $module.

Under you define:

  • class(required scalar node) Value is "I2CE_PageGenerateRelationshipTemplate"
  • args (required parent node)
    • relationship (required scalar node) = $relationship
    • template_upload (optional parent node)
      • content required scalar binary node. the binary ODT file.
      • name required scalar node. the name of the file when it is generated
    • template (optional scalar node). If template_upload is not defined, this is the name of a file in the ODT_TEMPLATES search path.
    • segment_break. optional scalar node. what to use a a page/row break for the template. Defaults to
      <text:p text:style-name="P1"/>
      which is for a page break. For a line break it is
      <text:line-break/>

You need to google for the others.

    • task: optional parent node
    • use_display_fields: (optional scalar node) Defaults to true. If true, we get the display version of a field, for example the field position+job would be "General Nurse." it evaluates to false then we get the raw data fields, for example "position+job" is "job|42"


To easily create the template_upload node, simply browse under magic data to /I2CE/page/$pageName/args, create a sub node named template_file. Do not set its type. Under the "Import" drop-down menu select the to load a binary file.

Calling the Page

If your relationship has primary form $form, you call the page with:

$pageName?id=$form|$id

where $id is the id of the primary form you are interested in.

It will loop through all the joined in data for the primary form with the given id and add a certificate/printed form for each.