Easytrieve built-ins are easier to learn when grouped by job task rather than alphabet. Need a report header date? Open the date category. Need absolute variance? Open numeric. Need to strip trailing spaces? Open string—even when the answer is INDEX loops rather than a TRIM function. This index maps ten Broadcom-style families to tutorial pages in this section. Each category page lists representative functions, macros, and procedural fallbacks, explains Report Generator versus Easytrieve Plus differences, and links forward to per-function depth as those pages are published. Beginners arriving from COBOL FUNCTION or SQL should expect a smaller native catalog and more overlay or macro patterns. Production programmers should bookmark this page as the routing table before grep-searching a three-thousand-page Application Reference cold.
Pick a category row below when you know the problem domain. Read that category index for function names, syntax patterns, and alternatives. Return here when a search fails—your need may span categories. Date formatting sometimes lives under conversion; sign tests under numeric; page numbers under report. Cross-links on each category page show related families.
| Category | Typical tasks | Representative capabilities | Tutorial path |
|---|---|---|---|
| String | Extract, case change, scan, length, pad | Overlay, INDEX, LCase$/UCase$ (R2SCRIPT), STRSRCH macro | /functions/string |
| Date | Current date, validation, date math | SYSDATE, SYSDATE-LONG, %DATECALC, %DATEVAL | /functions/date |
| Numeric | Sign, absolute value, min/max, rounding | ABS, MIN, MAX, INTEGER on assignment | /functions/numeric |
| Math | Roots, powers, logarithms | **, SQRT where documented, arithmetic expressions | /functions/math |
| Conversion | Type change, radix, packed display | Assignment promotion, EDIT to display | /functions/conversion |
| Formatting | Picture masks, report column layout | MASK on DEFINE, EDIT patterns | /functions/formatting |
| Testing | Numeric class, blank detection | IF comparisons, procedural validators | /functions/testing |
| File | Status, sequence, file metadata | FILE statement context, error PROC patterns | /functions/file |
| System | Job time, user id, environment | SYSDATE-LONG, SYSUSERID constant, TIME patterns | /functions/system |
| Report | Page, line, report writer aids | TITLE literals, control break helpers | /functions/report |
String work in classic Report Generator relies heavily on Library overlay fields—MONTH as two bytes inside DATE-OF-BIRTH—and INDEX with OCCURS 1 A for byte walks. Easytrieve Plus and R2SCRIPT add LCase$, UCase$, and Command$ for script tooling. Legacy STRSRCH macro from release 6.4 may be copied to 11.x for character search but is third-party and unsupported. Choose string category when parsing delimited files, trimming trailing spaces, or building concatenated messages. Expect procedural code more often than one-call builtins.
SYSDATE returns current system date for headers and audit stamps. SYSDATE-LONG extends precision for timestamp-style values per release documentation. Date arithmetic often uses %DATECALC macro to add or subtract days; %DATEVAL validates date strings before compare. Overlay MONTH DAY YEAR on numeric date fields avoids function calls when layout is fixed. Choose date category for cycle cutoffs, age calculations, and period headers—always align internal format before IF compares.
Numeric category covers ABS for variance, MIN and MAX for bounds, sign handling on currency, and INTEGER ROUNDED TRUNCATED modifiers on assignment statements. Math category extends to exponentiation with ** and documented roots like SQRT on Plus installations. Payroll jobs live mostly in numeric; statistical jobs touch math. Implied decimal on P fields propagates through expressions—define receiving fields with correct scale.
123WS-VAR = ABS(BUDGET - ACTUAL) WS-CAP = MIN(REQUEST, LIMIT) WS-POW = BASE ** 2
Conversion moves data between types—character digits into N fields, packed into display via assignment rules, binary into printable form. Formatting applies MASK on DEFINE or EDIT strings so SYSPRINT and report columns show commas, decimals, and sign placement. Conversion answers what is stored; formatting answers what the operator reads. Errors in conversion surface as runtime data exceptions; formatting errors show misaligned columns on paper.
Testing validates before compute—numeric class checks, blank detection, range membership. Classic code uses IF with relational operators and procedural loops when no NUMERIC() function exists. Data quality pipelines route bad records to exception files. Testing category links to patterns that gate MOVE and arithmetic on untrusted input fields from external partners.
File category documents runtime file context—status after READ, name resolution, multi-file sequencing—in error PROCs and audit logic. System category covers job environment values such as SYSUSERID and time stamps for headers. Report category ties to report writer—page numbers, line counts, break state—in TITLE and LINE expressions. Batch operators depend on these for traceable spool output without hard-coded job names.
| Aspect | Report Generator | Easytrieve Plus |
|---|---|---|
| String builtins | Overlay, INDEX, MOVE primary | Expanded Application Reference index |
| Date | SYSDATE, macros common | Additional date functions per release |
| Numeric/math | ABS, operators, assignment modifiers | Broader math function set |
| Discovery | Programming Guide + macros | Application Reference function index |
Functions compute inside expressions. Statements—MOVE, FILE, SORT—drive flow and I/O. When task is copy field to field, MOVE may beat a function. When task is compute absolute variance, ABS inside assignment wins. When task is read next record, no function replaces JOB INPUT. Misclassification sends beginners hunting functions for problems statements already solve cleanly.
This index and category pages provide family-level depth. EASYTRIEVE_PAGES checklist calls for individual pages per function with purpose, syntax, arguments, return type, performance, examples, mistakes, alternatives, and edge cases. As those pages publish, category indexes will link to them by name. Until then, category pages list representative names and fallback patterns sufficient for beginner production work.
This page is the map of toy boxes. One box has letter toys for words and names. One has calendar toys for birthdays and today. One has number toys for bigger-smaller and plus-minus. One has ruler toys for measuring. You look at the map first, walk to the right box, then pick the exact toy. If your box does not have the toy you wanted, the map shows another way to build it with blocks you already have.
1. You need to format today's date for a report title. Start at:
2. ABS and MIN belong to which category?
3. When no built-in substring function exists, fall back to:
4. Function availability differs between sites because:
5. EDIT masks and display conversion appear in: