READ_SOUND_FILE restrictions READ_SOUND_FILE restrictions


READ_SOUND_FILE examples READ_SOUND_FILE examples

/* These procedure calls (attached to a When-Button-Pressed

RECALCULATE built-in

Restrictions Related Topics
All Built-ins

Description

Marks the value of the specified formula calculated item (in each record of the block) for recalculation. Typically you would invoke this when the formula (or function or procedure that it invokes) refers to a system variable or built-in function which now would return a different value.

Note that actual recalculation doesn't happen immediately; it occurs sometime after the item is marked¾but before the new value of the calculated item is referenced or displayed to the end user. Your application's logic should not depend on recalculation of a calculated item occurring at a specific time.

Syntax

PROCEDURE RECALCULATE
(item_name VARCHAR2);

PROCEDURE RECALCULATE
(item_id Item);

Built-in Type unrestricted procedure

Enter Query Mode yes

Parameters

item_name The name you gave the item when you defined it. Datatype is VARCHAR2.

item_id The unique ID Form Builder assigned to the item when it created the item. Use the FIND_ITEM built-in to return the ID to an appropriately typed variable. Datatype is Item.


RECALCULATE restrictions RECALCULATE restrictions

You can use the RECALCULATE built-in to recalculate formula calculated items only; if you specify a summary item (or a non-calculated item) as the argument to RECALCULATE, Form Builder will return an error message:

FRM-41379: Cannot recalculate non-formula item <block_name.item_name>.


REDISPLAY built-in REDISPLAY built-in

All Built-ins

Description

Redraws the screen. This clears any existing system messages displayed on the screen.

Syntax

PROCEDURE REDISPLAY;

Built-in Type unrestricted procedure

Enter Query Mode yes

Parameters

none


RELEASE_OBJ RELEASE_OBJ

All Built-ins

Description

Shuts down the connection to the OLE object.

Syntax

PROCEDURE RELEASE_OBJ
(obj OLEOBJ, kill_persistence_boolean := NULL);

Built-in Type unrestricted procedure

Parameters

obj
Pointer to the OLE object to be released.
Kill_persistence_boolean
A boolean value of NULL releases the object, ending its persistence.
A boolean value of TRUE releases only a persistent object. If you don't have a pointer to a persistent object, your code will misbehave.
A boolean value of FALSE releases only a non-persistent object. If you don't have a pointer to a non-persistent object, you will get error FRM-40935.
This is an optional parameter. If not supplied, the default value is NULL (release object unconditionally).
Usage Notes

In general, you should not access an object after you release it.

The conditional form of this procedure (boolean TRUE or FALSE) should be used only in those rare cases when two instances of an object have been created, each carrying different persistence values, and the pointer is ambiguous. The procedure will release one of the two objects, leaving the other as the sole instance.


REPLACE_CONTENT_VIEW built-in REPLACE_CONTENT_VIEW built-in

Examples Restrictions Related Topics
All Built-ins

Description

Replaces the content canvas currently displayed in the indicated window with a different content canvas.

Syntax

PROCEDURE REPLACE_CONTENT_VIEW
(window_id Window,
view_id
ViewPort);

PROCEDURE REPLACE_CONTENT_VIEW
(window_name VARCHAR2,
view_id
ViewPort);
PROCEDURE REPLACE_CONTENT_VIEW
(window_id Window,
view_name
VARCHAR2);
PROCEDURE REPLACE_CONTENT_VIEW
(window_name VARCHAR2,
view_name
VARCHAR2);

Built-in Type unrestricted procedure

Enter Query Mode yes

Parameters

window_id Specifies the unique ID that Form Builder assigns the window when created. Use the FIND_WINDOW built-in to return the ID to an appropriately typed variable. The data type of the ID is Window.

window_name Specifies the name that you gave the window when creating it. The data type of the name is VARCHAR2.

  • iew_id Specifies the unique ID that Form Builder assigns the view when it creates the object. Use the FIND_VIEW built-in to return the ID to an appropriately typed variable. The data type of the ID is ViewPort.

  • iew_name Specifies the name that you gave the object when defining it. The data type of the name is VARCHAR2.


    REPLACE_CONTENT_VIEW restrictions
REPLACE_CONTENT_VIEW restrictions

frm90000.gif
The canvas that replaces the window's current content canvas must have been assigned to that window at design time. That is, you cannot replace a window's content view with a content view from a different window.

frm90000.gif If you replace a content canvas that contains the item that currently has focus, Form Builder will immediately undo the replacement to keep the focus item visible to the end user.


REPLACE_CONTENT_VIEW examples REPLACE_CONTENT_VIEW examples

/*

  • Built-in: REPLACE_CONTENT_VIEW
    ** Example: Replace the 'salary' view with the 'history'
    ** view in the 'employee_status' window.
    */
    BEGIN
    Replace_Content_View('employee_status','history');
    END;


    REPLACE_MENU built-in
REPLACE_MENU built-in

Examples Related Topics
All Built-ins

Description

Replaces the current menu with the specified menu, but does not make the new menu active. REPLACE_MENU also allows you to change the way the menu displays and the role.

Because REPLACE_MENU does not make the new menu active, Form Builder does not allow the menu to obscure any part of the active canvas. Therefore, all or part of the menu does not appear on the screen if the active canvas would cover it.

Syntax

REPLACE_MENU;

PROCEDURE REPLACE_MENU
(menu_module_name VARCHAR2);
PROCEDURE REPLACE_MENU
(menu_module_name VARCHAR2,
menu_type
NUMBER);
PROCEDURE REPLACE_MENU
(menu_module_name VARCHAR2,
menu_type
NUMBER,
starting_menu_name
VARCHAR2);
PROCEDURE REPLACE_MENU
(menu_module_name VARCHAR2,
menu_type
NUMBER,
starting_menu
VARCHAR2,
group_name
VARCHAR2);
PROCEDURE REPLACE_MENU
(menu_module_name VARCHAR2,
menu_type
NUMBER,
starting_menu
VARCHAR2,
group_name
VARCHAR2,
use_file
BOOLEAN);

Built-in Type unrestricted procedure

Enter Query Mode yes

Usage Notes

REPLACE_MENU replaces the menu for all windows in the application. If you are using CALL_FORM, REPLACE_MENU will replace the menu for both the calling form and the called form with the specified menu.

Parameters

menu_module _name Name of the menu module that should replace the current menu module. Datatype is VARCHAR2. This parameter is optional; if it is omitted, Form Builder runs the form without a menu.

menu_type The display style of the menu. The following constants can be passed as arguments for this parameter:

PULL_DOWN Specifies that you want Form Builder to display the menus in a pull-down style that is characteristic of most GUI platforms and some character mode platforms.

BAR Specifies that you want Form Builder to display the menu in a bar style horizontally across the top of the root window.

FULL_SCREEN Specifies that you want Form Builder to display the menu in a full-screen style.

starting_menu Specifies the menu within the menu module that Form Builder should use as the starting menu. The data type of the name is VARCHAR2.

group_name Specifies the security role that Form Builder is to use. If you do not specify a role name, Form Builder uses the current username to determine the role.

use_file Indicates how Form Builder should locate the menu .MMX file to be run. Corresponds to the Menu Source form module property. The data type of use_file is BOOLEAN.

NULL Specifies that Form Builder should read the current form's Menu Source property and execute REPLACE_MENU accordingly. For example, if the form module Menu Source property is set to Yes for the current form, Form Builder executes REPLACE_MENU as if the use_file actual parameter was TRUE.

FALSE Specifies that Form Builder should treat the menu_module value as a reference to a .MMB (binary) menu module in the database, and should query this module to get the actual name of the .MMX (executable).

TRUE Specifies that Form Builder should treat the menu_module value as a direct reference to a .MMX menu runfile in the file system.


REPLACE_MENU examples REPLACE_MENU examples

/*

  • Built-in: REPLACE_MENU
    ** Example: Use a standard procedure to change which root
    ** menu in the current menu application appears in
    ** the menu bar. A single menu application may
    ** have multiple "root-menus" which an application
    ** can dynamically set at runtime.
    */
    PROCEDURE Change_Root_To(root_menu_name VARCHAR2) IS
    BEGIN
    Replace_Menu('MYAPPLSTD', PULL_DOWN, root_menu_name);
    END;


    REPORT_OBJECT_STATUS built-in
REPORT_OBJECT_STATUS built-in

Examples
All Built-ins

Description

Provides status of a report object run within a form by the RUN_REPORT_OBJECT built-in.

Syntax

PROCEDURE REPORT_OBJECT_STATUS
(report_id VARCHAR2(20)
);

Built-in Type unrestricted procedure

Enter Query Mode yes

Parameters

report_id The VARCHAR2 value returned by the RUN_REPORT_OBJECT built-in. This value uniquely identifies the report that is currently running either locally or on a remote report server.

Usage Notes

frm90000.gif
There are eight possible return values for this built-in: finished, running, canceled, opening_report, enqueued, invalid_job, terminated_with_error, and crashed.


REPORT_OBJECT_STATUS examples REPORT_OBJECT_STATUS examples

DECLARE

repid REPORT_OBJECT;

  • rep VARCHAR2(100);

rep_status varchar2(20);

BEGIN

repid := find_report_object('report4');

  • rep := RUN_REPORT_OBJECT(repid);

rep_status := REPORT_OBJECT_STATUS(v_rep);

if rep_status = 'FINISHED' then

message('Report Completed');

copy_report_object_output(v_rep,'d:\temp\local.pdf');

host('netscape d:\temp\local.pdf');

else

message('Error when running report.');

end if;

END;


RESET_GROUP_SELECTION built-in RESET_GROUP_SELECTION built-in

Examples Related Topics
All Built-ins

Description

Deselects any selected rows in the given group. Use this built-in to deselect all record group rows that have been programmatically marked as selected by executing SET_GROUP_SELECTION on individual rows.

Syntax

PROCEDURE RESET_GROUP_SELECTION
(recordgroup_id RecordGroup);

PROCEDURE RESET_GROUP_SELECTION
(recordgroup_name VARCHAR2);

Built-in Type unrestricted procedure

Enter Query Mode yes

Parameters

recordgroup_id The unique ID that Form Builder assigns when it creates the group. The data type of the ID is RecordGroup.

recordgroup_name The name you gave to the record group when creating it. The data type of the name is VARCHAR2.


RESET_GROUP_SELECTION examples RESET_GROUP_SELECTION examples

/*

  • Built-in: RESET_GROUP_SELECTION
    ** Example: If the user presses the (Cancel) button, forget
    ** all of the records in the 'USERSEL' record
    ** group that we may have previously marked as
    ** selected records.
    ** Trigger: When-Button-Pressed
    */
    BEGIN
    Reset_Group_Selection( 'usersel' );
    END;


    RESIZE_WINDOW built-in
RESIZE_WINDOW built-in

Examples Related Topics
All Built-ins

Description

Changes the size of the given window to the given width and height. A call to RESIZE_WINDOW sets the width and height of the window, even if the window is not currently displayed. RESIZE_WINDOW does not change the position of the window, as specified by the x and y coordinates of the window's upper left corner on the screen.

On Microsoft Windows, you can resize the MDI application window by specifying the constant FORMS_MDI_WINDOW as the window name.

You can also resize a window with SET_WINDOW_PROPERTY.

Syntax

PROCEDURE RESIZE_WINDOW
(window_id Window,
width
NUMBER,
height
NUMBER);

PROCEDURE RESIZE_WINDOW
(window_name VARCHAR2,
width
NUMBER,
height
NUMBER);

Built-in Type unrestricted procedure

Enter Query Mode yes

Parameters

window_id Specifies the unique ID that Form Builder assigns the window when created. Use the FIND_WINDOW built-in to return the ID to an appropriately typed variable. The data type of the ID is Window.

window_name Specifies the name that you gave the window when creating it. The data type of the name is VARCHAR2.

width Specifies the new width of the window, in form coordinate units.

height Specifies the new height of the window, in form coordinate units.


RESIZE_WINDOW examples RESIZE_WINDOW examples

/*

  • Built-in: RESIZE_WINDOW
    ** Example: Set Window2 to be the same size as Window1
    */
    PROCEDURE Make_Same_Size_Win( Window1 VARCHAR2, Window2 VARCHAR2) IS
    wn_id1 Window;
    w NUMBER;
    h NUMBER;
    BEGIN
    /*
    ** Find Window1 and get it's width and height.
    */
    wn_id1 := Find_Window(Window1);
    w := Get_Window_Property(wn_id1,WIDTH);
    h := Get_Window_Property(wn_id1,HEIGHT);
    /*
    ** Resize Window2 to the same size
    */
    Resize_Window( Window2, w, h );
    END;


    RETRIEVE_LIST built-in
RETRIEVE_LIST built-in

Examples Related Topics
All Built-ins

Description

Retrieves and stores the contents of the current list into the specified record group. The target record group must have the following two-column (VARCHAR2) structure:

Column 1: Column 2:

the list label the list value

Storing the contents of a list item allows you to restore the list with its former contents.

Syntax

PROCEDURE RETRIEVE_LIST
(list_id ITEM,
recgrp_name
VARCHAR2);

PROCEDURE RETRIEVE_LIST
(list_id ITEM,
recgrp_id RecordGroup);
PROCEDURE RETRIEVE_LIST
(list_name VARCHAR2,
recgrp_id
RecordGroup);
PROCEDURE RETRIEVE_LIST
(list_name VARCHAR2,
recgrp_name
VARCHAR2);

Built-in Type unrestricted procedure

Returns VARCHAR2

Enter Query Mode yes

Parameters

list_id Specifies the unique ID that Form Builder assigns when it creates the list item. Use the FIND_ITEM built-in to return the ID to an appropriately typed variable. The data type of the ID is ITEM.

list_name The name you gave to the list item when you created it. The data type of the name is VARCHAR2.

recgrp_id Specifies the unique ID that Form Builder assigns when it creates the record group. The data type of the ID is RecordGroup.

recgrp_name The VARCHAR2 name you gave to the record group when you created it.


RETRIEVE_LIST examples RETRIEVE_LIST examples

/*

  • Built-in: RETRIEVE_LIST
    ** Example: See POPULATE_LIST
    */


    RUN_PRODUCT built-in
RUN_PRODUCT built-in

Examples Related Topics
All Built-ins

Description

Invokes one of the supported Oracle tools products and specifies the name of the module or module to be run. If the called product is unavailable at the time of the call, Form Builder returns a message to the end user.

If you create a parameter list and then reference it in the call to RUN_PRODUCT, the form can pass text and data parameters to the called product that represent values for command line parameters, bind or lexical references, and named queries. Parameters of type DATA_PARAMETER are pointers to record groups in Form Builder. You can pass DATA_PARAMETERs to Report Builder and Graphics Builder, but not to Form Builder.

To run a report from within a form, you can alternatively use the dedicated report integration built-in RUN_REPORT_OBJECT .

Syntax

PROCEDURE RUN_PRODUCT
(product NUMBER,
module
VARCHAR2,
commmode
NUMBER,
execmode
NUMBER,
location
NUMBER,
paramlist_id
VARCHAR2,
display
VARCHAR2);

PROCEDURE RUN_PRODUCT
(product NUMBER,
module
VARCHAR2,
commmode
NUMBER,
execmode
NUMBER,
location
NUMBER,
paramlist_name
VARCHAR2,
display
VARCHAR2);

Built-in Type unrestricted procedure

Enter Query Mode yes

Parameters

product Specifies a numeric constant for the Oracle product you want to invoke: FORMS specifies a Runform session. GRAPHICS specifies Graphics Builder. REPORTS specifies Report Builder. BOOK specifies Oracle Book.

module Specifies the VARCHAR2 name of the module or module to be executed by the called product. Valid values are the name of a form module, report, Graphics Builder display, or Oracle Book module. The application looks for the module or module in the default paths defined for the called product.

commmode Specifies the communication mode to be used when running the called product. Valid numeric constants for this parameter are SYNCHRONOUS and ASYNCHRONOUS.

SYNCHRONOUS specifies that control returns to Form Builder only after the called product has been exited. The end user cannot work in the form while the called product is running.

ASYNCHRONOUS specifies that control returns to the calling application immediately, even if the called application has not completed its display.

execmode Specifies the execution mode to be used when running the called product. Valid numeric constants for this parameter are BATCH and RUNTIME. When you run Report Builder and Graphics Builder, execmode can be either BATCH or RUNTIME. When you run Form Builder, always set execmode to RUNTIME.

location Specifies the location of the module or module you want the called product to execute, either the file system or the database. Valid constants for this property are FILESYSTEM and DB.

Paramlist_name or paramlist_ID Specifies the parameter list to be passed to the called product. Valid values for this parameter are the VARCHAR2 name of the parameter list, the ID of the parameter list, or NULL. To specify a parameter list ID, use a variable of type PARAMLIST.

You can pass text parameters to called products in both SYNCHRONOUS and ASYNCHRONOUS mode. However, parameter lists that contain parameters of type DATA_PARAMETER (pointers to record groups) can only be passed to Report Builder and Graphics Builder in SYNCHRONOUS mode. (SYNCHRONOUS mode is required when invoking Graphics Builder to return an Graphics Builder display that will be displayed in a form chart item.)

Note: You can prevent Graphics Builder from logging on by passing a parameter list that includes a parameter with key set to LOGON and value set to NO.

Note: You cannot pass a DATA_PARAMETER to a child query in Report Builder. Data passing is supported only for master queries.

display Specifies the VARCHAR2 name of the Form Builder chart item that will contain the display (such as a pie chart, bar chart, or graph) generated by Graphics Builder. The name of the chart item must be specified in the format block_name.item_name. (This parameter is only required when you are using an Graphics Builder chart item in a form.)


RUN_PRODUCT examples RUN_PRODUCT examples

/*

  • Built-in: RUN_PRODUCT
    ** Example: Call a Report Builder report, passing the
    ** data in record group 'EMP_RECS' to substitute
    ** for the report's query named 'EMP_QUERY'.
    ** Presumes the Emp_Recs record group already
    ** exists and has the same column/data type
    ** structure as the report's Emp_Query query.
    */
    PROCEDURE Run_Emp_Report IS
    pl_id ParamList;
    BEGIN
    /*
    ** Check to see if the 'tmpdata' parameter list exists.
    */
    pl_id := Get_Parameter_List('tmpdata');
    /*
    ** If it does, then delete it before we create it again in
    ** case it contains parameters that are not useful for our
    ** purposes here.
    */
    IF NOT Id_Null(pl_id) THEN
    Destroy_Parameter_List( pl_id );
    END IF;
    /*
    ** Create the 'tmpdata' parameter list afresh.
    */
    pl_id := Create_Parameter_List('tmpdata');
    /*
    ** Add a data parameter to this parameter list that will
    ** establish the relationship between the named query
    ** 'EMP_QUERY' in the report, and the record group named
    ** 'EMP_RECS' in the form.
    */
    Add_Parameter(pl_id,'EMP_QUERY',DATA_PARAMETER,'EMP_RECS');
    /*
    ** Run the report synchronously, passing the parameter list
    */
    Run_Product(REPORTS, 'empreport', SYNCHRONOUS, RUNTIME,
    FILESYSTEM, pl_id, NULL);
    END;


    RUN_REPORT_OBJECT built-in
RUN_REPORT_OBJECT built-in

Examples
All Built-ins

Description

Use this built-in to run a report from within a form. You can run the report against either a local or remote database server. Executing this built-in is similar using the RUN_PRODUCT built-in on a report.

Syntax

FUNCTION RUN_REPORT_OBJECT
(report_id REPORT_OBJECT
);

Built-in Type unrestricted procedure

Enter Query Mode yes

Parameters

report_id Specifies the unique ID of the report to be run. You can get the report ID for a particular report using the built-in FIND_REPORT_OBJECT.

Usage Notes

frm90000.gif
Returns a VARCHAR2 value that uniquely identifies the report that is running either locally or on a remote report server. You can use this report ID string as a parameter to REPORT_OBJECT_STATUS , COPY_REPORT_OBJECT , and CANCEL_REPORT_OBJECT.


RUN_REPORT_OBJECT examples RUN_REPORT_OBJECT examples

DECLARE

repid REPORT_OBJECT;

  • rep VARCHAR2(100);

rep_status varchar2(20);

BEGIN

repid := find_report_object('report4');

  • rep := RUN_REPORT_OBJECT(repid);

......

END;



SCROLL_DOWN built-in SCROLL_DOWN built-in

Examples Related Topics
All Built-ins

Description

Scrolls the current block's list of records so that previously hidden records with higher sequence numbers are displayed. If there are available records and a query is open in the block, Form Builder fetches records during SCROLL_DOWN processing. In a single-line block, SCROLL_DOWN displays the next record in the block's list of records. SCROLL_DOWN puts the input focus in the instance of the current item in the displayed record with the lowest sequence number.

Syntax

PROCEDURE SCROLL_DOWN;

Built-in Type restricted procedure

Enter Query Mode no

Parameters

none


SCROLL_DOWN examples SCROLL_DOWN examples

/*

  • Built-in: SCROLL_DOWN
    ** Example: Scroll records down some.
    */
    BEGIN
    Scroll_Down;
    END;


    SCROLL_UP built-in
SCROLL_UP built-in

Examples Related Topics
All Built-ins

Description

Scrolls the current block's list of records so that previously hidden records with lower sequence numbers are displayed. This action displays records that were "above" the block's display.

SCROLL_UP puts the input focus in the instance of the current item in the displayed record that has the highest sequence number.

Syntax

PROCEDURE SCROLL_UP;

Built-in Type restricted procedure

Enter Query Mode no

Parameters

none


SCROLL_UP examples SCROLL_UP examples

/*

  • Built-in: SCROLL_UP
    ** Example: Scroll records up some.
    */
    BEGIN
    Scroll_Up;
    END;


    SCROLL_VIEW built-in
SCROLL_VIEW built-in

Examples Related Topics
All Built-ins

Description

Moves the view to a different position on its canvas by changing the Viewport X Position on Canvas and Viewport Y Position on Canvas properties. Moving the view makes a different area of the canvas visible to the operator, but does not change the position of the view within the window.

Note: For a content or toolbar canvas, the window in which the canvas is displayed represents the view for that canvas. For a stacked canvas, the view size is controlled by setting the Viewport Width and Viewport Height properties.

Syntax

PROCEDURE SCROLL_VIEW
(view_id ViewPort,
x
NUMBER,
y
NUMBER);

PROCEDURE SCROLL_VIEW
(view_name VARCHAR2,
x
NUMBER,
y
NUMBER);

Built-in Type unrestricted procedure

Enter Query Mode yes

Parameters

  • iew_id Specifies the unique ID that Form Builder assigns the view when it creates the object. Use the FIND_VIEW built-in to return the ID to an appropriately typed variable. The data type of the ID is ViewPort.

  • iew_name Specifies the name that you gave the object when defining it. The data type of the name is VARCHAR2.

x Specifies the x coordinate of the view's upper left corner relative to the upper left corner of the canvas.

y Specifies the y coordinate of the view's upper left corner relative to the upper left corner of the canvas.


SCROLL_VIEW examples SCROLL_VIEW examples

/*

  • Built-in: SCROLL_VIEW
    ** Example: Scroll the view whose name is passed in 10% to
    ** the right or left depending on the 'direction'
    ** parameter.
    */
    PROCEDURE Scroll_Ten_Percent( viewname VARCHAR2,
    direction VARCHAR2 ) IS
    vw_id ViewPort;
    vw_wid NUMBER;
    vw_x NUMBER;
    cn_id Canvas;
    cn_wid NUMBER;
    ten_percent NUMBER;
    new_x NUMBER;
    old_y NUMBER;
    BEGIN
    /*
    ** Get the id's for the View and its corresponding canvas
    */
    vw_id := Find_View( viewname );
    cn_id := Find_Canvas( viewname );

    /*
    ** Determine the view width and corresponding canvas
    ** width.
    */
    vw_wid := Get_View_Property(vw_id,WIDTH);
    cn_wid := Get_Canvas_Property(cn_id,WIDTH);
    /*
    ** Calculate how many units of canvas width are outside of
    ** view, and determine 10% of that.
    */
    ten_percent := 0.10 * (cn_wid - vw_wid);
    /*
    ** Determine at what horizontal position the view
    ** currently is on the corresponding canvas
    */
    vw_x:= Get_View_Property(vw_id,VIEWPORT_X_POS_ON_CANVAS);
    /*
    ** Calculate the new x position of the view on its canvas
    ** to effect the 10% scroll in the proper direction.
    ** Closer than ten percent of the distance to the edge
    ** towards which we are moving, then position the view
    ** against that edge.
    */
    IF direction='LEFT' THEN
    IF vw_x > ten_percent THEN
    new_x := vw_x - ten_percent;
    ELSE
    new_x := 0;
    END IF;
    ELSIF direction='RIGHT' THEN
    IF vw_x < cn_wid - vw_wid - ten_percent THEN
    new_x := vw_x + ten_percent;
    ELSE
    new_x := cn_wid - vw_wid;
    END IF;
    END IF;
    /*
    ** Scroll the view that much horizontally
    */
    old_y := Get_View_Property(vw_id,VIEWPORT_Y_POS_ON_CANVAS);
    Scroll_View( vw_id, new_x , old_y );
    END;


    SELECT_ALL built-in
SELECT_ALL built-in

Related Topics
All Built-ins

Description

Selects the text in the current item. Call this procedure prior to issuing a call to CUT_REGION or COPY_REGION, when you want to cut or copy the entire contents of a text item.

Syntax

PROCEDURE SELECT_ALL;

Built-in Type restricted procedure

Enter Query Mode yes

Parameters

none


SELECT_RECORDS built-in SELECT_RECORDS built-in

Examples Restrictions Related Topics
All Built-ins

Description

When called from an On-Select trigger, initiates default Form Builder SELECT processing. This built-in is included primarily for applications that run against a non-ORACLE data source, and use transactional triggers to replace default Form Builder transaction processing.

Syntax

PROCEDURE SELECT_RECORDS;

Built-in Type restricted procedure

Enter Query Mode no

Parameters

none


SELECT_RECORDS restrictions SELECT_RECORDS restrictions

Valid only within an On-Select trigger.


SELECT_RECORDS examples SELECT_RECORDS examples

/*

  • Built-in: SELECT_RECORDS
    ** Example: Perform Form Builder standard SELECT processing
    ** based on a global flag setup at startup by the
    ** form, perhaps based on a parameter.
    ** Trigger: On-Select
    */
    BEGIN
    /*
    ** Check the flag variable we setup at form startup
    */
    IF :Global.Using_Transactional_Triggers = 'TRUE' THEN
    User_Exit('my_select block=EMP');
    /*
    ** Otherwise, do the right thing.
    */
    ELSE
    Select_Records;
    END IF;
    END;


    FORMS_OLE.SERVER_ACTIVE
SERVER_ACTIVE

Examples Restrictions Related Topics
All Built-ins

Description

Indicates whether or not the server associated with a given container is running:

frm90000.gif Returns TRUE if the OLE server is running.

frm90000.gif Returns FALSE if the OLE server is not running.

You must define an appropriately typed variable to accept the return value.

Syntax

FUNCTION SERVER_ACTIVE
(item_id Item);

FUNCTION SERVER_ACTIVE
(item_name VARCHAR2);

Returns BOOLEAN

Built-in Type unrestricted function

Enter Query Mode no

Parameters

item_id Specifies the unique ID that Form Builder assigns to the item when created. Use the FIND_ITEM built-in to return the ID to an appropriately typed variable. The data type of the ID is Item.

item_name Specifies the name of the object created at design time. The data type of the name is VARCHAR2 string.


FORMS_OLE.SERVER_ACTIVE restrictions SERVER_ACTIVE restrictions

Valid only on Microsoft Windows and Macintosh.


FORMS_OLE.SERVER_ACTIVE examples SERVER_ACTIVE examples

/*

  • Built-in: SERVER_ACTIVE
    ** Example: Checks to see if the OLE server is active.
    ** Trigger: When-Button-Pressed
    */
    DECLARE
    item_id ITEM;
    item_name VARCHAR(25) := 'OLEITM';
    active_serv BOOLEAN;
    BEGIN
    item_id := Find_Item(item_name);
    IF Id_Null(item_id) THEN
    message('No such item: '||item_name);
    ELSE
    active_serv := Forms_OLE.Server_Active(item_id);
    IF active_serv = FALSE THEN
    Forms_OLE.Activate_Server(item_id);
    END IF;
    END IF;
    END;


    SET_ALERT_BUTTON_PROPERTY built-in
SET_ALERT_BUTTON_PROPERTY built-in

All Built-ins

Description

Changes the label on one of the buttons in an alert.

Syntax

PROCEDURE SET_ALERT_BUTTON_PROPERTY
(alert_id ALERT,
button
NUMBER,
property
VARCHAR2,
value
VARCHAR2);

PROCEDURE SET_ALERT_BUTTON_PROPERTY
(alert_name VARCHAR2,
button
NUMBER,
property
VARCHAR2,
value
VARCHAR2);

Built-in Type unrestricted procedure

Enter Query Mode yes

Parameters

alert_id Specifies the unique ID (data type ALERT) that Form Builder assigns to the alert when it is created. Use FIND_ALERT to return the ID to an appropriately typed variable.

alert_name Specifies the VARCHAR2 name of the alert.

buttoA constant that specifies the alert button you want to change, either ALERT_BUTTON1, ALERT_BUTTON2, or ALERT_BUTTON3.

property LABEL Specifies the label text for the alert button.

  • alue Specifies the VARCHAR2 value to be applied to the property you specified.

Usage Notes

If the label specified is NULL, the button's label reverts to the label specified at design time.


SET_ALERT_PROPERTY built-in SET_ALERT_PROPERTY built-in

Examples Restrictions Related Topics
All Built-ins

Description

Changes the message text for an existing alert.

Syntax

SET_ALERT_PROPERTY
(alert_id ALERT,
property
NUMBER,
message
VARCHAR2);

SET_ALERT_PROPERTY
(alert_name VARCHAR2,
property
NUMBER,
message
VARCHAR2);

Built-in Type unrestricted procedure

Enter Query Mode yes

Parameters

alert_id Specifies the unique ID (data type ALERT) that Form Builder assigns to the alert when it is created. Return the ID to an appropriately typed variable.

alert_name Specifies the VARCHAR2 name of the alert.

property Specifies the specific alert property you are setting:

ALERT_MESSAGE_TEXT Specifies that you are setting the text of the alert message.

TITLE Specifies the title of the alert. Overrides the value specified in Form Builder unless the property value is NULL.

message Specifies the message that is to replace the current alert message. Pass the message as a string enclosed in single quotes, as a variable, or in a string/variable construction.


SET_ALERT_PROPERTY restrictions SET_ALERT_PROPERTY restrictions

If the message text exceeds 200 characters, it will be truncated.


SET_ALERT_PROPERTY examples SET_ALERT_PROPERTY examples

