1
2
3
4
5
6 %skip (1);
7
8 %skip (1);
9 dcl BIT_DATA_TYPE fixed bin static int options (constant) init (1);
10 dcl BOTH_ALIGNMENT fixed bin static int options (constant) init (1);
11 dcl CENTER_ALIGNMENT fixed bin static int options (constant) init (2);
12 dcl CHAR_DATA_TYPE fixed bin static int options (constant) init (2);
13 dcl DECIMAL_ALIGNMENT fixed bin static int options (constant) init (3);
14 dcl DECIMAL_DATA_TYPE fixed bin static int options (constant) init (3);
15 dcl LEFT_ALIGNMENT fixed bin static int options (constant) init (4);
16 dcl NUMERIC_DATA_TYPE fixed bin static int options (constant) init (4);
17 dcl RIGHT_ALIGNMENT fixed bin static int options (constant) init (5);
18 %skip (3);
19 dcl 1 column_info aligned based (column_ip),
20 2 flags,
21 3 folding_is_fill bit (1) unaligned,
22 3 outline bit (1) unaligned,
23 3 editing bit (1) unaligned,
24 3 restore_editing bit (1) unaligned,
25 3 available bit (32) unaligned,
26 2 order fixed bin,
27 2 input_column fixed bin,
28 2 output_column fixed bin,
29 2 output_line fixed bin,
30 2 starting_position fixed bin,
31 2 width fixed bin,
32 2 alignment fixed bin,
33 2 decimal_position fixed bin,
34 2 subsystem_data_type fixed bin,
35 2 editing_string_length fixed bin (21),
36 2 editing_string_result_length fixed bin (21),
37 2 editing_string_ptr ptr,
38 2 editing_string_result_ptr ptr,
39 2 prefix_character char (1) varying;
40 dcl column_ip ptr;
41 %skip (3);
42 dcl 1 columns_info aligned based (columns_ip),
43 2 number_of_columns fixed bin,
44 2 columns (initialize_number_of_columns
45 refer (columns_info.number_of_columns)) like column_info;
46 dcl columns_ip ptr;
47 %page;
48 dcl 1 column_map (column_map_number_of_columns) aligned based (column_mp),
49 2 present bit (1),
50 2 position fixed bin;
51 dcl column_map_number_of_columns fixed bin;
52 dcl column_mp ptr;
53 %skip(3);
54 dcl 1 count_columns_info like columns_info based (count_columns_ip);
55 dcl count_columns_ip ptr;
56 %skip(3);
57 dcl 1 count_info like total_info based (count_ip);
58 dcl count_ip ptr;
59 %skip (3);
60
61 dcl current_row_value char (table_info.row_value_length) based (status.current_row_ptr);
62 %skip (3);
63
64 dcl editing_string_result char (editing_string_rl) based (editing_string_rp);
65 dcl editing_string_rl fixed bin;
66 dcl editing_string_rp ptr;
67 %skip (3);
68 dcl editing_strings_next_byte fixed bin (21);
69
70 dcl editing_strings_temp_seg char (maximum_segment_size) based (editing_strings_tsp);
71 dcl editing_strings_temp_seg_as_an_array (maximum_segment_size) char (1) based (editing_strings_tsp);
72 dcl editing_strings_tsp ptr;
73 %page;
74 dcl 1 format_report_info aligned based (format_report_ip),
75 2 flags,
76 3 unlimited_page_length bit (1) unaligned,
77 3 unlimited_page_width bit (1) unaligned,
78 3 page_header_is_defined bit (1) unaligned,
79 3 group_header_is_defined bit (1) unaligned,
80 3 group_header_trigger_is_defined bit (1) unaligned,
81 3 title_block_is_defined bit (1) unaligned,
82 3 row_header_is_defined bit (1) unaligned,
83 3 row_value_is_defined bit (1) unaligned,
84 3 row_footer_is_defined bit (1) unaligned,
85 3 group_footer_is_defined bit (1) unaligned,
86 3 group_footer_trigger_is_defined bit (1) unaligned,
87 3 page_footer_is_defined bit (1) unaligned,
88 3 editing_is_defined bit (1) unaligned,
89 3 exclude_is_defined bit (1) unaligned,
90 3 group_is_defined bit (1) unaligned,
91 3 outline_is_defined bit (1) unaligned,
92 3 page_break_is_defined bit (1) unaligned,
93 3 subtotal_is_defined bit (1) unaligned,
94 3 subcount_is_defined bit (1) unaligned,
95 3 total_is_defined bit (1) unaligned,
96 3 count_is_defined bit (1) unaligned,
97 3 available bit (15) unaligned,
98 2 page_width fixed bin,
99 2 page_length fixed bin,
100 2 number_of_formatted_rows fixed bin (35),
101 2 editing_strings_next_available_byte fixed bin (21),
102 2 headers_next_available_byte fixed bin (21),
103 2 report_iocb_ptr ptr,
104 2 table_info_ptr ptr,
105 2 format_document_op ptr,
106 2 page_info_ptr ptr,
107 2 copy_of_page_info_ptr ptr,
108
109 2 formatted_page_info_ptr ptr,
110 2 overstrike_info_ptr ptr,
111 2 status_ptr ptr,
112 2 template_map_ptr ptr,
113 2 page_header_info_ptr ptr,
114 2 page_footer_info_ptr ptr,
115 2 group_header_info_ptr ptr,
116 2 group_footer_info_ptr ptr,
117 2 group_header_trigger_info_ptr ptr,
118 2 group_footer_trigger_info_ptr ptr,
119 2 row_header_info_ptr ptr,
120 2 row_footer_info_ptr ptr,
121 2 title_block_columns_info_ptr ptr,
122 2 title_block_info_ptr ptr,
123 2 input_columns_info_ptr ptr,
124 2 input_columns_order_ptr ptr,
125 2 output_columns_info_ptr ptr,
126 2 group_info_ptr ptr,
127 2 outline_info_ptr ptr,
128 2 page_break_info_ptr ptr,
129 2 subtotal_info_ptr ptr,
130 2 subcount_info_ptr ptr,
131 2 total_info_ptr ptr,
132 2 count_info_ptr ptr,
133 2 row_value_template_info_ptr ptr,
134 2 generic_template_ptr ptr,
135 2 header_part_delimiter char (1) unaligned,
136 2 truncation_indicator char (32) varying unaligned,
137 2 report_directory_name char (168) unaligned,
138 2 report_entry_name char (32) unaligned;
139 dcl format_report_ip ptr;
140 %skip(1);
141
142 dcl generic_template char (generic_template_length) based (generic_tp);
143 dcl generic_template_length fixed bin;
144 dcl generic_tp ptr;
145 %skip (3);
146
147 dcl 1 group_info aligned based (group_ip),
148 2 number_of_columns_to_group fixed bin,
149 2 column_number (gi_init_number_of_columns_to_group
150 refer (group_info.number_of_columns_to_group)) fixed bin;
151 dcl gi_init_number_of_columns_to_group fixed bin;
152 dcl group_ip ptr;
153 %skip (3);
154 dcl headers_next_byte fixed bin (21);
155
156 dcl headers_temp_seg char (maximum_segment_size) based (headers_tsp);
157 dcl headers_temp_seg_as_an_array (maximum_segment_size) char (1) based (headers_tsp);
158 dcl headers_tsp ptr;
159 %skip (3);
160 dcl 1 header_info aligned based (header_ip),
161 2 number_of_lines fixed bin,
162 2 maximum_number_of_parts fixed bin,
163 2 lines (hi_init_number_of_lines
164 refer (header_info.number_of_lines)),
165 3 parts (hi_init_maximum_number_of_parts
166 refer (header_info.maximum_number_of_parts)),
167 4 flags,
168 5 present bit (1) unaligned,
169 5 active bit (1) unaligned,
170 5 available bit (34) unaligned,
171 4 index fixed bin (21),
172 4 length fixed bin (21),
173 4 starting_position fixed bin,
174 4 width fixed bin,
175 4 alignment fixed bin;
176 dcl header_ip ptr;
177 dcl hi_init_maximum_number_of_parts fixed bin;
178 dcl hi_init_number_of_lines fixed bin;
179 %skip (3);
180 dcl initialize_number_of_columns fixed bin;
181 %skip (3);
182 dcl 1 input_columns_info aligned like columns_info based (input_columns_ip);
183 dcl input_columns_ip ptr;
184 %skip (3);
185 dcl input_columns_order (input_columns_info.number_of_columns) fixed bin based (input_columns_op);
186 dcl input_columns_op ptr;
187 %skip (3);
188 dcl maximum_segment_size fixed bin (21);
189 %skip (3);
190
191 dcl next_row_value char (table_info.row_value_length) based (status.next_row_ptr);
192 %skip (3);
193 dcl 1 outline_info aligned based (outline_ip),
194 2 maximum_number_of_single_columns fixed bin,
195 2 maximum_number_of_grouping_columns fixed bin,
196 2 number_of_single_columns fixed bin,
197 2 number_of_grouping_columns fixed bin,
198 2 single_columns (oi_init_maximum_number_of_single_columns refer (
199 outline_info.maximum_number_of_single_columns)) fixed bin,
200 2 grouping_columns (oi_init_maximum_number_of_grouping_columns refer (
201 outline_info.maximum_number_of_grouping_columns)) fixed bin;
202 dcl oi_init_maximum_number_of_grouping_columns fixed bin;
203 dcl oi_init_maximum_number_of_single_columns fixed bin;
204 dcl outline_ip ptr;
205 %skip (3);
206 dcl 1 output_columns_info like columns_info based (output_columns_ip);
207 dcl output_columns_ip ptr;
208 %skip (3);
209
210 dcl 1 page_break_info aligned based (page_break_ip),
211 2 number_of_columns fixed bin,
212 2 columns (pbi_init_number_of_columns refer (
213 page_break_info.number_of_columns)) bit (1) unaligned;
214 dcl page_break_ip ptr;
215 dcl pbi_init_number_of_columns fixed bin;
216 %skip (3);
217
218 dcl previous_row_value char (table_info.row_value_length) based (status.previous_row_ptr);
219 %skip (3);
220
221 dcl 1 row_value_template_info like template_info based (row_value_template_ip);
222 dcl row_value_template_ip ptr;
223 %skip (3);
224
225 dcl 1 status aligned based (status_pointer),
226 2 flags,
227 3 still_formatting_detail_blocks bit (1),
228 3 first_row_of_report bit (1),
229 3 last_row_of_report bit (1),
230 3 first_row_on_page bit (1),
231 3 page_overflow bit (1),
232 3 subtotals_ejection_in_progress bit (1),
233 3 subcounts_ejection_in_progress bit (1),
234 3 totals_ejection_in_progress bit (1),
235 3 counts_ejection_in_progress bit (1),
236 3 header_being_evaluated bit (1),
237 3 detail_block_used_some_lines bit (1),
238 3 row_has_been_processed_before bit (1),
239 3 last_pass bit (1),
240 2 previous_row_ptr ptr,
241 2 current_row_ptr ptr,
242 2 next_row_ptr ptr,
243 2 total_number_of_rows_used fixed bin,
244
245 2 current_pass_number fixed bin,
246 2 current_row_number fixed bin (35),
247 2 current_column_number fixed bin,
248 2 current_page_number fixed bin (21),
249 2 current_line_on_page fixed bin,
250 2 remaining_lines_on_page fixed bin,
251 2 highest_row_formatted fixed bin,
252 2 current_header_line fixed bin,
253 2 current_header_part fixed bin,
254 2 number_of_lines_needed_for_detail_block fixed bin,
255 2 number_of_lines_needed_for_row_header fixed bin,
256 2 number_of_lines_needed_for_row_value fixed bin,
257 2 number_of_lines_needed_for_row_footer fixed bin,
258 2 number_of_lines_needed_for_page_footer fixed bin,
259 2 number_of_lines_needed_for_group_header fixed bin,
260 2 number_of_lines_needed_for_group_footer fixed bin,
261 2 last_row_number fixed bin (35),
262 2 last_page_number fixed bin,
263 2 object_being_evaluated char (16) varying;
264 dcl status_pointer ptr;
265 %skip (3);
266 dcl 1 subcount_columns_info like columns_info based (subcount_columns_ip);
267 dcl subcount_columns_ip ptr;
268 %skip(3);
269 dcl 1 subcount_generation_info like subtotal_generation_info based (subcount_generation_ip);
270 dcl subcount_generation_ip ptr;
271 %skip(3);
272 dcl 1 subcount_info like subtotal_info based (subcount_ip);
273 dcl subcount_ip ptr;
274 %skip (3);
275 dcl 1 subtotal_columns_info like columns_info based (subtotal_columns_ip);
276 dcl subtotal_columns_ip ptr;
277 %skip (3);
278
279 dcl 1 subtotal_generation_info aligned based (subtotal_generation_ip),
280 2 maximum_number_of_generation_blocks fixed bin,
281 2 number_of_subtotals fixed bin,
282 2 current_generation_block fixed bin,
283 2 generations (0:sgi_init_number_of_generations
284 refer (subtotal_generation_info.maximum_number_of_generation_blocks)),
285 3 subtotals (sgi_init_number_of_subtotals
286 refer (subtotal_generation_info.number_of_subtotals)) float dec (59);
287 dcl sgi_init_number_of_generations fixed bin;
288 dcl sgi_init_number_of_subtotals fixed bin;
289 dcl subtotal_generation_ip ptr;
290 %skip (3);
291 dcl 1 subtotal_info aligned based (subtotal_ip),
292 2 columns_info_ptr ptr,
293 2 subtotal_generation_info_ptr ptr,
294 2 number_of_columns_to_subtotal fixed bin,
295 2 highest_level fixed bin,
296 2 current_level fixed bin,
297 2 columns (si_init_number_of_columns_to_subtotal
298 refer (subtotal_info.number_of_columns_to_subtotal)),
299 3 flags,
300 4 reset bit (1) unaligned,
301 4 group_column bit (1) unaligned,
302 4 available bit (34) unaligned,
303 3 input_column fixed bin,
304 3 watch_column fixed bin,
305 3 level fixed bin,
306 3 ioa_string char (5) varying,
307 3 subtotal float dec (59);
308
309 dcl si_init_number_of_columns_to_subtotal fixed bin;
310 dcl subtotal_ip ptr;
311 %skip (3);
312 dcl 1 template_info aligned based (template_ip),
313 2 template_width fixed bin,
314 2 number_of_templates fixed bin,
315 2 templates (ti_init_number_of_templates refer (template_info.number_of_templates))
316 char (ti_init_template_width refer (template_info.template_width));
317 dcl ti_init_number_of_templates fixed bin;
318 dcl template_ip ptr;
319 dcl ti_init_template_width fixed bin;
320 %skip (3);
321
322 dcl template_map (template_map_number_of_bits) bit (1) unaligned based (template_mp);
323 dcl template_mp ptr;
324 dcl template_map_number_of_bits fixed bin;
325 dcl template_map_defined_as_a_string bit (template_map_number_of_bits) based (template_mp);
326 %skip (3);
327 dcl template char (template_length) based (template_ptr);
328 dcl template_length fixed bin;
329 dcl template_ptr ptr;
330 %skip (3);
331 dcl 1 title_block_columns_info like columns_info based (title_block_columns_ip);
332 dcl title_block_columns_ip ptr;
333 %skip (3);
334
335 dcl 1 title_block_info aligned based (title_block_ip),
336 2 number_of_lines fixed bin,
337 2 line_length fixed bin,
338 2 lines (tbi_init_number_of_lines refer (
339 title_block_info.number_of_lines)) char (tbi_init_line_length refer (
340 title_block_info.line_length));
341 dcl tbi_init_line_length fixed bin;
342 dcl tbi_init_number_of_lines fixed bin;
343 dcl title_block_ip ptr;
344 %skip (3);
345 dcl 1 total_columns_info like columns_info based (total_columns_ip);
346 dcl total_columns_ip ptr;
347 %skip (3);
348 dcl 1 total_info aligned based (total_ip),
349 2 columns_info_ptr ptr,
350 2 number_of_columns_to_total fixed bin,
351 2 columns (ti_init_number_of_columns_to_total
352 refer (total_info.number_of_columns_to_total)),
353 3 input_column fixed bin,
354 3 ioa_string char (5) varying,
355 3 total float dec (59);
356 dcl ti_init_number_of_columns_to_total fixed bin;
357 dcl total_ip ptr;
358 %skip (1);
359