8. Repeaters and labels

Repeaters

A Repeater prints a free-form block of elements once for each item in a list, stacked from top to bottom. It is a table without the grid: inside the block you can place text, barcodes, images, boxes and checkboxes anywhere you like.

Use a repeater when each item needs more than a row of cells:

Build a repeater

  1. Drag Repeater from the Insert tab into the Body.
  2. In Properties → Repeater → Data, type the list path, for example picks.
  3. Resize the repeater box. The box height is the height of one item. The width is the width of every item.
  4. Drag elements into the repeater box: text, barcodes, lines and so on. Position them relative to the box.
  5. Inside the repeater, item is the current item and index its number (from 0). Bind like this: {{ item.location | A-02-A-01 }}.
  6. Optional: set Gap to add space between items.

The repeater grows by one block per item and splits across pages between items, so a block is never cut in half.

Example: pick lines with two barcodes.

 ┌───────────────────────────────────────────────────────────────────────┐
 │ {{ index + 1 }}  LOCATION {{ item.location }}   ║║│║║│║  (Code 128)     │  ← repeater box = one pick line
 │    {{ item.sku }}  {{ item.description }}        ║║│║║│║  (Code 128)     │
 │    QTY {{ item.qty }} {{ item.uom }}      ☐ picked   short: ____          │
 └───────────────────────────────────────────────────────────────────────┘

Lay out one item, and the repeater prints it for every pick. The built-in Pick List template in the gallery works this way.

Note: Repeaters keep the order of the data. Unlike tables, they have no Sort by. Ask your integrator to send pick lines in pick-path order, or use a table if you need sorting.

Note: Elements inside a repeater item don't grow. Long text in a repeater should use Ellipsis (…) or Shrink to fit overflow.

Labels

A 4×6 shipping or pallet label

Thermal labels are one label per page:

  1. On the Report tab, set Size to Custom, Units to Inches, Page width 4 and Page height 6.
  2. Set the margins to about 0.1 in.
  3. Turn off Report Header and Report Footer, and usually Page Header and Page Footer too. Put everything in the Body.
  4. Use thick lines (1.5–2 pt) to divide the label into zones: ship from, ship to, postal barcode, carrier and tracking, SSCC.
  5. Use large type for what people read from a distance: the ship-to city (16–20 pt bold) and the SSCC (12 pt).

See Barcodes for the SSCC barcode. The gallery has ready-made Shipping Label 4×6 and Pallet / LPN Label 4×6 templates.

4×6 shipping label

One label per carton in one PDF

To print labels for every carton of a shipment in one PDF, use the Records setting instead of a repeater:

  1. On the Report tab, under Records, set One copy per to the list of cartons, for example cartons.
  2. Design the label for one carton. Inside the label, the carton is the top of the data, so bind directly: {{ sscc }}, {{ shipTo.name }}.
  3. The render produces one label page per carton.

See Batches for details.

Location (bin) labels on sheets

The Location Labels template prints rack labels as full-width strips on Letter paper using a repeater. Each item shows the location code in large type, a direction arrow and a Code 128 barcode, and the strips are cut apart after printing.

For multi-column sheets such as 3 × 10 address labels, repeaters stack vertically only. Design one repeater item as a row of three labels, and have your system send the locations in groups of three ({ "row": [loc1, loc2, loc3] }). Bind each label in the row to item.row[0], item.row[1] and item.row[2], and set the repeater Gap to the sheet's vertical pitch minus the label height.

Tip: Measure the label stock's top margin, label height and vertical pitch with a ruler, or take them from the manufacturer's template, and set Designer → Units to inches or millimeters. Print one test sheet on plain paper and hold it against the label sheet before printing labels.

← 7. Tables9. Barcodes and QR codes →