/*

  • Built-in: SET_ALERT_PROPERTY
    ** Example: Places the error message into a user-defined alert ** named 'My_Error_Alert' and displays the alert.
    ** Trigger: On-Error
    */
    DECLARE
    err_txt VARCHAR2(80) := Error_Text;
    al_id Alert;
    al_button Number;
    BEGIN
    al_id := Find_Alert('My_Error_Alert');
    Set_Alert_Property(al_id, alert_message_text, err_txt );
    al_button := Show_Alert( al_id );
    END;


    SET_APPLICATION_PROPERTY built-in
SET_APPLICATION_PROPERTY built-in

Related Topics
All Built-ins

Description

Sets the application property for the current application.

Syntax

SET_APPLICATION_PROPERTY
(property NUMBER,
value
VARCHAR2)

Built-in Type unrestricted procedure

Enter Query Mode yes

Parameters

property Specifies the property you want to set for the given application. The possible properties are as follows:

CURSOR_STYLE Specifies the cursor style for the given application.

  • alue The following GUI-specific constants can be passed as VARCHAR2 arguments to the property values described earlier:

BUSY Specifies a busy symbol.

CROSSHAIR Specifies a crosshair symbol.

DEFAULT Specifies an arrow symbol.

HELP Specifies a help symbol.

INSERTION Specifies an insertion symbol.


SET_BLOCK_PROPERTY built-in SET_BLOCK_PROPERTY built-in

Examples Related Topics
All Built-ins

Description

Sets the given block characteristic of the given block.

Syntax

SET_BLOCK_PROPERTY
(block_id Block,
property
VARCHAR,
value
VARCHAR);

SET_BLOCK_PROPERTY
(block_id Block,
property
VARCHAR,
x
NUMBER);

SET_BLOCK_PROPERTY
(block_id Block,
property
VARCHAR,

x NUMBER
y
NUMBER);

SET_BLOCK_PROPERTY
(block_name VARCHAR2,
property
VARCHAR,
value
VARCHAR);

SET_BLOCK_PROPERTY
(block_name VARCHAR2,
property
VARCHAR,
x
NUMBER);

SET_BLOCK_PROPERTY
(block_name VARCHAR2,
property
VARCHAR,
x
NUMBER,
y
NUMBER);

Built-in Type unrestricted procedure

Enter Query Mode yes

Parameters

block_id The unique ID Form Builder assigned to the block when you created it. Datatype is BLOCK.

block_name The name you gave the block when you created it. Datatype is VARCHAR2.

property Specify one of the following constants:

ALL_RECORDS Specifies whether all the records matching the query criteria should be fetched into the data block when a query is executed.

BLOCKSCROLLBAR_POSITION Specifies both the x and y positions of the block's scroll bar in the form coordinate units indicated by the Coordinate System form property.

BLOCKSCROLLBAR_X_POS
Specifies the x position of the block's scroll bar in the form coordinate units indicated by the Coordinate System form property.

BLOCKSCROLLBAR_Y_POS
Specifies the y position of the block scroll bar in the form coordinate units indicated by the Coordinate System form property.

COORDINATION_STATUS
Specifies a status that indicates whether a block that is a detail block in a master-detail relation is currently coordinated with all of its master blocks; that is, whether the detail records in the block correspond correctly to the current master record in the master block. Valid values are COORDINATED and NON_COORDINATED

CURRENT_RECORD_ATTRIBUTE
Specify the VARCHAR2 name of a named visual attribute to be associated with the given block. If the named visual attribute does not exist, you will get an error message.

CURRENT_ROW_BACKGROUND_COLOR The color of the object's background region.

CURRENT_ROW_FILL_PATTERN The pattern to be used for the object's fill region. Patterns are rendered in the two colors specified by Background Color and Foreground Color.

CURRENT_ROW_FONT_NAME The font family, or typeface, that should be used for text in the object. The list of fonts available is system-dependent.

CURRENT_ROW_FONT_SIZE The size of the font, specified in points.

CURRENT_ROW_FONT_SPACING The width of the font, that is, the amount of space between characters (kerning).

CURRENT_ROW_FONT_STYLE The style of the font.

CURRENT_ROW_FONT_WEIGHT The weight of the font.

CURRENT_ROW_FOREGROUND_COLOR The color of the object's foreground region. For items, the Foreground Color attribute defines the color of text displayed in the item.

CURRENT_ROW_WHITE_ON_BLACK Specifies that the object is to appear on a monochrome bitmap display device as white text on a black background.

DEFAULT_WHERE Specifies a default WHERE clause for the block, overriding previous WHERE clauses. (Note: this will not override a value established at design time via the Property Palette for the data block’s WHERE clause property.)

Enclose in single quotes. The WHERE reserved word is optional. The default WHERE clause can include references to global variables, form parameters, and item values, specified with standard bind variable syntax.

DELETE_ALLOWED Specifies whether the operator or the application is allowed to delete records in the given block. Valid values are PROPERTY_TRUE or PROPERTY_FALSE.

DML_DATA_TARGET_NAME Specifies the name of the block's DML data source.

ENFORCE_PRIMARY_KEY Specifies that any record inserted or updated in the block must have a unique characteristic in order to be committed to the database. Valid values are PROPERTY_TRUE or PROPERTY_FALSE.

INSERT_ALLOWED Specifies whether the operator or the application is allowed to insert records in the given block. Valid values are PROPERTY_TRUE or PROPERTY_FALSE.

KEY_MODE Specifies the key mode for the block. This is particularly useful when running Form Builder against non-ORACLE data sources. Valid values are UPDATEABLE_PRIMARY_KEY and NONUPDATEABLE_PRIMARY_KEY.

LOCKING_MODE Specifies the block's LOCKING_MODE property. Valid values are DELAYED or IMMEDIATE.

MAX_QUERY_TIME Specifies the maximum query time. The operator can abort a query when the elapsed time of the query exceeds the value of this property.

MAX_RECORDS_FETCHED Specifies the maximum number of records that can be fetched. This property is only useful when the Query All Records property is set to Yes.

NAVIGATION_STYLE Specifies the block's NAVIGATION_STYLE property. Valid values are SAME_RECORD, CHANGE_RECORD, or CHANGE_BLOCK.

NEXT_NAVIGATION_BLOCK Specifies the name of the block's next navigation block. By default, the next navigation block is the block with the next higher sequence number; however, the NEXT_NAVIGATION_BLOCK block property can be set to override the default block navigation sequence.

OPTIMIZER_HINT Specifies a hint that Form Builder passes on to the RDBMS optimizer when constructing queries. This allows the form designer to achieve the highest possible performance when querying blocks.

ORDER_BY Specifies a default ORDER BY clause for the block, overriding any prior ORDER BY clause. Enclose in single quotes but do not include the actual words 'ORDER BY'. Form Builder automatically prefixes the statement you supply with "ORDER BY."

PRECOMPUTE_SUMMARIES[Under Construction]

PREVIOUS_NAVIGATION_BLOCK Specifies the name of the block's previous navigation block. By default, the previous navigation block is the block with the next lower sequence number; however, the NEXT_NAVIGATION_BLOCK block property can be set to override the default block navigation sequence.

QUERY_ALLOWED Specifies whether a query can be issued from the block, either by an operator or programmatically. Valid values are PROPERTY_TRUE or PROPERTY_FALSE.

QUERY_DATA_SOURCE_NAME Specifies the name of the block's query data source. Note: You cannot set a blocks’ QUERY_DATA_SOURCE_NAME when the block’s datasource is a procedure.

QUERY_HITS Specifies the NUMBER value that indicates the number of records identified by the COUNT_QUERY operation.

UPDATE_ALLOWED Specifies whether the operator or the application is allowed to update records in the given block. Valid values are PROPERTY_TRUE or PROPERTY_FALSE.

  • alue The following constants can be passed as arguments to the property values described earlier:

COORDINATED Specifies that the COORDINATION_STATUS property should be set to COORDINATED for a block that is a detail block in a master-detail relation.

DELAYED Specifies that you want Form Builder to lock detail records only at the execution of a commit action.

IMMEDIATE Specifies that you want Form Builder to lock detail records immediately whenever a database record has been modified.

NON_COORDINATED Specifies that the COORDINATION_STATUS property should be set to NON_COORDINATED for a block that is a detail block in a master-detail relation.

NON_UPDATEABLE_PRIMARY_KEY Specifies that you want Form Builder to process records in the block on the basis that the underlying data source does not allow primary keys to be updated.

PROPERTY_TRUE Specifies that the property is to be set to the TRUE state. Specifically, supply as the value for DELETE_ALLOWED, INSERT_ALLOWED, QUERY_HITS, and UPDATE_ALLOWED.

PROPERTY_FALSE Specifies that the property is to be set to the FALSE state.

UNIQUE_KEY Specifies that you want Form Builder to process records in the block on the basis that the underlying data source uses some form of unique key, or ROWID.

UPDATE_CHANGED_COLUMNS Specifies that only those columns updated by an operator will be sent to the database. When Update Changed Columns Only is set to No, all columns are sent, regardless of whether they have been updated. This can result in considerable network traffic, particularly if the block contains a LONG data type.

UPDATEABLE_PRIMARY_KEY Specifies that you want Form Builder to process records in the block on the basis that the underlying data source allows for primary keys to be updated.

x The NUMBER value of the axis coordinate specified in form coordinate system units. If setting both x and y positions this value refers to the x coordinate. When setting the y position only, this value refers to the y coordinate.

y The NUMBER value of the y axis coordinate specified in form coordinate system units. This value applies when setting both x and y positions, and can be ignored for all other properties.


SET_BLOCK_PROPERTY examples SET_BLOCK_PROPERTY examples

/*

  • Built-in: SET_BLOCK_PROPERTY
    ** Example: Prevent future inserts, updates, and deletes to
    ** queried records in the block whose name is
    ** passed as an argument to this procedure.
    */
    PROCEDURE Make_Block_Query_Only( blk_name IN VARCHAR2 )
    IS
    blk_id Block;
    BEGIN
    /* Lookup the block's internal ID */
    blk_id := Find_Block(blk_name);
    /*
    ** If the block exists (ie the ID is Not NULL) then set
    ** the three properties for this block. Otherwise signal
    ** an error.
    */
    IF NOT Id_Null(blk_id) THEN
    Set_Block_Property(blk_id,INSERT_ALLOWED,PROPERTY_FALSE);
    Set_Block_Property(blk_id,UPDATE_ALLOWED,PROPERTY_FALSE);
    Set_Block_Property(blk_id,DELETE_ALLOWED,PROPERTY_FALSE);
    ELSE
    Message('Block '||blk_name||' does not exist.');
    RAISE Form_Trigger_Failure;
    END IF;
    END;

Using BLOCKSCROLLBAR_POSITION:

/*

  • Built-in: SET_BLOCK_PROPERTY
    ** Example: Set the x and y position of the block's scrollbar
    ** to the passed x and y coordinates


    • PROCEDURE Set_Scrollbar_Pos( blk_name IN VARCHAR2, xpos IN

NUMBER, ypos IN NUMBER )
IS
BEGIN
Set_Block_Property(blk_name, BLOCKSCROLLBAR_POSITION, xpos, ypos);

END;


SET_CANVAS_PROPERTY built-in SET_CANVAS_PROPERTY built-in

Examples Restrictions Related Topics
All Built-ins

Description

Sets the given canvas property for the given canvas.

Syntax

SET_CANVAS_PROPERTY
(canvas_id CANVAS,
property
NUMBER,
value
VARCHAR2);

SET_CANVAS_PROPERTY
(canvas_id CANVAS,
property
NUMBER,
x
NUMBER);
SET_CANVAS_PROPERTY
(canvas_id CANVAS,
property
NUMBER,
x
NUMBER,
y
NUMBER);
SET_CANVAS_PROPERTY
(canvas_name VARCHAR2,
property
NUMBER,
value
VARCHAR2);
SET_CANVAS_PROPERTY
(canvas_name VARCHAR2,
property
NUMBER,
x
NUMBER);
SET_CANVAS_PROPERTY
(canvas_name VARCHAR2,
property
NUMBER,
x
NUMBER,
y
NUMBER);

Built-in Type unrestricted procedure

Enter Query Mode yes

Parameters

canvas_id The unique ID Form Builder assigned to the canvas object when you created it. Use the FIND_CANVAS built-in to return the ID to a variable of datatype CANVAS.

canvas_name The name you gave the canvas object when you defined it. Datatype is VARCHAR2.

property The property you want to set for the given canvas. Possible properties are:

BACKGROUND_COLOR The color of the object's background region.

CANVAS_SIZE The dimensions of the canvas (width, height).

FILL_PATTERN The pattern to be used for the object's fill region. Patterns are rendered in the two colors specified by Background Color and Foreground Color.

FONT_NAME The font family, or typeface, that should be used for text in the object. The list of fonts available is system-dependent.

FONT_SIZE The size of the font, specified in points.

FONT_SPACING The width of the font, that is, the amount of space between characters (kerning).

FONT_STYLE The style of the font.

FONT_WEIGHT The weight of the font.

FOREGROUND_COLOR The color of the object's foreground region. For items, the Foreground Color attribute defines the color of text displayed in the item.

HEIGHT The height of the canvas in characters.

TOPMOST_TAB_PAGE The name of the tab page that will appear to operators as the top-most (i.e., overlaying all other tab pages in the tab canvas).

VISUAL_ATTRIBUTE Either a valid named visual attribute that exists in the current form, or the name of a logical attribute definition in a runtime resource file that you want Form Builder to apply to the canvas.

WHITE_ON_BLACK Specifies that the object is to appear on a monochrome bitmap display device as white text on a black background.

WIDTH The width of the canvas in characters.

  • alue The VARCHAR2 value to be applied to the property you specified.

x The NUMBER value of the x coordinate or the width, depending on the property you specified. Specify the argument in form coordinate system units.

y The NUMBER value of the y coordinate or the height, depending on the property you specified. Specify the argument in form coordinate system units.


SET_CANVAS_PROPERTY restrictions SET_CANVAS_PROPERTY restrictions

frm90000.gif
You cannot enter a non-existent named visual attribute.

frm90000.gif If Form Builder cannot find a named visual attribute by the name you supply, it looks for the display attribute in your Oracle*Terminal resource file.


SET_CANVAS_PROPERTY examples SET_CANVAS_PROPERTY examples

/* Change the "background color" by dynamically setting the

  • canvas color at runtime to the name of a visual attribute
    ** you created:
    */
    BEGIN
    SET_CANVAS_PROPERTY('my_cvs', visual_attribute, 'blue_txt');
    END;


    SET_CUSTOM_ITEM_PROPERTY_type built-in
SET_CUSTOM_ITEM_PROPERTY built-in

Related Topics

Description

Sets a property of a custom item, such as an item associated with a JavaBean.

Syntax

The built-in is available for types VARCHAR2, INT, or BOOLEAN.

SET_CUSTOM_ITEM_PROPERTY
(item,
name,
varchar2 value
);

SET_CUSTOM_ITEM_PROPERTY
(item,
name,
int value
);

SET_CUSTOM_ITEM_PROPERTY
(item,
name,
boolean value
);

Built-in Type unrestricted procedure

Enter Query Mode yes

Parameters

item The class name of a user-supplied implementation.

name The name of the item to be processed.

  • alue The value to be applied to the item. Value must be of type varchar2, integer, or boolean.


    SET_FORM_PROPERTY built-in
SET_FORM_PROPERTY built-in

Examples Related Topics
All Built-ins

Description

Sets a property of the given form.

Syntax

SET_FORM_PROPERTY
(formmodule_id FormModule,
property
NUMBER,
value
NUMBER);

SET_FORM_PROPERTY
(formmodule_name VARCHAR2,
property
NUMBER,
value
NUMBER);

Built-in Type unrestricted procedure

Enter Query Mode yes

Parameters

formmodule_id Specifies the unique ID that Form Builder assigns to the form when created. The data type of the ID is FormModule.

formmodule_name Specifies the name of the form module that you gave the form when creating it. The data type of the name is VARCHAR2.

property Specifies the property you want to set for the form:

CURRENT_RECORD_ATTRIBUTE Specify the VARCHAR2 name of a named visual attribute to be associated with the given form. If the named visual attribute does not exist, you will get an error message.

CURRENT_ROW_BACKGROUND_COLOR The color of the object's background region.

CURRENT_ROW_FILL_PATTERN The pattern to be used for the object's fill region. Patterns are rendered in the two colors specified by Background Color and Foreground Color.

CURRENT_ROW_FONT_NAME The font family, or typeface, that should be used for text in the object. The list of fonts available is system-dependent.

CURRENT_ROW_FONT_SIZE The size of the font, specified in points.

CURRENT_ROW_FONT_SPACING The width of the font, that is, the amount of space between characters (kerning).

CURRENT_ROW_FONT_STYLE The style of the font.

CURRENT_ROW_FONT_WEIGHT The weight of the font.

CURRENT_ROW_FOREGROUND_COLOR The color of the object's foreground region. For items, the Foreground Color attribute defines the color of text displayed in the item.

CURRENT_ROW_WHITE_ON_BLACK Specifies that the object is to appear on a monochrome bitmap display device as white text on a black background.

CURSOR_MODE Specifies the cursor state Form Builder should attempt to define. Primarily used when connecting to non-ORACLE data sources. Valid values are OPEN_AT_COMMIT and CLOSE_AT_COMMIT.

DEFER_REQUIRED_ENFORCEMENT Specifies whether enforcement of required fields has been deferred from item validation to record validation. Valid values are PROPERTY_TRUE and PROPERTY_FALSE.

DIRECTION Specifies the layout direction for bidirectional objects. Valid values are DIRECTION_DEFAULT, RIGHT_TO_LEFT, LEFT_TO_RIGHT.

FIRST_NAVIGATION_BLOCK Returns the name of the block into which Form Builder attempts to navigate at form startup. By default, the first navigation block is the first block defined in the Object Navigator; however, the FIRST_NAVIGATION_BLOCK block property can be set to specify a different block as the first block at form startup.

SAVEPOINT_MODE Specifies whether Form Builder is to issue savepoints. Valid values are PROPERTY_TRUE and PROPERTY_FALSE.

VALIDATION Specifies whether Form Builder is to perform default validation. Valid values are PROPERTY_TRUE and PROPERTY_FALSE.

VALIDATION_UNIT Specifies the scope of validation for the form. Valid values are DEFAULT_SCOPE, BLOCK_SCOPE, RECORD_SCOPE, and ITEM_SCOPE.

  • alue The following constants can be passed as arguments to the property values described earlier:

BLOCK_SCOPE Specify when you want Form Builder to validate data only at the block level. This means, for instance, that Form Builder validates all the records in a block when a navigation event forces validation by leaving the block.

CLOSE_AT_COMMIT Specify when you do not want cursors to remain open across database commits; for example, when a form is running against a non-ORACLE database.

DEFAULT_SCOPE Sets the Validation Unit form module property to the default setting. On GUI window managers, the default validation unit is ITEM.

FORM_SCOPE Specify when you want validation to occur at the form level only.

ITEM_SCOPE. Specify when you want Form Builder to validate at the item level. This means, for instance, that Form Builder validates each changed item upon navigating out of an item as a result of a navigation event.

OPEN_AT_COMMIT Specify when you want cursors to remain open across database commits. This is the normal setting when running against ORACLE.

PROPERTY_TRUE Specifies that the property is to be set to the TRUE state.

PROPERTY_FALSE Specifies that the property is to be set to the FALSE state.

RECORD_SCOPE Specify when you want Form Builder to validate at the record level. This means that Form Builder validates each changed record when, for instance, it leaves the record.


SET_FORM_PROPERTY examples SET_FORM_PROPERTY examples

Example 1

/*

  • Built-in: SET_FORM_PROPERTY
    ** Example: Set the Cursor Mode property in the current form
    ** to CLOSE_AT_COMMIT and changes the form
    ** Validation unit to the Block level.
    */
    DECLARE
    fm_id FormModule;
    BEGIN
    fm_id := Find_Form(:System.Current_Form);
    Set_Form_Property(fm_id,CURSOR_MODE,CLOSE_AT_COMMIT);
    Set_Form_Property(fm_id,VALIDATION_UNIT,BLOCK_SCOPE);
    END;

Example 2

/*

  • Built-in: SET_FORM_PROPERTY
    ** Example: Setup form and block properties required to run
    ** against a particular non-Oracle datasource.
    ** Procedure accepts the appropriate numerical
    ** constants like DELAYED as arguments.
    **
    ** Usage: Setup_Non_Oracle(PROPERTY_FALSE,
    ** CLOSE_AT_COMMIT,
    ** UPDATEABLE_PRIMARY_KEY,
    ** DELAYED);
    */
    PROCEDURE Setup_Non_Oracle( the_savepoint_mode NUMBER,
    the_cursor_mode NUMBER,
    the_key_mode NUMBER,
    the_locking_mode NUMBER ) IS
    fm_id FormModule;
    bk_id Block;
    bk_name VARCHAR2(40);
    BEGIN
    /* ** Validate the settings of the parameters ** */
    IF the_savepoint_mode NOT IN (PROPERTY_TRUE,PROPERTY_FALSE) THEN
    Message('Invalid setting for Savepoint Mode.');
    RAISE Form_Trigger_Failure;
    END IF;
    IF the_cursor_mode NOT IN (CLOSE_AT_COMMIT,OPEN_AT_COMMIT) THEN
    Message('Invalid setting for Cursor Mode.');
    RAISE Form_Trigger_Failure;
    END IF;
    IF the_key_mode NOT IN (UNIQUE_KEY,UPDATEABLE_PRIMARY_KEY,
    NON_UPDATEABLE_PRIMARY_KEY) THEN
    Message('Invalid setting for Key Mode.');
    RAISE Form_Trigger_Failure;
    END IF;
    IF the_locking_mode NOT IN (IMMEDIATE,DELAYED) THEN
    Message('Invalid setting for Locking Mode.');
    RAISE Form_Trigger_Failure;
    END IF;
    /*
    ** Get the id of the current form
    */
    fm_id := Find_Form(:System.Current_Form);
    /*
    ** Set the two form-level properties
    */
    Set_Form_Property(fm_id, SAVEPOINT_MODE, the_savepoint_mode);
    Set_Form_Property(fm_id, CURSOR_MODE, the_cursor_mode);
    /*
    ** Set the block properties for each block in the form
    */
    bk_name := Get_Form_Property(fm_id,FIRST_BLOCK);
    WHILE bk_name IS NOT NULL LOOP
    bk_id := Find_Block(bk_name);

    Set_Block_Property(bk_id,LOCKING_MODE,the_locking_mode);

    Set_Block_Property(bk_id,KEY_MODE,the_key_mode);
    IF the_key_mode IN (UPDATEABLE_PRIMARY_KEY,
    NON_UPDATEABLE_PRIMARY_KEY) THEN
    Set_Block_Property(bk_id,PRIMARY_KEY,PROPERTY_TRUE);
    END IF;

    bk_name := Get_Block_Property(bk_id, NEXTBLOCK);
    END LOOP;
    END;


    SET_GROUP_CHAR_CELL built-in
SET_GROUP_CHAR_CELL built-in

Examples Restrictions Related Topics
All Built-ins

Description

Sets the value for the record group cell identified by the given row and column.

Syntax

SET_GROUP_CHAR_CELL
(groupcolumn_id GroupColumn,
row_number
NUMBER,
cell_value
VARCHAR2);

SET_GROUP_CHAR_CELL
(groupcolumn_name VARCHAR2,
row_number
NUMBER,
cell_value
VARCHAR2);

Built-in Type unrestricted procedure

Enter Query Mode yes

Parameters

groupcolumn_id The unique ID that Form Builder assigns when it creates the column for the record group. Use the FIND_COLUMN built-in to return the ID to an appropriately typed variable. The data type of the ID is GroupColumn.

groupcolumn_name The name you gave to the column when you created it, preceded by the record group name and a dot, as in recordgroup_name.groupcolumn_name. The data type of the name is VARCHAR2.

row_number Specifies the row number that contains the cell whose value you intend to set. Specify as a whole NUMBER.

cell_value For a VARCHAR2 column, specifies the VARCHAR2 value you intend to enter into a cell; for a LONG column, specifies the LONG value you intend to enter into a cell.


SET_GROUP_CHAR_CELL restrictions SET_GROUP_CHAR_CELL restrictions

frm90000.gif
You must create the specified row before setting the value of a cell in that row. Form Builder does not automatically create a new row when you indicate one in this built-in. Explicitly add the row with the ADD_GROUP_ROW built-in or populate the group with either POPULATE_GROUP or POPULATE_GROUP_WITH_QUERY.

frm90000.gif Not valid for a static record group. A static record group is a record group that was created at design time and that has the Record Group Type property set to Static.


SET_GROUP_CHAR_CELL examples SET_GROUP_CHAR_CELL examples

/*

  • Built-in: SET_GROUP_CHAR_CELL
    ** Example: See ADD_GROUP_ROW
    */


    SET_GROUP_DATE_CELL built-in
SET_GROUP_DATE_CELL built-in

Examples Restrictions Related Topics
All Built-ins

Description

Sets the value for the record group cell identified by the given row and column.

Syntax

SET_GROUP_DATE_CELL
(groupcolumn_id GroupColumn,
row_number
NUMBER,
cell_value
DATE);

SET_GROUP_DATE_CELL
(groupcolumn_name VARCHAR2,
row_number
NUMBER,
cell_value
DATE);

Built-in Type unrestricted procedure

Enter Query Mode yes

Parameters

groupcolumn_id The unique ID that Form Builder assigns when it creates the column for the record group. Use the FIND_COLUMN built-in to return the ID to an appropriately typed variable. The data type of the ID is GroupColumn.

groupcolumn_name The name you gave to the column when you created it, preceded by the record group name and a dot, as in recordgroup_name.groupcolumn_name. The data type of the name is VARCHAR2.

row_number Specifies the row number that contains the cell whose value you intend to set. Specify as a whole NUMBER.

cell_value Specifies the DATE value you intend to enter into a cell.


SET_GROUP_DATE_CELL restrictions SET_GROUP_DATE_CELL restrictions

frm90000.gif
You must create the specified row before setting the value of a cell in that row. Form Builder does not automatically create a new row when you indicate one in this built-in. Explicitly add the row with the ADD_GROUP_ROW built-in or populate the group with either POPULATE_GROUP or POPULATE_GROUP_WITH_QUERY.

frm90000.gif Not valid for a static record group. A static record group is a record group that was created at design time and that has the Record Group Type property set to Static.


SET_GROUP_DATE_CELL examples SET_GROUP_DATE_CELL examples

/*

  • Built-in: SET_GROUP_DATE_CELL
    ** Example: Lookup a row in a record group, and set the
    ** minimum order date associated with that row in
    ** the record group. Uses the 'is_value_in_list'
    ** function from the GET_GROUP_CHAR_CELL example.
    */
    PROCEDURE Set_Max_Order_Date_Of( part_no VARCHAR2,
    new_date DATE ) IS
    fnd_row NUMBER;
    BEGIN
    /*
    ** Try to lookup the part number among the temporary part list
    ** record group named 'TMPPART' in its 'PARTNO' column.
    */
    fnd_row := Is_Value_In_List( part_no, 'TMPPART', 'PARTNO');

    IF fnd_row = 0 THEN
    Message('Part Number '||part_no||' not found.');
    RETURN;
    ELSE
    /*
    ** Set the corresponding Date cell value from the
    ** matching row.
    */
    Set_Group_Date_Cell('TMPPART.MAXORDDATE',fnd_row,new_date );
    END IF;
    END;


    SET_GROUP_NUMBER_CELL built-in
SET_GROUP_NUMBER_CELL built-in

Examples Restrictions Related Topics
All Built-ins

Description

Sets the value for the record group cell identified by the given row and column.

Syntax

SET_GROUP_NUMBER_CELL
(groupcolumn_id GroupColumn,
row_number
NUMBER,
cell_value
NUMBER);

SET_GROUP_NUMBER_CELL
(groupcolumn_name VARCHAR2,
row_number
NUMBER,
cell_value
NUMBER);

Built-in Type unrestricted procedure

Enter Query Mode yes

Parameters

groupcolumn_id The unique ID that Form Builder assigns when it creates the column for the record group. Use the FIND_COLUMN built-in to return the ID to an appropriately typed variable. The data type of the ID is GroupColumn.

groupcolumn_name The name you gave to the column when you created it, preceded by the record group name and a dot, as in recordgroup_name.groupcolumn_name. The data type of the name is VARCHAR2.

row_number Specifies the row number that contains the cell whose value you intend to set. Specify as a whole NUMBER.

cell_value Specifies the NUMBER value you intend to enter into a cell.


SET_GROUP_NUMBER_CELL restrictions SET_GROUP_NUMBER_CELL restrictions

frm90000.gif
You must create the specified row before setting the value of a cell in that row. Explicitly add a row with the ADD_GROUP_ROW built-in or populate the group with either POPULATE_GROUP or POPULATE_GROUP_WITH_QUERY.

frm90000.gif Not valid for a static record group. A static record group is a record group that was created at design time and that has the Record Group Type property set to Static.


SET_GROUP_NUMBER_CELL examples SET_GROUP_NUMBER_CELL examples

/*

  • Built-in: SET_GROUP_NUMBER_CELL
    ** Example: See ADD_GROUP_ROW
    */


    SET_GROUP_SELECTION built-in
SET_GROUP_SELECTION built-in

Examples Related Topics
All Built-ins

Description

Marks the specified row in the given record group for subsequent programmatic row operations. Rows are numbered sequentially starting at 1. If you select rows 3, 8, and 12, for example, those rows are considered by Form Builder to be selections 1, 2, and 3. You can undo any row selections for the entire group by calling the RESET_GROUP_SELECTION built-in.

Syntax

SET_GROUP_SELECTION
(recordgroup_id RecordGroup,
row_number
NUMBER);

SET_GROUP_SELECTION
(recordgroup_name VARCHAR2,
row_number
NUMBER);

Built-in Type unrestricted procedure

Enter Query Mode yes

Parameters

recordgroup_id Specifies the unique ID that Form Builder assigns to the record group when created. Use the FIND_GROUP built-in to return the ID to a variable. The data type of the ID is RecordGroup.

recordgroup_name Specifies the name of the record group that you gave to the group when creating it. The data type of the name is VARCHAR2.

row_number Specifies the number of the record group row that you want to select. The value you specify is a NUMBER.


SET_GROUP_SELECTION examples SET_GROUP_SELECTION examples

/*

  • Built-in: SET_GROUP_SELECTION
    ** Example: Set all of the even rows as selected in the
    ** record group whose id is passed-in as a
    ** parameter.
    */
    PROCEDURE Select_Even_Rows ( rg_id RecordGroup ) IS
    BEGIN
    FOR j IN 1..Get_Group_Row_Count(rg_id) LOOP
    IF MOD(j,2)=0 THEN
    Set_Group_Selection( rg_id, j );
    END IF;
    END LOOP;
    END;


    SET_INPUT_FOCUS built-in
SET_INPUT_FOCUS built-in

Examples Restrictions
All Built-ins

