1
2 09/21/87 report_writer_
3 Known errors in the current release of report_writer_.
4 # Associated TR's
5 Description
6
7 14 phx19380
8 When an -edit string is defined for a column the -subtotal and -total
9 value should also use this same edit string. This wasn't supposed to
10 be the way it happens for -subcount and -count. This bug has been
11 fixed.
12
13 13 phx19338
14 report_writer_ should handle the active_function_error condition when
15 it occurs within an edit string or a header/footer active string. It
16 should print additional info on what was going on when the error
17 occured. It now provides a wealth of information.
18
19
20 12 phx19363
21 There should be a way to do things differently when a subtotal or total
22 is being passed thru an edit string, compared to when a column value is
23 passed thru an edit string. This has been provided thru the new
24 builtin value "object_being_evaluated" display_builtin value. It
25 will return "page header", "group header", "row header", "page footer",
26 "group footer", "row footer", "row value", "row subtotal", or "row
27 total" depending on when it is invoked in an active string.
28
29
30 10 phx19237
31 When a person types "display -keep_retrieval;quit" it will exit the
32 subsystem without cleaning up all the pdir files. The cpa for the fix
33 follows:
34
35 Inserted in B:
36 B270 call initialize_automatic_variables;
37 B271 if table_control_info.msf_file_control_block_ptr ^= null
38 B272 then call delete_the_table code_parm;
39 Preceding:
40 A270 call terminate_the_table;
41
42 Comparison finished: 1 difference, 3 lines.
43
44
45 5 phx18554
46 When a user types "restore_format_options foo", and foo contains
47 set_format_options requests that reference specific column options, and
48 there aren't any columns defined, they see lots of error messages. It
49 would be better if rsfo would just turf the whole ec and any pending
50 request line.
51
52
53 A >ldd>sss>s>bound_report_writer_.s.archive::rw_set_format_options.pl1 original
54 B >exl>rwd>s>rw_set_format_options.pl1 new
55
56 A195 then call ssu_$abort_line sci_ptr code
57 A196 "^/There must be columns defined before the value of ^a can be set."
58 A197 long_option_name;
59 Changed by B to:
60 B195 then if report_control_info.flags.restore_format_options_is_executing
61 B196 then goto report_control_info.restore_format_options_abort_label;
62 B197 else call ssu_$abort_line sci_ptr code
63 B198 "^/There must be columns defined before the value of ^a can be set."
64 B199 long_option_name;
65
66
67
68 A477 dcl report_cip ptr;
69 Deleted by B, preceding:
70 B479 dcl reset_flag bit 1 aligned;
71
72
73 Inserted in B:
74 B505 %page;
75 B506 %include rw_report_info;
76 Preceding:
77 A504 %skip3;
78
79 Comparison finished: 3 differences, 11 lines.
80 A >ldd>sss>s>bound_report_writer_.s.archive::rw_restore_format_options.pl1 original
81 B >exl>rwd>s>rw_restore_format_options.pl1 new
82
83
84 Inserted in B:
85 B56 call process_arguments;
86 B57 call restore_the_options;
87 B58 %skip1;
88 B59 NORMAL_EXIT:
89 B60 %skip1;
90 B61 return;
91 B62 %skip1;
92 B63 EXEC_COM_ERROR_EXIT:
93 B64 %skip1;
94 B65 report_control_info.flags.restore_format_options_is_executing = OFF;
95 B66 call ssu_$abort_line sci_ptr rw_error_$no_columns_defined
96 B67 "^/Processing of the file ^a has been terminated^/and the request line has been aborted." entry_name;
97 B68 %skip1;
98 B69 return;
99 B70 %skip1;
100 B71 %page;
101 B72 process_arguments: proc;
102 Preceding:
103 A56 %skip1;
104
105
106 Inserted in B:
107 B103 return;
108 B104 %skip1;
109 B105 end process_arguments;
110 B106 %page;
111 B107 restore_the_options: proc;
112 B108 %skip1;
113 B109 report_control_info.restore_format_options_abort_label = EXEC_COM_ERROR_EXIT;
114 B110 report_control_info.flags.restore_format_options_is_executing = ON;
115 Preceding:
116 A86 call ssu_$execute_string sci_ptr "ec " || rtrim dir_name
117
118
119 A88 %skip1;
120 A89 return;
121 A90 %page;
122 Changed by B to:
123 B113 report_control_info.flags.restore_format_options_is_executing = OFF;
124 B114 %skip1;
125 B115 return;
126 B116 %skip1;
127 B117 end restore_the_options;
128 B118 %page;
129 B119 %skip1;
130 B120 dcl OFF bit 1 aligned internal static options constant init "0"b;
131 B121 dcl ON bit 1 aligned internal static options constant init "1"b;
132
133
134 Inserted in B:
135 B151 dcl rw_error_$no_columns_defined fixed bin35 ext static;
136 Preceding:
137 A120 %skip1;
138
139 Comparison finished: 4 differences 38 lines.
140 A >ldd>include>rw_report_info.incl.pl1 original
141 B >exl>rwd>incl>rw_report_info.incl.pl1 new
142
143 A19 3 available bit 26 unaligned
144 Changed by B to:
145 B19 3 restore_format_options_is_executing bit 1 unaligned
146 B20 3 available bit 25 unaligned
147
148
149 A39 2 display_iocb_ptr ptr /* report is displayed through this */
150 Changed by B to:
151 B40 2 display_iocb_ptr ptr /* report is displayed through this */
152
153
154 Inserted in B:
155 B46 2 restore_format_options_abort_label label variable /* sfo will sometimes goto here */
156 Preceding:
157 A45 2 options_identifier fixed bin /* current set of options */
158
159 Comparison finished: 3 differences 6 lines.
160
161
162 3 phx18767
163 The report_writer_$convert_and_move_row doesn't check the size of the
164 array of value pointers passed to it to make sure the count is the
165 same as the number of columns defined. The compare ascii for
166 rw_convert_and_move_row.pl1 follows:
167
168 Inserted in B:
169 B120 if hbound value_ptrs_parm 1 ^= table_info.column_count
170 B121 then call ssu_$abort_line sci_ptr error_table_$invalid_array_size
171 B122 "^/The number of value pointers should have been ^d not ^d."
172 B123 table_info.column_count hbound value_ptrs_parm 1;
173 B124 %skip1;
174 Preceding:
175 A120 encoded_precision_ptr = addr source_length;
176
177
178 Inserted in B:
179 B154 dcl error_table_$invalid_array_size fixed bin35 ext static;
180 Preceding:
181 A149 dcl error_table_$unexpected_condition fixed bin35 ext static;
182
183 Comparison finished: 2 differences 6 lines.