


In this final approach, you decide to streamline the code a bit. Three changes are introduced:
The USE GROUP directive is applied to the notes, because you don't need to access each note
line individually from the database side. Grouping them improves execution
speed and clarity.
The notes field is renamed for convenience.
The USE GROUP and DATE directives are applied to the date, to give it all the properties of a date on the
database side.
fd p-o-file.
*(( xfd when p-o-record-type = "h" ))
01 p-o-record.
03 p-o-division-number pic 9(3).
03 p-o-record-type pic x.
88 header-record value "h".
88 detail-record value "d".
03 p-o-number pic 9(10).
03 p-o-number-detail redefines p-o-number.
05 picking-ticket-number pic 9(6).
05 shipping-region pic 9(2).
05 p-o-customer-type pic 9(2).
05 p-o-customer-breakdown redefines
p-o-customer-type.
07 customer-category pic x.
88 p-o-customer-retail value "r".
88 p-o-customer-whlsale value "w".
07 customer-pay-format pic x.
88 is-net-30 value "3".
88 is-net-10 value "1".
*(( xfd use group, date ))
03 p-o-date.
05 p-o-yy pic 9(2).
05 p-o-mm pic 9(2).
05 p-o-dd pic 9(2).
*(( xfd when p-o-record-type = "d" ))
01 p-o-detail-record.
03 p-o-dept-number pic 9(3).
03 p-o-record-type pic x.
03 detail-p-o-number pic 9(10).
03 p-o-shipping-info.
05 p-o-quantity-to-ship pic s9(4) comp.
05 p-o-total-quantity pic s9(4) comp.
*(( xfd use group, name = notes ))
03 p-o-notes.
05 notes-line occurs 3 times pic x(40).
| Column Name
| Type
|
| p_o_division_number
| number(3) *
|
| p_o_record_type
| char(1)
|
| p_o_number
| number(10) *
|
| p_o_date
| date
|
| p_o_dept_number
| number(3) *
|
| p_o_quantity_to_sh
| number(4) *
|
| p_o_total_quantity
| number(4) *
|
| notes
| char(120) |