Description

Sets the input focus on the menu of the current form. Once trigger processing is completed, Form Builder activates the menu.

Syntax

SET_INPUT_FOCUS
(MENU );

Built-in Type unrestricted procedure

Enter Query Mode yes

Parameters

MENU


SET_INPUT_FOCUS restrictions SET_INPUT_FOCUS restrictions

Only for use in character mode and block mode environments.


SET_INPUT_FOCUS examples SET_INPUT_FOCUS examples

/*

  • Built-in: SET_INPUT_FOCUS
    ** Example: Directs the users input focus to the Menu when
    ** used with the only support parameter, MENU.
    ** Only has an effect on character-mode or
    ** block-mode devices.
    */
    BEGIN
    Set_Input_Focus(MENU);
    END;


    SET_ITEM_INSTANCE_PROPERTY built-in
SET_ITEM_INSTANCE_PROPERTY built-in

Examples
All Built-ins

Description

Modifies the current item instance in a block by changing the specified item property. SET_ITEM_INSTANCE_PROPERTY does not change the appearance of items that mirror the current instance.

You can reference any item in the current form. Note that SET_ITEM_INSTANCE_PROPERTY only affects the display of the current instance of the item; other instances of the specified item are not affected. This means that if you specify a display change for an item that exists in a multi-record block, SET_ITEM_INSTANCE_PROPERTY only changes the instance of that item that belongs to the block's current record. If you want to change all instances of an item in a multi-record block, use SET_ITEM_PROPERTY .

Any change made by a SET_ITEM_INSTANCE_PROPERTY remains in effect until:

frm90000.gif the same item instance is referenced by another SET_ITEM_INSTANCE_PROPERTY, or

frm90000.gif the same item instance is referenced by the DISPLAY_ITEM built-in, or

frm90000.gif the instance of the item is removed (e.g., through a CLEAR_RECORD or a query), or

frm90000.gif the current form is exited

Syntax

SET_ITEM_INSTANCE_PROPERTY
(item_id ITEM,
record_number
NUMBER,
property
NUMBER,
value
VARCHAR2);

SET_ITEM_INSTANCE_PROPERTY
(item_name VARCHAR2,
record_number
NUMBER,
property
NUMBER,
value
VARCHAR2);

SET_ITEM_INSTANCE_PROPERTY
(item_name VARCHAR2,
record_number
NUMBER,
property
NUMBER,
value
NUMBER);

Built-in Type unrestricted procedure

Enter Query Mode yes

Parameters

item_id The unique ID that Form Builder assigned to the object when it created it. Use the FIND_ITEM built-in to return the ID to a variable with datatype of ITEM.

record_number The record number that you want to set. The record number is the record's position in the block. Specify as a whole number. You can specify CURRENT_RECORD if you want to set the block's current record.

item_name The name you gave the item when you created it. Datatype is VARCHAR2.

property The property you want to set for the given item. Possible properties are:

BORDER_BEVEL Specifies the item border bevel for the specified item instance. Valid values are RAISED, LOWERED, PLAIN (unbeveled), or " ". A value of " " causes the border bevel to be determined by the value specified at the item level at design-time or by SET_ITEM_PROPERTY at runtime.

Note: You cannot set BORDER_BEVEL if the item's Bevel property is set to None in Form Builder.

INSERT_ALLOWED Applies only to records not retrieved from the database. When set to PROPERTY_TRUE at the item instance, item, and block levels, allows the end user to modify the item instance. Setting this property to PROPERTY_FALSE at the item instance, item, or block levels, prohibits the end user from modifying the item instance.

NAVIGABLE When set to PROPERTY_TRUE at the item instance and item levels, allows the end user to be able to navigate to the item instance using default keyboard navigation. Setting this property to PROPERTY_FALSE at the item instance or item levels, disables default keyboard navigation to the item instance.

REQUIRED Specify the constant PROPERTY_TRUE if you want to force the end user to enter a non-null value for the item instance. Setting this property to PROPERTY_FALSE at the item instance and item levels, indicates that the item instance is not required.

UPDATE_ALLOWED Applies only to records retrieved from the database. When set to PROPERTY_TRUE at the item instance, item, and block levels, allows the end user to modify the item instance. When set to PROPERTY_FALSE at the instance, item, or block levels, prohibits the end user from modifying the item instance.

VISUAL_ATTRIBUTE Specify a valid named visual attribute that exists in the current form or ''. Specifying '' leaves visual attribute unspecified at the item instance level.

Usage Notes

When working with properties specified at multiple levels (item instance, item, and block), consider the following guidelines:

frm90000.gif Required properties specified at multiple levels are ORed together

frm90000.gif Other boolean properties specified at multiple levels are ANDed together

The value derived from combining properties specified at the item instance, item, and block levels is called the effective value. Some of the effects of these two rules are as follows:

frm90000.gif setting INSERT_ALLOWED to true has no effect at the item instance level unless it is set consistently at the block and item levels. For example, your user cannot type data into an item instance if INSERT_ALLOWED is true at the instance level, but not at the item or block levels.

frm90000.gif setting NAVIGABLE to true has no effect at the item instance level unless it is set consistently at the item and item instance levels

frm90000.gif Setting NAVIGABLE to true may affect whether the block is considered enterable. A block’s read-only Enterable property will be true if and only if its current record contains an item instance whose effective value for the NAVIGABLE property is true.

frm90000.gif setting REQUIRED to false has no effect at the item instance level unless it is set consistently at the item and item instance levels.

frm90000.gif setting UPDATE_ALLOWED to true has no effect at the item instance level unless it is set consistently at the block, item, and item instance levels.

frm90000.gif setting BORDER_BEVEL at the item instance level will override the item level BORDER_BEVEL setting, except when the item instance BORDER_BEVEL property is unspecified (that is, set to " ").

frm90000.gif setting VISUAL_ATTRIBUTE at the item instance level will override the properties at the item and block levels unless you specify a partial visual attribute, in which case a merge will occur between the partial visual attribute and the item's current visual attribute. If VISUAL_ATTRIBUTE is set to " " at the item instance level, the item-level settings of this property are used.

frm90000.gif When a record is fetched or a new record is created, its item instance properties are set to values that do not override the values specified at higher levels. For example, the BORDER_BEVEL and VISUAL_ATTRIBUTE properties get set to " ", REQUIRED is set to false, and other boolean properties are set to true.

frm90000.gif Setting an item instance property does not affect the item instance properties of any items that mirror the specified item.

frm90000.gif An instance of a poplist will, when selected, display an extra null value if its current value is NULL or if its Required property is set to false. When selecting the current value of an instance of a text list (t-list), it will be unselected (leaving the t-list with no selected value) if its Required property is set to false. If its Required property is set to true, selecting a t-list instance's current value will have no effect, that is, the value will remain selected.


SET_ITEM_INSTANCE_PROPERTY examples SET_ITEM_INSTANCE_PROPERTY examples SET_ITEM_INSTANCE_PROPERTY_examples

/*

  • Built-in: SET_ITEM_INSTANCE_PROPERTY
    ** Example: Change the visual attribute of each item instance in the
    ** current record


  • DECLARE
    cur_itm VARCHAR2(80);
    cur_block VARCHAR2(80) := :System.Cursor_Block;
    BEGIN
    cur_itm := Get_Block_Property( cur_block, FIRST_ITEM );
    WHILE ( cur_itm IS NOT NULL ) LOOP
    cur_itm := cur_block||'.'||cur_itm;
    Set_Item_Instance_Property( cur_itm, CURRENT_RECORD,
    VISUAL_ATTRIBUTE,'My_Favorite_Named_Attribute');
    cur_itm := Get_Item_Property( cur_itm, NEXTITEM );
    END LOOP;
    END;


    SET_ITEM_PROPERTY built-in
SET_ITEM_PROPERTY built-in

Examples Related Topics
All Built-ins

Description

Modifies all instances of an item in a block by changing a specified item property. Note that in some cases you can get but not set certain object properties.

Syntax

SET_ITEM_PROPERTY
(item_id ITEM,
property
NUMBER,
value
VARCHAR2);

SET_ITEM_PROPERTY
(item_name VARCHAR2,
property
NUMBER,
value
VARCHAR2);

SET_ITEM_PROPERTY
(item_id ITEM,
property
NUMBER,
x
NUMBER);

SET_ITEM_PROPERTY
(item_name VARCHAR2,
property
NUMBER,
x
NUMBER);

SET_ITEM_PROPERTY
(item_id ITEM,
property
NUMBER,
x
NUMBER,
y
NUMBER);

SET_ITEM_PROPERTY
(item_name VARCHAR2,
property
NUMBER,
x
NUMBER,
y
NUMBER);

Built-in Type unrestricted procedure

Enter Query Mode yes

Parameters

item_id The unique ID that Form Builder assigned to the object when it created it. Use the FIND_ITEM built-in to return the ID to a variable with datatype of ITEM.

item_name The name you gave the item when you created it. Datatype is VARCHAR2.

property The property you want to set for the given item. Possible properties are:

AUTO_HINT Determines if Form Builder will display help hints on the status line automatically when input focus is in the specified item. Valid values are PROPERTY_TRUE and PROPERTY_FALSE.

AUTO_SKIP Specifies whether the cursor should skip to the next item automatically when the end user enters the last character in a text item. Valid only for a text item. Valid values are PROPERTY_TRUE and PROPERTY_FALSE.

BACKGROUND_COLOR The color of the object's background region.

BORDER_BEVEL Specifies the item border bevel for the specified item instance. Valid values are RAISED, LOWERED, or PLAIN (unbeveled).

Note: You cannot set BORDER_BEVEL if the item's Bevel property is set to None in Form Builder.

CASE_INSENSITIVE_QUERY Specifies whether query conditions entered in the item should be case-sensitive. Valid values are PROPERTY_TRUE and PROPERTY_FALSE.

CASE_RESTRICTION Specifies the case restriction applied to any text entered in the indicated text item. Valid values are UPPERCASE, LOWERCASE, or NONE.

COMPRESSSpecifies whether the sound data from a sound object should be compressed before Form Builder writes the data to the file. Valid values are COMPRESSION_ON, COMPRESSION_OFF, and ORIGINAL_SETTING (retain the default compression setting of the data).

CONCEAL_DATA Specify the constant PROPERTY_TRUE if you want the item to remain blank or otherwise obscured when the end user enters a value. Specify the constant PROPERTY_FALSE if you want any value that is typed into the text item to be visible.

CURRENT_RECORD_ATTRIBUTE Specifies the VARCHAR2 name of a named visual attribute to be associated with the given item. If the named visual attribute does not exist, you will get an error message.

CURRENT_ROW_BACKGROUND_COLOR The color of the object's background region.

CURRENT_ROW_FILL_PATTERN The pattern to be used for the object's fill region. Patterns are rendered in the two colors specified by Background Color and Foreground Color.

CURRENT_ROW_FONT_NAME The font family, or typeface, that should be used for text in the object. The list of fonts available is system-dependent.

CURRENT_ROW_FONT_SIZE The size of the font, specified in points.

CURRENT_ROW_FONT_SPACING The width of the font, that is, the amount of space between characters (kerning).

CURRENT_ROW_FONT_STYLE The style of the font.

CURRENT_ROW_FONT_WEIGHT The weight of the font.

CURRENT_ROW_FOREGROUND_COLOR The color of the object's foreground region. For items, the Foreground Color attribute defines the color of text displayed in the item.

CURRENT_ROW_WHITE_ON_BLACK Specifies that the object is to appear on a monochrome bitmap display device as white text on a black background.

DIRECTION Specifies the layout direction for bidirectional objects. Valid values are DIRECTION_DEFAULT, RIGHT_TO_LEFT, LEFT_TO_RIGHT.

ECHO Specifies whether characters an end user types into a text item should be visible. When Echo is false, the characters typed are hidden. Used for password protection. Valid values are PROPERTY_TRUE and PROPERTY_FALSE.

ENABLED Specifies whether end users should be able to manipulate an item. Valid values are PROPERTY_TRUE and PROPERTY_FALSE.

Note: Setting Enabled to false will cause other item property settings to change. Consult the "Propagation of Property Changes" section for details.

FILL_PATTERN The pattern to be used for the object's fill region. Patterns are rendered in the two colors specified by Background Color and Foreground Color.

FIXED_LENGTH Specifies whether the item's value should be validated against the setting of the item's Max Length property. When FIXED_LENGTH is true, the item is valid only if the number of characters in its value equals the Max Length setting. Valid values are PROPERTY_TRUE and PROPERTY_FALSE.

FONT_NAME The font family, or typeface, that should be used for text in the object. The list of fonts available is system-dependent.

FONT_SIZE The size of the font, specified in points.

FONT_SPACING The width of the font, that is, the amount of space between characters (kerning).

FONT_STYLE The style of the font.

FONT_WEIGHT The weight of the font.

FOREGROUND_COLOR The color of the object's foreground region. For items, the Foreground Color attribute defines the color of text displayed in the item.

FORMAT_MASK Specifies the display format and input accepted for data in text items.

HEIGHT Specifies the height of the item.

ICON_NAME Specifies the file name of the icon resource associated with a button item having the iconic property set to ON.

IMAGE_DEPTH Specifies the depth of color to be applied to an image item.

INSERT_ALLOWED In a new record, allows end user to insert items normally when set to PROPERTY_TRUE. Specify PROPERTY_FALSE to specify that the item does not accept modification, but is displayed normally (not grayed out). (Insert_Allowed does not propagate changes to the Enabled property.)

ITEM_IS_VALID Specifies whether the current item should be considered valid. Set to PROPERTY_TRUE or PROPERTY_FALSE.

ITEM_SIZE Specifies a width and height for the item as two numbers separated by a comma. Use the syntax that includes x, y.

JUSTIFICATION The text alignment (text and display items only). Valid values are ALIGNMENT_START, ALIGNMENT_END, ALIGNMENT_LEFT, ALIGNMENT_ CENTER, ALIGNMENT_RIGHT.

KEEP_POSITION Specifies whether the Keep Cursor Position property should be true or false. When Keep Cursor Position is true, the cursor returns to the same position it was in when it left the text item. When Keep Cursor Position is false, the cursor returns to the default position in the text item. Valid values are PROPERTY_TRUE and PROPERTY_FALSE.

LABEL Specifies the VARCHAR2 string that you want displayed as the label of the item. This property is only valid for items that have labels, such as buttons.

LOCK_RECORD_ON_CHANGE Specify the constant PROPERTY_TRUE if you want the record to be locked when this item is changed. Specify the constant PROPERTY_FALSE if you do not want the record locked when this item is changed. Use primarily when connecting to a non-ORACLE data source that does not have row-level locking.

LOV_NAME Specify the VARCHAR2 name of an LOV to be associated with the given item. If the LOV name does not exist, you will get an error message.

MERGE_CURRENT_ROW_VA Merges the contents of the specified visual attribute with the current row’s visual attribute (rather than replacing it).

MERGE_TOOLTIP_ATTRIBUTE Merges the contents of the specified visual attribute with the tooltip’s current visual attribute (rather than replacing it).

MERGE_VISUAL_ATTRIBUTE Merges the contents of the specified visual attribute with the object’s current visual attribute (rather than replacing it).

MOUSE_NAVIGATE Specifies whether Form Builder should navigate and set focus to the item when the end user activates the item with the mouse. Specify the constant PROPERTY_TRUE if you want the end user to be able to navigate to the item using the mouse. Specify the constant PROPERTY_FALSE if you want a mouse click to keep the input focus in the current item.

NAVIGABLE Specify the constant PROPERTY_TRUE if you want the end user to be able to navigate to the item using default keyboard navigation. Specify the constant PROPERTY_FALSE if you want to disable default keyboard navigation to the item. (Keyboard Navigable does not propagate changes to the Enabled property.)

NEXT_NAVIGATION_ITEM Specifies the name of the item that is defined as the "next navigation item" with respect to this current item.

POPUPMENU_CONTENT_ITEM Specifies the setting for any of the OLE popup menu item properties:

frm90000.gif POPUPMENU_COPY_ITEM

frm90000.gif POPUPMENU_CUT_ITEM

frm90000.gif POPUPMENU_DELOBJ_ITEM

frm90000.gif POPUPMENU_INSOBJ_ITEM

frm90000.gif POPUPMENU_LINKS_ITEM

frm90000.gif POPUPMENU_OBJECT_ITEM

frm90000.gif POPUPMENU_PASTE_ITEM

frm90000.gif POPUPEMNU_PASTESPEC_ITEM

Specify the character string HIDDEN for the OLE popup menu item not to be displayed on the OLE popup menu. Specify the character string ENABLED for the OLE popup menu item to be displayed and enabled. Specify the character string DISABLED for the OLE popup menu item to be displayed and not enabled.

POSITION Specify the x, y coordinates for the item as NUMBERs separated by a comma. Use the syntax that includes x, y.

PREVIOUS_NAVIGATION_ITEM Specifies the name of the item that is defined as the "previous navigation item" with respect to this current item.

PRIMARY_KEY Specify the constant PROPERTY_TRUE to indicate that any record inserted or updated in the block must have a unique characteristic in order to be committed to the database. Otherwise, specify the constant PROPERTY_FALSE.

PROMPT_ALIGNMENT_OFFSET Determines the distance between the item and its prompt.

PROMPT_BACKGROUND_COLOR The color of the object's background region.

PROMPT_DISPLAY_STYLE Determines the prompt’s display style, either PROMPT_FIRST_RECORD, PROMPT_HIDDEN, or PROMPT_ALL_RECORDS.

PROMPT_EDGE Determines which edge the item’s prompt is attached to, either START_EDGE, END_EDGE, TOP_EDGE, or BOTTOM_EDGE.

PROMPT_EDGE_ALIGNMENT Determines which edge the item’s prompt is aligned to, either ALIGNMENT_START, ALIGNMENT_END, or ALIGNMENT_CENTER.

PROMPT_EDGE_OFFSET Determines the distance between the item and its prompt as a VARCHAR2 value.

PROMPT_FILL_PATTERN The pattern to be used for the object's fill region. Patterns are rendered in the two colors specified by Background Color and Foreground Color.

PROMPT_FONT_NAME The font family, or typeface, that should be used for text in the object. The list of fonts available is system-dependent.

PROMPT_FONT_SIZE The size of the font, specified in points.

PROMPT_FONT_SPACING The width of the font, that is, the amount of space between characters (kerning).

PROMPT_FONT_STYLE The style of the font.

PROMPT_FONT_WEIGHT The weight of the font.

PROMPT_FOREGROUND_COLOR The color of the object's foreground region. For items, the Foreground Color attribute defines the color of text displayed in the item.

PROMPT_TEXT Determines the text label that displays for an item.

PROMPT_TEXT_ALIGNMENT Determines how the prompt is justified, either ALIGNMENT_START, ALIGNMENT_LEFT, ALIGNMENT_RIGHT, ALIGNMENT_CENTER, or ALIGNMENT_END.

PROMPT_VISUAL_ATTRIBUTE Specifies the named visual attribute that should be applied to the prompt at runtime.

PROMPT_WHITE_ON_BLACK Specifies that the object is to appear on a monochrome bitmap display device as white text on a black background.

QUERYABLE Specify the constant PROPERTY_TRUE if you want the end user to be able to initiate a query against the item. Specify the constant PROPERTY_FALSE if you want to disallow the use of the item in a query.

QUERY_ONLY Specify an item to be queried, preventing that item from becoming part of insert or update statements. QUERY_ONLY is applicable to text items, radio groups, and check boxes. Enclose the fully-qualified item name in single quotes.

REQUIRED Specify the constant PROPERTY_TRUE if you want to force the end user to enter a value for the item. Specify the constant PROPERTY_FALSE if the item is not to be required.

SHOW_FAST_FORWARD_BUTTON Specify the constant PROPERTY_TRUE to display snd_fwrd.gif on a sound item, PROPERTY_FALSE to hide it.

SHOW_PLAY_BUTTON Specify the constant PROPERTY_TRUE to display snd_play.gif on a sound item, PROPERTY_FALSE to hide it. Note that Form Builder will hide either snd_play.gif or snd_rcrd.gif, but not both.

SHOW_RECORD_BUTTON Specify the constant PROPERTY_TRUE to display snd_rcrd.gif on a sound item, PROPERTY_FALSE to hide it. Note that Form Builder will hide either snd_rcrd.gif or snd_play.gif, but not both.

SHOW_REWIND_BUTTON Specify the constant PROPERTY_TRUE to display snd_rwnd.gif on a sound item, PROPERTY_FALSE to hide it.

SHOW_SLIDER Specify the constant PROPERTY_TRUE to display snd_slid.gif on a sound item, PROPERTY_FALSE to hide it.

SHOW_TIME_INDICATOR Specify the constant PROPERTY_TRUE to display snd_time.gif button on a sound item, PROPERTY_FALSE to hide it.

SHOW_VOLUME_CONTROL Specify the constant PROPERTY_TRUE to display snd_volu.gif on a sound item, PROPERTY_FALSE to hide it.

TOOLTIP_BACKGROUND_COLOR The color of the object's background region.

TOOLTIP_FILL_PATTERN The pattern to be used for the object's fill region. Patterns are rendered in the two colors specified by Background Color and Foreground Color.

TOOLTIP_FONT_NAME The font family, or typeface, that should be used for text in the object. The list of fonts available is system-dependent.

TOOLTIP_FONT_SIZE The size of the font, specified in points.

TOOLTIP_FONT_SPACING The width of the font, that is, the amount of space between characters (kerning).

TOOLTIP_FONT_STYLE The style of the font.

TOOLTIP_FONT_WEIGHT The weight of the font.

TOOLTIP_FOREGROUND_COLOR The color of the object's foreground region. For items, the Foreground Color attribute defines the color of text displayed in the item.

TOOLTIP_TEXT Determines the item’s tooltip text.

TOOLTIP_WHITE_ON_BLACK Specifies that the object is to appear on a monochrome bitmap display device as white text on a black background.

UPDATE_ALLOWED Specify the constant PROPERTY_TRUE if you want the end user to be able to update the item. Specify the constant PROPERTY_FALSE if you want the item protected from update.

UPDATE_COLUMN Specify the constant PROPERTY_TRUE if this column should be treated as updated, and included in the columns to be written to the database. Specify the constant PROPERTY_FALSE if this column should be treated as not updated, and not be included in the columns to be written to the database.

UPDATE_NULL Specify the constant PROPERTY_TRUE if you want the end user to be able to update the item only if its value is NULL. Specify the constant PROPERTY_FALSE if you want the end user to be able to update the value of the item regardless of whether the value is NULL.

UPDATE_PERMISSION Use UPDATE_ ALLOWED when you run against non-ORACLE data sources. Specify the constant PROPERTY_TRUE to turn on the item's UPDATEABLE and UPDATE_NULL properties. Specify the constant PROPERTY_FALSE to turn off the item's UPDATEABLE and UPDATE_NULL properties.

VALIDATE_FROM_LIST Specifies that Form Builder should validate the value of the text item against the values in the attached LOV when set to PROPERTY_TRUE. Specify PROPERTY_FALSE to specify that Form Builder should not use the LOV for validation.

VISIBLE Specifies whether the indicated item should be visible or hidden. Valid values are PROPERTY_TRUE and PROPERTY_FALSE.

Note: Setting Visible to false will cause other item property settings to change. Consult the "Propagation of Property Changes" section for details.

VISUAL_ATTRIBUTE Specify a valid named visual attribute that exists in the current form.

Note: You cannot set the visual attribute for an image item.

WHITE_ON_BLACK Specifies that the object is to appear on a monochrome bitmap display device as white text on a black background.

WIDTH Specify the width of the item as a NUMBER. The size of the units depends on how you set the Coordinate System property and default font scaling for the form.

X_POS Specify the x coordinate as a NUMBER.

Y_POS Specify the y coordinate as a NUMBER.

  • alue Specify the value to be applied to the given property. The data type of the property determines the data type of the value you enter. For instance, if you want to set the VISIBLE property to true, you specify the constant PROPERTY_TRUE for the value. If you want to change the LABEL for the item, you specify the value, in other words, the label, as a VARCHAR2 string.

PROPERTY_TRUE Specifies that the property is to be set to the TRUE state.

PROPERTY_FALSE Specifies that the property is to be set to the FALSE state.

If you want to reset the value of the property to be the value originally established for it at design time, enter two single quotes with no space between: ‘’. For example, SET_ITEM_PROPERTY(‘DEPTNO’, FORMAT_MASK, ‘’); would reset that format mask to its design-time value.

x Specifies the NUMBER value of the x coordinate or the width, depending on the property you specified. Specify the argument in form coordinate system units.

y Specifies the NUMBER value of the y coordinate or the height, depending on the property you specified. Specify the argument in form coordinate system units.

Usage Notes

The following issues can affect your decisions on how to apply certain property values to an item:

frm90000.gif validation of property changes

frm90000.gif propagation of property changes

Validation of Property Changes When you specify a change through the SET_ITEM_PROPERTY built-in, Form Builder validates the change before it adjusts the property. If the change is validated, Form Builder makes the change and leaves it in effect until another SET_ITEM_PROPERTY changes the same property or the current form is exited.

Illegal Settings If the change is not validated, Form Builder issues an error message. You cannot use SET_ITEM_PROPERTY to set the following item properties true or false, given the following target item conditions.

You cannot set this property parameter...
To this restricted setting

If this target item condition is true:
(All)
true/false
frm90000.gif NULL-canvas item (item's canvas property is null)

ENABLED
true/false
true
frm90000.gif current item
frm90000.gif Visible item property is false

INSERT_ALLOWED
true

true
frm90000.gif Enabled item property is false
frm90000.gif Visible item property is false

NAVIGABLE
true/false
true
frm90000.gif current item
frm90000.gif Visible item property is false

QUERYABLE
(Query Allowed)
true
frm90000.gif Visible item property is false

UPDATE_ALLOWED
true

true
frm90000.gif Enabled item property is false
frm90000.gif Conceal Data item property is true

UPDATE_NULL
(Update if NULL)
true

true
frm90000.gif Enabled item property is false
frm90000.gif Conceal Data item property is true

VISIBLE
true/false
frm90000.gif current item
frm90000.gif
Form Builder does not consider the current contents of an item before allowing a property change. If SET_ITEM_PROPERTY changes an item property that would affect how Form Builder validates the data in an item (for example, FIXED_LENGTH or REQUIRED), the validation consequences are not retroactive. The new validation rules do not apply to the item until Form Builder next validates it under normal circumstances.

For example, suppose the application has a required text item, such as Employee ID. In the application, the end user needs to be able to leave this item (behavior not allowed for a REQUIRED item), so you temporarily set the REQUIRED property to False. At this point, Form Builder marks an existing NULL value as VALID. Later in the application, when you set the REQUIRED property to true again, Form Builder does not automatically change the VALID/INVALID marking. In order to have a NULL value marked as INVALID (expected for a REQUIRED item), you must make a change in the item that will cause Form Builder to validate it, such as:

IF :block.item IS NULL
THEN :block.item := NULL;

Propagation of Property Changes You can only specify a change to one item property at a time through the SET_ITEM_PROPERTY built-in. However, one SET_ITEM_PROPERTY statement can cause changes to more than one item property if the additional changes are necessary to complete, or propagate, the intended change. This is included primarily for compatibility with prior versions.

The following table shows the SET_ITEM_PROPERTY settings that cause Form Builder to propagate changes across item properties:

Setting this property parameter...
To this setting
Also causes these propagated changes:
ENABLED
False
frm90000.gif sets the Navigable item property to False
frm90000.gif sets the Update_Null item property to False
frm90000.gif sets the Updateable item property to False
frm90000.gif sets the Required item property to False
DISPLAYED
False
frm90000.gif sets the Enabled and Navigable item properties to False
frm90000.gif sets the Updateable item property to False
frm90000.gif sets the Update_Null item property to False
frm90000.gif sets the Required item property to False
frm90000.gif sets the Queryable item property to False
UPDATEABLE
True
frm90000.gif sets the Update_Null item property to False
UPDATE_NULL
True
frm90000.gif sets the Updateable item property to False

SET_ITEM_PROPERTY examples SET_ITEM_PROPERTY examples

/*

  • Built-in: SET_ITEM_PROPERTY
    ** Example: Change the icon of an iconic button dynamically
    ** at runtime by changing its icon_name. The user
    ** clicks on this button to go into enter query
    ** mode, then clicks on it again (after the icon
    ** changed) to execute the query. After the query
    ** is executed the user sees the original icon
    ** again.
    ** Trigger: When-Button-Pressed
    */
    DECLARE
    it_id Item;
    BEGIN
    it_id := Find_Item('CONTROL.QUERY_BUTTON');
    IF :System.Mode = 'ENTER-QUERY' THEN
    /*
    ** Change the icon back to the enter query icon, and
    ** execute the query.
    */
    Set_Item_Property(it_id,ICON_NAME,'entquery');
    Execute_Query;
    ELSE
    /*
    ** Change the icon to the execute query icon and get
    ** into enter query mode.
    */
    Set_Item_Property(it_id,ICON_NAME,'exequery');
    Enter_Query;
    END IF;
    END;


    SET_LOV_COLUMN_PROPERTY built-in
SET_LOV_COLUMN_PROPERTY built-in

All Built-ins

Description

Sets the given LOV property for the given LOV.

Syntax

SET_LOV_COLUMN_PROPERTY
(lov_id LOV,
colnum
NUMBER,
property
NUMBER,
value
VARCHAR2);

SET_LOV_COLUMN_PROPERTY
(lov_name VARCHAR2,
colnum
NUMBER,
property
NUMBER,
value
VARCHAR2);

Built-in Type unrestricted procedure

Enter Query Mode yes

Parameters

lov_id Specifies the unique ID that Form Builder assigns the LOV when created. Use the FIND_LOV built-in to return the ID to an appropriately typed variable. The data type of the ID is LOV.

lov_name Specifies the LOV name (as a VARCHAR2).

colnum Specifies the column to be modified (as a NUMBER). The first column is column 1.

property Specifies the property you want to set for the given LOV. The possible properties are as follows:

TITLE Sets the Column Title property that controls the title that displays above an LOV column.

Note: Setting the column title to NULL resets the column title to the title specified at design time.

WIDTH Specifies the width to be reserved in the LOV for displaying column values.

Note: Setting the column width to NULL results in a hidden, or non-displayed, column.

  • alue The VARCHAR2 or NUMBER value that represents the desired property setting.


    SET_LOV_PROPERTY built-in
SET_LOV_PROPERTY built-in

Examples Restrictions Related Topics
All Built-ins

Description

Sets the given LOV property for the given LOV.

Syntax

SET_LOV_PROPERTY
(lov_id LOV,
property
NUMBER,
value
NUMBER);

SET_LOV_PROPERTY
(lov_name VARCHAR2,
property
NUMBER,
value
NUMBER);
SET_LOV_PROPERTY
(lov_id LOV,
property
NUMBER,
x
NUMBER,
y
NUMBER);
SET_LOV_PROPERTY
(lov_name VARCHAR2,
property
NUMBER,
x
NUMBER,
y
NUMBER);

