FormComposer is a report program generator with the programming part performed under the covers by MarkMagic. No technical skills are required to produce virtually all types of sophisticated multipage forms and reports.



FormComposer is a report program generator with the programming part performed under the covers by MarkMagic. No technical skills are required to produce virtually all types of sophisticated multipage forms and reports.
FormComposer report program generator

A Report Program Generator

MarkMagic FormComposer bridges the gap between spool files and database files. Only FormComposer gives you the ability to look up database information based on output in a spool file, retrieve a record, and add additional data to the existing spool file.

This revolutionary capability gives you a powerful tool to overcome the limitations of working with an existing spooled output file.

No Programming Necessary

Create reports by mixing and matching your data from spool files and physical and logical database files — all without writing a single line of code!

Improved Workflow

FormComposer opens up a whole new workflow to compose forms, reports, and to combine spooled output data with records retrieved from a physical or logical file.

Easy Report Retrieval

What used to be painful routine of compiles and recompiles to get reports just right can now be done by anyone so programmers are free to work on more important projects.

FormComposer FAQs

How Does FormComposer Work?

In order to produce a report or a form, MarkMagic FormComposer mimics a typical report program. MarkMagic FormComposer reads records from a master header file (e.g., invoice, order, etc.) and then chains to a detail file to get all records that “belong with” the master header. If needed, FormComposer chains to other files to retrieve additional fields (like Customer Name and Address from a Customer Master File or Product Description from a Product Master File).

In addition, when combined with the optional MarkMagic PrintTransformer, MarkMagic FormComposer tests conditions (example: Department = 010 or Amount > $100,000) and modifies the appearance of the form or report based on the results of the conditional tests. And, finally, MarkMagic FormComposer also calculates fields, such as line net amount = item quantity x list price x discount % – deduction Or, invoice total amount = sum total of all line item net amounts.

How Do I Use FormComposer?

MarkMagic FormComposer takes advantage of the MarkMagic Key and Usage field parameters to define Header and Detail records, Look Up fields, and Repeating fields. Another new field type is Calculated fields, defined with a new reserved field name *CALC, which behaves very much like a *LINK field. After the fields are defined, all you need to do to run the report is to add a Copy step to your MarkMagic Job, specify *YES for the Link files parameter in the MarkMagic CPYTOLBLF (Copy To Label File) command, and MarkMagic processes the report.

How Are Repeating Fields Defined?

FormComposer Repeating Fields are defined by designating selected Data Fields within a format as repeating fields. Text, Barcode
and Graphic fields that link to repeating Data Fields are filled in sequentially with the data from corresponding detail records. Regular (non-key) repeating fields will use a new value for the Prompt Parameter, Prompt = R/r. In order for MarkMagic FormComposer to know how to associate
the repeating detail records with the header record, the detail file’s key fields appear in the format, and are defined as Prompt = Q/q. In order for MarkMagic to associate the key fields in this case the Usage field comes into play to connect the 2 fields. Both key fields are defined in the format and share a common Usage Parameter value. That is how MarkMagic can connect them.

What Are FormComposer Functions?

FormComposer Functions perform either a specific calculation or provide some type of special information. There are currently two types of functions available in MarkMagic FormComposer and they are specified in the description of *HEADING fields: Totals and Day of Week. Totals can be defined as PageAmount = @PTOT(Line Amount) and GroupAmount = @GTOT(Line Amount) and Day of Week can be specified with DayofWeek = @DYWK(DtlDate).

Is FormComposer Only for Forms?

MarkMagic FormComposer introduces new MarkMagic field types that can be used for labels and other output as well. While necessary for generating all types of reports, these new field types add functionality that can be used in MarkMagic labels or forms formats. For example, MarkMagic FormComposer can look up a value from a field in a file other than the label file, or calculate a value not contained in the label file.

What Else Does FormComposer Do?

Besides the heading and data fields, FormComposer lets you define fields derived from other files (look up fields), detail line data (repeating fields), and calculated fields

How Are Look Up Fields Defined?

MarkMagic FormComposer Look Up Fields are fields contained in secondary “linked” files. By specifying a secondary file’s key field (or all key fields, in the case of a multiple field key), you show MarkMagic FormComposer how to retrieve the desired record containing the look up fields.

