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     %skip(3);
 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      %skip(1);
 88  B59      NORMAL_EXIT:
 89  B60      %skip(1);
 90  B61                return;
 91  B62      %skip(1);
 92  B63      EXEC_COM_ERROR_EXIT:
 93  B64      %skip(1);
 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      %skip(1);
 98  B69                return;
 99  B70      %skip(1);
100  B71      %page;
101  B72      process_arguments: proc;
102  Preceding:
103  A56      %skip(1);
104 
105 
106  Inserted in B:
107  B103               return;
108  B104     %skip(1);
109  B105          end process_arguments;
110  B106     %page;
111  B107     restore_the_options: proc;
112  B108     %skip(1);
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      %skip(1);
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     %skip(1);
125  B115               return;
126  B116     %skip(1);
127  B117          end restore_the_options;
128  B118     %page;
129  B119     %skip(1);
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 bin(35) ext static;
136  Preceding:
137  A120     %skip(1);
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     %skip(1);
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 bin(35) ext static;
180  Preceding:
181  A149     dcl error_table_$unexpected_condition fixed bin(35) ext static;
182 
183 Comparison finished:  2 differences, 6 lines.