A readable Easytrieve report depends on columns lining up: department codes under the department heading, dollar amounts decimal-aligned, and title banners sitting where managers expect them on green-bar paper or PDF output. Column positioning is the set of REPORT, TITLE, and LINE controls that place each literal and field on the horizontal axis. Beginners often assume Easytrieve auto-aligns everything because default reports look neat when fields are similar widths—but the moment you add a long street address beside a short sex code, or print on a preprinted tax form, you need explicit spacing rules. This tutorial explains the coordinate system defined by LINESIZE, the baseline gap from SPACE, fine tuning with plus and minus offsets, absolute placement with COL, left justification with NOADJUST, how TITLE positioning differs from LINE positioning, when POS is the better tool, and how HEADING width affects perceived column alignment. Every technique here comes from Broadcom Easytrieve Report Generator 11.6 report-processing and statement reference material.
Think of each TITLE line and each LINE row as a ruler whose length is LINESIZE on the REPORT statement. Printable columns are numbered from 1 at the left edge through LINESIZE at the right boundary. A field defined as twenty characters wide occupies twenty contiguous columns starting wherever Easytrieve places it. Masked numeric fields still consume their defined print width. The report writer never wraps a single line item mid-field; if the cumulative width of items, spaces, and offsets exceeds LINESIZE, you get truncation, overlay on extended printers, or compile-time analysis errors depending on the situation. Before tuning individual columns, choose LINESIZE to match your spool printer, PDF capture width, or preprinted form—eighty and one hundred thirty-two are common batch values, while wide analytical listings may use 165 or more.
By default Easytrieve centers the logical content of each title line and each LINE 01 group within that LINESIZE ruler. Centering is convenient for short management summaries but fights you when column one must always start at the physical left margin—for example W-2 boxes or mainframe job log columns copied into audit files. REPORT NOADJUST disables centering and left-justifies titles and the report body. SPREAD, which maximizes gaps between items, cannot combine with NOADJUST. Understanding whether your report is centered or NOADJUST is the first diagnostic step when column numbers disagree with the listing you eyeball in SDSF.
REPORT SPACE number-of-spaces sets how many blank characters separate consecutive items on TITLE statements and consecutive items on LINE statements within a line group. Broadcom's default is three. SPACE applies uniformly unless a plus offset, minus offset, or COL parameter overrides placement for a specific item boundary. The same SPACE value governs both title banners and detail rows, which helps keep title literals roughly above related detail columns when you use relative spacing instead of COL. SPACE does not add trailing blanks at end of line; it only inserts gaps between items you explicitly list.
123REPORT SALES-RPT LINESIZE 80 SPACE 3 TITLE 01 'REGIONAL SALES' 'Q4 SUMMARY' LINE 01 REGION BRANCH DEPT REVENUE
In the skeleton above, three blanks sit between REGION and BRANCH, three between BRANCH and DEPT, and three between DEPT and REVENUE on every detail line. The two title literals are likewise separated by three blanks before centering wraps the whole title list. Changing to REPORT SPACE 1 tightens the entire report—titles and details together—without touching individual LINE statements. That global knob is powerful for dense listings but dangerous for wide masked fields where a single space might make SSN digits touch employee names.
Plus offset and minus offset adjust the gap before the next title item or line item relative to SPACE. The effective gap equals SPACE plus offset for a plus value, or SPACE minus offset for a minus value. Broadcom allows the computed absolute space to fall to zero if the full line still fits inside LINESIZE. Offsets appear immediately before the item they influence; they do not move the prior item. Multiple offsets can appear on one TITLE or LINE statement, each applying to the following literal or field.
| Modifier | Blanks inserted | Typical use |
|---|---|---|
| (none) | 3 | Default comfortable gap |
| +2 | 3 + 2 = 5 | Extra air before a wide amount field |
| +10 | 3 + 10 = 13 | Push a label toward mid-line |
| -2 | 3 − 2 = 1 | Tighten city/state/zip clusters |
| -3 | 3 − 3 = 0 | Adjacent items with no added gap |
12345REPORT ADDR-RPT LINESIZE 65 SPACE 3 TITLE 01 'EMPLOYEE ADDRESS LIST' LINE 01 EMPNAME SSN LINE 02 POS 2 ADDR-STREET LINE 03 POS 2 ADDR-CITY -3 ',' + -2 ADDR-STATE +5 ADDR-ZIP
Broadcom's Standard Reports chapter uses a minus offset cluster on LINE 03 to pull a comma literal closer to the city field while still separating state and zip with a plus offset after the default POS 2 alignment under the SSN column from LINE 01. POS handles vertical stacking within the line group; offsets fine-tune horizontal gaps once the item is anchored. When POS alone leaves decimal points unaligned between LINE 01 and LINE 02 numeric fields of different widths, add a plus offset after POS—as in POS 2 +3 on the shorter packed-decimal field—to nudge it under the decimal point of the longer LINE 01 field.
Offsets preserve Easytrieve's automatic centering on standard reports. If you only need slightly more air between name and department, +5 on LINE 01 is simpler than calculating absolute column numbers for every field. Offsets also keep HEADING centering logic intact because HEADING text stays centered over each LINE 01 item whose width includes heading length. Reach for COL when the business mandates a fixed print column regardless of prior item widths—tax form boxes, mainframe column 72 markers, or aligning a title literal with a detail field defined on LINE 01 COL 40.
COL column-number tells Easytrieve to begin the next title item or line item at that absolute print column. Valid values start at 1 and cannot place an item so its trailing characters extend past LINESIZE. COL overrides the automatic gap from SPACE and any pending offset for that boundary—the next item starts exactly at the column you specify, not after SPACE blanks from the previous item's end. Extended reporting printers raise errors if COL causes fields or literals to overlap physically on the page.
12345REPORT W2-FORM LINESIZE 80 NOADJUST NOHEADING SPACE 1 LINE 01 COL 7 'YOUR COMPANY NAME' COL 33 '903' COL 39 '12-3456789' LINE 02 COL 7 'YOUR COMPANY STREET' LINE 10 COL 7 SSN COL 23 YTD-FEDTAX COL 39 YTD-WAGES COL 54 YTD-FICA LINE 12 COL 7 EMP-NAME COL 39 YTD-WAGES
The preprinted form pattern from Broadcom places every literal and field at explicit columns on a NOADJUST report with SPACE 1 so incidental gaps do not shift boxes on the physical form. COL 7 anchors employer and employee blocks at the left box edge; COL 39 aligns dollar fields in the wage column. Without NOADJUST, those COL values would still be interpreted, but the entire line group would center as a block, sliding form data away from preprinted boxes. NOHEADING suppresses automatic headings because the form itself provides labels.
| Aspect | TITLE COL | LINE COL |
|---|---|---|
| NOADJUST requirement | Optional; works with centered or left-justified titles | Required; COL on LINE is rejected without REPORT NOADJUST |
| Typical purpose | Banner text, dates, page labels aligned to detail | Detail fields, form boxes, machine-readable columns |
| Interaction with auto date/page | On TITLE 01, system date and PAGE may overlay left columns unless NODATE, NOPAGE, or reserved COL | Not applicable |
| Centering behavior | Each title line still centers as a whole unless NOADJUST | LINE 01 group centers as a whole unless NOADJUST; LINE 02+ follow POS/offset rules |
TITLE COL is documented as usable with either default centering or NOADJUST. LINE COL is stricter: the LINE statement reference states you must specify NOADJUST on REPORT to use COL on LINE. Beginners frequently copy a TITLE COL pattern onto LINE, see unexpected compile or runtime behavior, and wonder why absolute columns fail. The fix is almost always adding NOADJUST and verifying LINESIZE matches the target printer.
REPORT NOADJUST left-justifies title lines and the report body on the page instead of centering them within LINESIZE. That is mandatory for COL on LINE and recommended for preprinted forms. A side effect appears on TITLE 01: Easytrieve still inserts the system date and page count at the ends of the first title line unless NODATE or NOPAGE suppress them. With NOADJUST, the automatic date can overlay the leftmost columns you intended for your first COL item. Broadcom documents three remedies: code NODATE to remove the date, reserve space with COL 10 for SHORTDATE or COL 12 for LONGDATE before your first visible title item, or plan literals so they begin right of the date field.
123456REPORT RPT1 LINESIZE 60 NOADJUST NODATE NOPAGE TITLE 01 COL 20 SSN TITLE 02 SYSDATE COL 20 NAME TITLE 03 COL 20 ADDR-STREET TITLE 04 COL 20 ADDR-CITY -3 ',' + -2 ADDR-STATE +5 ADDR-ZIP LINE 01 ' '
This Standard Reports example stacks employee identifiers in column 20 while using offsets on TITLE 04 for punctuation between city, state, and zip—demonstrating that TITLE accepts the same offset vocabulary as LINE. SYSDATE on TITLE 02 prints the run date starting at column 20 beside the name field area. NODATE on REPORT removes the automatic TITLE 01 date that would otherwise collide with NOADJUST left margin placement.
LINE 01 defines the primary detail columns and drives automatic HEADING text unless HEADING statements or DEFINE HEADING parameters override labels. Easytrieve centers each LINE 01 item together with its heading stack based on the longer of data width or heading width—that computed width is called item length in Broadcom documentation. LINE 02 through LINE 99 data is left-justified under the corresponding LINE 01 item when you use POS, or flows with offsets when you build multi-line addresses and annotations. TITLE lines follow parallel spacing rules but do not print HEADING rows; they occupy the title area above TITLESKIP blank lines and column headings.
12345678910FILE PERSNL FB(150) SSN 4 5 P MASK '999-99-9999' HEADING('SOCIAL' 'SECURITY' 'NUMBER') EMPNAME 17 20 A HEADING 'EMPLOYEE NAME' PAY-NET 90 4 P 2 JOB INPUT PERSNL PRINT PAY-RPT REPORT PAY-RPT LINESIZE 65 SPACE 3 TITLE 01 'PAYROLL DETAIL' COL 55 'CONFIDENTIAL' HEADING PAY-NET ('NET' 'PAY') LINE 01 EMPNAME +2 SSN +4 '* NO OT *' +3 PAY-NET
The TITLE uses COL 55 to pin a confidential label near the right margin on an otherwise centered title line while LINE 01 uses relative +2 and +4 offsets to separate name, SSN, literal flag, and net pay under automatic headings. MIXING techniques is normal: COL for fixed markers, offsets for flexible standard listings. Compare output with and without NOADJUST in test JCL before promoting changes—centered LINE 01 groups shift visually even when COL appears only on TITLE.
POS position-number applies to LINE 02 through LINE 99 and means place this item under the nth item on LINE 01, using the item length calculation for that anchor column. POS does not replace COL: POS is relative to the line group structure; COL is absolute on the print line. Use POS when a secondary line continues data belonging to a primary column—street address under SSN, net pay annotation under gross pay. Use COL when every item must land at a form-defined coordinate independent of LINE 01 ordering. You may combine POS with offsets; you may combine COL with literals and fields in any order on the statement.
REPORT SPREAD overrides SPACE by inserting the maximum possible blanks between LINE items while still fitting LINESIZE, which turns a detail line into a worksheet with wide gaps. SPREAD cannot accompany NOADJUST, so you cannot pair maximum spread with absolute COL form printing. HEADING text wider than the field below widens the item length for centering, which shifts apparent column boundaries on LINE 01 even when SPACE stays at three. Multi-line HEADING values from DEFINE or HEADING statements are common culprits when beginners believe columns drift without reason—check heading strings before adding COL everywhere.
123REPORT DEBUG-RPT LINESIZE 80 NOADJUST NODATE NOPAGE SPACE 1 TITLE 01 COL 1 '|' COL 10 '|' COL 20 '|' COL 30 '|' COL 40 '|' LINE 01 COL 1 'C1' COL 15 'C15' COL 30 'C30' COL 45 'C45' COL 60 'C60'
A debug ruler report like this one prints pipe markers at known TITLE columns and short literals on LINE at fifteen-column intervals. Run it once when migrating from centered defaults to NOADJUST form printing; the listing becomes a visual map you can compare against preprinted paper held to the screen.
Imagine you are typing on a piece of ruled paper with numbered squares. SPACE is how many empty squares you skip between words when you let the computer decide spacing—usually three. Plus offset means skip a few extra squares; minus offset means skip fewer, maybe zero. COL is like pointing at square twenty and saying the next word starts right there, no matter what came before. NOADJUST means stop centering the whole line in the middle of the paper and start from the left edge instead, which you need when filling in a form that already has boxes printed on it. TITLE is the banner at the top; LINE is the rows of facts underneath. POS is stacking a second row so a word sits under an earlier word in the row above, like writing the street address directly under the social security number column.
1. What does REPORT SPACE control by default?
2. When must you code REPORT NOADJUST before using COL on LINE?
3. A +5 offset after an item means:
4. SPREAD and NOADJUST on the same REPORT are:
5. POS 3 on LINE 02 aligns the next item: