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.
TFORMer requires at least one Record to produce output.

Escape Sequences

It depends on HandleEscapeSequences 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.CopyColumnName 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.ReuseValues. if JobData.ReuseValues 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.
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.FirstDataField and DataField.Next. If you want to know, whether a returned DataField is actually used in the FormLayout use the function FormLayout.GetDataFieldUsage.

More Information

© 2006-2023 - all rights reserved by TEC-IT Datenverarbeitung GmbH
Generated on Thu Dec 28 2023 18:45:19 for TFORMer SDK - NET with doxygen 1.9.4