Getting Started with TRANSACT (32247-90007)

Chapter 8 135
Special Topics
Arrays
Figure 8-16. Two-Dimensional Array, Special Use of LET OFFSET (Continued)
25 find(serial) orderhead,list=(order-no,order-date),
26 perform=100-each-order;
27 display order-table;
28 exit;
30 100-each-order:
31
32 move (date) = (order-date);
33 set(key) list (order-no);
34 find(chain) orderline,list=(quantity)
35 ,perform=200-each-line;
36 return;
37
38 200-each-line:
39 let (indx) = -1;
40 let (dun) = (no);
41 while (dun) = (no)
42 do
43 let (indx) = (indx) + 1;
43.1 let offset(ot-year) = (indx) * 50;
44 if (ot-year) = (date-yy)
45 then let (dun) = (yes)
46 else
47 if (indx) = (end-of-table)
48 then
49 do
50 let (end-of-table) = (end-of-table) + 1;
51 let (ot-year) = (date-yy);
52 let (dun) = (yes);
53 doend;
54 doend;
55 let offset(ot-mo) = offset(ot-year) + 2 + [(date-mm) - 1] * 4;
56 let (ot-mo) = (ot-mo) + (quantity);
57 return;