The secondary file’s key field(s) must be designated as Prompt = K/k, with each field’s Usage field defined as KA, KB, etc. Up to 20 secondary “look up” files can be defined. If the associated key fields in both the primary and secondary files are identically named, both cannot be defined in the format as variable fields. This is because MarkMagic does not allow duplicate named variable fields in a format. Therefore, in this case, only the secondary files key field(s) should be defined as Data Field(s).

MarkMagic will have no problem forming the file association as it will automatically find the matching named field(s) in the primary file.

How Do I Use FormComposer?

MarkMagic FormComposer Calculated Fields are defined with a new reserved field name *CALC, which behaves very much like a *LINK field. The user interface is almost identical to *LINK fields, with the exception that *CALC fields link to an entire source field. No start position, length, variable length, edit code or check digit. Simple calculations are arithmetic statements that are parsed from left to right. For example: Text 001 = Rate * Units. Supported arithmetic statements are: (+)plus, (-)minus, (*)multiply, and (/)divide.

What is a Text Block Field?

MarkMagic Enterprise, we introduced a new field type, Text Block. This field type makes it easy to add paragraphs of legal information to forms or a long list of ingredients to labels. Auto-formatting helps take the guess work out of column, font, and line offset changes. Text Block fields can include multiple fonts, point sizes, and styles.

How Does FormComposer Eliminate Programming?

For example, in a PDF e-mail application, the recipient’s e-mail address may not be contained in the spooled file, but rather some other application file.

At print time, MarkMagic FormComposer retrieves the record containing the customer’s e-mail address, and the optional MarkMagic PrintTransformer sends the output to that e-mail address. This eliminates the need for the customer to have to write a program to retrieve the missing field. Additional data (SKU description, BOL number, etc.) not found in the spool file can be added without modifying the spool file.

FormComposer can retrieve variable data from multiple files and combine the data with your current spool data as text, bar code, or variable graphics. The screen shot below shows a spool file field line 2, column 68, defined as a repeating Prompt field (Q) with a Usage of KA that retrieves a record from the file EMDATA in library MMCMR. Or, for example, in an invoice printing application, the label file may not contain a Line Item Net Amount field. MarkMagic FormComposer can calculate a net amount by subtracting the Line Item Cost from the Line Item List Price.

This functionality eliminates the need for the customer to have to write a program to calculate this field.

Interested in FormComposer?

Contact CYBRA to discuss your specific software and hardware needs, and to see how FormComposer can positively impact your forms and labels development. Contact us to try FormComposer for free today!

CYBRA Corporation

Over 30 years of software sales & development. Thousands of customers worldwide. And, we’re just getting started. CYBRA specializes in RFID technology, real time tracking systems, and barcode forms & labeling software solutions.

Connect on Social Media
Connect on Social Media


[Case Study]

How NAFECO Improves Work-in-Process System with CYBRA’s RFID Application


2021 RFID Integration Guide - Learn how to turn your RFID tags into a great investment


How You Can Benefit from Digitizing Your Shipping Forms and Labels with MarkMagic
2021 RFID Integration Guide

2021 RFID Integration Guide

Today, retailers are pivoting hard in order to offer their services and products to more consumers on more platforms and in more places. It’s no secret that retailers with growing omnichannel initiatives see strong benefits with RFID from the DC to receiving to the...

Nafeco store layout

How NAFECO Improves Work-in-Process System with CYBRA’s RFID Software Application

A large part of NAFECO’s business is in uniforms for first responders. With thousands of garments in process every day, NAFECO needed an easier way to track and locate garments across its facility. To get the job done, NAFECO reached out to CYBRA to install their RFID tracking system.
Benefits of Deploying Color Labeling into Your Supply Chain

How to Automate and Transform Your Forms and Label Processing

In this focused webinar, the MarkMagic team will show how you can take control over your label and document management. Check out how MarkMagic brings dynamic everything to your document output. We will share compelling examples how you can alter forms and labels with minimal effort …


Barcode Labeling Software

RFID Tracking Software

Barcode Labeling Software

RFID Tracking Software

Solutions By Industry

Solutions By Business Requirement