Built-in Type unrestricted procedure

Enter Query Mode yes

Parameters

lov_id Specifies the unique ID that Form Builder assigns the LOV when created. Use the FIND_LOV built-in to return the ID to an appropriately typed variable. The data type of the ID is LOV.

lov_name Specifies the LOV name (as a VARCHAR2).

property Specifies the property you want to set for the given LOV. The possible properties are as follows:

AUTO_REFRESH Specifies whether Form Builder re-executes the query each time the LOV is invoked.

GROUP_NAME Specifies the record group with which the LOV is associated.

LOV_SIZE Specifies a width, height pair indicating the size of the LOV.

POSITION Specifies an x, y pair indicating the position of the LOV.

TITLE Specifies the title of the LOV. Overrides the value specified in the Form Builder unless the property value is NULL.

  • alue Specify one of the following constants:

PROPERTY_TRUE Specifies that the property is to be set to the TRUE state.

PROPERTY_FALSE Specifies that the property is to be set to the FALSE state.

Recordgroup Name Specify the VARCHAR2 name of the record group you are setting. You can create this record group in Form Builder or programmatically, as long as the record group exists when the SET_LOV_PROPERTY is called.

x Specify either the x coordinate or the width, depending on the property you specified.

y Specify either the y coordinate or the height, depending on the property you specified.


SET_LOV_PROPERTY restrictions SET_LOV_PROPERTY restrictions

frm90000.gif
You can set only one property per call to the built-in.


SET_LOV_PROPERTY examples SET_LOV_PROPERTY examples

/*

  • Built-in: SET_LOV_PROPERTY
    ** Example: if LOV is currently base on GROUP1,
    ** make LOV use GROUP2
    */
    DECLARE
    lov_id LOV;
    BEGIN
    lov_id := Find_LOV('My_LOV_1');
    IF Get_LOV_Property(lov_id,GROUP_NAME) = 'GROUP1' THEN
    Set_LOV_Property(lov_id,GROUP_NAME,'GROUP2');
    ENDIF;
    END;


    SET_MENU_ITEM_PROPERTY built-in
SET_MENU_ITEM_PROPERTY built-in

Examples Restrictions Related Topics
All Built-ins

Description

Modifies the given properties of a menu item.

Syntax

SET_MENU_ITEM_PROPERTY
(menuitem_id MenuItem,
property
NUMBER,
value
NUMBER);

SET_MENU_ITEM_PROPERTY
(menu_name.menuitem_name VARCHAR2,
property
NUMBER,
value
NUMBER);

Built-in Type unrestricted procedure

Enter Query Mode yes

Parameters

menuitem_id Specifies the unique ID Form Builder assigns when it creates the menu item. Use the FIND_MENU_ITEM built-in to return the ID to an appropriately typed variable. The data type of the ID is MenuItem.

menu_name.menuitem_name Specifies the VARCHAR2 name you gave to the menu item when you defined it. If you specify the menu item by name, include the qualifying menu name, as shown in the syntax.

property Specify one of the following constants to set information about the menu item:

CHECKED Specifies the Checked property, which indicates if a check box menu item or a radio menu item is in the checked state or unchecked state.

ENABLED Specifies whether the menu item is enabled (thus active) or disabled (thus greyed out and unavailable to the operator).

LABEL Specifies the character string for the menu item label.

VISIBLE Specifies whether the menu item is visibly displayed.

  • alue Specify one of the following constants:

PROPERTY_TRUE Specifies that the property is to be set to the TRUE state.

PROPERTY_FALSE Specifies that the property is to be set to the FALSE state.

Label Specify the VARCHAR2 label name.


SET_MENU_ITEM_PROPERTY restrictions SET_MENU_ITEM_PROPERTY restrictions

These restrictions apply only if the menu module's Use Security property is set to Yes:

frm90000.gif If the menu module Use Security property is Yes, whether you can set the property of a menu item using SET_MENU_ITEM_PROPERTY depends on whether the form operator has access privileges for that item.

frm90000.gif If the menu item is hidden and the operator does not have security access to a menu item, Runform does not display that item. You cannot set the property of a menu item using SET_MENU_ITEM_PROPERTY if the item is currently hidden.

frm90000.gif If the menu item is displayed, but disabled and the Display w/o Priv property for this menu item was set in Form Builder, Runform displays the item in a disabled state. In this case, you can set the menu item properties programmatically.


SET_MENU_ITEM_PROPERTY examples SET_MENU_ITEM_PROPERTY examples

/*

  • Built-in: SET_MENU_ITEM_PROPERTY
    ** Example: See GET_MENU_ITEM_PROPERTY
    */


    SET_OLE
SET_OLE

All Built-ins

Description

Changes the value of an OLE property.

There are three versions of the procedure, one for each of the new-value types: NUMBER, VARCHAR, and OLEVAR.

Syntax

PROCEDURE SET_OLE
(obj OLEOBJ, memberid PLS_INTEGER
newval NUMBER, vtype VT_TYPE);

...or...

PROCEDURE SET_OLE
(obj OLEOBJ, memberid PLS_INTEGER
newval VARCHAR2, vtype VT_TYPE);

...or...

PROCEDURE SET_OLE
(obj OLEOBJ, memberid PLS_INTEGER
newval OLEVAR, vtype VT_TYPE);

Built-in Type unrestricted procedure

Parameters

obj
A pointer to the OLE object.
memberid
The member ID of the OLE property.
newval
A new value of the specified type to replace the OLE property.
  • type
The VT_TYPE of the original variant.
This is an optional parameter. If not specified, the default value for the NUMBER version of the procedure is VT_R8. For the VARCHAR2 version, the default is VT_BSTR. For the OLEVAR version, the default is VT_VARIANT: that is, whatever type the variant itself actually specifies .
Usage Notes

If INIT_OLEARGS and ADD_OLEARG calls precede this SET_OLE call, and there have been no intervening GET_OLE, SET_OLE, or CALL_OLE calls, then this call will access the property by using the arguments specified in those INIT_OLEARGS and ADD_OLEARG calls.


SET_PARAMETER_ATTR built-in SET_PARAMETER_ATTR built-in

Related Topics
All Built-ins

Description

Sets the type and value of an indicated parameter in an indicated parameter list.

Syntax

SET_PARAMETER_ATTR
(list PARAMLIST,
key
VARCHAR2,
paramtype
NUMBER,
value
VARCHAR2);

SET_PARAMETER_ATTR
(name VARCHAR2,
key
VARCHAR2,
paramtype
NUMBER,
value
VARCHAR2);

Built-in Type unrestricted procedure

Enter Query Mode yes

Parameters

list or name Specifies the parameter list. The actual parameter can be either a parameter list ID of type PARAMLIST, or the VARCHAR2 name of the parameter list.

key The VARCHAR2 name of the parameter.

paramtype Specifies the type of parameter you intend to pass:

DATA_PARAMETER Indicates that the parameter's value is the name of a record group.

TEXT_PARAMETER Indicates that the parameter's value is an actual data value.

  • alue The value of the parameter specified as a VARCHAR2 string.


    SET_RADIO_BUTTON_PROPERTY built-in
SET_RADIO_BUTTON_PROPERTY built-in

Examples Related Topics
All Built-ins

Description

Sets the given property for a radio button that is part of the given radio group specified by the item_name or item_id.

Syntax

SET_RADIO_BUTTON_PROPERTY
(item_id VARCHAR2,
button_name
VARCHAR2,
property
NUMBER,
value
NUMBER);

SET_RADIO_BUTTON_PROPERTY
(item_id VARCHAR2,
button_name
VARCHAR2,
property
NUMBER,
x
NUMBER,
y
NUMBER);
SET_RADIO_BUTTON_PROPERTY
(item_name VARCHAR2,
button_name
VARCHAR2,
property
NUMBER,
x
NUMBER,
y
NUMBER);
SET_RADIO_BUTTON_PROPERTY
(item_name VARCHAR2,
button_name
VARCHAR2,
property
NUMBER,
value
NUMBER);

Built-in Type unrestricted procedure

Enter Query Mode yes

Parameters

item_id Specifies the radio group item ID. Form Builder assigns the unique ID at the time it creates the object. Use the FIND_ITEM built-in to return the ID to an appropriately typed variable.

item_name Specifies the name of the radio group. The radio group is the owner or parent of its subordinate radio buttons. The data type of the name is VARCHAR2.

button_name Specifies the name of the radio button whose property you want to set. The data type of the name is VARCHAR2.

property Specifies the property you want to set. The possible property constants you can set are as follows:

BACKGROUND_COLOR The color of the object's background region.

ENABLED Specify PROPERTY_TRUE constant if you want to enable the radio button. Specify PROPERTY_FALSE if you want to disable the radio button from operator control.

FILL_PATTERN The pattern to be used for the object's fill region. Patterns are rendered in the two colors specified by Background Color and Foreground Color.

FONT_NAME The font family, or typeface, that should be used for text in the object. The list of fonts available is system-dependent.

FONT_SIZE The size of the font, specified in points.

FONT_SPACING The width of the font, that is, the amount of space between characters (kerning).

FONT_STYLE The style of the font.

FONT_WEIGHT The weight of the font.

FOREGROUND_COLOR The color of the object's foreground region. For items, the Foreground Color attribute defines the color of text displayed in the item.

HEIGHT Specify the height of the given radio button. Specify the value as a number.

ITEM_SIZE Sets the width and height of the given radio button. Use the syntax that shows an x,y coordinate pair and specify the values as numbers.

LABEL Specify the actual string label for that radio button.

POSITION Sets the position of the given radio button. Use the syntax that shows an x,y coordinate pair and specify the values as numbers.

PROMPT_BACKGROUND_COLOR The color of the object's background region.

PROMPT_FILL_PATTERN The pattern to be used for the object's fill region. Patterns are rendered in the two colors specified by Background Color and Foreground Color.

PROMPT_FONT_NAME The font family, or typeface, that should be used for text in the object. The list of fonts available is system-dependent.

PROMPT_FONT_SIZE The size of the font, specified in points.

PROMPT_FONT_SPACING The width of the font, that is, the amount of space between characters (kerning).

PROMPT_FONT_STYLE The style of the font.

PROMPT_FONT_WEIGHT The weight of the font.

PROMPT_FOREGROUND_COLOR The color of the object's foreground region. For items, the Foreground Color attribute defines the color of text displayed in the item.

PROMPT_WHITE_ON_BLACK Specifies that the object is to appear on a monochrome bitmap display device as white text on a black background.

VISIBLE Specify PROPERTY_TRUE constant if you want the radio button to be displayed. Specify PROPERTY_FALSE constant if you want the radio button to be hidden.

VISUAL_ATTRIBUTE Specifies either a valid named visual attribute that exists in the current form, or the name of a logical attribute definition in a runtime resource file that you want Form Builder to apply to the radio button.

WHITE_ON_BLACK Specifies that the object is to appear on a monochrome bitmap display device as white text on a black background.

WIDTH Specify the width of the given radio button. Specify the value as a number.

X_POS Specify the x-coordinate for the radio button. Specify the value as a number.

Y_POS Specify the y-coordinate for the radio button. Specify the value as a number.

  • alue Specifies a NUMBER or a VARCHAR2 value. The data type of the value you enter is determined by the data type of the property you specified. If you enter a VARCHAR2 value, you must enclose it in quotes, unless you reference a text item or variable.

PROPERTY_TRUE Specifies that the property is to be set to the TRUE state.

PROPERTY_FALSE Specifies that the property is to be set to the FALSE state.

x Specifies the first numeric value for the ITEM_SIZE and POSITION properties.

y Specifies the second numeric value for the ITEM_SIZE and POSITION properties.


SET_RADIO_BUTTON_PROPERTY examples SET_RADIO_BUTTON_PROPERTY examples

/*

  • Built-in: SET_RADIO_BUTTON_PROPERTY
    ** Example: Set a particular radio button to disabled.
    */
    BEGIN
    Set_Radio_Button_Property('MYBLOCK.FLIGHT_STATUS',
    'GROUNDED',ENABLED,PROPERTY_FALSE);
    END;


    SET_RECORD_PROPERTY built-in
SET_RECORD_PROPERTY built-in

Examples Restrictions Related Topics
All Built-ins

Description

Sets the specified record property to the specified value.

Syntax

SET_RECORD_PROPERTY
(record_number NUMBER,
block_name
VARCHAR2,
property
NUMBER,
value
NUMBER);

Built-in Type unrestricted procedure

Enter Query Mode yes

Parameters

record_number Specifies the number of the record whose status you want to set. The record number is the record's position in the block. Specify as a whole number.

block_name Specifies the name of the block in which the target record exists. The data type of the name is VARCHAR2.

property Use the following property:

STATUS Specifies that you intend to change the record status. STATUS is a constant.

  • alue Use one of the following values:

CHANGED_STATUS Specifies that the record should be marked for update and should be treated as an update when the next commit action occurs.

INSERT_STATUS Specifies that the record is to be marked as an INSERT and should be inserted into the appropriate table when the next commit action occurs.

NEW_STATUS Specifies that the record is to be treated as a NEW record, that is, a record that has not been marked for insert, update, or query. Changed but uncleared or uncommitted records cannot be assigned a status of NEW.

QUERY_STATUS Specifies that the record is to be treated as a QUERY record, whether it actually is. See also the CREATE_QUERIED_RECORD built-in.


SET_RECORD_PROPERTY restrictions SET_RECORD_PROPERTY restrictions

The following table illustrates the valid transition states of a record.

Current Status
Target Status




NEW
QUERY
INSERT
CHANGED
NEW
yes
yes1
yes2
no
QUERY
yes4
yes
no
yes
INSERT
yes4
yes3
yes
no
CHANGED
yes4
no
no
yes

  1. Adheres to the rules described in footnotes 2 and 3.

  2. This transition is not allowed in query mode, because QUERY and INSERT are not valid in query mode.

  3. If this transition is performed while Runform is running in Unique Key mode and not all of the transactional triggers exist, then you must enter a valid value in the ROWID field. Put another way, if you are connected to a non-ORACLE data source that does not support ROWID, but you are using a unique key, you must supply the key for a record that goes from Insert to Query, in one of the transactional triggers, either On-Lock, On-Update, or On-Delete. Otherwise Form Builder returns an error.

  4. Records that have been changed but not yet committed or cleared cannot be assigned a status of NEW.


    SET_RECORD_PROPERTY examples
SET_RECORD_PROPERTY examples

/*

  • Built-in: SET_RECORD_PROPERTY
    ** Example: Mark the third record in the EMP block as if it
    ** were a queried record.
    */
    BEGIN
    Set_Record_Property( 3, 'EMP', STATUS, QUERY_STATUS);
    END;


    SET_RELATION_PROPERTY built-in
SET_RELATION_PROPERTY built-in

Examples Restrictions Related Topics
All Built-ins

Description

Sets the given relation property in a master-detail relationship.

Syntax

SET_RELATION_PROPERTY
(relation_id Relation,
property
NUMBER,
value
NUMBER);

SET_RELATION_PROPERTY
(relation_name VARCHAR2,
property
NUMBER,
value
NUMBER);

Built-in Type unrestricted procedure

Enter Query Mode yes

Parameters

relation_id Specifies the unique ID that Form Builder assigns the relation when it creates the relation object. This can occur automatically when you define a master-detail relationship in the Form Builder, or you can explicitly create the relation. The data type of the ID is Relation.

relation_name Specifies the name you or Form Builder gave the relation object when defining it. The data type of the name is VARCHAR2.

property Use one of the following relation properties, which can be passed to the built-in as a constant:

AUTOQUERY Specifies that the detail block of this relation is to be automatically coordinated upon instantiation of the block. This allows potentially expensive processing to be deferred until blocks that are involved in relations are actually visited. Valid values are PROPERTY_TRUE and PROPERTY_FALSE.

DEFERRED_COORDINATION Specifies that a block requiring coordination is to be marked but not coordinated until the detail blocks are instantiated. Deferred coordination refers only to the population phase of coordination. Even deferred detail blocks are cleared during the clear phase of coordination to present the form in a visually consistent state. Valid values are PROPERTY_TRUE and PROPERTY_FALSE.

MASTER_DELETES Specifies the default relation behavior for deletion of a detail record in the detail block when there is a corresponding master record in the master block. Valid values are NON-ISOLATED, ISOLATED, or CASCADING. The ability to set this property programmatically is included only for designers who are coding their own master-detail coordination. It does not alter a default relation that was created at design time.

PREVENT_MASTERLESS_OPERATION Specifies that operations in a detail block are not allowed when no corresponding master record exists. Valid values are PROPERTY_TRUE and PROPERTY_FALSE.

  • alue The following constants can be supplied for the properties described earlier:

CASCADING Specifies that the MASTER_DELETES property is to be set so that when an operator deletes a master record, its corresponding detail records are locked at the same time as the master records are locked.

ISOLATED Specifies that the MASTER_DELETES property is to be set so that an operator can delete a master record for which detail records exist. This does not cause subsequent locking and deletion of detail records, however, Form Builder still initiates detail block coordination in this case.

NON_ISOLATED Specifies that the MASTER_DELETES property is to be set so that if the operator attempts to delete a master record for which detail records exist, Form Builder issues an error message and disallows the deletion.

PROPERTY_TRUE Specifies that the property is to be set to the TRUE state.

PROPERTY_FALSE Specifies that the property is to be set to the FALSE state.


SET_RELATION_PROPERTY restrictions SET_RELATION_PROPERTY restrictions

You can only set one property per call to this built-in.


SET_RELATION_PROPERTY examples SET_RELATION_PROPERTY examples

/*

  • Built-in: SET_RELATION_PROPERTY
    ** Example: Set the coordination behavior of a relation to
    ** be deferred, and auto-query.
    */
    PROCEDURE Make_Relation_Deferred( rl_name VARCHAR2 ) IS
    rl_id Relation;
    BEGIN
    /*
    ** Look for the relation's ID
    */
    rl_id := Find_Relation( rl_name );
    /*
    ** Set the two required properties
    */
    Set_Relation_Property(rl_id,AUTOQUERY,PROPERTY_TRUE);
    END;


    SET_REPORT_OBJECT_PROPERTY built-in
SET_REPORT_OBJECT_PROPERTY built-in

Examples
All Built-ins

Description

Programmatically sets the value of a report property.

Syntax

PROCEDURE SET_REPORT_OBJECT_PROPERTY
(report_id REPORT_OBJECT,
property
NUMBER,
value VARCHAR2
);

PROCEDURE SET_REPORT_OBJECT_PROPERTY
(report_name VARCHAR2,
property
NUMBER,
value VARCHAR2
);

PROCEDURE SET_REPORT_OBJECT_PROPERTY
(report_id REPORT_OBJECT,
property
NUMBER,
value NUMBER
);

PROCEDURE SET_REPORT_OBJECT_PROPERTY
(report_name VARCHAR2,
property
NUMBER,
value NUMBER
);

Built-in Type unrestricted procedure

Enter Query Mode yes

Parameters

report_id Specifies the unique ID of the report. You can get the report ID for a particular report using FIND_REPORT_OBJECT .

report_name Specifies the unique name of the report.

property One of the following constants:

REPORT_EXECUTION_MODE: The report execution mode, either BATCH or RUNTIME

REPORT_COMM_MODE: The report communication mode, either SYNCHRONOUS or ASYNCHRONOUS

REPORT_DESTYPE: The report destination type, either PREVIEW, FILE, PRINTER, MAIL, CACHE or SCREEN

One of the following strings:

REPORT_FILENAME: The report filename

REPORT_SOURCE_BLOCK: The report source block name

REPORT_QUERY_NAME: The report query name

REPORT_DESNAME: The report destination name

REPORT_DESFORMAT: The report destination format

REPORT_SERVER: The report server name

REPORT_OTHER: The other user-specified report properties

  • alue One of the following constants:

REPORT_EXECUTION_MODE: Value must be BATCH or RUNTIME

REPORT_COMM_MODE: Value must be SYNCHRONOUS or ASYNCHRONOUS

REPORT_DESTYPE: Value must be PREVIEW, FILE, PRINTER, MAIL, CACHE, or SCREEN

One of the following strings:

REPORT_FILENAME: Value must be of type VARCHAR2

REPORT_SOURCE_BLOCK: Value must be of type VARCHAR2

REPORT_QUERY_NAME: Value must be of type VARCHAR2

REPORT_DEST_NAME: Value must be of type VARCHAR2

REPORT_DEST_FORMAT: Value must be of type VARCHAR2

REPORT_SERVER: Value must be of type VARCHAR2

REPORT_OTHER: Value must be of type VARCHAR2

Usage Notes

frm90000.gif
SET_REPORT_OBJECT_PROPERTY sets properties using constant or string values. The value type depends on the particular property being set, as specified above. In contrast, GET_REPORT_OBJECT_PROPERTY returns a string value for all properties.


SET_REPORT_OBJECT_PROPERTY examples SET_REPORT_OBJECT_PROPERTY examples SET_REPORT_OBJECT_PROPERTY_examples

DECLARE

repid REPORT_OBJECT;

report_prop VARCHAR2(20);

BEGIN

repid := find_report_object('report4');

SET_REPORT_OBJECT_PROPERTY(repid, REPORT_EXECUTION_MODE, BATCH);

SET_REPORT_OBJECT_PROPERTY(repid, REPORT_COMM_MODE, SYNCHRONOUS);

SET_REPORT_OBJECT_PROPERTY(repid, REPORT_DESTYPE, FILE);

END;


SET_TAB_PAGE_PROPERTY built-in SET_TAB_PAGE_PROPERTY built-in

Examples Related Topics
All Built-ins

Description

Sets the tab page properties of the specified tab canvas page.

Syntax

SET_TAB_PAGE_PROPERTY
(tab_page_id TAB_PAGE,
property
NUMBER,
value
NUMBER);

SET_TAB_PAGE_PROPERTY
(tab_page_name VARCHAR2,
property
NUMBER,
value
NUMBER);

Built-in Type unrestricted procedure

Enter Query Mode yes

Parameters

tab_page_id The unique ID Form Builder assigns to the tab page when it creates it. Datatype is TAB_PAGE.

tab_page_name The name you gave the tab page when you defined it. Datatype is VARCHAR2.

property The property you want to set for the given tab page. Possible values are:

BACKGROUND_COLOR The color of the object's background region.

ENABLED Specify TRUE to enable the tab page, FALSE to disable it (i.e., make it greyed out and unavailable).

FILL_PATTERN The pattern to be used for the object's fill region. Patterns are rendered in the two colors specified by Background Color and Foreground Color.

FONT_NAME The font family, or typeface, that should be used for text in the object. The list of fonts available is system-dependent.

FONT_SIZE The size of the font, specified in points.

FONT_SPACING The width of the font, that is, the amount of space between characters (kerning).

FONT_STYLE The style of the font.

FONT_WEIGHT The weight of the font.

FOREGROUND_COLOR The color of the object's foreground region. For items, the Foreground Color attribute defines the color of text displayed in the item.

LABEL The character string for the tab page label.

VISIBLE Specify TRUE to make the tab page visible, FALSE to make it not visible. A tab page is reported visible if it is currently mapped to the screen, even if it is entirely hidden behind another tab page.

VISUAL_ATTRIBUTE Specifies the name of the visual attribute currently in force.

WHITE_ON_BLACK Specifies that the object is to appear on a monochrome bitmap display device as white text on a black background.

  • alue You can pass the following constants as arguments to the property values described earlier:

PROPERTY_TRUE (sets the property to the TRUE state)

PROPERTY_FALSE (sets the property to the FALSE state)


SET_TAB_PAGE_PROPERTY examples SET_TAB_PAGE_PROPERTY examples

/* Example 1: Use SET_TAB_PAGE_PROPERTY to set the
** ENABLED property to TRUE for a tab page (if it currently
** is set to FALSE:
*/

DECLARE
tb_pg_id TAB_PAGE;

BEGIN
tb_pg_id := FIND_TAB_PAGE('tab_page_1');
IF GET_TAB_PAGE_PROPERTY(tb_pg_id, enabled) = 'FALSE' THEN
SET_TAB_PAGE_PROPERTY(tb_pg_id, enabled, property_true);
END IF;
END;


SET_TIMER built-in SET_TIMER built-in

Examples Restrictions Related Topics
All Built-ins

Description

Changes the settings for an existing timer. You can modify the interval, the repeat parameter, or both.

Syntax

SET_TIMER
(timer_id Timer,
milliseconds
NUMBER,
iterate
NUMBER);

SET_TIMER
(timer_name VARCHAR2,
milliseconds
NUMBER,
iterate
NUMBER);

Built-in Type unrestricted procedure

Enter Query Mode yes

Parameters

timer_id Specifies the unique ID that Form Builder assigns when it creates the timer, specifically as a response to a successful call to the CREATE_TIMER built-in. Use the FIND_TIMER built-in to return the ID to an appropriately typed variable. The data type of the ID is Timer.

timer_name Specifies the name you gave the timer when you defined it. The data type of the name is VARCHAR2.

milliseconds Specifies the duration of the timer in milliseconds. The range of values allowed for this parameter is 1 to 2147483648 milliseconds. Values > 2147483648 will be rounded down to 2147483648. Note that only positive numbers are allowed. The data type of the parameter is NUMBER. See Restrictions below for more information.

NO_CHANGE Specifies that the milliseconds property is to remain at its current setting.

iterate Specifies the iteration of the timer.

REPEAT Indicates that the timer should repeat upon expiration. Default.

NO_REPEAT Indicates that the timer should not repeat upon expiration, but is to be used once only, until explicitly called again.

NO_CHANGE Specifies that the iterate property is to remain at its current setting.


SET_TIMER restrictions SET_TIMER restrictions

frm90000.gif
Values > 2147483648 will be rounded down to 2147483648.

frm90000.gif A value less than 1 results in a runtime error.

frm90000.gif A value greater than the stated upper bound results in an integer overflow.

frm90000.gif Milliseconds cannot be expressed as a negative number.

frm90000.gif No two timers can share the same name in the same form instance, regardless of case.

frm90000.gif If there is no When-Timer-Expired trigger defined at the execution of a timer, Form Builder returns an error.

frm90000.gif If there is no When-Timer-Expired trigger defined at the execution of a timer, and the timer is a repeating timer, subsequent repetitions are canceled, but the timer is retained.


SET_TIMER examples SET_TIMER examples

/*

  • Built-in: SET_TIMER
    ** Example: See FIND_TIMER
    */


    SET_TREE_NODE_PROPERTY Built-in
SET_TREE_NODE_PROPERTY built-in

Examples
All Built-ins

Description

Sets the state of a branch node.

Syntax

PROCEDURE SET_TREE_NODE_PROPERTY

(item_name VARCHAR2,

node NODE,

property NUMBER,

value NUMBER);

PROCEDURE SET_TREE_NODE_PROPERTY

(item_name VARCHAR2,

node NODE,

property NUMBER,

value VARCHAR2);

PROCEDURE SET_TREE_NODE_PROPERTY

(item_id ITEM,

node NODE,

property NUMBER,

value NUMBER);

PROCEDURE SET_TREE_NODE_PROPERTY

(item_id ITEM,

node NODE,

property NUMBER,

value VARCHAR2);

Built-in Type unrestricted procedure

Enter Query Mode no

Parameters

item_name
Specifies the name of the object created at design time. The data type of the name is VARCHAR2 string.
Item_id
Specifies the unique ID that Form Builder assigns to the item when created. Use the FIND_ITEM built-in to return the ID to an appropriately typed variable. The data type of the ID is ITEM.
node
Specifies a valid node.
property
Specify one of the following properties:
NODE_STATE Possible values are EXPANDED_NODE, COLLAPSED_NODE, and LEAF_NODE.
NODE_LABEL Sets the label of the node.
NODE_ICON Sets the icon of the node.
NODE_VALUE Sets the value of the node.
  • alue
The actual value you intend to pass.


SET_TREE_NODE_PROPERTY examples SET_TREE_NODE_PROPERTY examples

/*

  • Built-in: SET_TREE_NODE_PROPERTY
    */

-- This code could be used in a WHEN-TREE-NODE-SELECTED

-- trigger to change the icon of the node clicked on.

DECLARE

htree ITEM;

current_node NODE;

find_node NODE;

BEGIN

-- Find the tree itself.

htree := Find_Item('tree_block.htree3');

-- Change it icon of the clicked node.

-- The icon file will be located using the

-- TK_ICON environment variable in client/server

-- or in the virtual directory for web deployment.

Ftree.Set_Tree_Node_Property(htree, :SYSTEM.TRIGGER_NODE, Ftree.NODE_ICON, 'Open');

END;


SET_TREE_PROPERTY built-in SET_TREE_PROPERTY built-in

Examples
All Built-ins

Description

Sets the value of the indicated hierarchical tree property.

Syntax

PROCEDURE SET_TREE_PROPERTY

(item_name VARCHAR2,

property NUMBER,

value NUMBER);

PROCEDURE SET_TREE_PROPERTY

(item_name VARCHAR2,

property NUMBER,

value VARCHAR2);

PROCEDURE SET_TREE_PROPERTY

(item_name VARCHAR2,

property NUMBER,

value RECORDGROUP);

PROCEDURE SET_TREE_PROPERTY

(item_id ITEM,

property NUMBER,

value NUMBER);

PROCEDURE SET_TREE_PROPERTY

(item_id ITEM,

property NUMBER,

value VARCHAR2);

PROCEDURE SET_TREE_PROPERTY

(item_id ITEM,

property NUMBER,

value RECORDGROUP);

Built-in Type unrestricted procedure

Enter Query Mode no

Parameters

item_name
Specifies the name of the object created at design time. The data type of the name is VARCHAR2 string.
Item_id
Specifies the unique ID that Form Builder assigns to the item when created. Use the FIND_ITEM built-in to return the ID to an appropriately typed variable. The data type of the ID is ITEM.
property
Specify one of the following properties:
RECORD_GROUP Replaces the data set of the hierarchical tree with a record group and causes it to display.
QUERY_TEXT Replaces the data set of the hierarchical tree with an SQL query and causes it to display.
ALLOW_EMPTY_BRANCHES Possible values are PROPERTY_TRUE and PROPERTY_FALSE.
  • alue
Specify the value appropriate to the property you are setting:
PROPERTY_TRUE The property is to be set to the TRUE state.
PROPERTY_FALSE The property is to be set to the FALSE state.


SET_TREE_PROPERTY examples SET_TREE_PROPERTY examples

/*

  • Built-in: SET_TREE_PROPERTY
    */

-- This code could be used in a WHEN-NEW-FORM-INSTANCE

-- trigger to initially populate the hierarchical tree

-- with data.

DECLARE

htree ITEM;

v_ignore NUMBER;

rg_emps RECORDGROUP;

BEGIN

-- Find the tree itself.

htree := Find_Item('tree_block.htree3');

-- Check for the existence of the record group.

rg_emps := Find_Group('emps');

IF NOT Id_Null(rg_emps) THEN

