Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Version published after converting to the new editor

API Overview

...

Element name

Element type

Description

userOpen

Boolean

Set to True to enable user-controlled file open / close using the file.open() and file.close() methods. Otherwise the file will be opened automatically before this method returns and closed automatically when the calling function ends.

infDS

String

Name of a File Information data structure which will be populated with feedback information after each file method call. The data structure must be defined in the calling scope using pjs.define().

qualified

Boolean

Set to True to qualify field names with the internal file and record format names

include

Array

A list of record formats to define in the calling scope. If omitted, all record format names are included.

ignore

Array

A list of record formats to ignore. If omitted, all record format names are included.

rename

Object

A list of record formats to rename. The record format name given by each object property is set to the name given in the corresponding value.

likeFile

String

The internal name of another file defined using this method in the calling scope. This defines another instance of the file using the same configuration options.

levelIds

Array

A list of level identifiers for each record format in the file. If specified, record format level checks are performed before opening the file. Otherwise, no level checks are done.

prefix

Object / String

Defines a prefix that will be used to partially rename all the fields of the externally defined printer file. This property can be defined in 2 different ways.

  1. As an object of the following format:
    {
      "numberOfCharsToReplace": nn, //numeric value indicating the number of characters, if any, in the existing field names to replace with the prefix
      "prefix": "xxxx" //string prefix value. If numberOfCharsToReplace is not defined or is 0, then the prefix is appended to the beginning of the field names
    }

  2. As a string value that will be appended to the beginning of the field names.

template

Boolean

If set to True, the the declared file cannot be opened and used for I/O, but its record formats and fields can be used as templates for field definitions by using the options 'like', 'likeRec', and 'extName' with pjs.define().

static

Boolean

If set to True, the file will hold its state across calls to the function. If the file is open when the function, then the file will still be open on the next call to the function.

alias

Boolean

If set to True, the alias (alternate) names will be used, if present, for the fields associated with the file and also for subfield names in data structures defined with the 'likeRec' option.

renameFields

String

Object containing field names to rename. The field names are given as properties of this object and their new names as values of these properties.

For example:

{
"field1": "newField1",
"field2": "newField2"
}

If a prefix is defined, the renameFields object properties must be defined with the prefix in place in order for those fields to be renamed.

For example, if the property prefix is defined as string "EX", then renameFields might look like this:

{
"EXfield1": "newField1",
"EXfield2": "newField2"
}

overflowIndicator

String

Set to the name of an indicator that will be set on when the printer file's overflow line has been printed on. For example, '*inoa', or '*in01', or 'overflow'.

recordLength

Number

Record length, for program described printer files.

output

String

Specifies whether the output is written to a PDF file, and HTML file, or a spooled file on IBM i. Specify "pdf", "html", or omit the property for spooled file output.

orientation

String

For PDF output, specifies the file orientation. Valid values are "landscape" and "portrait".

printControl

String

Name of Print Control (PRTCTL) compatible (*COMPAT) data structure. The data structure must be defined in the calling scope using pjs.define().

printControlExtended

String

Name of Print Control (PRTCTL) extended data structure. The data structure must be defined in the calling scope using pjs.define().

records

Array

Array of record definition objects, for program described printer files. Record definition objects can have the following properties:

  • condition (String, optional) - Set to an indicator expression, such as '50 and N30' or '50 and N30 or 60 and N90'. The record will only be output if the condition is true when the record is written,

  • name (String, optonal) - The name of the record being defined.

  • skipBefore (Number, optional) - Line number to skip to before printing the record.

  • spaceBefore (Number, optional) - Number of lines to advance before printing the record.

  • skipAfter (Number) - Line number to skip to after printing the record.

  • spaceAfter (Number) - Number of lines to advance after printing the record. The default is 1 if not specified.

  • fields (Array, optional) - An array of field definition objects. Field definition objects can have the following properties:

    • condition (String, optional) - Set to an indicator expression, such as '50 and N30' or '50 and N30 or 60 and N90'. The field will only be output if the condition is true when the record is written,

    • pos (optional) - Specifies the end or start position of the field. If a number is specified, the field will end at the given position. If a string like '+1', '+2', '-1', etc. is specified, the field will start at the given offset, relative to the previous field in the record. If no position is specified, the field will start immediately after the previous field in the record.

    • blankAfter (Boolean, optional) - If set to true, the field will be set to a default value after the record is written, based on the field data type. i,.e. blank, zero, etc.

    • text (String, optional) - Constant field text.
      -Or-

    • name (String, optional) - Name of dynamic field. The field must be defined in the calling scope using pjs.define(), or from a file defined using pjs.defineDisplay(), pjs.defineTable(), or pjs.definePrinter().

    • editCode (String, optional) - Set to an IBM i edit code to format the dynamic field data.

    • editWord (String, optional) - Set to an IBM i edit word to format the dynamic field data. This property is ignored if 'editCode' is used.

    • dateFormat (String, optional) - Specifies a date format, such as "*usa"

  • html - Used to specify HTML output. Can only be used with "html" output type. Dynamic values can be specified using EJS syntax.

For PDF output, fields can also implement the following properties:

  • font (String, optional) - name of the font

  • fontSize (Number, optional) - size of the font in pt

  • lineHeight (Number, optional) - the line height (default: 1)

  • bold (Boolean, optional) - whether to use bold text (default: false)

  • italics (Bolean, optional) - whether to use italic text (default: false)

  • alignment (Sstring, optional) - the alignment of the text (‘left’ or ‘center’ or ‘right’ or ‘justify’)

  • characterSpacing (Number, optional) - size of the letter spacing in pt

  • color (String, optional) - the color of the text (color name e.g., ‘blue’ or hexadecimal color e.g., ‘#ff5500’)

  • background (String, optional) - string the background color of the text

  • decoration (String, optional) - the text decoration to apply (‘underline’ or ‘lineThrough’ or ‘overline’)

  • decorationStyle (String, optional) - the style of the text decoration (‘dashed’ or ‘dotted’ or ‘double’ or ‘wavy’)

  • decorationColor (String, optional) - the color of the text decoration

  • style (String or Array of Strings, optional) - the style name(s) as defined by the styles configuration property

  • image (String, optional) - the image source of an image to embed in the PDF

...