A script-enabled browser is required for this page to function properly.

About Formula Item Recalculation

A formula item is marked for recalculation whenever a change occurs to any non-system bind variable (i.e., global variable, parameter, or item) that appears in the formula or in any user-written subprogram referenced by the formula. Note that Oracle Forms does not automatically mark an item for recalculation when the value returned by a Built-in function or system variable (referenced by the formula) changes.

Indirect References Using Built-ins such as COPY, NAME_IN, DO_KEY, and EXECUTE_TRIGGER can result in an indirect reference to a bind variable. If you use such Built-ins in a formula, Oracle Forms will not recognize that a bind variable has been referenced (at compile time), and thus will not mark the associated calculated item for recalculation when the bind variable changes (at runtime). To avoid this, code an explicit reference for each bind variable (in any program unit directly or indirectly called by the formula) that is indirectly referenced. Use the DUMMY_REFERENCE Built-in for this purpose:

temp_sal := NAME_IN('emp.sal');
DUMMY_REFERENCE(:emp.sal); 

Note: DUMMY_REFERENCE need not be executed for the referenced bind variable to be recognized by Oracle Forms (thereby causing the related calculated item to be marked for recalculation).

RECALCULATE Built-in Use RECALCULATE to explicitly mark a formula item for recalculation. Do this if a formula references a system variable or Built-in function, and a change has occurred that would cause the system variable or Built-in function to return a different value. Note that even when RECALCULATE is called on a formula item, recalculation does not happen immediately. The item will be recalculated sometime before the next reference to the item.

Warning: Regarding formula items, avoid a scenario where the formula for calculated item A calls a subprogram that changes the value of a bind variable that affects the value of calculated item B. In a case like this, it is difficult to ensure that the value of the bind variable will be accurate in relation to its effect on the value of items A or B (since Oracle Forms cannot guarantee precisely when A and B will be recalculated).


DUMMY_REFERENCE Built-in

RECALCULATE Built-in

Referencing Oracle Forms items indirectly

About calculation modes

About formula calculation

About recalculation of calculated items

About summary item recalculation