DELETE_GROUP(rg_emps);

END IF;

-- Create the record group.

rg_emps := Create_Group_From_Query('rg_emps',

'select 1, level, ename, NULL, to_char(empno) ' ||

'from emp ' ||

'connect by prior empno = mgr ' ||

'start with job = ''PRESIDENT''');

-- Populate the record group with data.

v_ignore := Populate_Group(rg_emps);

-- Transfer the data from the record group to the hierarchical

-- tree and cause it to display.

Ftree.Set_Tree_Property(htree, Ftree.RECORD_GROUP, rg_emps);

END;


SET_TREE_SELECTION built-in SET_TREE_SELECTION built-in

Examples
All Built-ins

Description

Specifies the selection of a single node.

Syntax

PROCEDURE SET_TREE_SELECTION

(item_name VARCHAR2,

node NODE,

selection_type NUMBER);

PROCEDURE SET_TREE_SELECTION

(item_id ITEM,

node NODE,

selection_type NUMBER);

Built-in Type unrestricted procedure

Enter Query Mode no

Parameters

item_name
Specifies the name of the object created at design time. The data type of the name is VARCHAR2 string.
Item_id
Specifies the unique ID that Form Builder assigns to the item when created. Use the FIND_ITEM built-in to return the ID to an appropriately typed variable. The data type of the ID is ITEM.
node
Specifies a valid node.
selection_type
Specifies the type of selection.
SELECT_ON Selects the node.
SELECT_OFF Deselects the node.
SELECT_TOGGLE Toggles the selection state of the node.


SET_TREE_SELECTION examples SET_TREE_SELECTION examples

/*

  • Built-in: SET_TREE_SELECTION
    */

-- This code could be used in a WHEN-TREE-NODE-EXPANDED

-- trigger and will mark the clicked node as selected.

DECLARE

htree ITEM;

BEGIN

-- Find the tree itself.

htree := Find_Item('tree_block.htree3');

-- Mark the clicked node as selected.

Ftree.Set_Tree_Selection(htree, :SYSTEM.TRIGGER_NODE, Ftree.SELECT_ON);

END;


SET_VA_PROPERTY built-in SET_VA_PROPERTY built-in

All Built-ins

Description

Modifies visual attribute property values for the specified property.

Syntax

SET_VA_PROPERTY

(va_id VISUALATTRIBUTE

property NUMBER

value VARCHAR2);

SET_VA_PROPERTY

(va_name VARCHAR2

property NUMBER

value VARCHAR2);

SET_VA_PROPERTY

(va_id VISUALATTRIBUTE

property NUMBER

value NUMBER);

SET_VA_PROPERTY

(va_name VARCHAR2

property NUMBER

value NUMBER);

Built-in Type unrestricted function

Enter Query Mode yes

Parameters

  • a_id
The unique ID Form Builder assinged to the visual attribute when you created it. The data type is VISUALATTRIBUTE.
  • a_name
The name you gave the visual attribute when you created it. The data type is VARCHAR2.
Property
















  • alue
Specify one of the following properties:
BACKGROUND_COLOR The color of the object's background region.
FILL_PATTERN The pattern to be used for the object's fill region. Patterns are rendered in the two colors specified by Background Color and Foreground Color.
FONT_NAME The font family, or typeface, that should be used for text in the object. The list of fonts available is system-dependent.
FONT_SIZE The size of the font, specified in hundreds of points.
FONT_SPACING The width of the font, that is, the amount of space between characters (kerning).
FONT_STYLE The style of the font.
FONT_WEIGHT The weight of the font.
FOREGROUND_COLOR The color of the object's foreground region. For items, the Foreground Color attribute defines the color of text displayed in the item.
WHITE_ON_BLACK Specifies that the object is to appear on a monochrome bitmap display device as white text on a black background.
Specify the value to be applied to the given property. The data type of the property determines the data type of the value you enter. For instance, if you want to set the WHITE_ON_BLACK property to true, specify the constant PROPERTY_TRUE for the value. If you want to change the FONT_NAME for the item, specify the value, in other words, the label, as a VARCHAR2 string.
PROPERTY_TRUE Specifies that the property is to be set to the TRUE state.
PROPERTY_FALSE Specifies that the property is to be set to the FALSE state.
If you want to reset the value of the property to be the value originally established for it at design time, enter two single quotes with no space between: ''. For example, SET_ITEM_PROPERTY('DEPTNO', FONT_SIZE, ''); would reset that format size to its design-time value.


SET_VAR SET_VAR

All Built-ins

Description

Sets a newly-created OLE variant to its initial value. Or, resets an existing OLE variant to a new value.

There are four versions of the procedure, one for each of the new value types CHAR, NUMBER, OLEVAR, and table.

Syntax

PROCEDURE SET_VAR
(var OLEVAR, newval CHAR
vtype VT_TYPE, arrspec VARCHAR2);

...or...

PROCEDURE SET_VAR
(var OLEVAR, newval NUMBER
vtype VT_TYPE, arrspec VARCHAR2);

...or...

PROCEDURE SET_VAR
(var OLEVAR, newval OLEVAR
vtype VT_TYPE, arrspec VARCHAR2);

...or...

PROCEDURE SET_VAR
(var OLEVAR, source_table,
vtype VT_TYPE, arrspec VARCHAR2);

Built-in Type unrestricted procedure

Parameters

  • ar
The variant to be set.
newval
The value to be given to the variant.
  • type
The OLE VT_TYPE to be given to the variant.
This is an optional parameter. If not specified, the default value for the NUMBER version of the procedure is VT_R8. For the VARCHAR2 version, the default is VT_BSTR. For the OLEVAR version, the default is VT_VARIANT: that is, whatever type the variant value actually specifies .
source_table
A PL/SQL table whose dimensions and element values are to be given to the variant.
arrspec
Indicates which selected element or elements of the source table are to be used in the creation of the new variant. For more information, see Specifiers for OLE Arrays
This is an optional parameter. If not specified, the entire source table is used..
Usage Notes

The target variant in this SET_VAR procedure must first be created with the CREATE_VAR function.


SET_VIEW_PROPERTY built-in SET_VIEW_PROPERTY built-in

Related Topics
All Built-ins

Description

Sets a property for the indicated canvas. You can set only one property per call to the built-in. In other words, you cannot split the argument in such a way that the x coordinate applies to X_POS and the y coordinate applies to the HEIGHT.

Syntax

SET_VIEW_PROPERTY
(view_id ViewPort,
property
NUMBER,
value
NUMBER);

SET_VIEW_PROPERTY
(view_id ViewPort,
property
NUMBER,
x
NUMBER,
y
NUMBER);
SET_VIEW_PROPERTY
(view_name VARCHAR2,
property
NUMBER,
value
NUMBER);
SET_VIEW_PROPERTY
(view_name ViewPort,
property
NUMBER,
x
NUMBER,
y
NUMBER);

Built-in Type unrestricted procedure

Enter Query Mode yes

Parameters

  • iew_id The unique ID Form Builder assigned the view when you created the canvas/view. Use the FIND_VIEW built-in to return the ID to an appropriately typed variable. Datatype is VIEWPORT.

  • iew_name The name you gave the canvas object when you defined it. Datatype is VARCHAR2.

property Specifies one of the following properties:

DIRECTION The layout direction for bidirectional objects. Valid values are DIRECTION_DEFAULT, RIGHT_TO_LEFT, LEFT_TO_RIGHT.

DISPLAY_POSITION For a stacked view, the position of the view's upper-left corner relative to the window's content view, as an X, Y pair. Determines where the view is displayed in the window.

HEIGHT For a stacked canvas, the height of the view. To change the size of the canvas itself, use SET_CANVAS_PROPERTY.

POSITION_ON_CANVAS An X, Y pair indicating the location of the view's upper-left corner relative to its canvas.

VIEWPORT_X_POS For a stacked view, the X coordinate for the view's upper-left corner relative to the window's content view.

VIEWPORT_Y_POS For a stacked view, the Y coordinate for the view's upper-left corner relative to the window's content view.

VIEWPORT_X_POS_ON_CANVAS The X coordinate for the view's upper-left corner relative to its canvas.

VIEWPORT_Y_POS_ON_CANVAS The Y coordinate for the the view's upper-left corner relative to its canvas.

VIEW_SIZE For a stacked canvas, the size of the view, as a width, height pair. To change the size of the canvas itself, use SET_CANVAS_PROPERTY.

VISIBLE Whether the view is to be displayed. Valid values are PROPERTY_TRUE and PROPERTY_FALSE.

WIDTH For a stacked canvas, the width of the view. To change the size of the canvas itself, use SET_CANVAS_PROPERTY.

  • alue Specify the value appropriate to the property you are setting:

PROPERTY_TRUE The property is to be set to the TRUE state.

PROPERTY_FALSE The property is to be set to the FALSE state.

x The NUMBER value of the X coordinate or the width, depending on the property you specified. Specify the argument in form coordinate system units.

y The NUMBER value of the Y coordinate or the height, depending on the property you specified. Specify the argument in form coordinate system units.


SET_WINDOW_PROPERTY built-in SET_WINDOW_PROPERTY built-in

Examples Restrictions Related Topics
All Built-ins

Description

Sets a property for the indicated window.

Syntax

SET_WINDOW_PROPERTY
(window_id Window,
property
NUMBER,
value
NUMBER);

SET_WINDOW_PROPERTY
(window_id Window,
property
NUMBER,
x
NUMBER);
SET_WINDOW_PROPERTY
(window_id Window,
property
NUMBER,
x
NUMBER,
y
NUMBER);
SET_WINDOW_PROPERTY
(window_name VARCHAR2,
property
NUMBER,
value
NUMBER);
SET_WINDOW_PROPERTY
(window_name VARCHAR2,
property
NUMBER,
x
NUMBER);
SET_WINDOW_PROPERTY
(window_name VARCHAR2,
property
NUMBER,
x
NUMBER,
y
NUMBER);

Built-in Type unrestricted procedure

Enter Query Mode yes

Parameters

window_id Specifies the unique ID that Form Builder assigns the window when created. Use the FIND_WINDOW built-in to return the ID to an appropriately typed variable. The data type of the ID is Window.

window_name Specifies the name that you gave the window when creating it. The data type of the name is VARCHAR2.

property Specify one of the following window properties:

BACKGROUND_COLOR The color of the object's background region.

DIRECTION Specifies the layout direction for bidirectional objects. Valid values are DIRECTION_DEFAULT, RIGHT_TO_LEFT, LEFT_TO_RIGHT.

FILL_PATTERN The pattern to be used for the object's fill region. Patterns are rendered in the two colors specified by Background Color and Foreground Color.

FONT_NAME The font family, or typeface, that should be used for text in the object. The list of fonts available is system-dependent.

FONT_SIZE The size of the font, specified in points.

FONT_SPACING The width of the font, that is, the amount of space between characters (kerning).

FONT_STYLE The style of the font.

FONT_WEIGHT The weight of the font.

FOREGROUND_COLOR The color of the object's foreground region. For items, the Foreground Color attribute defines the color of text displayed in the item.

HEIGHT Specifies the height of the window.

HIDE_ON_EXIT Specifies whether Form Builder hides the current window automatically when the operator navigates to an item in another window. Valid values are PROPERTY_TRUE and PROPERTY_FALSE.

POSITION Specifies an x, y pair indicating the location for the window on the screen.

TITLE Sets the title of the window.

VISIBLE Specifies whether the window is to be displayed. Valid values are PROPERTY_TRUE and PROPERTY_FALSE.

WHITE_ON_BLACK Specifies that the object is to appear on a monochrome bitmap display device as white text on a black background.

WINDOW_SIZE Specifies a width, height pair indicating the size of the window on the screen.

WINDOW_STATE Specifies the current display state of the window. Valid values are NORMAL, MAXIMIZE, or MINIMIZE.

WIDTH Specifies the width of the window.

X_POS Sets the x coordinate for the window's upper left corner on the screen.

Y_POS Sets the y coordinate for the window's upper left corner on the screen.

  • alue The following constants can be passed as arguments to the property values described earlier:

PROPERTY_TRUE Specifies that the property is to be set to the TRUE state. This applies specifically to the VISIBLE property.

PROPERTY_FALSE Specifies that the property is to be set to the FALSE state. This applies specifically to the VISIBLE property.

The following constants can be passed as arguments for use with the WINDOW_STATE property:

NORMAL Specifies that the window is displayed normally according to the current Width, Height, X Position, and Y Position property settings.

MAXIMIZE Specifies that the window is enlarged to fill the screen according to the display style of the window manager.

MINIMIZE Specifies that the window is minimized, or iconified.

x Specifies the NUMBER value of the x coordinate or the width, depending on the property you specified. Specify the argument in form coordinate system units.

y Specifies the NUMBER value of the y coordinate or the height, depending on the property you specified. Specify the argument in form coordinate system units.

Usage Notes

On Microsoft Windows, forms run inside the MDI application window. You can use SET_WINDOW_PROPERTY to set the following properties of the MDI application window:

frm90000.gif TITLE

frm90000.gif POSITION

frm90000.gif WIDTH, HEIGHT

frm90000.gif WINDOW_SIZE

frm90000.gif WINDOW_STATE

frm90000.gif X_POS, Y_POS

To reference the MDI application window in a call to SET_WINDOW_PROPERTY, use the constant FORMS_MDI_WINDOW:

Set_Window_Property(FORMS_MDI_WINDOW, POSITION, 5,10)
Set_Window_Property(FORMS_MDI_WINDOW, WINDOW_STATE, MINIMIZE)


SET_WINDOW_PROPERTY restrictions SET_WINDOW_PROPERTY restrictions

frm90000.gif
If you change the size or position of a window, the change remains in effect for as long as the form is running, or until you explicitly change the window's size or position again. Closing the window and reopening it does not reset the window to its design-time defaults. You must assign the design-time defaults to variables if you intend to set the window back to those defaults.


SET_WINDOW_PROPERTY examples SET_WINDOW_PROPERTY examples

/*

  • Built-in: SET_WINDOW_PROPERTY
    ** Example: See FIND_WINDOW
    */


    SHOW_ALERT built-in
SHOW_ALERT built-in

Examples Related Topics
All Built-ins

Description

Displays the given alert, and returns a numeric value when the operator selects one of three alert buttons.

Syntax

SHOW_ALERT
(alert_id Alert);

SHOW_ALERT
(alert_name VARCHAR2);

Built-in Type unrestricted function

Returns A numeric constant corresponding to the button the operator selected from the alert. Button mappings are specified in the alert design.

If the operator selects...
Form Builder returns
Button 1
ALERT_BUTTON1
Button 2
ALERT_BUTTON2
Button 3
ALERT_BUTTON3

Enter Query Mode yes

Parameters

alert_id The unique ID that Form Builder assigns the alert when the alert is created. Use the FIND_ALERT built-in to return the ID to an appropriately typed variable. The data type of the ID is Alert.

alert_name The name you gave the alert when you defined it. The data type of the name is VARCHAR2.


SHOW_ALERT examples SHOW_ALERT examples

/*

  • Built-in: SHOW_ALERT
    ** Example: See FIND_ALERT and SET_ALERT_PROPERTY
    */


    SHOW_EDITOR built-in
SHOW_EDITOR built-in

Examples Restrictions Related Topics
All Built-ins

Description

Displays the given editor at the given coordinates and passes a string to the editor, or retrieves an existing string from the editor. If no coordinates are supplied, the editor is displayed in the default position specified for the editor at design time.

Syntax

SHOW_EDITOR
(editor_id Editor,
message_in
VARCHAR2,
message_out
VARCHAR2,
result
BOOLKAN);

SHOW_EDITOR
(editor_id Editor,
message_in
VARCHAR2,
x
NUMBER,
y
NUMBER,
message_out
VARCHAR2,
result
BOOLEAN);
SHOW_EDITOR
(editor_name VARCHAR2,
message_in
VARCHAR2,
message_out
VARCHAR2,
result
BOOLEAN);
SHOW_EDITOR
(editor_name VARCHAR2,
message_in
VARCHAR2,
x
NUMBER,
y
NUMBER,
message_out
VARCHAR2,
result
BOOLEAN);

Built-in Type unrestricted procedure that returns two OUT parameters (result and message_out)

Enter Query Mode yes

Parameters

editor_id Specifies the unique ID that Form Builder assigns when it creates the editor. Use the FIND_EDITOR built-in to return the ID to a variable of the appropriate data type. The data type of the ID is Editor.

editor_name Specifies the name you gave to the editor when you defined it. The data type of the name is VARCHAR2.

message_i Specifies a required IN parameter of VARCHAR2 data type. The value passed to this parameter can be NULL. You can also reference a text item or variable.

x Specifies the x coordinate of the editor. Supply a whole number for this argument.

y Specifies the y coordinate of the editor. Supply a whole number for this argument.

message_out Specifies a required OUT parameter of VARCHAR2 data type. You can also reference a text item or variable. If the operator cancels the editor, result is FALSE and message_out is NULL.

result Specifies a required OUT parameter of BOOLEAN data type. If the operator accepts the editor, result is TRUE. If the operator cancels the editor, result is FALSE and message_out is NULL.


SHOW_EDITOR restrictions SHOW_EDITOR restrictions

frm90000.gif
Message_out should be at least as long as message_in, because the length of the variable or text item specified for message_out determines the maximum number of characters the editor can accept.

frm90000.gif The message_in parameter values are always converted to VARCHAR2 by Form Builder when passed to the editor. However, if you are passing message_out to something other than a VARCHAR2 type object, you must first perform the conversion by passing the value to a variable and then perform type conversion on that variable with PL/SQL functions TO_DATE or TO_NUMBER.

frm90000.gif The Width must be at least wide enough to display the buttons at the bottom of the editor window.


SHOW_EDITOR examples SHOW_EDITOR examples

/*

  • Built-in: SHOW_EDITOR
    ** Example: Accept input from the operator in a user-defined
    ** editor. Use the system editor if the user has
    ** checked the "System_Editor" menu item under the
    ** "Preferences" menu in our custom menu module.
    */
    DECLARE
    ed_id Editor;
    mi_id MenuItem;
    ed_name VARCHAR2(40);
    val VARCHAR2(32000);
    ed_ok BOOLEAN;
    BEGIN
    mi_id := Find_Menu_Item('PREFERENCES.SYSTEM_EDITOR');
    IF Get_Menu_Item_Property(mi_id,CHECKED) = 'TRUE' THEN
    ed_name := 'system_editor';
    ELSE
    ed_name := 'my_editor1';
    END IF;

    ed_id := Find_Editor( ed_name );
    /*
    ** Show the appropriate editor at position (10,14) on the
    ** screen. Pass the contents of the :emp.comments item
    ** into the editor and reassign the edited contents if
    ** 'ed_ok' returns boolean TRUE.
    */
    val := :emp.comments;
    Show_Editor( ed_id, val, 10,14, val, ed_ok);
    IF ed_ok THEN
    :emp.comments := val;
    END IF;
    END;


    SHOW_KEYS built-in
SHOW_KEYS built-in

Examples Related Topics
All Built-ins

Description

Displays the Keys screen. When the operator presses a function key, Form Builder redisplays the form as it was before invoking the SHOW_KEYS built-in.

Syntax

SHOW_KEYS;

Built-in Type unrestricted procedure

Enter Query Mode yes

Parameters

none


SHOW_KEYS examples SHOW_KEYS examples

/*

  • Built-in: SHOW_KEYS
    ** Example: Display valid function key bindings
    */
    BEGIN
    Show_Keys;
    END;


    SHOW_LOV built-in
SHOW_LOV built-in

Examples Restrictions Related Topics
All Built-ins

Description

Displays a list of values (LOV) window at the given coordinates, and returns TRUE if the operator selects a value from the list, and FALSE if the operator Cancels and dismisses the list.

Syntax

SHOW_LOV
(lov_id LOV);

SHOW_LOV
(lov_id LOV,
x
NUMBER,
y
NUMBER);
SHOW_LOV
(lov_name VARCHAR2);
SHOW_LOV
(lov_name VARCHAR2,
x
NUMBER,
y
NUMBER);

Built-in Type unrestricted function

Returns BOOLEAN

Enter Query Mode yes

Parameters

lov_id Specifies the unique ID that Form Builder assigns the LOV when created. Use the FIND_LOV built-in to return the ID to an appropriately typed variable. The data type of the ID is LOV.

lov_name The name you gave to the LOV when you defined it. The data type of the name is VARCHAR2.

x Specifies the x coordinate of the LOV.

y Specifies the y coordinate of the LOV.

Usage Notes

When SHOW_LOV is used to display an LOV, Form Builder ignores the LOV's Automatic Skip property.

If you want to move the cursor to the next navigable item, use the LIST_VALUES built-in.


SHOW_LOV restrictions SHOW_LOV restrictions

If the lov_name argument is not supplied and there is no LOV associated with the current item, Form Builder issues an error.

If the record group underlying the LOV contains 0 records, the BOOLEAN return value for SHOW_LOV will be FALSE.


SHOW_LOV examples SHOW_LOV examples

/*

  • Built-in: SHOW_LOV
    ** Example: Display a named List of Values (LOV)
    */
    DECLARE
    a_value_chosen BOOLEAN;
    BEGIN
    a_value_chosen := Show_Lov('my_employee_status_lov');
    IF NOT a_value_chosen THEN
    Message('You have not selected a value.');
    Bell;
    RAISE Form_Trigger_Failure;
    END IF;
    END;


    SHOW_MENU built-in
SHOW_MENU built-in

Examples Restrictions
All Built-ins

Description

Displays the current menu if it is not currently displayed. It does not make the menu active.

Because SHOW_MENU does not make the menu active, Form Builder does not allow the menu to obscure any part of the current canvas. Therefore, all or part of the menu does not appear on the screen if the current canvas would cover it.

Syntax

SHOW_MENU;

Built-in Type unrestricted procedure

Enter Query Mode yes

Parameters

none


SHOW_MENU restrictions SHOW_MENU restrictions

Only for use in character mode environments.


SHOW_MENU examples SHOW_MENU examples

/*

  • Built-in: SHOW_MENU
    ** Example: Display the menu if no canvas overlays it.
    */
    BEGIN
    Show_Menu;
    END;


    SHOW_VIEW built-in
SHOW_VIEW built-in

Examples Related Topics
All Built-ins

Description

Displays the indicated canvas at the coordinates specified by the canvas's X Position and Y Position property settings. If the view is already displayed, SHOW_VIEW raises it in front of any other views in the same window.

Syntax

SHOW_VIEW
(view_id ViewPort);

SHOW_VIEW
(view_name VARCHAR2);

Built-in Type unrestricted procedure

Enter Query Mode yes

Parameters

  • iew_id Specifies the unique ID that Form Builder assigns the view when it creates the object. Use the FIND_VIEW built-in to return the ID to an appropriately typed variable. The data type of the ID is ViewPort.

  • iew_name Specifies the name that you gave the view when defining it. The data type of the name is VARCHAR2.


    SHOW_VIEW examples
SHOW_VIEW examples

/*

  • Built-in: SHOW_VIEW
    ** Example: Programmatically display a view in the window to
    ** which it was assigned at design time.
    */
    BEGIN
    Show_View('My_Stacked_Overlay');
    END;


    SHOW_WINDOW built-in
SHOW_WINDOW built-in

Examples Related Topics
All Built-ins

Description

Displays the indicated window at either the optionally included X,Y coordinates, or at the window's current X,Y coordinates. If the indicated window is a modal window, SHOW_WINDOW is executed as a GO_ITEM call to the first navigable item in the modal window.

Syntax

SHOW_WINDOW
(window_id Window);

SHOW_WINDOW
(window_id Window,
x
NUMBER,
y
NUMBER);
SHOW_WINDOW
(window_name VARCHAR2);
SHOW_WINDOW
(window_name VARCHAR2,
x
NUMBER,
y
NUMBER);

Built-in Type unrestricted procedure

Enter Query Mode yes

Parameters

window_id Specifies the unique ID that Form Builder assigns the window when created. Use the FIND_WINDOW built-in to return the ID to an appropriately typed variable. The data type of the ID is Window.

window_name Specifies the name that you gave the window when defining it. The data type of the name is VARCHAR2.

x Specifies the x coordinate of the window. Supply a whole number for this argument.

y Specifies the y coordinate of the window. Specify this value as a whole NUMBER.


SHOW_WINDOW examples SHOW_WINDOW examples

/*

  • Built-in: SHOW_WINDOW
    ** Example: Override the default (x,y) coordinates for a
    ** windows location while showing it.
    */
    BEGIN
    Show_Window('online_help',20,5);
    END;


    SYNCHRONIZE built-in
SYNCHRONIZE built-in

Examples Restrictions
All Built-ins

Description

Synchronizes the terminal screen with the internal state of the form. That is, SYNCHRONIZE updates the screen display to reflect the information that Form Builder has in its internal representation of the screen.

Syntax

SYNCHRONIZE;

Built-in Type unrestricted procedure

Enter Query Mode yes

Parameters

none


SYNCHRONIZE restrictions SYNCHRONIZE restrictions

SYNCHRONIZE only updates the screen display if both of the following conditions are true:

frm90000.gif Form Builder is at the item level in the forms hierarchy (i.e., SYSTEM.CURRENT_ITEM is not NULL).


SYNCHRONIZE examples SYNCHRONIZE examples

/*

  • Built-in: SYNCHRONIZE
    ** Example: Achieve an odometer effect by updating the
    ** screen as an items value changes quickly.
    ** Without synchronize, the screen is typically
    ** only updated when Form Builder completes all trigger
    ** execution and comes back for user input.
    */
    BEGIN
    FOR j IN 1..1000 LOOP
    :control.units_processed := j;
    SYNCHRONIZE;
    Process_Element(j);
    END LOOP;
    END;



    TERMINATE built-in
TERMINATE built-in

Restrictions
All Built-ins

Description

TERMINATE terminates input in a form or dialog box. This function is equivalent to the operator pressing [ACCEPT].

Syntax

TERMINATE;

Built-in Type restricted function

Parameters

none


TERMINATE restrictions TERMINATE restrictions

Terminate applies only in the Enter Parameter Values dialog.


TO_VARIANT built-in TO_VARIANT built-in

All Built-ins

Description

Creates an OLE variant and assigns it a value. There are four versions of the function.

Syntax

FUNCTION TO_VARIANT
(newval NUMBER,
vtype VT_TYPE
persistence BOOLEAN)
RETURN newvar OLEVAR;

...or...

FUNCTION TO_VARIANT
(newval VARCHAR2,
vtype VT_TYPE
persistence BOOLEAN)
RETURN newvar OLEVAR;

...or...

FUNCTION TO_VARIANT
(source_table,
vtype VT_TYPE
arrspec VARCHAR2, persistence BOOLEAN)
RETURN newvar OLEVAR;

...or...

FUNCTION TO_VARIANT
(var OLEVAR,
vtype VT_TYPE
arrspec VARCHAR2, persistence BOOLEAN)
RETURN newvar OLEVAR;

Built-in Type unrestricted function

Returns the newly-created OLE variant.

Parameters

newval
The value to be given to the newly-created OLE variant.
  • type
The OLE VT_TYPE to be given to the newly-created variant.
This is an optional parameter. If not specified, the default value for the NUMBER version of the function is VT_R8. For the VARCHAR2 version, the default is VT_BSTR. For the table version, the default is determined from the PL/SQL types of the table For the OLEVAR version, the default is the type of the source variant.
persistence
Controls the persistence of the variant after its creation. A boolean value of TRUE establishes the variant as persistent; a value of FALSE establishes the variant as non-persistent.
This is an optional parameter. If not specified, the default value is non-persistent.
source_table
An existing PL/SQL table that is used to establish the bounds and values of the newly-created variant table. The source table can be of any type.
arrspec
Indicates which selected element or elements of a source table are to be used in the creation of the new variant. The lower bound always starts at 1. For more information, see Specifiers for OLE Arrays.
This is an optional parameter. If not specified, the entire source table or source variant is used.
  • ar
An existing OLE variant whose value is to be given to the new variant. (This source variant may be a table.)
Usage Notes

  • This function first creates an empty variant and then gives it a value. It offers a combined version of the CREATE_VAR and SET_VAR operations.

  • This TO_VARIANT function can also be thought of as the inverse version of the VAR_TO_* function.

  • Note that the OLEVAR version of this function differs from the NUMBER, VARCHAR2, and table versions in that it uses an existing OLE variant as the source, rather than a PL/SQL equivalent value.


    UNSET_GROUP_SELECTION built-in
UNSET_GROUP_SELECTION built-in

Examples Related Topics
All Built-ins

Syntax

UNSET_GROUP_SELECTION
(recordgroup_id RecordGroup,
row_number
NUMBER);

UNSET_GROUP_SELECTION
(recordgroup_name VARCHAR2,
row_number
NUMBER);

Built-in Type unrestricted procedure

Enter Query Mode yes

Description

Unmarks the specified row in the indicated record group. Use the procedure to unmark rows that have been programmatically selected by a previous call to SET_GROUP_SELECTION.

Rows are numbered sequentially starting at 1. If you select rows 3, 8, and 12, for example, those rows are considered by Form Builder to be selections 1, 2, and 3. You can undo any row selections for the entire group by calling the RESET_GROUP_SELECTION built-in.

Parameters

recordgroup_id Specifies the unique ID that Form Builder assigns to the record group when created. Use the FIND_GROUP built-in to return the ID to a variable. The data type of the ID is RecordGroup.

recordgroup_name Specifies the name of the record group that you gave to the group when creating it. The data type of the name is VARCHAR2.

row_number Specifies the number of the record group row that you want to select. The value you specify is a NUMBER.


UNSET_GROUP_SELECTION examples UNSET_GROUP_SELECTION examples

/*

  • Built-in: UNSET_GROUP_SELECTION
    ** Example: Clear all of the even rows as selected in the
    ** record group whose id is passed-in as a
    ** parameter.
    */
    PROCEDURE Clear_Even_Rows ( rg_id RecordGroup ) IS
    BEGIN
    FOR j IN 1..Get_Group_Row_Count(rg_id) LOOP
    IF MOD(j,2)=0 THEN
    Unset_Group_Selection( rg_id, j );
    END IF;
    END LOOP;
    END;


    UP built-in
UP built-in

Related Topics
All Built-ins

Description

Navigates to the instance of the current item in the record with the next lowest sequence number.

Syntax

UP;

Built-in Type restricted procedure

Enter Query Mode no

Parameters

none


UPDATE_CHART built-in UPDATE_CHART built-in

All Built-ins

Description

A data block is updated whenever it is queried or when changes to it are committed. By default, when the block is updated, any charts based on the data block are automatically updated. You can use the UPDATE_CHART built-in to explicitly cause a chart item to be updated, even if the data block on which it is based has not been updated. For example, you may want update the chart to reflect uncommitted changes in the data block.

Syntax

PROCEDURE UPDATE_CHART
(chart_name VARCHAR2,
param_list_id
TOOLS.PARAMLIST
);

