i4gl 6.04.UC1 problem
Posted in 1997
On a DEC Alpha running Digital UNIX V4.0A, with OnLine Dynamic Server Vers 7.22.FC2 and 4GL Vers 6.04.UC1, I have come accross an input array problem that didn't exist in the previous version of 4GL we were using (4.13.UD1). In an "input array" statement, the user can press a key that uses the ON KEY control to call up a lookup function that displays a form, and lets the user choose a valid selection for the field. The lookup function returns the user's selection into the current field in the current record in the program array and then it is displayed. Like: INPUT ARRAY w_det_arr WITHOUT DEFAULTS FROM scr_det_arr.* ON KEY(F8) CASE WHEN INFIELD (pay_code) CALL lookup("pay_code") RETURNING w_det_arr[arrcurr].pay_code DISPLAY w_det_arr[arrcurr].* TO scr_det_arr[scrline].* END CASE The problem is that Informix's default behavior is to restore the input buffer for the current screen field after executing the statements in the ON KEY block before resuming input in the same field. This default behavior is supposed to be overridden if you change the input buffer value for the current field by assigning a new value to the corresponding variable, and then displaying this value. Which we do. The "*" notation in the "DISPLAY ... TO scr_det_arr[scrline].*" seems to fool the version of 4GL we now have into thinking the current field hasn't had anything new displayed, so it doesn't display the user's choice, it restores the old value. Workaround: If the "*" in the TO side of the "DISPLAY ... TO ..." statement is replaced by the list of fields in the record of the scr_det_arr, the program displays the new value immediately. That means we have to find each program that uses that type of ON KEY display (*) and change each one to the appropriate field list! Tech support feels bug 60072 is related, and is fixed in 4GL Vers 6.05.UD1. We are waiting for it to arrive so we can compare. -- _____________________________________________________________________ | Colin McGrath cmm@trac3000.ueci.com | | Raytheon Engineers & Constructors, Inc. (215) 422-4144 | | Phila, PA, USA Standard Disclaimers Apply | |___________________________________________________________________|