In-Direct Global Variable Access
In the name of
Allah, Most Gracious, Most Merciful
Praise be to
Allah, blessing and peace be upon our prophet Mohammed, his family and his
companions. After that ,
· Indirect reference is
mandatory when you refer to the value of a form bind variable (item, parameter, global variable) in a PL/SQL Library or a menu
module. Because direct reference CAN NOT be resolved.
"Read about Direct Global Variable Access to Pass Data to Forms"
"Read about Direct Global Variable Access to Pass Data to Forms"
Why indirect reference is mandatory?
·
Because libraries, menus, and forms are individual form modules, you cannot refer directly to the value of a form item or in a menu-item
command or in a PL/SQL Library.
·
Referencing items indirectly allows you to write more generic,
reusable code.
· Indirect Global Variable Access:
Hence, Global variables have an indirect access to form module items like a PL/SQL Library, packages and menu modules. You can't directly reference items on the form in menu code. Oracle forms allow using the feature of in-direct references; you can do indirect referencing to form items and Global variables with the NAME_IN and COPY built-ins.
Hence, Global variables have an indirect access to form module items like a PL/SQL Library, packages and menu modules. You can't directly reference items on the form in menu code. Oracle forms allow using the feature of in-direct references; you can do indirect referencing to form items and Global variables with the NAME_IN and COPY built-ins.
·COPY () built-in
The Copy ()
built in procedure simply enables you to set or define the value of any Global variable,
form parameter or form item as the following:
Syntax
BEGIN
COPY(
Assigned_value, 'GLOBAL.VARIABLE_NAME');
END;
Example:
If you want to assign the sysdate() function
to a global variable within your Oracle form PLL library, packages you have to set
e.g. GLOBAL.TO_DAY as the following:
BEGIN
COPY (
TO_CHAR (SYSDATE), 'GLOBAL.TO_DAY');
END;
Then, "Copy" in this case is
used to copy a value of the system date to "GLOBAL.TO_DAY".
· NAME_IN built-in
The
NAME_IN () built-in function simply enables you to retrieve the value of any Global
variable, form parameter or form item with no direct reference to as the
following:
Syntax
DECLARE
v_curr_date DATE;
BEGIN
v_curr_date := NAME_IN('GLOBAL.VARIABLE_NAME');
END;
Example:
You
can retrieve the GLOBAL.TO_DAY value within your Oracle form PL/SQL packages using
the NAME_IN()
DECLARE
v_curr_date DATE;
BEGIN
v_curr_date := NAME_IN(
'GLOBAL.TO_DAY'
);
END;
Use conversion functions for Number and
Date data type to cast it back to its initial data type using the TO_NUMBER ()
or TO_DATE () functions according to the original form item datatype.
Hope it Helps…
My success only comes from Allah, pls.
note your comments and suggestions are great help for me in progress thanks in
advance.
No comments :
Post a Comment