PROCEDURE UPDATE_CHART
(chart_name VARCHAR2,
param_list_name
VARCHAR2
);

PROCEDURE UPDATE_CHART
(chart_id FORMS4C.ITEM,
param_list_id
TOOLS.PARAMLIST
);

PROCEDURE UPDATE_CHART
(chart_id FORMS4C.ITEM,
param_list_name
VARCHAR2
);

PROCEDURE UPDATE_CHART
(chart_id FORMS4C.ITEM
);

PROCEDURE UPDATE_CHART
(chart_name VARCHAR2
);

Built-in Type unrestricted procedure

Enter Query Mode yes

Parameters

chart_id Specifies the unique ID of the chart.

chart_name Specifies the unique name of the chart.

param_list_id Specifies the unique ID of the chart parameter list.

param_list_name Specifies the unique name of the chart parameter list.


UPDATE_RECORD built-in UPDATE_RECORD built-in

Restrictions
All Built-ins

Description

When called from an On-Update trigger, initiates the default Form Builder processing for updating a record in the database during the Post and Commit Transaction process.

This built-in is included primarily for applications that run against a non-ORACLE data source.

Syntax

UPDATE RECORD;

Built-in Type restricted procedure

Enter Query Mode no

Parameters

none


UPDATE_RECORD restrictions UPDATE_RECORD restrictions

Valid only in an On-Update trigger.


USER_EXIT built-in USER_EXIT built-in

Examples Related Topics
All Built-ins

Description

Calls the user exit named in the user_exit_string.

Syntax

USER_EXIT
(user_exit_string VARCHAR2);

USER_EXIT
(user_exit_string VARCHAR2,
error_string
VARCHAR2);

Built-in Type unrestricted procedure

Enter Query Mode yes

Parameters

user_exit_string Specifies the name of the user exit you want to call, including any parameters.

error_string Specifies a user-defined error message that Form Builder should display if the user exit fails.


USER_EXIT examples USER_EXIT examples

/*

  • Built-in: USER_EXIT
    ** Example: Invoke a 3GL program by name which has been
    ** properly linked into your current Form Builder
    ** executable. The user exit subprogram must parse
    ** the string argument it is passed to decide what
    ** functionality to perform.
    */
    PROCEDURE Command_Robotic_Arm( cmd_string VARCHAR2 ) IS
    BEGIN
    /*
    ** Call a C function 'RobotLnk' to initialize the
    ** communication card before sending the robot a message.
    */
    User_Exit('RobotLnk INITIALIZE Unit=6,CmdToFollow=1');
    IF NOT Form_Success THEN
    Message('Failed to initialize Robot 6');
    RAISE Form_Trigger_Failure;
    END IF;
    /*
    ** Pass the string argument as a command to the robot
    */
    User_Exit('RobotLnk SEND Unit=6,Msg='||cmd_string );
    IF NOT Form_Success THEN
    Message('Command not understood by Robot 6');
    RAISE Form_Trigger_Failure;
    END IF;
    /*
    ** Close the robot's communication channel
    */
    User_Exit('RobotLnk DEACTIVATE Unit=6');
    IF NOT Form_Success THEN
    Message('Failed to Deactivate Robot');
    RAISE Form_Trigger_Failure;
    END IF;

    /*
    ** The user exit will deposit a timing code into the item
    ** called 'CONTROL.ROBOT_STATUS'.
    */
    Message('Command Successfully Completed by Robot 6'||
    ' in '||TO_CHAR(:control.robot_timing)||
    ' seconds.');
    END;


    VALIDATE built-in
VALIDATE built-in

Examples Related Topics
All Built-ins

Description

VALIDATE forces Form Builder to immediately execute validation processing for the indicated validation scope.

Syntax

VALIDATE
(validation_scope NUMBER);

Built-in Type:

unrestricted procedure

Enter Query Mode yes

Parameters

  • alidation scope Specify one of the following scopes:

DEFAULT_SCOPE Perform normal validation for the default scope, determined by the runtime platform.

Note: If you change the scope via SET_FORM_PROPERTY(VALIDATION UNIT) and then call VALIDATE(DEFAULT_SCOPE), you will override the default scope as defined in the form module. In this case, Form Builder will not validate at the default scope but at the scope defined by SET_FORM_PROPERTY.

FORM_SCOPE Perform normal validation for the current form.

BLOCK_SCOPE Perform normal validation for the current block.

RECORD_SCOPE Perform normal validation for the current record.

ITEM_SCOPE Perform normal validation for the current item.

Note on runtime behavior

If an invalid field is detected when validation is performed, the cursor does not move to that field. Instead, the cursor remains in its previous position.


VALIDATE examples VALIDATE examples

/*

  • Built-in: VALIDATE
    ** Example: Deposits the primary key value, which the user
    ** has typed, into a global variable, and then
    ** validates the current block.
    ** Trigger: When-New-Item-Instance
    */
    BEGIN
    IF :Emp.Empno IS NOT NULL THEN
    :Global.Employee_Id := :Emp.Empno;
    Validate(block_scope);
    IF NOT Form_Success THEN
    RAISE Form_Trigger_Failure;
    END IF;
    Execute_Query;
    END IF;
    END;


    VARPTR_TO_VAR
VARPTR_TO_VAR

All Built-ins

Description

Changes a variant pointer into a simple variant.

Syntax

FUNCTION VARPTR_TO_VAR
(variant OLEVAR, vtype VT_TYPE)
RETURN changed OLEVAR;

Built-in Type unrestricted function

Returns the transformed variant.

Parameters

  • ariant
The OLE variant pointer to be changed into a variant.
  • type
The OLE VT_TYPE to be given to the transformed variant.
This is an optional parameter. If not specified, the default value is VT_VARIANT.
Usage Notes

  • This function removes VT_BYREF typing from the variant.

  • If the variant's type was not VT_BYREF, the variant is assumed to hold an address to the type specified in the vtype, and is de-referenced accordingly.

  • If the pointer was NULL or the variant was of type VT_NULL, then VT_EMPTY is returned.


    VAR_TO_TABLE
VAR_TO_TABLE

All Built-ins

Description

Reads an OLE array variant and populates a PL/SQL table from it.

Syntax

PROCEDURE VAR_TO_TABLE
(var OLEVAR,
target_table,
arrspec VARCHAR2);

Built-in Type unrestricted procedure

Parameters

  • ar
The OLE variant that is the source array.
target_table
The PL/SQL table to be populated.
arrspec
Indicates which rows, columns, or elements of the source array are to be used. See Specifiers for OLE Arrays for more information.
This is an optional parameter. If not specified, all elements in the source array are used.
Usage Notes

For similar operations on other data types, use the function VAR_TO_type .


VAR_TO_type VAR_TO_<type>

All Built-ins

Description

Reads an OLE variant and transforms its value into an equivalent PL/SQL type.

There are three versions of the function (denoted by the value in type), one for each for of the types CHAR, NUMBER, and OBJ.

Syntax

FUNCTION VAR_TO_CHAR
(var OLEVAR, arrspec VARCHAR2)
RETURN retval VARCHAR2;

...or...

FUNCTION VAR_TO_NUMBER
(var OLEVAR, arrspec VARCHAR2)
RETURN retval NUMBER;

...or...

FUNCTION VAR_TO_OBJ
(var OLEVAR, arrspec VARCHAR2)
RETURN retval OLEOBJ;

Built-in Type unrestricted function

Returns The variant with its value changed into an equivalent PL/SQL-type. Note that the type of the return depends on the version of the function chosen.

Parameters

  • ar
The OLE variant to be read.
arrspec
This parameter is used only if the OLE variant is an array. It indicates which element of the array is to be read and returned.
See Specifiers for OLE Arrays for more information.
Usage Notes

  • To return a table, use the procedure VAR_TO_TABLE .

  • In the VAR_TO_OBJ version of this function, the returned object is local (non-persistent).


    VAR_TO_VARPTR
VAR_TO_VARPTR

All Built-ins

Description

Creates an OLE variant that points to an existing variant.

Syntax

FUNCTION VAR_TO_VARPTR
(variant OLEVAR, vtype VT_TYPE)
RETURN newpointer OLEVAR;

Built-in Type unrestricted function

Returns the created variant

Parameters

  • ariant
The existing OLE variant to be pointed to.
  • type
The type to be assigned to the created OLE variant.
Permissible types are VT_BYREF, VT_PTR, and VT_NULL.
This is an optional parameter. If not specified, the default value is VT_BYREF.
Usage Notes

  • If the variant to be pointed to is of type VT_EMPTY, then the created pointer will be of type VT_NULL, regardless of the vtype specification in the function.

  • If vtype is specified as VT_BYREF, or defaults to VT_BYREF, then the created pointer will be of type VT_BYREF plus the source variant's type.

  • If the vtype does not have a VT_BYREF in it, then the created pointer will be of type VT_PTR, and it will point to the content within the variant.


    VBX.FIRE_EVENT
VBX.FIRE_EVENT

Examples Restrictions Related Topics
All Built-ins

Description

Raises an event for the VBX control.

Syntax

VBX.FIRE_EVENT
(item_id ITEM,
event_name
VARCHAR2,
paramlist_id
PARAMLIST);

VBX.FIRE_EVENT
(item_id ITEM,
event_name
VARCHAR2,
paramlist_name
VARCHAR2);
VBX.FIRE_EVENT
(item_name VARCHAR2,
event_name
VARCHAR2,
paramlist_id
PARAMLIST);
VBX.FIRE_EVENT
(item_name VARCHAR2,
event_name
VARCHAR2,
paramlist_name
VARCHAR2);

Built-in Type unrestricted procedure

Enter Query Mode yes

Parameters

item_id Specifies the unique ID that Form Builder assigns to the item when created. Use the FIND_ITEM built-in to return the ID to an appropriately typed variable. The data type of the ID is ITEM.

item_name Specifies the name of the object created at design time. The data type of the name is VARCHAR2 string.

event_name Specifies the name of a VBX event sent to the VBX control. The data type of the name is VARCHAR2 string.

paramlist_id Specifies the unique ID Form Builder assigns when a parameter list is created. The data type of the ID is PARAMLIST.

paramlist_name The name you give the parameter list object when it is defined. The data type of the name is VARCHAR2 string.


VBX.FIRE_EVENT restrictions VBX.FIRE_EVENT restrictions

Valid only on Microsoft Windows.


VBX.FIRE_EVENT examples VBX.FIRE_EVENT examples

/*

  • Built-in: VBX.FIRE_EVENT
    ** Example: The VBX.FIRE_EVENT built-in triggers a SpinDown
    ** event for the SpinButton VBX control.
    ** Trigger: When-Button-Pressed
    */
    DECLARE
    ItemName VARCHAR2(40) := 'SPINBUTTON';
    PL_ID PARAMLIST;
    PL_NAME VARCHAR2(20) := 'EName';
    BEGIN
    PL_ID := Get_Parameter_List(PL_NAME);
    IF id_null(PL_ID) THEN
    PL_ID := Create_Parameter_List(PL_NAME);
    END IF;
    VBX.FIRE_EVENT(ItemName,'SpinDown',PL_ID);
    END;


    VBX.GET_PROPERTY
VBX.GET_PROPERTY

Examples Restrictions Related Topics
All Built-ins

Description

Obtains the value of a property from a VBX control.

Syntax

VBX.GET_PROPERTY
(item_id ITEM,
property
VARCHAR2);

VBX.GET_PROPERTY
(item_name VARCHAR2,
property
VARCHAR2);

Built-in Type unrestricted function

Returns VARCHAR2

Enter Query Mode yes

Parameters

item_id Specifies the unique ID that Form Builder assigns to the item when created. Use the FIND_ITEM built-in to return the ID to an appropriately typed variable. The data type of the ID is ITEM.

item_name Specifies the name of the object created at design time. The data type of the name is VARCHAR2 string.

property Specifies a property or an element of a property array for a VBX control. A set of VBX properties exists for any given VBX control. Examples of VBX properties are Width, Height, and FontSize. The data type of property is a VARCHAR2 string.


VBX.GET_PROPERTY restrictions VBX.GET_PROPERTY restrictions

Valid only on Microsoft Windows.


VBX.GET_PROPERTY examples VBX.GET_PROPERTY examples

/*

  • Built-in: VBX.GET_PROPERTY
    ** Example: Uses the VBX.GET_PROPERTY built-in to obtain the
    ** CURRTAB property of the VBX item named TABCONTROL.
    ** The property value of CURRTAB is returned to the
    ** TabNumber variable and is used as input in the
    ** user-defined Goto_Tab_Page subprogram.
    ** Trigger: When-Custom-Item-Event
    */
    DECLARE
    TabEvent varchar2(80);
    TabNumber char;
    BEGIN
    TabEvent := :system.custom_item_event;
    IF (UPPER(TabEvent) = 'CLICK') then
    TabNumber := VBX.Get_Property('TABCONTROL','CurrTab');
    Goto_Tab_Page(TO_NUMBER(TabNumber));
    END IF;
    END;


    VBX.GET_VALUE_PROPERTY
VBX.GET_VALUE_PROPERTY

Examples Restrictions Related Topics
All Built-ins

Description

Gets the VBX Control Value Property of a VBX control.

Syntax

VBX.GET_VALUE_PROPERTY
(item_id ITEM);

VBX.GET_VALUE_PROPERTY
(item_name VARCHAR2);

Built-in Type unrestricted function

Returns property

Enter Query Mode yes

Parameters

item_id Specifies the unique ID that Form Builder assigns to the item when created. Use the FIND_ITEM built-in to return the ID to an appropriately typed variable. The data type of the ID is ITEM.

item_name Specifies the name of the object created at design time. The data type of the name is VARCHAR2 string.


VBX.GET_VALUE_PROPERTY restrictions VBX.GET_VALUE_PROPERTY restrictions

Valid only on Microsoft Windows.


VBX.GET_VALUE_PROPERTY examples VBX.GET_VALUE_PROPERTY examples

/*

  • Built-in: VBX.GET_VALUE_PROPERTY
    ** Example: Passes the VBX Control Value to the user-defined
    ** Verify_Item_Value subprogram. Verify_Item_Value
    ** ensures the display value is the expected value.
    */
    DECLARE
    ItemName VARCHAR2(40) := 'SPINBUTTON';
    VBX_VAL_PROP VARCHAR2(40);
    BEGIN
    VBX_VAL_PROP := VBX.Get_Value_Property(ItemName);
    Verify_Item_Value(VBX_VAL_PROP);
    END;


    VBX.INVOKE_METHOD
VBX.INVOKE_METHOD

Examples Restrictions Related Topics
All Built-ins

Syntax

VBX.INVOKE_METHOD(item_id, method_name, w, x, y, z);

VBX.INVOKE_METHOD(item_name, method_name, w, x, y, z);

Built-in Type:

unrestricted procedure

Enter Query Mode yes

Description

Invokes the specified method on the item. If the method takes arguments, they should be specified. The arguments should be provided in the order that the VBX control expects them. The methods that are valid for VBX controls and a listing of the arguments they expect can be found in the moduleation that accompanies the VBX control.

Parameters

item_id Specifies the unique ID that Form Builder assigns to the item when created. Use the FIND_ITEM built-in to return the ID to an appropriately typed variable. The data type of the ID is ITEM.

item_name Specifies the name of the object created at design time. The data type of the name is VARCHAR2 string.

method_name Specifies the name of the method to invoke. The data type of the name is VARCHAR2 string.

w, x, y, z Specifies optional arguments that might be required for VBX controls. The data type of the arguments is VARCHAR2 string.


VBX.INVOKE_METHOD restrictions VBX.INVOKE_METHOD restrictions

Valid only on Microsoft Windows.


VBX.INVOKE_METHOD examples VBX.INVOKE_METHOD examples

/*

  • Built-in: VBX.INVOKE_METHOD_PROPERTY
    ** Example: Adds an entry to a combobox. The entry to
    ** add to the combobox is the first optional argument.
    ** The position where the entry appears is the second
    ** optional argument.
    */
    DECLARE
    ItemName VARCHAR2(40) := 'COMBOBOX';
    BEGIN
    VBX.Invoke_Method(ItemName,'ADDITEM','blue','2');
    END;


    VBX.SET_PROPERTY
VBX.SET_PROPERTY

Examples Restrictions Related Topics
All Built-ins

Description

Sets the specified property for a VBX control.

Syntax

VBX.SET_PROPERTY
(item_id ITEM,
property
VARCHAR2,
value
VARCHAR2);

VBX.SET_PROPERTY
(item_name VARCHAR2,
property
VARCHAR2,
value
VARCHAR2);

Built-in Type:

unrestricted procedure

Enter Query Mode yes

Parameters

item_id Specifies the unique ID that Form Builder assigns to the item when created. Use the FIND_ITEM built-in to return the ID to an appropriately typed variable. The data type of the ID is ITEM.

item_name Specifies the name of the object created at design time. The data type of the name is VARCHAR2 string.

property Specifies a property or an element of a property array for a VBX control. A set of VBX properties exists for any given VBX control. Examples of VBX properties are Width, Height, and FontSize. The data type of property is a VARCHAR2 string.

  • alue Specifies the value to be applied to the VBX property. The data type of value is a VARCHAR2 string.


    VBX.SET_PROPERTY restrictions
VBX.SET_PROPERTY restrictions

Valid only on Microsoft Windows.


VBX.SET_PROPERTY examples VBX.SET_PROPERTY examples

/*

  • Built-in: VBX.SET_PROPERTY
    ** Example: Uses the VBX.SET_PROPERTY built-in to set the Index
    ** property of the SpinButton VBX control.
    ** Trigger: When-Button-Pressed
    */
    DECLARE
    ItemName VARCHAR2(40) := 'SPINBUTTON';
    VBX_VAL_PROP VARCHAR2(40);
    VBX_VAL VARCHAR2(40);
    BEGIN
    IF :System.Custom_Item_Event = 'SpinDown' THEN
    VBX_VAL_PROP := 'Index';
    VBX_VAL := '5';
    VBX.Set_Property(ItemName,VBX_VAL_PROP,VBX_VAL);
    END IF;
    END;


    VBX.SET_VALUE_PROPERTY
VBX.SET_VALUE_PROPERTY

Examples Restrictions Related Topics
All Built-ins

Description

Sets the VBX Control Value Property of a VBX control.

Syntax

VBX.SET_VALUE_PROPERTY
(item_id ITEM,
property
VARCHAR2);

VBX.SET_VALUE_PROPERTY
(item_name VARCHAR2,
property
VARCHAR2);

Built-in Type unrestricted procedure

Enter Query Mode yes

Parameters

item_id Specifies the unique ID that Form Builder assigns to the item when created. Use the FIND_ITEM built-in to return the ID to an appropriately typed variable. The data type of the ID is ITEM.

item_name Specifies the name of the object created at design time. The data type of the name is VARCHAR2 string.

property Specifies a property for the Form Builder VBX Control Value Property. A set of VBX properties exists for any given VBX control. Examples of VBX properties are Width, Height, and FontSize. The data type of property is a VARCHAR2 string.


VBX.SET_VALUE_PROPERTY restrictions VBX.SET_VALUE_PROPERTY restrictions

Valid only on Microsoft Windows.


VBX.SET_VALUE_PROPERTY examples VBX.SET_VALUE_PROPERTY examples

/*

  • Built-in: VBX.SET_VALUE_PROPERTY
    ** Example: Uses the VBX.SET_VALUE_PROPERTY built-in to set the
    ** VBX Control Value property.
    */
    DECLARE
    ItemName VARCHAR2(40) := 'SPINBUTTON';
    VBX_VAL_PROP VARCHAR2(40);
    BEGIN
    IF :System.Custom_Item_Event = 'SpinDown' THEN
    VBX_VAL_PROP := 'Index';
    VBX.Set_Value_Property(ItemName,VBX_VAL_PROP);
    END IF;
    END;


    WEB.SHOW_DOCUMENT
WEB.SHOW_DOCUMENT built-in

All Built-ins

Syntax:

SHOW_DOCUMENT(url, target);

Built-in Type: unrestricted procedure

Enter Query Mode: yes

Description:

Specifies the URL and target window of a Web application.

Parameters:

url Datatype is VARCHAR2. Specifies the Uniform Resource Locator of the document to be loaded.

target Datatype is VARCHAR2. Specifies one of the following targets:

_SELF Causes the document to load into the same frame or window as the source document.

_PARENT Causes the target document to load into the parent window or frameset containing the hypertext reference. If the reference is in a window or top-level frame, it is equivalent to the target _self.

_TOP Causes the document to load into the window containing the hypertext link, replacing any frames currently displayed in the window.

_BLANK Causes the document to load into a new, unnamed top-level window.

Restrictions:

none

Example:

/*

  • Built-in: WEB.SHOW_DOCUMENT
    ** Example: Display the specified URL in the target window.
    */
    BEGIN
    Web.Show_Document(‘www.abc.com’, ‘_self’);
    END;


    WHERE_DISPLAY built-in
WHERE_DISPLAY built-in

Restrictions
All Built-ins

Description

Toggles the Where menu navigation option on and off. In a full-screen menu, the Where option displays information about the operator's current location in the menu hierarchy.

Syntax

WHERE_DISPLAY;

Built-in Type:

unrestricted procedure

Enter Query Mode yes

Parameters

none


WHERE_DISPLAY restrictions WHERE_DISPLAY restrictions

WHERE_DISPLAY is valid only in a full-screen menu.


WRITE_IMAGE_FILE built-in WRITE_IMAGE_FILE built-in

Examples Restrictions Related Topics
All Built-ins

Description

Writes the image from a Form Builder image item into the specified file.

Syntax

WRITE_IMAGE_FILE
(file_name VARCHAR2,
file_type
VARCHAR2,
item_id
ITEM,
compression_quality NUMBER,
image_depth NUMBER);

WRITE_IMAGE_FILE
(file_name VARCHAR2,
file_type
VARCHAR2,
item_name
VARCHAR2,
compression_quality NUMBER,
image_depth NUMBER);

Built-in Type unrestricted procedure

Enter Query Mode yes

Parameters

file_name The name of the file where the image is stored. The file name must adhere to your operating system requirements.

file_type The file type of the image: BMP, CALS, GIF, JFIF, PICT, RAS, TIFF, or TPIC. The parameter takes a VARCHAR2 argument.

item_id The unique ID Form Builder assigned to the image item when you created it. Use the FIND_ITEM built-in to return the ID to an appropriately typed variable. Datatype is ITEM.

item_name The name you gave the image item when you defined it. Datatype is VARCHAR2.

compression_quality The degree of compression Form Builder will apply to the image when it stores it to the file (optional). Datatype is VARCHAR2. Valid values are:NO_COMPRESSIONMINIMIZE_COMPRESSIONLOW_COMPRESSIONMEDIUM_COMPRESSIONHIGH_COMPRESSIONMAXIMIZE_COMPRESSION

image_depth The degree of depth Form Builder will apply to the image when it stores it to the file (optional). Datatype is VARCHAR2. Valid values are:ORIGINAL_DEPTHMONOCHROMEGRAYSCALELUT (Lookup Table)RGB (Red, Green, Blue)


WRITE_IMAGE_FILE restrictions WRITE_IMAGE_FILE restrictions

frm90000.gif
The indicated file type must be compatible with the actual file type of the image.

frm90000.gif As with any file, if you write the image to an existing file, you overwrite the contents of that file with the contents of the image item.

frm90000.gif Though you can read PCD and PCX files from the filesystem or the database, you cannot write image files to the filesystem in PCD or PCX format (using WRITE_IMAGE_FILE). (If you use a restricted file type when writing images to the filesystem, Form Builder defaults the image file to TIFF format.)

frm90000.gif Writing a JPEG file from a Form Builder image item will result in loss of resolution.


WRITE_IMAGE_FILE examples WRITE_IMAGE_FILE examples

/* Built-in: WRITE_IMAGE_FILE


  • ** Save the contents of an image item out to a file
    ** on the filesystem in a supported image format.
    */
    BEGIN
    WRITE_IMAGE_FILE('output.tif',
    'TIFF',
    'emp.photo_image_data',
    maximize_compression,
    original_depth);
    END;


    WRITE_SOUND_FILE built-in
WRITE_SOUND_FILE built-in

Restrictions Related Topics
All Built-ins

Description

Writes sound data from the specified sound item to the specified file.

Syntax

WRITE_SOUND_FILE(file_name VARCHAR2,
file_type VARCHAR2,
item_id ITEM,
compression NUMBER,
sound_quality NUMBER,
channels NUMBER);

WRITE_SOUND_FILE(file_name VARCHAR2,
file_type VARCHAR2,
item_name VARCHAR2,
compression NUMBER,
sound_quality NUMBER,
channels NUMBER);

Built-in Type unrestricted

Enter Query Mode Yes

Parameters:

file_name The fully-qualified file name of the file to which you wish to write sound data.

file_type The file type for the sound data file. Valid values are: AU, AIFF, AIFF-C, and WAVE. Note: File type is optional, but should be specified if known for increased performance. If omitted, Form Builder applies a default file type: WAVE (Microsoft Windows), AIFF-C (Macintosh), or AU (all others).

item_id The unique ID Form Builder gave the sound item when you created it.

item_name The name you gave the sound item when you created it.

compression Whether the sound data should be compressed before Form Builder writes the data to the file. Possible values are COMPRESSION_ON, COMPRESSION_OFF, and ORIGINAL_SETTING (retain the default compression setting of the data). Compression is optional: the default value, if omitted, is ORIGINAL_SETTING.

sound_quality The quality of data sampling rate and depth for the sound data. Possible values are: HIGHEST_SOUND_QUALITY, HIGH_SOUND_QUALITY, MEDIUM_SOUND_QUALITY, LOW_SOUND_QUALITY, LOWEST_SOUND_QUALITY, and ORIGINAL_QUALITY. Sound quality is optional: the default value, if omitted, is ORIGINAL_QUALITY.

channels Whether Form Builder should write the sound data to the file as monophonic or stereophonic. Valid values are MONOPHONIC, STEREOPHONIC, and ORIGINAL_SETTING (retain the default channel setting of the data). Channels is optional: the default value, if omitted, is ORIGINAL_SETTING.


WRITE_SOUND_FILE restrictions WRITE_SOUND_FILE restrictions

frm90000.gif
To use the PLAY_SOUND, READ_SOUND_FILE and WRITE_SOUND_FILE built-ins to play and/or record sound data in a file, you must create a sound item and place focus in that item before the call to the built-ins are executed. Although the sound item will be represented by the sound item control at design-time, the control will not function for end users at runtime. Therefore, you must "hide" the sound item behind another object on the canvas so users will not see the control at runtime. (To place focus in an item, it cannot be assigned to a null canvas or have its Displayed property set to No.) For example, to call the READ_SOUND_FILE and PLAY_SOUND built-ins from a When-Button-Pressed trigger, place focus in the "hidden" sound item by including a call to the built-in procedure GO_ITEM in the trigger code prior to calling READ_SOUND_FILE and PLAY_SOUND.




What are calculated items? What are calculated items?

Related Topics

Calculated items are items to which you declaratively assign values based on calculations involving one or more variable values. An example of a calculated item is a running total of employees' compensation, which changes any time a component value of the total (a single employee's salary, bonus, etc.) changes.

Valid Item Types A calculated item must be capable of storing a value. You can define any of the following item types as a calculated item:

  • check box

  • display item

  • list item

  • radio group

  • text item

  • VBX control


    Guidelines for working with calculated items
Guidelines for working with calculated items

Related Topics

  • Calculated items are display-only control items.

  • Calculated items cannot be database items.

  • While you can set a calculated item's Enabled, Mouse Navigate, and Keyboard Navigable properties to Yes, you cannot set the Insert Allowed or Update Allowed properties to Yes.


    About calculation modes
About calculation modes

Related Topics

The value of a calculated item is based on a calculation. To define the calculation, you first must specify a calculation mode—Summary or Formula:

  • Summary—the calculated item's value is the summary of all values of a single item in a single block

  • Formula—the calculated item's value is the result of a formula that performs calculations involving one or more values


    About summary calculation
About summary calculation

Related Topics

A summary calculation for a calculated item consists of a single computation performed on all records of a single item in a single data block.

When working with summary calculations, draw a distinction between two similar terms:

  • The summary item is the calculated item to which you will assign a value. It must reside either in a control block with the Single Record property set to Yes, or in the same block as the summarized item.

  • The summarized item's values are summarized (i.e., averaged, summed up, etc.) and then assigned to the summary item. The summarized item must reside in a data block with the Query All Records or Precompute Summaries property set to Yes, or in a control block.

Null Value If the summarized item's block is empty—or if each instance of the item has a null value—then the item's value is null, unless its Summary Function property is set to Count, in which case the item's value is zero. For purposes of computing summary items, a block is treated as empty while it is in Enter-Query mode, and while it is being selected into (up to but not including the firing of an ON_CLOSE trigger), unless the block's Precompute Summaries property is set to Yes.

Valid Datatypes You must set the Data Type property of a summary item to Number, unless the item's Summary Type property is Max or Min, in which case the datatype must mirror that of its associated summarized item. For example, a calculated item that displays the most recent (i.e., maximum) date in the HIRE_DATE column must have a datatype of Date.


About formula calculation About formula calculation

Related Topics

A formula calculation assigns a value to a calculated item by performing calculations involving one or more bind variables or constants. Bind variables include form items, parameters, global variables, and system variables.

Calculation Expression To define the calculation that will assign values to a formula item, you must provide a single PL/SQL expression in the item's Formula property. The expression you write can reference built-in or user-written subprograms.

You cannot enter an entire PL/SQL statement in the Formula property field. Form Builder adds the actual assignment code to the formula internally, so do not add the code yourself or terminate your calculation expression with a semicolon. For example, if you set the Formula property to the expression:

:emp.sal + :emp.comm

Form Builder will internally convert this into a complete statement:

:emp.gross_comp := (:emp.sal + :emp.comm);

Null Value The value of a formula item is NULL if (1) an end user has not navigated to the item's block, and no item in the formula item's block has been assigned a value by a PL/SQL statement, or (2) the formula item's block is in Enter-Query mode.


About recalculation of calculated items About recalculation of calculated items

Related Topics

Form Builder automatically marks a calculated item for recalculation whenever the value of a bind variable involved in the calculation is modified in any way.

Note that actual recalculation doesn't happen immediately. It occurs sometime after the item is marked but before the new value of the calculated item is referenced or displayed to the end user. Your application's logic should not depend on recalculation of a calculated item occurring at a specific time.

Record Status Recalculation does not change the status of a calculated item's record, even if the status is NEW.


About summary item recalculation About summary item recalculation

Related Topics

Form builder marks a summary item for recalculation whenever a value of its summarized item is inserted, modified, or deleted in any row of its block.


About formula item recalculation About formula item recalculation

Related Topics

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 Form Builder 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, Form Builder 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 Form Builder (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 Form Builder cannot guarantee precisely when A and B will be recalculated).


Creating a calculated item Creating a calculated item

Next Step Examples Restrictions Related Topics

To create a calculated item:

  1. In the Object Navigator, create a new interface item (make sure it is a control item).

