Abstract base class for JobData.
JobData
Overview
TFORMer SDK retrieves data used for printing a
Job with the help of
JobData.
JobData is used to provide values for the DataFields used in a
FormLayout.Different types of
JobData classes are supported:
- Importing data using JobDataCsv, JobDataXml or JobDataOdbc.
Each of these connects to the specified file or database and reads the data Record by Record.
- Provide the data via code using JobDataRecordSet.
This is the preferred method for passing data to TFORMer SDK from within an application. The JobDataRecordSet is constructed in memory and filled with an arbitrary number of records. Each Record contains pairs of DataField-names/DataField-values.
- A JobDataDataSource defined by the user in the FormLayout.
Such a DataSource defines how data is retrieved (e.g. from an ODBC database), the field-mappings (see DSFieldMapping) and optional parameters (see DataSourceParameter).
Data Processing
JobData is always iterated Record by Record, the order of the Records is not changed. All DataFields available in a Record are processed.
- Usually each Record triggers the printing of the detail band(s) in the FormLayout.
- Report headers are printed at the top of the first page (above the first page header) after the first Record was read.
- Report footers are printed at the bottom of the last page after the last Record was read.
- Page headers and page footers are printed when required, no Record is needed to trigger them.
- Note:
- TFORMer requires at least one Record to produce output.
Escape Sequences
It depends on
setHandleEscapeSequences whether possible escape sequences in the values are translated into their corresponding binary representation. See
Escape Sequences for details.
Record Copies
Each Record of a
DataSource is usually considered exactly once for generating output. Use
DataSource.setCopyColumnName to instruct
TFORMer SDK to use a specific field of the
DataSource which contains the copy counter. This feature is helpful whenever a single Record of a
DataSource should be printed multiple times (e.g. if a certain number of identical labels should be printed).
Unknown DataFields in JobData
If the
JobData provides more DataFields than defined (either in the stand-alone
FormLayout or in the
Project of the
Repository), these additional fields will be ignored.
Missing DataFields in JobData
If a
DataField, which is used in the
FormLayout, is not present in the
JobData its value depends on
JobData.setReuseValues. if
JobData.setReuseValues is set to
true
then the value of a DataField will be preserved between records. The last value will be reused in consecutive records until a new value is set.
false
(which is the default), then all DataFields are set to "" (empty string) or 0 (depending on the DataFieldType) between records.
- Note:
- DataFields which are computed with post- or pre-evaluations within a FormLayout will not be cleared (see DataFieldUsage).
Missing or Empty JobData
If no (or an empty)
JobData was specified then
TFORMer SDK uses the default
DataSource for printing the Job. The default data is stored in an extra file located in the same directory as the FormLayout itself and is named
FormlayoutName.xml
. It contains the
DataField values used during the last
TFORMer Designer session.If no file with default data exists
TFORMer SDK produces no output.
Identifying the Required DataFields
In order to identify all DataFields in a
Project or in a
FormLayout use the functions
Project.getFirstDataField and
DataField.getNext. If you want to know, whether a returned
DataField is actually used in the FormLayout use the function
FormLayout.getDataFieldUsage.
More Information
JobData
- Note:
- Thread-safety: A single instance of this class must not be used by different threads.