GROUP data items represent the fundamental hierarchical data organization mechanism within COBOL programming environments, serving as the primary specification for creating structured record layouts that contain multiple subordinate data elements organized in logical relationships. These items embody the principles of data encapsulation by providing container functionality for related data fields, enabling sophisticated record structure design patterns, and supporting comprehensive data organization architectures while maintaining clear hierarchical relationships and ensuring efficient data access patterns in enterprise applications that require complex data structures, business record management, and maintainable data organization with predictable field relationships and structured data manipulation capabilities across diverse business domains.
123456789101112131415161718level-number group-name. level-number subordinate-item PIC clause. level-number subordinate-group. level-number elementary-item PIC clause. *> Examples: 01 EMPLOYEE-RECORD. 05 EMPLOYEE-ID PIC 9(6). 05 EMPLOYEE-NAME. 10 FIRST-NAME PIC X(15). 10 LAST-NAME PIC X(20). 05 SALARY PIC 9(7)V99. 01 ADDRESS-INFO. 05 STREET-ADDRESS PIC X(30). 05 CITY PIC X(20). 05 STATE PIC X(2). 05 ZIP-CODE PIC 9(5).
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127IDENTIFICATION DIVISION. PROGRAM-ID. GROUP-ITEM-EXAMPLES. DATA DIVISION. WORKING-STORAGE SECTION. *> Simple employee record structure 01 EMPLOYEE-RECORD. 05 EMPLOYEE-ID PIC 9(6). 05 PERSONAL-INFO. 10 FIRST-NAME PIC X(15). 10 MIDDLE-INITIAL PIC X. 10 LAST-NAME PIC X(20). 10 DATE-OF-BIRTH PIC 9(8). 05 EMPLOYMENT-INFO. 10 HIRE-DATE PIC 9(8). 10 DEPARTMENT PIC X(10). 10 JOB-TITLE PIC X(25). 10 SALARY PIC 9(7)V99. 05 CONTACT-INFO. 10 ADDRESS-GROUP. 15 STREET PIC X(30). 15 CITY PIC X(20). 15 STATE PIC X(2). 15 ZIP-CODE PIC 9(5). 10 PHONE-GROUP. 15 HOME-PHONE PIC 9(10). 15 WORK-PHONE PIC 9(10). 15 CELL-PHONE PIC 9(10). *> Customer order structure 01 ORDER-RECORD. 05 ORDER-HEADER. 10 ORDER-NUMBER PIC 9(8). 10 ORDER-DATE PIC 9(8). 10 CUSTOMER-ID PIC 9(6). 10 ORDER-STATUS PIC X(10). 05 SHIPPING-INFO. 10 SHIP-TO-NAME PIC X(30). 10 SHIP-ADDRESS. 15 SHIP-STREET PIC X(30). 15 SHIP-CITY PIC X(20). 15 SHIP-STATE PIC X(2). 15 SHIP-ZIP PIC 9(5). 10 SHIPPING-METHOD PIC X(15). 10 SHIP-DATE PIC 9(8). 05 ORDER-TOTALS. 10 SUBTOTAL PIC 9(7)V99. 10 TAX-AMOUNT PIC 9(5)V99. 10 SHIPPING-COST PIC 9(5)V99. 10 TOTAL-AMOUNT PIC 9(8)V99. *> Product inventory structure 01 PRODUCT-RECORD. 05 PRODUCT-INFO. 10 PRODUCT-ID PIC X(10). 10 PRODUCT-NAME PIC X(30). 10 CATEGORY PIC X(15). 10 DESCRIPTION PIC X(100). 05 PRICING-INFO. 10 COST-PRICE PIC 9(6)V99. 10 SELLING-PRICE PIC 9(6)V99. 10 DISCOUNT-PRICE PIC 9(6)V99. 10 MARKUP-PERCENT PIC 9(3)V99. 05 INVENTORY-INFO. 10 QUANTITY-ON-HAND PIC 9(6). 10 REORDER-POINT PIC 9(6). 10 MAXIMUM-STOCK PIC 9(6). 10 LAST-ORDER-DATE PIC 9(8). PROCEDURE DIVISION. MAIN-PROCESSING. *> Initialize employee record MOVE 123456 TO EMPLOYEE-ID MOVE 'JOHN' TO FIRST-NAME MOVE 'Q' TO MIDDLE-INITIAL MOVE 'SMITH' TO LAST-NAME MOVE 19850315 TO DATE-OF-BIRTH MOVE 20200101 TO HIRE-DATE MOVE 'IT' TO DEPARTMENT MOVE 'SOFTWARE DEVELOPER' TO JOB-TITLE MOVE 75000.00 TO SALARY *> Initialize address information MOVE '123 MAIN STREET' TO STREET MOVE 'ANYTOWN' TO CITY MOVE 'NY' TO STATE MOVE 12345 TO ZIP-CODE MOVE 5551234567 TO HOME-PHONE MOVE 5559876543 TO WORK-PHONE MOVE 5555551234 TO CELL-PHONE *> Display employee information using group references DISPLAY 'Employee Information:' DISPLAY 'ID: ' EMPLOYEE-ID DISPLAY 'Name: ' FIRST-NAME ' ' MIDDLE-INITIAL '. ' LAST-NAME DISPLAY 'Department: ' DEPARTMENT DISPLAY 'Salary: $' SALARY *> Display contact information DISPLAY 'Address: ' STREET ', ' CITY ', ' STATE ' ' ZIP-CODE DISPLAY 'Home Phone: ' HOME-PHONE *> Initialize order record MOVE 12345678 TO ORDER-NUMBER MOVE FUNCTION CURRENT-DATE(1:8) TO ORDER-DATE MOVE 987654 TO CUSTOMER-ID MOVE 'PENDING' TO ORDER-STATUS MOVE 'JANE DOE' TO SHIP-TO-NAME MOVE '456 OAK AVENUE' TO SHIP-STREET MOVE 'SOMEWHERE' TO SHIP-CITY MOVE 'CA' TO SHIP-STATE MOVE 54321 TO SHIP-ZIP MOVE 'STANDARD' TO SHIPPING-METHOD MOVE 250.00 TO SUBTOTAL MOVE 20.63 TO TAX-AMOUNT MOVE 15.99 TO SHIPPING-COST COMPUTE TOTAL-AMOUNT = SUBTOTAL + TAX-AMOUNT + SHIPPING-COST DISPLAY 'Order Information:' DISPLAY 'Order #: ' ORDER-NUMBER DISPLAY 'Customer: ' CUSTOMER-ID DISPLAY 'Ship To: ' SHIP-TO-NAME DISPLAY 'Total: $' TOTAL-AMOUNT STOP RUN.
12345678910111213141516171819202122232425262728293031323334353601 STUDENT-RECORD. 05 STUDENT-ID PIC 9(8). 05 PERSONAL-DATA. 10 STUDENT-NAME. 15 FIRST-NAME PIC X(15). 15 LAST-NAME PIC X(20). 10 BIRTH-DATE PIC 9(8). 10 GENDER PIC X. 05 ACADEMIC-INFO. 10 MAJOR PIC X(20). 10 CLASS-LEVEL PIC X(10). 10 GPA PIC 9V99. 10 CREDIT-HOURS PIC 9(3). 05 CONTACT-DATA. 10 LOCAL-ADDRESS. 15 DORM-NAME PIC X(20). 15 ROOM-NUMBER PIC X(10). 10 HOME-ADDRESS. 15 HOME-STREET PIC X(30). 15 HOME-CITY PIC X(20). 15 HOME-STATE PIC X(2). 15 HOME-ZIP PIC 9(5). 10 EMAIL-ADDRESS PIC X(50). 10 PHONE-NUMBER PIC 9(10). PROCEDURE DIVISION. *> Initialize student data MOVE 12345678 TO STUDENT-ID MOVE 'ALICE' TO FIRST-NAME MOVE 'JOHNSON' TO LAST-NAME MOVE 20021015 TO BIRTH-DATE MOVE 'F' TO GENDER MOVE 'COMPUTER SCIENCE' TO MAJOR MOVE 'JUNIOR' TO CLASS-LEVEL MOVE 3.75 TO GPA MOVE 90 TO CREDIT-HOURS.
12345678910111213141516171819202122232425262728293001 TRANSACTION-RECORD. 05 TRANSACTION-HEADER. 10 TRANSACTION-ID PIC X(12). 10 TRANSACTION-DATE PIC 9(8). 10 TRANSACTION-TIME PIC 9(6). 10 TRANSACTION-TYPE PIC X(10). 05 ACCOUNT-INFO. 10 FROM-ACCOUNT. 15 ACCOUNT-NUMBER PIC 9(10). 15 ACCOUNT-TYPE PIC X(10). 15 BANK-CODE PIC X(8). 10 TO-ACCOUNT. 15 ACCOUNT-NUMBER PIC 9(10). 15 ACCOUNT-TYPE PIC X(10). 15 BANK-CODE PIC X(8). 05 AMOUNT-INFO. 10 TRANSACTION-AMOUNT PIC 9(10)V99. 10 CURRENCY-CODE PIC X(3). 10 EXCHANGE-RATE PIC 9(3)V9999. 05 STATUS-INFO. 10 PROCESSING-STATUS PIC X(10). 10 ERROR-CODE PIC X(5). 10 APPROVAL-CODE PIC X(10). PROCEDURE DIVISION. *> Process financial transaction MOVE 'TXN123456789' TO TRANSACTION-ID MOVE FUNCTION CURRENT-DATE(1:8) TO TRANSACTION-DATE MOVE FUNCTION CURRENT-DATE(9:6) TO TRANSACTION-TIME MOVE 'TRANSFER' TO TRANSACTION-TYPE.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231IDENTIFICATION DIVISION. PROGRAM-ID. ADVANCED-GROUP-PATTERNS. DATA DIVISION. WORKING-STORAGE SECTION. *> Complex business record with multiple levels 01 INVOICE-MASTER-RECORD. 05 INVOICE-CONTROL. 10 INVOICE-NUMBER PIC X(12). 10 INVOICE-DATE PIC 9(8). 10 DUE-DATE PIC 9(8). 10 INVOICE-STATUS PIC X(10). 10 PAYMENT-TERMS PIC X(15). 05 VENDOR-INFORMATION. 10 VENDOR-ID PIC X(10). 10 VENDOR-NAME PIC X(40). 10 VENDOR-ADDRESS. 15 VENDOR-STREET PIC X(30). 15 VENDOR-CITY PIC X(20). 15 VENDOR-STATE PIC X(2). 15 VENDOR-ZIP PIC 9(5). 10 VENDOR-CONTACT. 15 CONTACT-NAME PIC X(30). 15 CONTACT-PHONE PIC 9(10). 15 CONTACT-EMAIL PIC X(50). 05 BILLING-INFORMATION. 10 BILL-TO-COMPANY PIC X(40). 10 BILL-TO-ADDRESS. 15 BILL-STREET PIC X(30). 15 BILL-CITY PIC X(20). 15 BILL-STATE PIC X(2). 15 BILL-ZIP PIC 9(5). 10 BILL-TO-CONTACT. 15 BILL-CONTACT PIC X(30). 15 BILL-PHONE PIC 9(10). 05 FINANCIAL-TOTALS. 10 LINE-ITEM-TOTAL PIC 9(8)V99. 10 TAX-CALCULATIONS. 15 FEDERAL-TAX PIC 9(6)V99. 15 STATE-TAX PIC 9(6)V99. 15 LOCAL-TAX PIC 9(6)V99. 15 TOTAL-TAX PIC 9(7)V99. 10 DISCOUNT-INFO. 15 EARLY-PAY-DISC PIC 9(5)V99. 15 VOLUME-DISCOUNT PIC 9(5)V99. 15 TOTAL-DISCOUNT PIC 9(6)V99. 10 INVOICE-TOTAL PIC 9(9)V99. *> Employee performance review structure 01 PERFORMANCE-REVIEW. 05 REVIEW-HEADER. 10 REVIEW-ID PIC X(12). 10 REVIEW-PERIOD. 15 START-DATE PIC 9(8). 15 END-DATE PIC 9(8). 10 REVIEW-TYPE PIC X(15). 10 REVIEWER-ID PIC X(8). 05 EMPLOYEE-DETAILS. 10 EMPLOYEE-ID PIC X(8). 10 EMPLOYEE-NAME. 15 EMP-FIRST PIC X(15). 15 EMP-LAST PIC X(20). 10 JOB-INFORMATION. 15 POSITION-TITLE PIC X(25). 15 DEPARTMENT PIC X(15). 15 SUPERVISOR-ID PIC X(8). 05 PERFORMANCE-METRICS. 10 GOAL-ACHIEVEMENT. 15 GOALS-SET PIC 9(2). 15 GOALS-MET PIC 9(2). 15 ACHIEVEMENT-PCT PIC 9(3)V99. 10 SKILL-RATINGS. 15 TECHNICAL-SKILL PIC 9V9. 15 COMMUNICATION PIC 9V9. 15 LEADERSHIP PIC 9V9. 15 TEAMWORK PIC 9V9. 15 INITIATIVE PIC 9V9. 10 OVERALL-RATING PIC 9V9. 05 DEVELOPMENT-PLAN. 10 STRENGTHS PIC X(200). 10 IMPROVEMENT-AREAS PIC X(200). 10 TRAINING-NEEDS PIC X(150). 10 CAREER-GOALS PIC X(150). *> Manufacturing work order structure 01 WORK-ORDER-RECORD. 05 ORDER-IDENTIFICATION. 10 WORK-ORDER-NUMBER PIC X(12). 10 PARENT-ORDER PIC X(12). 10 ORDER-TYPE PIC X(10). 10 PRIORITY-LEVEL PIC 9. 05 SCHEDULING-INFO. 10 PLANNED-DATES. 15 PLAN-START-DATE PIC 9(8). 15 PLAN-END-DATE PIC 9(8). 15 PLAN-DURATION PIC 9(3). 10 ACTUAL-DATES. 15 ACTUAL-START PIC 9(8). 15 ACTUAL-END PIC 9(8). 15 ACTUAL-DURATION PIC 9(3). 05 PRODUCT-DETAILS. 10 PRODUCT-CODE PIC X(15). 10 PRODUCT-NAME PIC X(30). 10 QUANTITY-INFO. 15 ORDERED-QTY PIC 9(6). 15 COMPLETED-QTY PIC 9(6). 15 REJECTED-QTY PIC 9(5). 15 UNIT-OF-MEASURE PIC X(5). 05 RESOURCE-ALLOCATION. 10 LABOR-HOURS. 15 PLANNED-HOURS PIC 9(4)V99. 15 ACTUAL-HOURS PIC 9(4)V99. 15 OVERTIME-HOURS PIC 9(3)V99. 10 MACHINE-TIME. 15 SETUP-TIME PIC 9(3)V99. 15 RUN-TIME PIC 9(4)V99. 15 DOWNTIME PIC 9(3)V99. 05 COST-TRACKING. 10 MATERIAL-COSTS PIC 9(8)V99. 10 LABOR-COSTS PIC 9(7)V99. 10 OVERHEAD-COSTS PIC 9(7)V99. 10 TOTAL-COST PIC 9(9)V99. PROCEDURE DIVISION. ADVANCED-PROCESSING. PERFORM INITIALIZE-INVOICE-RECORD PERFORM PROCESS-PERFORMANCE-REVIEW PERFORM HANDLE-WORK-ORDER STOP RUN. INITIALIZE-INVOICE-RECORD. *> Initialize invoice with sample data MOVE 'INV-2024-001' TO INVOICE-NUMBER MOVE FUNCTION CURRENT-DATE(1:8) TO INVOICE-DATE MOVE 'PENDING' TO INVOICE-STATUS MOVE 'NET 30' TO PAYMENT-TERMS *> Set vendor information MOVE 'VEND001' TO VENDOR-ID MOVE 'ACME OFFICE SUPPLIES' TO VENDOR-NAME MOVE '123 BUSINESS BLVD' TO VENDOR-STREET MOVE 'COMMERCE CITY' TO VENDOR-CITY MOVE 'TX' TO VENDOR-STATE MOVE 75201 TO VENDOR-ZIP *> Calculate financial totals MOVE 5000.00 TO LINE-ITEM-TOTAL COMPUTE FEDERAL-TAX = LINE-ITEM-TOTAL * 0.08 COMPUTE STATE-TAX = LINE-ITEM-TOTAL * 0.0625 COMPUTE LOCAL-TAX = LINE-ITEM-TOTAL * 0.02 ADD FEDERAL-TAX STATE-TAX LOCAL-TAX GIVING TOTAL-TAX MOVE 100.00 TO EARLY-PAY-DISC MOVE 250.00 TO VOLUME-DISCOUNT ADD EARLY-PAY-DISC VOLUME-DISCOUNT GIVING TOTAL-DISCOUNT COMPUTE INVOICE-TOTAL = LINE-ITEM-TOTAL + TOTAL-TAX - TOTAL-DISCOUNT DISPLAY 'Invoice initialized: ' INVOICE-NUMBER DISPLAY 'Vendor: ' VENDOR-NAME DISPLAY 'Total: $' INVOICE-TOTAL. PROCESS-PERFORMANCE-REVIEW. *> Initialize performance review MOVE 'REV-2024-001' TO REVIEW-ID MOVE 20240101 TO START-DATE MOVE 20241231 TO END-DATE MOVE 'ANNUAL' TO REVIEW-TYPE MOVE 'EMP12345' TO EMPLOYEE-ID MOVE 'SARAH' TO EMP-FIRST MOVE 'WILLIAMS' TO EMP-LAST MOVE 'SENIOR ANALYST' TO POSITION-TITLE MOVE 'FINANCE' TO DEPARTMENT *> Set performance metrics MOVE 10 TO GOALS-SET MOVE 9 TO GOALS-MET COMPUTE ACHIEVEMENT-PCT = (GOALS-MET / GOALS-SET) * 100 MOVE 4.5 TO TECHNICAL-SKILL MOVE 4.2 TO COMMUNICATION MOVE 3.8 TO LEADERSHIP MOVE 4.7 TO TEAMWORK MOVE 4.1 TO INITIATIVE COMPUTE OVERALL-RATING = (TECHNICAL-SKILL + COMMUNICATION + LEADERSHIP + TEAMWORK + INITIATIVE) / 5 DISPLAY 'Performance review processed for: ' EMP-FIRST ' ' EMP-LAST DISPLAY 'Overall rating: ' OVERALL-RATING DISPLAY 'Goal achievement: ' ACHIEVEMENT-PCT '%'. HANDLE-WORK-ORDER. *> Initialize work order MOVE 'WO-2024-001' TO WORK-ORDER-NUMBER MOVE 'PRODUCTION' TO ORDER-TYPE MOVE 1 TO PRIORITY-LEVEL MOVE 20240301 TO PLAN-START-DATE MOVE 20240315 TO PLAN-END-DATE MOVE 14 TO PLAN-DURATION MOVE 'WIDGET-A100' TO PRODUCT-CODE MOVE 'PREMIUM WIDGET ASSEMBLY' TO PRODUCT-NAME MOVE 1000 TO ORDERED-QTY MOVE 'EACH' TO UNIT-OF-MEASURE MOVE 120.00 TO PLANNED-HOURS MOVE 8.50 TO SETUP-TIME MOVE 45.75 TO RUN-TIME MOVE 15000.00 TO MATERIAL-COSTS MOVE 3600.00 TO LABOR-COSTS MOVE 2400.00 TO OVERHEAD-COSTS ADD MATERIAL-COSTS LABOR-COSTS OVERHEAD-COSTS GIVING TOTAL-COST DISPLAY 'Work order created: ' WORK-ORDER-NUMBER DISPLAY 'Product: ' PRODUCT-NAME DISPLAY 'Quantity: ' ORDERED-QTY DISPLAY 'Total cost: $' TOTAL-COST.
What makes a data item a GROUP item in COBOL?
Answer: A GROUP item contains other data items (subordinate items) and does not have a PICTURE clause. It serves as a container for organizing related data elements.
How do level numbers work in GROUP item hierarchies?
Answer: Higher level numbers indicate subordinate items. Level 01 is typically the record level, with 05, 10, 15, etc. for subordinate groups and elementary items.
What operations can be performed on GROUP items?
Answer: GROUP items can be moved as a unit, compared as alphanumeric data, initialized with INITIALIZE, and referenced in I/O operations. Individual subordinate items can also be accessed directly.
12345601 ADDRESS-RECORD. 05 STREET-ADDRESS PIC X(30). 05 CITY PIC X(20). 05 STATE PIC X(2). 05 ZIP-CODE PIC 9(5). 05 COUNTRY PIC X(15).
12345678901 DATETIME-STAMP. 05 DATE-PART. 10 YEAR PIC 9(4). 10 MONTH PIC 9(2). 10 DAY PIC 9(2). 05 TIME-PART. 10 HOUR PIC 9(2). 10 MINUTE PIC 9(2). 10 SECOND PIC 9(2).