Tip: The item's datatype must be compatible with the calculation you wish to use to compute the item's value. For example, if you wish to compute an item's value with the Sum function, create an interface item of datatype Number.

  1. Double-click the item's object icon to display the Property Palette.

  2. Under the Calculation node, set the item's Calculation Mode property to Formula or Summary.

  3. If you set Calculation Mode to:

frm90000.gif Formula, click on the Formula property, click the More button to display the Formula dialog, and type a PL/SQL expression to define the formula. Click OK to compile the expression.

frm90000.gif Summary, use the Summary Function poplist to select a summary type, then use the Summarized Block and Summarized Item poplists to select the block and item whose values will be summarized to compute a value for the calculated item.


Creating a calculated item restrictions Creating a calculated item restrictions

  • The following item properties are defaulted to No at compilation time: Database Item, Insert Allowed, Primary Key, Query Allowed, Required, Update Allowed, and Update Only if NULL.

  • The following item properties are ignored at compilation time: Copy Value from Item, Initial Value, Highest Allowed Value, and Lowest Allowed Value.

  • You cannot use PL/SQL to directly assign a value to a calculated item.

  • End users cannot insert or modify a calculated item.

  • A calculated item cannot be an LOV return item.

  • A calculated item cannot be a master or subordinate mirror item.

  • If the value of a formula item in a master block depends on values of detail block items—and more than one row of the master block is displayed—then values of the calculated item for non-current master-block rows are meaningless.

  • A formula (and all user-written subprograms called by the formula) cannot reference a restricted built-in subprogram.

  • A formula (and all user-written subprograms called by the formula) cannot execute DML statements.

  • You cannot create any circular dependencies among a form's calculated items.

  • You cannot use a When-Validate-Item trigger in conjunction with a calculated item. Since a calculated item is by definition a valid item, this trigger event never will occur.


    Creating a calculated item examples
Creating a calculated item examples

Example

/* Example 1: Define a summary calculation to display the

  • maximum salary of all employees. Create display item MAX_SAL
    ** in the EMP block, set its Calculation Mode property to
    ** Summary, set its Summary Function property to Max, set its
    ** Summarized Block property to EMP, and set its Summarized
    ** Item property to SAL.
    **
    ** Example 2: Define a formula calculation to compute an
    ** employee's gross total compensation. Create display item
    ** TOTAL_COMP in the EMP block, set its Calculation Mode
    ** property to Formula, and set its Formula property to the
    ** following PL/SQL expression:
    */
    :emp.sal + :emp.comm

    /* Example 3: Define a Formula item to compute a different
    ** value for total compensation depending on the block where
    ** the cursor currently is positioned. Form has 3 blocks:
    ** 2 data blocks (EMP1 and EMP2), and one control block
    ** (COMP). Create a display item TOTAL_COMP in the COMP block
    ** that displays total compensation. Set the Formula property
    ** for COMP.TOTAL_COMP to an expression (a function call):
    */
    total_comp_func

    /* Function TOTAL_COMP_FUNC is defined as follows: */

    FUNCTION total_comp_func RETURN number IS
    BEGIN
    IF :system.cursor_block = 'emp1' THEN
    RETURN :emp1.sal + :emp1.comm;
    END IF;
    IF :system.cursor_block = 'emp2' THEN
    RETURN :emp2.sal + :emp2.comm;
    END IF;
    RETURN null;
    END;

    /* Form Builder automatically recalculates COMP.TOTAL_COMP
    ** whenever a change occurs to the value of :EMP1.SAL,
    ** :EMP1.COMM, :EMP2.SAL, or :EMP2.COMM. Form Builder
    ** will not, however, recalculate COMP.TOTAL_COMP when an
    ** end user navigates between blocks, since changes to
    ** system variables don't automatically cause recalculation.
    ** To ensure that the correct value always is displayed,
    ** define a PRE-BLOCK trigger at the form level, containing
    ** the statement:
    */
    RECALCULATE('comp.total_comp');


    Server support
Server support

This release adds support for the Oracle8 Database Server. At the same time, support for the Oracle7 Server is continued.

New applications

You can build new Forms Developer applications that will run against either an Oracle8 or an Oracle7 Server. Naturally, applications that make use of Oracle8 features will need to run with that level of the server.

Existing applications

Existing Forms Developer applications that were designed to run using an Oracle7 Server will continue to run with that server. In addition, if the application's target data is moved from an Oracle7 to an Oracle8 Server, an existing application can be run in that Oracle8 environment.


PL/SQL 8 support PL/SQL 8 support

This release of Form Builder uses PL/SQL 8 on the client and the server. Client-side program units currently cannot support Oracle8 object-related functionality. However, stored program units can use all the new PL/SQL 8 features. Appendix A in the PL/SQL User's Guide and Reference manual describes the new PL/SQL 8 features.

Compatibility with earlier versions of PL/SQL

If you have client-side program units written in PL/SQL V1 or V2, you must convert that code to the new level. The PL/SQL V1 conversion utility is provided to help automate the upgrading process.

Stored program units written in PL/SQL V2 will run against the PL/SQL V8 engine on the database server, but may compile with errors. These errors arise in some situations where there is syntax incompatibility between V2 and V8. A V2 compatibility flag in V8 database enables you to choose a V2 compatibility mode, so that the V8 engine does not issue such errors when it compiles V2 code. Chapter 6 in the Oracle8 Migration manual describes the situations that are covered by this compatibility flag.


New and extended properties New and extended properties

The following table lists the Form Builder properties that are new or extended in this release.

Property
Status and Use
Alias
New. Creates an alias for an Oracle8 table name.
Column Name
Extended. Now includes dot notation for items from column objects.
Detail Reference
New. Identifies the REF item that forms a master-detail link.
DML Returning Value
New. Controls Forms’ refreshing of screen with changed values after a database insert or update.
Include REF Item
New. Creates a hidden item called REF in the master block.
Relation Type
New. Identifies the type of master-detail link (either relational join or object REF).

Form Builder 4.5 Runtime Behavior Form Builder 4.5 Runtime Behavior

Runtime behavior of forms created with Form Builder 5.0 through 6.0 differ from runtime behavior for Form Builder 4.5. During design time, you can select which runtime behavior will be used for a form by setting the form-level property, Runtime Compatibility Mode to either 4.5 (for Release 4.5) or 5.0 (for Release 5.0 through 6.0).

Overview

The following runtime behaviors are changed in Form Builder 5.0 through 6.0. The sections that follow describe the corresponding Form Builder 4.5 behavior:

frm90000.gif When validation occurs (differences in navigation rules)

frm90000.gif Standard validation checks (validation steps for various types of items)

frm90000.gif Validation and the Defer Required Enforcement property

frm90000.gif Initialization of mirror (synchronized) items

frm90000.gif Validation of mirror items

frm90000.gif Converting between date and string formats

frm90000.gif Implicitly setting an item's Required property

frm90000.gif Null values in poplists and T-lists

frm90000.gif Null values and firing the POST-CHANGE trigger

When Validation Occurs

Form Builder 4.5 validation rules for navigation are as follows:

frm90000.gif When you navigate from item A to item B in the same block, and item-level validation is in effect, the action taken depends on how the navigation was done:

frm90000.gif If the navigation is the result of a GO_ITEM (mouse click), or the result of a PREVIOUS_ITEM (shift-tab key), then only item A is validated. (This is the same as Form Builder 5.0.)

frm90000.gif If the navigation is the result of a NEXT_ITEM (tab key), then item A and all items between A and B (in terms of their sequence number within the block, not in terms of their position in the block's navigation sequence) are validated. This may cause redundant validation. For example, if you use the Next Navigable Item property to establish a navigation sequence that's the reverse of the items' sequence within the block (as shown in the object navigator), then every time you hit tab, all items in the block (except the one you're tabbing to) will be validated. (In Form Builder 5.0, only item A is validated.)

frm90000.gif For item-level validation, when Form Builder needs to position you at the first navigable item in a block, all earlier items in the block are validated. This sometimes causes Form Builder to exit if one of those earlier items fails validation. (In Form Builder 5.0, the earlier items are not validated.)

frm90000.gif For item-level validation, when you attempt to navigate out of a null-valued, Required item and the Defer Required Enforcement is set to No, the action taken depends on how the navigation was done:

frm90000.gif If the navigation is the result of a GO_ITEM (mouse click), or the result of a NEXT_ITEM (tab key), then you will get the error: FRM-40202 Field must be entered. (This is the same as Form Builder 5.0.)

frm90000.gif If the navigation is the result of a PREVIOUS_ITEM (shift-tab key), then no error will occur, and the navigation will succeed. (In Form Builder 5.0, error FRM-40202 is issued.)

Standard Validation Checks

There are certain steps that are performed whenever an item of a particular type is validated. The validation steps for Form Builder 4.5 text items are performed in the following order. If any step fails, the item is marked invalid, and the remaining steps are skipped:

  1. Verify that a Required item is not null.

This step is performed only for:

frm90000.gif combo boxes

frm90000.gif poplist and T-list items that do not allow other values

frm90000.gif navigable list items that mirror other items

frm90000.gif navigable text items

A failure on combo boxes or poplist and T-list items that do not allow other values produces the message:
FRM-40212 Invalid value for field

Other failures produce the message : FRM-40202 Field must be entered

This validation is performed on item instances that are protected against update, even when the form's Validation Unit is ITEM.

  1. Verify that a non-null value is the correct format for its data type.

This step is performed only for:

frm90000.gif navigable combo boxes

frm90000.gif text items

  1. Verify that a Fixed Length item does not contain a non-null value of the wrong length.

This step is performed only for enabled text items.

  1. Verify that the item's non-null value falls within the range specified for the item.

This step is performed only for enabled text items.

  1. If the item’s Use LOV for Validation property is Yes, verify that the item's non-null value appears in the item's list of values (LOV).

  2. If the item value is non-null, fire the POST-CHANGE trigger.

  3. Fire the WHEN-VALIDATE-ITEM trigger.

Validation of non-text items omits steps 3 through 5. Step 2 only applies to text items and combo boxes, since they are the only items that allow the end user to type in values.

Validation and the Defer Required Enforcement Property

This property applies only when item-level validation is in effect. When set to Yes, the Required property is not enforced until record-level validation is performed. Form Builder 4.5 behavior of Defer Required Enforcement differs from 5.0 as follows:

frm90000.gif The Defer Required Enforcement property is ignored for list items.

frm90000.gif When item-level validation occurs on a required item that contains a null value, the item's WHEN-VALIDATE-ITEM trigger (if any) fires. If that succeeds, the item is marked as valid (that is, the ITEM_IS_VALID property is set to Yes). During record-level validation, null-valued required items that have already been marked as valid are re-validated.

Initialization of Mirror (Synchronized) Items

Assume there are three items (A, B, and C) in the same data block. If you set the Synchronize With Item property of A and B to item C, items A and B are considered as subordinate mirror items. Item C is the master mirror item.

Form Builder 4.5 initialization rules for mirror items differ from 5.0 rules in the following respects:

frm90000.gif Within a group of items that mirror each other (including the master mirror item), the initial value is taken from the last item within the group (in terms of sequence within the block) that specifies a displayable initial value. That is, each initial value is applied in turn at runtime, and the last one that can be displayed by its item's widget overrides any earlier initial values. The ON-SEQUENCE-NUMBER trigger (if present) is fired when its item's initial value is being set (assuming it is a sequence number).

frm90000.gif The initial value will be ignored at run time if the item is a poplist, T-list, radio group, or checkbox that does not allow other values and which has no element corresponding to the initial value. Mirroring items are not inspected.

Validation of Mirror Items

Form Builder 4.5 validation rules for mirror items differ from 5.0 rules in the following respects:

frm90000.gif For a subordinate mirror item, the Required, RANGE_HIGH, and RANGE_LOW properties, and the POST-CHANGE and WHEN-VALIDATE-ITEM triggers, are taken from the subordinate mirror item.

frm90000.gif During item-level validation, validation rules are always taken from the item currently being validated. This means that the validation rules for an item set programmatically are determined by the item that is first visited by the end user. This may be an item that mirrors it or the item itself.

frm90000.gif During record-level validation, within a group of mirror items, Form Builder validates the item that appears earliest in the block. This may cause a validation problem if invalid data is entered into a text item or combo box that is mirrored by another item that appears earlier in the block.

Converting Between Date and String Formats

To convert an item of data type DATE or DATETIME into an internal string (a string that is not user-visible) or vice versa, Form Builder chooses a date format mask to do the conversion.

In 5.0, Form Builder uses a built-in date format mask to do the conversion. This does not include conversions performed by PL/SQL.

In Form Builder 4.5 runtime compatibility mode, Form Builder uses the input , output, or built-in date format masks for the following cases (see About format masks for dates for information about input, output, and built-in date format masks):

frm90000.gif When executing GET_ITEM_PROPERTY on an item of data type DATE or DATETIME, for the properties RANGE_HIGH and RANGE_LOW.

frm90000.gif When executing GET_ITEM_PROPERTY on an item of data type DATE or DATETIME, for the property DATABASE_VALUE. Form Builder 4.5 runtime compatibility mode gives you the behavior of Form Builder 4.5.7. (Earlier releases exhibit 5.0 behavior.)

frm90000.gif When setting the value of an LOV column's return item, when the LOV column is of data type CHAR and the return item is of data type DATE or DATETIME, or vice versa. Form Builder 4.5 runtime compatibility mode gives you the behavior of Form Builder 4.5.7. (Earlier releases exhibit 5.0 behavior.)

frm90000.gif When setting the initial value of an item of data type DATE or DATETIME, where the initial value is taken from a variable (using colon notation) of data type CHAR. Form Builder 4.5 runtime compatibility mode gives you the behavior of Form Builder 4.5.7. (Earlier releases exhibit 5.0 behavior.)

frm90000.gif When setting the initial value of an item of data type CHAR, where the initial value is specified as $$DATE$$, $$DATETIME$$, $$DBDATE$$, or $$DBDATETIME$$. Form Builder 4.5 runtime compatibility mode gives you the behavior of Form Builder 4.5.7. (Earlier releases exhibit 5.0 behavior.)

frm90000.gif For all other cases, Form Builder uses the built-in date format mask. For information about various date format masks, see Format Masks in the online help.

Implicitly Setting an Item’s Required Property

In Form Builder 4.5 runtime compatibility mode, an item's Required property is implicitly set to false if the item is disabled by setting its Enabled property to PROPERTY_FALSE using the SET_ITEM_PROPERTY built-in.

Null Values in Poplists and T-Lists

In Form Builder 4.5 runtime compatibility mode, programmatically assigning a null value to a poplist or T-list will fail if all of the following conditions are true:

frm90000.gif Required property set to true

frm90000.gif the item does not contain an explicitly-specified, null-valued element

frm90000.gif the item does not allow other values

Under these conditions, Form Builder will issue the error: FRM-40212: Invalid value for field).

If a fetched row contains a null value in a column that is to be assigned to such a poplist or T-list, the fetched row will be rejected (it will not appear in the block).

In both Form Builder 4.5 and 5.0 runtime compatibility modes, a null value can always be displayed in any list item, even if the list item contains no explicitly-specified, null-valued element and does not allow other values. In a T-list, the null value is displayed by selecting none of the elements. In a poplist, an implicit null value is temporarily added to the poplist.

Null Values and Firing the POST-CHANGE Trigger

In Form Builder 4.5 runtime compatibility mode, the POST-CHANGE trigger is never fired for a null value that was fetched into an item by a query. But for a null value assigned programmatically to an item, or entered into an item by the end user, the POST-CHANGE trigger is fired. The only exception is when the item is a text item. We do not recommend using the POST-CHANGE trigger for new applications.


Object Constraints Object constraints

Related Topics

The following table presents constraints that apply to Form Builder objects and any other elements that are related to these objects.

Element
Constraint/Note
blocks per form
no practical limit
canvases/windows
no practical limit
canvas width
no practical limit
column name length
30 characters
boilerplate text
no practical limit
database field references
no practical limit
detail blocks per master
no practical limit
global variable length
255 characters
identifiers (block names, field names, parameter list names, etc.)
30 characters
item max length
2,048 characters, for CHAR values
items per block
no practical limit
join condition
255 characters
levels of menu nesting
  1. - 10, depending on your operating system (When using pulldown menus, it is a good practice to limit menu nesting to four levels.)
list of values
no practical limit
menu items
no practical limit
menus
no practical limit
named visual attributes
255 named visual attributes
PL/SQL strings
no practical limit
WHERE Clause and ORDER BY Clause
total of 32,000 characters
record group character columns
255 characters
record groups
255 columns
substitution parameters
no practical limit
text item range checks per block
no practical limit
triggers
no practical limit
user-defined local variable name length
30 characters


Cursor Constraints Cursor constraints

Related Topics

A database cursor is the memory that the ORACLE RDBMS assigns to a SQL command. This applies to the SQL commands that are implicit to posting and querying data and the SQL commands that are explicit in triggers. Form Builder controls cursor assignment for all implicit SQL commands and the explicit SQL commands in V2 triggers.

The following table presents constraints that apply to database cursors.

Element
Constraint/Note
open cursors (maximum)
  • alue of the OPEN_CURSORS parameter found in the INIT.ORA file
open cursors (minimum)
frm90000.gif 5 per ORACLE connection.


frm90000.gif 4 per runtime session when running against ORACLE or SQL*Connect.


frm90000.gif 5 per block (1 for SELECT, 1 for UPDATE, 1 for INSERT, 1 for DELETE, and 1 for QUERY ).The first 4 listed are opened as needed, but can be suppressed by running in OPTIMIZETP=YES mode. This restriction applies under normal circumstances, but it is possible to change the number of cursors by altering settings on the Set Options form or by using command line switches.One cursor for query is always opened for each block as needed and is never shared even when running in OPTIMIZETP=NO mode.

open cursors (minimum)
frm90000.gif 1 per record group created with query.


frm90000.gif 1 cursor is used if database date or time default values ($$DBDATE$$) are referenced for any item.


frm90000.gif 1 for any SQL statement.These can be in triggers, procedures, or functions. This restriction applies under normal circumstances, but it is possible to change the number of cursors by altering settings on the Set Options form or by using command line switches. V2 style trigger cursor consumption can be tailored using the OPTIMIZESQL command line parameter.



About form design goals About form design goals

Before you design your application, consider these aspects of usability:

Productivity The application must make the end-user more productive than the prior system they were using. It should employ simple, easy-to-understand presentation of information.

Ease of Learning The application must be easy to learn and intuitive to use. The products must be consistent, familiar, and predictable. There should be clear and obvious methods for novice users combined with quick and powerful methods for experts.

The User Experience The application should be inviting to use. It should reward a user by providing them with information and tools necessary to complete tasks rapidly, and it should guide them where appropriate with timely and meaningful feedback. The application should allow exploration, without the fear of irreversible consequences.

At the same time, a balance must be struck between achieving the "ultimate UI", the time and resources required to build and maintain it, as well as the allocation of resources required to build basic product functionality. A product with the best UI fails to meet any requirements if it is available too late, or does not satisfy business requirements.


Performing a requirements analysis Performing a requirements analysis

It is important to design a product user interface based on feedback from qualified users. For example, design a journal entry screen based on comments from the general ledger clerks who will be using it regularly. This seemingly simple concept is often overlooked, and UI designs instead are based on 'tests' done on the developer sitting in the next office. Only the actual user of the product is qualified to comment if the UI is appropriate.

Be sure to sample a wide variety of users; feedback from users at a single customer site will be biased toward their specific implementation of the task. Whenever possible get feedback based on actual 'hands-on' testing, rather than just paper prototypes.


Analyzing task flow Analyzing task flow

For every task that a product is designed to support, a flowchart should be built of the steps necessary to perform that task. Only by identifying all the aspects of a particular task will opportunities for optimization be revealed. Once the desired flow of a task is documented, analyze the following issues to lead to the proper UI for the screen(s) designed to support that task:

frm90000.gif What related information is needed to complete the task? What amount of information does the user need to ignore?

frm90000.gif What is the frequency of use and volume of data for the screen?

frm90000.gif What widgets are most appropriate? Will the screen be used by high-speed data entry clerks?

frm90000.gif What level of training do you anticipate the user having on this particular task and screen?

frm90000.gif What if a user makes a mistake at a particular step, or attempts to bypass a step? Must the task steps be done sequentially, or can they be done in parallel?

frm90000.gif What decisions is the user required to make along the way? What if those decisions are only in exceptional cases?

frm90000.gif What other tools might the user be familiar with? What are their expectations of your product based on these other tools?


About portability About portability

Examples Related Topics

Portability is the quest for uniformity in a diverse environment. Ideally, portability means an application developed on one platform such as UNIX may be run on other platforms such as Microsoft Windows without changes.

In reality, the different ways that various platforms and windowing systems implement the basics that provide their distinctive "look and feel" mean that the distinguishing characteristics of one user interface may appear differently on another user interface. For example, the placement and presentation of the Help menu is different on Microsoft Windows, Macintosh, and Motif.


Designing for portability Designing for portability

Related Topics

Restrictions imposed by supporting all platforms and translation requirements must be evaluated early in the design phase.

If an application is going to be deployed in multiple environments, it should conform to all of the constraints for all of those environments. If it is going to be deployed only in a single environment, the application only needs to conform to the constraints for that environment. Additionally, even a product that is designed to run on all platforms may have additional logic that only gets invoked on specific platforms. It is up to you as the designer to ensure that your application performs as expected on all platforms on which it is intended to be run.


About portability examples About portability examples

frm90000.gif
Platform portability: the ability to deploy the same application across platforms.

Example Develop on UNIX, deploy on Microsoft Windows and Macintosh.

frm90000.gif Device portability (including variations in screen size and resolution, as well as monochrome/color differences): the ability to develop and deploy on the same platform, but different devices.

Example Develop on Microsoft Windows, deploy on both Microsoft Windows large screen, high resolution and Microsoft Windows small screen, low resolution.

frm90000.gif UI portability: the ability to deploy the same application on GUI and character-mode devices.

Example Develop on Microsoft Windows, deploy on Microsoft Windows and a VT220.


About the porting process About the porting process

Related Topics

The general process for creating portable applications includes these stages:

  1. Create standards for the application to ensure a similar "look and feel" both within the application and across platforms.

  2. Create the application on the base platform.

  1. Copy, re-compile, and run on the target platform, testing for any areas where adjustment is needed for optimum appearance.

When an application is ported, it will be able to run directly on the target platform. The Toolkit level on which Form Builder is built will render all widgets with the native look-and-feel of the target platform.

However, because of platform-to-platform differences, some minor changes may have to be made to the original source code so that it meets the requirements on both the original and the target platform.

  1. In Form Builder, fine-tune the base-platform application.


    Platform-Specific Functionality
Platform-Specific Functionality

Platform-specific functionality may be coded on forms that run on multiple platforms, provided that the basic business requirements of the product are met on all platforms. For example, an HR product may build a textual editor to maintain management hierarchies, which executes on all platforms, and augment this with a graphical one on a specific platform.

However, despite the availability of some capability on a particular platform, using it might be inappropriate in some contexts. For example, in a screen designed for heads-down data entry, it would be incorrect to use any widget which cannot be operated without looking at the screen.


Platform-Specific Characteristics Platform-Specific Characteristics

There are basic incompatibilities among all the supported UIs, such as widget placement and size. Where such inconsistencies exist, and are not easily resolved, these standards follow the model recommended on Microsoft Windows.

Many display characteristics of widgets can be accounted for with a scheme of referenced property classes that insure the proper look on all platforms. However, it is the responsibility of the developer to write standard code to account for some behavioral characteristics. For example, on the Macintosh a user cannot navigate to any widget other than a text item.


Screen Characteristics Screen Characteristics

In general, the maximum recommended window size is 7.8" (width) x 5.0" (height). This maximum size comes from the requirement to support character mode. If the product or form being built does not need to run in character mode, then it may be able to assume a larger screen size and thus a larger window size.

To support various screen resolutions on bitmap monitors, forms should be built with coordinate systems based on logical, not physical, measures. For that reason, lay out all screens in inches.

Finally, in order to support monochrome screens and users who are color blind, any use of color coding must only be used to augment. For example, a financials total may be rendered in red if negative, but should also be drawn such that it is readable without the aid of color (such as with a negative sign preceding the value).


Character-Mode Issues Character-Mode Issues

Character mode restricts the UI in several ways:

frm90000.gif Fonts are monospaced and thus consume much more space, on average, than proportional fonts. Screens must be designed so that boilerplate and textual widgets can be rendered with one character per cell.

frm90000.gif Most objects must be laid out snapped to the character cell grid, including boilerplate (prompts and lines) and widgets (text items, check boxes, etc.)

frm90000.gif Each widget must be operable from the keyboard, including when it does not have the focus.

frm90000.gif All screens must fit in a character cell grid of 80 x 24 characters.

frm90000.gif Anything that requires scrolling is very hard to use.

frm90000.gif Iconic buttons should be hidden, thus any functionality they provide must either not be needed in character mode, or must have an alternative invocation method (such as the Special menu).

frm90000.gif Encoding of data with font or color variations can only be used as a secondary method to present such information.

Products or screens that do not need to run in character mode are not bound by these limitations, although often a GUI form is easier to develop, and more usable, if many of them are followed. For example, design a screen so that it is fully operable from the keyboard, whether it is to be run in character mode or not.


Resource Issues for Microsoft Windows Resource Issues for Microsoft Windows

In order to manage system resource usage when running on Microsoft Windows, it may be necessary to deviate from the standards slightly in order to reduce the number of widgets created.

For very large forms that may cause severe resource problems, the following guidelines and suggestions can also be used to lower resource usage:

frm90000.gif Have certain commands available as entries on the Special menu rather than as buttons on the form.

frm90000.gif Change horizontal scrolling areas into alternative regions showing only a subset of the columns at a time.

frm90000.gif Reduce the number of windows by using multiple alternative regions in one window or by improving the window flow.

frm90000.gif Display multiple rows of certain information (primary key and descriptor fields) and one row of less important information by using overflow regions or combination blocks.


Translation Translation

In order for a product to run in the proper language in all countries, all prompts, titles, messages, and information presented to the user, other than data they enter while using the product, must be translatable. The Oracle Translation Manager handles most aspects of this, except for messages, which are handled by the Message Dictionary. All text must be presented to a user in their native language, except critical errors which a developer needs to debug the application (and should never be seen by a user).

Anything that is translated must have sufficient space available to expand 30% when translated from English to other languages. Depending on the widget and its placement, this space must be available either to the left, right, or both sides. Note that this 30% expansion rule applies to the number of character cells, not inches, unless the form does not need to run in character mode. In addition, unless the translated lengths are known ahead of time, all prompts should have a minimum of one inch total space available in which to expand when translated.

Numeric data and dates must also be presented to the user in their proper format for the current language.


Understanding the user's perception of information Understanding the user's perception of information

Window layouts should be based on the logical relation of data, not the physical database tables. For example, in the Sales and Marketing product, a user perceives an 'Account' as the specific data of the Account, as well as the 'Contacts' and 'Executives' of that account. These three entities are stored in separate physical tables, but by placing them all in a single set of windows, the user continues to perceive them as one logical object.

Note: Form Builder will ask the user to save changes when a new master record is selected and changes are pending in the detail block. This breaks the unity of both a logical object and a transaction by exposing the block- and record-level properties of each, but was judged to be infeasible to circumvent.


Choosing summary versus detail Choosing summary versus detail

Placing information in a window always involves a compromise between the desire to see many records of an entity simultaneously, and to see all of the detail about each record at once. A summary view has the advantage of showing more records of an entity, but at the loss of detailed information about each record. A careful analysis must be done to determine the best compromise of rows and detail for each function. Often a hybrid of the two views is the best answer.


Avoiding information clutter Avoiding information clutter

There is no such thing as information overload - a user can never see too much information. However, if information is not well organized, then it simply becomes clutter. Presenting an entity with a large number of attributes merely as a 'sea' of fields would force the user to scan an entire screen to locate the piece of information they are interested in. Instead, carefully organize and group the data to allow a user to navigate the information more easily and naturally.


Understanding information visibility Understanding information visibility

An analysis of the task flows should reveal what information a user must have access to at each point in time. For example, if a user must see Set of Books information in order to enter a Journal, a decision must be made as to whether the Set of Books information must be visible at all times, or the user merely needs the ability to see it upon request. This in turn impacts how much of each entity should be displayed at once, and how many windows are necessary.


General layout rules General layout rules

Related Topics

The following rules apply to all screens. Specific exceptions are noted throughout this document.

frm90000.gif
Orient screen layouts based on a top-to-bottom task sequence. Blocks, regions, and items are arranged by order of precedence, from left-to-right, then top-to-bottom.

frm90000.gif Don't waste screen space. Make windows only as large as is necessary. Use blank space as a way to group information.

frm90000.gif Most widgets are 0.25 inches high, and multiples of 0.1 inches wide. Two-dimensional widgets (multiline text items, TLists) are multiples of 0.25 inches high. Textual button heights differ depending on the platform.

frm90000.gif In single-record blocks, items should be left aligned where possible. In multi-record blocks items should be stacked horizontally and aligned along their top.

frm90000.gif Place titles and prompts toward the top or left of the element they are describing. Prompts in single-record blocks are always to the left of the field; prompts in multi-record blocks are above the field, and aligned similarly to the data within the field they describe. Exceptional cases exist for matrix-style layouts, fields that do not require prompts, connecting prompts, and multiline prompts.

frm90000.gif At least a one-character wide space should be left between the items on a canvas and the window frame. It is also preferable to leave one row at the top and bottom empty too, but this is not required. Exceptional cases exist for lines and rectangles used to denote blocks and regions.

frm90000.gif Indicate things that are similar, and things that are different, when it is meaningful for the user. That is, do not create regions or use boilerplate lines to group items unless it improves the usability of the screen.

frm90000.gif Make data stand out, and controls to access that data intuitive but non-obtrusive.

frm90000.gif Use the same widget for the same attribute in all windows.


About building forms About building forms

Next Step Related Topics

So, how do you get from beginning a form to a finished application, ready for operators to run? Here's the basic process:

  1. Create modules.

  2. Create blocks and items.

  3. Apply user interface standards to your objects.

  4. Fine-tune the layout.

  5. Set properties.

  6. Add code.

  7. Test your application.

To do this:
Use this Form Builder tool:
Create modules.
Object Navigator
Create blocks and items.
Data Block Wizard
Apply standards.
Object Library
Fine-tune the layout.
Layout Wizard or Layout Editor
Set properties.
Property Palette
Add code.
PL/SQL Editor
Test the form.
Forms Runtime Debugger


About blocks on forms About blocks on forms

Related Topics

A block is a container that holds a related group of objects, such as text items, lists, and buttons.

Blocks do not have a physical representation—only the items contained in a block are visible in the application interface. However, like other objects, blocks have properties, and can be created, copied, and modified.

Blocks provide a mechanism for grouping related items into a functional unit for storing, displaying, and manipulating records. Just as tables in the database consist of related columns and rows, blocks contain related items that display data.

There is no practical limit to the number of blocks that can be defined in a form. A block is a logical grouping only; the items in a block can be placed on different canvases and can be displayed in different windows.


About block types About block types

Related Topics

There are two types of blocks, data and control.

Data Block Data blocks are associated with data (table columns) within a database.

By default, the association between a data block and the database allows operators to automatically query, update, insert, and delete rows within a database.

Data blocks can be based on database tables, views, procedures, or transactional triggers.

Control Block In contrast, a control block is not associated with the database, and the items in a control block do not relate to table columns within a database.

All blocks are either single-record or multi-record blocks:

frm90000.gif A single-record block displays one record at a time.

frm90000.gif A multi-record block displays more than one record at a time.

In addition, a data block can also be a master or detail block:

frm90000.gif A master block displays a master record associated with detail records displayed in a detail block.

frm90000.gif A detail block displays detail records associated with a master record displayed in master block.


Block datasources Block datasources

Related Topics

A data block can be based on any of the following datasources:

frm90000.gif table

frm90000.gif view

frm90000.gif FROM clause (query datasource only)

frm90000.gif procedure

frm90000.gif transactional trigger


Guidelines for choosing block datasources Guidelines for choosing block datasources

Related Topics

When deciding on a block datasource, consider the requirements:

frm90000.gif Will the block be used only to query records?

frm90000.gif Will the block be used to perform INSERTS, UPDATES, and DELETES (DML)?

frm90000.gif Will the block be used to perform both query and DML?

A table is the most commonly used block datasource. Unless you have special needs, a table is the best choice for a block datasource.

Consider also the functional restrictions for each datasource type.

Datasource
Allows Query
Allows DML (INSERTS, UPDATES, and DELETES
Allows Array Processing
Allows Query by Example
Table
yes
yes
yes
yes
View
yes
yes (certain Join views may not allow DML)
yes
yes
FROM clause
yes
no
yes (only for queried records)
no
Procedure
yes
no (if your procedure uses a ref cursor variable)
no (if your procedure uses a table of records)
no
Transactional trigger
yes
yes
no (if your trigger uses a table of records)
no

Note: You can specify separate query and DML datasources for a data block.


Using tables as block datasources Using tables as block datasources

Related Topics

A table is the most commonly used block datasource. Unless you have special needs, a table is the best choice for a block datasource.

A data block that is based on a table allows the end-user to:

frm90000.gif query records

frm90000.gif INSERT, UPDATE, and DELETE records

frm90000.gif query by example

A data block based on a table, also reduces network traffic through array processing.

The Query Array Size property enables array processing for records queried, and the DML Array Size property enables array processing for records used in DML operations.


Using transactional triggers as block datasources Using transactional triggers as block datasources

Related Topics

Transactional triggers may be used to provide data for data blocks. Transactional triggers are typically used when Form Builder is running against a non-ORACLE datasource. When transactional triggers are used, Form Builder default functionality is replaced.

A transactional trigger block datasource can be used for both query and DML. Array processing is not supported when the block datasource is based on a transactional trigger.


Using stored procedures as block datasources Using stored procedures as block datasources

Related Topics

Using a stored procedure as a block datasource is a more advanced option. Base a data block on a stored procedure when you want to:

frm90000.gif increase control and security

frm90000.gif query and update multiple tables

frm90000.gif perform complex computations

frm90000.gif perform validation and DML on the server-side

frm90000.gif encapsulate logic within a subprogram

frm90000.gif reduce network traffic through array processing

A stored procedure returns data to a data block by using either a ref cursor or a table of records.


About ref cursors About ref cursors

Related Topics

A ref cursor is a pointer to a server-side cursor variable. It is analogous to a pointer in "C" in that it is an address to a location in memory. The stored procedure returns a reference to a cursor that is open and populated by a SELECT statement to be used as a block datasource.

A stored procedure that uses a reference cursor can only be used as a query block datasource; it cannot be used for DML block datasource. Using a ref cursor is ideal for queries that are dependent only on variations in SQL statements and not PL/SQL.

When deciding whether to use a ref cursor or a table of records, consider that:

frm90000.gif a stored procedure that uses a ref cursor can only be used as a query block datasource

frm90000.gif a stored procedure that uses a table of records can be used as both a query and DML block datasource


About table of records About table of records

Related Topics

A table of records is a PL/SQL structure that resembles an array of records. The stored procedure constructs the array and passes back the resulting set of records to be used as a block datasource.

Using a table of records is ideal for queries that are dependent on PL/SQL and SQL.

Using a table of records is extremely efficient in terms of the savings on network traffic, because it takes a single round trip (from client to server) to execute the stored procedure, and a single round trip for all the records returned.

Array processing is not an option when a data block is based on a stored procedure returning a table of records. Instead, a single array is used in query and DML operations. The size of the array is the number of records that are processed for the entire operation. For instance, a query of 300 records will return a single array that is 300 records in size.

Because array processing cannot be used, additional records may be returned that are unnecessary. A lot of memory may be required, because all records are in memory at the same time. When using a table of records, anticipate the memory requirements when designing your application. You can limit memory usage, by controlling the size of the array in your stored procedure.

When deciding whether to use a ref cursor or a table of records, consider that:

frm90000.gif a stored procedure that uses a ref cursor can only be used as a query block datasource

frm90000.gif a stored procedure that uses a table of records can be used as both a query and DML block datasource


Using the FROM clause as a block datasource Using the FROM clause as a block datasource

Related Topics

A FROM clause may be used as the datasource for a data block. A FROM clause is a feature of the Oracle8 Server that allows you to nest a SELECT statement in the FROM clause of a SELECT statement. A FROM clause is a valid query block datasource, but it is not a valid DML block datasource. The value returned from a FROM clause is a subset of records from the original query.

FROM clauses are used to perform joins, lookups, and calculations without having to create a view on the server. FROM clauses can also be used to prototype views and to increase performance.

Using a FROM clause as a block datasource is similar to using an updateable join-view as a block datasource. However, a FROM clause provides more control, because the presence of a DBA is not required to define the view. You should note that the FROM clause produces results that are identical to an updateable join-view from the client side, but that there is no defined view on the server.

Array processing is supported to increase performance by reducing network traffic. Set the Query Array Size property to enable array processing.


Creating a data block from a table Creating a data block from a table

Next Step Related Topics

To create a data block from a table:

Choose Toolsfrm00001.gifData Block Wizard to invoke a wizard that guides you through the process of building a data block.

Or,

  1. In the Object Navigator, click the Data Blocks node.

  2. Click the Create button rcreate.gif in the toolbar.

  3. In the New Data Block dialog box, choose Build a New Data Block Manually and click OK.

  4. Double-click the Block object icon blkobjic.gif to display the Property Palette.

  5. Under the Database node:

frm90000.gif Set the Query Data Source Type property to Table.

frm90000.gif Type the name of a database table in the Query Data Source Name text box.

  1. Under the Advanced Database node:

frm90000.gif Set the DML Data Target Type property to Table.

frm90000.gif Type the name of your datasource in the DML Data Target Name text box.

  1. Under the General node, click the Name property, then type a name or accept the default name.

You can use any name that follows ORACLE naming conventions and is unique among blocks in the form. The block name is an internal descriptor that is not displayed at runtime.


Creating a data block from a transactional trigger Creating a data block from a transactional trigger

Related Topics

To create a data block from a transactional trigger:

Choose Toolsfrm00001.gifData Block Wizard to invoke a wizard that guides you through the process of building a data block.

Or,

  1. In the Object Navigator, click the Data Blocks node.

  2. Click the Create button rcreate.gif in the toolbar.

  3. In the New Data Block dialog, choose Build a New Data Block Manually and click OK.

  4. Double-click the Block object icon blkobjic.gif to display the Property Palette.

  5. Under the Database node, set the Query Data Source Type property to Transactional Triggers.

  6. Define the appropriate transactional triggers.

  7. Under the Advanced Database node, set the DML Data Target Type property to Transactional Triggers.

  8. Define the appropriate transactional triggers.

  1. Under the General node, click the Name property, then type a name or accept the default name.

You can use any name that follows ORACLE naming conventions and is unique among blocks in the form. The block name is an internal descriptor that is not displayed at runtime.


Creating a data block from a procedure that uses a ref cursor Creating a data block from a procedure that uses a ref cursor

Examples Restrictions Related Topics

To create a data block from a procedure that uses a ref cursor:

Choose Toolsfrm00001.gifData Block Wizard to invoke a wizard that guides you through the process of building a data block.

Or,

  1. In the Object Navigator, click the Data Blocks node.

  2. Click the Create button rcreate.gif in the toolbar.

  3. In the New Data Block dialog box, choose Build a New Data Block Manually and click OK.

  4. Double-click the Block object icon blkobjic.gif to display the Property Palette.

  5. Under the Database node:

frm90000.gif Set the Query Data Source Type property to Procedure.

frm90000.gif Type the name of a procedure in the Query Data Source Name text box.

frm90000.gif Type the name of a procedure in the Query Data Source Name text box.

frm90000.gif Double-click the Query Data Source Columns property and in the Query Data Source Columns dialog box, type in the column names, type, length, precision, and scale for the result set returned from the ref cursor.

frm90000.gif Double-click the Query Data Source Arguments property and in the Query Data Source Arguments dialog box, type in the names, data types, mode, and value for the arguments passed to and from the procedure.

  1. Under the General node, click the Name property, then type a name or accept the default name.

You can use any name that follows ORACLE naming conventions and is unique among blocks in the form. The block name is an internal descriptor that is not displayed at runtime.


Creating a data block from a procedure that uses a ref cursor restrictions Creating a data block from a procedure that uses a ref cursor restrictions

frm90000.gif
If the query datasource of a block is a stored procedure returning a cursor variable, and the block is a detail block in a relation, only the isolated deletes option is supported. Non-isolated deletes and cascading deletes cannot be supported, because the appropriate SQL statements cannot be constructed (cursors are a single active set of records resulting from a single select statement that is issued). To enforce non-isolated deletes and cascading deletes, provide checks in the ON-DELETE or PRE-DELETE triggers.

frm90000.gif Count Query Hits is disabled when using stored procedures as a datasource. An error message occurs if you attempt to count query hits at runtime. Instead, you can use the ON-COUNT trigger to count the query hits.

frm90000.gif You cannot pass a WHERE or ORDER BY clause to a stored procedure.


Creating a data block from a procedure that uses a ref cursor examples Creating a data block from a procedure that uses a ref cursor examples

/*

This is an example of a stored procedure that returns a ref cursor as a block datasource. A package is used to logically group the related data types and procedures.
*/
PACKAGE cv_datasource IS
TYPE emprec is RECORD (empno emp.empno%TYPE,
ename emp.ename%TYPE,
job emp.job%TYPE,
mgr emp.mgr%TYPE,
sal emp.sal%TYPE,
comm emp.comm%TYPE,
deptno emp.deptno%TYPE);
TYPE empcur is REF CURSOR RETURN emprec;
PROCEDURE empquery(resultset IN OUT empcur,
p_deptno IN NUMBER);
END;


PACKAGE BODY cv_datasource IS
PROCEDURE empquery(resultset IN OUT empcur,
p_deptno IN NUMBER) IS;
BEGIN
OPEN resultset FOR
SELECT empno, ename, job, mgr, sal, comm, deptno
FROM emp
WHERE deptno = p_deptno
ORDER BY empno;
END;
END;


Creating a data block from a procedure that uses a table of records Creating a data block from a procedure that uses a table of records

Restrictions Related Topics

To create a data block from a procedure that uses a table of records:

Choose Toolsfrm00001.gifData Block Wizard to invoke a wizard that guides you through the process of building a data block.

Or,

  1. In the Object Navigator, click the Data Blocks node.

  2. Click the Create button rcreate.gif in the toolbar.

  3. In the New Data Block dialog box, choose Build a New Data Block Manually and click OK.

  4. Double-click the Block object icon blkobjic.gif to display the Property Palette.

  5. Under the Database node:

frm90000.gif Set the Query Data Source Type property to Procedure.

frm90000.gif Type the name of a database procedure in the Query Procedure Name text box.

frm90000.gif Double-click the Query Data Source Columns property. Then in the Query Data Source Columns dialog box, type in the column names, type, length, precision, and scale for the result set returned from the table of records.

frm90000.gif Double-click the Query Data Source Arguments property. Then in the Query Data Source Arguments dialog box, type in the name, data types, mode, and value for the arguments passed to and from the procedure.

  1. Under the Advanced Database node:

frm90000.gif Set the DML Data Target Type property to Procedure.

frm90000.gif If you are performing an INSERT from your procedure, type the name of the procedure in the Insert Procedure Name text box, double-click the Insert Procedure Result Set Columns property to provide the result set information (name, type, length, precision, and scale), and double-click the Insert Procedure Arguments property to provide the argument information (name, data type, mode, value).

frm90000.gif If you are performing an UPDATE from your procedure, type the name of the procedure in the Update Procedure Name text box, double-click the Update Procedure Result Set Columns property to provide the result set information (name, type, length, precision, and scale), and double-click the Update Procedure Arguments property to provide the argument information (name, data type, mode, value).

frm90000.gif If you are performing a DELETE from your procedure, type the name of the procedure in the Delete Procedure Name text box, double-click the Delete Procedure Result Set Columns property to provide the result set information (name, type, length, precision, and scale), and double-click the Delete Procedure Arguments property to provide the argument information (name, data type, mode, value).

frm90000.gif If you are performing a LOCK from your procedure, type the name of the procedure in the Lock Procedure Name text box, double-click on the Lock Procedure Result Set Columns property to provide the result set information (name, type, length, precision, and scale), and double-click the Lock Procedure Arguments property to provide the argument information (name, data type, mode, value).

  1. Under the General node, click the Name property, then type a name or accept the default name.

You can use any name that follows ORACLE naming conventions and is unique among blocks in the form. The block name is an internal descriptor that is not displayed at runtime.


Creating a data block from a procedure that uses a table of records restrictions Creating a data block from a procedure that uses a table of records restrictions

frm90000.gif
In a block based on a stored procedure performing an UPDATE, always reference the same columns in both the procedure and the block. Do not pass back values from the procedure or function that you do not use as database items in your form. If the procedure or function returns more columns than those used in the block, the procedure or function returns null values for the columns that are not used.

frm90000.gif Because Update Changed Columns is not supported with procedures or functions as block datasources, the procedure or function should always pass back all the column values (Updated Changed Columns specifies that only columns whose values have changed are included in the UPDATE statement). It is impossible to determine whether a null value passed to procedure or function is an unused column in the block or an intentional null value for a column that is used. If you do not have a procedure or function that requires you to pass back all the column values, you will not be able to set a column to a null value in an UPDATE statement.

frm90000.gif Count Query Hits is disabled when using stored procedures as a datasource. An error message occurs if you attempt to count query hits at runtime. Instead, you can use the ON-COUNT trigger to count the query hits.

frm90000.gif You cannot pass a WHERE or ORDER BY clause to a stored procedure.


Creating a data block from a FROM clause Creating a data block from a FROM clause

Related Topics

To create a data block from a procedure returning a table of records:

Choose Toolsfrm00001.gifData Block Wizard to invoke a wizard that guides you through the process of building a data block.

Or,

  1. In the Object Navigator, click the Data Blocks node.

  2. Click the Create button rcreate.gif in the toolbar.

  3. In the New Data Block dialog, choose Build a New Data Block Manually and click OK.

  4. Double-click the Block object icon blkobjic.gif to display the Property Palette.

  5. Under the Database node:

frm90000.gif Set the Query Data Source Type property to FROM clause.

frm90000.gif Type the a SELECT statement (sub-query) in the Query Data Source Name text box.

  1. Under the General node, click the Name property, then type a name or accept the default name.

You can use any name that follows ORACLE naming conventions and is unique among blocks in the form. The block name is an internal descriptor that is not displayed at runtime.


Creating a control block Creating a control block

Next Step Related Topics

To create a control block:

  1. In the Object Navigator, click the Data Blocks node.

  2. Click the Create button rcreate.gif in the toolbar.

  3. In the New Data Block dialog box, choose Build a New Data Block Manually and click OK.

  4. Double-click the Block object icon blkobjic.gif to display the Property Palette.

  1. Under the General node, click the Name property, then type a name or accept the default name.

You can use any name that follows ORACLE naming conventions and is unique among blocks in the form. The block name is an internal descriptor that is not displayed at runtime.


About multi-record blocks About multi-record blocks

Related Topics

A multi-record block displays multiple instances of each block item.

For example, when the Number of Records Displayed property is set to 3, Form Builder displays three instances of each item in the block—one instance for each record the block can potentially display. You can specify that an item in the block display fewer records by setting the Number of Items Displayed item property.


Creating a multi-record block Creating a multi-record block

Related Topics

To create a multi-record block:

  1. In the Object Navigator, click the Data Blocks node.

  2. Double-click the desired block object icon blkobjic.gif to display the Property Palette.

  1. Under the Records node, set the Number of Records Displayed property to the desired number of records.

Note: The default is 1. Setting Records Displayed greater than 1 makes the block a multi-record block.


Deleting a block Deleting a block

To delete a block:

  1. In the Object Navigator, click the desired block object icon.

  1. Choose Navigatorfrm00001.gifDelete.

Deleting a block also deletes the items the block contains, and any triggers that were attached to the block or to its items. If the block was a master or detail block in a relation, the relation is also deleted.


About scroll bars About scroll bars

Related Topics

The scroll bar is separate from the items in the block, and can be placed anywhere on any canvas in the form.

In the Layout Editor, you can move and resize the scroll bar and set its color and pattern attributes. You cannot, however, Cut, Copy, Delete, or Duplicate a scroll bar in the Layout Editor.


Deleting a block scroll bar Deleting a block scroll bar

To delete a scroll bar:

  1. In the Layout Editor, double-click the scroll bar to display the Property Palette.

  2. Set the Show Scroll Bar block property to No.


    Scroll Bar interaction at runtime
Scroll Bar interaction at runtime

The position of the scroll bar thumb in the scroll bar alley gives visual feedback to the operator about the relative position of the current record within the block's current record set.

Note, however, that in the case of a query, the scroll bar thumb indicates the position of the current record within the set of records that have been fetched so far. This may or may not include all records that match the query criteria.

For example, if 100 records match the query criteria but only 10 records are being fetched at a time, moving the scroll bar thumb to the bottom of the scroll bar alley would display the 10th record, not the 100th. Moving the scroll bar down again causes Form Builder to fetch the next set of 10 records.

Note: You can override the default array fetch mechanism for a block by calling the EXECUTE_QUERY built-in with the ALL_RECORDS parameter. Doing so, however, is not recommended when the set of records is likely to be large.


Creating a block scroll bar Creating a block scroll bar

Related Topics

To create a block scroll bar:

  1. In the Object Navigator, double-click the Block object icon blkobjic.gif for the desired block to display the Property Palette.

  2. Under the Scroll bar node:

frm90000.gif Set the Show Scroll Bar block property to Yes.

frm90000.gif Set the Scroll Bar Canvas property to specify on which canvas the scroll bar should be displayed.


Connecting to a database Connecting to a database

Related Topics

To connect to an Oracle database:

  1. Choose Filefrm00001.gifConnect.

  2. In the Connect dialog box:

frm90000.gif Type your user name, password, and database name.

frm90000.gif Click Connect.

When a connection to the database is made successfully, the status bar displays the Connect lamp: <Con>.


About Items About Items

Related Topics

Items are the interface objects that display information to operators and allow them to interact with your application.

Each item in a form (text item, image item, radio group, and so on), belongs to a block.

Form Builder supports several types of interface items that can be used to build an application's interface.

ActiveX control A custom control that simplifies the building and enhancing of user interfaces.

Bean area An identification of a JavaBean that supplies a control for this item.

chart item A bordered rectangle of any size that can display a chart or other display generated by Graphics Builder. Operators cannot navigate to or manipulate chart items.

check box A text label with a graphic state indicator that displays the current value as either checked or unchecked. Clicking on a check box toggles it to the opposite state.

display item A read-only text box whose value must be fetched or assigned programmatically. Operators cannot navigate to a display item or edit the text it contains.

image item A bordered rectangle of any size that can display images fetched from the database or read in from the file system.

list item A list of choices displayed as either a drop-down list, a list box, or a combo box.

OLE container An area that stores and displays an OLE object that is created from an OLE server application.

push button A rectangle with a text label or an icon graphic inside.

radio group A group of radio buttons, one of which is always selected.

sound item Sound items allow the user to load, record, edit, play, and save sounds.

text item A single- or multi-line text box that supports a variety of data types, format masks, and editing capabilities.

User area An area that stores and displays a user-defined item.

VBX control For use only in Microsoft Windows 3.1.


About data and control items About data and control items

Related Topics

Data items correspond to table columns within the database. By manipulating a data item (a text item, for example), the operator can automatically affect data that is in the database.

Control items do not have any association with the database. When the operator manipulates a control item, data within the database is not affected unless the appropriate SQL statements are provided. In general, control items allow the operator to perform common application functions, such as navigating from one screen to another, and do not allow operators to modify database data.

Control items can also be used to do the following:

frm90000.gif Display totals, averages, rankings, and other summary information calculated from values in data items and database tables.

frm90000.gif Accept input from operators that is required by the application, but that is not stored in the database.

frm90000.gif Display "look-up values," that is, database values derived from a different table.

When building a block, consider this:

frm90000.gif data blocks can contain both data items and control items

For example, a data block might contain four data items that display queried database values and a fifth item that displays calculated values but does not correspond to any column in the database. The fifth item would be a control item populated by an assignment statement in the trigger that does the calculation.

frm90000.gif control blocks cannot contain data items

Because control blocks are not associated with the database, none of the items they contain can be data items. (Control items may be populated with database values by writing SQL statements in trigger code.)

frm90000.gif buttons and chart items are always control items

Because buttons and chart items do not store values, they cannot relate to columns in the database, and are always control items.

frm90000.gif the values of control items may be referenced in code, in the same fashion as local and global variables.


About creating items About creating items

Related Topics

Once you create a data or control block, you can create items in that block at any time. Create items via the Object Navigator by inserting them under the desired block, or via the Layout Editor by drawing them on the desired canvas.

Keep in mind that a block is a logical, not a physical, container for items. The items in a block can be arranged in any layout and can be displayed on any canvas.

Before creating an item, decide in which block the item should be, and whether the item will be a data or a control item.

Creating Items in Data Blocks

When an item is created in a data block, Form Builder assumes the item is a data item, and sets its Database Item property to Yes. Data items are automatically included in any SELECT, UPDATE, and INSERT statements issued to the database.

If the new item created is a control item in a data block, its Database Item property must be explicitly set to No.

Creating Items in Control Blocks

When an item is created in a control block, that item is always a control item, regardless of how the item's Database Item property is set. (Because a control block is not associated with a database table, none of the items in a control block can be data items.)


Creating a data item Creating a data item

Next Step Related Topics

To create a data item:

Choose Toolsfrm00001.gifData Block Wizard to invoke a wizard that guides you through the process of creating a data item.

Or,

  1. In the Object Navigator, click the plus icon plusicn.gif beside the desired Data Blocks node.

Form Builder expands the Data Blocks node and displays its subnodes.

  1. Click the plus icon plusicn.gif beside the Items node.

  1. Click the Create button rcreate.gif in the toolbar.

A new item with a default name is inserted under the Items node.

  1. Double-click the object icon beside the newly created item to display the Property Palette.

  2. Under the General node:

frm90000.gif Set the Name property to the name of the desired database column.

frm90000.gif Set the new item's Type property to specify the type of item you want.

The default item type is text item. You can change the default by setting the Type property to the item type desired (check box, radio group, list item, and so on).

  1. Under the Physical node, set the Canvas property to the name of the desired canvas.

Note: To display an item at runtime, you must assign each interface item in a form to a canvas.


Creating a control item Creating a control item

Next Step Related Topics

To create a control item:

  1. In the Object Navigator, click the plus icon plusicn.gif beside the desired Data Blocks node.

Form Builder expands the Data Blocks node and displays its subnodes.

  1. Click the plus icon plusicn.gif beside the Items node.

  1. Click the Create button rcreate.gif in the toolbar.

A new item with a default name is inserted under the Items node.

  1. Double-click the object icon beside the newly created item to display the Property Palette.

  2. Under the Database node:

frm90000.gif Set the Database Item property to No.

Note: When you create an item in a data block, Form Builder assumes the item is a data item, and sets the Database Item property to Yes. Data items are automatically included in any SELECT, UPDATE, and INSERT statements issued to the database. If the item being created is a control item in a data block, you must explicitly set its Database Item property to No.

frm90000.gif Set the Type property to specify the type of item you want.

The default item type is text item. You can change the default by setting the Type property to the item type desired (check box, radio group, list item, and so on).

  1. Under the Physical node, set the Canvas property to the name of the desired canvas.

Note: To display an item at runtime, you must assign each interface item in a form to a canvas.


About Layout Editor Block Context About Layout Editor Block Context

Related Topics

Each Layout Editor window maintains block context that identifies the current block for item operations. The name of the current block is displayed in parentheses on the title bar of the Layout Editor window.

Block context affects item operations as follows:

frm90000.gif Items that you create in the Layout Editor are automatically assigned to the current block.

frm90000.gif Items that are selected when you issue the Set Block command are re-assigned to the new block.


Setting Layout Editor block context Setting Layout Editor block context

Related Topics

To change block context within the Layout Editor:

  1. In the Layout Editor, choose a block from the Block drop-down located in the upper region of the Layout Editor.

  2. Click the drop-down list box to display a list of all blocks.


    About assigning items to canvases
About assigning items to canvases

Related Topics

Canvases are displayed in windows at runtime; the canvas to which an item is assigned determines the window in which the item will be displayed. When an item is created by drawing it in the Layout Editor, that item is automatically assigned to the Layout Editor's current canvas. To display an item at runtime, assign each interface item in a form to a canvas by setting the item's Canvas property.

When the Canvas property for an item is left unspecified, that item is said to be a NULL-canvas item. NULL-canvas items are not displayed at runtime or in the Layout Editor at design time. You can use NULL-canvas items programmatically as variables, by assigning and referencing their values in PL/SQL code using :block_name.item_name syntax.

To make an item a NULL-canvas item, simply leave its Canvas property blank.


Changing the canvas assignment of an item Changing the canvas assignment of an item

To change the canvas assignment of an item:

frm90000.gif
In the Property Palette, set the item's Canvas property to the name of the desired canvas. The canvas specified must already be defined in the current form.

- Or -

frm90000.gif In a Layout Editor, Cut the desired item, then Paste it to a different canvas in another Layout Editor window.

- Or -

frm90000.gif In the Object Navigator, choose Navigatorfrm00001.gifVisual View to display the form hierarchy in the Visual View. In Visual View, items appear under the canvas to which they are assigned, and no blocks are displayed. Click the item which will be changed, and use the mouse to drag an item to a different canvas.


Converting an item to a different type Converting an item to a different type

Next Step Related Topics

To convert an item to a different item type:

  1. In the Object Navigator or the Layout Editor, double-click the item you want to convert to display the Property Palette.

  1. Under the General node, set the Type property to the desired item type.

When an item is converted to a different item type, the properties of the new item are set as follows:

frm90000.gif Properties that apply only to the new item type are set to the default settings for that item type.

frm90000.gif Properties that are common to both the original item type and the new item type retain their current settings.

For example, when you convert a text item to a check box, the Label property (which applies only to check box items) is set to the default setting, but the Data Type property (which applies to both text items and check boxes) retains its current setting.


About number of items displayed within a block About number of items displayed within a block

Related Topics

You can set the Number of Items Displayed item property to specify the number of records an item in a multi-record block should display. For example, a multi-record block with its Number of Records Displayed property set to 3 might include four multi-record text items and one single-record image item. Or, you might create a single button in a multi-record data block.


Specifying the number of items displayed within a block Specifying the number of items displayed within a block

Related Topics

To specify the number of records an item should display:

  1. Double-click the desired item in the Object Navigator or in the Layout Editor to display the Property Palette.

  2. Under the Records node, set the Number of Items Displayed property to specify the number of records the item should display.

frm90000.gif To display the number of records indicated by the block's Number of Records Displayed property setting, set Number of Items Displayed to 0 (the default).

frm90000.gif To display fewer records, set Number of Items Displayed to a number less than the block's Number of Records Displayed property setting, but greater than 0.

Number of Items Displayed cannot be set greater than the block's Number of Records Displayed property setting.


Changing the space between items in a multi-record block Changing the space between items in a multi-record block

Related Topics

To change the space between items:

  1. In the Layout Editor, select the desired item.

Special spacing handles are displayed in the middle of the top and bottom of the item's bounding box.

  1. Click and drag one of the spacing handles up or down.

When the Grid Snap option on the View menu is enabled, the amount of space between each item instance must be at least as large as the distance between snap points defined for the current grid.

If you are working in character cell ruler units, the amount of space between item instances must be at least as large as the height of a single cell. Thus, to increase the space between records in a 5 record item, you must drag the appropriate spacing handle up or down at least four character cells--one cell for each space between item instances.


Deleting an item Deleting an item

To delete an item:

  1. In the Object Navigator, click the desired item.

  1. Choose Navigatorfrm00001.gifDelete.

Deleting an item also deletes any triggers that are attached to that item.


About the default navigation sequence About the default navigation sequence

Related Topics

You can control the navigation path through an application by controlling the order in which the operator moves to items. Operators navigate by pressing navigational keys and by using the mouse. As the application designer, you can also initiate navigation programmatically by calling built in procedures such as GO_ITEM and GO_BLOCK from triggers and built-in subprograms.

When Form Builder navigates to an item and waits for input, that item is said to have the “input focus”. That is, the item is ready to accept keyboard input from the operator. Only one item in an application has the input focus at any time.

The sequence of blocks in a form and items in a block defines the default navigation order (sometimes called the TAB sequence or Tab Order.)

Blocks and items are sequenced within a form according to the order in which they appear in the Object Navigator. Each block and item has an implicit sequence number (1, 2, 3, etc.).

At form startup, Form Builder sets the input focus to the first item in the first block, as indicated by sequence. If the operator presses [Next Item] (the TAB key on most systems), the input focus moves to the next item in that same block. Pressing [Next Item] from the last item in the block sets focus back to the first item. Conversely, pressing [Previous Item] in the first navigable item moves the input focus to the last navigable item. Pressing [Next Block] moves the input focus to the first item in Block 2.


Specifying the default navigation sequence Specifying the default navigation sequence

Related Topics

To define the default navigation sequence:

  1. In the Object Navigator, arrange all of the blocks in the form according to the desired navigation sequence.

To move a block, click and drag it to the desired location under the Data Blocks node.

  1. Arrange all of the items in each block according to the desired navigation sequence.

To move an item, click and drag it to the desired location under the Items node.

Note: The sequence of blocks within a form also defines the default commit sequence, that is, the order in which Form Builder validates each block during a save/commit operation.