Using application logic and Form Generator

About application logic and Form Generator

Where to enter application logic for use by Form Generator

Where Form Generator creates application logic

About generated application logic created by Form Generator

Overriding generated application logic created by Form Generator

About user-modified generated application logic and Form Generator

Modifying generated application logic created by Form Generator

Capturing application logic from Oracle Forms applications

About user-defined application logic and Form Generator

Entering user-defined event code for Form Generator

Entering user-defined named routines for Form Generator

About template application logic and Form Generator

Entering template event code for Form Generator

Entering template named routines for Form Generator

About object library application logic and Form Generator

Defining object library application logic for Form Generator

Defining user-named triggers as application logic for Form Generator

Defining application logic in a generated PL/SQL library

Form Generator code groups (grouped alphabetically)

Form Generator code groups (grouped by functionality)

Oracle Forms triggers


About application logic and Form Generator

Related Topics

Application logic is the name given to both code created by the Oracle Designer Generators and code you enter by hand.

Form Generator supports the following types of application logic:

Type of application logic	Description
generated	Event code and named routines in the generated application that have been created by a Generator from generatable application logic.
generatable	Code that a Generator may or may not generate. You can view generatable event code (but not named routines) in the Design Editor, but the code is not saved in the repository.
user-defined	Event code and named routines you define using the Design Editor or capture from an application. In either case, the code is saved in the repository.
template	Code in a template file that a Generator includes in the generated application.
object library	Code in an object library file that a Generator includes in the generated application.
user-modified generated	Modifications to generated code made using the target design-time environment. Captured and saved in the repository as user-modified generated application logic.
hand-coded	New code added into the generated application using the target design-time environment. Captured and saved in the repository as additional user-defined application logic.


Where to enter application logic for use by Form Generator

Related Topics

In a typical client server environment, we recommend you include as little code in the generated form as possible. In practice, this means including event code in the form that simply calls procedures on the server or in an attached library. This strategy offers several advantages:

•	it is easier to maintain generated applications, since code on the server or in a library can be modified without recompiling generated forms

•	in the case of server-side procedures, network traffic is minimized and performance improved

The recommended scenario is shown in the diagram below:

Note named routines that require database access (i.e. where the code includes SQL commands) must be held on the server and not in an attached library.

Where to enter event code

If the event code is to be included in every form:

•	enter block level and item level event code in an object library

•	enter form level event code in the template form

If event code is to be included in a single form or in some but not all forms, enter the event code in the repository against the required modules, module components and items.

We recommend that the event code merely calls named routines defined on the server or in a library attached to the generated form.

Where to enter named routines

In a typical client server environment, we recommend you create named routines (e.g. procedures) either on the server or in a library attached to the generated form. These named routines are then called by the event code incorporated in the generated form from the repository, an object library or the template.

If the named routines are to be held on the server, do either or both of the following:

•	enter the named routine in the repository using the Logic Editor, and then run the Server Generator to create the named routines on the server

•	enter the named routines manually in a text file, and then run the text file using SQL*Plus

If the named routines are to be held in an attached library, do some or all of the following:

•	enter the named routines in a library manually using Form Builder and attach the library to the template form

•	enter the named routines as application logic in a repository module of type Library, and generate the library module (for more information, refer to About generated forms and PL/SQL library modules)

•	enter the named routines as application logic for the module from which Form Generator will generate the form, and set the PGULIB preference to direct Form Generator to include all generated, user-defined, and user-modified generated named routines in a generated module library


Where Form Generator creates application logic

Where Form Generator creates application logic depends on the type of application logic and the setting of the PGULIB preference.

Form Generator always copies template application logic and object library application logic into the generated form.

If PGULIB is set to No (the default), Form Generator includes generated application logic (event code and program units), user-defined application logic (event code and program units), and user-modified generated application logic (event code and program units) in the generated form.

If PGULIB is set to Yes, Form Generator creates a generated module library and includes in it generated program units, user-defined program units, and user-modified generated program units. Form Generator attaches the generated module library to the generated form. In addition, Form Generator attaches any libraries attached to the generated form to the generated module library.


About generated application logic created by Form Generator

Related Topics

What is generated application logic?

Generated application logic is the code generated by Form Generator each time a form is generated. Generated application logic is not stored in the repository. The application logic generated for any one module is a subset of the generatable application logic that Form Generator might generate.

If the form has already been generated, any existing generated application logic is overwritten.

Generated application logic comprises:

•	generated code groups

•	generated named routines

What are generated code groups?

Generated code groups are the standard sections of trigger code (and any called program units) generated by Form Generator.

The code groups generated for any one module are a subset of the possible generatable code groups. Although generated application logic is not stored in the repository, the generatable code groups are represented in the Design Editor by the [image] icon. This enables you to sequence user-defined code groups and user-modified generated code groups (represented by the [image] and [image] icons respectively) before and after generated code groups.

Generated code groups are identified by a unique comment (e.g. /*CGRI$CHECK_ON_DELETE*/). If the generated form is captured into the repository, these comments will enable Form Generator to identify the code as generated application logic. Generated application logic is not captured into the repository during design capture.

For a list of generated code groups, refer to the following:

•	Form Generator code groups (grouped alphabetically)

•	Form Generator code groups (grouped by functionality)

What are generated named routines?

Generated named routines are the standard program units created at module level by Form Generator.

The named routines generated for any one module are a subset of the possible generatable named routines. Note that unlike generatable event code, generatable named routines are not represented in the Design Editor.

You can use the PGULIB preference to specify whether Form Generator creates generated named routines in the generated form itself or in a generated module library attached to the generated form.


Overriding generated application logic created by Form Generator

Related Topics

You can override generatable code groups with your own alternative code groups in either or both of the following ways:

•	you can explicitly override an individual generatable code group for a particular element with code held in the repository

•	you can override all occurrences of a generatable code group with code held in an object library

In both cases, note that Form Generator only includes the alternative code group if the generatable code group would have been included in the generated application. Also note that Form Generator always includes program units associated with generatable code groups in the generated application, regardless of whether the code groups themselves have been included in the generated application or have been overridden with an alternative code group.

The code you use instead of a generatable code group must be in the following format:

/* your comment - optional */

BEGIN

your code or NULL;

END;

Comments in the alternative code group determine whether the code group is captured into the repository during design capture. If you do not include a comment, Form Generator adds one during generation.

If you include as a comment the name of another generator code group (i.e. a name that begins CGxx$ but is not the name of the code group that is overridden), generation will not complete successfully.

Explicitly overriding a generatable code group for a particular element

1.	In the Design Editor, select the event that executes the code group you want to override.

2.	Highlight the generatable code group that you want to override.

3.	Click the Override button.

The icon beside the code group changes from [image] to [image].

If you subsequently decide you do want the generatable event code included in the generated application, you can use the Revert button to discard the user-defined event code.

4.	Use the Logic Editor to enter code for the alternative code group.  How

During generation, Form Generator includes the alternative code group in the generated application (providing the generatable code group would have been included), adds the name of the overridden code group as a comment, and adds the suffix _MODIFIED to the name. During design capture, Form Generator captures the alternative code group as user-modified generated application logic.

Overriding all occurrences of a generatable code group using an object library

1.	Use Form Builder either to copy one of the standard object libraries shipped with Form Generator or to create a new object library.

Note:	We strongly recommend you do not modify a standard object library directly. Instead, always take a copy of a standard object library and modify the copy.

2.	Use Form Builder to create an object group called CGOC$CODE_OVERRIDE_SOURCE.

3.	Add a form level user-named trigger to the object group.

4.	Give the user-named trigger the same name as the generatable code group that you want to override.

5.	(optional) Include a comment in the format /*my comment*/.

The comment to include depends on how you want the alternative code treated during design capture:

•	If you do not want the alternative code captured into the repository during design capture, either do not include a comment (recommended) or include the name of the overridden code group as a comment. During generation, Form Generator adds the name of the overridden code group as a comment (if it was not included). During design capture, Form Generator recognizes the code group name as the name of a generatable code group and therefore does not capture the code group into the repository.

•	If you want the alternative code captured into the repository as user-modified generated application logic, include as a comment the name of the overridden code group and add a unique suffix to the code group name. During generation, Form Generator copies this comment into the generated application. During design capture, Form Generator captures the alternative code group as user-modified application logic.

6.	Enter the PL/SQL code you want to execute instead of the overridden generatable code.

7.	Include the CGOC$CODE_OVERRIDE_SOURCE object group in the object library.

During generation, Form Generator includes the code group in the generated application (providing the generatable code group would have been included) and adds a comment indicating the object library that was the source of the code group.

Note that Form Generator uses the first object group it finds with the name CGOC$CODE_OVERRIDE_SOURCE, and ignores any subsequent object groups with this name. If you are using multiple object libraries, make sure that the correct CGOC$CODE_OVERRIDE_SOURCE object group will be used.

Notes

Form Generator uses the following order of precedence when determining whether to use a generatable code group, or whether to override it with a code group defined in the repository or stored in an object library.

if:	a generatable code group has been explicitly overridden with a code group stored in the repository, use the code group stored in the repository
otherwise, if:	a generatable code group has been overridden by a code group in the CGOC$CODE_OVERRIDE_SOURCE object group in the object library, use the code group from the object library
otherwise:	use the generatable code group


About user-modified generated application logic and Form Generator

Related Topics

Using Form Builder, you can modify the generated application logic Form Generator has created.

User-modified generated application logic comprises:

•	user-modified generated code groups

•	user-modified generated named routines

To prevent user-modified generated application logic from being overwritten if the form is generated again, capture the application logic into the repository. To identify user-modified generated application logic, before capturing it you must change the comment that Form Generator creates during generation. For more information, refer to Modifying generated application logic created by Form Generator.

Capturing the user-modified generated application logic into the repository enables you to generate the form again, incorporating the changes you have made using Form Builder. For more information, refer to Capturing application logic from Oracle Forms applications.

User-modified generated application logic is represented in the Design Editor by the [image] icon.

When you generate the form again, you can use the PGULIB preference to specify whether Form Generator creates user-modified generated named routines in the generated form itself or in a generated module library attached to the generated form.


Modifying generated application logic created by Form Generator

Related Topics

To modify generated application logic:

1.	Open the generated form (or generated module library) using Form Builder and navigate to the generated application logic you want to modify.

2.	If you intend to generate the form again using Form Generator, append text to the comment generated by Form Generator.

The text you append must be alphanumeric, an underscore (_) or a dollar symbol ($).

For example, Form Generator might create the comment /*CGRI$CHECK_ON_DELETE*/. If you want to modify the generated code, you might add _modified to the comment (i.e. the comment in the generated code would now be /*CGRI$CHECK_ON_DELETE_modified*/).

If the generated form is captured into the repository, the modified generated comments will enable Form Generator to identify the changed code as user-modified generated application logic. Unlike generated application logic, user-modified generated application logic is captured into the repository during design capture.

3.	Make the changes to the generated application logic as required.

If you intend to generate the form again, capture the user-modified generated application logic into the repository. For more information, refer to Capturing application logic from Oracle Forms applications.

When you have captured user-modified generated application logic into the repository, you can subsequently edit it using the Logic Editor. For more information about editing application logic refer to Creating, editing, and checking logic in the Design Editor help system.


Capturing application logic from Oracle Forms applications

Related Topics

You can capture (or 'reverse engineer') application logic into the repository from:

•	forms you did not generate using Form Generator

•	forms (and generated module libraries) you did generate using Form Generator and subsequently modified using Form Builder

During design capture, any user-defined application logic or user-modified generated application logic is captured into the repository. However, Form Generator uses comments in the code to identify and ignore:

•	generated application logic

•	template application logic

•	object library application logic

Where a trigger is captured, the Execution Hierarchy property of the corresponding event is set to the same value.

Note that BEGIN and END; statements must appear on separate lines.

Capturing hand-coded application logic from non-generated forms

In the scenario shown below, you have created a form by hand using Form Builder. This form includes trigger code and program units (collectively described as 'application logic'). Capturing the entire form (including the application logic) into the repository as a new module enables you to generate the form, incorporating the code you entered using Form Builder.

To capture application logic when capturing non-generated forms into the repository:

1.	Select Generate→Capture Design of→Form to display the Capture Form Design dialog box.

2.	Specify the form containing the application logic you want to capture.

3.	Select the Capture BOTH module design and application logic radio button to capture the form and associated application logic into the repository as a new module.

4.	Click Start to capture the form and associated application logic into the repository.

Captured trigger code is divided into event code segments and sequenced at the beginning of each event in the new repository module before any generatable code groups. You will probably want to re-order the captured code groups, sequencing them between generatable code groups.

Note that any user-named triggers are captured into the repository as named routines.

Capturing hand-coded and modified generated application logic from generated forms

In the scenario shown below, you have generated a form from a repository module definition. Subsequently you have used Form Builder to modify the generated application logic (now referred to as user-modified generated application logic) and added some extra code (hand-coded application logic). You can capture both kinds of application logic into the repository.

1.	In the Design Editor, select the existing repository module from which the modified form was originally generated.

2.	Select Generate→Capture Application Logic... to display the Forms Capture Application Logic dialog box.

3.	Specify the form containing the application logic you want to capture.

The Update application logic of existing repository module radio button is permanently selected to enable you to capture hand-coded application logic and user-modified generated application logic into the existing repository module.

4.	Click Start to capture the application logic into the repository.

Notes

•	Any captured user-modified generated application logic is placed in its original position in the sequence of generatable code groups.

•	Any user-named triggers are captured into the repository as named routines.

•	To identify user-modified generated application logic, before capturing it you must change the comment that Form Generator creates during generation. For more information, refer to Modifying generated application logic created by Form Generator.

•	You can capture hand-coded application logic and user-modified generated application logic from generated forms into Oracle Repository directly from Form Builder.

•	If you have added hand-coded program units or modified generated program units in a generated module library (i.e. because PGULIB was set to Yes when a form was generated), follow the instructions above for capturing application logic from a generated form.

Form Generator captures the program units from the generated module library and includes them as named routines for the repository module from which the form was generated. In other words, Form Generator does not capture the generated module library as a repository module.

If a program unit with the same name appears in both the generated form and the generated module library, Form Generator captures the program unit from the form and ignores the program unit in the generated module library. If you add a new program unit to the form, Form Generator captures it into the repository as a module-level named routine.

With the above in mind, be aware of the following possibility. Assume you have set PGULIB to Yes and you have entered a module level user-defined named routine for a repository module. When you generate the form, Form Generator generates a user-defined program unit from the named routine and includes it in a generated module library. Subsequently, you add a new program unit to the generated form with the same name as the program unit in the generated module library. If you now capture the form and merge it with the existing repository module, Form Generator replaces the original module level user-defined named routine with the new program unit. This might not be what you intended.

•	There are some circumstances when Form Generator will not update properties of repository objects. For more information, refer to When are repository objects not updated during generation and design capture.


About user-defined application logic and Form Generator

Related Topics

User-defined application logic can be either or both:

•	code you enter into the repository using the Design Editor and the Logic Editor

•	code you enter using Form Builder as hand-coded application logic and then capture into the repository

When you enter user-defined application logic in the Design Editor, you specify it as being one of the following:

•	user-defined event code, which is generated as Oracle Forms trigger code

•	a user-defined named routine, which is generated as an Oracle Forms program unit and called from triggers or other program units

You can use the PGULIB preference to specify whether Form Generator includes user-defined named routines (but not user-defined event code) in the generated form itself or in a generated module library attached to the generated form.


Entering user-defined event code for Form Generator

Related Topics

You can enter user-defined event code against modules, module components, items, and action items for Form Generator. You can also define where the code is sequenced in relation to other code (generatable event code and other user-defined event code) generated for the same event.

To enter user-defined event code for Form Generator:

1.	In the Design Editor, create user-defined event code.  How

2.	Select one of the following options from the Execution Hierarchy dropdown list to specify whether the trigger is to execute before or after a trigger with the same name at a higher level in the form, rather than simply overriding it:

Override	Specifies that the current trigger fire instead of any trigger by the same name at any higher scope.
Before	Specifies that the current trigger fire before firing the same trigger at the next-higher scope.
After	Specifies that the current trigger fire after firing the same trigger at the next-higher scope.
Notes

•	The module is the highest scope for a trigger, so you cannot set the Execution Hierarchy for events you define for modules.

•	When you create user-defined event code in the repository, you can enter a comment describing the event code you have entered. Note that this comment is for documentation purposes only. Form Generator does not include this comment in the generated form.


Entering user-defined named routines for Form Generator

Related Topics

You can enter user-defined named routines against modules, module components, items, and action items for Form Generator.

To enter user-defined named routines for Form Generator:

1.	In the Design Editor, create a user-defined named routine.  How

2.	Specify the type of routine (e.g. Procedure).

Note that the names of named routines:

•	within a module must be unique

•	must be no more than 30 characters long

•	must not conflict with names reserved for generated routines (i.e. the name must not start with the characters CG, followed by two characters, followed by a $ sign)

3.	Use PGULIB to specify whether Form Generator includes user-defined named routines in the generated form itself or in a generated module library attached to the generated form.


About template application logic and Form Generator

Related Topics

Template application logic is the name given to named routines or event code (i.e. program units or form level triggers) that you create in the template form. You might create template application logic to perform a common function that you want in all the forms you generate.

Form Generator copies program units from the template form straight into the generated form.

Form Generator copies form level trigger code from the template into the generated form. Form Generator uses comments in the template trigger code to determine whether to sequence it before or after generated code and user-defined code for the same trigger.

Form Generator also copies form-level sub-classed triggers into the generated form.

Notes

Form Generator never places template application logic in a generated module library, regardless of the setting of PGULIB.

Form Generator does not copy procedures from the template form that have been subclassed from another form. Place such procedures in a library attached to the template form.

If template application logic has been defined for a trigger, Form Generator never adds object library application logic to the same trigger.


Entering template event code for Form Generator

Related Topics

To define event code in a template form:

1.	Open the template form using Form Builder.

2.	If it does not exist already, create a form level trigger of the required type (e.g. PRE-INSERT) in the template form.

3.	Enter the trigger code in the template form for the appropriate trigger.

For example:

BEGIN

COMMIT;

END;

4.	Add one of the following comments above the code you have entered to indicate whether the template code group should be placed before or after other code for the same trigger in the generated form:

Comment	Code from the template executes:
/*CGAP$TES_SEQUENCE_BEFORE*/	before generated and user-defined code
/*CGAP$TES_SEQUENCE_AFTER*/	after generated and user-defined code
If the generated form is captured into the repository, these comments also enable Form Generator to identify the code as template application logic. Template application logic is not captured into the repository during design capture.

Below is an example of a comment indicating the following code is to execute before generated event code and user-defined event code for the same trigger:

/*CGAP$TES_SEQUENCE_BEFORE*/

BEGIN

COMMIT;

END;

Below is an example of a comment indicating the following code is to execute after generated event code and user-defined event code for the same trigger:

/*CGAP$TES_SEQUENCE_AFTER*/

BEGIN

COMMIT;

END;

Note 1:	If you do not add one of the comments described above, Form Generator will add the comment /*CGAP$TES_SEQUENCE_BEFORE*/ and position the template application logic accordingly.

Note 2:	To include multiple template code groups for the same trigger, make sure each code group starts with BEGIN and finishes with END; statements. Form Generator uses BEGIN and END; statements to identify the template code group associated with /*CGAP$TES_SEQUENCE_BEFORE*/ and /*CGAP$TES_SEQUENCE_AFTER*/ comments. If you do not include BEGIN and END; statements, Form Generator might associate the code group with the wrong comment and position it incorrectly.

5.	Use the template trigger's Execution Hierarchy property to control whether the trigger is to execute before or after a trigger with the same name at a higher level in the form, rather than simply overriding it.

Using the Execution Hierarchy property enables you to include module level triggers in the template that execute before or after generated block-level or item-level triggers.


Entering template named routines for Form Generator

Related Topics

To define named routines in a template form:

1.	Open the template form using Form Builder.

2.	Create a new program unit at form level.

3.	Enter the appropriate code for the program unit.

4.	Add the following comment to identify the program unit as template application logic:

CGAP$TEMPLATE_NAMED_ROUTINE

If the generated form is captured into the repository, this comment will enable Form Generator to identify the program unit as template application logic. Template application logic is not captured into the repository during design capture.

5.	Save the changes you have made.


About object library application logic and Form Generator

Related Topics

Object library application logic is code (event code and named routines) associated with objects in an object library that is added to blocks and items created during form generation.

When Form Generator includes an object from an object library in a generated form, any code associated with that object is also included in the generated form.

Notes

Form Generator never places object library application logic in a generated module library, regardless of the setting of PGULIB.

If template application logic has been defined for a trigger, Form Generator never adds object library application logic to the same trigger.


Defining object library application logic for Form Generator

Related Topics

To define object library application logic:

1.	Using Form Builder, create an object in a module.

2.	Give the object an appropriate name for use by Form Generator.

For more information about naming objects in object libraries so that they are used during forms generation, refer to Form Generator and object libraries.

3.	Enter the code you want generated items to inherit from this object.

For example, you might enter the following trigger code:

BEGIN

COMMIT;

END;

4.	Add one of the following comments above any trigger code you have entered to indicate whether the object library code group should be placed before or after other code for the same trigger in the generated form:

Comment	Code from the object library executes:
/*CGAP$OLES_SEQUENCE_BEFORE*/	before generated and user-defined code
/*CGAP$OLES_SEQUENCE_AFTER*/	after generated and user-defined code
If the generated form is captured into the repository, these comments will enable Form Generator to identify the code as object library application logic. Object library application logic is not captured into the repository during design capture.

Below is an example of a comment indicating the following code is to execute before generated code groups and user code groups for the same trigger:

/*CGAP$OLES_SEQUENCE_BEFORE*/

BEGIN

COMMIT;

END;

Below is an example of a comment indicating the following code is to execute after generated code groups and user code groups for the same trigger:

/*CGAP$OLES_SEQUENCE_AFTER*/

BEGIN

COMMIT;

END;

Note: If you do not add one of the comments described above, Form Generator will add the comment /*CGAP$OLES_SEQUENCE_BEFORE*/ and position the object library application logic accordingly.

5.	Use the object library trigger's Execution Hierarchy property to control whether the trigger is to execute before or after a trigger with the same name at a higher level in the form, rather than simply overriding it.

6.	Drag the object into an object library.

You can now specify the object library as one of the object libraries to use when generating the form. For more information, refer to Subclassing or copying objects from object libraries into generated forms.


Defining user-named triggers as application logic for Form Generator

Related Topics

About user-named triggers

An Oracle Forms user-named trigger is a trigger that you define yourself using Form Builder, and then call explicitly from other triggers or user-named subprograms.  Each user-named trigger defined at the same definition level must have a unique name.

To execute a user-named trigger, you must call the EXECUTE_TRIGGER built-in procedure, as shown below:

Execute_Trigger('my_user_named_trigger');

To include a user-named trigger in a generated form:

Define the user-named trigger in any of the following:

•	the repository, as a type of named routine (for more information, refer to Entering user-defined named routines for Form Generator)

•	an object library, using Form Builder to create a user-named trigger for an object that you then drag into the object library (for more information, refer to Defining object library application logic for Form Generator)

•	the template form, using Form Builder to create a a user-named trigger (for more information, refer to Entering template named routines for Form Generator)


Defining application logic in a generated PL/SQL library

Related Topics

Follow the instructions in this topic when generating a PL/SQL library module from a repository module definition. Note that there are other ways to create generated PL/SQL library modules. For more information, refer to About generated forms and PL/SQL library modules.

To define application logic in a generated library:

1.	Create a repository module of type Library.

2.	Use the Logic Editor to enter the named routines that will be called from event code.

3.	Save the changes you have made.

4.	Link the module of type Library to one or more modules of type Default.

5.	Generate the library, either separately or when generating a linked form.


 Form Generator code groups (grouped alphabetically)

Code groups generated by Form Generator always start with the letters CG. To see information about one of these code groups, click on the letter following CG.

A

CGAI$PERFORM_ACTION	Perform navigation for selected action item
CGAV$CHK_ON_INSERT	Check that only one foreign key item in an arc has a value
CGAV$CHK_ON_UPDATE	Check that only one foreign key item in an arc has a value
B

CGBG$WHEN_BUTTON_PRESSED	Perform action recorded for selected button
CGBG$WHEN_NEW_ITEM_INSTANCE	Perform navigation for current record item
CGBK$ON_DELETE	Transactional trigger for delete processing
CGBK$ON_INSERT	Transactional trigger for insert processing
CGBK$ON_LOCK	Transactional trigger for lock processing
CGBK$ON_UPDATE	Transactional trigger for update processing
CGBK$SET_WHERE_CLAUSE	Populate Form parameter for block synchronization
CGBS$DISABLE_MENU_KEY	Disable block navigation via the [Block Menu] function key
CGBS$DISABLE_NXTKEY	Disables the [Next Primary Key Fld] key at form level
CGBS$KEY_CLRBLK_FRM	Call synchronization checks before clearing current block
CGBS$KEY_CLRREC	Clear detail blocks unless current row is new and invalid
CGBS$KEY_CQUERY_FRM	Check if query allowed to avoid unnecessary synchronization
CGBS$KEY_ENTQRY_FRM	Check if query allowed to avoid unnecessary synchronization
CGBS$KEY_EXEQRY_FRM	Check if query allowed to avoid unnecessary synchronization
CGBS$MULTIPLE_MASTER_O_P_D	Query all detail blocks for current master block
CGBS$NAVIGATE_NXTBLK	Navigate from master to detail block when in last item
CGBS$NAVIGATE_PRVBLK	Navigate from the detail to master block when in first item
CGBS$ON_CLEAR_DETAILS	Clear all detail blocks for a given master block
CGBS$ON_POPULATE_DETAILS	Query all detail blocks for a given master block
CGBS$STARTUP	Perform start-up processing for block synchronization
CGBS$STARTUP_NO_BS	Execute query with current context during form startup
CGBS$TAB_CANVAS_WNFI	Instantiate control poplist and navigate to first block
CGBS$TOGGLE_QUERY_MODE	Toggle mode for block synchronization between ON and OFF
CGBS$WHEN_BUTTON_PRESSED	Call procedure to toggle block synchronization mode
CGBS$WHEN_CHECKBOX_CHANGED	Call procedure to toggle block synchronization mode
CGBS$WHEN_NEW_BLOCK_INSTANCE	Ensure canvases are synchronized correctly
C

CGCA$DISPLAY_CALENDAR	Display calendar window to select value for date item
CGCC$CHK_CONS_ON_INS	Validate row against check constraints on source table
CGCC$CHK_CONS_ON_UPD	Validate row against check constraints on source table
CGCC$CHK_CONS_ON_VF	Validate item against check constraints on source column
CGCC$CROSS_FLD_WARN	Perform cross item validation and warn if values are invalid
CGCD$CALC_<BLOCK>_<ITEM>	Derive a value for a formula item which uses a decode statement
CGCD$POST_INSERT	Refresh items corresponding to server-derived columns after insert
CGCD$POST_UPDATE	Refresh items corresponding to server-derived columns after update
CGCD$QRY_SERVER_VER	Determine server version
CGCD$SYNC_ITEMS	Synchronize derived column with corresponding display item
CGCD$SYNC_NEW_ITEM	Synchronize derived column with corresponding display item
CGCD$VALIDATE_ITEMS	Warn, retrieved derivation does not match expected formula
CGCF$CALL_WNFI	Call WHEN-NEW-FORM-INSTANCE code from KEY-CLRFRM
D

CGDF$POST_QUERY	Call user defined descriptive flex processing
CGDF$PRE_INSERT	Call user defined descriptive flex processing
CGDF$PRE_QUERY	Call user defined descriptive flex processing
CGDF$PRE_UPDATE	Call user defined descriptive flex processing
CGDF$REGISTER_DF	Register descriptive flex item
CGDF$WHEN_NEW_ITEM_INSTANCE	Call user defined descriptive flex processing
CGDF$WHEN_VALIDATE_ITEM	Call user defined descriptive flex processing
CGDF$WHEN_VALIDATE_RECORD	Call user defined descriptive flex processing
CGDV$PC_POPULATE_MEANING	Populate non-base table field to display domain meaning
CGDV$POPULATE_DYNAMIC_LISTS	Query values to populate dynamic lists
CGDV$PQ_POPULATE_MEANING	Populate non-base table field to display domain meaning
CGDV$REF_CODES_LOV	Call form to display List Of Values(LOV) for current item
CGDV$VALIDATE_OVF	Validate current item against the reference codes table
E

CGED$EDIT_ITEM	Display the item editor for the current item
F

CGFD$CALC_<BLOCK>_<ITEM>	Derive a value for a formula item which uses a decode statement
CGFD$<FUNC>_<BLOCK>_<ITEM>	Derive the summary value of a formula item
CGFD$WARN_ON_QUERY	Warn if query criteria exist that summary maybe incorrect
CGFF$INIT_LIST	Initialize list item with values for calling other modules
CGFF$KEY_F0	Call other module as defined in repository module network
CGFF$KEY_F1	Call other module as defined in repository module network
CGFF$KEY_F2	Call other module as defined in repository module network
CGFF$KEY_F3	Call other module as defined in repository module network
CGFF$KEY_F4	Call other module as defined in repository module network
CGFF$KEY_F5	Call other module as defined in repository module network
CGFF$KEY_F6	Call other module as defined in repository module network
CGFF$KEY_F7	Call other module as defined in repository module network
CGFF$KEY_F8	Call other module as defined in repository module network
CGFF$KEY_F9	Call other module as defined in repository module network
CGFF$WHEN_LIST_CHANGED	Call module that corresponds to value selected
CGFK$CLR_FK_ON_INS	Clear foreign key columns if any optional column is null
CGFK$CLR_FK_ON_UPD	Clear foreign key columns if any optional column is null
CGFK$DEFAULT_WHERE	Create DEFAULT WHERE clause for current block
CGFK$LIST_OF_VALUES	Call form displaying List Of Values copying user selection
CGFK$PQ_CLR_DEPS	Clear dependent items on pre-query
CGFK$QRY_LOOKUP_DATA	Query associated lookup item values for the foreign key(s)
CGFK$RESET_BLOCK_WHERE_ CLAUSE	Reset block WHERE clause after query
CGFK$VALD_FK_ON_INS	Validate that foreign key value exists in referenced table
CGFK$VALD_FK_ON_UPD	Validate that foreign key value exists in referenced table
CGFK$VALDIDATE_FK_OVF	Validate that foreign key value exists in referenced table
CGFK$WVI_CLR_DEPS_OVF	Clear associated items if current item is null
CGFL$CLEAR_GLOBALS	Clear global variables passed back to calling module
CGFL$KEY_ENTER	Set global variables passed back to calling module
CGFL$SET_GLOBALS	Set global variables passed back to calling module
CGFL$SET_GLOBALS_ON_KEY_NEXT_ ITEM	Set global variables passed back to calling module
G

CGGN$CALL_GENERATOR_CODE	Execute generated WHEN-NEW-FORM-INSTANCE code
CGGN$GET_DATE_AND_USER	Record current user and date during form startup
CGGN$KEY_CLRFRM	Perform the default clear form operation
CGGN$KEY_DELREC	Perform the default delete record operation
CGGN$KEY_DUPREC	Perform the default duplicate record operation
CGGN$KEY_ENTER	Perform the default enter operation
CGGN$KEY_EXIT	Perform the default form exit operation
H

CGHP$CALL_HELP_FORM	Call help form after setting globals with block/column name
CGHP$CALL_HTML_HELP	Implement calls to HTML-based help
CGHP$SET_MOD_GLOBALS	Set global variables storing module name
I

CGIM$DISPLAY_IMAGE_ON_QUERY	Load image from a file during post query processing
CGIM$WHEN_IMAGE_ACTIVATED	Load image from a file when current image item activated
CGIM$WHEN_IMAGE_PRESSED	Load image from a file when image item is pressed
CGIM$WHEN_VALIDATE_ITEM	Load image from a file when file name item is validated
J

CGJN$CHK_NOTE_ON_DEL	Ensure a reason for record deletion is entered by user
CGJN$CHK_NOTE_ON_INS	Ensure a reason for record creation is entered by user
CGJN$CHK_NOTE_ON_UPD	Ensure a reason for record update is entered by the user
CGJN$JOURNAL_DELETE	Create journal ENTRY to record the delete operation
CGJN$JOURNAL_INSERT	Create journal ENTRY to record the insert operation
CGJN$JOURNAL_UPDATE	Create journal entry to record the update operation
K

L

CGLL$BLK_INIT_LOOKUP_LISTS	Populate GUI lookup list item elements at block level
CGLL$INIT_LOOKUP_LISTS	Populate GUI lookup list item elements at form level
CGLL$QRY_LOOKUP_DATA	Set list item label from foreign key value
CGLL$SET_DEFAULT_WHERE	Modify block default where clause for lookup list item value
CGLL$VALD_FK_ON_INS	Validate inserted lookup list item value
CGLL$VALD_FK_ON_UPD	Validate updated lookup list item value
CGLL$VALIDATE_FK_FIELDS	Check foreign key exists for lookup list item
CGLT$INIT_TAB_BLOCKS	Initialise tabbed block canvases
CGLT$NEW_TAB_PAGE	Show related canvases for this tab
CGLT$TAB_BLOCK_MANAGEMENT	Switch tab management code on/off
CGLT$TAB_NEW_BLOCK	Show canvases for this block
CGLU$SET_LOV	Set LOV mode dependent on form mode
CGLV$WHEN_MOUSE_DOWN	Synchronize MOUSE_RECORD system variable in multi-row blocks
CGLY$CNTRL_TAB_CHANGED	Perform navigation to canvas selected from control poplist
CGLY$COPY_USER_DATE	Populate USER/DATE items in canvas headers and footers
CGLY$INIT_CANVASES	Initialise canvas management during form startup
CGLY$MANAGE_CANVASES	Ensure that correct canvases are visible
CGLY$SWITCH_TAB_CANVAS	During navigation display current canvas in control poplist
CGLY$SYNC_DETAIL_SINGLE_ AREA	Synchronize single area canvas items
CGLY$SYNC_SINGLE_AREA	Synchronize single area canvas items
CGLY$WHEN_BUTTON_PRESSED	Replicate default menu processing
CGLY$WINDOW_MANAGEMENT	Check window and call general window manage procedure
M

CGMR$MOVETO_LAST_POSTN	Move cursor to last position
CGMR$SET_CURRENT_POSTN	Record current cursor position
N

CGNV$CLOSE_ALL_WINDOWS	Close any open windows in the form
CGNV$ENTER_QUERY_PARAMS	Set item values in query mode from parameters
CGNV$MAP_PARAM_TO_ITEMS	Map form parameter values to items during startup
CGNV$NAVIGATE_NXTBLK	Perform specified navigation from last item in a block
CGNV$NAVIGATE_PRVBLK	Perform specified navigation from last item in a block
CGNV$NAVPAG_REDIRECT	Redirect navigation to correct subcomponent
CGNV$PRE_FORM_NAVCCF	Record child form and child window closure policy
CGNV$PRE_FORM_NAVCUR	Record window layout and placement details
CGNV$REMOVE_CHILD_FORM	Remove closed child form from record group
CGNV$RESET_ENT_QRY_FLAG_ POST_QRY	Reset enter query flag during post query
CGNV$RESTRICT_NEW	If Startup mode is Restricted New, copy param vals to item
CGNV$SAVE_CUR_ITM	Retain current item before navigation occurs
CGNV$STARTUP_MODE	Control startup mode of the generated form
CGNV$WHEN_BUTTON_PRESSED	Perform specified navigation via keyboard shortcut
CGNV$WHEN_WINDOW_ACTIVATED	Navigate to current item for window during activation
CGNV$WHEN_WINDOW_CLOSED	Close child windows/forms during closure of parent window
CGNV$WHEN_WINDOW_DEACTIVATED	Record current item for window during deactivation
O

P

CGPR$CPY_CTX_GLOBALS	Set primary key item values from globals if auto querying
CGPR$DEFAULT_CTX_GLOBAL	Create globals for recording context for first block
CGPR$SAVE_CTX_ON_EXIT	Record primary key values for row during form exit
Q

R

CGRI$CASCADE_DELETE	Perform cascade delete for row on associated tables
CGRI$CASCADE_UPDATE	Perform cascade update for row on associated tables
CGRI$CHECK_ON_DELETE	Validate deletion according to referential integrity rules
CGRI$POST_INSERT	Record primary key details replacing ROWID functionality
CGRI$POST_QUERY	Record primary key details replacing ROWID functionality
CGRI$POST_UPDATE	Record primary key details replacing ROWID functionality
CGRL$PRE_QUERY	Populate primary key items from parameters for query
CGRL$QUERY_FIND	Provides Applications-style row LOV functionality

S

CGSM$SHOW_STRIP_MENU	Generate SHOW_MENU call
CGSP$DERIVE_SEQ	Derive next sequence within a parent by query on table
T

CGTE$BLK_LEVEL_ERROR_TRAP	Trap and display errors returned from server side validation
CGTR$CHANGE_NAVIGATOR_NODE	Displays/hides child nodes of current node in navigator
CGTR$INIT_NAVIGATOR	Initializes navigator for an instance of a form
CGTR$RESIZE_NAVIGATOR	Resizes navigator item and canvas when window is resized
CGTR$SELECT_NAVIGATOR_NODE	Displays the block data for the selected record node
U

CGUE$ON_DELETE	Call named user exit during delete processing
CGUE$ON_INSERT	Call named user exit during insert processing
CGUE$ON_UPDATE	Call named user exit during update processing
CGUF$DEFAULT_VALUES	Assign default values to new records
CGUI$GET_UNIQUE_ID	Generate unique identifier value for item from source
CGUI$PRESERVE_UID	Save the value of UID item prior to duplicating the record
CGUI$RESTORE_UID	Reset value of the UID item as it was prior to duplication
CGUV$CHK_KEYS_ON_INSERT	Check row is unique according to tables constraints
CGUV$CHK_KEYS_ON_UPDATE	Check row is unique according to tables constraints
CGUV$CHK_KEYS_ON_VAL_FLD	Check item value against unique or primary key
CGUV$CROSS_FLD_WARN	Validates the unique/primary key(s) in current row
V

W

CGWH$SET_AUDIT_INS_FLDS	Set date/user created items to corresponding system value
CGWH$SET_AUDIT_UPD_FLDS	Set date/user updated items to corresponding system value
 X

Y

CGYR$SET_DATE_FORMAT	Set one default date format mask with 4-digit-year element
Z


 Form Generator code groups (grouped by functionality)

Prefix:	Form Generator Code Groups to:
CGAI$...	Implement action items
CGAV$...	Implement arc validation
CGBG$...	Implement buttons
CGBK$...	Perform DML using Server API procedures
CGBS$...	Implement block synchronization
CGCA$...	Implement display calendar
CGCC$...	Implement check constraints
CGCD$...	Implement column derivation
CGCF$...	Implement Clear Form functionality
CGDF$...	Implement descriptive flexfields
CGDV$	Implement domain validation
CGED$...	Implement Edit Item functionality
CGFD$...	Implement field and summary derivation
CGFF$...	Implement forms calling forms
CGFK$...	Implement foreign keys
CGFL$...	Implement List of Values code groups
CGGN$...	Implement general code
CGHP$...	Implement a help system
CGIM$...	Support images
CGJN$...	Implement journaling
CGLL$...	Form Generator code groups to implement lookup lists
CGLT$...	Form Generator code groups to implement blocks on tabs
CGLU$...	Set LOV mode
CGLV$...	Synchronize MOUSE_RECORD system variable in multi-row blocks
CGLY$...	Implement layout
CGMR$...	Implement multi-region maintain current region functionality
CGNV$...	Implement navigation
CGPR$...	Implement primary key recall
CGRI$...	Implement referential integrity
CGRL$...	Implement row LOVs
CGSM$...	Implement menu integration
CGSP$...	Implement sequence within parent functionality
CGTE$...	Trap errors returned from the DBMS
CGTR$...	Implement navigator style forms and items
CGUE$...	Call user exits
CGUF$	Support default value type
CGUI$...	Implement unique identifiers
CGUV$...	Implement unique key validation
CGWH$...	Maintain WHO columns
CGYR$...	Set default date format mask


 Form Generator code groups to implement action items

Code Group Name	Code Group Description	Trigger
CGAI$PERFORM_ACTION	Perform navigation for selected action item	WHEN-BUTTON- PRESSED

For more information about when Form Generator creates these code groups, refer to:

Navigation code generation


 Form Generator code groups to implement arc validation

Code Group Name	Code Group Description	Trigger
CGAV$CHK_ON_INSERT	Check that only one foreign key item in an arc has a value	PRE-INSERT
CGAV$CHK_ON_UPDATE	Check that only one foreign key item in an arc has a value	PRE-UPDATE

For more information about when Form Generator creates these code groups, refer to:

Constraint validation and Form Generator


 Form Generator code groups to implement buttons

Code Group Name	Code Group Description	Trigger
CGBG$WHEN_BUTTON_PRESSED	Perform action recorded for selected button	WHEN-BUTTON-PRESSED
CGBG$WHEN_NEW_ITEM_INSTANCE	Perform navigation for current record item	WHEN-NEW-ITEM-INSTANCE

For more information about when Form Generator creates these code groups, refer to:

Button generation


 Form Generator code groups to perform DML using Server API procedures

Code Group Name	Code Group Description	Trigger
CGBK$ON_DELETE	Transactional trigger for delete processing	ON-DELETE
CGBK$ON_INSERT	Transactional trigger for insert processing	ON-INSERT
CGBK$ON_LOCK	Transactional trigger for lock processing	ON-LOCK
CGBK$ON_UPDATE	Transactional trigger for update processing	ON-UPDATE
CGBK$SET_WHERE_CLAUSE	Populate Form parameter for block synchronization	PRE-BLOCK

For more information about when Form Generator creates these code groups, refer to:

About basing generated blocks on procedures in the Server API


 Form Generator code groups to implement block synchronization

Code Group Name	Code Group Description	Trigger
CGBS$DISABLE_MENU_KEY	Disable block navigation via the [Block Menu] function key	KEY-MENU
CGBS$DISABLE_NXTKEY	Disables the [Next Primary Key Fld] key at form level	KEY-NXTKEY
CGBS$KEY_CLRBLK_FRM	Call synchronization checks before clearing current block	KEY-CLRBLK
CGBS$KEY_CLRREC	Clear detail blocks unless current row is new and invalid	KEY-CLRREC
CGBS$KEY_CQUERY_FRM	Check if query allowed to avoid unnecessary synchronization	KEY-CQUERY
CGBS$KEY_ENTQRY_FRM	Check if query allowed to avoid unnecessary synchronization	KEY-ENTQRY
CGBS$KEY_EXEQRY_FRM	Check if query allowed to avoid unnecessary synchronization	KEY-EXEQRY
CGBS$MULTIPLE_MASTER_O_P_D	Query all detail blocks for current master block	ON-POPULATE-DETAILS
CGBS$NAVIGATE_NXTBLK	Navigate from master to detail block when in last item	KEY-NEXT-ITEM
CGBS$NAVIGATE_PRVBLK	Navigate from the detail to master block when in first item	KEY-PREV-ITEM
CGBS$ON_CLEAR_DETAILS	Clear all detail blocks for a given master block	ON-CLEAR-DETAILS
CGBS$ON_POPULATE_DETAILS	Query all detail blocks for a given master block	ON-POPULATE-DETAILS
CGBS$STARTUP	Perform start-up processing for block synchronization	WHEN-NEW-FORM-INSTANCE
CGBS$STARTUP_NO_BS	Execute query with current context during form startup	WHEN-NEW-FORM-INSTANCE
CGBS$TAB_CANVAS_WNFI	Instantiate control poplist and navigate to first block	WHEN-NEW-FORM-INSTANCE
CGBS$TOGGLE_QUERY_MODE	Toggle mode for block synchronization between ON and OFF	KEY-MENU
CGBS$WHEN_BUTTON_PRESSED	Call procedure to toggle block synchronization mode	WHEN-BUTTON-PRESSED
CGBS$WHEN_CHECKBOX_ CHANGED	Call procedure to toggle block synchronization mode	WHEN-CHECKBOX- CHANGED
CGBS$WHEN_NEW_BLOCK_ INSTANCE	Ensure canvases are synchronized correctly	WHEN-NEW-BLOCK- INSTANCE

For more information about when Form Generator creates these code groups, refer to:

Navigation code generation

Preventing Insert, Update, Delete and/or Query operations on a Block

Block synchronization


 Form Generator code groups to implement display calendar

Code Group Name	Code Group Description	Trigger
CGCA$DISPLAY_CALENDAR	Display calendar window to select value for date item	KEY-LISTVAL
For more information about when Form Generator creates these code groups, refer to:

Calendar windows for date items


 Form Generator code groups to implement check constraints

Code Group Name	Code Group Description	Trigger
CGCC$CHK_CONS_ON_INS	Validate row against check constraints on source table	PRE-INSERT
CGCC$CHK_CONS_ON_UPD	Validate row against check constraints on source table	PRE-UPDATE
CGCC$CHK_CONS_ON_VF	Validate item against check constraints on source column	WHEN-VALIDATE-ITEM
CGCC$CROSS_FLD_WARN	Perform cross item validation and warn if values are invalid	KEY-ENTER

For more information about when Form Generator creates these code groups, refer to:

Constraint validation and Form Generator


 Form Generator code groups to implement column derivation

Code Group Name	Code Group Description	Trigger
CGCD$POST_INSERT	Refresh items corresponding to server-derived columns after insert	POST-INSERT
CGCD$POST_UPDATE	Refresh items corresponding to server-derived columns after update	POST-UPDATE
CGCD$QRY_SERVER_VER	Determine server version	PRE-FORM
CGCD$SYNC_ITEMS	Synchronize derived column with corresponding display item	WHEN-VALIDATE-ITEM
CGCD$SYNC_NEW_ITEM	Synchronize derived column with corresponding display item	WHEN-CREATE-RECORD
CGCD$VALIDATE_ITEMS	Warn, retrieved derivation does not match expected formula	POST-QUERY

For more information about when Form Generator creates these code groups, refer to:

Generating formula items

Derived columns


 Form Generator code groups to implement Clear Form functionality

Code Group Name	Code Group Description	Trigger
CGCF$CALL_WNFI	Call WHEN-NEW-FORM-INSTANCE code from KEY-CLRFRM	KEY-CLRFRM

For more information about when Form Generator creates these code groups, refer to:

When-New-Form-Instance trigger


 Form Generator code groups to implement descriptive flexfields

Code Group Name	Code Group Description	Trigger
CGDF$POST_QUERY	Call user defined descriptive flex processing	POST-QUERY
CGDF$PRE_INSERT	Call user defined descriptive flex processing	PRE-INSERT
CGDF$PRE_QUERY	Call user defined descriptive flex processing	PRE-QUERY
CGDF$PRE_UPDATE	Call user defined descriptive flex processing	PRE-UPDATE
CGDF$REGISTER_DF	Register descriptive flex item	PRE-FORM
CGDF$WHEN_NEW_ITEM_INSTANCE	Call user defined descriptive flex processing	WHEN-NEW-ITEM-INSTANCE
CGDF$WHEN_VALIDATE_ITEM	Call user defined descriptive flex processing	WHEN-VALIDATE-ITEM
CGDF$WHEN_VALIDATE_RECORD	Call user defined descriptive flex processing	WHEN-VALIDATE-RECORD

For more information about when Form Generator creates these code groups, refer to:

Descriptive flexfield generation


 Form Generator code groups to implement domain validation

Code Group Name	Code Group Description	Trigger
CGDV$PC_POPULATE_MEANING	Populate non-base table field to display domain meaning	WHEN-VALIDATE-ITEM
CGDV$POPULATE_DYNAMIC_LISTS	Query values to populate dynamic lists	PRE-FORM
CGDV$PQ_POPULATE_MEANING	Populate non-base table field to display domain meaning	POST-QUERY
CGDV$REF_CODES_LOV	Call form to display List Of Values(LOV) for current item	KEY-LISTVAL
CGDV$VALIDATE_OVF	Validate current item against the reference codes table	WHEN-VALIDATE-ITEM

For more information about when Form Generator creates these code groups, refer to:

Oracle Forms List of Values (LOV) generation


 Form Generator code groups to implement Edit Item functionality

Code Group Name	Code Group Description	Trigger
CGED$EDIT_ITEM	Display the item editor for the current item	WHEN-NEW-ITEM-INSTANCE

For more information about when Form Generator creates these code groups, refer to:

Attaching an editor to text items


 Form Generator code groups to implement field and summary derivation

Code Group Name	Code Group Description	Trigger
CGFD$CALC_<BLOCK>_<ITEM>	Derive a value for a formula item which uses a decode statement	-
CGFD$WARN_ON_QUERY	Warn if query criteria exist that summary maybe incorrect	PRE-QUERY
CGFD$<FUNC>_<BLOCK>_<ITEM>	Derive the summary value of a formula item	-

For more information about when Form Generator creates this code group, refer to:

Generating formula items


 Form Generator code groups to implement forms calling forms

Code Group Name	Code Group Description	Trigger
CGFF$INIT_LIST	Initialize list item with values for calling other modules	PRE-FORM
CGFF$KEY_F0	Call other module as defined in repository module network	KEY-F0
CGFF$KEY_F1	Call other module as defined in repository module network	KEY-F1
CGFF$KEY_F2	Call other module as defined in repository module network	KEY-F2
CGFF$KEY_F3	Call other module as defined in repository module network	KEY-F3
CGFF$KEY_F4	Call other module as defined in repository module network	KEY-F4
CGFF$KEY_F5	Call other module as defined in repository module network	KEY-F5
CGFF$KEY_F6	Call other module as defined in repository module network	KEY-F6
CGFF$KEY_F7	Call other module as defined in repository module network	KEY-F7
CGFF$KEY_F8	Call other module as defined in repository module network	KEY-F8
CGFF$KEY_F9	Call other module as defined in repository module network	KEY-F9
CGFF$WHEN_LIST_CHANGED	Call module that corresponds to value selected	WHEN-LIST-CHANGED

For more information about when Form Generator creates these code groups, refer to:

Calling reports, displays, and other forms using Key-Fn trigger code and CG$FF functionality


 Form Generator code groups to implement foreign keys

Code Group Name	Code Group Description	Trigger
CGFK$CLR_FK_ON_INS	Clear foreign key columns if any optional column is null	PRE-INSERT
CGFK$CLR_FK_ON_UPD	Clear foreign key columns if any optional column is null	PRE-UPDATE
CGFK$DEFAULT_WHERE	Create DEFAULT WHERE clause for current block	PRE-QUERY
CGFK$LIST_OF_VALUES	Call form displaying List Of Values copying user selection	KEY-LISTVAL
CGFK$PQ_CLR_DEPS	Clear dependent items on pre-query	PRE-QUERY
CGFK$QRY_LOOKUP_DATA	Query associated lookup item values for the foreign key(s)	POST-QUERY
CGFK$RESET_BLOCK_WHERE_ CLAUSE	Reset block WHERE clause after query	POST-QUERY
CGFK$VALD_FK_ON_INS	Validate that foreign key value exists in referenced table	PRE-INSERT
CGFK$VALD_FK_ON_UPD	Validate that foreign key value exists in referenced table	PRE-UPDATE
CGFK$VALIDATE_FK_OVF	Validate that foreign key value exists in referenced table	WHEN-VALIDATE-ITEM
CGFK$WVI_CLR_DEPS_OVF	Clear associated items if current item is null	WHEN-VALIDATE-ITEM

For more information about when Form Generator creates these code groups, refer to:

Constraint validation and Form Generator

Notes and examples for generating displayed and/or enterable lookup text items.

Oracle Forms List of Values (LOV) generation


 Form Generator code groups to implement List of Values code groups

Code Group Name	Code Group Description	Trigger
CGFL$CLEAR_GLOBALS	Clear global variables passed back to calling module	KEY-EXIT
CGFL$KEY_ENTER	Set global variables passed back to calling module	KEY-ENTER
CGFL$SET_GLOBALS	Set global variables passed back to calling module	KEY-COMMIT
CGFL$SET_GLOBALS_ON_KEY _NEXT_ITEM	Set global variables passed back to calling module	KEY-NEXT-ITEM

For more information about when Form Generator creates these code groups, refer to:

Oracle Forms List of Values (LOV) generation


 Form Generator code groups to implement general code

Code Group Name	Code Group Description	Trigger
CGGN$CALL_GENERATOR_CODE	Execute generated WHEN-NEW-FORM-INSTANCE code	WHEN-NEW-FORM-INSTANCE
CGGN$GET_DATE_AND_USER	Record current user and date during form startup	PRE-FORM
CGGN$KEY_CLRFRM	Perform the default clear form operation	KEY-CLRFRM
CGGN$KEY_DELREC	Perform the default delete record operation	KEY-DELREC
CGGN$KEY_DUPREC	Perform the default duplicate record operation	KEY-DUPREC
CGGN$KEY_ENTER	Perform the default enter operation	KEY-ENTER
CGGN$KEY_EXIT	Perform the default form exit operation	KEY-EXIT

For more information about when Form Generator creates these code groups, refer to:

CG$CB, CG$CR, CG$DT and CG$US Generator items, described in Complete list of all Release 1.x style CG$ generator items to include in template forms

Warn user if delete will cascade to other tables (DELWRN)


 Form Generator code groups to implement a help system

Code Group Name	Code Group Description	Trigger
CGHP$CALL_HELP_FORM	Call help form after setting globals with block/column name	KEY-HELP
CGHP$CALL_HTML_HELP	Implement calls to HTML-based help	KEY-HELP
CGHP$SET_MOD_GLOBALS	Set global variables storing module name	PRE-FORM

For more information about when Form Generator creates these code groups, refer to:

Displaying help text in a separate help form


 Form Generator code groups to support images

Code Group Name	Code Group Description	Trigger
CGIM$DISPLAY_IMAGE_ON_QUERY	Load image from a file during post query processing	POST-QUERY
CGIM$WHEN_IMAGE_ACTIVATED	Load image from a file when current image item activated	WHEN-IMAGE-ACTIVATED
CGIM$WHEN_IMAGE_PRESSED	Load image from a file when image item is pressed	WHEN-IMAGE-PRESSED
CGIM$WHEN_VALIDATE_ITEM	Load image from a file when file name item is validated	WHEN-VALIDATE-ITEM

For more information about when Form Generator creates these code groups, refer to:

Image item generation


 Form Generator code groups to implement journaling

Code Group Name	Code Group Description	Trigger
CGJN$CHK_NOTE_ON_DEL	Ensure a reason for record deletion is entered by user	KEY-DELREC
CGJN$CHK_NOTE_ON_INS	Ensure a reason for record creation is entered by user	PRE-INSERT
CGJN$CHK_NOTE_ON_UPD	Ensure a reason for record update is entered by the user	PRE-UPDATE
CGJN$JOURNAL_DELETE	Create journal ENTRY to record the delete operation	PRE-DELETE
CGJN$JOURNAL_INSERT	Create journal ENTRY to record the insert operation	PRE-INSERT
CGJN$JOURNAL_UPDATE	Create journal entry to record the update operation	PRE-UPDATE

For more information about when Form Generator creates these code groups, refer to:

Support for journaling in generated forms

In which operations is note field mandatory (JNNTMD)

Which operations allow note field entry (JNNTRQ)


 Form Generator code groups to implement lookup lists

Code Group Name	Code Group Description	Trigger
CGLL$BLK_INIT_LOOKUP_LISTS	Populate GUI lookup list item elements at block level	WHEN-NEW-BLOCK-INSTANCE
CGLL$INIT_LOOKUP_LISTS	Populate GUI lookup list item elements at form level	PRE-FORM
CGLL$QRY_LOOKUP_DATA	Set list item label from foreign key value	POST-QUERY
CGLL$SET_DEFAULT_WHERE	Modify block default where clause for lookup list item value	PRE-QUERY
CGLL$VALD_FK_ON_INS	Validate inserted lookup list item value	PRE-INSERT
CGLL$VALD_FK_ON_UPD	Validate updated lookup list item value	PRE-UPDATE
CGLL$VALIDATE_FK_FIELDS	Check foreign key exists for lookup list item	WHEN-VALIDATE-ITEM

For more information about when Form Generator creates these code groups, refer to:

Lookup item generation


 Form Generator code groups to implement blocks on tabs

Code Group Name	Code Group Description	Trigger
CGLT$INIT_TAB_BLOCKS	Initialize tabbed block canvases	WHEN-NEW-FORM-INSTANCE
CGLT$NEW_TAB_PAGE	Show related canvases for this tab	WHEN-TAB-PAGE-CHANGED
CGLT$TAB_BLOCK_MANAGEMENT	Switch tab management code on/off	WHEN-NEW-BLOCK-INSTANCE
CGLT$TAB_NEW_BLOCK	Show canvases for this block	WHEN-NEW-BLOCK-INSTANCE

For more information about when Form Generator creates these code groups, refer to:

Generating blocks onto native Oracle Forms tab canvases


 Form Generator code groups to set LOV mode

Code Group Name	Code Group Description	Trigger
CGLU$SET_LOV	Set LOV mode dependent on form mode	WHEN-NEW-ITEM-INSTANCE

For more information about when Form Generator creates these code groups, refer to:

Oracle Forms List of Values (LOV) generation


 Form Generator code groups to synchronize MOUSE_RECORD system variable in multi-row blocks

Code Group Name	Code Group Description	Trigger
CGLV$WHEN_MOUSE_DOWN	Synchronize MOUSE_RECORD system variable in multi-row blocks	WHEN-MOUSE-DOWN

For more information about when Form Generator creates these code groups, refer to:

Oracle Forms List of Values (LOV) generation


 Form Generator code groups to implement layout

Code Group Name	Code Group Description	Trigger
CGLY$CNTRL_TAB_CHANGED	Perform navigation to canvas selected from control poplist	WHEN-LIST-CHANGED
CGLY$COPY_USER_DATE	Populate USER/DATE items in canvas headers and footers	WHEN-NEW-FORM-INSTANCE
CGLY$INIT_CANVASES	Initialize canvas management during form startup	WHEN-NEW-FORM-INSTANCE
CGLY$MANAGE_CANVASES	Ensure that correct canvases are visible	WHEN-NEW-BLOCK-INSTANCE
CGLY$SWITCH_TAB_CANVAS	During navigation display current canvas in control poplist	WHEN-NEW-ITEM-INSTANCE
CGLY$SYNC_DETAIL_SINGLE_ AREA	Synchronize single area canvas items	ON-POPULATE-DETAILS
CGLY$SYNC_SINGLE_AREA	Synchronize single area canvas items	WHEN-NEW-RECORD-INSTANCE
CGLY$WHEN_BUTTON_PRESSED	Replicate default menu processing	WHEN-BUTTON-PRESSED
CGLY$WINDOW_MANAGEMENT	Check window and call general window manage procedure	WHEN-BUTTON-PRESSED

For more information about when Form Generator creates these code groups, refer to:

CG$DT and CG$US Generator items, described in Complete list of all Release 1.x style CG$ generator items to include in template forms

Block context area and block context item generation


 Form Generator code groups to implement multi-region maintain current region functionality

Code Group Name	Code Group Description	Trigger
CGMR$MOVETO_LAST_POSTN	Move cursor to last position	WHEN-NEW-RECORD-INSTANCE
CGMR$SET_CURRENT_POSTN	Record current cursor position	POST-TEXT-ITEM

For more information about when Form Generator creates these code groups, refer to:

Generating multi-region blocks

MRBMCR


 Form Generator code groups to implement navigation

Code Group Name	Code Group Description	Trigger
CGNV$CLOSE_ALL_WINDOWS	Close any open windows in the form	KEY-EXIT
CGNV$ENTER_QUERY_PARAMS	Set item values in query mode from parameters	WHEN-NEW-ITEM- INSTANCE
CGNV$MAP_PARAM_TO_ITEMS	Map form parameter values to items during startup	WHEN-NEW-FORM-INSTANCE
CGNV$NAVIGATE_NXTBLK	Perform specified navigation from last item in a block	KEY-NEXT-ITEM
CGNV$NAVIGATE_PRVBLK	Perform specified navigation from last item in a block	KEY-PREV-ITEM
CGNV$NAVPAG_REDIRECT	Redirect navigation to correct subcomponent	WHEN-NEW-ITEM-INSTANCE
CGNV$PRE_FORM_NAVCCF	Record child form and child window closure policy	PRE-FORM
CGNV$PRE_FORM_NAVCUR	Record window layout and placement details	PRE-FORM
CGNV$RESET_ENT_QRY_FLAG_ POST_QRY	Reset enter query flag during post query	POST-QUERY
CGNV$REMOVE_CHILD_FORM	Remove closed child form from record group	WHEN-FORM- NAVIGATE
CGNV$RESTRICT_NEW	If Startup mode is Restricted New, copy param vals to item	WHEN-CREATE-RECORD
CGNV$SAVE_CUR_ITM	Retain current item before navigation occurs	POST-TEXT-ITEM
CGNV$STARTUP_MODE	Control startup mode of the generated form	WHEN-NEW-FORM-INSTANCE
CGNV$WHEN_BUTTON_PRESSED	Perform specified navigation via keyboard shortcut	WHEN-BUTTON-PRESSED
CGNV$WHEN_WINDOW_ACTIVATED	Navigate to current item for window during activation	WHEN-WINDOW-ACTIVATED
CGNV$WHEN_WINDOW_CLOSED	Close child windows/forms during closure of parent window	WHEN-WINDOW-CLOSED
CGNV$WHEN_WINDOW_ DEACTIVATED	Record current item for window during deactivation	POST-TEXT-ITEM

For more information about when Form Generator creates these code groups, refer to:

Navigation code generation


 Form Generator code groups to implement primary key recall

Code Group Name	Code Group Description	Trigger
CGPR$CPY_CTX_GLOBALS	Set primary key item values from globals if auto querying	PRE-QUERY
CGPR$DEFAULT_CTX_GLOBAL	Create globals for recording context for first block	PRE-FORM
CGPR$SAVE_CTX_ON_EXIT	Record primary key values for row during form exit	POST-BLOCK

For more information about when Form Generator creates these code groups, refer to:

Specifying a generated form's startup query mode when called by Key-Fn trigger code


 Form Generator code groups to implement referential integrity

Code Group Name	Code Group Description	Trigger
CGRI$CASCADE_DELETE	Perform cascade delete for row on associated tables	PRE-DELETE
CGRI$CASCADE_UPDATE	Perform cascade update for row on associated tables	PRE-UPDATE
CGRI$CHECK_ON_DELETE	Validate deletion according to referential integrity rules	KEY-DELREC
CGRI$POST_INSERT	Record primary key details replacing ROWID functionality	POST-INSERT
CGRI$POST_QUERY	Record primary key details replacing ROWID functionality	POST-QUERY
CGRI$POST_UPDATE	Record primary key details replacing ROWID functionality	POST-UPDATE

For more information about when Form Generator creates these code groups, refer to:

About foreign key constraints

Warn user if delete will cascade to other tables (DELWRN)


 Form Generator code groups to implement row LOVs

Code Group Name	Code Group Description	Trigger
CGRL$PRE_QUERY	Populate primary key items from parameters for query	PRE-QUERY
CGRL$QUERY_FIND	Provides Applications-style row LOV functionality	QUERY_FIND

For more information about when Form Generator creates these code groups, refer to:

Generating row LOVs


 Form Generator code groups to implement menu integration

Code Group Name	Code Group Description	Trigger
CGSM$SHOW_STRIP_MENU	Generate SHOW_MENU call	PRE-FORM

For more information about when Form Generator creates these code groups, refer to:

Menu generation


 Form Generator code groups to implement sequence within parent functionality

Code Group Name	Code Group Description	Trigger
CGSP$DERIVE_SEQ	Derive next sequence within a parent by query on table	PRE-INSERT

For more information about when Form Generator creates these code groups, refer to:

About the code generated to support autogenerated sequence numbers unique within a parent


 Form Generator code groups to trap errors returned from the DBMS

Code Group Name	Code Group Description	Trigger
CGTE$BLK_LEVEL_ERROR_TRAP	Trap and display errors returned from server side validation	ON-ERROR

For more information about when Form Generator creates these code groups, refer to:

When are constraints enforced?


 Form Generator code groups to implement navigator style forms and items

Code Group Name	Code Group Description	Trigger
CGTR$CHANGE_NAVIGATOR_NODE	Displays/hides child nodes of current node in navigator	WHEN-TREE-NODE-EXPANDED
CGTR$INIT_NAVIGATOR	Initializes navigator for an instance of a form	WHEN-NEW-FORM-INSTANCE
CGTR$RESIZE_NAVIGATOR	Resizes navigator item and canvas when window is resized	WHEN-WINDOW-RESIZED
CGTR$SELECT_NAVIGATOR_NODE	Displays the block data for the selected record node	WHEN-TREE-NODE-SELECTED

For more information about when Form Generator creates these code groups, refer to:

Navigator style form generation

Navigator style item generation


 Form Generator code groups to call user exits

Code Group Name	Code Group Description	Trigger
CGUE$ON_DELETE	Call named user exit during delete processing	PRE-DELETE
CGUE$ON_INSERT	Call named user exit during insert processing	PRE-INSERT
CGUE$ON_UPDATE	Call named user exit during update processing	PRE-UPDATE

For more information about when Form Generator creates these code groups, refer to:

Calling user exits

Name of user exit to call from commit triggers (UENAME)


Form Generator code groups to implement unique identifiers
 Form Generator code groups to support default value type

Code Group Name	Code Group Description	Trigger
CGUF$DEFAULT_VALUES	Assign default values to new records	WHEN-CREATE-RECORD

For more information about when Form Generator creates these code groups, refer to:

Setting the Initial Value property of generated items


 Form Generator code groups to implement unique identifiers

Code Group Name	Code Group Description	Trigger
CGUI$GET_UNIQUE_ID	Generate unique identifier value for item from source	PRE-INSERT
CGUI$PRESERVE_UID	Save the value of UID item prior to duplicating the record	KEY-DUPREC
CGUI$RESTORE_UID	Reset value of the UID item as it was prior to duplication	KEY-DUPREC

For more information about when Form Generator creates these code groups, refer to:

Autogenerated sequence numbers and Form Generator


 Form Generator code groups to implement unique key validation

Code Group Name	Code Group Description	Trigger
CGUV$CHK_KEYS_ON_INSERT	Check row is unique according to tables constraints	PRE-INSERT
CGUV$CHK_KEYS_ON_UPDATE	Check row is unique according to tables constraints	PRE-UPDATE
CGUV$CHK_KEYS_ON_VAL_FLD	Check item value against unique or primary key	WHEN-VALIDATE-ITEM
CGUV$CROSS_FLD_WARN	Validates the unique/primary key(s) in current row	KEY-ENTER

For more information about when Form Generator creates these code groups, refer to:

Details of primary key constraint validation by the form

Details of unique key constraint validation by the form


 Form Generator code groups to maintain WHO columns

Code Group Name	Code Group Description	Trigger
CGWH$SET_AUDIT_INS_FLDS	Set date/user created items to corresponding system value	PRE-INSERT
CGWH$SET_AUDIT_UPD_FLDS	Set date/user updated items to corresponding system value	PRE-UPDATE

For more information about when Form Generator creates these code groups, refer to:

Change history column support


 Form Generator code groups to set default date format mask

Code Group Name	Code Group Description	Trigger
CGYR$SET_DATE_FORMAT	Set one default date format mask with 4-digit-year element	PRE-FORM

For more information about when Form Generator creates these code groups, refer to:

Generating Year 2000 compliant applications


 Oracle Forms triggers

D

Delete-Procedure trigger

I

Insert-Procedure trigger

K

Key-CLRBLK trigger

Key-CLRFRM trigger

Key-CLRREC trigger

Key-COMMIT trigger

Key-CQUERY trigger

Key-CREREC trigger

Key-DELREC trigger

Key-DOWN trigger

Key-DUP-ITEM trigger

Key-DUPREC trigger

Key-EDIT trigger

Key-ENTER trigger

Key-ENTQRY trigger

Key-EXEQRY trigger

Key-EXIT trigger

Key-F0 trigger

Key-F1 trigger

Key-F2 trigger

Key-F3 trigger

Key-F4 trigger

Key-F5 trigger

Key-F6 trigger

Key-F7 trigger

Key-F8 trigger

Key-F9 trigger

Key-HELP trigger

Key-LISTVAL trigger

Key-MENU trigger

Key-NEXT-ITEM trigger

Key-NXTBLK trigger

Key-NXTKEY trigger

Key-NXTREC trigger

Key-NXTSET trigger

Key-OTHERS trigger

Key-PREV-ITEM trigger

Key-PRINT trigger

Key-PRVBLK trigger

Key-PRVREC trigger

Key-SCRDOWN trigger

Key-SCRUP trigger

Key-UP trigger

Key-UPDREC trigger

L

Lock-Procedure trigger

O

On-Check-Delete-Master trigger

On-Check-Unique trigger

On-Clear-Details trigger

On-Close trigger

On-Column-Security trigger

On-Commit trigger

On-Count trigger

On-Delete trigger

On-Dispatch-Event trigger

On-Error trigger

On-Fetch trigger

On-Insert trigger

On-Lock trigger

On-Logon trigger

On-Logout trigger

On-Message trigger

On-Populate-Details trigger

On-Rollback trigger

On-Savepoint trigger

On-Select trigger

On-Sequence-Number trigger

On-Update trigger

P

Post-Block trigger

Post-Change trigger

Post-Database-Commit trigger

Post-Delete trigger

Post-Form trigger

Post-Forms-Commit trigger

Post-Insert trigger

Post-Logon trigger

Post-Logout trigger

Post-Query trigger

Post-Record trigger

Post-Select trigger

Post-Text-Item trigger

Post-Update trigger

Pre-Block trigger

Pre-Commit trigger

Pre-Delete trigger

Pre-Form trigger

Pre-Insert trigger

Pre-Logon trigger

Pre-Logout trigger

Pre-Popup-Menu trigger

Pre-Query trigger

Pre-Record trigger

Pre-Select trigger

Pre-Text-Item trigger

Pre-Update trigger

Q

Query-Procedure trigger

Query_Find user-named trigger

U

Update-Procedure trigger

W

When-Button-Pressed trigger

When-Checkbox-Changed trigger

When-Clear-Block trigger

When-Create-Record trigger

When-Custom-Item-Event trigger

When-Database-Record trigger

When-Form-Navigate trigger

When-Image-Activated trigger

When-Image-Pressed trigger

When-List-Activated trigger

When-List-Changed trigger

When-Mouse-Click trigger

When-Mouse-DoubleClick trigger

When-Mouse-Down trigger

When-Mouse-Enter trigger

When-Mouse-Leave trigger

When-Mouse-Move trigger

When-Mouse-Up trigger

When-New-Block-Instance trigger

When-New-Form-Instance trigger

When-New-Item-Instance trigger

When-New-Record-Instance trigger

When-Radio-Changed trigger

When-Remove-Record trigger

When-Tab-Page-Changed trigger

When-Timer-Expired trigger

When-Tree-Node-Activated

When-Tree-Node-Expanded

When-Tree-Node-Selected

When-Validate-Item trigger

When-Validate-Record trigger

When-Window-Activated trigger

When-Window-Closed trigger

When-Window-Deactivated trigger

When-Window-Resized trigger


 Delete-Procedure trigger

Form Generator code groups for this trigger:

None.

For more information about the Delete-Procedure trigger, refer to the Delete-Procedure topic in the Oracle Forms help system.


 Insert-Procedure trigger

Form Generator code groups for this trigger:

None.

For more information about the Insert-Procedure trigger, refer to the Insert-Procedure topic in the Oracle Forms help system.


 Function key triggers

Form Generator code groups for this trigger:

Trigger	Code group name	Code group description
KEY-CLRBLK	CGBS$KEY_CLRBLK_FRM	Call synchronization checks before clearing current block
KEY-CLRFRM	CGCF$CALL_WNFI	Call WHEN-NEW-FORM-INSTANCE code from KEY-CLRFRM
KEY-CLRFRM	CGGN$KEY_CLRFRM	Perform the default clear form operation
KEY-CLRREC	CGBS$KEY_CLRREC	Clear detail blocks unless current row is new and invalid
KEY-COMMIT	CGFL$SET_GLOBALS	Set global variables passed back to calling module
KEY-CQUERY	CGBS$KEY_CQUERY_FRM	Check if query allowed to avoid unnecessary synchronization
KEY-DELREC	CGGN$KEY_DELREC	Perform the default delete record operation
KEY-DELREC	CGJN$CHK_NOTE_ON_DEL	Ensure a reason for record deletion is entered by user
KEY-DELREC	CGRI$CHECK_ON_DELETE	Validate deletion according to referential integrity rules
KEY-DUPREC	CGGN$KEY_DUPREC	Perform the default duplicate record operation
KEY-DUPREC	CGUI$PRESERVE_UID	Save the value of UID item prior to duplicating the record
KEY-DUPREC	CGUI$RESTORE_UID	Reset value of the UID item as it was prior to duplication
KEY-ENTER	CGCC$CROSS_FLD_WARN	Perform cross item validation and warn if values are invalid
KEY-ENTER	CGFL$KEY_ENTER	Set global variables passed back to calling module
KEY-ENTER	CGGN$KEY_ENTER	Perform the default enter operation
KEY-ENTER	CGUV$CROSS_FLD_WARN	Validates the unique/primary key(s) in current row
KEY-ENTQRY	CGBS$KEY_ENTQRY_FRM	Check if query allowed to avoid unnecessary synchronization
KEY-EXEQRY	CGBS$KEY_EXEQRY_FRM	Check if query allowed to avoid unnecessary synchronization
KEY-EXIT	CGFL$CLEAR_GLOBALS	Clear global variables passed back to calling module
KEY-EXIT	CGGN$KEY_EXIT	Perform the default form exit operation
KEY-EXIT	CGNV$CLOSE_ALL_WINDOWS	Close any open windows in the form
KEY-HELP	CGHP$CALL_HELP_FORM	Call help form after setting globals with block/column name
KEY-HELP	CGHP$CALL_HTML_HELP	Implement calls to HTML-based help
KEY-LISTVAL	CGCA$DISPLAY_CALENDAR	Display calendar window to select value for date item
KEY-LISTVAL	CGDV$REF_CODES_LOV	Call form to display List Of Values(LOV) for current item
KEY-LISTVAL	CGFK$LIST_OF_VALUES	Call form displaying List Of Values copying user selection
KEY-MENU	CGBS$DISABLE_MENU_KEY	Disable block navigation via the [Block Menu] function key
KEY-MENU	CGBS$TOGGLE_QUERY_MODE	Toggle mode for block synchronization between ON and OFF
KEY-NEXT-ITEM	CGFL$SET_GLOBALS_ON_KEY_ NEXT_ITEM	Set global variables passed back to calling module
KEY-NEXT-ITEM	CGNV$NAVIGATE_NXTBLK	Perform specified navigation from last item in a block
KEY-NEXT-ITEM	CGBS$NAVIGATE_NXTBLK	Navigate from master to detail block when in last item
KEY-NXTKEY	CGBS$DISABLE_NXTKEY	Disables the [Next Primary Key Fld] key at form level
KEY-PREV-ITEM	CGNV$NAVIGATE_PRVBLK	Perform specified navigation from last item in a block
KEY-PREV-ITEM	CGBS$NAVIGATE_PRVBLK	Navigate from the detail to master block when in first item

For more information about the Function key triggers, refer to the Function Key Triggers topic in the Oracle Forms help system.


 Key-Fn triggers

Form Generator code groups for this trigger:

Trigger	Code group name	Code group description
KEY-F0	CGFF$KEY_F0	Call other module as defined in repository module network
KEY-F1	CGFF$KEY_F1	Call other module as defined in repository module network
KEY-F2	CGFF$KEY_F2	Call other module as defined in repository module network
KEY-F3	CGFF$KEY_F3	Call other module as defined in repository module network
KEY-F4	CGFF$KEY_F4	Call other module as defined in repository module network
KEY-F5	CGFF$KEY_F5	Call other module as defined in repository module network
KEY-F6	CGFF$KEY_F6	Call other module as defined in repository module network
KEY-F7	CGFF$KEY_F7	Call other module as defined in repository module network
KEY-F8	CGFF$KEY_F8	Call other module as defined in repository module network
KEY-F9	CGFF$KEY_F9	Call other module as defined in repository module network

For more information about the Key-Fn triggers, refer to the Key-Fn Trigger topic in the Oracle Forms help system.


 Key-Others trigger

Form Generator code groups for this trigger:

None.

For more information about the Key-Others trigger, refer to the Key-Others topic in the Oracle Forms help system.


 Lock-Procedure trigger

Form Generator code groups for this trigger:

None.

For more information about the Lock-Procedure trigger, refer to the Lock-Procedure topic in the Oracle Forms help system.


 On-Check-Delete-Master trigger

Form Generator code groups for this trigger:

None.

For more information about the On-Check-Delete-Master trigger, refer to the On-Check-Delete-Master topic in the Oracle Forms help system.


 On-Check-Unique trigger

Form Generator code groups for this trigger:

None.

For more information about the On-Check-Unique trigger, refer to the On-Check-Unique topic in the Oracle Forms help system.


 On-Clear-Details trigger

Form Generator code groups for this trigger:

Code group name	Code group description
CGBS$ON_CLEAR_DETAILS	Clear all detail blocks for a given master block

For more information about the On-Clear-Details trigger, refer to the On-Clear-Details topic in the Oracle Forms help system.


 On-Close trigger

Form Generator code groups for this trigger:

None.

For more information about the On-Close trigger, refer to the On-Close topic in the Oracle Forms help system.


 On-Column-Security trigger

Form Generator code groups for this trigger:

None.

For more information about the On-Column-Security trigger, refer to the On-Column-Security topic in the Oracle Forms help system.


 On-Commit trigger

Form Generator code groups for this trigger:

None.

For more information about the On-Commit trigger, refer to the On-Commit topic in the Oracle Forms help system.


 On-Count trigger

Form Generator code groups for this trigger:

None.

For more information about the On-Count trigger, refer to the On-Count topic in the Oracle Forms help system.


 On-Delete trigger

Form Generator code groups for this trigger:

Code group name	Code group description
CGBK$ON_DELETE	Transactional trigger for delete processing

For more information about the On-Delete trigger, refer to the On-Delete topic in the Oracle Forms help system.


 On-Dispatch-Event trigger

Form Generator code groups for this trigger:

None.

For more information about the On-Dispatch-Event trigger, refer to the On-Dispatch-Event topic in the Oracle Forms help system.


 On-Error trigger

Form Generator code groups for this trigger:

Code group name	Code group description
CGTE$BLK_LEVEL_ERROR_TRAP	Trap and display errors returned from server side validation

For more information about the On-Error trigger, refer to the On-Error topic in the Oracle Forms help system.


 On-Fetch trigger

Form Generator code groups for this trigger:

None.

For more information about the On-Fetch trigger, refer to the On-Fetch topic in the Oracle Forms help system.


 On-Insert trigger

Form Generator code groups for this trigger:

Code group name	Code group description
CGBK$ON_INSERT	Transactional trigger for insert processing

For more information about the On-Insert trigger, refer to the On-Insert topic in the Oracle Forms help system.


 On-Lock trigger

Form Generator code groups for this trigger:

Code group name	Code group description
CGBK$ON_LOCK	Transactional trigger for lock processing

For more information about the On-Lock trigger, refer to the On-Lock topic in the Oracle Forms help system.


 On-Logon trigger

Form Generator code groups for this trigger:

None.

For more information about the On-Logon trigger, refer to the On-Logon topic in the Oracle Forms help system.


 On-Logout trigger

Form Generator code groups for this trigger:

None.

For more information about the On-Logout trigger, refer to the On-Logout topic in the Oracle Forms help system.


 On-Message trigger

Form Generator code groups for this trigger:

None.

For more information about the On-Message trigger, refer to the On-Message topic in the Oracle Forms help system.


 On-Populate-Details trigger

Form Generator code groups for this trigger:

Code group name	Code group description
CGBS$MULTIPLE_MASTER_O_P_D	Query all detail blocks for current master block
CGBS$ON_POPULATE_DETAILS	Query all detail blocks for a given master block
CGLY$SYNC_DETAIL_SINGLE_AREA	Synchronize single area canvas items

For more information about the On-Populate-Details trigger, refer to the On-Populate-Details topic in the Oracle Forms help system.


 On-Rollback trigger

Form Generator code groups for this trigger:

None.

For more information about the On-Rollback trigger, refer to the On-Rollback topic in the Oracle Forms help system.


 On-Savepoint trigger

Form Generator code groups for this trigger:

None.

For more information about the On-Savepoint trigger, refer to the On-Savepoint topic in the Oracle Forms help system.


 On-Select trigger

Form Generator code groups for this trigger:

None.

For more information about the On-Select trigger, refer to the On-Select topic in the Oracle Forms help system.


 On-Sequence-Number trigger

Form Generator code groups for this trigger:

None.

For more information about the On-Sequence-Number trigger, refer to the On-Sequence-Number topic in the Oracle Forms help system.


 On-Update trigger

Form Generator code groups for this trigger:

Code group name	Code group description
CGBK$ON_UPDATE	Transactional trigger for update processing

For more information about the On-Update trigger, refer to the On-Update topic in the Oracle Forms help system.


 Post-Block trigger

Form Generator code groups for this trigger:

Code group name	Code group description
CGPR$SAVE_CTX_ON_EXIT	Record primary key values for row during form exit

For more information about the Post-Block trigger, refer to the Post-Block topic in the Oracle Forms help system.


 Post-Change trigger

Form Generator code groups for this trigger:

None.

For more information about the Post-Change trigger, refer to the Post-Change topic in the Oracle Forms help system.


 Post-Database-Commit trigger

Form Generator code groups for this trigger:

None.

For more information about the Post-Database-Commit trigger, refer to the Post-Database-Commit topic in the Oracle Forms help system.


 Post-Delete trigger

Form Generator code groups for this trigger:

None.

For more information about the Post-Delete trigger, refer to the Post-Delete topic in the Oracle Forms help system.


 Post-Form trigger

Form Generator code groups for this trigger:

None

For more information about the Post-Form trigger, refer to the Post-Form topic in the Oracle Forms help system.


 Post-Forms-Commit trigger

Form Generator code groups for this trigger:

None.

For more information about the Post-Forms-Commit trigger, refer to the Post-Forms-Commit topic in the Oracle Forms help system.


 Post-Insert trigger

Form Generator code groups for this trigger:

Code group name	Code group description
CGCD$POST_INSERT	Refresh items corresponding to server-derived columns after insert
CGRI$POST_INSERT	Record primary key details replacing ROWID functionality

For more information about the Post-Insert trigger, refer to the Post-Insert topic in the Oracle Forms help system.


 Post-Logon trigger

Form Generator code groups for this trigger:

None.

For more information about the Post-Logon trigger, refer to the Post-Logon topic in the Oracle Forms help system.


 Post-Logout trigger

Form Generator code groups for this trigger:

None.

For more information about the Post-Logout trigger, refer to the Post-Logout topic in the Oracle Forms help system.


 Post-Query trigger

Form Generator code groups for this trigger:

Code group name	Code group description
CGCD$VALIDATE_ITEMS	Warn, retrieved derivation does not match expected formula
CGDF$POST_QUERY	Call user defined descriptive flex processing
CGDV$PQ_POPULATE_MEANING	Populate non-base table field to display domain meaning
CGFK$QRY_LOOKUP_DATA	Query associated lookup item values for the foreign key(s)
CGFK$RESET_BLOCK_WHERE_ CLAUSE	Reset block WHERE clause after query
CGIM$DISPLAY_IMAGE_ON_QUERY	Load image from a file during post query processing
CGLL$QRY_LOOKUP_DATA	Set list item label from foreign key value
CGNV$RESET_ENT_QRY_FLAG_ POST_QRY	Reset enter query flag during post query
CGRI$POST_QUERY	Record primary key details replacing ROWID functionality

For more information about the Post-Query trigger, refer to the Post-Query topic in the Oracle Forms help system.


 Post-Record trigger

Form Generator code groups for this trigger:

None.

For more information about the Post-Record trigger, refer to the Post-Record topic in the Oracle Forms help system.


 Post-Select trigger

Form Generator code groups for this trigger:

None.

For more information about the Post-Select trigger, refer to the Post-Select topic in the Oracle Forms help system.


 Post-Text-Item trigger

Form Generator code groups for this trigger:

Code group name	Code group description
CGMR$SET_CURRENT_POSTN	Record current cursor position
CGNV$SAVE_CUR_ITM	Retain current item before navigation occurs

For more information about the Post-Text-Item trigger, refer to the Post-Text-Item topic in the Oracle Forms help system.


 Post-Update trigger

Form Generator code groups for this trigger:

Code group name	Code group description
CGCD$POST_UPDATE	Refresh items corresponding to server-derived columns after update
CGRI$POST_UPDATE	Record primary key details replacing ROWID functionality

For more information about the Post-Update trigger, refer to the Post-Update topic in the Oracle Forms help system.


 Pre-Block trigger

Form Generator code groups for this trigger:

Code group name	Code group description
CGBK$SET_WHERE_CLAUSE	Populate Form parameter for block synchronization

For more information about the Pre-Block trigger, refer to the Pre-Block topic in the Oracle Forms help system.


 Pre-Commit trigger

Form Generator code groups for this trigger:

None.

For more information about the Pre-Commit trigger, refer to the Pre-Commit topic in the Oracle Forms help system.


 Pre-Delete trigger

Form Generator code groups for this trigger:

Code group name	Code group description
CGJN$JOURNAL_DELETE	Create journal ENTRY to record the delete operation
CGRI$CASCADE_DELETE	Perform cascade delete for row on associated tables
CGUE$ON_DELETE	Call named user exit during delete processing

For more information about the Pre-Delete trigger, refer to the Pre-Delete topic in the Oracle Forms help system.


 Pre-Form trigger

Form Generator code groups for this trigger:

Code group name	Code group description
CGCD$QRY_SERVER_VER	Determine server version
CGDF$REGISTER_DF	Register descriptive flex item
CGDV$POPULATE_DYNAMIC_LISTS	Query values to populate dynamic lists
CGFF$INIT_LIST	Initialize list item with values for calling other modules
CGGN$GET_DATE_AND_USER	Record current user and date during form startup
CGHP$SET_MOD_GLOBALS	Set global variables storing module name
CGLL$INIT_LOOKUP_LISTS	Populate GUI lookup list item elements at form level
CGNV$PRE_FORM_NAVCCF	Record child form and child window closure policy
CGNV$PRE_FORM_NAVCUR	Record window layout and placement details
CGPR$DEFAULT_CTX_GLOBAL	Create globals for recording context for first block
CGSM$SHOW_STRIP_MENU	Generate SHOW_MENU call
CGYR$SET_DATE_FORMAT	Set one default date format mask with 4-digit-year element

For more information about the Pre-Form trigger, refer to the Pre-Form topic in the Oracle Forms help system.


 Pre-Insert trigger

Form Generator code groups for this trigger:

Code group name	Code group description
CGAV$CHK_ON_INSERT	Check that only one foreign key item in an arc has a value
CGCC$CHK_CONS_ON_INS	Validate row against check constraints on source table
CGDF$PRE_INSERT	Call user defined descriptive flex processing
CGFK$CLR_FK_ON_INS	Clear foreign key columns if any optional column is null
CGFK$VALD_FK_ON_INS	Validate that foreign key value exists in referenced table
CGJN$CHK_NOTE_ON_INS	Ensure a reason for record creation is entered by user
CGJN$JOURNAL_INSERT	Create journal ENTRY to record the insert operation
CGLL$VALD_FK_ON_INS	Validate inserted lookup list item value
CGSP$DERIVE_SEQ	Derive next sequence within a parent by query on table
CGUE$ON_INSERT	Call named user exit during insert processing
CGUI$GET_UNIQUE_ID	Generate unique identifier value for item from source
CGUV$CHK_KEYS_ON_INSERT	Check row is unique according to tables constraints
CGWH$SET_AUDIT_INS_FLDS	Set date/user created items to corresponding system value

For more information about the Pre-Insert trigger, refer to the Pre-Insert topic in the Oracle Forms help system.


 Pre-Logon trigger

Form Generator code groups for this trigger:

None.

For more information about the Pre-Logon trigger, refer to the Pre-Logon topic in the Oracle Forms help system.


 Pre-Logout trigger

Form Generator code groups for this trigger:

None.

For more information about the Pre-Logout trigger, refer to the Pre-Logout topic in the Oracle Forms help system.


 Pre-Popup-Menu trigger

Form Generator code groups for this trigger:

None.

For more information about the Pre-Popup-Menu trigger, refer to the Pre-Popup-Menu topic in the Oracle Forms help system.


 Pre-Query trigger

Form Generator code groups for this trigger:

Code group name	Code group description
CGDF$PRE_QUERY	Call user defined descriptive flex processing
CGFD$WARN_ON_QUERY	Warn if query criteria exist that summary maybe incorrect
CGFK$DEFAULT_WHERE	Create DEFAULT WHERE clause for current block
CGFK$PQ_CLR_DEPS	Clear dependent items on pre-query
CGLL$SET_DEFAULT_WHERE	Modify block default where clause for lookup list item value
CGPR$CPY_CTX_GLOBALS	Set primary key item values from globals if auto querying
CGRL$PRE_QUERY	Populate primary key items from parameters for query

For more information about the Pre-Query trigger, refer to the Pre-Query topic in the Oracle Forms help system.


 Pre-Record trigger

Form Generator code groups for this trigger:

None.

For more information about the Pre-Record trigger, refer to the Pre-Record topic in the Oracle Forms help system.


 Pre-Select trigger

Form Generator code groups for this trigger:

None.

For more information about the Pre-Select trigger, refer to the Pre-Select topic in the Oracle Forms help system.


 Pre-Text-Item trigger

Form Generator code groups for this trigger:

None.

For more information about the Pre-Text-Item trigger, refer to the Pre-Text-Item topic in the Oracle Forms help system.


 Pre-Update trigger

Form Generator code groups for this trigger:

Code group name	Code group description
CGAV$CHK_ON_UPDATE	Check that only one foreign key item in an arc has a value
CGCC$CHK_CONS_ON_UPD	Validate row against check constraints on source table
CGDF$PRE_UPDATE	Call user defined descriptive flex processing
CGFK$CLR_FK_ON_UPD	Clear foreign key columns if any optional column is null
CGFK$VALD_FK_ON_UPD	Validate that foreign key value exists in referenced table
CGJN$CHK_NOTE_ON_UPD	Ensure a reason for record update is entered by the user
CGJN$JOURNAL_UPDATE	Create journal entry to record the update operation
CGLL$VALD_FK_ON_UPD	Validate updated lookup list item value
CGRI$CASCADE_UPDATE	Perform cascade update for row on associated tables
CGUE$ON_UPDATE	Call named user exit during update processing
CGUV$CHK_KEYS_ON_UPDATE	Check row is unique according to tables constraints
CGWH$SET_AUDIT_UPD_FLDS	Set date/user updated items to corresponding system value

For more information about the Pre-Update trigger, refer to the Pre-Update topic in the Oracle Forms help system.


 Query_Find user-named trigger

Form Generator code groups for this trigger

Code group name	Code group description
CGRL$QUERY_FIND	User-named trigger used in Applications style query find list of values

This trigger is created by Form Generator as an Oracle Forms user-named trigger to support generated row LOVs. For more information, refer to Generating row LOVs.


 Query-Procedure trigger

Form Generator code groups for this trigger:

None.

For more information about the Query-Procedure trigger, refer to the Query-Procedure topic in the Oracle Forms help system.


 Update-Procedure trigger

Form Generator code groups for this trigger:

None.

For more information about the Update-Procedure trigger, refer to the Update-Procedure topic in the Oracle Forms help system.


 When-Button-Pressed trigger

Form Generator code groups for this trigger:

Code group name	Code group description
CGAI$PERFORM_ACTION	Perform navigation for selected action item
CGBG$WHEN_BUTTON_PRESSED	Perform action recorded for selected button
CGBS$WHEN_BUTTON_PRESSED	Call procedure to toggle block synchronization mode
CGLY$WHEN_BUTTON_PRESSED	Replicate default menu processing
CGLY$WINDOW_MANAGEMENT	Check window and call general window manage procedure
CGNV$WHEN_BUTTON_PRESSED	Perform specified navigation via keyboard shortcut

For more information about the When-Button-Pressed trigger, refer to the When-Button-Pressed topic in the Oracle Forms help system.


 When-Checkbox-Changed trigger

Form Generator code groups for this trigger:

Code group name	Code group description
CGBS$WHEN_CHECKBOX_CHANGED	Call procedure to toggle block synchronization mode

For more information about the When-Checkbox-Changed trigger, refer to the When-Checkbox-Changed topic in the Oracle Forms help system.


 When-Clear-Block trigger

Form Generator code groups for this trigger:

None.

For more information about the When-Clear-Block trigger, refer to the When-Clear-Block topic in the Oracle Forms help system.


 When-Create-Record trigger

Form Generator code groups for this trigger:

Code group name	Code group description
CGCD$SYNC_NEW_ITEM	Synchronize derived column with corresponding display item
CGNV$RESTRICT_NEW	If Startup mode is Restricted New, copy param vals to item
CGUF$DEFAULT_VALUES	Assign default values to new records

For more information about the When-Create-Record trigger, refer to the When-Create-Record topic in the Oracle Forms help system.


 When-Custom-Item-Event trigger

Form Generator code groups for this trigger:

None.

For more information about the When-Custom-Item-Event trigger, refer to the When-Custom-Item-Event topic in the Oracle Forms help system.


 When-Database-Record trigger

Form Generator code groups for this trigger:

None.

For more information about the When-Database-Record trigger, refer to the When-Database-Record topic in the Oracle Forms help system.


 When-Form-Navigate trigger

Form Generator code groups for this trigger:

Code group name	Code group description
CGNV$REMOVE_CHILD_FORM	Remove closed child form from record group

For more information about the When-Form-Navigate trigger, refer to the When-Form-Navigate topic in the Oracle Forms help system.


 When-Image-Activated trigger

Form Generator code groups for this trigger:

Code group name	Code group description
CGIM$WHEN_IMAGE_ACTIVATED	Load image from a file when current image item activated

For more information about the When-Image-Activated trigger, refer to the When-Image-Activated topic in the Oracle Forms help system.


 When-Image-Pressed trigger

Form Generator code groups for this trigger:

Code group name	Code group description
CGIM$WHEN_IMAGE_PRESSED	Load image from a file when image item is pressed

For more information about the When-Image-Pressed trigger, refer to the When-Image-Pressed topic in the Oracle Forms help system.


 When-List-Activated trigger

Form Generator code groups for this trigger:

None.

For more information about the When-List-Activated trigger, refer to the When-List-Activated topic in the Oracle Forms help system.


 When-List-Changed trigger

Form Generator code groups for this trigger:

Code group name	Code group description
CGFF$WHEN_LIST_CHANGED	Call module that corresponds to value selected
CGLY$CNTRL_TAB_CHANGED	Perform navigation to canvas selected from control poplist

For more information about the When-List-Changed trigger, refer to the When-List-Changed topic in the Oracle Forms help system.


 When-Mouse-Click trigger

Form Generator code groups for this trigger:

None.

For more information about the When-Mouse-Click trigger, refer to the When-Mouse-Click topic in the Oracle Forms help system.


 When-Mouse-DoubleClick trigger

Form Generator code groups for this trigger:

None.

For more information about the When-Mouse-DoubleClick trigger, refer to the When-Mouse-DoubleClick topic in the Oracle Forms help system.


 When-Mouse-Down trigger

Form Generator code groups for this trigger:

Code group name	Code group description
CGLV$WHEN_MOUSE_DOWN	Synchronize MOUSE_RECORD system variable in multi-row blocks

For more information about the When-Mouse-Down trigger, refer to the When-Mouse-Down topic in the Oracle Forms help system.


 When-Mouse-Enter trigger

Form Generator code groups for this trigger:

None.

For more information about the When-Mouse-Enter trigger, refer to the When-Mouse-Enter topic in the Oracle Forms help system.


 When-Mouse-Leave trigger

Form Generator code groups for this trigger:

None.

For more information about the When-Mouse-Leave trigger, refer to the When-Mouse-Leave topic in the Oracle Forms help system.


 When-Mouse-Move trigger

Form Generator code groups for this trigger:

None.

For more information about the When-Mouse-Move trigger, refer to the When-Mouse-Move topic in the Oracle Forms help system.


 When-Mouse-Up trigger

Form Generator code groups for this trigger:

None.

For more information about the When-Mouse-Up trigger, refer to the When-Mouse-Up topic in the Oracle Forms help system.


 When-New-Block-Instance trigger

Form Generator code groups for this trigger:

Code group name	Code group description
CGBS$WHEN_NEW_BLOCK_ INSTANCE	Ensure canvases are synchronized correctly
CGLL$BLK_INIT_LOOKUP_LISTS	Populate GUI lookup list item elements at block level
CGLT$TAB_BLOCK_MANAGEMENT	Switch tab management code on/off
CGLT$TAB_NEW_BLOCK	Show canvases for this block
CGLY$MANAGE_CANVASES	Ensure that correct canvases are visible

For more information about the When-New-Block-Instance trigger, refer to the When-New-Block-Instance topic in the Oracle Forms help system.


 When-New-Form-Instance trigger

Form Generator code groups for this trigger:

Code group name	Code group description
CGBS$STARTUP	Perform start-up processing for block synchronization
CGBS$STARTUP_NO_BS	Execute query with current context during form startup
CGBS$TAB_CANVAS_WNFI	Instantiate control poplist and navigate to first block
CGGN$CALL_GENERATOR_CODE	Execute generated WHEN-NEW-FORM-INSTANCE code
CGLT$INIT_TAB_BLOCKS	Initialize tabbed block canvases
CGLY$COPY_USER_DATE	Populate USER/DATE items in canvas headers and footers
CGLY$INIT_CANVASES	Initialize canvas management during form startup
CGNV$MAP_PARAM_TO_ITEMS	Map form parameter values to items during startup
CGNV$STARTUP_MODE	Control startup mode of the generated form
CGTR$INIT_NAVIGATOR	Initializes navigator for an instance of a form

For more information about the When-New-Form-Instance trigger, refer to the When-New-Form-Instance topic in the Oracle Forms help system.


 When-New-Item-Instance trigger

Form Generator code groups for this trigger:

Code group name	Code group description
CGBG$WHEN_NEW_ITEM_INSTANCE	Perform navigation for current record item
CGDF$WHEN_NEW_ITEM_INSTANCE	Call user defined descriptive flex processing
CGED$EDIT_ITEM	Display the item editor for the current item
CGLU$SET_LOV	Set LOV mode dependent on form mode
CGLY$SWITCH_TAB_CANVAS	During navigation display current canvas in control poplist
CGNV$ENTER_QUERY_PARAMS	Set item values in query mode from parameters
CGNV$NAVPAG_REDIRECT	Redirect navigation to correct subcomponent

For more information about the When-New-Item-Instance trigger, refer to the When-New-Item-Instance topic in the Oracle Forms help system.


 When-New-Record-Instance trigger

Form Generator code groups for this trigger:

Code group name	Code group description
CGLY$SYNC_SINGLE_AREA	Synchronize single area canvas items
CGMR$MOVETO_LAST_POSTN	Move cursor to last position

For more information about the When-New-Record-Instance trigger, refer to the When-New-Record-Instance topic in the Oracle Forms help system.


 When-Radio-Changed trigger

Form Generator code groups for this trigger:

None.

For more information about the When-Radio-Changed trigger, refer to the When-Radio-Changed topic in the Oracle Forms help system.


 When-Remove-Record trigger

Form Generator code groups for this trigger:

None.

For more information about the When-Remove-Record trigger, refer to the When-Remove-Record topic in the Oracle Forms help system.


 When-Tab-Page-Changed trigger

Form Generator code groups for this trigger:

Code group name	Code group description
CGLT$NEW_TAB_PAGE	Show related canvases for this tab

For more information about the When-Tab-Page-Changed trigger, refer to the When-Tab-Page-Changed topic in the Oracle Forms help system.


 When-Timer-Expired trigger

Form Generator code groups for this trigger:

None.

For more information about the When-Timer-Expired trigger, refer to the When-Timer-Expired topic in the Oracle Forms help system.


 When-Tree-Node-Activated trigger

Form Generator code groups for this trigger:

None.

For more information about the When-Tree-Node-Activated trigger, refer to the When-Tree-Node-Activated topic in the Oracle Forms help system.


 When-Tree-Node-Expanded trigger

Form Generator code groups for this trigger:

Code group name	Code group description
CGTR$CHANGE_NAVIGATOR_NODE	Displays/hides child nodes of current node in navigator

For more information about the When-Tree-Node-Activated trigger, refer to the When-Tree-Node-Expanded topic in the Oracle Forms help system.


 When-Tree-Node-Selected trigger

Form Generator code groups for this trigger:

Code group name	Code group description
CGTR$SELECT_NAVIGATOR_NODE	Displays the block data for the selected record node

For more information about the When-Tree-Node-Activated trigger, refer to the When-Tree-Node-Selected topic in the Oracle Forms help system.


 When-Validate-Item trigger

Form Generator code groups for this trigger:

Code group name	Code group description
CGCC$CHK_CONS_ON_VF	Validate item against check constraints on source column
CGCD$SYNC_ITEMS	Synchronize derived column with corresponding display item
CGDF$WHEN_VALIDATE_ITEM	Call user defined descriptive flex processing
CGDV$PC_POPULATE_MEANING	Populate non-base table field to display domain meaning
CGDV$VALIDATE_OVF	Validate current item against the reference codes table
CGFK$VALIDATE_FK_OVF	Validate that foreign key value exists in referenced table
CGFK$WVI_CLR_DEPS_OVF	Clear associated items if current item is null
CGIM$WHEN_VALIDATE_ITEM	Load image from a file when file name item is validated
CGLL$VALIDATE_FK_FIELDS	Check foreign key exists for lookup list item
CGUV$CHK_KEYS_ON_VAL_FLD	Check item value against unique or primary key

For more information about the When-Validate-Item trigger, refer to the When-Validate-Item topic in the Oracle Forms help system.


 When-Validate-Record trigger

Form Generator code groups for this trigger:

Code group name	Code group description
CGDF$WHEN_VALIDATE_RECORD	Call user defined descriptive flex processing

For more information about the When-Validate-Record trigger, refer to the When-Validate-Record topic in the Oracle Forms help system.


 When-Window-Activated trigger

Form Generator code groups for this trigger:

Code group name	Code group description
CGNV$WHEN_WINDOW_ACTIVATED	Navigate to current item for window during activation

For more information about the When-Window-Activated trigger, refer to the When-Window-Activated topic in the Oracle Forms help system.


 When-Window-Closed trigger

Form Generator code groups for this trigger:

Code group name	Code group description
CGNV$WHEN_WINDOW_CLOSED	Close child windows/forms during closure of parent window

For more information about the When-Window-Closed trigger, refer to the When-Window-Closed topic in the Oracle Forms help system.


 When-Window-Deactivated trigger

Form Generator code groups for this trigger:

Code group name	Code group description
CGNV$WHEN_WINDOW_DEACTIVATED	Record current item for window during deactivation

For more information about the When-Window-Deactivated trigger, refer to the When-Window-Deactivated topic in the Oracle Forms help system.


 When-Window-Resized trigger

Form Generator code groups for this trigger:

Code group name	Code group description
CGTR$RESIZE_NAVIGATOR	Resizes navigator item and canvas when window is resized

For more information about the When-Window-Resized trigger, refer to the When-Window-Resized topic in the Oracle Forms help system.


Form generation for integration with Oracle Applications

An overview of forms generation for Oracle Applications

Generating descriptive flexfields

Generating row LOVs


An overview of forms generation for Oracle Applications

Related Topics

Important note about versions of Oracle Forms, Oracle Designer and Oracle Applications

To generate forms for integration with Oracle Applications, your Oracle Applications installation must be implemented in the same version of Oracle Forms as that generated by Form Generator.

The version of Form Generator shipped with Oracle Designer 6i generates Oracle Forms 6i applications. However, at the time of writing (January 2000), some Oracle Applications are built using earlier versions of Oracle Forms (typically Forms 4.5, 5.0, and 6.0).

To generate Oracle Forms modules for integration with Oracle Applications built with earlier versions of Oracle Forms, you must therefore use an earlier version of Form Generator:

•	to generate forms for integration with Oracle Applications built with Oracle Forms 4.5, use the Form Generator supplied with Oracle Designer Release 1.x

•	to generate forms for integration with Oracle Applications built with Oracle Forms 5.0, use the Form Generator supplied with Oracle Designer Release 2.x

•	to generate forms for integration with Oracle Applications built with Oracle Forms 6.0, use the Form Generator supplied with Oracle Designer Release 6.0

What are Oracle Applications?

Oracle Applications are a suite of integrated client/server applications for managing finance, government, manufacturing, distributing, project control and human resources information. Some of the many Oracle Applications include Oracle General Ledger, Oracle Payroll, Oracle Order Entry and Oracle Purchasing.

All Oracle Applications adhere to the same set of coding and interface standards and so present users with a common 'look-and-feel'.

Oracle Designer and Oracle Applications

Oracle Applications are developed with a business model that meets both core application requirements and has generic structures and features to support customization.

Customization is frequently required at some point, especially since customer requirements will change over time in response to changes in legislation and organizational structure.

You can use Oracle Designer to store the application definition in a common repository. This will enable you to first identify missing functionality, and then to model, design and generate the necessary customer-specific extensions.

For a detailed discussion of the issues involved, refer to the white paper "Oracle Designer for Oracle Application Users".

Generating Oracle Applications-like forms

Form Generator includes a number of features you can use to give generated forms an Oracle Applications 'look-and-feel'. These features are grouped together in the list of topics below:

•	Calendar windows for date items

•	Current record indicator item generation

•	Generating 'empty' non-base table items

•	Tab canvas generation

•	the ITMPPE and ITMMPW preferences enable you to generate certain types of item and text (e.g. prompts) with room for expansion and with minimum widths respectively

•	Generating row LOVs

•	Multi-region block generation (multi-region blocks are a mechanism by which you can generate Oracle Applications style combination blocks)

You can use these features, regardless of whether you intend to integrate generated forms with Oracle Applications.

In addition to the above, Form Generator provides an additional feature specifically to support Oracle Applications descriptive flexfield functionality. This feature is described in the topic Descriptive flexfield generation. Only use these feature if your Oracle Applications installation is implemented in the same major version of Oracle Forms as that generated by Form Generator.


Descriptive flexfield generation

Related Topics

The functionality described in the topics below is only available if your Oracle Applications installation is implemented in the same major version of Oracle Forms as that generated by Form Generator. For more information, click here.

About descriptive flexfields

Descriptive flexfield example

Generating descriptive flexfields


About descriptive flexfields

Related Topics

Important note about versions of Oracle Forms, Oracle Designer and Oracle Applications

The functionality described in this topic is only available if your Oracle Applications installation is implemented in the same major version of Oracle Forms as that generated by Form Generator. For more information, click here.

About descriptive flexfields

Descriptive flexfields are an Oracle Applications feature for customizing the standard forms shipped as part of an Oracle Applications module to record additional information that is important and unique to the business.

A descriptive flexfield appears on a form as a single-character, unnamed item enclosed in brackets. On navigation to an enabled descriptive flexfield, a pop-up window appears containing an item for as many segments of the flexfield as necessary.

Each segment in a descriptive flexfield has a name, and can have a set of valid values. An organization can even define dependencies among the segments or customize a descriptive flexfield to display context-sensitive segments, so that different segments or additional pop-up windows appear depending on the values entered in other items or segments.

Most Oracle Applications tables contain columns to support descriptive flexfields. These columns are normally called ATTRIBUTE1 to ATTRIBUTEn and a column normally called ATTRIBUTE_CATEGORY.

Descriptive flexfield functionality is implemented with a number of standard Application Object Library (AOL) procedures. For more information, refer to the Oracle Applications Standards documentation.


Descriptive flexfield example

Related Topics

Important note about versions of Oracle Forms, Oracle Designer and Oracle Applications

The functionality described in this topic is only available if your Oracle Applications installation is implemented in the same major version of Oracle Forms as that generated by Form Generator. For more information, click here.

Descriptive flexfield example

Consider the Additions form used to define an asset in the Oracle Assets application. This form contains items to record the "normal" information about an asset, such as the type of asset and an asset number. However, the form does not contain specific items for each detail about a given asset, such as amount of memory in a computer or lifting capacity of a forklift. In this case, having all the potentially-needed items actually built into the form is not only difficult, it is undesirable. Because while one organization may have computers and forklifts as assets, another organization may have only computers and luxury automobiles (and no forklifts) as assets.

If the form contained built-in items for each attribute of a forklift, for example, an organization with no forklifts would find those items to be both unnecessary and a nuisance because a user must skip through them to enter information about another type of asset. In fact, items for forklift information would be cumbersome whenever a user in any organization tries to enter any asset that is not a forklift.

Instead of trying to contain all possible items for assets information, the Additions form has a descriptive flexfield that can be customized to record just the information an organization needs about its assets. The structure of the descriptive flexfield would depend on the value of the Asset Category item and only display items for segments that apply to the particular type of asset. For example, if the asset category were "desk, wood", the descriptive flexfield could prompt for style, size and wood type. If asset category were "computer, hardware", the descriptive flexfield could prompt for CPU chip and memory size. The descriptive flexfield can be subsequently modified as new categories of asset are acquired.


Generating descriptive flexfields

Related Topics

Important note about versions of Oracle Forms, Oracle Designer and Oracle Applications

The functionality described in this topic is only available if your Oracle Applications installation is implemented in the same major version of Oracle Forms as that generated by Form Generator. For more information, click here.

To generate forms containing descriptive flexfields:

1.	Attach a library containing the AOL descriptive flexfield procedures to the template form.

2.	Create non-displayed bound items for each of the required ATTRIBUTE columns (i.e. ATTRIBUTE1 to ATTRIBUTEn) and for the ATTRIBUTE_CATEGORY column.  How

3.	Create a displayed unbound item.  How

From this unbound item, Form Generator will generate the bracketed item that will enable users to access the popup window containing the items to populate the descriptive flexfield segments.

4.	Set the properties of the displayed unbound item as follows

Property	Set to:	Notes:
Displayed	Y
Unbound Type	Custom
Display Type:	Descriptive Flexfield
Display Width	2
Prompt (for single row block)	[ | ]	i.e. square brackets containing the vertical bar character (which has been defined as the post prompt marker - see below)
Prompt (for multi-row block)	[ _ _ _ ]	i.e. square brackets containing three spaces
The object libraries supplied with Form Generator already contain a suitable object from which to subclass or copy properties. If you are not using one of the supplied object libraries, we recommend you add a suitable object to one of the object libraries you are using as described in the next step.

5.	(recommended) Create a text item in an object library and set the properties you want Form Generator to copy or subclass in one of the following ways:

•	by creating a text item called CGSO$DESC_FLEX in an object library

•	by specifying an object in an object library for Form Generator to use when generating the displayed unbound item, using the Template/Library Object property of the repository item definition

For more information about copying or subclassing objects from an object library, refer to Using Object Libraries.

6.	If the Descriptive Flexfield is part of a single row block, set the following preferences at item level for the unbound item as shown below:

Preference Name	Preference Description	Value
ITMPPM	Item post prompt marker	|
ITMPIG	Prompt/Item gap	0
7.	Set the following Descriptive Flexfield preferences as shown:

Preference Name	Preference Description	Sets this Parameter in the AOL procedure call	Notes
DFFNAM	Field Name	FIELD	Required
DFNAME	Name	DESC_FLEX_NAME	Required
DFAPPL	Application Short Name	APPL_SHORT_NAME	Required
DFDESC	Generate description field	DESCRIPTION
DFSIDS	Generate segment IDs field	DATA_FIELD
DFDATE	VDATE definition	VDATE
DFTITL	Title definition	TITLE
DFPICK	AUTOPICK definition	AUTOPICK
DFUSDB	USEDBFLDS definition	USEDBFLDS
DFREAD	READ_ONLY definition	READ_ONLY
DFLOCK	LOCK_FLAG definition	LOCK_FLAG

Values you enter for the above preferences are passed as the indicated parameters to the Application Object Library (AOL) descriptive flexfield procedures.

The above preferences set values for a particular descriptive flexfield. However, the same descriptive flexfield will often be used in several forms. We therefore recommend that you set the above preferences at Table level rather than at item level.

8.	If you are implementing a new descriptive flexfield, you must register the descriptive flexfield with AOL using the Application Developer responsibility.

Notes

Occasionally, the AOL implementation requires a Description item and an Id item in addition to the Descriptive Flexfield indicator item. If these items are required, create unbound items immediately after the unbound item defining the Descriptive Flexfield indicator item. Give the additional unbound items the properties described below:

For the Description item

Repository Item Property	Set this to:
Displayed	Y
Display Type:	Descriptive Flexfield
Insert	Y
Update	Y
Query	Y
Optional	Y

For the Id item:

Repository Item Property	Set this to:
Displayed	Y
Display Type:	Descriptive Flexfield
Insert	Y
Update	Y
Query	Y
Optional	Y
Context	Y


Generating row LOVs

Related Topics

What is a row LOV?

A row LOV is a native Oracle Forms LOV that displays all the available records in the base table of a queryable block.

Row LOVs are a common feature of Oracle Applications forms.

To generate a row LOV:

1.	Create a module component with the required base table usage.  How

2.	Create a repository LOV definition and give it the same name as the module component.  How

3.	Create an LOV base table usage of the same base table as the module component.

4.	Create bound items from columns in the LOV table usage(s) that you want to appear in the generated row LOV (set the items' Display properties to Yes).

5.	If an unassociated inclusion of the LOV does not exist, create one now.

6.	Set ROWLOV to Yes.

7.	Provide the user with a way to fire the QUERY_FIND trigger created by Form Generator to display the row LOV.

In Oracle Applications, the row LOV is accessed from a menu option. You could enter the code below as command text for a similar menu item defined in a template menu:

execute_trigger('QUERY_FIND');

Alternatively, you could include a button on a toolbar defined in an object library or template and add the above code to the button's WHEN-BUTTON-PRESSED trigger.

The QUERY_FIND trigger calls the CG$QUERY_FIND procedure. A procedure with this name must exist in one of the following places:

•	an attached library

•	application logic

•	the template form

The ofgtel.pll standard library shipped with Form Generator contains a suitable procedure.

8.	Generate the form.

What happens in the generated form?

When the current block is queryable, selection of a menu option (or some other mechanism) displays an Oracle Forms LOV. The LOV contains values from columns in the base table for each available record. When the user of the generated form selects a record from the LOV, that record is queried into the block.


Release 1.x functionality superseded by object library support

For backwards compatibility, the functionality described in this topic is still supported by Form Generator in Oracle Designer Release 2 onwards. However, we strongly recommend you consider using objects in object libraries to set properties of generated objects instead.

For more information, refer to Object libraries and earlier versions of Form Generator


Obsolete preference superseded by object library support

Form Generator support for object libraries in Oracle Designer Release 2 onwards makes this preference obsolete. We strongly recommend you do not use this preference. Instead, set properties of an appropriate source object in an object library. For more information about object libraries, refer to Form Generator and object libraries.

However, to ensure backward-compatibility, in this release you can continue to use this preference by setting the OLBOLD preference to Yes. By so doing, you specify Form Generator is to continue to use all of the obsolete preferences instead of properties of objects in object libraries.

Note that the OLBOLD preference and all obsolete preferences will be removed in future releases of Form Generator.


Different versions of Oracle Forms, Oracle Designer and Oracle Applications

To generate forms for integration with Oracle Applications, your Oracle Applications installation must be implemented in the same version of Oracle Forms as that generated by Form Generator.

The version of Form Generator shipped with Oracle Designer 6i generates Oracle Forms 6i applications. However, at the time of writing (January 2000), some Oracle Applications are built with earlier versions of Oracle Forms (typically Forms 4.5, 5.0, and 6.0).

To generate Oracle Forms modules for integration with Oracle Applications using earlier versions of Oracle Forms, you must therefore use an earlier version of Form Generator:

•	to generate forms for integration with Oracle Applications built with Oracle Forms 4.5, use the Form Generator supplied with Oracle Designer Release 1.x

•	to generate forms for integration with Oracle Applications built with Oracle Forms 5.0, use the Form Generator supplied with Oracle Designer Release 2.x

•	to generate forms for integration with Oracle Applications built with Oracle Forms 6.0, use the Form Generator supplied with Oracle Designer Release 6.0


Form Generator dialog boxes

Generate Form dialog box

Form Generator Options dialog box

Capture Form Design dialog box

Forms Design Capture Options dialog box


Generate Form dialog box

Related Topics

Use this dialog box to control the runtime behavior of Form Generator. Each option affects one aspect of the way Form Generator works during generation. Option settings are saved in the Registry. For more information, refer to Notes on Registry variables and form generation.

Module

Displays the Short Name of the module selected for generation.

Generate Option

The required generation option. The options are:

•	Form

•	Menu

Note: If the Generate option is set to Menu, a specified module of language Oracle Forms can be of type Menu or type Default. If the Generate option is set to Form, a specified module of language Oracle Forms must be of type Default.

Ignore User Application Logic

To ignore user-defined application logic during generation, check this check box.

Regardless of the setting of this check box, generatable application logic, template application logic, and object library application logic are always included in the generated application.

Include Module Network

To generate modules below this module in the repository module network, check this check box. All called form modules and attached library modules of language Oracle Forms will be generated. If a menu module is associated with this module, it will also be generated.

Note that other called modules (e.g. report modules) will not be generated, although menu items can be created for them.

Generate Associated Menus

To generate associated menus during generation, check this checkbox.

Generate Attached Libraries

To generate attached libraries during generation, check this check box.

An attached library will only be generated if its Language property is set to one of the following:

•	the same as the Language property of the module being generated

•	Oracle Common Library

Note that if PGULIB is set to Yes, Form Generator creates a generated module library regardless of the setting of this checkbox.

Preserve Layout

To preserve the layout of a previously generated form during a subsequent generation, select the Yes radio button and specify the previously generated form in the Source Form Name field.

For more information about preserving layout, refer to Generating generated forms again.

Preserve Layout - Source Form Name

Specify the form previously generated from this module that you want to preserve the layout of.

Use the Source options on the Dependencies tab of the Form Generator Options dialog to specify where to locate the previously generated form (on the filesystem or in the repository) during generation.

The default entry in this field is the Implementation Name property (or the Short Name property if the Implementation Name property has not been set) of the module selected for generation, suffixed with .fmb. If you specify a path in the Destination of generated files field on the Form Options tab of the Form Generator Options dialog, this is prefixed to the form name.

For more information about preserving layout, refer to Generating generated forms again.

Preserve Layout - Source Form Name - Browse button

To view and select from a list of forms, select this button.

Preserve Layout - Source Form Name - Reset button

To reset the entry in the Source Form Name field to the original entry, select this button.

Standards - Object Library Name

Use this field to specify one or more object libraries to use (use semi-colons to separate object library names). Note that Form Generator searches through object libraries for a particular object in the order in which you specify the object libraries.

The object library names in this field default to the object libraries specified by the STOOLB preference. If you change the names in the field, the names you enter are used instead of STOOLB. To restore the entry in the Object Library Name field to the value of STOOLB, click the Reset button.

Use the Source options on the Dependencies tab of the Form Generator Options dialog to specify where to locate object libraries (on the filesystem or in the repository) during generation.

If you specify that object libraries are stored as files in the repository, Form Generator searches for object libraries in the repository folders specified in the Repository Folders field on the Dependencies tab of the Form Generator Options dialog box.

If you specify that object libraries are stored as files in the filesystem, Form Generator searches the filesystem for the object libraries using the following in order:

•	any path specified in this field

•	the current working directory

•	any path specified in the Path field on the Dependencies tab of the Form Generator Options dialog box

If this field is empty, Form Generator does not use an object library during generation. If Form Generator cannot locate the object library specified in this field, generation halts with an error.

Standards - Object Library Name - Browse Button

To view and select from a list of object library files, select this button.

Standards - Object Library Name - Reset Button

Use this button to reset the object library names to those currently specified by STOOLB.

Standards - Template Name

Use this field to specify the template form or template menu to use.

The template name defaults to the template specified by the STFFMB preference (form templates) or STMMMB preference (menu templates). If you change the name in the field, the name you enter is used instead of STFFMB/STMMMB. To restore the entry in the Template Name field to the value of STFFMB/STMMMB, click the Reset button.

Use the Source options on the Dependencies tab of the Form Generator Options dialog to specify where to locate the template (on the filesystem or database, or in the repository) during generation.

If you specify that the template is stored as a file in the repository, Form Generator searches for the template in the repository folders specified in the Repository Folders field on the Dependencies tab of the Form Generator Options dialog box.

If you specify that the template is stored in the filesystem or database, the settings of options on the Standards tab of the Form Generator Options dialog box determine how Form Generator searches for the template. Most commonly, you will specify that the template location is File. In this case, Form Generator searches the filesystem for the template using the following in order:

•	any path specified in this field

•	the current working directory

•	any path specified in the Path field on the Dependencies tab of the Form Generator Options dialog box

If this field is empty, Form Generator does not use a template during generation. If Form Generator cannot locate the template specified in this field, generation halts with an error.

Standards - Template Name - Browse Button

To view and select from a list of templates, select this button.

Standards - Template Name - Reset Button

Use this button to reset the template name to the name currently specified by STFFMB/STMMMB.

Post Generation

Use the Post Generation options to specify what happens when generation is complete.

Post Generation - Commit

Select this option to update repository objects when generation is complete.

Note that there are some circumstances when Form Generator will not update properties of repository objects. For more information, refer to When are repository objects not updated during generation and design capture.

Post Generation - Revert

Select this option if you do not want to update repository objects with the property settings used during generation.

Post Generation - Browse/Edit mode

Select this option to activate Post Processing Mode, which enables you to choose how to process proposed repository changes.

For more information about Post Processing Mode, refer to About the Design Editor Post Processing Mode.

Start button

To generate an Oracle Forms module from the selected repository module, click Start.

Options button

To specify where to save generated files and how to run generated applications, click Options to display the Forms Generator Options dialog box.


Form Generator Options dialog box

Related Topics

Use this dialog box to specify options for controlling the runtime behavior of Form Generator.

The Form Generator Options dialog box comprises the following tabs:

Dependencies tab

Form Options tab

Menu Options tab

Compile tab

Run tab

Standards tab

Each tab on this dialog box has a set of generation options; each option affects one aspect of the way Form Generator works during generation. Option settings are saved in the Registry. For more information, refer to Notes on Registry variables and form generation.


Form Generator Options dialog box- Dependencies tab

Related Topics

Use this tab to specify the location of files required during generation.

File System

Select this option if you want those files that are required during generation to be retrieved from the filesystem and not from the repository.

Path

Specifies the path to search for object libraries, template forms, and template menus. To enter multiple paths in this field, place a semi-colon (;) between each path.

The path must end with the character used to separate elements of a path in your environment. For Microsoft Windows, this is the backslash (‘\’) character.

If you do not specify a path in the Object Library Name or Template Name fields, or an object library/template is not in the path you specify in the field, Form Generator first searches for the specified object library/template in the current working directory. If the object library/template is not in the current working directory, Form Generator searches in the locations specified in the Path field (working from left to right) until it finds the specified object library/template.

Path Browse button

To view and select from a valid list of paths, select this button.

PLL Files Path

Specifies where Form Generator will find attached library .PLL files. To enter multiple paths in this field, place a semi-colon (;) between each path.

Note:	To ensure the generated form is portable between systems, do not specify a path in this field. At runtime, Oracle Forms looks for attached libraries using the paths specified by the FORMS60_PATH Registry variable. Before attempting to run the generated form, add the appropriate path to the FORMS60_PATH Registry variable.

Path Browse button

To view and select from a valid list of paths, select this button.

Repository

Select this option if you want those files that are required during generation to be retrieved from the repository and synchronized with files in the filesystem before being used.

For more information about storing source files in the repository, refer to About storing files in the repository for use during generation.

Repository Folders

Specify the repository folder containing the files required during generation. To specify multiple folders, separate the folder names with commas. Multiple folders are searched in the order in which you specify them.

For more information about storing source files in the repository, refer to About storing files in the repository for use during generation.


Form Generator Options dialog box- Form Options tab

Related Topics

Use this tab to specify where Form Generator is to store generated forms (and generated module libraries if PGULIB is set to Yes).

Location

Specifies the location in which to store the generated form module binary files. The location can be an operating system file, the database on which the repository resides, or another database.

Destination of generated files

Specifies the pathname of the directory where the form module (and generated module library if PGULIB is set to Yes) binary files are held when the Generated Form Location option is set to File. Do not include any variables in the pathname.

If no location is specified, generated files are saved in the location specified by the CGENF61 registry variable under the /ORACLE/CGENF61 registry key. By default, the CGENF61 registry variable is set to <ORACLE_HOME>\CGENF61. If the CGENF61 registry variable exists but is not set (or if CGENF61 exists but is set to an invalid value), Form Generator cannot generate successfully.

If the CGENF61 registry variable does not exist under the /ORACLE/CGENF61 registry key, generated files are saved in the location specified by the CGENF61 registry variable under the /ORACLE registry key.  If the CGENF61 registry variable exists but is not set (or if CGENF61 exists but is set to an invalid value), Form Generator cannot generate successfully.

The location in which Form Generator saves generated files is displayed in the Messages window.

Destination Browse Button

To view and select from a valid list of destinations, select this button.

Upload generated files to repository

To save generated files in the repository folder mapped to the directory specified in the Destination of generated files field, check this checkbox. If a repository folder is not mapped to the specified directory, the file is not saved in the repository.

For more information about saving generated files in the repository, refer to About storing generated files in the repository after generation.

Connect String

Specifies the connect string for storing forms in the database when the Generated Form Location option is set to Other Database.

Note:	The full connect string, including username, password and database must be specified, and must be of the form: <usr>/<passwd>@<database>

Commands - Insert

Specifies the command to insert the form into the database when the Generated Form Location option is set to Other Database.

Note:	The command you enter is concatenated with the connect string and the name of the module and passed to the operating system command processor. Commands must not contain variables.

Commands - Extract

Specifies the command to extract an existing form from the database when the Generated Form Location option is set to Other Database.

Note:	The command you enter is concatenated with the connect string and the name of the module and passed to the operating system command processor. Commands must not contain variables.

Commands - Delete

Specifies the command that deletes an existing form from the database when the Generated Form Location option is set to Other Database.

Note:	The command you enter is concatenated with the connect string and the name of the module and passed to the operating system command processor. Commands must not contain variables.


 Form Generator Options dialog box - Menu Options tab

Related Topics

Use this tab to specify where Form Generator is to store generated menus.

Location

Specifies the location in which to store the generated menu module binary. The location can be an operating system file, the database on which the repository resides, or another database.

Destination

Specifies the pathname of the directory where the menu module binary files are held when the Generated Menu Location is set to File. Do not include any variables in the pathname.

If no location is specified, generated files are saved in the location specified by the CGENF61 registry variable under the /ORACLE/CGENF61 registry key. By default, the CGENF61 registry variable is set to <ORACLE_HOME>\CGENF61. If the CGENF61 registry variable exists but is not set (or if CGENF61 exists but is set to an invalid value), Form Generator cannot generate successfully.

If the CGENF61 registry variable does not exist under the /ORACLE/CGENF61 registry key, generated files are saved in the location specified by the CGENF61 registry variable under the /ORACLE registry key. If the CGENF61 registry variable exists but is not set (or if CGENF61 exists but is set to an invalid value), Form Generator cannot generate successfully.

The location in which Form Generator saves generated files is displayed in the Messages window.

Warning:	Pathnames must end with the character used to separate elements of a pathname in your environment. For Microsoft Windows, this is the backslash (‘\’) character.

Destination Browse Button

To view and select from a valid list of destinations, select this button.

Upload generated files to repository

To save generated files in the repository folder mapped to the directory specified in the Destination of generated files field, check this checkbox. If a repository folder is not mapped to the specified directory, the file is not saved in the repository.

For more information about saving generated files in the repository, refer to About storing generated files in the repository after generation.

Connect String

Specifies the connect string for storing menus in the database when the Generated Menu Location option is set to Other Database.

Note:	The full connect string, including username, password and database must be specified, and must be of the form: <usr>/<passwd>@<database>

Commands - Insert

Specifies the command to insert the menu module into the database when the Generated Menu Location option is set to Other Database.

Note:	The command you enter is concatenated with the connect string and the name of the module and passed to the operating system command processor. Commands must not contain variables.

Commands - Extract

Specifies the command to extract the existing menu module from the database when the Generated Menu Location option is set to Other Database.

Note:	The command you enter is concatenated with the connect string and the name of the module and passed to the operating system command processor. Commands must not contain variables.

Commands - Delete

Specifies the command to delete an existing menu from the database when the Generated Menu Location option is set to Other Database.

Note:	The command you enter is concatenated with the connect string and the name of the module and passed to the operating system command processor. Commands must not contain variables.


 Form Generator Options dialog box - Compile tab

Related Topics

Use this tab to specify whether generated Oracle Forms applications (including generated module libraries if PGULIB is set to Yes) are to be compiled into executable files, and where to store the executable files.

Compile Form/Menu Radio Buttons

Specifies whether Form Generator compiles a generated Oracle Forms application into an Oracle Forms executable.

•	No - Form Generator never compiles the generated application at the end of the generation process. When generation is complete, a message appears in the Build Action window. To compile the generated application, double click on the message.

•	Yes - Form Generator always compiles the generated application at the end of the generation process.

Form Executable from Binary - Destination

Specifies the pathname of the directory in which to store the form module executable (.fmx) file (and the generated module library .plx file if PGULIB is set to Yes) . Do not include any variables in the pathname.

If a pathname is not specified, Form Generator uses the current working directory.

Note:	Pathnames must end with the character used to separate elements of a pathname in your environment. For Microsoft Windows, this is the backslash (‘\’) character.

Note:	The Command, the Connect String, and the Destination are concatenated and passed to the operating system command processor. Commands must not contain variables.

Form Executable from Binary - Destination Browse Button

To view and select from a valid list of destinations, select this button.

Form Executable from Binary - Connect String

Use this field to specify a user other than the current user with which to compile the .fmx file (and the generated module library .plx file if PGULIB is set to Yes). If this option is not set, the user is the current repository user.

If a user is specified:

•	during the generation process, any WHERE clauses and table check constraints are validated against objects in this user's schema

•	this user is used as the user ID for the command specified in the Form Executable From Binary Command option

Note:	The full connect string, including username, password and database must be specified, and must be of the form: <usr>/<passwd>@<database>

Note:	The Command, the Connect String, and the Destination are concatenated and passed to the operating system command processor. Commands must not contain variables.

Form Executable from Binary - Command

Specifies the command (and optional parameters) to compile the .fmx file from the .fmb file. If you do not specify a command in this field, Form Generator uses a default command to compile the .fmx file from the .fmb file.

Note:	The Command, the Connect String, and the Destination are concatenated and passed to the operating system command processor. Commands must not contain variables.

Menu Executable from Binary - Destination

Specifies the pathname of the directory in which to store the menu module executable (.mmx) file. Do not include any variables in the pathname.

If a pathname is not specified, Form Generator uses the current working directory.

Note:	Pathnames must end with the character used to separate elements of a pathname in your environment. For Microsoft Windows, this is the backslash (‘\’) character.

Note:	The Command, the Connect String, and the Destination are concatenated and passed to the operating system command processor. Commands must not contain variables.

Menu Executable from Binary - Destination Browse Button

To view and select from a valid list of destinations, select this button.

Menu Executable from Binary - Connect String

Use this field to specify a user other than the current user with which to compile the .mmx file. If this option is not set, the user is the current repository user.

If a user is specified, this is used as the user ID for the command specified in the Menu Executable From Binary Command option.

Note:	The full connect string, including username, password and database must be specified, and must be of the form: <usr>/<passwd>@<database>

Note:	The Command, the Connect String, and the Destination are concatenated and passed to the operating system command processor. Commands must not contain variables.

Menu Executable from Binary - Command

Specifies the command used to generate the .mmx file from the .mmb file.

Note:	The Command, the Connect String, and the Destination are concatenated and passed to the operating system command processor. Commands must not contain variables.


Form Generator Options dialog box - Run tab

Related Topics

Use this tab to specify whether forms compiled by Form Generator are to be run after generation.

Run Form automatically checkbox

Check this checkbox to run a generated form automatically. Form Generator invokes Oracle Forms Runtime to run the compiled application at the end of the generation process.

Note that:

-	a form is not run if it has not been compiled in this run of Form Generator, even if a .fmx file exists

-	when generation is complete (regardless of the setting of the Run Form automatically checkbox), messages appear in the Build Action window enabling you to run the generated form either using the Web Previewer or as a client server application

Run as a Web form checkbox

(Always checked in Oracle9i Designer and 10G releases, because Oracle9i Forms and 10G releases do not support client server architecture.)

Check this checkbox to run the generated form automatically using the WebForms applet (note that you must also check the Run Form automatically checkbox).

You can use the WebForms applet to run a generated form in two ways:

-	within the Web Previewer (for more information, refer to Using the Web Previewer to run a generated WebForms application)

-	within a browser having deployed the generated form to a web server (for more information, refer to Using a web browser to run a generated WebForms application)

Note for Oracle Designer 6i users: when generation is complete (regardless of the setting of the Run Form automatically checkbox), messages appear in the Build Action window enabling you to run the generated form either as a WebForms application or as a client server application.

Run Form - Connect String

Specifies a user, other than the current user, to use to run the generated form. If this option is not set, the user is the current repository user.

The full connect string, including username, password and database must be specified, and must be of the form: <usr>/<passwd>@<database>

The connect string and command you enter are concatenated with the name of the form and passed to the operating system command processor. Commands must not contain variables.

Run Form - Client Server Command

(Not applicable in Oracle9i Designer or 10G releases.)

Specifies the command to run the generated form.

The connect string and command you enter are concatenated with the name of the form and passed to the operating system command processor. Commands must not contain variables.

Run Form - Web Browser

Use this field to specify the location and name of the web browser that you want to use to run a form that has been deployed to a web server. For more information, refer to Using a web browser to run a generated WebForms application.

Run Form - Web Browse button

To view and select from a valid list of files, select this button.

Default Terminal

Specifies the terminal file that Form Generator uses when running a generated form.


 Form Generator Options dialog box - Standards tab

Related Topics

Use this tab to specify the object libraries and templates used by Form Generator during generation.

Note that this tab is only displayed if you select the File or Database option on the Dependencies tab of the Form Generator Options dialog.

Form Template Location

Specifies the location of the template form module. The location can be an operating system file, the database on which the repository resides, or another database.

Form Template Command

Specifies the command used to extract the template form from the database when the Form Template Location option is set to Other Database.

Note:	The command, and connect string are concatenated with the name of the template form and passed to the operating system command processor. Commands must not contain variables.

Form Template Connect String

Specifies the connect string for extracting the template form when the Form Template Location option is set to Other Database.

Note:	The full connect string, including username, password and database must be specified, and must be of the form: <usr>/<passwd>@<database>

Note:	The command, and connect string are concatenated with the name of the template form and passed to the operating system command processor. Commands must not contain variables.

Menu Template Location

Specifies the location of the template menu module binary. The location can be an operating system file, the database on which the repository resides, or another database.

Menu Template Command

Specifies the command used to extract the template menu from the database when Menu Template Location is set to Other Database.

Note:	The command, and connect string are concatenated with the name of the template menu and passed to the operating system command processor. Commands must not contain variables.

Menu Template Connect String

Specifies the connect string for extracting the template menu when the Menu Template Location option is set to Other Database.

Note:	The full connect string, including username, password and database must be specified, and must be of the form: <usr>/<passwd>@<database>

Note:	The command, and connect string are concatenated with the name of the template menu and passed to the operating system command processor. Commands must not contain variables.


Capture Form Design dialog box

Related Topics

Use this dialog box to control the runtime behavior of Form Generator when capturing modules.

Target container

Specifies the container into which to capture the form.

Location

Specifies the location of the form you want to capture. The location can be an operating system file, the database on which the repository resides, or another database.

Destination Module

To capture a form into a new repository module, you can use this field to specify a short name for the repository module that will be created by the design capture process.

To capture a form and merge it with an existing repository module, use this field to specify the name of the existing module. During design capture, Form Generator prompts you to confirm that you want to merge the existing module and the captured module.

File - Name

Specifies the name of the .fmb file to use for design capture.

File - Browse Button

To view and select from a list of .fmb files, select this button.

Database - Form Name

Specifies the name of the form to be captured.

Capture Mode

Specifies what will be captured. You can capture a form and its associated application logic, or simply the design of the form without any application logic.

Capture Mode - Capture BOTH module design and application logic

To capture a form and its associated application logic into a new module, select this radio button.

If the module specified in the Destination Module field already exists, Form Generator gives you the option to merge the captured module with the existing repository module.

Capture Mode - Capture ONLY module design

To capture a form into a new module, select this radio button. No application logic associated with the form will be captured if you select this option.

If the module specified in the Destination Module field already exists, Form Generator gives you the option to merge the captured module with the existing repository module.

Additional Containers

Use this field to specify additional containers in which to locate objects referenced by the form being captured. Use a comma to separate container names.

Form Generator captures the form into the specified target container. If the objects being captured refer to other objects (e.g. tables, languages, attached libraries, reusable module components, reusable LOVs) that are not in the target container, Form Generator attempts to locate the referenced objects by searching the specified additional containers.

Note the following:

•	Form Generator does not update or create referenced objects in additional containers during design capture.

•	Referenced objects must be visible in the current workarea.

•	Form Generator searches for referenced objects in the additional containers in the order in which you enter the containers in the field.

•	If referenced tables and languages do not exist in either the target container or the additional containers, Form Generator is unable to capture the form.

•	If referenced reusable module components or reusable LOV components do not exist in either the target container or the additional containers, Form Generator captures the form and creates new reusable module components or reusable LOV components in the target container.

•	If referenced attached libraries do not exist in either the target container or the additional containers, Form Generator captures the form but does not capture or create the attachment.

Additional Containers - Browse button

To search for the container containing referenced objects, click Browse.

Capture Filter - Form Name

Use this field to specify the location and name of a capture filter form containing objects that you do not want captured from the form into the repository.

The form name defaults to the form specified by the SCTFMB preference. If you change the name in the field, the name you enter is used instead of SCTFMB. To restore the entry in the Form Name field to the value of SCTFMB,, click the Reset button.

If you specify a path in this field, Form Generator searches for the capture filter form in the location specified by that path. If Form Generator cannot find the capture filter form in that location, Form Generator searches for the capture filter form in the current working directory and in the location specified on the Forms Design Capture Options dialog box - Capture Filter tab.

If this field is empty, Form Generator does not use a capture filter form during design capture. If Form Generator cannot locate the capture filter form specified in this field, design capture halts with an error.

Capture Filter - Browse Button

To view and select from a list of capture filter forms, select this button.

Capture Filter - Reset Button

Use this button to reset the capture filter form name to the name currently specified by SCTFMB.

Post Capture

Use the Post Capture options to specify what happens when design capture is complete.

Post Capture - Commit

Select this option to update repository objects when design capture is complete.

Note that there are some circumstances when Form Generator will not update properties of repository objects. For more information, refer to When are repository objects not updated during generation and design capture.

Post Capture - Browse/Edit mode

Select this option to activate Post Processing Mode, which enables you to choose how to process proposed repository changes.

For more information about Post Processing Mode, refer to About the Design Editor Post Processing Mode.

Create on Diagram after Capture

To automatically display a module diagram showing the module definition as captured into the repository at the end of the design capture process, check this check box.

Start Button

To begin the design capture process, click Start.

Options Button

To specify further design capture details and to produce a design capture report, click Options to display the Forms Design Capture Options dialog box.


Forms Design Capture Options dialog box

Related Topics

Use this dialog box to specify options for controlling the runtime behavior of Form Generator during design capture.

The Forms Design Capture Options dialog box comprises the following tabs:

•	General tab

•	Advanced tab

•	Capture Filter tab


Forms Design Capture Options dialog box - General tab

Related Topics

Add Notes

To create notes and comments during design capture, select this check box.

Capture Control Blocks

To reverse engineer control blocks, select this check box.

Capture Library Links

Check this checkbox to capture the existence of library attachments in the form being captured as links in a repository module network. For the link to be created, a repository library module with the same name (i.e. unique Implementation Name, or Short Name if the module does not have an Implementation Name) as the library attachment must have already been defined and the the library attachment's Comment property must not contain the string CG$IGNORE_ON_DESIGN_CAPTURE.


Forms Design Capture Options dialog box - Advanced tab

Related Topics

Source Form Extraction

Enables you to specify the connect string and command to extract an existing form from the database for design capture.

Source Form Extraction - Command

Specifies the command to extract existing forms from the database for design capture when the Location option is set to Other Database.

Source Form Extraction - Connect String

Specifies the connect string for retrieving existing forms from the database for design capture when the Location option is set to Other Database.

Note:  The full connect string, including username, password and database must be specified, and must be of the form: <usr>/<passwd>@<database>

Design Capture Log File

Specifies the name (and optionally, the location) in which to save a report detailing the objects that have been captured into the repository during design capture. If you do not specify a name in this field, no file is created.

Design Capture Log File - Browse button

To view and select from a list of existing design capture log files and locations, select this button.


Forms Design Capture Options dialog box - Capture Filter tab

Related Topics

Capture Filter Form

Enables you to specify the location of a capture filter form containing objects that you do not want captured from the form into the repository.

Capture Filter Form - Location

Specifies the location of the capture filter form containing objects to be ignored during design capture. The location can be an operating system file, the database on which the repository resides, or another database.

Note:	The path, command, and connect string are concatenated with the name of the capture filter form and passed to the operating system command processor. Commands must not contain variables.

Capture Filter Form - Path

Specifies the path to search for the capture filter form containing objects to be ignored during design capture.

The path must end with the character used to separate elements of a path in your environment. For Microsoft Windows, this is the backslash (‘\’) character.

If you do not specify a path in the Capture Filter - Form Name field, or the capture filter form is not in the path you specify in the field, Form Generator first searches for the specified form in the current working directory. If the capture filter form is not in the current working directory, Form Generator searches in the location specified in the Path field.

Capture Filter Form - Path - Browse Button

To view and select from a valid list of paths, select this button.

Capture Filter Form - Command

Specifies the command used to extract the capture filter form from the database when the Capture Filter Form Location option is set to Other Database.

Note:	The path, command, and connect string are concatenated with the name of the capture filter form and passed to the operating system command processor. Commands must not contain variables.

Capture Filter Form - Connect

Specifies the connect string for extracting the capture filter form when the Form Template Location option is set to Other Database.

Note:	The full connect string, including username, password and database must be specified, and must be of the form: <usr>/<passwd>@<database>


Forms Capture Application Logic dialog box

Related Topics

Use this dialog box to control the runtime behavior of Form Generator when capturing application logic.

Target container

Displays the container into which to capture the application logic.

Location

Specifies the location of the form from which you want to capture application logic. The location can be an operating system file, the database on which the repository resides, or another database.

Destination Module

Displays the name of the existing repository module into which you want to capture application logic.

File - Name

Specifies the name of the .fmb file from which you want to capture application logic.

File - Browse Button

To view and select from a list of .fmb files, select this button.

Database - Form Name

Specifies the name of the form from which you want to capture application logic.

Capture Mode

Specifies what will be captured. When capturing application logic, only one option is available.

Capture Mode - Capture BOTH module design and application logic

Not available.

Capture Mode - Capture ONLY module design

Not available.

Capture Mode - UPDATE application logic of existing repository module

This option is permanently selected  when capturing application logic to indicate that Form Generator will update application logic for the module specified in the Destination Module field.

Additional Containers

Not available.

Additional Containers - Browse button

Not available.

Capture Filter - Form Name

Use this field to specify the location and name of a capture filter form containing objects that you do not want captured from the form into the repository.

The form name defaults to the form specified by the SCTFMB preference. If you change the name in the field, the name you enter is used instead of SCTFMB. To restore the entry in the Form Name field to the value of SCTFMB,, click the Reset button.

If you specify a path in this field, Form Generator searches for the capture filter form in the location specified by that path. If Form Generator cannot find the capture filter form in that location, Form Generator searches for the capture filter form in the current working directory and in the location specified on the Forms Capture Application Logic Options dialog box - Capture Filter tab.

If this field is empty, Form Generator does not use a capture filter form during design capture. If Form Generator cannot locate the capture filter form specified in this field, design capture halts with an error.

Capture Filter - Browse Button

To view and select from a list of capture filter forms, select this button.

Capture Filter - Reset Button

Use this button to reset the capture filter form name to the name currently specified by SCTFMB.

Post Capture

Use the Post Capture options to specify what happens when application logic capture is complete.

Post Capture - Commit

Select this option to update repository objects when application logic capture is complete.

Note that there are some circumstances when Form Generator will not update properties of repository objects. For more information, refer to When are repository objects not updated during generation and design capture.

Post Capture - Browse/Edit mode

Select this option to activate Post Processing Mode, which enables you to choose how to process proposed repository changes.

For more information about Post Processing Mode, refer to About the Design Editor Post Processing Mode.

Create on Diagram after Capture

Not available.

Start Button

To begin the capture process, click Start.

Options Button

To specify further application logic capture details, click Options to display the Forms Capture Application Logic Options dialog box.


Forms Capture Application Logic Options dialog box

Related Topics

Use this dialog box to specify options for controlling the runtime behavior of Form Generator during application logic design capture.

The Forms Capture Application Logic Options dialog box comprises the following tabs:

•	General tab

•	Advanced tab

•	Capture Filter tab


Forms Capture Application Logic Options dialog box - General tab

Related Topics

Add Notes

Not available.

Capture Control Blocks

Not available.

Capture Library Links

Check this checkbox to capture the existence of library attachments in the form being captured as links in a repository module network. For the link to be created, a repository library module with the same name as the library attachment must have already been defined and the the library attachment's Comment property must not contain the string CG$IGNORE_ON_DESIGN_CAPTURE.


Forms Capture Application Logic Options dialog box - Advanced tab

Related Topics

Source Form Extraction

Enables you to specify the connect string and command to extract an existing form from the database for design capture.

Source Form Extraction - Command

Specifies the command to extract existing forms from the database for design capture when the Location option is set to Other Database.

Source Form Extraction - Connect String

Specifies the connect string for retrieving existing forms from the database for design capture when the Location option is set to Other Database.

Note:  The full connect string, including username, password and database must be specified, and must be of the form: <usr>/<passwd>@<database>

Design Capture Log File

Specifies the name (and optionally, the location) in which to save a report detailing the objects that have been captured into the repository during design capture. If you do not specify a name in this field, no file is created.

Design Capture Log File - Browse button

To view and select from a list of existing design capture log files and locations, select this button.


Forms Capture Application Logic Options dialog box - Capture Filter tab

Related Topics

Capture Filter Form

Enables you to specify the location of a capture filter form containing objects that you do not want captured from the form into the repository.

Capture Filter Form - Location

Specifies the location of the capture filter form containing objects to be ignored during design capture. The location can be an operating system file, the database on which the repository resides, or another database.

Note:	The path, command, and connect string are concatenated with the name of the capture filter form and passed to the operating system command processor. Commands must not contain variables.

Capture Filter Form - Path

Specifies the path to search for the capture filter form containing objects to be ignored during design capture.

The path must end with the character used to separate elements of a path in your environment. For Microsoft Windows, this is the backslash (‘\’) character.

If you do not specify a path in the Capture Filter - Form Name field, or the capture filter form is not in the path you specify in the field, Form Generator first searches for the specified form in the current working directory. If the capture filter form is not in the current working directory, Form Generator searches in the location specified in the Path field.

Capture Filter Form - Path - Browse Button

To view and select from a valid list of paths, select this button.

Capture Filter Form - Command

Specifies the command used to extract the capture filter form from the database when the Capture Filter Form Location option is set to Other Database.

Note:	The path, command, and connect string are concatenated with the name of the capture filter form and passed to the operating system command processor. Commands must not contain variables.

Capture Filter Form - Connect

Specifies the connect string for extracting the capture filter form when the Form Template Location option is set to Other Database.

Note:	The full connect string, including username, password and database must be specified, and must be of the form: <usr>/<passwd>@<database>


 Examples of the use of generated forms

Example of generating Wizard style forms

Generating Wizard style forms

Examples of integrating generated forms with the World Wide Web

About generated forms and the World Wide Web

Starting a Web browser from a button in a generated form

Embedding a Web browser as an OLE container in a generated form


Generating Wizard style forms

What are Wizard style forms?

Wizard style forms guide users through data entry tasks by grouping related fields on separate pages. Users navigate between the pages using Next and Previous buttons. Typically a Wizard style form also contains an OK button and a Cancel button.

Wizard style forms are often implemented as tab canvas pages. Tab canvas pages enable users to have direct access to each page in addition to accessing pages using navigation buttons.

Below is an example of how you might use Form Generator to generate a Wizard style form.

Generating a Wizard-style form

1.	Create two or more module components to be generated onto tab canvas pages.  How

2.	Set the Placement property of each of the module components to New tab canvas page.

3.	Set CANNTC to Yes.

4.	In the template form, create a form-level parameter called BLK_CTXT.

Note that you do not have to call the parameter BLK_CTXT. If you do use a different name, remember to use that name instead of BLK_CTXT in the following instructions.

5.	Create a code group in a form-level POST_BLOCK trigger containing the following application logic

:PARAMETER.BLK_CTXT := :SYSTEM.TRIGGER_BLOCK;

6.	Add  comments above the code you have entered to indicate whether the template code group is to be placed before or after other generated, user, and object library code  for the same trigger in the generated form.

For more information, refer to Entering template event code for Form Generator.

7.	To generate the Next button:

•	Create a window level action item of type Custom.  How

•	Set the action item's Prompt property to Next.

•	Enter the following application logic for the action item against the WHEN-BUTTON-PRESSED event:

GO_BLOCK(:PARAMETER.BLK_CTXT);
NEXT_BLOCK;

8.	To generate the Previous button:

•	Create a window level action item of type Custom.  How

•	Set the action item's Prompt property to Previous.

•	Enter the following application logic for the action item against the WHEN-BUTTON-PRESSED event:

GO_BLOCK(:PARAMETER.BLK_CTXT);
PREVIOUS_BLOCK;

9.	To generate the OK button:

•	Create a window level action item of type Custom.  How

•	Set the action item's Prompt property to OK.

•	Enter the following application logic for the action item against the WHEN-BUTTON-PRESSED event:

COMMIT_FORM;
EXIT_FORM;

10.	To generate the Cancel button:

•	Create a window level action item of type Custom.  How

•	Set the action item's Prompt property to Cancel.

•	Enter the following application logic for the action item against the WHEN-BUTTON-PRESSED event:

ROLLBACK_FORM;
EXIT_FORM;

Notes

•	The method described above assumes that the entire module is generated as a Wizard style form. You could also generate a Wizard style tab canvas as part of a form. In this case, the example trigger code might be inappropriate.

•	The method described above is only one of a number of different ways to generate a Wizard style form. For example, one alternative might be to enter application logic for the POST_BLOCK trigger in the repository instead of in the template form. Another alternative might be to use a repository module argument instead of a parameter in the template form.

•	If more than one block is generated onto the same canvas page, you might want to modify the example application logic for the Next and Previous buttons to navigate to the next and previous tab canvas page.

•	For more information about using Form Generator to generate tab canvas pages, refer to Generating blocks onto native Oracle Forms tab canvases


About generated forms and the World Wide Web

Related Topics

What is the World Wide Web?

The term 'World Wide Web' (or simply 'the Web') refers to the large number of computers (called Web servers) offering information resources via a global, publicly accessible computer network. Each Web server presents information as one or more Hypertext Markup Language (HTML) documents, also known as Web pages. Collectively, a Web server and the Web pages it offers are often referred to as a Web site.

Each Web site is uniquely identified by its Uniform Resource Locator or URL. The URL defines the Web server's domain name and the protocol and port address by which to access it.

Users view a Web site by running a Web browser application (e.g. Netscape Navigator, Microsoft Internet Explorer) and specifying the URL of the Web site to visit.

Why integrate generated forms with 'The Web'?

Increasingly, companies are using the Web as a convenient way to conduct business, and provide Web pages to, among other things:

•	broadcast real-time information

•	display product catalogs

•	purchase goods and services

You might therefore decide that incorporating access to Web sites into the forms you generate will increase users' productivity. Typically, you will want to give users the ability to access a specific Web site associated with particular information held in the database.

Examples of how to integrate generated forms with the World Wide Web

Below are two examples of how you might generate forms that incorporate access to Web sites:

Starting a Web browser from a button in a generated form

Embedding a Web browser as an OLE container in a generated form


Starting a Web browser from a button in a generated form

Related Topics

One way to invoke a Web browser from a generated form is to define a procedure in the template form to invoke the Web browser, and call this procedure from a button. This method is described in this topic.

An alternative method is described in Embedding a Web browser as an OLE container in a generated form.

How to generate a form that starts a Web browser from a button

1.	Define a table in the repository containing at least a column with a text datatype (e.g. VARCHAR2) to hold the URL.

2.	Run the Server Generator to create the table on the database.

3.	In the template, create a procedure to invoke a Web browser. The procedure must accept a value from the text column containing URLs as an argument. The URL must then be used when invoking the Web browser.

A simple example of such a procedure might be:

PROCEDURE start_net (url_loc varchar2) IS

browser varchar2 (80);

BEGIN

browser := 'd:\netscape\program\netscape.exe '||url_loc;

host(browser);

END;

The procedure you write will depend on the Web browser you intend to call. You might also consider using the Oracle Forms FORMS_OLE and OLE2 packages.

4.	In the Design Editor, define a new module containing a usage of the table.

5.	Create a bound item based on the text column.

6.	Specify a name for the item (e.g. URL_FIELD).

7.	Create an unbound item with a Display Type of button and an Unbound Type of Custom.

8.	Define the unbound item's PL/SQL Block multi-line text property as a call to the procedure  in the template and pass the name of the bound item based on the text column as an argument.

For example:

start_net(url_field_alias);

9.	Generate the form.

Behavior of the generated form

The text item contains the URL associated with a particular record.

When the user clicks on the button generated from the unbound item, the procedure is passed the URL associated with the current record.

The procedure starts the Web browser, and displays the Web page specified by the URL.


Embedding a Web browser as an OLE container in a generated form

Related Topics

One way to display information from a Web page within a generated form is to embed an image of the Web page in an OLE container. The image can be stored in a LONG RAW or BLOB column on the database.

When users run the generated form, the image of the Web page associated with the current record is displayed in the OLE container. Users can activate the associated Web browser (for example, by double clicking on the OLE container item) to insert and update the image held on the database.

There are several issues to consider with this approach:

•	the disk space required to store a significant number of Web pages on the database is likely to be considerable

•	what is stored on the database is an image of the Web page, so the information may not be up to date

•	the Web browser must have OLE server capabilities

An alternative method is described in Starting a Web browser from a button in a generated form.

How to embed a Web browser in a generated form

1.	Define a table in the repository containing a column with a datatype of LONG RAW.

2.	Run the Server Generator to create the table on the database.

3.	Optionally, create an item in the template with the following properties:

Property	Value
Item Type	OLE Container
OLE Class	the class for the Web browser to embed in the generated form (e.g. for Netscape, select NetscapeMarkup)
Specify other properties (e.g. OLE In-place Activation) as required.

4.	In the Design Editor, define a new module containing a usage of the table.

5.	Create a bound item based on the LONG RAW column.

6.	On the Column Display tab, set:

•	the Display Type of the item to OLE Container

•	Width and Height properties to an appropriate size to display the Web browser

•	if you defined an item in the template, specify it using the Template/Library Object property

7.	Generate the form.

Behavior of the generated form

When you run the form, the OLE container will initially be empty. To load an image of a Web page into the associated LONG RAW column:

1.	Activate the Web browser (using the OLE In-place Activation method specified for the template item).

2.	Navigate to the required Web page.

3.	Click on another area of the generated form to deactivate the Web browser. The OLE container retains an image of the last Web page visited.

When the record is committed, the image of the Web page is saved in the LONG RAW column. Consequently, when the record is next retrieved the associated image is displayed in the OLE container.


Starting the Oracle Forms help system

For more information about Oracle Forms, refer to:

•	the Oracle Forms online manuals by clicking here

•	the Oracle Forms help file by clicking here

Note that the Oracle Forms help file (which is called if60.hlp) is normally located in the /orant/tools/doc60 directory (WindowsNT), or the /orawin95/tools/doc60 directory (Windows95). If the help file is not in one of these directories, you might have to find the file yourself.


Generating functionality

Block synchronization

Constraint validation and Form Generator

Derived columns

Support for journaling in generated forms

Autogenerated sequence numbers and Form Generator

Oracle Forms List of Values (LOV) generation

Non-base table items

PL/SQL function and procedure calls

Message handling and Form Generator

Specifying the startup query mode of generated forms

Calendar windows for date items

Form generation for integration with Oracle applications

Navigation code generation

Context sensitive help generation

Change history column support

Calling user exits

Generating a form from a report module

Reference code table generation


Block synchronization

About block synchronization

About generated block synchronization

Synchronization modes

Query scope

Query on entry to a canvas

Block synchronization messages and indicators


About block synchronization

Related Topics

Block synchronization is the coordination of records displayed in a detail block with the current record in the master block.


About generated block synchronization

Related Topics

There are two principal features of generated block synchronization:

Feature	Description
Prompt for commit	Before any change of record in a master block, the generated form prompts the user to commit amendments made in any detail blocks. Note that only one alert can be displayed, no matter how many blocks have uncommitted changes.
Change of record in detail blocks	When there is a change of record in a master block, the generated form can enforce a change of record in its detail blocks. This may involve requerying the detail blocks or simply clearing them.

Additional features of block synchronization are governed by user preferences and choices made by the user of the generated form.

Form Generator creates block synchronization code by:

•	generating a relation object from each link defined between base table usages in the repository

•	basing the Join Condition property of the generated relation object on the foreign key used in the link

•	adding code to the following triggers to enforce coordination between master and detail blocks

ON-CLEAR-DETAILS	KEY-CLRBLK	KEY-EXEQRY
ON-POPULATE-DETAILS	KEY-ENTQRY	KEY-CQUERY


Synchronization modes

Related Topics

About synchronization modes

You can generate forms capable of running in the following block synchronization modes:

Mode	Description
Always Query Details	When the record displayed in any given block is changed, all its detail blocks are automatically cleared. Those detail blocks that are currently displayed and within the query scope are requeried. When a block is cleared, all its detail blocks are also cleared.
Never Query Details	When the record displayed in any given block is changed, all its detail blocks are automatically cleared but not requeried (i.e. users must manually query the detail blocks).
Only Query Detail Blocks on Entry	Upon initial entry to a block that is a detail of another block, a query is automatically performed. However, if no rows are returned and the block is navigated to again, the query is not repeated (i.e. users must manually requery the detail blocks).

You can also enable users to switch between two alternative modes using:

•	a button defined in an object library or template

•	a check box defined in an object library or template

•	the function key associated with the [Key-MENU] function key trigger

To generate a toggle to enable users to change synchronization modes:

1.	Create a generator item of type Button or type Check Box on a header or footer canvas (e.g. CG$HEADER) in the template form, and name the item CG$QI.

Note that Form Generator adds code to the [Key-MENU] function key trigger to operate the toggle, regardless of whether a CG$QI item exists in an object library or template.

2.	(Optional)  Create an item called CG$QI of type Text in an object library to display a message indicating the current block synchronization mode (alternatively, you could create the CG$QI text item on a header or footer canvas (e.g. CG$HEADER) in the template form).

For more information, refer to Block synchronization messages and indicators.

3.	Set the BSCHMD preference to Yes.

4.	Set the BSMON preference to specify the mode when the block synchronization toggle is in the ON position.

Note that BSMON preference specifies the initial behavior on entry to the form (i.e., the toggle is in the ON position). However, if the form is called by another form, the initial mode is inherited from the calling form.

5.	Set the BSMOFF preference to specify the mode when the block synchronization toggle is in the OFF position.


Query scope

Related Topics

About query scope

When the current block synchronization mode is Always Query Details, detail blocks are requeried whenever the master changes. To ensure optimal performance of the generated form, you might want to limit the scope of the query operation to those displayed detail blocks:

•	on the current canvas

•	in the current window

•	in the current form

To specify the query scope:

•	Set the BSCSCP preference.


Query on entry to a canvas

Related Topics

About query on entry

When the current block synchronization mode is Always Query Details and the query scope is 'Current Canvas' or 'Current Window', you can specify whether a block on a new canvas is queried on entry to that canvas.

To specify whether a block on a new canvas is queried on entry:

•	Set the value of the BSQENP preference.


Block synchronization messages and indicators

Related Topics

About displaying the current block synchronization mode

You can indicate the block synchronization mode of a form, and when it changes:

•	explicitly, by displaying text in a generated text item to indicate the current synchronization mode

•	explicitly, by displaying text to indicate changes of synchronization mode

•	implicitly, by relying on the appearance of the item (e.g. check box) users use to toggle between modes

If block synchronization is not required in the generated form, or block synchronization has been turned off, or BSCHMD = N, the query mode items from an object library or template are left in the application but are dimmed.

To specify messages to indicate the current query mode:

1.	Create a text item called CG$AI in an object library or template.

2.	Set the ONFLD preference to the text you want to appear in the generated text item to indicate the current query mode is on.

3.	Set the OFFFLD preference to the text you want to appear in the generated text item to indicate the current query mode is off.

To specify messages to appear when block synchronization mode changes:

1.	Set the ONMES preference to the text to be displayed when the block synchronization toggle is in the ON position.

2.	Set the OFFMES preference to the text to be displayed when the block synchronization toggle is in the OFF position.

3.	Use the MSGSFT preference to control how the message is displayed.


Constraint validation and Form Generator

Introducing constraints

Primary key constraints

Unique key constraints

Foreign key constraints

Check constraints

Validation of user input using LOVs and trigger code


Introducing constraints

Related Topics

About constraints

Where are constraints enforced?

When are constraints enforced?

Constraints and null values


About constraints

Related Topics

Constraints are rules that determine which operations are allowed on the columns and tables in a database. There are different kinds of constraints:

•	primary key constraints

•	unique key constraints

•	foreign key constraints

•	domain key constraints

•	check constraints

Constraint properties in the repository enable you to specify where you want to enforce the constraint (in the client application, on the server, or both). Form Generator preferences enable you to specify when you want the constraint to be enforced.


Where are constraints enforced?

Related Topics

Most of the constraints you can record in the repository can be enforced in:

•	the client application

•	the server

•	both the client and the server

You use the constraint's Validate In property to specify where the constraint is enforced.

Constraints enforced in the client application

If a constraint is enforced in the client application, code in the application checks data before submitting it to the server, and performs any additional operations required.

Constraints enforced in the server

If a constraint is enforced in the server, the server checks the requested operation and data, and performs any necessary data manipulation. If the constraint is violated, the server returns an error to the client.

You can implement constraints on the server in two ways:

•	declaratively

You can declare some types of constraint on the server. The server then ensures that the rules associated with these constraints are always enforced. Note that some constraints cannot be enforced declaratively on the server and you must write a suitable database trigger to enforce the constraint (see below).

•	by use of database triggers

You create PL/SQL trigger code to enforce the constraint, and attach it to suitable database objects/events. When the trigger is fired, the code is executed.

Overriding the Validate In property

To enable rapid prototyping of generated Oracle Forms applications, you can override the Validate In property of constraints and enforce constraints where required.

To override the Validate In property set the WEDI preference, using the following table as a guide.

Validate In	WEDI Preference	Where Constraint is Enforced
property		Generated Form	Server
Server	Server	No	Yes
Client	Server	No	Yes
Both	Server	No	Yes
Server	Client	Yes	No
Client	Client	Yes	No
Both	Client	Yes	No
Server	D	No	Yes
Client	D	Yes	No
Both	D	Yes	Yes


When are constraints enforced?

Related Topics

A constraint's Validate In property, the type of constraint and the setting of an appropriate Form Generator preference determine whether the constraint:

•	is enforced at item level

•	is enforced at commit time

•	is enforced at both item level and commit time

•	is not enforced in the form

The table below shows the different types of constraints and the preferences that determine when validation occurs.

Type of Constraint	Preference
primary key	VLDTPK
foreign key	VLDTFK
unique key	VLDTUK
domain key	VLDTFK
table level check constraint	VLDTTC

Each of the above preferences can be set to:

•	F(ield)

•	C(ommit)

•	B(oth)

•	N(ever)

The tables below show the interaction between the preference settings and the Validate In property that determines when constraints are enforced.

Validate In property = CLIENT

Preference value	Generated code enforces constraint at item level	Generated code enforces constraint at commit time
C(ommit)	No	Yes
F(ield)	Yes	No
B(oth)	Yes	Yes
N(ever)	No	No
Validate In property = SERVER

Preference value	Generated code enforces constraint at item level	Generated code enforces constraint at commit time
C(ommit)	No	No
F(ield)	No	No
B(oth)	No	No
N(ever)	No	No
Note:	When the Validate In property is set to SERVER, Form Generator generates code to trap any errors produced by the Server.

Validate In property = BOTH

Preference value	Generated code enforces constraint at item level	Generated code enforces constraint at commit time
C(ommit)	No	No
F(ield)	Yes	No
B(oth)	Yes	No
N(ever)	No	No
Validate In property = NONE

If a constraint's Validate In property is set to None, code to enforce the constraint will not be generated in either the form (or generated module library) or in the Server.

Notes on item level validation

Single column constraints: A When-Validate-Item trigger is generated for the item based on the column in the constraint. If this trigger fires and a value entered in the item has violated the constraint, an error message is displayed. A valid value must be entered before navigating to another item or committing the record.

Multiple column constraints: A When-Validate-Item trigger is generated for every item based on a column in the constraint. You can control the behavior of these triggers when they fire using the VLDOPT preference to specify that:

•	the triggers always check whether the constraint has been violated

•	the triggers only check when values have been entered for all columns in the constraint (this is more network efficient)

If the trigger determines that the constraint has been violated, a warning message is displayed. If the user attempts to commit a record containing an invalid value, an error message is displayed.

Note that the preference value 'F' is only applicable for single column constraints.

Notes on the Defer Status properties of repository constraint definitions

Form Generator ignores the Defer Status property of a repository constraint definition.


Constraints and null values

Related Topics

You can control how the constraint validation code generated by Form Generator into the form (or generated module library) handles null values in the columns specified in the constraint.

Null values in primary key columns

Primary key columns are always mandatory; that is, nulls are not permitted.

Null values in unique key, foreign key, and domain key columns

Use the NIVVKC preference to specify whether the code generated by Form Generator to validate unique keys, foreign keys, and domain keys is to treat a null in any column of the constraint as a valid value or an invalid value.

Setting of NIVVKC	Is constraint optional or mandatory?	Validation in the form
Y	Mandatory	Validation is performed with null as a valid value, but at least one column in the key must be non-null.
	Optional	Validation is performed with null as a valid value. Alternatively, all columns in the key can be set to null, in which case no validation is performed.
N	Mandatory	Validation requires all key columns to be non-null.
	Optional	Validation requires key columns to be either all null, or all non-null.
Null values in check constraint columns

Use the check constraint's Enforce when Null property to specify whether the code generated by Form Generator to validate check constraints is to treat a null in any column of the constraint as a valid value or an invalid value.

Enforce when Null property set to:	Validation in the form
No	If any columns of the constraint are null, the constraint is not validated.
Yes	The constraint is always validated, even if one or more of the columns in the constraint are null. Hence, the combination of column values (null and otherwise) must satisfy the constraint.


Primary key constraints

Related Topics

About primary key constraints

Details of primary key constraint validation by the form

Conditions for adding code to support primary key constraints


About primary key constraints

Related Topics

A primary key constraint enforces the rule that no duplicate values can be entered for a specified column or set of columns. The column or set of columns specified as part of the constraint definition is known as the primary key.

Primary key columns are always mandatory (i.e. nulls are not permitted).

You can define primary key constraints for both table definitions and view definitions.

For more information and examples of primary key constraints, refer to Primary Keys in the Design Editor help system.


Details of primary key constraint validation by the form

Related Topics

Form Generator generates a parameterized form-level procedure for each constraint it validates.

Where validation is to be performed at field level only, the procedure is called from the WHEN-VALIDATE-ITEM trigger of the block.

Where validation is to be performed both at commit time and field level, the procedure is called from the PRE-INSERT trigger of the block and the WHEN-VALIDATE-ITEM trigger of the item. Where the Update property of the module component containing the table usage is set to Y and one or more of the fields that make up the key are updateable, the procedure is also called from the PRE-UPDATE trigger.


Conditions for adding code to support primary key constraints

Related Topics

Form Generator generates code in generated form (or generated module library) to trap server side errors when:	Form Generator includes code in generated form (or generated module library) to enforce the constraint when one or more of the following conditions is true:
The module component containing the base table usage has the Insert and/or Update properties set to Yes	The constraint is to be enforced by the client or both the client and server. The module component has the Insert and/or Update properties set to Yes. One or more items in the key are enterable (either directly or through a foreign key lookup item). There is an item based on every column in the primary key.
Notes

Where a key includes a column that derives its value from an internal source (e.g. an 'Oracle sequence'), Form Generator will not generate code to validate it.

Where the module component has the Update property set to Yes but not the Insert property, validation code will only be generated if one or more of the generated items for columns in the key are updateable.

You can define primary key constraints in the repository for view definitions as well as table definitions because you can specify a view as a module component base table usage. Form Generator uses a view's primary key constraint definition to generate validation code in the same way as it uses a primary key constraint defined for a table.


Unique key constraints

Related Topics

About unique key constraints

Details of unique key constraint validation by the form

Conditions for adding code to support unique key constraints


About unique key constraints

Related Topics

A unique key constraint enforces the rule that no duplicate values can be entered for a specified column or set of columns. The column or set of columns specified as part of the constraint definition is known as the unique key.

Unique key columns are often mandatory.

For more information and examples of unique key constraints, refer to Unique Keys in the Design Editor help system.


Details of unique key constraint validation by the form

Related Topics

Form Generator generates a parameterized form-level procedure for each constraint it validates.

If validation is to be performed at field level only, the procedure is called from the WHEN-VALIDATE-ITEM trigger of the block.

If validation is to be performed both at commit time and field level, the procedure is called from the PRE-INSERT trigger of the block and the WHEN-VALIDATE-ITEM trigger of the item. Where the Update property of the module component containing the table usage is set to Y and one or more of the fields that make up the key are updateable, the procedure is also called from the PRE-UPDATE trigger.


Conditions for adding code to support unique key constraints

Related Topics

Form Generator includes code in generated form (or generated module library) to trap server side errors when:	Form Generator includes code in generated form (or generated module library) to enforce the constraint when one or more of the following conditions is true:
The module component containing the base table usage has the Insert and/or Update properties set to Yes	The constraint is to be enforced by the client or both the client and server. The module component has the Insert and/or Update properties set to Yes. One or more items in the key are enterable (either directly or through a foreign key lookup item). There is an item based on every column in the key.
Notes

Where a key includes a column that derives its value from an internal source (e.g. an 'Oracle sequence'), Form Generator will not generate code to validate it.

Where the module component has the Update property set to Yes but not the Insert property, validation code will only be generated if one or more of the generated items for columns in the key are updateable.

You can define unique key constraints in the repository for view definitions as well as table definitions because you can specify a view as a module component base table usage. Form Generator uses a view's unique key constraint definition to generate validation code in the same way as it uses a unique key constraint defined for a table.


Foreign key constraints

Related Topics

About foreign key constraints

Conditions for adding code to support foreign key constraints (and domain key constraints)

See also

Referential integrity rules


About foreign key constraints

Related Topics

A foreign key constraint ensures that values entered in foreign key columns in one table match a value in the primary key or the unique key of another table, or of the same table.

Foreign key constraints enforce referential integrity rules (also referred to as the Delete rule and the Update rule) that determine what happens when an attempt is made to delete or update a row in the referenced table. For more information about referential integrity rules, refer to Referential integrity rules.

A foreign key constraint can be mandatory or optional.

Foreign key constraints can be defined:

•	between two different tables, to preserve the integrity of the data in related tables

•	on a single table (recursive foreign key)

For more information and examples of foreign key constraints, refer to Foreign Keys in the Design Editor help system.


Conditions for adding code to support foreign key constraints (and domain key constraints)

Related Topics

Form Generator includes code in generated form (or generated module library) to trap server side errors when:	Form Generator includes code in generated form (or generated module library) to enforce the constraint when one or more of the following conditions is true:
The module component containing the base table usage has the Insert and/or Update properties set to Yes	The constraint is to be enforced by the form or by both the form and the server. The block contains items for the columns in a foreign/domain key. One or more of those items are enterable.
Conditions for adding code to support referential integrity rules

Form Generator includes code in generated form (or generated module library) to trap server side errors when:	Form Generator includes code in generated form (or generated module library) to enforce the constraint when one or more of the following conditions is true:
The block being generated: • permits delete operations on its base table. This table is referenced by a foreign/domain key and that key is enforced by the server and the form. • permits update operations on its base table, and contains items permitting update of the unique or primary key (in the base table) which is referenced by a foreign/domain key, and any of the constraints (foreign,domain, unique or primary) are enforced by the server, or both server and client.	The foreign/domain key is to be enforced by the form or by both the form and the server. A block being generated permits delete operations on its base table, and this table is referenced by the foreign/domain key. A block being generated permits update operations on its base table, and contains items permitting the update of the unique or primary key (in the base table) which is referenced by the foreign/domain key.
Arcs

Form Generator includes code in generated form (or generated module library) to trap server side errors when:	Form Generator includes code in generated form (or generated module library) to enforce the constraint when one or more of the following conditions is true:
No code is added for this type of constraint. Note: Server side enforcement of arcs always requires the use of database triggers, which you can generate using Server Generator. However, Form Generator always generates code in the form (or generated module library) to trap user defined error messages raised by such triggers.	There are items based on columns in different foreign/domain keys, and those keys are in the same arc, and any foreign/domain key constraint within the arc is enforced by the form. Note: A foreign/domain key is deemed to be enforced by the form if it is solely enforced by the client or is enforced by both the client and the server.
Notes

You can define foreign key constraints in the repository for view definitions as well as table definitions because you can specify a view as a module component base table usage. Form Generator uses a view's foreign key constraint definition to generate validation code in the same way as it uses a foreign key constraint defined for a table.


Domain key constraints

Related Topics

About domain key constraints

Conditions for adding code to support domain key constraints

See also

Referential integrity rules


About domain key constraints

Related Topics

A domain key constraint ensures that values entered in domain key columns in one table match a value in an associated domain table. Using a domain table enables you to define the table in the repository to precisely meet your requirements. For more information about domain tables, refer to Domain table support.

Domain key constraints enforce referential integrity rules (also referred to as the Delete rule and the Update rule) that determine what happens when an attempt is made to delete or update a row in the referenced domain table. For more information about referential integrity rules, refer to Referential integrity rules.

A domain key constraint can be mandatory or optional.

Domain key constraints can be defined:

•	between two different tables, to preserve the integrity of the data in related tables

•	on a single table (a recursive domain key constraint - it is unlikely that you will define a recursive domain key constraint)

For more information and examples of domain key constraints, refer to Domain Key Constraints in the Design Editor help system.

A note about domain key constraints and foreign key constraints

Domain key constraints and foreign key constraints are very similar. Both types of constraint enable you to join tables. Although domain key constraints are primarily designed to support joins to domain tables, you can use domain key constraints in the same way as foreign key constraints to join:

•	a module component base table usage to a lookup table usage

•	a module component lookup table usage to another lookup table usage

•	one module component base table usage to another base table usage (i.e. to link two module components)

The major difference is that domain key constraints are not natively supported on the server. Domain key constraints enable you to model a non-foreign key based join, and generate code into an application to enforce the constraint. If you want to enforce a domain key constraint on the server, you must generate the Table API (for more information, refer to Generating the Server API in the Server Generator help system).

A further difference is that domain key constraints include a Where Condition to enable you to restrict the values returned from the table at the other end of the domain key.

Form Generator treats foreign key constraints and domain key constraints in the same way. Information in this help system that applies to foreign key constraints applies equally to domain key constraints, unless explicitly specified otherwise.


Conditions for adding code to support domain key constraints

Related Topics

The conditions for adding code to support domain key constraints are identical to the conditions for foreign key constraints. For more information, refer to Conditions for adding code to support foreign key constraints (and domain key constraints)


Check constraints

Related Topics

About check constraints

Conditions for adding code to support check constraints


About check constraints

Related Topics

A check constraint enforces a condition for each row entered into a table (a table level check constraint) or value entered into a column (a column level check constraint).

You define a table level check constraint as a separate element in the repository for a particular table definition. You use the constraint definition's Where/Validation property to specify the condition enforced by the constraint.

You define a column level check constraint in one of two ways:

•	explicitly, by entering a Where/Validation Condition property for the repository column definition

You specify a SQL condition or PL/SQL function call (note that you cannot combine SQL conditions and function calls in the same WHERE/Validation Condition property if you want the constraint to be validated in generated forms)

•	implicitly, by defining allowable values for the column

For more information and examples of check constraints, refer to Check Constraints in the Design Editor help system.


Conditions for adding code to support check constraints

Related Topics

Table level check constraints

Form Generator includes code in generated form (or generated module library) to trap server side errors when:	Form Generator includes code in generated form (or generated module library) to enforce the constraint when one or more of the following conditions is true:
The module component containing the base table usage has the Insert and/or Update properties set to Yes	The constraint is to be enforced by the form. The module has items based on all the columns in the constraint. Note: If you specify a constraint, and Form Generator does not find any items based on the columns in the constraint, it ignores that constraint. If it finds items based on some columns and not others, it ignores the constraint specification and issues a warning.
Column level check constraints - defined as allowable values for a column

Form Generator includes code in generated form (or generated module library) to trap server side errors when:	Form Generator includes code in generated form (or generated module library) to enforce the constraint when one or more of the following conditions is true:
Form Generator adds code to trap server side errors reported by a column level check constraint, created on the database to implement the allowable values where: • a generated item implements a column for which valid values/ranges have been specified (either against the column or the domain to which it belongs) and one of the following conditions applies: • The generated item based upon the column is enterable and you have set the Insert property of the module component containing the the table usage to Y. • The generated item is enterable and updateable and you have set the Update property of the module component containing the table usage to Y.	Form Generator adds code to provide a list of values and to validate all data entered into a generated item where: • The generated item implements a column for which valid values/ranges have been specified (either against the column or the domain to which it belongs) and one of the following conditions applies: • The generated item based upon the column is enterable and you have set the Insert property of the module component containing the the table usage to Y. • The generated item is enterable and updateable and you have set the Update property of the module component containing the table usage to Y.

Suggestion: If you want the form to display a particular message when the server reports an error due to violation of the constraint, you should record the allowable values as a table level check constraint in the repository. In this way, you can give the constraint a name, so that the generated code can recognize it. Column level check constraints created by the Server Generator for the allowable values recorded on the column cannot have names and so are not recognizable.

Column level check constraints - defined as a column's WHERE/Validation Condition property

Form Generator includes code in generated form (or generated module library) to trap server side errors when:	Form Generator includes code in generated form (or generated module library) to enforce the constraint when one or more of the following conditions is true:
No code is added for this type of constraint	Form Generator adds code to validate the constraint where the module has items based on all the columns in the constraint.  Note: If Form Generator does not find any items based on columns in the constraint, it ignores that constraint. If it finds items based on some of the columns and not others, it ignores the constraint specification and issues a warning.

If validation of the constraint fails, the error message specified by the column's Validation Error Message property is displayed.

Comments and check constraints

Do not include comments in table level and column level check constraints, even in the format /* comment */ . If you want to comment the constraint, do so in the Description property or Notes property of the constraint (for table level check constraints) or column (for column level check constraints).


Referential integrity rules

Related Topics

The values of referential integrity rules (also referred to as the Delete rule and the Update rule) determine what happens when an attempt is made to delete or update a row in the referenced table.

For the purpose of the descriptions below, note that a row in the table containing the foreign/domain key constraint is referred to as a detail row. A row in the table at the other end of the foreign/domain key is referred to as a master row.

The Update rule

The Update rule for any given foreign/domain key constraint can take one of the following values:

Value	If any detail rows are associated with a master column by this foreign/domain key constraint:
Cascade	Update of a value in the master column causes the corresponding column in associated detail rows to be updated to the same value.
Restricted	Update of a value in the master column that is referenced by detail rows is not allowed.
Nullify	Update of a value in the master column causes the corresponding column in associated detail rows to be set to Null.
Default	Update of a value in the master column causes the corresponding column in associated detail rows to be set to the default.

The constraint's Validate In property determines what code is generated to support the Update rule, as shown below:

Value	Validate in = Client:	Validate in = Server:	Validate in = Both	Validate in = None
Cascade	Form Generator adds code to generated form (or generated module library) to update detail rows. Note that Form Generator does not generate code to support cascade updates for self-referencing foreign/domain keys.	Use Server Generator to create the database trigger to enforce this rule. Form Generator adds code to the generated form (or generated module library) to handle any errors reported by the Server.	Use Server Generator to create the database trigger to enforce this rule. Form Generator adds code to the generated form (or generated module library) to handle any errors reported by the Server.	Neither Form Generator nor Server Generator generates code to support the Update rule.
Restricted	Form Generator adds code to generated form (or generated module library) to prevent update of master column if referenced by detail rows.	The Server enforces the rule. Form Generator adds code to the generated form (or generated module library) to handle any errors reported by the Server.	The Server enforces the rule. Form Generator adds code to the generated form (or generated module library) to handle any errors reported by the Server.	Neither Form Generator nor Server Generator generates code to support the Update rule.
Nullify	Form Generator adds code to generated form (or generated module library) to set  corresponding column in associated detail rows to Null.	Use Server Generator to create the database trigger to enforce this rule. Form Generator adds code to the generated form (or generated module library) to handle any errors reported by the Server.	Use Server Generator to create the database trigger to enforce this rule. Form Generator adds code to the generated form (or generated module library) to handle any errors reported by the Server.	Neither Form Generator nor Server Generator generates code to support the Update rule.
Default	Form Generator adds code to generated form (or generated module library) to set corresponding column in associated detail rows to the default value specified in the repository.	Use Server Generator to create the database trigger to enforce this rule. Form Generator adds code to the generated form (or generated module library) to handle any errors reported by the Server.	Use Server Generator to create the database trigger to enforce this rule. Form Generator adds code to the generated form (or generated module library) to handle any errors reported by the Server.	Neither Form Generator nor Server Generator generates code to support the Update rule.

Form Generator adds code to the PRE-UPDATE trigger to:

•	check that no primary key values will be changed by this operation

•	check that changes to any unique key values in the base table are allowed

•	perform any updates of other tables as required by the referential integrity rules

The Delete rule

The Delete rule for any given foreign/domain key constraint can take one of the following values:

Value	If any detail rows are associated with a master column by this foreign/domain key constraint:
Cascade	Deletion of a value in the master column causes all associated detail rows to be deleted.
Restricted	Deletion of a value in the master column that is referenced by detail rows is not allowed.
Nullify	Deletion of a value in the master column causes the corresponding column in associated detail rows to be set to Null.
Default	Deletion of a value in the master column causes the corresponding column in associated detail rows to be set to the default.

The constraint's Validate In property determines what code is generated to support the Delete rule, as shown below:

Value	Validate in = Client:	Validate in = Server:	Validate in = Both	Validate in = None
Cascade	Form Generator adds code to generated form (or generated module library) to delete associated detail records. If DELWRN=CASCADE or ALWAYS, Form Generator adds code to warn of a delete operation. Note that Form Generator does not generate code to support cascade deletes for self-referencing foreign/domain keys.	The Server enforces the rule. Form Generator adds code to the generated form (or generated module library) to handle any messages reported by the Server. If DELWRN=ALWAYS, Form Generator adds code to warn of a delete operation.	The Server enforces the rule. Form Generator adds code to the generated form (or generated module library) to handle any messages reported by the Server. If DELWRN=CASCADE or ALWAYS, Form Generator adds code to warn of a delete operation.	Neither Form Generator nor Server Generator generates code to support the Delete rule. If DELWRN=ALWAYS, Form Generator adds code to warn of a delete operation.
Restricted	Form Generator adds code to generated form (or generated module library) to prevent deletion of value in master column if referenced by detail rows. If DELWRN=ALWAYS, Form Generator adds code to warn of a delete operation.	The Server enforces the rule. Form Generator adds code to the generated form (or generated module library) to handle any errors reported by the Server. If DELWRN=ALWAYS, Form Generator adds code to warn of a delete operation.	The Server enforces the rule. Form Generator adds code to the generated form (or generated module library) to handle any errors reported by the Server. If DELWRN=ALWAYS, Form Generator adds code to warn of a delete operation.	Neither Form Generator nor Server Generator generates code to support the Delete rule. If DELWRN=ALWAYS, Form Generator adds code to warn of a delete operation.
Nullify	Form Generator adds code to generated form (or generated module library) to set  corresponding column in associated detail rows to Null. If DELWRN=CASCADE or ALWAYS, Form Generator adds code to warn of a delete operation.	Use Server Generator to create the database trigger to enforce this rule. Form Generator adds code to the generated form (or generated module library) to handle any errors reported by the Server. If DELWRN=ALWAYS, Form Generator adds code to warn of a delete operation.	Use Server Generator to create the database trigger to enforce this rule. Form Generator adds code to the generated form (or generated module library) to handle any errors reported by the Server. If DELWRN=CASCADE or ALWAYS, Form Generator adds code to warn of a delete operation.	Neither Form Generator nor Server Generator generates code to support the Delete rule. If DELWRN=ALWAYS, Form Generator adds code to warn of a delete operation.
Default	Form Generator adds code to generated form (or generated module library) to set corresponding column in associated detail rows to the default value specified in the repository. If DELWRN=CASCADE or ALWAYS, Form Generator adds code to warn of a delete operation.	Use Server Generator to create the database trigger to enforce this rule. Form Generator adds code to the generated form (or generated module library) to handle any errors reported by the Server. If DELWRN=ALWAYS, Form Generator adds code to warn of a delete operation.	Use Server Generator to create the database trigger to enforce this rule. Form Generator adds code to the generated form (or generated module library) to handle any errors reported by the Server. If DELWRN=CASCADE or ALWAYS, Form Generator adds code to warn of a delete operation.	Neither Form Generator nor Server Generator generates code to support the Delete rule. If DELWRN=ALWAYS, Form Generator adds code to warn of a delete operation.

Where Delete is allowed, Form Generator adds code to:

•	a common program unit called from both the KEY-DELREC trigger and the PRE-DELETE trigger, to validate that the deletion of the row is permitted

•	the PRE-DELETE trigger, to update or delete rows, as required, in other tables affected by this deletion

Form Generator can also add code to the KEY-DELREC trigger to issue a warning to the user of the generated form when deleting the current screen row. Upon receipt of the warning, the user is required to choose [Delete] a second time to confirm the deletion. This behavior is governed by the DELWRN preference.

Update and Delete rules and where the foreign/domain key constraint is enforced

All the values for update and delete are valid for the client; however, only some of them are valid for the server, as shown in the following table.

	Cascade	Restricted	Nullify	Default
Delete	server/client	server/client	server/client	server/client
Update	client	server/client	client	client


Validation of user input using LOVs and trigger code

Related Topics

There are three potential methods for validating values a user enters in a generated item based on a foreign key column or for which allowable values have been defined:

•	validation using LOVs

•	validation using trigger code

•	validation using a single range of valid values

Validation using LOVs

To validate user input against values in the associated LOV, set LOVVAL to Y. In the generated form, users cannot enter values into the item that are not in the LOV.

Note that validation using an LOV is only available for:

•	allowable values that do not include ranges

•	items explicitly associated with repository LOV definitions (both foreign key items and non-foreign key items)

If LOVVAL is set to Y and a repository LOV definition exists, validation of values in a foreign key item is performed against values in the LOV. The values in the LOV are restricted by:

•	the Validation WHERE Clause property of a repository LOV table usage (either a base table usage or a lookup table usage)

•	the Additional Restriction property of the repository LOV definition, if one has been specified

•	if no Additional Restriction property has been specified for the repository LOV definition and a table included as an LOV table usage is also included as a module component lookup table usage, values in the LOV can be restricted using the lookup table usage's Validation WHERE Clause property

If LOVVAL is set to Y and a repository LOV definition does not exist, Form Generator generates trigger code to validate user input in a foreign key item against values in the lookup table regardless of whether a lookup table usage has been defined. If a lookup table usage has been defined, Form Generator also includes in the trigger code any condition specified in the lookup table usage's Validation WHERE Clause property. Note that Form Generator only generates trigger code if the foreign key constraint is validated on the client only, or validated on the client and the server (i.e. not if the foreign key constraint is validated on the server only).

For more information about generating LOVs, refer to:

•	Generating an Oracle Forms LOV from a repository LOV definition

•	Generating an Oracle Forms LOV of allowable values

Validation using trigger code

To generate trigger code to validate user input (i.e. instead of validating against an LOV), set LOVVAL to N. In the generated form, the value entered by a user is only validated when the WHEN-VALIDATE-ITEM trigger fires.

If generating trigger code to validate user entry in a foreign key item, Form Generator also includes in the trigger code any condition specified in the lookup table usage's Validation WHERE Clause property.

Note that Form Generator only generates trigger code if the foreign key constraint is validated on the client only, or validated on the client and the server (i.e. not if the foreign key constraint is validated on the server only).

Validation using a single range of valid values

If a single range of valid values (and no other valid values) have been defined for a repository element (i.e. unbound item, column, or domain), use the DVHILO preference to specify which of the following is used to validate user input:

•	the Range High Value and Range Low Value properties of the generated item

•	entries in CG_REF_CODES

What happens when validation is performed?

When validation is performed, the procedure or LOV attempts to find a single value matching what has been entered so far by querying:

•	the LOV's query record group, in the case of a foreign key item when LOVVAL is set to Yes and the item is associated with a repository LOV item definition

•	the lookup table, in the case of a foreign key item when LOVVAL is set to No (or when LOVVAL is set to Yes but no repository LOV definition exists)

•	the LOV's query record group, in the case of a non-foreign key item associated with a repository LOV definition

•	the LOV's static record group, in the case of allowable values where the repository element's Dynamic List  property is set to No

•	the LOV's query record group, in the case of allowable values where the repository element's Dynamic List property is set to Yes, which in turn queries the CG_REF_CODES table

•	the Range High Value and Range Low Value properties of the generated item, in the case of a repository element (i.e. unbound item, column, or domain) for which a single range of valid values (and no other valid values) have been defined, and where DVHILO has been set to Y

What happens if validation fails?

If the LOV fails to find a suitable value, the LOV (or the form specified by DVLOVF) is displayed.

If the trigger code fails to find a suitable value or finds more than one value, an error message is displayed.


Derived columns

About derived columns

Defining derived columns for population by generated Oracle Forms applications


About derived columns

Related Topics

A derived column is a column that derives its value from a calculation involving other columns in the same table. To define a derived column in the repository, you enter a SQL expression or PL/SQL function call as the column definition's Derivation Expression property.

For example, you might want a column called TOTAL_SALARY in the EMP table to contain an employee's total salary, including commission. To achieve this, you might set the column definition's Derivation Expression property to:

emp.sal + NVL(emp.comm,0)

You can also include literals in the expression.

Derived columns can be populated in the following ways:

•	by means of a calculation performed on the server

•	by means of a calculation performed in the client application


 Defining derived columns for population by generated Oracle Forms applications

Related Topics

To define a derived column:

1.	Create a column definition for the derived column.

2.	Set the column's Derivation Expression property to the SQL expression or PL/SQL function call that will populate the column.

For more information on using PL/SQL function calls refer to Rules to follow when calling PL/SQL functions and procedures from generated forms.

We recommend you do not use globals in column derivation expressions. Form Generator implements column derivations using a WHEN-VALIDATE-ITEM trigger, which will only fire when base table items change. If you have used global variables in your expression, the value of the column derivation may not be updated and will be inaccurate.

3.	Set the column's Derivation Expression Type property as follows:

•	if the derivation expression is a simple SQL expression, set the Derivation Expression Type property to SQL Expression

•	if the derivation expression is a call to a PL/SQL function on the client or the server, set the Derivation Expression Type property to Function Call

4.	Set the column's Server Derived property to specify whether the expression is to be calculated on the server or on the client, using the table below as a guide.

Generate values on the Server, via Server API code	Generate values on the client
Server Derived = Yes	Server Derived = No (the default)
The column values are populated using generated Server API procedures, if no value is provided by the calling application.	The column values are populated using client-side code generated when you generate application modules.
5.	If you set the Server Derived property to No, set the column definition's Server Defaulted property to No.

6.	If you set the Server Derived property to Yes, run Server Generator to create the Server API procedures to populate the derived column.

For more information about generating the Server API procedures, refer to Generating the Server API in the Server Generator help system.

What code does Form Generator create when a derived column's Server Derived property is set to No?

When a derived column's Server Derived property is set to No, the column is to be populated by code in client applications. When generating an item based on such a derived column, Form Generator creates:

•	a display-only base table item

•	a non-displayed formula item in the same block as the above base table item (for more information about formula items refer to About formula items)

•	WHEN-VALIDATE-ITEM and WHEN-CREATE-RECORD triggers on the block containing the above two items to populate the base table item with the value calculated by the formula item

•	a POST-QUERY trigger on the block to validate values returned from the database by comparing the values in the formula item and the base table item (a warning message is displayed if the values are different)

The values used in the calculation are those held in items based on columns present in the derivation expression.

Note that for Form Generator to create the code to populate a derived column, the following conditions must be met:

•	the column does not have a default value

•	the column is not of type LONG RAW, BLOB, CLOB, NCLOB or BFILE

•	the column's Derivation Expression does not refer to the column it is held against

If Form Generator detects an invalid expression, it issues an error and stops generation.

Note:	You can also enter derivation text against unbound items to define functionality for non-base table items. For more information about displaying calculated values in non-base table items refer to Calculated item generation.

What code does Form Generator create when a derived column's Server Derived property is set to Yes?

When a derived column's Server Derived property is set to Yes, the column is to be populated by code in the server. When generating an item based on such a derived column, Form Generator:

•	creates a display-only base table item

•	creates POST-INSERT and POST-UPDATE triggers on the block containing the item to requery the database and populate the base table item with the value returned from the derived column (these triggers are used when running the form against versions of the database prior to Oracle8, or when the block is based on a view)

Note the following:

•	Form Generator sets a generated block's DML Returning Value property to Yes to make use of the RETURNING clause available in Oracle8 onwards, providing the following conditions are met:

−	the module component's Datatarget Type property is set to Table

−	the module component has a base table usage of a table (i.e. rather than of a view)

−	the preference DMLRET is set to "Let generator decide" (the default).

When inserting or updating records, the RETURNING clause enables the form to populate the base table item with the value returned from the derived column without having to requery the database.

•	If a module component with a base table usage of a view (i.e. rather than of a table) has its Update and/or Delete property set to Yes and its Datatarget Type property set to Table:

−	the Repository view definition must have a primary key

−	the base table usage must contain items based on all columns in the primary key

•	If a module component with a base table usage of a view (i.e. rather than of a table) has its Insert and/or Update property set to Yes and its Datatarget Type property set to Table, the items will only be refreshed after an insert operation if all of the following conditions are met:

−	the Repository view definition has a primary key (or unique key)

−	the base table usage contains items based on all columns in the primary key (or unique key)

−	none of the primary key (or unique key) items are server-derived

If one or more of the above conditions are not met, Form Generator issues a warning and does not generate POST-INSERT trigger code.


Support for journaling in generated forms

About journaling

Populating journal tables

Recording information in the journal table


About journaling

Related Topics

Journaling is the process of recording operations performed on a database table in a second table (called a journal table).

When you define a table in the repository, you can specify that a journal table should also be created to record details about each record that is inserted, updated or deleted into that table. The table for which a journal table is created is referred to as the 'journaled' table. The journal table is a duplicate of the base table but has six additional columns to maintain transaction information.

Note that any table being journaled in this way should have a non-updateable primary key. Also, be aware that use of the journaling feature has an impact on the performance of the generated form and the sizing of your database.

For more information about how to create journal tables, refer to Generating the Server API in the Server Generator help system.

Journal tables can be populated in the following ways:

•	(recommended) by means of database triggers on the server, as generated by Server Generator

•	by means of code in the client application calling procedures on the server

•	by means of code solely in the client application

For more information about each of these methods, refer to Populating journal tables


Populating journal tables

Related Topics

To populate journal tables by means of database triggers (recommended):

1.	Set the table definition's Journal property to Server.

2.	Run Server Generator to create the table definition.

For more information about generating database triggers to support journaling, refer to How the Table API maintains journal tables in the Server Generator help system.

To populate journal tables by calling procedures on the server:

1.	Set the table definition's Journal property to Client calls server procedure.

2.	Run Server Generator to generate the server-side procedures.

3.	Run Form Generator to include the necessary triggers in the form to call the server-side procedures.

For more information about the server-side procedures, refer to How the Table API maintains journal tables in the Server Generator help system.

To populate journal tables solely by code in the client (i.e. Oracle Forms) application:

1.	Set the table definition's Journal property to Client.

2.	Run Form Generator to include the necessary triggers in the Oracle Forms application.

What code does Form Generator create when a table's Journal property is set to Client?

When a table's Journal property is set to Client, Form Generator generates code to create records in the journal table when the user performs an Insert, Update or Delete operation on the journaled table.

The information recorded in the journal table depends on the operation performed on the journaled table, as shown below:

Operation on journaled table	Information recorded in journal table
Create new row	Primary key of the new row, and all column values.
Modify row	Primary key of the updated row, and all column values.
Delete row	Primary key of the deleted row.
If Form Generator creates code to delete rows in tables other than the base table of a block in order to enforce referential integrity, and those tables are specified in the repository as having journal tables, it also generates code to journal the operations performed upon them.

Note that:

•	All column values are recorded when the user performs INSERT and UPDATE operations on the actual table. Only the primary key values are recorded when the user deletes any rows.

•	Set the user preferences before you generate any forms, and if you change any of the preferences values, generate all forms again. This ensures that table journaling is performed consistently across all applications.

•	To enforce referential integrity, Form Generator might create code to delete rows in tables other than the base table of a block. If those tables have been defined in the repository as journaled, Form Generator also generates code to journal the operations performed upon them.


Recording information in the journal table

Related Topics

Where a generated block is based on a journaled table, Form Generator can generate code to:

•	record users' comments in the JN_NOTES column of the journal table (to enable users to enter comments, Form Generator creates a non-base table item in the block based on the journaled table)

•	record auditing session identifiers in the JN_SESSION column of the journal table (for more information on auditing, refer to the "SQL Language Reference Manual"). Note that this can only be performed when the journaling is being performed by the client. Session identifiers cannot be recorded when the client is calling functions in the server to perform journaling.

To create an item to record journal comments:

1.	Set the JNNTRQ preference to indicate the operations for which users will be able enter comments.

Form Generator creates an item called CGJN$JOURNAL_NOTE in the block based on the journaled table, with a display width of 10 characters and a maximum length of 240 characters.

2.	(Optional)  If required, set the JNNTMD preference to indicate which of the operations (specified by JNNTRQ) that users must enter a comment for.

To record auditing session identifiers:

•	Set the JNSSID preference to record auditing session identifiers in the JN_SESSION column of the journal table.


Autogenerated sequence numbers and Form Generator

About autogenerated sequence numbers

About the code generated to support autogenerated sequence numbers

About the code generated to support autogenerated sequence numbers unique within a parent


 About autogenerated sequence numbers

Related Topics

About autogenerated sequence numbers

Autogenerated sequence numbers are values that are maintained automatically and therefore can provide a guaranteed source of unique identifiers.

When you create a column definition in the repository, you can specify that the generated column derives its value from a named sequence (also defined in the repository). The named sequence can be implemented as:

•	an Oracle sequence

•	a code control sequence (details of code control sequences are held in a table referred to as the code control table, which is created and maintained by Server Generator. A code control table can be common to all containers, container-specific, or specific to the table containing the column that uses a code control sequence. For more information, refer to About code control tables in the Server Generator help system)

Autogenerated sequence number columns can be populated in the following ways:

•	(recommended) by means of procedures on the server, as generated by Server Generator (for more information, refer to Generating unique values for numeric columns in the Server Generator help system)

•	by means of code in the client application (for more information, refer to About the code generated to support autogenerated sequence numbers)

About autogenerated sequence numbers unique within a parent

When you define a column in the repository that forms part of a unique or primary key, you can specify that when a record is created the column is to be populated with an autogenerated unique number that is next in the sequence within its parent. In this context, parent refers to the value entered in the other column or columns with which this column forms the unique or primary key.

For example, the primary key on the LINE_ITEMS table might be composed of two columns. The LINE_ITEM_NUMBER column is populated with the next unique number within its parent. Each time a record is created, the value entered for LINE_ITEM_NUMBER is the next unique number with respect to those other records that share the same ORDER_NUMBER as the new record. This scenario is shown below.

ORDER_NUMBER	LINE_ITEM_NUMBER
1	1
1	2
2	1
3	1

This type of autogenerated sequence is only suitable if the number of rows sharing the same parent is relatively small (e.g. tens of rows rather than hundreds or thousands of rows).

Columns can be populated with autogenerated sequence numbers unique within parent in the following ways:

•	(recommended) by means of procedures on the server, as generated by Server Generator (for more information, refer to Generating unique values for numeric columns in the Server Generator help system)

•	by means of code in the client application (for more information, refer to About the code generated to support autogenerated sequence numbers unique within a parent)


About the code generated to support autogenerated sequence numbers

Related Topics

About Form Generator and autogenerated sequence numbers

Form Generator generates code to support autogenerated sequence numbers when all the following conditions are true:

•	a bound item is based on a column that is populated by a code controls sequence or an Oracle sequence

•	the Server Derived property on the column for the repository sequence definition is set to No

For more information about autogenerated sequence numbers, refer to About autogenerated sequence numbers.

What code does Form Generator create when autogenerated sequence number columns are populated from a code controls table and Server Derived = No?

Assume an autogenerated sequence number column is populated from a code controls table, the column's Server Derived property is set to No, and a table usage containing the column allows INSERTs.

Form Generator generates code to populate a bound item based on the column. The code:

•	fetches the value from the CC_NEXT_VALUE column of the code controls table

•	increments the value in the CC_NEXT_VALUE column by the value in the CC_INCREMENT column

What code does Form Generator create when autogenerated sequence number columns are populated from an Oracle sequence and Server Derived = No?

Assume an autogenerated sequence number column is populated from an Oracle sequence, the column's Server Derived property is set to No, and a module component containing the column allows INSERTs.

Form Generator generates code to populate a bound item based on the column in one of the following ways:

•	by adding code to the PRE-INSERT trigger to assign the value of the sequence to the relevant item

•	setting the item's Default Value property

The above behavior is controlled by the SEQCMT preference.

Form Generator also adds code to the Duplicate Record key definition to prevent the field value being overwritten with the value of the previous record.


About the code generated to support autogenerated sequence numbers unique within a parent

Related Topics

About Form Generator and autogenerated sequence numbers unique within a parent

Form Generator generates code to support autogenerated sequence numbers unique within a parent when all the following conditions are true:

•	the properties of the repository column definition on which a bound item is based are set as follows:

−	AutoGen Type property = Seq in Parent

−	Server Derived property = No

−	Datatype property = a numeric datatype

•	the module component containing the bound item has its Insert property set to Yes

•	the column on which the bound item is based is in a unique key or primary key, and the module component contains items based on all other columns in the key

•	the generated item will not be enterable

For more information about autogenerated sequence numbers unique within a parent, refer to About autogenerated sequence numbers.

What code does Form Generator create when autogenerated sequence numbers unique within parent are required and Server Derived = No?

Assume an autogenerated sequence number column is populated with a value unique within its parent and the column's Server Derived property is set to No.

Form Generator adds code to the generated form's PRE-INSERT trigger to autogenerate the next unique number in the sequence within the parent.

The code selects the current maximum value for the column from those rows that share the same parent, and increments it by the value specified on the General Generator Options dialog. The resulting value is then placed in the item based on the generated column.


Oracle Forms List of Values (LOV) generation

Related Topics

About Oracle Forms Lists of Values (LOVs)

About generated Oracle Forms LOVs

Generating an Oracle Forms LOV from a repository LOV definition

Generating an Oracle Forms LOV of allowable values

Generating List of Values forms to display foreign key values

Calling Lists of Values forms to display allowable values

Using repository LOV definitions to generate poplist, text list and combo box items

Repository List of Values properties used by Form Generator

Generated Oracle Forms List of Values properties

Examples of Oracle Forms LOVs generated from repository LOV definitions


About Oracle Forms Lists of Values (LOVs)

Related Topics

A List of Values (or LOV) is a scrollable popup window that provides the operator with either a single or multi-column selection list.

LOV values are derived from an internal data structure called a record group. When you define an LOV, you associate it with a named record group.

A record group has a column/row framework that is similar to a database table. The LOV is the interface object that allows operators to view, scroll, and select records currently stored in the underlying record group.

The actual values in a record group come from one of three sources:

•	the execution of a SELECT statement that you associated with the record group at design time (query record group)

•	an array of static values that you associated with the record group at design time (static record group)

•	runtime assignment--through execution of built-in subprograms that populate the record group dynamically (query record group and non-query record group)

Note: 	By default, when an LOV is based on a query record group (a record group that has an associated SELECT statement), Oracle Forms executes the query each time the LOV is displayed, and fetches all of the records that meet the record group query criteria. This functionality ensures that the LOV always displays current database values.

When you create an LOV you specify which columns from the underlying record group should be included in the LOV. You can designate a return item for any column that you include in the LOV. When the operator selects a choice from the LOV, Oracle Forms assigns the values from the columns in the selected record to their corresponding return items.

This feature enables operators to fill in a text item by selecting values from an LOV. Typically, operators navigate to the text item and then press [List of Values] to invoke a list of entries that are valid for that item. When the operator selects a value, Oracle Forms automatically returns that value into the text item. Using an LOV in this way saves keystrokes during data-entry and ensures that the value entered is valid for that item.

Where an item has an associated LOV, but the user enters a value directly into the item without using the LOV, the entered value can optionally be validated against values in the underlying record group. If the entered value does not appear in the record group, the LOV is displayed.


About generated Oracle Forms LOVs

Related Topics

Using Form Generator you can generate Oracle Forms LOVs from repository LOV definitions and from repository allowable value definitions to populate two kinds of generated text items:

•	items generated from repository bound or unbound item definitions that are explicitly associated with repository LOV definitions

In this case, the generated Oracle Forms LOV is always based on a query record group populated by a query on the table(s) on which the repository LOV definition is based. The generated Oracle Forms LOV will be available for those items explicitly associated with the repository LOV definition. You can specify which values are returned from the LOV to the form and which items in the form are populated with the returned values. In addition, you can specify different LOVs to use for querying information and for entering information.

You can associate repository LOV definitions with both foreign key bound items and non-foreign key bound items. If you associate a repository LOV definition with a foreign key item in a base table usage, the lookup table at the other end of the foreign key might be the same as the LOV base table usage. If this is the case, note that:

−	you do not have to define a module component lookup table usage of the lookup table as well

−	if you do define a module component lookup table usage of the lookup table as well, the module component lookup table usage's WHERE Clause of Query property and Validation WHERE Clause property will be used to restrict the values in the LOV when querying data and entering data respectively

The repository LOV definitions you create can be either specific to a single module or reusable by multiple modules.

•	items generated from repository bound or unbound item definitions for which allowable values have been recorded

In this case, the generated Oracle Forms LOV can either be based on a static record group hard coded into the generated form or on a query record group populated dynamically by a query on a reference code table. The reference code table contains values, abbreviations and meanings of allowable values. For bound items, allowable values can be recorded against the column (or associated domain) on which the item is based. For unbound items, allowable values can be recorded directly against the item or against an associated domain. For more information about reference code tables, refer to Reference code table generation.

Generating Lists of Values forms

By default, Form Generator generates native Oracle Forms LOV objects to display lists of values for both items associated with repository LOV definitions and items for which allowable values have been defined. However, you can specify that:

•	lists of values from lookup tables appear in forms generated from repository modules with the Layout Format property set to LOV, using the FKLOVT preference (for more information, refer to Generating List of Values forms to display foreign key values)

•	lists of allowable values appear in forms you specify, using the DVLOVF and DVHLVF preferences (for more information, refer to Calling Lists of Values forms to display allowable values)


Generating an Oracle Forms LOV from a repository LOV definition

Related Topics

To specify that an LOV based on a query record group is to be created from a repository LOV definition:

1.	Create a repository LOV definition (either reusable or specific)  How

2.	Create an LOV base table usage (and optionally LOV lookup table usages) of the table(s) containing the values you want to display in the generated LOV.

3.	Create bound items from columns in the LOV table usage(s) that you want to appear in the generated LOV (set the items' Display properties to Yes).

4.	Associate the repository LOV definition with appropriate bound and unbound items in the module.

If the table included as a repository LOV base table or lookup table usage is also a module component lookup table, by default the repository LOV is associated with the foreign key item(s) from the module component base table usage and any displayed lookup items.

Although you can associate a repository LOV definition with any items in a module component, it is unlikely that you will want to associate an LOV with an item that does not appear in the LOV.

5.	Specify the values returned to the form by the LOV, and which items the values are returned to.

If you do not specify the items in the form to return values to, values are returned to those items in the form that are also contained in the LOV.

6.	To restrict the values that are available in an LOV, use the following repository properties to build up a query in the Record Group Query property of the query record group on which the generated Oracle Forms LOV is based:

•	use the LOV table usage's WHERE Clause of Query property to limit the values in the generated Oracle Forms LOV when querying data, and the LOV table usage's Validation WHERE Clause property to limit the values in the generated Oracle Forms LOV when entering or modifying data

•	use the repository LOV definition's Additional Restriction property to limit the values in the generated Oracle Forms LOV in addition to any conditions specified by the LOV table usage's WHERE Clause of Query property and  Validation WHERE Clause property (if you use the Additional Restriction property, Form Generator ignores WHERE clause properties of lookup usages of the table on which the LOV is based)

•	use the repository LOV definition's Restriction Clause property to control where the condition specified by the Additional Restriction property appears in the query record group's Record Group Query property

•	if you do not set the repository LOV definition's Additional Restriction property and if a module component lookup table usage and a repository LOV table usage are based on the same table, you can limit the values in the LOV using the module component lookup table usage's WHERE Clause of Query property (when querying data) and Validation WHERE Clause property (when entering or modifying data)

7.	Specify how to validate user input into items associated with the LOV:

•	to perform validation using the LOV, set LOVVAL to Y (i.e. users cannot enter values into items that are not in the LOV)

•	to generate trigger code to perform validation, set LOVVAL to N (i.e. a user's input is only validated when the appropriate trigger fires)

For more information about validating entries using LOVs, refer to Validation of user input using LOVs and trigger code.

8.	Set LOVBUT to specify whether to generate a button beside the foreign key item for which the LOV is available.

For more information about generating LOV buttons, refer to List of Values indicator button generation.

The object libraries supplied with Form Generator already contain a suitable object from which to subclass or copy properties. If you are not using one of the supplied object libraries, we recommend you add a suitable object to one of the object libraries you are using as described in the next step.

9.	(Recommended)  Create an LOV in an object library and set the properties you want Form Generator to copy or subclass in one of the following ways:

•	by creating an LOV in the object library called CGSO$LOV

•	by specifying an object in the object library for Form Generator to use when generating the LOV, using the Template/Library Object property of the repository LOV definition

Note that Form Generator ignores any column mapping information defined for the object library object.

For more information about copying or subclassing objects from an object library, refer to Using object libraries.

10.	Set other properties for the generated LOV as required, using repository information and preferences.

To find out how to set specific generated LOV properties, refer to Generated Oracle Forms List of Values properties.

Notes

Ordering items within an Oracle Forms LOV generated from a repository LOV definition

If LOVVAL is set to N, Form Generator determines the order of items in the generated Oracle Forms LOV from the Usage Sequence property of items in the repository LOV table usage.

If LOVVAL is set to Y, Form Generator creates the item being validated in the form as the first item in the LOV. Form Generator determines the order of subsequent items according to their Usage Sequence property in the repository LOV table usage. If the Usage Sequence property of the item being validated is greater than another item in the repository LOV table usage, Form Generator issues a warning during generation.

Including SQL aggregates of non-base table columns in LOVs using SRSA table usages

In a generated LOV you can display a SQL aggregate item that summarizes columns in tables other than the repository LOV's base table (and its lookups).

To include a SQL aggregate item in the generated LOV, in the repository LOV definition you must create:

•	a usage of the base table (and lookup tables, if required)

•	a Single Row SQL Aggregate (SRSA) usage of the table that the column to be aggregated belongs to

•	an unbound item of type SQL Aggregate that identifies both the column from which values are returned and the function to apply to those values

For example, you might want to create an LOV containing department names and the sum of the employee salaries for each department. In this case, the repository LOV definition has to contain:

•	a base table usage of DEPT

•	a Single Row SQL Aggregate (SRSA) table usage of EMP

•	an unbound item of type SQL Aggregate with its Derivation Expression property set to SUM(EMP.SAL)

Including sub-queries in generated LOV SELECT statements

You can restrict the values displayed in a generated LOV according to the data in a table other than the base table by including a subquery in the repository LOV definition.

To include a subquery in the generated LOV's SELECT statement, in the repository LOV definition you must create:

•	a usage of the base table (and lookup tables, if required)

•	a Subquery usage of the table containing the column(s) to be included in the subquery

•	the condition that restricts the data displayed in the LOV in either or both the WHERE Clause of Query property and the Validation WHERE Clause property of the base table usage

For example, you might want to create an LOV containing the names of those departments that have employees with a job title of Accountant. In this case, the repository LOV definition has to contain:

•	a base table usage of DEPT

•	a Subquery table usage of EMP, with the condition JOB like 'ACCOUNTANT'


Generating an Oracle Forms LOV of allowable values

Related Topics

To specify that an LOV is to be provided for a generated item with allowable values (defined against an unbound item, a column, or an associated domain):

1.	If required, enter meanings and abbreviations for allowable values for display in the LOV and/or the generated form.

2.	Set the Dynamic List ? property for the element (i.e. unbound item, column, or domain) where the allowable values are defined, according to how you want to populate the LOV:

•	to populate the LOV from a query record group dynamically populated by a query on the CG_REF_CODES table, set the Dynamic List ? property to Yes

•	to populate the LOV from a static record group, set the Dynamic List ? property to No

3.	Set preferences LOVDAB and LOVDMN to specify whether to include the abbreviations and meanings of allowable values in the LOV.

4.	Set LOVBUT to specify whether to generate a button beside the item for which the LOV is available.

For more information about generating LOV buttons, refer to List of Values indicator button generation.

5.	Set the repository item's Show Meaning property as follows to specify whether an item is created in the generated form to display the Meaning property of the allowable value selected from the LOV:

Show Meaning property:	To generate:	LOV contains:
<null>	an enterable text item displaying the allowable value's Value property	allowable values' Value properties
Meaning alongside code	a display-only text item with no prompt, displaying the Meaning property of an allowable value beside the generated text item containing the allowable value's Value property	allowable values' Value and Meaning properties
Meaning only	an enterable text item displaying the Meaning property of an allowable value instead of the allowable value's Value property	allowable values' Meaning properties

Note that Abbreviation only is not a valid option in this context.

If you set the Show Meaning property to Meaning Alongside Code, you can control the appearance of the generated display-only item by creating a suitable object in an object library. For more information about copying or subclassing objects from an object library, refer to Using Object Libraries.

6.	Set LOVVAL to specify how to validate entries in the generated item.

For more information about validating entries using LOVs, refer to Validation of user input using LOVs and trigger code.


Generating List of Values forms to display foreign key values

Related Topics

By default, Form Generator generates native Oracle Forms LOV objects to display lists of values from lookup tables for foreign key items. However, sometimes the functionality of the native Oracle Forms LOV object might not meet your requirements.

If a generated block contains enterable items for all of the columns in a foreign key, instead of using a native Oracle Forms LOV object Form Generator can generate code to call an LOV form generated from a repository module definition. Form Generator determines the module to call on the basis of the module network.

In the generated LOV form:

•	built-in Oracle Forms Enter Query functionality retrieves values from the lookup table

•	the [Exit] and [Commit] keys are redefined to set global variables, which are then passed back to the calling form

To generate an LOV form:

1.	Create a new module from which to generate the list of values.  How

2.	Set the module's Layout Format property to LOV.

3.	Enter table usages and items.

4.	Set the table usages as query-only (i.e. only the Query usage properties are set to True).

5.	Set properties for the generated form as required, using repository information, preferences, and object library information.

6.	Generate the LOV form.

To call the generated LOV form:

1.	If a module network including the module you want to call the LOV module does not exist already, create such a module network now.

There are several different ways to create module networks. One of the most efficient methods is to use the Module Network Viewer (described in Adding new modules to a module network in the Design Editor help file).

For information about other ways to create module networks, refer to Creating module networks for client applications in the Design Editor help file.

2.	Include the LOV module in the module network as being called by the module for which you want it to provide the LOV form.

3.	Set the FKLOVT preference for the calling module to either F or B, indicating that the LOV form generated from the LOV module is to be used to provide the list of values.

4.	Generate the calling form.

If the calling form has already been generated, generate it again to replace existing code.


Calling Lists of Values forms to display allowable values

Related Topics

By default, Form Generator generates native Oracle Forms LOV objects to display lists of values for items for which allowable values have been defined. However, you can use the DVLOVF and DVHLVF preferences to specify the Oracle Forms forms in which lists of allowable values are to appear.

To display allowable values in a List of Values form:

•	Use the DVLOVF preference to specify the Oracle Forms form in which to display a list of valid values.

To display valid ranges of allowable values in a List of Values form:

•	Use the DVHLVF preference to specify the Oracle Forms form in which to display a list of valid ranges.


Using repository LOV definitions to generate poplist, text list and combo box items

Related Topics

You can use repository LOV definitions to generate poplist, text list and combo box items by associating a repository LOV definition with an item in a module component base table usage that has its Display Type property set to Poplist, Text list or Combo box.

Note that you can only associate one LOV with the repository item you are generating as a poplist, text list or combo box item.

To generate a poplist, text list or combo box item using a repository LOV definition:

1.	Create a module component base table usage.  How

2.	Create a bound or unbound item and set the item's Display Type property to Poplist, Text list or Combo box.

3.	Set other properties of the generated poplist, text list or combo box item using repository information, preferences, and/or object library object properties.

For more information about setting properties of the generated item, refer to Generating poplist items, Generating text list items and Generating combo box items as appropriate.

4.	Create a repository LOV definition (either reusable or specific).  How

5.	Create an LOV base table usage of the table containing the values you want to display in the generated poplist, text list or combo box item.

6.	In the LOV table usage, create bound items based on the primary key column and the columns you want to use to provide values to the generated poplist, text list or combo box item.

Note that:

•	the first item must be based on the LOV base table's primary key column

•	any subsequent displayed items in the LOV will be concatenated and displayed as values in the generated poplist, text list or combo box item

•	you must not set the repository LOV definition's Return List property

7.	Set the Display properties to Yes for those items based on columns in the LOV table that you want to appear in the generated poplist, text list or combo box .

8.	Associate the repository LOV definition with the base table item in the module component.


Repository List of Values properties used by Form Generator

Related Topics

Repository LOV Property	Use to specify to Form Generator	Notes and Related Topics
Name	Name of generated Oracle Forms LOV	If Form Generator generates multiple Oracle Forms LOVs from this repository LOV definition, this property is suffixed with a number to uniquely identify each generated LOV.
Short Description	Not used by Form Generator
Template/Library Object	Object library object
Usage Sequence	Not used by Form Generator
Item	Item associated with this LOV	You can generate LOVs that are not associated with particular items. In this case, it is your responsibility to include application logic to manipulate the generated LOV programmatically.
Return List	Items in the form to which items in the LOV return values	In the format:    MCname.Itemname=LOVname.Itemname Note that for a base table usage related to the LOV table usage by a foreign key, this property defaults to returning values to those displayed items in the form that are in the LOV.
Filter Before Display?	Filter before Display property of generated Oracle Forms LOV	If set, overrides the corresponding object library object property.
Restriction
Used for	One of three modes in which this LOV is available: • 'Query and Data Entry' • 'Query' • 'Data Entry'	Any one item can have a maximum of two associated LOVs in the following combinations: • only one LOV used for 'Query' • only one LOV used for 'Data Entry' • only one LOV used for 'Query and Data Entry' • one LOV used for 'Query', another used for 'Data Entry'
Additional Restriction	An extra condition to limit the values in the generated Oracle Forms LOV.	This restriction is applied in addition to the following: • the LOV table usage's WHERE Clause of Query property (when querying data) • the LOV table usage's Validation WHERE Clause property (when entering or modifying data) If this property is not set and if a module component lookup table usage and a repository LOV table usage are based on the same table, you can limit the values in the LOV using the lookup table usage's WHERE Clause of Query property (when querying data) and the lookup table usage's Validation WHERE Clause property (when entering or modifying data). If this property is set, Form Generator ignores WHERE clause properties of lookup usages of the table on which the LOV is based.
Restriction Clause	Controls where the condition specified by the Additional Restriction property appears.	This property should be set to Default so that Form Generator adds the condition specified by the Additional Restriction property to the query's WHERE clause, unless:  • the Additional Restriction property contains the word 'Prior', in which case this property should be set to the CONNECT BY clause  • the Additional Restriction property contains references to a summary item, in which case this property should be set to the HAVING clause.  Note:  Currently, Oracle Forms 6i is not capable of handling the CONNECT BY and PRIOR clauses when joins (or lookups) are involved. Hence generation of CONNECT BY and PRIOR restriction is not supported for lookups or when joins are involved. However, the CONNECT BY clause can be used when the treewalk information involves single table usage.
Placement
X Position	X coordinate of top left hand corner of LOV	If set, overrides the corresponding object library object property.  If not set, Form Generator uses the corresponding object library object property. If no suitable object library object exists and the LOV displays allowable values, Form Generator uses LOVXCO.
Y Position	Y coordinate of top left hand corner of LOV	If set, overrides the corresponding object library object property. If not set, Form Generator uses the corresponding object library object property. If no suitable object library object exists and the LOV displays allowable values, Form Generator uses LOVYCO.
Display
Title	Title property of generated Oracle Forms LOV	This property is not used for a particular LOV inclusion if that LOV inclusion's Title Override property is also set. If neither property is set, the generated Oracle Forms LOV will not have a title.
Layout Style	Not used by Form Generator
Rows Displayed	Not used by Form Generator
TItle Override	Title property of generated Oracle Forms LOV	If specified for a particular inclusion of an LOV, this property overrides the Title property.
Size
Width	Width property of generated Oracle Forms LOV.	If set, overrides the corresponding object library object property.  If not set, the corresponding object library object property is used. If no suitable object library object exists, Form Generator calculates the width of the LOV from the Width properties of items displayed in the LOV (but does not increase the width beyond the value of LOVMWD).
Height	Height property of generated Oracle Forms LOV.	If set, overrides the corresponding object library object property.  If not set, the corresponding object library object property is used. If no suitable object library object exists, Form Generator determines the height of the LOV from LOVMHT.
Help
User/Help Text	Not used by Form Generator
Help Context Id Prefix	Not used by Form Generator
Documentation
Description	Not used by Form Generator
Notes	Not used by Form Generator


Generated Oracle Forms List of Values properties

Related Topics

LOV Property	Derived from or set to:	Notes and Related Topics
Title	Title property of repository LOV definition	If the LOV displays allowable values, this property is set to one of the following as appropriate: • Valid values for <item_prompt> • Valid ranges for <item_prompt>
Physical
X Position	X Position property of repository LOV definition (or LOVXCO for LOV displaying allowable values)	For more information about repository LOV properties, refer to Repository List of Values properties used by Form Generator.
Y Position	Y Position property of repository LOV definition (or LOVYCO for LOV displaying allowable values)	For more information about repository LOV properties, refer to Repository List of Values properties used by Form Generator.
Width	Width property of repository LOV definition (or LOVMWD for LOV displaying allowable values)	For more information about repository LOV properties, refer to Repository List of Values properties used by Form Generator.
Height	Height property of repository LOV definition (or LOVMHT for LOV displaying allowable values)	For more information about repository LOV properties, refer to Repository List of Values properties used by Form Generator.
Column Mapping
Display Width (of column in LOV)	Width property of repository item, in the font specified for the CGSO$LOV object in an object library.	If CGSO$LOV does not exist in an object library, Form Generator uses the font of the CGSO$DEFAULT_ITEM.  If neither exist, Form Generator calculates the width of the column in the LOV using default character cells. For more information about default character cells, refer to Notes on coordinate systems and Form Generator.

For more information about the properties of generated LOV buttons, refer to Generated List of Values indicator button properties.


Examples of Oracle Forms LOVs generated from repository LOV definitions

Related Topics

Example 1: LOV on base table item

In this example, the generated form contains two displayed fields Employee Number and Department Number. The generated LOV contains all the values in the DEPT table.

The following item properties are set as shown:

	Display	Query	Insert	Update
empno (primary key in base table usage)	Yes	Yes	Yes	No
deptno (foreign key column in base table usage)	Yes	Yes	Yes	Yes
When a user enters details for a new employee, they specify the number of the employee's department in the Department Number field.

To display an Oracle Forms LOV showing department names and numbers:

•	create a repository LOV with a table usage of DEPT and two displayed items deptno and dname

•	associate the repository LOV with the deptno item

•	set the repository LOV's Used For property to 'Query and Data Entry'

Example 2: Values in LOV on base table item restricted by conditions defined for repository LOV definition

In this example, the generated form contains two displayed fields Employee Number and Department Number. The generated LOV contains a restricted number of values from the DEPT table.

The module component item properties and the repository LOV properties are set as for Example 1. In addition, the following condition is included in the repository LOV definition's Additional Restriction property:

deptlov.deptno in (10,20)

Example 3: LOV on lookup item

In this example the generated form contains two fields, Employee Number and Department Name. The generated LOV contains all the values in the DEPT table.

The following item properties are set as shown:

	Display	Query	Insert	Update
empno (primary key in base table usage)	Yes	Yes	Yes	No
deptno (foreign key in base table usage)	No	No	No	No
dname  (lookup item in lookup table usage)	Yes	Yes	Yes	Yes
When a user enters details for a new employee, they specify the name of the employee's department in the Department Name field.

If you make a lookup item enterable as described above, we recommend that the column on which the enterable lookup item is based is in a unique key.

To display an Oracle Forms LOV showing department names and numbers:

•	create a repository LOV with a table usage of DEPT and two displayed items deptno and dname

•	associate the repository LOV with the dname item

•	set the repository LOV's Used For property to 'Query and Data Entry'

Example 4: Values in LOV on lookup item restricted by condition defined for lookup table usage

In this example the generated form contains two fields, Employee Number and Department Name. The generated LOV contains a restricted number of values from the DEPT table.

The module component item properties and the repository LOV properties are set as for Example 3.

In addition, the following condition is included in the lookup table usage's Validation WHERE Clause property:

dept.deptno in (10,20,30)

Note that Form Generator would ignore the condition defined for the module component lookup table usage if the repository LOV definition's Additional Restriction property had been set.

Example 5: Values in LOV on lookup item restricted by conditions defined for both repository LOV definition and repository LOV table usage

In this example the generated form contains two fields, Employee Number and Department Name. The generated LOV contains a restricted number of values from the DEPT table.

The module component item properties and the repository LOV properties are set as for Example 3.

In addition:

•	the following condition is included in the repository LOV table usage's Validation WHERE Clause property and WHERE Clause of Query property:

dept.deptno in (10,20,30)

•	the following condition is included in the repository LOV definition's Additional Restriction property:

deptlov.deptno in (10,30,40)

Note that Form Generator ignores any condition defined for the module component lookup table usage because the repository LOV definition's Additional Restriction property is set.

Example 6: Values in LOV on lookup item restricted by conditions defined for both lookup table usage and repository LOV table usage

In this example the generated form contains two fields, Employee Number and Department Name. The generated LOV contains a restricted number of values from the DEPT table.

The module component item properties and the repository LOV properties are set as for Example 3.

In addition:

•	the following condition is included in the repository LOV table usage's Validation WHERE Clause property and WHERE Clause of Query property:

dept.deptno in (10,20,40)

•	the following condition is included in the repository LOV table usage's property:

deptlov.deptno in (20,30,40)

Note that Form Generator would ignore the condition defined for the module component lookup table usage if the repository LOV definition's Additional Restriction property had been set.

Example 7: Values in LOV on lookup item restricted according to mode (Query or Data Entry) by conditions defined for lookup table usage

In this example the generated form contains two fields, Employee Number and Department Name. The generated LOV contains a restricted number of values from the DEPT table. Note that a single Oracle Forms LOV is generated but the values shown in the LOV depend on the mode in which the form is being used (either querying or data entry).

The module component item properties and the repository LOV properties are set as for Example 3.

In addition:

•	the following condition is included in the lookup table usage's WHERE Clause of Query property:

dept.deptno in (10,20)

•	the following condition is included in the lookup table usage's Validation WHERE Clause property:

dept.deptno in (30,40)

Example 8: Two LOVs on lookup item generated from two repository LOV definitions

In this example the generated form contains two fields, Employee Number and Department Name. Two Oracle Forms LOVs generated from two different repository LOV definitions contain a restricted number of values from the DEPT table. Which LOV is used (and hence which values are available) depend on the mode in which the form is being used (either querying or data entry).

The module component item properties are set as for Example 3.

There are two repository LOV definitions:

•	an LOV for querying, with the following condition included in its Additional Restriction property:

dept.deptno in (10,40)

•	an LOV for data entry, with the following condition included in its Additional Restriction property:

dept.deptno in (20,30)


Non-base table items

About non-base table items

Current record indicator item generation

Generating 'empty' non-base table items

See also

Lookup item generation

Calculated item generation

Button item generation

Descriptive flexfield generation


About non-base table items

Related Topics

When you create a form, you will typically want to include items in the form that are not based on columns on either a base table or a lookup table. Such items are referred to as non-base table items and also as control items.

You can use Form Generator to generate the following non-base table items, and the necessary associated code:

•	lookup items

•	calculated items

•	button items

•	current record indicator items

•	'empty' non-base table items, for which you can enter appropriate code after generation

•	descriptive flexfields

Follow the instructions in the appropriate help topic to generate the required non-base table item.


Current record indicator item generation

Related Topics

About current record indicator items

Generating current record indicator items


About current record indicator items

Related Topics

About current record indicator items

A current record indicator item is a 'marker' beside the currently selected record in a block (usually a multi-row block).

If a multi-row block contains current record indicator items, an indicator item appears in each record in the block. When a record is selected (e.g. by navigating to one of the enterable items in the record), the visual attribute of the indicator item in that record changes to that specified by the item's Current Record Visual Attribute Group property. When the user navigates to a different record, the indicator item returns to its previous state.

Form Generator creates a current record indicator item as an enterable, non-base table item to enable users to navigate to a record by selecting the indicator item itself.

Note that an alternative to creating a separate current record indicator item to indicate the current row is to use the Current Record Visual Attribute Group property of a multi-row block (or items in the block). For more information, refer to Setting the Current Record Visual Attribute Group property.

About drilldown current record indicator items

A drilldown current record indicator item is a current record indicator item which, when clicked, navigates to the detail block if there is one. The detail block will automatically display information regarding the current record in the master block.

Note the following points:

•	You can define a drill down current record indicator item in a multi-region block. When clicked, the item navigates to the first item in the next layout region in the multi-region block. The items in the layout region will automatically display information regarding the current record in the previous region. If the drilldown current record indicator item is in the last layout region in a multi-region block, clicking navigates to the first detail block linked to the multi-region block.

•	If you define a drilldown current record indicator item and there is no detail block, Form Generator treats the item as a normal current record indicator item.

•	Form Generator always sets a drilldown current record indicator item's Enabled property to Yes and the item's Keyboard Navigable property to the equivalent property of the appropriate object in an object library. If no object libraries are being used, Form Generator sets the item's Keyboard Navigable property to False.


Generating current record indicator items

Related Topics

To generate a current record indicator item:

1.	Create an unbound item.  How

2.	Set the unbound item's Unbound Type property to Custom.

3.	Set the unbound item's Display Type property to Current Record or Drilldown.

4.	Set the prompt and dimensions of the current indicator item as required.

5.	(Optional)  Use Form Builder to define properties of source objects in an object library, as follows:

•	CGSO$CUR_REC_IND as the source object for an item indicating the current record

•	CGSO$DRILL_IND as the source object for an item indicating the current record that enables drill down to a detail block

6.	Use Form Builder to define the following visual attributes in the template form:

•	CG$CURRENT_RECORD, to set the appearance of the item when  indicating the current record

•	CG$DRILLDOWN, to set the appearance of the item when indicating that the current record indicator item allows drill down to the detail block

•	CG$OTHER_RECORD, to set the appearance of the item when it is not indicating the current record

Form Generator copies these visual attributes into the generated form and sets the Current Record Visual Attribute Group property of the generated indicator item accordingly.

The above visual attributes are already defined in the ofgpc1t.fmb and ofgpc2t.fmb standard templates shipped with Oracle Designer.

7.	Generate the form.


Generating 'empty' non-base table items

Related Topics

About 'empty' non-base table items

An 'empty' non-base table item is one created and laid out by Form Generator, for which you enter appropriate code after generation.

Why create 'empty' non-base table items?

Using Form Generator to create these items rather than creating them by hand using Form Builder ensures that the items are taken into consideration when Form Generator is laying out the generated form.

To create an 'empty' non-base table item:

1.	Create an unbound item.  How

2.	Set the unbound item's Unbound Type property to Custom.

3.	Ensure the following conditions are met:

•	the unbound item's Display Type property is not Button

•	the unbound item has no Derivation Text defined for it

4.	Generate the form.

5.	Use Form Builder to modify the generated item properties and add appropriate code to meet your requirements.

Generated item properties

The generated item will have the following properties:

Generated Item Property	Set to, or derived from
Name	CGNBT_<ITEM_NAME><UNIQUE_NUMBER>
Display Type	Char
Navigable	False
Enabled	False
Prompt	Taken from the repository item
Dimensions	Taken from the repository item
Hint	Taken from the repository item


PL/SQL function and procedure calls

About PL/SQL

About PL/SQL program units, subprograms, packages, procedures and functions

Calling PL/SQL functions and procedures from generated forms

Rules to follow when calling PL/SQL functions and procedures from generated forms


About PL/SQL

Related Topics

PL/SQL is Oracle's procedural extension to the SQL database language.  It combines the data manipulation and transaction processing capabilities of SQL with constructs typically found in procedural programming languages such as variable and constant declarations, assignment, looping, and conditional branching.

You can use PL/SQL to enhance and modify the default functionality that is built in to every Oracle Forms application. To do so, you need to be familiar with PL/SQL concepts and syntax.

In Form Builder, you write PL/SQL code when you:

•	create a trigger

•	write a user-named subprogram

•	write a PL/SQL package

•	create a PL/SQL-type menu item

•	define menu startup code


About PL/SQL program units, subprograms, packages, procedures and functions

Related Topics

A program unit is a PL/SQL construct that can be independently recognized and processed by the PL/SQL compiler.  Types of program unit include:

•	subprograms

•	packages

Subprograms define a named and (optionally) parameterized sequence of actions.  Subprograms may be referenced by other program units.  A subprogram may be either a function or a procedure.

Functions and procedures are similar, except that functions return a value.  Thus, while a procedure call is simply a statement, a function call is an expression and can appear only where expressions are allowed.

Packages define a collection of related subprograms and datatypes.  Oracle Forms provides several predefined packages that you can use, or you can define your own packages in form, menu, or library modules.  You can also define packages in the Oracle database server, and then reference their contents from client-side applications.

About Oracle Forms built-in subprograms

Built-in subprograms (sometimes simply referred to as 'built-ins') are packaged procedures and functions that are  available within Oracle Forms.  A procedure is usually a complete statement used to perform an action; a function is an expression of a specific data type that is part of a statement used to compute a value.

Each built-in subprogram is a group of program instructions that executes some application function.  Built-in subprograms can be called from triggers, menu item commands, and user-named subprograms, but cannot be edited or modified in any way.

About user-named subprograms

A user-named subprogram is a named PL/SQL function or procedure that you write in a form, menu, or library module.  Although triggers are the primary way to add programmatic control to an Oracle Forms application, user-named subprograms supplement triggers by allowing you to reuse code without having to enter it in multiple triggers.


Calling PL/SQL functions and procedures from generated forms

Related Topics

Include calls to PL/SQL functions and procedures in the Oracle Forms applications you generate in the following ways:

•	Form Generator automatically includes calls to Oracle Forms built-in subprograms and creates user-named subprograms as part of generation

•	enter and call PL/SQL procedures as the PL/SQL Block multi-line text property of bound and unbound items (for more information, refer to Button generation and Non-base table items)

•	enter and call PL/SQL functions that return a value as the Derivation Text property of unbound items (for more information, refer to About generated formula items)

•	enter and call PL/SQL functions and procedures using application logic (for more information, refer to Using application logic and Form Generator)

If you are familiar with versions of Oracle Designer prior to Release 2, note that in Release 2 onwards you do not prefix calls to PL/SQL functions and procedures using the COMPLEX: notation.


Rules to follow when calling PL/SQL functions and procedures from generated forms

Related Topics

Follow the rules below when calling PL/SQL functions and procedures using:

•	the PL/SQL Block multi-line text property of bound and unbound items

•	the Derivation Text property of unbound items

•	the Derivation Expression property of column definitions

•	application logic (for more information, refer to Using application logic and Form Generator)

Rule 1

If a parameter is passed to a function or procedure, it must be one of the following:

•	a literal

•	a bound item in the same module component (either in the base table usage or a lookup table usage linked to the base table usage) (field derivation only)

•	a global variable

•	a column from the same table (column derivation only)

Rule 2

To ensure uniqueness when referencing columns in calls to functions and procedures, we recommend you use the name of the repository item.

However, other methods of identifying columns in procedure and function calls are also supported.

Supported syntax for use in the Derivation Text property of unbound items of type SQL Expression, Client side Function, and Server side Function:

Syntax	Ability to ensure uniqueness	Example	Notes
repository_item_name	1	mydeptno	Recommended
table_usage_alias.column_name	2	myempalias.deptno	When generating multi-region blocks, specify alias of the primary module component's base table usage
column_name	3	deptno

Supported syntax for use in the PL/SQL Block Text property of unbound items of display type Button:

Syntax	Example	Notes
repository_item_name	mydeptno

Supported syntax for use in the Derivation Text property of unbound items of type Computed:

Syntax	Example	Notes
module_component_name.repository_item_name	empmc.mydeptno	If generating multi-region blocks and the item is in a module sub-component, specify the name of the primary module component.

Supported syntax for use in the Derivation Expression property of columns:

Syntax	Example	Notes
column_name	deptno
Rule 3

A called function or procedure may exist in:

•	the Server

•	a template form

•	a library attached to the template form

•	a library attached to the generated form (or to a generated module library)

Rule 4

The function or procedure may contain any valid PL/SQL, including Oracle Forms built-ins and references to valid tables and columns. Any values returned by a function must be appropriate for the Display Type of the column or repository item.

Note:	Formula items must not reference restricted built-ins, e.g. go_block, (for more information about restricted built-ins refer to the Oracle Forms help system).

Example 1: The following procedure call would be valid for an unbound item with a Display Type of button:

Perform_navigation('EMPLOYEES');

where Perform_navigation is a procedure like:

PROCEDURE Perform_navigation (blockname varchar2) IS

BEGIN

go_block(blockname);

END

Example 2: The following function call would be valid for an unbound item with an Unbound Type of Client Side Function and a Display Type of number:

Calculate_salary(emp.sal,emp.comm)

where Calculate_salary is a function like:

FUNCTION Calculate_salary (basic number,commission number) RETURN number IS

BEGIN

RETURN(basic + nvl(commission, 0));

END

Rule 5

You can enter a call to an Oracle Forms built-in for an unbound item with a Display Type of button, providing any parameters required by the built-in meet the rules above for passing parameters.

Example 1: The go_block built-in accepts a literal as a parameter, so the following procedure call would be valid:

go_block('EMPLOYEES');

Example 2: The following call is invalid because the parameters passed to the set_window_property built-in do not meet the rules outlined above for passing parameters:

set_window_property(FORMS_MDI_WINDOW,POSITION,5,10);

Rule 6

When a procedure (e.g. the NAME_IN Oracle Forms built-in) requires the name of a generated item in the form, enclose the item name in quotes. For example:

NAME_IN ('ename')

Rule 7

Enter and call PL/SQL procedures as the PL/SQL Block multi-line text property of bound and unbound items, but do not use more than one line.

Enter and call PL/SQL functions that return a value as the Derivation Text property of unbound items or the Derivation Expression property of column definitions.

Rule 8

Do not include function calls in SQL expressions. For example, the following SQL expression is invalid because it includes a call to the my_func function:

empno > my_func(100)

Note that this rule also applies when setting the Where/Validation Condition property of check constraints that you want to be validated on the client.

Rule 9

Do not attempt to call multiple functions (also known as nesting functions) in derivation expressions or Where/Validation conditions. Create a single function that contains the multiple function calls, and call that function instead.

Rule 10

Use Y2K-compliant date formats for date/character string conversions. For more information, refer to Generating Year 2000 compliant applications.

Rule 11

We recommend that called functions contain error handling code to trap exceptions.

Rule 12

If you are familiar with versions of Oracle Designer prior to Release 2, note that in Release 2 onwards you do not prefix calls to PL/SQL functions and procedures using the COMPLEX: notation.


Message handling and Form Generator

About message text

Why externalize message text?

Displaying externalized messages in alert windows

Modifying externalized generator and user messages

About customizing the CG$FORM_ERRORS package

Example of a customized CG$FORM_ERRORS package


About message text

Related Topics

Message text is the text displayed when users are running a generated form. For example, if a user attempts to delete a department that still contains employees, the message text 'Cannot delete Departments while dependent Employees exist' might be displayed.

Form Generator creates message text from:

•	text strings defined against constraints in the repository (referred to as 'user messages')

•	a .pll file or .msb file installed with Oracle Designer containing both simple text strings and text strings containing tokens that are replaced at runtime (referred to as 'generator messages')

By default, Form Generator hard codes generator messages into generated PL/SQL from an .msb file. Messages are displayed on the message line of generated forms using the Oracle Forms MESSAGE built-in procedure.


Why externalize message text?

Related Topics

By default, Form Generator hard codes generator messages into generated PL/SQL from an .msb file. Messages are displayed on the message line of generated forms using the Oracle Forms MESSAGE built-in procedure.

However, you might want to  to:

•	display messages in popup windows (called alerts) rather than on the message line

•	change generated message text to improve the usability of the forms you generate (e.g. by modifying the standard generator messages)

•	provide messages in different languages (e.g. by modifying both user messages and generator messages)

To take control of both how messages are displayed and the content of those messages, you must 'externalize' messages.

Externalizing generator messages

When you externalize generator messages, Form Generator includes code to fetch messages from a separate library file instead of hard coding the messages into the generated PL/SQL itself.

At runtime, the generator messages are retrieved from the library by a package (either the one shipped in the ofgtel.pll library or one you have created in a template) and displayed in an alert.

If you want to modify the message text, you can do so in the procedure that displays the text.

Form Generator is supplied with a suitable message-handling package called CG$FORM_ERRORS in the ofgtel.pll library. The CG$FORM_ERRORS package fetches messages from the ofgmes.pll library, which:

•	is installed as part of Oracle Designer

•	contains the standard generator messages

•	is attached to the ofgtel.pll library file

Externalizing user messages

When you externalize user messages, you have the opportunity to modify the message text in the procedure that displays the text.


Displaying externalized messages in alert windows

Related Topics

By default, messages are displayed in the message line of generated forms. However, you might want to display messages to users more prominently using native Oracle Forms 'alerts'. An alert is a modal window that displays a message. Message severity is represented by an icon that appears in the alert window.

To display messages in an alert rather than on the message line, messages must be externalized, as follows:

1.	Set  MSGSFT to CG$FORM_ERRORS (or an alternative package) to specify that you do not want to use default Oracle Forms message handling functionality.

The CG$FORM_ERRORS package supplied with Form Generator in the ofgtel.pll library comprises:

•	the MSGGETTXT function to fetch messages from ofgmes.pll

•	the PUSH procedure to display messages on the screen in the appropriate style alert

If you decide to specify a package other than CG$FORM_ERRORS, the package must contain a procedure and function with these names and similar functionality. There are other naming conventions and parameter requirements you must also follow if you specify a package other than CG$FORM_ERRORS. For these reasons, we recommend you copy CG$FORM_ERRORS and then modify the copy. For more information, refer to About customizing the CG$FORM_ERRORS package.

2.	Specify that the Oracle Forms alerts in which you want messages displayed are included in the generated form in one of the following ways:

•	by including the alerts in the template form

•	by including the alerts as an object group in an object library and specifying the name of the object group using OLBLST

The CG$FORM_ERRORS package supplied with Form Generator displays messages in four alerts:

•	CFG_SYSTEM_ERROR

•	CFG_WARNING_A

•	CFG_INFORMATION

•	CFG_ERROR

The above alerts are included in both the ofgwebol.olb standard object library (in the object group CGUTIL$MESSAGES) and the ofgpc1t.fmb standard template form shipped with Form Generator.

3.	Generate the form.

During generation, Form Generator:

•	replaces calls to the standard Oracle Forms message handling procedure with calls to MSGGETTXT and PUSH

•	attaches the ofgtel.pll library (the ofgmes.pll library is attached to ofgtel.pll)

When the generated form is run, generator and user messages are displayed in alert windows.

We recommend you do not directly modify the messages in ofgmes.pll. If you want to modify particular generator or user messages, refer to Modifying externalized generator and user messages.


Modifying externalized generator and user messages

Related Topics

A recommended technique to modify generator and user messages:

1.	Set  MSGSFT to CG$FORM_ERRORS (or an alternative package) to specify that you do not want to use default Oracle Forms message handling functionality.

If you specify an alternative package, there are certain procedures and functions it must contain. For these reasons, we recommend you copy CG$FORM_ERRORS and then modify the copy. For more information, refer to About customizing the CG$FORM_ERRORS package.

2.	Specify a unique number greater than 100 as message text in the repository for each of the user messages you want to externalize.

Message numbers 1 to 100 are reserved for Generator messages, so do not give numbers in this range to user messages.

3.	Optionally, create a library file (using ofgmes.pll as an example) containing the externalized user message numbers and text and attach the library file to the template.

4.	Create a package with the name specified by MSGSFT in the template or in the library attached to the template.

Hint:	We recommend you copy the CG$FORM_ERRORS package from the ofgtel.pll library and modify the copy.

5.	Using the CG$FORM_ERRORS package in ofgtel.pll as an example, create:

•	a function called MSGGETTEXT to retrieve generator error messages from ofgmes.pll (and optionally, user messages from the library file containing the externalized user message numbers and text)

•	a procedure called PUSH to display the message on the screen (and optionally include code in the procedure to modify particular generator or user messages)

Note:	The procedure and function must have the same parameters as specified in ofgtel.pll.

6.	Generate the form.

For an example of a package customized using the above instructions, refer to Example of a customized CG$FORM_ERRORS package.

Other techniques when modifying externalized messages

Other techniques you could adopt include:

•	modifying some or all of the generator messages explicitly in the procedure you create in the template or attached library, using the message numbers in the ofgmes.pll library to identify the messages (Note: We recommend you do not modify the generator messages in ofgmes.pll directly)

•	not modifying any generator messages - the messages are taken directly from the ofgmes.pll library

•	modifying some or all user messages, as follows:

either	by explicitly handling user messages in the procedure you create in the template or attached library
or	by adding user messages to the list of messages in ofgmes.pll (not recommended). Enter a numeric identifier for the constraint error message in the repository, and include the numeric identifier and the corresponding error message in the ofgmes.pll library. Note: Message numbers 1 to 100 are reserved for Generator messages, so do not give numbers in this range to user messages.

•	not modifying any user messages - the messages are taken directly from error messages recorded against constraints


About customizing the CG$FORM_ERRORS package

Related Topics

When creating the package specified by MSGSFT (either CG$FORM_ERRORS or an alternative package) in the template or an attached library, we recommend you copy the CG$FORM_ERRORS package from the ofgtel.pll library and modify the copy. In the copied package, you must specify a MSGGETTEXT function and a PUSH procedure exactly as they are specified in ofgtel.pll. In other words:

•	the function must be called MSGGETTEXT and accept the following parameters:

Parameter	Type	Description
errno	NUMBER	Message number
errm	VARCHAR2	The actual message (maybe with %s tokens)
p1	VARCHAR2	First token for message (defaults to null)
p2	VARCHAR2	Second token for message (defaults to null)
p3	VARCHAR2	Third token for message (defaults to null)
p4	VARCHAR2	Fourth token for message (defaults to null)

•	the procedure must be called PUSH and accept the following parameters:

Parameter	Type	Description
errm	VARCHAR2	The actual message (maybe with %s tokens)
errlevel	VARCHAR2	Message severity, one of 'E', 'W', 'I', or 'F'
errtyp	VARCHAR2	Message type (always 'OFG')
errno	NUMBER	Message number

You can include code in the PUSH procedure to handle particular messages (both generator messages and user messages).

For an example of a customized CG$FORM_ERRORS package, refer to Example of a customized CG$FORM_ERRORS package.

Note that if you copy CG$FORM_ERRORS from ofgtel.pll into a library rather than a template, you must attach ofgmes.pll to the library containing CG$FORM_ERRORS.


Example of a customized CG$FORM_ERRORS package

Related Topics

In the example below, MSGSFT has been set to CG$FORM_ERRORS, and the package has been defined in the template form. During generation, Form Generator includes this package in the generated form and also attaches the ofgtel.pll  library (the ofgmes.pll library is attached to ofgtel.pll).

Message text has been entered for two constraint definitions (constraintA and constraintB) in the repository. These user messages are '2004' and '2005' respectively.

The user who created the CG$FORM_ERRORS.PUSH procedure included conditions in the procedure to override the message text recorded in the repository for constraintA and constraintB. At runtime, '2004' and '2005' are replaced with 'Externalized message text for error 2004' and 'Externalized message text for error 2005'.

Note that you could use the same mechanism to replace the shipped generator messages. Refer to the ofgmes.pll library for a list of generator error numbers.

When the form is run and one of the constraints violated, the message text specified in the procedure is displayed in an alert window.

PACKAGE CG$FORM_ERRORS IS

 procedure raise_failure;

 procedure push(msg      in varchar2,

                error    in varchar2 default 'I',

                msg_type in varchar2 default '',

                msgid    in integer  default 0);

 function  MsgGetText(p_MsgNo    in Number,

                      p_DfltText in Varchar2 default null,

                      p_Subst1   in Varchar2 default null,

                      p_Subst2   in Varchar2 default null,

                      p_Subst3   in Varchar2 default null,

                      p_Subst4   in Varchar2 default null)

      return varchar2;

END;

PACKAGE BODY CG$FORM_ERRORS IS

procedure raise_failure is

begin

  raise form_trigger_failure;

end;

procedure push(msg      in varchar2,

               error    in varchar2 default 'I',

               msg_type in varchar2 default '',

               msgid    in integer  default 0)

is

  msg_string varchar2(1000) := msg;

  alert_is     alert;

  alert_button number;

begin

/* Here you may over write the message if you want */

/* msgid is set to zero for user messages          */

if (msgid = 0)

then

  if (msg = '2004')

  then

    msg_string := 'Externalized message text for error 2004';

  elsif (msg = '2005')

  then

    msg_string := 'Externalized message text for error 2005';

  end if;

end if;

/* select the alert to use from the template form */

/* according to the value in errt                 */

if (error  = 'F')

then

  alert_is   := find_alert('CFG_SYSTEM_ERROR');

  msg_string := 'Fatal Error: '||msg_string;

elsif (error  = 'E')

then

  alert_is := find_alert('CFG_ERROR');

  msg_string := 'Error: '||msg_string;

elsif (error = 'W')

then

  alert_is := find_alert('CFG_WARNING_A');

  msg_string := 'Warning: '||msg_string;

elsif (error  = 'I')

then

  alert_is := find_alert('CFG_INFORMATION');

  msg_string := 'Information: '||msg_string;

end if;

if (error IN ('F','E','W','I'))

then

  set_alert_property(alert_is, ALERT_MESSAGE_TEXT, msg_string );

  alert_button := show_alert(alert_is);

else

  message(msg_string);

end if;

end;

function  MsgGetText(p_MsgNo    in Number,

                     p_DfltText in Varchar2 default null,

                     p_Subst1   in Varchar2 default null,

                     p_Subst2   in Varchar2 default null,

                     p_Subst3   in Varchar2 default null,

                     p_Subst4   in Varchar2 default null)

     return varchar2 is

  l_temp varchar2(1000) := p_DfltText;

BEGIN

  cg$message.get_message(p_MsgNo, l_temp);

  l_temp := replace(l_temp, '<p1>', p_Subst1);

  l_temp := replace(l_temp, '<p2>', p_Subst2);

  l_temp := replace(l_temp, '<p3>', p_Subst3);

  l_temp := replace(l_temp, '<p4>', p_Subst4);

  return l_temp;

END;

END;

END;


Specifying the startup query mode of generated forms

About the startup query modes of generated forms

Specifying a generated form's default startup query mode using CG$STARTUP_MODE

Specifying a generated form's default startup query mode using USEPKR

Specifying a generated form's startup query mode when called from a navigation action item

Specifying a generated form's startup query mode when called by Key-Fn trigger codeWhich startup query mode to specify when using CG$STARTUP_MODE or the Startup Mode named passed value


About the startup query modes of generated forms

Related Topics

What is the startup query mode of a generated form?

The startup query mode of a generated form is the mode in which the form is started when it is invoked (either standalone or from another module). It is the startup query mode that determines the query operations the user can perform using the generated form.

You can generate forms that open in one of a number of different startup query modes. There are two factors to consider:

•	the default startup query mode when the form is run standalone

•	the startup query mode when the form is called from another form (whether a navigation action item or Key-Fn trigger code has been used to implement the call)

What is the default startup query mode of a generated form?

The default startup query mode of a generated form determines the query operations the user can perform if the form is run standalone (i.e. it is not invoked by another module).

There are two ways to set a generated form's default startup query mode:

•	by setting the CG$STARTUP_MODE parameter

•	by setting the USEPKR preference


Specifying a generated form's default startup query mode using CG$STARTUP_MODE
Specifying a generated form's default startup query using CG$STARTUP_MODE

Related Topics

About using CG$STARTUP_MODE to specify default startup query mode

Use the CG$STARTUP_MODE parameter to specify a generated form's default startup query mode when the form is run standalone.

The default startup query mode determines whether parameter values passed to the form are assigned to items in the first navigable block of a form that have been generated from bound items with corresponding argument usages.

Note the following:

•	parameter values passed to the form are always assigned to items generated from unbound items with corresponding argument usages, regardless of the startup query mode

•	any conditions defined in the repository always apply, regardless of the startup query mode

•	'restricted' modes enable you to permanently limit the records users can query or enter in the block

To specify a generated form's default startup query mode using CG$STARTUP_MODE:

1.	Define a module argument called CG$STARTUP_MODE.

2.	Set the argument's Default Value property to one of the following:

NORMAL	NEW	RESTRICTED NEW
	AUTO QUERY	RESTRICTED AUTO QUERY
	ENTER QUERY	RESTRICTED ENTER QUERY
For more information, refer to Which startup query mode to specify when using CG$STARTUP_MODE or the Startup Mode named passed value.

3.	Define any other arguments the form requires.

4.	If a value for an argument you define is required by the form but is not necessarily passed to the form on startup, set the Default property of the argument.


Specifying a generated form's default startup query mode using USEPKR

Related Topics

To specify a generated form's default startup query mode using USEPKR:

1.	Set USEPKR to QUERY (if you want to perform the query on query-only first blocks) or ALL (if you always want to perform the query).

2.	Specify whether you want to start the generated form in Enter Query or Execute Query mode by setting the Autoquery property of the first module component in the module as follows:

Mode for generated form:	Set module component's Autoquery property to:
Execute Query	Yes or Default Behavior
Enter Query	No


Specifying a generated form's startup query mode when called from a navigation action item

Related Topics

About specifying a form's startup query mode when called from a navigation action item

Use the Startup Mode named passed value to specify a generated form's startup query mode when the form is called from a navigation action item.

The startup query mode determines whether parameter values passed to the form are assigned to items in the first navigable block of a form that have been generated from bound items with corresponding argument usages.

Note the following:

•	parameter values passed to the form are always assigned to items generated from unbound items with corresponding argument usages, regardless of the startup query mode

•	any conditions defined in the repository always apply, regardless of the startup query mode

•	'restricted' modes enable you to permanently limit the records users can query or enter in the block

To specify a form's startup query mode when called from a navigation action item:

1.	In the calling module, set the value of the Startup Mode named passed value to one of the following values:

NORMAL	NEW	RESTRICTED NEW
	AUTO QUERY	RESTRICTED AUTO QUERY
	ENTER QUERY	RESTRICTED ENTER QUERY
For more information, refer to Which startup query mode to specify when using CG$STARTUP_MODE or the Startup Mode named passed value.

2.	In the called module, enter the conditions to be used in the above queries as module arguments against bound items in the first navigable block (as specified by the GENNAV preference).

3.	In the calling module, specify the argument passed values that will be passed to arguments in the called module.

4.	Set USEPKR to NONE.


Specifying a generated form's startup query mode when called by Key-Fn trigger code

Related Topics

If you are calling forms using Key-Fn generated trigger code (i.e. CALLFM is set to Yes), you can automatically query a called form using the primary key of the current record in the calling form.

When one generated form calls another generated form, you will often want the called form to show context information from the current record displayed in the calling form. Form Generator can generate code to:

•	save the primary key of the currently displayed record in the calling form into a global variable

•	automatically query a block in the called form using the primary key saved in the global variable

For example, you might define a module structure in which one module containing Department details (the calling form) calls a second module (the called form) containing Employee details. Typically, you will want the Employee form to automatically contain at least some of the information from the Department form (e.g. the name of the department currently displayed in the Department form) in a block at the top of the form.

To save the primary key of the current row in the calling form:

1.	Set the USEPKR preference to QUERY or ALL for the calling module.

2.	Generate a form from the calling module.

To query the called form automatically:

1.	Set the USEPKR preference to QUERY (if you only want to perform the query on query-only first blocks) or ALL (if you always want to perform the query).

2.	Generate a form from the called module.

Behavior of the generated forms

On exiting the calling form, a POST-FORM trigger fires and the current row's primary key is saved to a global variable.

On starting the called form, a WHEN-NEW-FORM-INSTANCE trigger fires and uses the value of the global variable to query the base table of the first block.


Which startup query mode to specify when using CG$STARTUP_MODE or the Startup Mode named passed value

Related Topics

The table below explains which startup query mode to specify:

•	when using CG$STARTUP_MODE to specify the default startup query mode when a form is run standalone

•	when using the Startup Mode named passed value to specify the startup query mode of a form called from a navigation action item

Startup query mode	Use this startup query mode:	What happens in the generated form (note unbound items always populated):
NORMAL	• to give users access to all data	No parameters passed to the form are assigned to items generated from bound items.
NEW	• when you expect users to enter a new record on startup • to supply users with a default set of query criteria from passed parameters • to give users access to all data	Any items associated with parameters passed to the form are populated with the value of those parameters.  A user can modify the value in an item populated from a parameter. If the user subsequently presses [Enter Query] or [New Record], items associated with parameters are again populated. The user can modify these values before executing the query or committing the record.
AUTO QUERY	• to automatically populate the form using passed parameters • to supply users with a default set of query criteria from passed parameters • to give users access to all data	Any items associated with parameters are populated, and the query is immediately executed. If the user subsequently presses [Enter Query] or [New Record], items associated with parameters are again populated. The user can modify these values before executing the query or committing the record.
ENTER QUERY	• when you expect users to want to enter a query on startup • to supply users with a default set of query criteria from passed parameters • to give users access to all data	Any items associated with parameters are populated. However, a user can modify these values before executing the query. If the user subsequently presses [Enter Query] or [New Record], items associated with parameters are again populated. The user can modify these values before executing the query or committing the record.
RESTRICTED NEW	• when you expect users to enter a new record on startup • to supply users with a set of query criteria from passed parameters • to limit the records a user can query to those indicated by parameters passed to the form • to enable users to enter additional conditions to further restrict the records before executing the query	Any items associated with parameters passed to the form are populated with the value of those parameters.  If the user subsequently presses [Enter Query] or [New Record], items associated with parameter values are again populated.  However, in this case, the user cannot modify the values passed into items from parameters.
RESTRICTED AUTO QUERY	• to automatically populate the form using passed parameters • to limit the records a user can query to those indicated by parameters passed to the form	Any items associated with parameters are populated, and the query is executed. If the user subsequently presses [Enter Query] or [New Record], items associated with parameter values are again populated.  However, in this case, the user cannot modify the values passed into items from parameters.
RESTRICTED ENTER QUERY	• when you expect users to want to enter a query on startup • to supply users with a set of query criteria from passed parameters • to limit the records a user can query to those indicated by parameters passed to the form • to enable users to enter additional conditions to further restrict the records before executing the query	Any items associated with parameters are populated with parameter values. If the user subsequently presses [Enter Query] or [New Record], items associated with parameter values are again populated.  However, in this case, the user cannot modify the values passed into items from parameters.


Calendar windows for date items

About calendar windows

About the example calendar window shipped with Form Generator

Including a calendar window in a generated form


About calendar windows

Related Topics

A calendar window enables users to select the date to enter in a date item on a generated form from a list of dates shown in a separate window. Calendar windows help to ensure users enter valid dates in the correct format.


About the example calendar window shipped with Form Generator

Related Topics

Form Generator is shipped with an example calendar window and associated code (the CGUTIL$CALENDAR object group) in the ofgwebol.olb object library and the OFGCALL.pll library.

Using the shipped object group, when users select [List] in a generated date item the calendar window appears as shown here. You can also enable users to display the window in other ways (e.g. by including a List button beside the generated date item).
By default, the example calendar window appears showing days in the same month of the current date in the generated date item (if one exists). If no date exists in the date item, the calendar shows the current month.

Note that the calendar window shipped with Form Generator is an example only. If this example does not meet your particular requirements, include a copy of the calendar window in your own object library and modify the copy as necessary.

Limiting the valid dates in the calendar window

The display_calendar procedure provided for the example calendar window in the shipped object library enables you to configure the calendar by disabling weekends and/or a range of dates, ensuring that users can only select valid dates.

Example 1: A call to calendar.setup('WEEKEND'); in the procedure prevents users from selecting dates that fall on weekends.

Example 2: A call to calendar.setup('','01-JAN-96','31-DEC-96'); in the procedure prevents users from selecting dates in 1996.

Limiting navigation to the calendar window

Depending on the structure of the generated form, you might want to consider setting NAVBWN to Y to prevent users accessing the calendar window using [Next Block] functionality.


Including a calendar window in a generated form

Related Topics

To include a calendar window in a generated window:

1.	Define a calendar window in the template form, and include appropriate code in either the template or an attached library.

Hint: Form Generator is shipped with an example calendar window and associated code (the CGUTIL$CALENDAR object group) in the ofgwebol.olb object library and the OFGCALL.pll library.

2.	Create a bound item based on the date column for which a calendar window is to be displayed in the generated form.  How

3.	Specify the object library. How

4.	Specify the object group to use for the calendar. How

4.	Enter a call to the appropriate procedure defined in the template as the PL/SQL Block multi-line text property for the bound item.

For example, you might enter :

display_calendar;

5.	Set the USECAL preference to Y.

Hint:	To create a button beside a generated date item to display the calendar window, set the LOVBUT preference to Y.


Generating Oracle Forms applications

Form Generator pre-generation checklist

Form generation

Menu generation

Generating multiple module applications


Form Generator pre-generation checklist

Related Topics

Before you attempt to generate a form for the first time, you might want to use the following checklist to confirm that you are ready to use Form Generator. Make sure you can answer Yes to each question before using Form Generator.

Consider this checklist as the bare minimum. You will probably want to add your own items to the list.

Ask these questions before using Form Generator:		Click to find out how:
Do the tables to be accessed by the generated Oracle Forms application exist in the repository?		How
Do the columns to be accessed by the generated Oracle Forms application exist in the repository?		How
Do the necessary foreign key relationships between the tables to be accessed by the generated Oracle Forms application exist in the repository?		How
Do the tables to be accessed by the generated Oracle Forms application exist in the database against which you will be testing the generated Oracle Forms application?		How
Do the columns to be accessed by the generated Oracle Forms application exist in the database against which you will be testing the generated Oracle Forms application?		How
Do the necessary foreign key relationships between the tables to be accessed by the generated Oracle Forms application exist in the database against which you will be testing the generated Oracle Forms application?		How
Does a repository module of language Oracle Forms exist?		How
Does this module contain all the module components from which the blocks in the generated Oracle Forms application will be generated?		How
Does each module component contain the required bound items, based on columns in the base table and any lookup table usages?		How
Does each module component contain lookup items and associated lookup tables, where these are required?		How
Does each module component contain the required unbound items?		How
Do object libraries exist to set properties of generated Oracle Forms objects?		How
Does a template exist to set properties of generated Oracle Forms objects?		How
Are the Generator preferences set as required?		How
Are the settings on the Generate Form and Form Generator Options dialog boxes correct?		How


Form generation

Related Topics

cf_Generatingwindowscanvasesblocksanditems

Generating forms

Generating windows, canvases, blocks and items

Generating functionality

Generation of generated forms again

Using object libraries

Generating Year 2000 compliant applications

Using application logic and Form Generator


Generating forms

Related Topics

Generating forms

About Oracle Forms form modules

About generated form modules

Defining repository modules for form generation

Generating form modules

Generated form properties

Repository module properties used by Form Generator

Repository application system properties used by Form Generator

More about form generation


About Oracle Forms form modules

Related Topics

An Oracle Forms form module is a collection of objects and code routines. Objects you can define in a form module include windows, text items, check boxes, buttons, alerts, lists of values, and blocks of PL/SQL code called triggers. A form module is often referred to simply as a form.

For more information about Oracle Forms, refer to About Oracle Forms


About generated form modules

Related Topics

A generated form module is an Oracle Forms form module created by the Oracle Designer Form Generator from business rules and requirements recorded in Oracle Repository.

Oracle Forms form modules created by Form Generator are often simply referred to as ‘generated forms’.

For more information about Oracle Forms form modules, refer to About Oracle Forms form modules


Defining repository modules for form generation

Related Topics

You can create repository module definitions:

•	automatically, using the Oracle Designer Application Design Transformer to create candidate application module definitions from function definitions recorded in the repository

•	manually, creating module definitions from scratch on the basis of your knowledge of the business requirements that the generated application is to meet

•	by initially using the Application Design Transformer and subsequently modifying the candidate application modules

If you want to define module definitions by hand, you will want to follow all of the steps below. If you have used the Application Design Transformer to create candidate module definitions, you will find some of the steps below have been completed for you.

To define a repository module for form generation:

1.	Create a new module in the repository.  How

2.	Set the module's Short Name property to a name unique within the current container (i.e. folder or application system).

3.	Set the module's Language property to Oracle Forms.

4.	Set the module's Purpose property to a description of the functionality to be provided by the generated module.

5.	Set the module's Type property to Default to indicate your intention that the module is generated as a form.

6.	Specify the blocks that Form Generator is to create in the generated form by entering module components and module component table usages for the repository module.  How

7.	Specify the items that Form Generator is to create in the generated form by entering bound and unbound items for the repository module.  How

For general information about generating items, refer to Item generation. For information about generating particular types of item, refer to the specific topics in this help system that deal with the type of item you want to generate.

8.	If you have used the Application Design Transformer to create candidate modules, set the module's Candidate property to No.

You can now use Form Generator to generate an Oracle Forms form from this repository module definition (although you might want Form Generator to include additional functionality, and you will probably want to use object libraries, templates and preferences to control the appearance and behavior of the generated form). For more information, refer to Generating form modules.


Generating form modules
Generating form modules and running forms

Related Topics

Form module generation is the same in Oracle Designer 6i and Oracle9i Designer.  The methods available for deploying and running the generated forms differ between the two versions.

In Oracle Designer 6i you can:

-	generate forms that you intend to deploy in a client-server or three-tier architecture system

-	run generated forms on the same client-server system that Oracle Designer is installed on

-	preview generated forms intended for deployment on a three-tier achitecture system.

In Oracle9i Designer you can:

-	generate forms for deployment in a three-tier architecture system

-	preview generated forms.

For full information about generating, previewing and deploying Oracle Designer 6i forms in a three-tier architecture system, and about deploying Oracle9i Designer forms in general, see WebForms application generation.

For detailed instructions about generating and running forms, see the appropriate section below:

Oracle Designer 6i

Oracle9i Designer installed from Oracle 9iDS

Oracle9i Designer installed from Oracle 9iAS

To generate a form module and run the form in Oracle Designer 6i:

1.	Define a repository module (and associated module components, table usages, bound and unbound items) from which Form Generator will generate an Oracle Forms form.  How

For more information about defining a suitable repository module, refer to Defining repository modules for form generation.

2.	Use object libraries, templates and preferences to control the appearance and behavior of the generated form.

For more information, refer to:

Using Form Generator preferences

Using object libraries

Using templates for form and menu generation

3.	Specify any other functionality (e.g. navigation code) you want Form Generator to generate.

For information about how to generate other functionality, refer to the appropriate topics in this help system.

4.	In the Design Editor, select the repository module from which you want to generate the form.

5.	Select Generate→Generate Module to display the Generate Form dialog box.

For more information about the settings on this dialog box, refer to the Generate Form dialog box.

6.	Display the Form Generator Options dialog box (either by selecting the Options button on the Generate Form dialog box or by selecting Options→Generator Options→Forms) and set generation options as necessary.

For more information about the available options, refer to Form Generator Options dialog box.

7.	When you have specified the options you require, click the Start button on the Generate Form dialog box to generate an Oracle Forms form module from the repository module definition.

The Message Window appears, displaying warnings and errors output by Form Generator.

During generation, Form Generator creates a binary form definition. Depending on the options you have set on the Form Generator Options dialog box, the binary form definition is stored either in the filesystem (as a file with the suffix .FMB) or in a database. Again depending on the options you specify, Form Generator can:

-	compile the binary form definition and store it in the filesystem as a file with the suffix .FMX

-	automatically run the compiled form definition after generation

You can use the Message Window to correct errors detected during generation. For more information, refer to Locating and fixing errors after generation in the Design Editor help system.

8.	When generation is complete, you can use the Build Actions dialog to view or run the generated module using Form Builder (for more information, refer to Displaying the Build Actions dialog box in the Design Editor help system).

To generate a form module and run the form in Oracle9i Designer (installed from Oracle 9iDS):

1.	To be able to run (preview) generated forms locally, you must:

-	install JInitiator on the client (the JInitiator software is available in your local Oracle Home:  <Oracle_Home>\jinit\jinit1315.exe)

-	start an OC4J instance by running the file startinst.bat (<Oracle_Home>\j2ee\Oracle9iDS\startinst.bat)

2.	Define a repository module (and associated module components, table usages, bound and unbound items) from which Form Generator will generate an Oracle Forms form.  How

For more information about defining a suitable repository module, refer to Defining repository modules for form generation.

3.	Use object libraries, templates and preferences to control the appearance and behavior of the generated form.

To be able to run (preview) generated forms locally, set the Forms preference WEBURL to <iDS_Host_Name>:<Port>/forms90/f90servlet and set the Forms preference WEBPTH to the working directory (e.g. d:/working).

For more information, refer to:

Using Form Generator preferences

Using object libraries

Using templates for form and menu generation

4.	Specify any other functionality (e.g. navigation code) you want Form Generator to generate.

For information about how to generate other functionality, refer to the appropriate topics in this help system.

5.	In the Design Editor, select the repository module from which you want to generate the form.

6.	Select Generate→Generate Module to display the Generate Form dialog box.

For more information about the settings on this dialog box, refer to the Generate Form dialog box.

7.	Display the Form Generator Options dialog box (either by selecting the Options button on the Generate Form dialog box or by selecting Options→Generator Options→Forms) and set generation options as necessary.

To be able to run (preview) generated forms locally, specify a web browser on the Run tab.

For more information about the available options, refer to Form Generator Options dialog box.

8.	When you have specified the options you require, click the Start button on the Generate Form dialog box to generate an Oracle Forms form module from the repository module definition.

The Message Window appears, displaying warnings and errors output by Form Generator.  You can use the Message Window to correct errors detected during generation. For more information, refer to Locating and fixing errors after generation in the Design Editor help system.

During generation, Form Generator creates a binary form definition. Depending on the options you have set on the Form Generator Options dialog box, the binary form definition is stored in the filesystem (as a file with the suffix .FMB), stored in a database, or compiled and stored in the filesystem as a file with the suffix .FMX

9.	When generation is complete, you can use the Build Actions dialog to run (preview) the form.  In this case, the form will be displayed in the browser that you specified previously. See also Displaying the Build Actions dialog box in the Design Editor help system.

To generate a form module and run the form in Oracle9i Designer (installed from Oracle 9iAS):

1.	To be able to run (preview) generated forms locally, you must install JInitiator on the client (the JInitiator software is available in your local Oracle Home:  <Oracle_Home>\jinit\jinit1315.exe)

2.	Define a repository module (and associated module components, table usages, bound and unbound items) from which Form Generator will generate an Oracle Forms form.  How

For more information about defining a suitable repository module, refer to Defining repository modules for form generation.

3.	Use object libraries, templates and preferences to control the appearance and behavior of the generated form.

To be able to run (preview) generated forms locally, set the Forms preference WEBURL to <iAS_Host_Name>:<Port>/forms90/servlet.

For more information, refer to:

Using Form Generator preferences

Using object libraries

Using templates for form and menu generation

4.	Specify any other functionality (e.g. navigation code) you want Form Generator to generate.

For information about how to generate other functionality, refer to the appropriate topics in this help system.

5.	In the Design Editor, select the repository module from which you want to generate the form.

6.	Select Generate→Generate Module to display the Generate Form dialog box.

For more information about the settings on this dialog box, refer to the Generate Form dialog box.

7.	Display the Form Generator Options dialog box (either by selecting the Options button on the Generate Form dialog box or by selecting Options→Generator Options→Forms) and set generation options as necessary.

During generation, Form Generator will create a binary form definition. Set options to compile and store the binary form definition in the filesystem with the suffix .FMX

For more information about the available options, refer to Form Generator Options dialog box.

8.	When you have specified the options you require, click the Start button on the Generate Form dialog box to generate an Oracle Forms form module from the repository module definition.

The Message Window appears, displaying warnings and errors output by Form Generator.  You can use the Message Window to correct errors detected during generation. For more information, refer to Locating and fixing errors after generation in the Design Editor help system.

During generation, Form Generator creates the binary form definition and compiles and stores it in the filesystem as a file with the suffix .FMX

9.	Create a sub-folder in the forms90 folder of the iAS Oracle Home (on the client where iAS is installed).

10.	Locate the generated .FMX file and move it into the sub-folder that you created in the previous step.

11.	Open the file default.env (<iAS_Oracle_Home>\forms90\server\default.env) in a text editor.

12.	Uncomment the section 'Forms90_Path' and add to it the path for the sub-folder where your .FMX file now resides.  (Save and close the default.env file.)

13.	Start your web browser (preferably Internet Explorer) and enter a URL in the following form:  <iAS_Host_Name>:<Port>/forms90/servlet/?form=<Form.fmx>&userid=<user>/<pwd>@<connect>

The generated form will run in the browser.

Batch generation of multiple modules

You can generate multiple modules of the same and different languages using the Design Editor's batch processing tools.


Generated form properties

Related Topics

Form Property	Derived from or set to:	Notes and Related Topics
Name	Repository module's Implementation Name (if set) or Short Name property
Class
Display
Coordinate Information	Equivalent template form property	Either the Real coordinate system or the Character Cell coordinate system. If no template form is used, the Real coordinate system is used and the Units property defaults to Inch. For more information, refer to Notes on coordinate systems and Form Generator.
Title	Repository module Title property (if set)	The repository module's Name property is used if the repository module's Title property is not set.
Current Record Attribute
Horizontal and Vertical MDI Toolbar	As defined in template.	Generating a toolbar for the MDI window of a generated form
Use 3D Controls
Functional
Cursor Mode	Equivalent template form property
Mouse Navigation Limit	MOUSEN
Validation Unit	VLDUNT
First Navigation Block	First generated block
Console Window
Direction
Menu
Menu Module		When an associated menu module is generated as a part of the generation process, this is set to the name of that menu module. Otherwise, this is set to the value of FMNDMA.
Use File
Starting Menu
Menu Role
Miscellaneous
Comment	FRMCMT	Split across multiple lines if MAXPLS is exceeded
Version of Form Generator used

The version of Form Generator you have used to generate a module is recorded in the CG$OFG_VERSION parameter in the generated module.


Repository module properties used by Form Generator

Related Topics

Module Property	Use to specify to Form Generator	Notes and Related Topics
Short Name	Determines the name of the form module, the .fmb file, and the .fmx file (if the Implementation Name property is set, this property is not used)	If this does not conform to Oracle Forms naming requirements, generation stops with an error. Included as graphic text in the generated form if CG$MS is in the template.
Name	Included as graphic text in the generated form if CG$MN is in the template	Module Name also used if no Top Title has been specified (i.e. to set the generated module's Title property, and when CG$M1 is in the template).
Language	Verifies that the module has been specified for implementation as an Oracle Forms application.	Should be set to 'Oracle Forms'.
Purpose	Included as graphic text in the generated form if CG$MP is in the template. Included in form level comments if the string 'PP' appears in the FRMCMT preference.
Implementation Name	If set, overrides the Short Name property and determines the name of the form module, the .fmb file, and the .fmx file.	If this does not conform to Oracle Forms naming requirements, generation stops with an error. Included as graphic text in the generated form if CG$MI is in the template.
Module Type	Specifies the type of Oracle Forms module to generate.	Options are: • Default - form module (.fmb file) • Menu - menu module (.mmb file) • Library - library module (.pll file)
Display
Top Title	Used to set Title property of generated module. Included as graphic text in the generated form if CG$M1 is in the template	To split the title in two, include a vertical bar in the title. For example, 'Employee|Details'. In the template you can then position the two halves of the title independently as CG$M1 and CG$M2 respectively
Bottom Title	Included as graphic text in the generated form if CG$MB is in the template
Short Title	Used as menu item name on generated menus, and as entry in CG$FF poplist
Layout Format	Used to specify which of the following layout formats to use: • Master detail • LOV • Navigator	If set to Null, Form Generator generates the form with a master detail layout format. For more information, refer to: • Master detail form generation • LOV form generation • Navigator style form generation
Planning
Status	Not used by Form Generator
Candidate	Indicates whether module was created by the Application Design Transformer	To generate from a module created by the Application Design Transformer, you must accept the candidate module by setting this property to No.
Prevent Generation?	Do not generate this module.	For more information, refer to Preventing module generation
Size	Not used by Form Generator
Complexity	Not used by Form Generator
Project	Included as graphic text in the generated form if CG$MJ is in the template
Activity	Not used by Form Generator.
Task	Included as graphic text in the generated form if CG$MK is in the template
Time Estimate	Not used by Form Generator.
Estimate Units	Not used by Form Generator.
Invocation
Top Level?	Not used by Form Generator
Command Line	Used when calling this module from another generated module	When generating a module that calls this module, specifies the command to invoke this module.  When generating a menu item that calls this module, used to set the menu item's Menu Item Code property.  To include a module argument's Substitution String property in the command, enclose the substitution string within angled brackets (e.g. <employee_name>)
Return Type	Not used by Form Generator
Runtime Path	Used when generating a form that calls the form generated from the current module, to determine how to invoke the form	Hint: To ensure portability of the applications you generate, we recommend you do not specify a Runtime Path.
Source
Source Path	Not used by Form Generator
Help
User/Help Text	Used by Update Help Tables Utility and MS Help Generator to create module level help text	For more information, refer to Context-sensitive help generation
Help File Name	Included in generated form if HLPTYP set to MSHELP	Form Generator adds .hlp to the filename you enter, so do not include the .hlp suffix in this field.
Help Graphic File Name	Not used by Form Generator	This property is used by MS Help Generator. To generate MS Help style help for generated forms, set HLPTYP to MSHELP.
Help Context Id Prefix	Not used by Form Generator	This property is used by MS Help Generator. To generate MS Help style help for generated forms, set HLPTYP to MSHELP.
Documentation
Release Notes	Not used by Form Generator
Description	Included in comments generated against the form if FRMCMT contains the string 'DS'.	It is important to record an accurate description of the module here. These notes can be used to record additional information; for example, a list of extra features that must be added following initial generation.
Notes	Included in comments generated against the form if FRMCMT contains the string 'NT'.


Repository application system properties used by Form Generator

Related Topics

Application System Property	Use to specify to Form Generator	Notes and Related Topics
Name	Included as graphic text in the generated form if CG$AN is in the template
Title	Included as graphic text in the generated form if CG$AT is in the template


More about form generation

Related Topics

Specifying layout formats for generated forms

Master detail form generation

LOV form generation

Navigator style form generation

Preventing module generation

Distributing generated Oracle Forms applications

Notes

Notes on Registry variables and form generation

Notes on color palettes and Form Generator

Notes on coordinate systems and Form Generator

Notes on generating Oracle Forms modules for the same runtime environment using both Oracle Designer 6i and 6.0


Specifying layout formats for generated forms

Related Topics

About generated form layout formats

When defining a repository form module, you can specify that the generated module is to have one of the following layout formats:

•	Master detail

•	LOV

•	Navigator

Form Generator uses the module's Layout Format property in conjunction with the module's data model to determine which layout format to use when generating the form. Note that if you do not specify a layout format, Form Generator generates the module with a master detail layout format.

For more information, refer to:

•	Master detail form generation

•	LOV form generation

•	Navigator style form generation


Master detail form generation

Related Topics

About master detail forms

About generated master detail forms

Generating master detail forms

Notes on the generation of master detail forms


About master detail forms

Related Topics

What is a master detail form?

Strictly speaking, a master detail form contains two (or more) blocks related by a master detail relationship. The relationship between the blocks reflects a primary key to foreign key relationship between the tables on which the blocks are based. There is no limit to the number of detail blocks for any given master. Each detail block can also act as a master for other blocks.


About generated master detail forms

Related Topics

What is a generated master detail form?

Typically, you will use Form Generator to generate a master detail form where:

• there is a foreign key relationship between two base tables • there is a key-based master detail link between the two module component table usages • the two usages are of different tables

Form Generator generates the two module components as master and detail blocks, and generates the relation between them. For more information about generating relations, refer to Block relation generation.


Generating master detail forms

Related Topics

To generate a master detail form:

1.	Create a module.

2.	(optional) Set the module's Layout Format property to Master Detail.

Note that Form Generator does not use a module's Layout Format property to determine whether to generate the module as a master detail form. However, you might find it useful to set this property to distinguish the module from navigator and LOV forms.

3.	Define one or more module components.

4.	(optional) Define relationships between the module components.

5.	Generate the form.


Notes on the generation of master detail forms

Related Topics

Strictly speaking, a master detail form contains two (or more) blocks related by a master detail relationship. However, Form Generator also considers a form to be a master detail form if the Layout Format property of the repository module is not set to LOV or Navigator.

In other words, Form Generator considers a form to be a master detail form even if:

• the form only contains one block (a master block only)
• the form contains two (or more blocks) but the blocks are not related (two master blocks)
• the form contains a detail block with two masters, sometimes called a 'master master detail form' or a 'matrix form' (note that Form Generator will not generate forms with more than two masters)


LOV form generation

Related Topics

What is an LOV form?

An LOV form is a query-only form that acts as an alternative to the native Oracle Forms LOV to display lists of valid values.

Using an LOV form instead of the native Oracle Forms LOV enables you to customize the appearance and behavior of the LOV to meet your exact requirements.

You can use an LOV form to:

•	display lists of values from lookup tables for foreign key items

•	display lists of values for items for which allowable values have been defined

What is a generated LOV form?

By default, Form Generator generates native Oracle Forms LOV objects to display lists of values from lookup tables and to display lists of allowable values. However, you can specify that lists of values are displayed in an LOV form instead of in a native Oracle Forms LOV object.

In the case of items for which allowable values have been defined, you can use DVLOVF and DVHLVF to specify an LOV form to use instead of a native Oracle Forms LOV.

In the case of a list of values from a lookup table, you can use the FKLOVT preference to specify that the values appear in an LOV form generated from a repository module that:

•	has its Layout Format property set to LOV

•	is linked to the current module in a module network

Generating LOV forms

For more information, refer to Generating List of Values forms to display foreign key values.


Navigator style form generation

Related Topics

About navigator style forms

About generated navigator style forms

Generating navigator style forms

Generated navigator style form properties

Examples of generated navigator style forms

Notes on generated navigator style forms

Notes on generating Oracle Forms modules for the same runtime environment using both Oracle Designer 6i and 6.0


About navigator style forms

Related Topics

What is a navigator style form?

A navigator style form enables users to quickly navigate through hierarchical data to locate a particular record and comprises:

•	a hierarchical tree item in a navigator window

•	one or more detail windows in which record details can be viewed and edited

The look and feel of the expanding and collapsing tree is similar to the tree in the Design Editor's navigator window.


About generated navigator style forms

Related Topics

What is a generated navigator style form?

You can use Form Generator to generate a navigator style form by setting a module's Layout Format property to Navigator.

Form Generator generates the first block in the form on a new content canvas into a new window (the navigator window) and creates an item in the block of type Hierarchical Tree (note that the window, canvas, block and item are not modeled in the repository).

All blocks and records in the generated form are represented as nodes in the hierarchical tree item. When the form is opened, the navigator window displays all master blocks in the form as unexpanded 'block nodes'. If the user expands one of the block nodes, the records in the block appear as 'record nodes'. If the master block is linked to one or more detail blocks, each record node can be expanded to display a block node for the detail block(s). If the user expands the detail block node, the records in the detail block appear as record nodes.

At any point, the user can select a record node and view or edit that record in the corresponding block in a separate detail window.

You can also include buttons on vertical and horizontal toolbars in the navigator window to provide extra functionality. For example, you might want to include buttons to expand all nodes and collapse all nodes.

What are the differences between generated navigator style forms, generated navigator style items, and generated hierarchical tree items?

For a discussion of the differences between generated navigator style forms, generated navigator style items, and generated hierarchical tree items, refer to About generated hierarchical tree items.


Generating navigator style forms

Related Topics

To generate a navigator style form:

1.	Create a new repository module.  How

2.	Set the module's Layout Format property to Navigator.

3.	Define one or more module components.  How

4.	Define module component table usages.  How

5.	Define bound and unbound items.  How

6.	(optional) To restrict the records displayed in the navigator window for a particular block, include a suitable WHERE clause in the corresponding module component's WHERE Clause of Query property.

7.	(optional) To sort the records displayed in the navigator window for a particular block, include a suitable ORDER BY clause in the corresponding module component's WHERE Clause of Query property.

8.	Set NVRBLB for module components to give labels to block nodes.

For example, you might set NVRBLB to Employees for a module component with a table usage of the EMP table. Note that if you do not set NVRBLB for a module component, Form Generator uses the block title.

9.	Set the Context property to Yes for those items you want to use as record node labels to identify records in the navigator window.

For example, you might set the Context property to Yes for an item based on the ENAME column to see employees' names in the navigator window. Note that if you do not set the Context property to Yes for any items in a block, Form Generator uses the primary key items.

10.	Use the NVRBKI, NVRRCI, NVRLSP, and NVRNCI preferences to customize the appearance of the hierarchical tree item in the navigator window.

11.	Set NVRWAS to specify whether auto-select functionality is included in the generated form.

If auto-select functionality is included and a user clicks on a record node in the generated navigator, the corresponding record is queried and displayed.

12.	Set properties of the appropriate object library objects to further customize the appearance of the navigator window.

We recommend you use the Form Builder Layout Editor to design the navigator window, the content canvas, and the hierarchical tree item to meet your exact requirements. To find out which object library objects to use, refer to Generated navigator style form properties.

13.	(optional) To generate a vertical toolbar or horizontal toolbar into the navigator window, include the following in an object library:

To generate into the navigator window:	Create items belonging to a block with this name and include the block and its items in an object library:	Place the items on a toolbar canvas with this name, and include the canvas in an object library:
a vertical toolbar	CGSO$VTOOL_BLK_NVGTR	CGSO$VTOOL_CNV_NVGTR
a horizontal toolbar	CGSO$HTOOL_BLK_NVGTR	CGSO$HTOOL_CNV_NVGTR
For example, you might want to include buttons to expand all nodes and collapse all nodes. We recommend you use the Form Builder Layout Editor to design the toolbar canvases and the items on them.

14.	(optional) Define relationships between the module components.

15.	Generate the form.


Generated navigator style form properties

Related Topics

Generated navigator window properties

Window Property	Derived from or set to:	Notes and Related Topics
Name	CG$NAVIGATOR_WINDOW
Sub-class object	CGSO$WINDOW_NVGTR
All other properties	Object library object property	Use the CGSO$WINDOW_NVGTR object library object to set properties of the generated navigator window.
Generated navigator canvas properties

Canvas Property	Derived from or set to:	Notes and Related Topics
Name	CG$NAVIGATOR_CANVAS
Canvas Type	Content
Sub-class object	CGSO$CANVAS_NVGTR
Visible	Yes
Window	CG$NAVIGATOR_WINDOW
All other properties	Object library object property	Use the CGSO$CANVAS_NVGTR object library object to set properties of the generated navigator canvas.
Generated navigator block properties

Block Property	Derived from or set to:	Notes and Related Topics
Name	CG$NAVIGATOR_BLOCK
Sub-class object	CGSO$BLOCK_NVGTR
Previous navigation block	CG$NAVIGATOR_BLOCK
Next navigation block	CG$NAVIGATOR_BLOCK
Number of records displayed	1
Single record	Yes
Database Data block	No
All other properties	Object library object property	Use the CGSO$BLOCK_NVGTR object library object to set properties of the generated navigator block.
Generated navigator item properties

Item Property	Derived from or set to:	Notes and Related Topics
Name	CG$NAVIGATOR_ITEM
Item Type	Hierarchical Tree
Sub-class object	CGSO$TREE_ITEM_NVGTR
Enabled	Yes
Allow Empty Branches	Yes
Record Group	Null
Mouse navigable	Yes
Previous navigation item	Null
Next navigation item	Null
Number of items displayed	1
Visible	Yes
Canvas	CG$NAVIGATOR_CANVAS
All other properties	Object library object property	Use the CGSO$TREE_ITEM_NVGTR object library object to set properties of the generated navigator item.
Generated navigator horizontal toolbar canvas properties

Canvas Property	Derived from or set to:	Notes and Related Topics
Name	CG$NAVIGATOR_HTOOL_ CNV
Canvas Type	Horizontal toolbar
Sub-class object	CGSO$HTOOL_CNV_ NVGTR
Visible	Yes
Window	CG$NAVIGATOR_WINDOW
All other properties	Object library object property	Use the CGSO$HTOOL_CNV_NVGTR object library object to set properties of the generated toolbar canvas.  During generation, Form Generator sets the Canvas property for any items placed on this canvas in an object library to CG$NAVIGATOR_HTOOL_CNV.
Generated navigator horizontal toolbar block properties

Block Property	Derived from or set to:	Notes and Related Topics
Name	CG$NAVIGATOR_HTOOL_ BLK
Sub-class object	CGSO$HTOOL_BLK_NVGTR
All other properties	Object library object property	Use the CGSO$HTOOL_BLK_NVGTR object library object to set properties of the generated navigator block.
Generated navigator vertical toolbar canvas properties

Canvas Property	Derived from or set to:	Notes and Related Topics
Name	CG$NAVIGATOR_VTOOL_ CNV
Canvas Type	Vertical toolbar
Sub-class object	CGSO$VTOOL_CNV_ NVGTR
Visible	Yes
Window	CG$NAVIGATOR_WINDOW
All other properties	Object library object property	Use the CGSO$VTOOL_CNV_NVGTR object library object to set properties of the generated toolbar canvas. During generation, Form Generator sets the Canvas property for any items placed on this canvas in an object library to CG$NAVIGATOR_VTOOL_CNV.
Generated navigator vertical toolbar block properties

Block Property	Derived from or set to:	Notes and Related Topics
Name	CG$NAVIGATOR_VTOOL_ BLK
Sub-class object	CGSO$VTOOL_BLK_NVGTR
All other properties	Object library object property	Use the CGSO$VTOOL_BLK_NVGTR object library object to set properties of the generated navigator block.


Examples of generated navigator style forms

Related Topics

Example 1: Generated navigator style form with master detail detail relationships between blocks

In this example, a modeled module has two master module components.

The Countries module component has a master detail detail relationship with Departments and Employees.	Form Generator generates the two master module components as blocks, and represents them as block nodes in the navigator window.	If the user expands the Countries node, the records in the block are displayed as record nodes.	If the user selects a country, the Countries block is displayed in a separate detail window containing information about the selected country.
If the user expands the node for a particular country record, a node appears for the detail block linked to the Countries block.	If the user expands the Departments node, the departments in the selected country are displayed as nodes.	If the user selects a department, the Department block is displayed in a separate detail window containing information about the selected department.
If the user expands the node for a particular department record, a node appears for the detail block linked to the Departments block.	If the user expands the Employees node, the employees in the selected department are displayed as nodes.	If the user selects an employee, the Employee block is displayed in a separate window containing information about the selected employee.
Example 2: Generated navigator style form with several detail blocks for each master block

In this example, a modeled module has two master module components (Countries and Products). One of those master module components has two detail module components, and one of those detail module components has three detail module components.

The Countries module component has two detail module components - Departments and Customers. In turn, the Customers module component has three detail module components - Accounts, Contacts, and Offices.

If the user expands the Countries node, the two detail blocks (Departments and Customers) are displayed as block nodes.	If the user expands the Customers node, the customers in the selected country are displayed as record nodes.	If the user expands the node for a particular customer, the three detail blocks (Accounts, Contacts, and Offices) are displayed as nodes..
The fully expanded tree for a particular customer might look like the one shown above.


Notes on generated navigator style forms

Related Topics

Note the following when generating navigator style forms:

•	We strongly recommend you use object library objects to design the navigator window, the content canvas, the hierarchical tree item, and any toolbar canvases and items. Using object library objects enables you to precisely control the appearance and layout of the generated navigator style form using Form Builder's WYSIWYG Layout Editor.

•	Form Generator will change the Canvas property of items and the Window property of canvases in an object library to the names of the corresponding generated objects.

•	If you do not use object library objects, Form Generator will use sensible default values.

•	During generation, Form Generator creates a record group (called CG$NAVIGATOR_METADATA) to contain data to populate the hierarchical tree item, and attaches the OFGTREEN.pll library.

•	Typically, you will want the navigator window to appear on the left of the MDI window, and detail windows to appear to the right of the navigator window. It is your responsibility to set the X Position and Y Position properties of repository window definitions so as not to obscure the navigator window.

•	Typically, you will want detail windows to contain single record blocks placed on separate canvases and probably in different windows. Note that in the case of a block displayed in a detail window in a navigator style form where the corresponding module component's Number of Rows property is set to null or 0, Form Generator generates the block as a single record block.

•	When generating navigator style forms, Form Generator ignores the setting of GENNAV.

•	Do not include any items belonging to CGSO$BLOCK_NVGTR in an object library. During generation, Form Generator will ignore any items belonging to this block.

•	At runtime, changes users make in detail windows are not reflected in the navigator window until the appropriate node in the navigator window is collapsed and then expanded.

•	At runtime, a block that does not have any detail records is displayed as a block node with no record nodes displayed below it. Users must create at least one detail record and requery to display record nodes (and any subsequent block nodes).


Preventing module generation

Related Topics

Why prevent module generation?

You might want to prevent either yourself or other users inadvertently generating a particular module for a number of reasons, including:

•	when a module is not yet fully defined and therefore not ready for generation

•	when the application generated from a module fully meets your requirements and you want to prevent any further modifications to the module definition

To prevent a module being generated:

•	Set the module's Prevent Generation property to Yes.


Distributing generated Oracle Forms applications

Related Topics

About deploying generated Oracle Forms applications

You will probably generate Oracle Forms applications in a development environment that is different to the production environment in which the finished application will be deployed.

For the generated application to run successfully in a production environment, the same files and database objects must be available to the end user of the application as are available in the development environment.

Carefully plan the directory structure into which to place the files comprising the generated application (.fmx, .mmx, .plx, and .ico files) before you follow the steps outlined in this topic. For example, you might decide to keep files with different extensions in different directories. In this case, the final directory structure might be similar to the one shown below:

In the above case:

•	the paths to the \forms, \menus and \libs directories must each be included in the FORMS60_PATH Registry variable

•	the path to the \icons directory must be included in the UI_ICON Registry variable

If you decide to keep all files comprising a generated application in one directory, you will only have to include one path in the FORMS60_PATH Registry variable but you might find it less easy to maintain the application.

To ensure a generated application runs in a production environment:

1.	Install the correct Oracle Forms Runtime component to run the forms generated by Form Generator.

2.	Create the directory structure into which you will place the files comprising the generated application.

3.	Include the path to each directory in the generated application's directory structure in the FORMS60_PATH Registry variable.

For more information about setting Registry variables, refer to Notes on Registry variables and form generation.

4.	Set any other Registry variables required by the generated application.

For example, if you want to attach an editor to a text item, set the variable FORMS60_EDITOR to the name of the desired editor. If you want to include iconic buttons, include the path to the directory containing the .ico files in the Registry variable UI_ICON.

5.	Copy the following generated Oracle Forms executable runfiles to the appropriate directory in the production environment:

•	generated .fmx files (form module executable files)

•	generated .mmx files (menu module executable files)

6.	Copy any generated .plx files (i.e. both generated module libraries created by Form Generator because PGULIB was set to Yes, and libraries generated from repository module definitions) to the appropriate directory in the production environment.

7.	Copy those shipped .plx files containing code referenced by generated modules from the <ORACLE_HOME>\cgenf61\admin directory to the appropriate directory in the production environment.

For a list of the shipped .plx files supplied with Form Generator and when they are referenced, refer to About generated forms and PL/SQL library modules.

8.	Copy any other library module files containing code referenced by generated modules (e.g. in libraries attached to the template) from the <ORACLE_HOME>\cgenf61\admin directory to the appropriate directory in the production environment.

For example, a library module my_lib might be attached to a template form. At runtime, Oracle Forms looks for a .PLX file by that name in the default search paths. If no .PLX file is present, Oracle Forms looks for the .PLL file by that name.

9.	Copy any other files used by the application to the appropriate directory in the production environment.

For example, if a generated form includes the standard toolbar, copy the .ico files from the <ORACLE_HOME>\cgenf61\admin\icons directory to the appropriate directory in the production environment.

10.	Ensure users have access to database objects used by the application (including a CG_REF_CODES table, a code control table, and a help table, if appropriate).

11.	Ensure any server-side stored subprograms called by the generated application are installed on the server.

12.	Provide a mechanism for users to start the generated application (e.g. a program item or shortcut).


 Notes on Registry variables and form generation

Related Topics

Registry variables used by Form Generator during generation

Form Generator is shipped with factory values for the different options on the following dialog boxes:

•	the Generate Form dialog box

•	the Form Generator Options dialog box

•	the Capture Form Design dialog box

•	the Forms Design Capture Options dialog box

On installation, the factory values are loaded into Registry variables under the HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE/CGENF61/OPTIONS/ key

Any changes you make to the dialog box options are saved in the Registry under the HKEY_CURRENT_USER/SOFTWARE/ORACLE/CGENF61/OPTIONS/ key.

During generation, Form Generator initially looks for option values in the Registry under the HKEY_CURRENT_USER/SOFTWARE/ORACLE/CGENF61/OPTIONS/ key. If there is no value for an option under the HKEY_CURRENT_USER key, Form Generator looks under the HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE/CGENF61/OPTIONS/ key. If there is no value for an option under the HKEY_LOCAL_MACHINE key, Form Generator uses the shipped factory value recorded in the repository.

Registry variables used by generated Oracle Forms applications

Depending on the functionality you have included in a generated form, when you run the form Oracle Forms might require values for certain Registry variables (e.g. FORMS60_PATH, FORMS60_EDITOR).

Values of these Registry variables are set on installation, but you can also change them by hand if necessary using the Registry Editor.

How to start the Registry Editor will depend on the environment you are using. For example, in a Windows NT4 environment, start the Registry Editor as follows:

1.	Select Start→Run...

2.	In the Run dialog box, type regedt32

Oracle Forms looks for variables in the Oracle subkey under the HKEY_LOCAL_MACHINE key.

For more information about editing Registry variables, refer to the Registry Editor help system and the Oracle Forms help system.


Notes on color palettes and Form Generator

Related Topics

About Oracle Forms color palettes

The Oracle Forms color palette controls the color choices available in the Form Builder Layout Editor and Property Palette. Color palettes can be edited, exported to the file system or the database, and imported as required.

About Form Generator and color palettes

When generating a form, Form Generator determines which color palette to give the generated form as follows:

•	if a template form is being used, Form Generator gives the generated form the template form's color palette

•	if a template form is not being used, Form Generator gives the generated form the default Oracle Forms color palette

The shipped template forms supplied with Form Generator in Oracle Designer release 2 onwards have been given the default Oracle Forms color palette. Note, however, that the template forms supplied with versions of Form Generator prior to Release 2 (i.e .fmb files beginning OFG4) used a color palette similar to that used in Oracle Applications forms instead of the default Oracle Forms color palette. These earlier template forms are still supplied to enable you to continue using the non-default color palette.

Object libraries do not have their own color palette, so any objects copied or subclassed into a generated form are subject to the palette given to that generated form. It is therefore important that objects in an object library were originally created in a form that had the same color palette as the generated form (either the default Oracle Forms palette or the template form's color palette if this is different). The objects in the shipped object libraries supplied with Form Generator were created in forms which had the default Oracle Forms color palette.

Points to remember

To make sure that Form Generator gives the correct color palette to generated forms, follow the recommendations below:

•	to generate forms using both an object library and a template form, make sure objects in the object library were originally created in a form with the same color palette as the template form

•	to generate several forms using different templates for the same application, make sure all the templates have the same color palette

•	to edit an object from the shipped object library, copy the object into a form that has the default Oracle Forms color palette, change the object's properties as necessary, and copy the object back into the object library


Notes on coordinate systems and Form Generator

Related Topics

About Oracle Forms coordinate systems

The coordinate system you select for a form module defines the units that are used when specifying size and position coordinates for objects in the form. A form's coordinate system can be one of the following:

•	character cell coordinate system

•	real unit coordinate system

In both coordinate systems, a default character cell is used for calculating dimensions and coordinates. However, the dimensions of the default character cell are derived differently.

Character cell coordinate system

The width and height of the default character cell used in the character cell coordinate system are based on the size of a character in the default font on the design time environment. The dimensions of the default character cell in pixels are displayed as the Character Cell Width/Height properties. Note that you cannot modify the dimensions of the default character cell.

Real units coordinate system

The width and height of the default character cell used in the real units coordinate system are based on the form's Character Cell Width/Height properties specified in real units (pixel, centimeter, inch, point, or decipoint). You can specify the width and height of the default character cell, and you can also specify the real units to use. When you work in real units, it is up to you to ensure that the width and height of a text item's bounding box are compatible with the size of the font applied to the text item.

About Form Generator and coordinate systems

Form Generator applies the coordinate system and the default character cell specified for the template form to the generated form.

If no template form is used, Form Generator sets the generated form's properties as follows:

Generated Form Property	Set to
Coordinate system	Real
Real unit	Inch
Character Cell Width	as supplied by the Forms API and platform dependent
Character Cell Height	as supplied by the Forms API and platform dependent
Dimensions of generated items

Form Generator considers dimensions recorded for repository item definitions to be in multiples of average characters.

How Form Generator calculates the size of an average character depends on the setting of ITMBIF:

•	If ITMBIF is set to No, Form Generator sets the size of an average character to the size of the default character cell (i.e. to the Character Cell Width/Height properties of the template form, or supplied by the Forms API if no template is used).

•	If ITMBIF is set to Yes, Form Generator calculates the size of an average character in the font specified for the generated item (i.e. the font specified for the object library source object from which the generated item is subclassed or copied, or the font specified for an appropriate visual attribute from the template form if no suitable source object exists in any object library). Some characters (e.g. 'W') are wider than other characters (e.g. 'I'). By calculating an average character width, Form Generator determines a width for generated items that will accommodate a typical mix of both narrow and wide characters. However, the ideal width for a generated item depends on the data it is to contain.  It is likely that some generated items will contain an unusually large number of wide characters (e.g. dates, numbers, uppercase letters). As a result, the width of a generated item might be insufficient to display all the characters it contains. In this case, you can use the TXTSCA preference to specify a scaling factor to increase the item's width.

Dimensions of other generated objects

Form Generator considers dimensions recorded for other repository definitions to be in multiples of default character cells. Form Generator determines the size of a default character cell from the Character Cell Width/Height properties of the template form or supplied by the Forms API if no template is used.

If the template is using the character cell coordinate system, the size of the default character cell cannot be altered and is measured in pixels. If the template is using the real units coordinate system, you can modify both the size of the default character cell and the units in which it is measured.

Decoration preferences specified in real units

The following decoration preferences enable you to specify a value and a unit of measurement (i.e. inches, centimeters, pixels, and points).

AIBHDS	CBXIWD	GRPTLM	OFAMLL	POPFTS	SPRSBH
AIBHIS	CLSIWD	GRPVIS	OFARCS	POPHDS	STBFTS
BLKFTS	CONFTS	IMGSBH	OFATLM	POPIBS	STBHDS
BLKHDS	CONHDS	IMGSBW	PAGBIN	POPMAR	STBTLM
BLKMAR	CONMAR	ITMIPG	PAGFTS	RADFTS	TLSSBH
BLKMLL	CONMLL	ITMPIG	PAGHDS	RADHDS	TLSSBW
BLKMLR	CONTLM	OFABCS	PAGIBS	RADHIS	TXTSBW
BLKSBS	GRPFTS	OFAFTS	PAGMAR	RADMAR
BLKSBW	GRPHDS	OFAHDS	PLSIWD	RADTLM
BLKSLR	GRPHIS	OFAMAR	POPBIN	RADVIS
BLKTLM	GRPMAR
BUTIWD

During generation, Form Generator converts the values you specify into the equivalent units in the generated form as follows:

1 inch = 2.54cm = 72 points = 72 pixels

This conversion process enables you to specify values for the above preferences in different units to that used in the form. For example, you can set one of the above preferences to a value in inches for use in a form generated in points, and Form Generator will do the necessary conversion. Similarly, you can specify different units when setting different preferences for the same module and Form Generator will do the necessary conversion.

Note that when converting pixel values, Form Generator assumes a screen resolution of 72 dpi. The actual screen resolution at runtime might be different. We therefore recommend specifying values in points instead of pixels, unless the form itself is generated using pixels.

If the form is generated using character cells, Form Generator converts the above real units into character cells.

Points to remember

To make sure that Form Generator uses the correct coordinate system, follow the recommendations below:

•	to generate forms using both an object library and a template form, make sure objects in the object library were originally created in a form with the same coordinate system as the template form

•	to generate several forms for the same application using different templates, make sure all the templates have the same coordinate system


Notes on generating Oracle Forms modules for the same runtime environment using both Oracle Designer 6i and 6.0

Related Topics

Form Generator generates applications that call program units in PL/SQL libraries shipped with Oracle Designer.

The names of the Form Generator PL/SQL libraries supplied with Oracle Designer 6i are the same as the names of the PL/SQL libraries supplied with Oracle Designer 6.0. However, the content of the PL/SQL libraries supplied with 6i is different.

At runtime, Oracle Forms searches for attached PL/SQL libraries in the current directory and then in the path specified by the FORMS60_PATH and ORACLE_PATH Registry variables. The first PL/SQL library found with the correct name is used by the application. Oracle Forms 6.0 and Oracle Forms 6i use the same registry variables to locate PL/SQL library. This means that the same Oracle Forms runtime environment can never call more than one PL/SQL library with the same name.

This is significant where Oracle Forms modules generated by the 6i and 6.0 versions of Form Generator are deployed in the same runtime environment. Even if the 6i and the 6.0 versions of the PL/SQL libraries are both installed in the runtime environment, Oracle Forms will only ever call one version of the PL/SQL library at runtime (i.e. the first PL/SQL library found with the correct name). In some cases, the differences between the libraries shipped with 6i and 6.0 are so great that forms generated using 6.0 that call the PL/SQL libraries supplied with 6i will not function correctly. Similarly, forms generated using 6i might not function correctly if the 6.0 libraries are called.

If you intend to deploy Oracle Forms modules generated with both the 6i and 6.0 versions of Form Generator in the same runtime environment, you must change the names of the PL/SQL libraries that one version of Form Generator attaches to generated modules before you start to generate any modules using that version.

By default, Form Generator assumes the shipped PL/SQL libraries have the original names with which they were shipped. However, you can use Registry variables to override the original names.

To change the names of the PL/SQL libraries attached to generated Oracle Forms modules:

1.	Decide the version of Oracle Designer that is to use Form Generator PL/SQL libraries with different names to those they are shipped with.

Typically, you will already have generated modules using Oracle Designer 6.0. In this case, you will want to change the names of PL/SQL libraries supplied with 6i before you start to generate any modules using 6i.

2.	Change the names of the following PL/SQL library files shipped with Form Generator that might be attached to generated forms.

ofgbsl	ofgnavl
ofghpl	ofgtel
ofgmes	ofgtreen
ofgmnl

Note the following:

•	The ofgmes PL/SQL library is attached to ofgtel. If you rename ofgmes, you must use Form Builder to attach the renamed file to ofgtel.

•	Although ofgcall.pll is shipped with Form Generator, it is an example PL/SQL library only and therefore does not appear in the above list. The ofgcall.pll PL/SQL library is attached to generated applications by explicitly attaching it to a template form.

3.	Change the values of the Registry variables that specify the names of the shipped PL/SQL libraries to attach to generated modules.

Form Generator determines which PL/SQL libraries to attach to generated modules using Registry variables under the following keys:

•	in 6.0, the Registry variables are stored under the /SOFTWARE/ORACLE/CGENF60/OPTIONS/ key

•	in 6i, the Registry variables are stored under the /SOFTWARE/ORACLE/CGENF61/OPTIONS/ key

The specific Registry variables and their original values are shown below:

Registry variable:	Original name of shipped library:
FMLABS	ofgbsl.pll
FMLHPL	ofghpl.pll
FMLMSG	ofgmes.pll
FMLAMG	ofgmnl.pll
FMLNAV	ofgnavl.pll
FMLTAB	ofgtab.pll
FMLATE	ofgtel.pll
FMLTRE	ofgtreen.pll
For more information about how to set Registry variables, refer to Notes on Registry variables and form generation.


Getting started with form generation

An overview of the form generation process

General guidelines for designing generated Oracle Forms applications

Some design decisions to make when generating Oracle Forms applications

Examples of different design decisions

Elements of a generated form


An overview of the form generation process

Related Topics

Before you can start using Form Generator to generate Oracle Forms applications, the repository must contain database, table, and column definitions. For more information about using Server Generator to create these definitions, refer to Generating the database design in the Server Generator help file.

With the database, table, and column definitions in place, the form generation process typically includes specifying:

•	a repository module definition, from which Form Generator generates the Oracle Forms form module

•	module components, from which Form Generator generates blocks

•	module component table usages for base tables and lookup tables

•	bound and unbound items, from which Form Generator generates interface items

•	default layout and behavior for the generated application module, using object libraries, templates and preferences

•	how the module interacts with other modules, from which Form Generator can generate menus

The final step of the form generation process is to run Form Generator to create the Oracle Forms application.

If the first generation of an application does not fully meet your requirements, you can modify the information in the repository and generate again.

Using this iterative approach, many organizations strive for and achieve 100% generation. The Oracle Headstart program is especially focussed on the goal of 100% application generation. For more information about the Oracle Headstart program, contact your customer support representative.


General guidelines for designing generated Oracle Forms applications

Related Topics

As with any software development project, the Oracle Forms applications you generate should be both functional and easy to use.

Oracle Designer and Form Generator enable you to generate high quality Oracle Forms applications that fully meet the functional requirements. And Form Generator provides sensible defaults to help you generate applications with attractive and user-friendly interfaces.

Although this help system describes how to use Form Generator to generate Oracle Forms applications, it does not attempt to describe in detail the principles of good user interface design. As general rules, aim to make the applications you generate:

•	efficient - enabling users to complete tasks in a logical manner, and restricting their ability to make errors

•	consistent - both with other applications users have encountered, and with other applications running in the same environment

•	tolerant - when users do make mistakes, they should be able to recover with ease

Testing generated applications with real users will help you deliver a system that fully meets users' requirements.

For more information about interface design, refer to:

•	the Oracle Forms help system, which contains a discussion specifically about designing Oracle Forms applications

•	one of the many text books on the subject

•	the documentation shipped as part of the Oracle Headstart program


Some design decisions to make when generating Oracle Forms applications

Related Topics

Having considered the general principles outlined in the topic General guidelines for designing generated Oracle Forms applications, below are some of the design decisions you will be making when generating Oracle Forms applications:

•	which blocks are required in the generated application

•	the order of and relationships between generated blocks

•	which items are required in the generated application

•	the order of generated items within each generated block

•	the number of rows to display in each generated block

•	what to do when there are too many items to fit on one row within the width of the canvas

•	whether generated blocks are to appear on the same canvas or on different canvases

•	whether generated blocks on different canvases are to appear in different windows

•	whether grouping items is appropriate

•	how the user will navigate between blocks

•	how the user will navigate between different forms

To see the impact of these design decisions on some Oracle Forms applications created by Form Generator, refer to Examples of different design decisions.

Having made the necessary design decisions, this help system describes how to direct Form Generator to generate a form implementing those decisions by:

•	entering information and setting properties in the repository

•	using object libraries

•	using templates

•	setting preferences


Examples of different design decisions

Related Topics

Single block single row form

Let's assume you want to create a one block form to display details for one record at a time. Such a form might look like the one below:

What happens if you decrease the width of the canvas and it is no longer wide enough to display all the items on a single line?

In such a situation, the items are said to 'overflow'. There are four different ways to handle overflow:

1. Wrap Line Overflow Style In this example, the item that does not fit wraps onto the next line.
2. Overflow Area Right Overflow Style In this example, most of the items are arranged in an 'overflow area'. A 'context item' provides the context for the overflow area.
3. Overflow Area Below Overflow Style In this example, most of the items are arranged in an 'overflow area' below a context item. The 'context item' provides the context for the overflow area.
4. Spreadtable Overflow Style In this example, most of the items are arranged in a scrolling overflow area beside the context item called a 'spreadtable'.


Elements of a generated form

Related Topics

This is an example of a generated form:

The above illustrates the basic elements of a generated form, namely:

•	window

•	content canvas

•	block

•	item

•	item prompt


Context-sensitive help generation

An overview of context-sensitive help generation

Defining and displaying hint text for a generated item

Defining multi-line help text

Displaying help text in a separate help form

Displaying help text as HTML-based help in a web browser

Generating help tables

Generating help for Windows applications step-by-step (in the MS Help Generator help file)


An overview of context sensitive help generation
An overview of context-sensitive help generation

Related Topics

Form Generator can implement the display of context-sensitive help text in generated Oracle Forms applications.

There are two categories of context sensitive help:

•	hint text

•	multi-line help text

Providing hint text

Hint text is a single row of text that appears on the hint line at the foot of the form's root window. Hint text is always made available in the generated form. For more information about how to specify hint text, refer to Defining and displaying hint text for a generated item.

Providing multi-line help text

Multi-line help text can be displayed in one of the following formats, according to the setting of the HLPTYP preference:

•	in HTML-based help format (for more information, refer to Displaying help text as HTML-based help in a web browser)

•	in Microsoft Help format as generated by the Oracle Designer MS Help Generator (for more information, refer to Generating help for Windows applications step-by-step (in the MS Help Generator help file))

•	in a separate help form specified by the HLPFRM preference (for more information, refer to Displaying help text in a separate help form)


Defining and displaying hint text for a generated item

Related Topics

To define and display hint text for a generated item:

1.	Set the repository item's Hint property to the text you want users of the generated form to see in the hint line.

2.	Set the Display Hint Automatically property of the appropriate source object in an object library to specify whether hint text for the generated item is automatically displayed when the user navigates to the item (or use the obsolete preference AUTOHP - not recommended).

Notes

If you have not defined hint text for a repository item, Form Generator sets the Hint property of the generated item to "Enter value for X", where X is the repository item's prompt. If the prompt is not available, Form Generator uses the name of the item.

Users of the generated form can display hint text that does not appear automatically by pressing [Help].

To provide more context-sensitive information than can be displayed in the hint line, record multi-line help text for display in in one of the following formats:

•	in HTML-based help format (for more information, refer to Displaying help text as HTML-based help in a web browser)

•	in Microsoft Help format as generated by the Oracle Designer MS Help Generator (for more information, refer to Generating help for Windows applications step-by-step (in the MS Help Generator help file)

•	in a separate help form specified by the HLPFRM preference (for more information, refer to Displaying help text in a separate help form)


Defining multi-line help text

Related Topics

About multi-line help text

You can record three levels of help text in the repository for use in the generated form:

Help text for generated...	Derived from User/Help Text property of repository...	If no help text has been recorded for the expected repository definition, use...
item (item level help)	bound or unbound item	User/Help Text property of the column definition (bound items only)
block (block level help)	module component (in the case multi-region blocks, the primary module component)	User/Help Text property of the table definition (module components with base table usages only)
form (form level help)	module
To define multi-line help text:

1.	To specify help text for generated items, enter text for the User/Help Text property of the repository bound or unbound items from which Form Generator will generate items into the form.

If no help text has been recorded for a bound item, Form Generator uses the User/Help Text property of the column definition.

2.	To specify help text for generated blocks, enter text for the User/Help Text property of the repository module component (in the case of multi-region blocks, the primary module component) from which Form Generator will generate the block.

If no help text has been recorded for a module component with a base table usage, Form Generator uses the User/Help Text property of the base table definition.

3.	To specify help text for generated Oracle Forms modules, enter text for the User/Help Text property of the repository module from which Form Generator will generate the Oracle Forms module.

4.	Use the HLPTYP preference to specify which one of the following formats you want to use to display the help text in the generated form:

•	in HTML-based help format (for more information, refer to Displaying help text as HTML-based help in a web browser)

•	in Microsoft Help format as generated by the Oracle Designer MS Help Generator (for more information, refer to Generating help for Windows applications step-by-step (in the MS Help Generator help file)

•	in a separate help form specified by the HLPFRM preference (for more information, refer to Displaying help text in a separate help form)

Note that if you decide to use HTML-based help or a separate help form to display help information, you will also have to create and/or populate a help table by running the Generate Help Tables Utility (for more information, refer to Generating help tables).


Displaying help text in a separate help form

Related Topics

About help text displayed in a separate help form

You can specify that help text for a generated Oracle Forms application is displayed in a separate help form.

In this scenario, the hint line must already be displayed before users can display help. With the hint line displayed, users display help text by pressing the [Help] key to call the form specified by the HLPFRM preference. Form Generator creates a form-level KEY-HELP trigger to redefine the [Help] key. The KEY-HELP trigger calls the CGHP$CALL_HELP_FORM procedure in OFGTEL.pll to pass the current context and the name of the table containing the help text to the help form specified by the HLPFRM preference. This form queries the help table to retrieve help text relevant to the current cursor position and displays the help text.

Oracle Corporation supplies two standard help forms:

•	ofgwfhf - optimized for WebForms applications

•	ofghlpf - optimized for client/server applications

The default value of the HLPFRM preference is the ofghlpf standard form.

You can take copies of the standard help forms and modify them to suit your requirements. Having done this, you can then set the HLPFRM preference to access the new form.

If the HLPFRM preference specifies one of the standard help forms, the help form displays the most detailed level of help available as follows:

if	item level help exists, it is displayed in the help form
otherwise, if	block level help exists,it is displayed in the help form
otherwise, if	form level help exists, it is displayed in the help form

For more information about how item-level, block-level, and module-level help are derived, refer to Defining multi-line help text.

To display help text in a separate help form:

1.	Define multi-line help text for generated items, blocks, and modules.

For more information, refer to Defining multi-line help text.

2.	Create and/or populate a help table by running the Generate Help Tables Utility (for more information, refer to Generating help tables).

3.	Set HLPTYP to HELPFORM.

4.	Set HLPFRM to the name of the form in which to display the help text (either one of the example help forms shipped with Form Generator or one you have created using Form Builder).

Notes

The standard help forms (ofghlpf and ofgwfhf) attempt to locate help text in a table called CG_FORM_HELP (i.e. they assume that HPTABL was set to GENERIC). If you set this preference to APPSYS and you intend to use ofghlpf or ofgwfhf to display help text, you must change any references to CG_FORM_HELP in ofghlpf or ofgwfhf to refer instead to the name of the table created for the application system or folder (i.e. <container_name>_FORM_HELP).

To prevent the generation of code to call the help form, set the HLPFRM preference to NULL.


Displaying help text as HTML-based help in a web browser

Related Topics

About help text displayed in a web browser

You can specify that help text for a generated Oracle Forms application is displayed in a web browser as HTML-based help. Note that HTML-based help is only available if the form is running as a WebForms application. Also note two further prerequisites before you can generate HTML-based help:

•	Oracle Application Server (or Oracle WebDB) must be installed on the application server machine

•	the user specified by the DAD must have access to the PL/SQL Web Toolkit

In this scenario, the hint line must already be displayed before users can display help. With the hint line displayed, users display help text by pressing the [Help] key. Form Generator creates a form-level KEY-HELP trigger to redefine the [Help] key. The KEY-HELP trigger passes parameters to the CGHP$CALL_HTML_HELP procedure in OFGTEL.pll specifying

•	the name of the help table

•	the name of the repository container (i.e. application system or folder) containing the module

•	a URL comprising the application server machine address and the virtual path of the PL/SQL Agent

•	the 'target' where help text is displayed (either a named frame or relative to the content of an existing web browser session)

•	the name of the module

•	the current block

•	the current item

The CGHP$CALL_HTML_HELP procedure constructs a URL from the above parameters passed to it and includes the name of a PL/SQL package on the server called FORM_HELP.DISPLAY (this package uses the parameters in the URL to query the help table and retrieve help text relevant to the current cursor position). The CGHP$CALL_HTML_HELP procedure then passes the URL to the WEB.SHOW_DOCUMENT built-in procedure to display the help text in a web browser.

The web browser displays the most detailed level of help available as follows:

if	item level help exists, it is displayed
otherwise, if	block level help exists, it is displayed
otherwise, if	form level help exists, it is displayed

For more information about how item-level, block-level, and module-level help are derived, refer to Defining multi-line help text.

To display help text in a web browser:

Note that the following instructions assume you are using Oracle Application Server.

1.	Set up a WebForms environment to run the generated application as a WebForms application in a web browser.

In particular, you must:

•	create a suitable base HTML file

•	specify appropriate values for the WEBHTM and WEBURL preferences

•	set generation options correctly

For more information about setting up a suitable WebForms environment, refer to Using a web browser to run a generated WebForms application.

2.	Use Oracle Application Server to set up a PL/SQL Agent that uses the PL/SQL cartridge and specify both a DAD (i.e. a username, password, and database) and a virtual path.

3.	Install the FORM_HELP.DISPLAY package on the database in the user specified by the DAD in one of the following ways:

•	by selecting the appropriate Designer menu option from the Windows 95/98/NT Start menu

•	by running the script <ORACLE_HOME>\cgenf61\admin\ofghlprt.sql

4.	Set HLPURL to the address of the application server machine and the virtual path specified for the PL/SQL agent, in the format:

http://<machine_address>/<virtual_path>/

Form Generator uses this string to construct the URL that displays the help.

5.	(optional) Set HLPTGT to specify where help text is displayed (either a named frame or relative to the content of an existing web browser session).

Note that to display help text in a frame specified by HLPTGT, you must

•	define the frameset in an appropriate HTML file

•	run the form by opening the frameset file (i.e. not the form html file itself) in a web browser

6.	Enter multi-line help text for the repository objects from which Form Generator will create the generated application.

You can include any valid HTML markup in the text you enter.

For more information, refer to Defining multi-line help text.

7.	Create and/or populate a help table by running the Generate Help Tables Utility (for more information, refer to Generating help tables).

8.	Make sure that the user specified by the DAD has access to the help table.

The help table is either called CG_FORM_HELP or <container_name>_FORM_HELP. If the user specified by the DAD is not the owner of the help table, do one of the following:

•	create a public or private synonym for the help table and grant the user specified by the DAD access to the table (note that the synonym must be the same as the name of the help table (i.e. CG_FORM_HELP or <container_name>_FORM_HELP))

•	export the help table from the user that you used to create/populate the help table and import the table into the user specified by the DAD

9.	Set HLPTYP to HTML-BASED HELP.

Notes

You can include any valid HTML markup in the multi-line help text you enter for repository elements. You can also include links to help for different objects in the form. For example you might want help text for every item in a block to include a link to help text defined for the block itself. Similarly you might want the block's help text to include a link to the help for the module. To include links to help text for different levels, you specify a URL and pass the level that you want to display in the following format:

http://<machine_address>/<virtual_path>/form_help.display?p_help_table=<help table name>&p_app=<container>
&p_module=<module>&p_block=<block>&p_item=<item>&p_col=<column>&p_table=<table>&p_level=<level>

where <level> is one of the following:

<level>=	Help text defined for:
F	Item
C	Column
B	Block
T	Table
M	Module

For example, you might include the following URL in the help text defined for the ENAME repository item to jump to the help text defined for the block (in this case, MCEMP).

http://<machine_address>/<virtual_path>/form_help.display?p_help_table=CG_FORM_HELP&p_app=APPSYS1
&p_module=MOD1&p_block=MCEMP&p_item=ENAME&p_col=ENAME&p_table=EMP&p_level=B

Note that if help is not available for the level you specify, help for the next level is displayed (if available).

Example of the use of a frameset definition file when displaying HTML-based help

In this example, you want to display HTML-based help for a generated application (SALESFORM) in a frame that occupies the lower 40% of a web browser window. The frame in which the HTML-based help is to be displayed is to be called SALESHELP.

You define the frameset for the application in a separate HTML file. In this case, you might name the frameset definition file SALESFRAMES.HTML and it could look like the one shown below:

<html>

<head>

<title>Sales Application</title>

</head>

<frameset rows="60%,*" >

  <frame src="http://pc1234.us.acme_corp.com/apps/webdeploy/SALESFORM.html">

  <frame SRC="http://pc1234.us.acme_corp.com/apps/webdeploy/empty.htm" NAME="SALESHELP">

</frameset>

</html>

Note that in the above example, an empty HTML file is initially used to populate the SALESHELP.

Before generating the form, you set the HLPTGT preference to the name of the frame you have defined (i.e. SALESHELP).

To run the generated application, open the file SALESFRAMES.HTML in a web browser.


Generating help tables

Related Topics

What is a help table?

Text for display to the user of a generated form in response to a request for context-sensitive help information can be recorded in the repository for:

•	modules

•	tables

•	columns

•	module components

•	bound and unbound items

This help text can be displayed to users in HTML-based help format, in Microsoft Help format, or in the Oracle Forms form specified by the HLPFRM preference (two standard help forms are shipped with Form Generator). For more information about these different ways to display help information, refer to An overview of context-sensitive help generation

If you decide to display help information in HTML-based help format or in a help form, a help table supplies the help text for display.

What is the Update Help Tables Utility?

The Update Help Tables Utility creates, populates and maintains the help table independently of form generation. The utility enables you to generate three levels of help text for the generated form (item-level, block-level, and form-level) from the text recorded in the repository.

The help table can be either container-independent or container-specific, depending on the setting of the HPTABL preference.

When to run the Update Help Tables Utility

Run this utility:

•	to insert information into the help table before generating a form for which help information will be displayed either in HTML-based help format or in a separate help form

•	to update information in the help table if you have modified help text in the repository that will be displayed (either in HTML-based help format or in a separate help form) for an existing generated form that you do not want to generate again

How to populate a help table

1.	Set HPTABL to indicate whether the help table is container-independent or container-specific.

2.	In the Design Editor, select the module for which you want to populate the help table.

3.	Select Generate→Generate Module As to display the Generate Module As dialog box.

4.	Select the Help System option to display the Generate Help System dialog box.

5.	Select the Update the Form Generator Help Tables option.

6.	If you want to update the help table with the current help text recorded for the repository module (and for the module components and items it contains), check the Generate help for the module checkbox.

7.	If you want to update the help table with the current help text recorded for the tables and columns used by the module, check the Generate help for the associated tables checkbox.

8.	Click on Start to populate the help table.

If a help table does not exist, the Update Help Tables Utility creates one and then populates it.

Hints and tips

Where several developers are working together and generating modules in the same application system or folder, you will probably want everybody to populate the same help table. To ensure this is the case:

•	run the Update Help Tables Utility as early as possible in the development lifecycle (i.e. as soon as help text has been recorded for any tables or modules in the container)

•	either create a public synonym for the generated help table and grant public access to the help table, or create a private synonym for the help table for each Oracle Designer user and then grant each user access to the help table

You can create your own help table and populate it by running the Update Help Tables Utility. To do this, either give the table the same name that the Update Help Tables Utility would have given it, or create a synonym with the same name. Note that the Update Help Tables Utility will only maintain your help table if the table has the same columns as the help table that the utility would have created.

In the case of help text displayed in a separate help form, note that the standard help forms (ofgwfhf and ofghlpf) attempt to locate help text in a table called CG_FORM_HELP. In other words, ofghlpf and ofgwfhf assume that HPTABL was set to GENERIC. If you set HPTABL to APPSYS and you intend to use ofghlpf or ofgwfhf to display help text, you must change any references to CG_FORM_HELP in ofghlpf or ofgwfhf to refer instead to the name of the table created for the application system or folder (i.e. <container_name>_FORM_HELP).

In the case of HTML-based help, if the user specified by the DAD is not the owner of the help table, do one of the following:

•	create a public or private synonym for the help table and grant the user specified by the DAD access to the table (note that the synonym must be the same as the name of the help table (i.e. CG_FORM_HELP or <container_name>_FORM_HELP))

•	export the help table from the user that you used to create/populate the help table and import the table into the user specified by the DAD


Introducing Oracle Designer Form Generator

About Oracle Forms

About Form Generator

Features added for Form Generator in 6i

Features added to Form Generator in previous releases


About Oracle Forms

Related Topics

Oracle Forms is a toolset to build and run Oracle Forms applications. Oracle Forms applications are interactive programs that enable users to query, update, enter and delete information from the database.

Oracle Forms has two main components:

•	Oracle Forms Developer, which comprises:

−	Form Builder, used by application developers as the design component to create, compile, and run Form Builder applications. Using Form Builder, you can create three types of modules:  forms, menus, and libraries.

−	Web Previewer, used by application developers to test forms locally as though they were being run from Forms Server in a java-enabled browser.

Note that the Web Previewer is actually installed by the Form Server installation process, and it can only run on the same platforms as Oracle Form Server.

−	Forms Compiler, used by application developers to create a machine-readable file that Forms Runtime can execute

−	Forms Runtime, used by users of Oracle Forms applications to run the completed application. Forms Runtime reads the machine-readable file created by the Form Compiler, and executes the form.

•	Oracle Forms Server, which is used when running Oracle Forms applications in a WebForms environment

What are modules in an Oracle Forms application?

Oracle Forms applications are comprised of different parts or 'modules'. There are three types of Oracle Forms module:

1)	A form module

A collection of objects and code routines. Objects you can define in a form module include windows, text items, check boxes, buttons, alerts, lists of values, and blocks of PL/SQL code called triggers. A form module is often referred to simply as a form.

2) 	A menu module

A collection of menus (a main menu object and any number of submenu objects) and menu item commands that together make up an application menu.

Note:	A menu module is part of an Oracle Forms application, and cannot be run on its own.

3) 	A PL/SQL library module

A collection of user-named procedures, functions, and packages that can be called from other modules in the Oracle Forms application. Note that you can create PL/SQL library modules using both Oracle Forms Developer and Oracle Reports Developer.

An Oracle Forms application might comprise a single form module, or many form modules linked together by a menu module, and calling code held in library modules.

A menu module on its own does not comprise an Oracle Forms application, and therefore cannot be run on its own. To run a menu module, you must first associate it with a form module.

Creating Oracle Forms applications

Form Builder is the tool used to create Oracle Forms applications by hand. However, if you have already recorded business rules and requirements in Oracle Repository, it is significantly more efficient to create Oracle Forms applications using the Oracle Designer Form Generator.

For more information about Oracle Forms

For more information about Oracle Forms, refer to the Oracle Forms help system. You can start the appropriate Oracle Forms help system for your environment from the Starting the Oracle Forms help system topic.


About Form Generator

Related Topics

Form Generator is part of Oracle Designer - Oracle’s application modeling, design and generation toolset. Form Generator is a tool to generate Oracle Forms application modules (forms, menus and libraries) from module definitions recorded in Oracle Repository.

If you have recorded business rules and requirements in the repository, it is significantly more efficient to create Oracle Forms applications using Oracle Designer Form Generator than to create them by hand using Form Builder.

If you have existing Oracle Forms applications you have already created by hand, you can use Form Generator to reverse engineer those applications into the repository. This process is called design capture.

Releases of Oracle Forms to use with Oracle Designer Form Generator

Oracle Designer Form Generator generates applications for specific releases of Oracle Forms. The correct Oracle Forms release must be installed before you can use Oracle Designer Form Generator successfully. For more information about the release of Oracle Forms you require, refer to the Oracle Designer Release Notes.


Features added for Form Generator in 6i

Related Topics

Major new features in Form Generator 6i

The new repository LOV element simplifies the process of LOV generation by decoupling LOVs from lookup table usages. This not only makes it easier to define LOVs, it also enables you to:

•	define multiple LOVs for the same block

•	reuse the same LOV in multiple blocks and multiple forms

•	define LOVs for unbound items

Support for the splitting of blocks across multiple canvases by generating multi-region blocks, and also the design capture of multi-region blocks.

Support for the placing of blocks beside each other on the same canvas.

Generation of navigator style forms (to provide a user interface similar to that of the Design Editor) and navigator style items.

Introduction of relative tab stops (as distinct from absolute tab stops in previous releases) as a means to position and align items and item groups. Relative tab stop information is also captured for bound items, unbound items, and item groups.

Increased support for WebForms enables you to generate forms for the web and then run them using:

•	the Web Previewer component of Oracle Forms Developer

•	a java enabled web browser

Support for generation from versioned repositories.

New repository features enable you to use the repository as well as the filesystem to store files required during generation, and also to store generated files after generation. Storing files in the repository gives you access to features such as the Dependency Analyzer and version control.

Other new and improved Form Generator features in 6i

Enhancements to support new features in the repository, including:

•	As part of the support for generation from versioned repositories, Form Generator now comments generated forms with extra versioning information to enable you to relate a particular generated form to a specific version of a repository module. Consequently, Form Generator no longer supports the MODCMT preference, the automatic creation/population of help tables, and the maintenance of a module's Status property.

•	New colors for those messages displayed in the Message Window that indicate whether Form Generator has successfully or unsuccessfully updated repository properties during generation and design capture.

•	You can define a new type of constraint (called a domain key constraint) between table definitions. Domain key constraints have been introduced specifically to support user-defined domain tables. Form Generator generates code to enforce domain key constraints (if the domain constraint is to be enforced in the application), and to populate LOVs and list items from domain tables.

Enhancements to layout functionality, including:

•	Specification of real units when setting the decoration preferences specified in Notes on coordinate systems and Form Generator.

•	Extra Line Above decoration options for the preferences BLKDEC, CONDEC, GRPDEC, OFADEC, RADDEC, STBDEC.

•	Using BLKSBP, you can position a block scrollbar to the right or left of the multi-record area within a block instead of to the right or left edge of the block itself.

•	In multi-record blocks in which the lines do not wrap, Form Generator now positions a summary item below the item it summarizes (instead of repeating the summary item for each displayed row).

•	If a module component's Width property was not explicitly set, Form Generator reduces the width of the generated block to optimize side-by-side block layout by removing any unused space to the right of the rightmost item to.

•	You can now generate spreadtables onto tab canvases.

•	The new LAYFRA preference gives you the option to generate frames instead of graphic objects/text as decoration. Using frames gives you more control over the style of decoration and is more network efficient.

•	Increased coverage for the preferences ITMPPE and ITMMPW to allow expansion of other types of generated text as well as item prompts.

•	You can now display values from a lookup table in a combo box, as well as in a text list or a poplist.

Enhancements to design capture, including:

•	Use of the WHEN-BUTTON-PRESSED trigger code of generated unbound items of type Button to set the captured unbound item's PL/SQL Block Text property

•	Use of the Title property of the module being captured to set the captured module's Top Title property

•	The capture of non-stacked item groups and stacked item groups implemented as 'alternate regions'

•	Increased precision when setting the Unbound Type property of unbound items captured from formula items and summary items

•	Capability to prevent objects in a form being captured using a capture filter form.

•	The capture of mirror items as unbound items

•	The capture of the original module component's Title property when capturing forms generated with Form Generator in Oracle Designer 6i

•	You can now capture a combo box from a generated form, as well as being able to capture a text list or a poplist.

Enhancements to object library support, including:

•	New standard source objects (CGSO$CANVAS_STFOOT and CGSO$CANVAS_STHEAD) to control appearance of stacked header  and footer canvases independently of CGSO$CANVAS.

•	Support for module level source objects using the new OLBLST preference.

•	Multiple object library support to enable you to use a number of object libraries during generation.

•	Properties of native Oracle Forms tab canvas pages generated for stacked item groups can now be subclassed or copied from implementation source objects specified for each stacked item group using the item group's Template/Library Object property.

•	Content canvases, stacked canvases, and tab canvases generated for module components/sub-components can now be subclassed or copied from implementation source objects specified by the new module component Placement Template/Library Obj property.

•	Object library object properties are used before template properties when determining the dimensions and/or positions of generated content canvases, stacked canvases, and blocks.

•	If a repository item's Alignment property is not set, Form Generator now uses the Justification property of an appropriate source object in an object library (if one exists) to set the Justification property of a generated item.

•	You can now override all occurrences of generatable code groups using code groups defined in an object group CGOC$CODE_OVERRIDE_SOURCE that is included in an object library.

Enhancements to support native Oracle Forms features, including:

•	Native Oracle Forms tooltip support for generated items using ITMTIP.

•	Generation of Oracle Forms display items is now supported, along with a corresponding new standard source object called CGSO$DISPLAY_ITEM.

•	Generation of Oracle Forms hierarchical tree items is now supported, along with a corresponding new standard source object called CGSO$HTREE.

•	Generation of mirror items from unbound items.

•	Placing all generated code into a generated module library attached to the generated form rather than into the generated form itself using the new PGULIB preference.

Enhancements to support new Oracle8 features available in Oracle Forms, including:

•	Use of the Oracle8 RETURNING clause when inserting or updating records, enabling the form to populate a base table item with the value returned from a derived column without having to requery the database

•	Generation of items to access the Oracle8 large object (LOB) datatypes of BLOB, CLOB, NCLOB, and BFILE (including new standard source objects CGSO$LOB and CGSO$FILE)

Other enhancements to existing functionality:

•	Support for the generation of help text as HTML-based help for display in a web browser using the new default setting of HLPTYP and the new preferences HLPURL and HLPTGT

•	All of the stacked canvas preferences can now be set at module component and module sub-component level (in earlier versions, only POPCON and POPIBS could be set at these levels).

•	The new repository LOV element enables you to model as well as generate row LOVs.

New and changed Form Generator terminology in 6i

Release 2.x	Release 6i
Layout property of item group	Layout Format property of item group
Canvas Width property of module component	Width property of module component
Canvas Height property of module component	Height property of module component
Via Foreign Key property of table usage	Via Join Constraint property of table usage
Filter before Display property of table usage	Filter before Display property of Repository LOV definition
FORM2LIB utility	FM2LIB61 utility
Form Builder	Used more precisely to describe the design-time editor component of Oracle Forms
generated Form Builder applications	generated Oracle Forms applications
Oracle Developer Forms	Oracle Forms
New Form Generator preferences in 6i

Name of new preference/category	Preference description
AIBHDS	Action item button header separator
AIBHIS	Action item button horizontal inter-item spacing
BLKTLP	Block title position
HLPTGT	Target window or frame for generated HTML-based help
HLPURL	URL path for HTML-based help package
ITMTIP	Provide tooltips for items
LAYFRA	Use frames instead of graphic objects/text
MRBMCR	Multi-region block maintain current region
MRBVSB	Multi-region block vertical scrollbar
NAVPAG	Restrict item navigation to items on the current content canvas
NVRBKI	Navigator block node icon filename
NVRBLB	Navigator block node label
NVRLSP	Navigator record node context item label separator
NVRNCI	Navigator null context item
NVRRCI	Navigator record node icon filename
NVRWAS	Navigator generated with auto-select
OLBLST	List of module level source objects in object libraries
PGULIB	Write generated program units to attached library
SCTFMB	Form containing objects to ignore on capture
WEBCOL	Preview mode color scheme
WEBHGT	Preview window height
WEBHTM	User-specified HTML file
WEBLAF	Preview mode look-and-feel style
WEBPTH	Server form location path
WEBURL	Server base URL
WEBWID	Preview window width
Form Generator preferences with changed defaults in 6i

Preference name	Default value in earlier releases	Default value in Oracle Designer 6i
HLPTYP	MSHELP	HTML-BASED HELP
STFFMB	ofgpc1t.fmb	ofgwebt.fmb
STOOLB	ofgstnd1.olb	ofgwebol.olb
Form Generator preferences removed in 6i

Name of Removed Preference	Reason for Removal
AIBDEF	The Default property of action items now determines which action item is generated as the default button.
DSMOQM	Recalculation of summary items in master blocks now determined by number of rows in the master block (for more information, refer to Generating summary items).
GRPOWG	Control item group orientation by setting an item group's Orientation property to Horizontal or Vertical as appropriate.
LOVMKL	Explicit modeling of LOVs made this preference redundant.
MAXQRY	The Autoquery property of the first module component in a module now determines the mode in which the generated form starts (i.e. either Enter Query or Execute Query mode)
MODCMT	A module's generation history is superseded by the module's version history within the repository.
NO_LOV	Explicit modeling of LOVs made this preference redundant.
PAGEXP	Form Generator expands the height of a content canvas as necessary to contain the required number of rows.
POPEXP	Form Generator expands the height of a stacked canvas as necessary to contain the required number of rows.
RADOWG	Control radio group orientation by setting an item's Display Type property to Radio Group (Across) or Radio Group (Down) as appropriate.
Other information for users of previous versions of Form Generator

If you intend to deploy Oracle Forms modules generated by the 6i and 6.0 versions of Form Generator in the same runtime environment, you will probably need to override the default names of shipped PL/SQL libraries. It is important that you override the default names before generating modules using 6i. For more information, refer to Notes on generating Oracle Forms modules for the same runtime environment using both Oracle Designer 6i and 6.0.

In earlier releases, you could generate an LOV to display foreign key values from a lookup table without creating a usage of the lookup table. You specified you wanted such an LOV by setting the Display in LOV property of the foreign key item in the base table usage to Yes. During generation, Form Generator created an LOV based on a query record group populated by a query on the table referenced by the foreign key. However, you had little control over the values and properties of the generated LOV (e.g. the LOV contained all values in the corresponding primary key column of the lookup table). In 6i, the Display in LOV property has been removed. To generate such an LOV for modules upgraded from earlier releases, explicitly create a repository LOV definition with a usage of the lookup table and associate the LOV with the foreign key item in the base table usage. This method also gives you more control over the values and properties of the generated LOV. For more information, refer to Generating an Oracle Forms LOV from a repository LOV definition.


Features added to Form Generator in previous releases

Related Topics

Features added to Form Generator in Oracle Designer Release 6.0

Features added to Form Generator in Oracle Designer Release 2.1.2

Features added to Form Generator in Designer/2000 Release 2.1.1

Features added to Form Generator in Designer/2000 Release 2.1


Features added to Form Generator in Oracle Designer Release 6.0

Related Topics

Major new features in Oracle Designer Form Generator Release 6.0

Generation of Oracle Developer Form Builder Release 6.0 applications.

Enhanced integration between Oracle Designer and Oracle Developer:

•	generated modules are opened from the Build Actions dialog into a currently running Form Builder session (if one exists), rather than starting a new session for each opened module

•	you can capture forms into the Oracle Designer Repository directly from Oracle Developer Form Builder (including changes made to generated forms (e.g. to generated application logic) in Form Builder)

Other new and improved Form Generator features in Oracle Designer Release 6.0

Generation of Bean Area items containing JavaBeans for use in generated WebForms applications.

Generation of custom user interface components for use in generated WebForms applications.

Full screen menu generation for character mode environments no longer supported because this functionality is no longer available in Oracle Developer Release 6.

New Form Generator preferences in Oracle Designer Release 6.0

None.

Form Generator preferences with changed defaults in Oracle Designer Release 6.0

None

Form Generator preferences removed in Oracle Designer Release 6.0

The following Form Generator preferences are no longer supported in Oracle Designer Release 6.0.

Name of Removed Preference	Reason for Removal
FMNDST	Full screen menu functionality no longer supported by Form Builder.
MNUBGM	Full screen menu functionality no longer supported by Form Builder.
MNUBTL	Full screen menu functionality no longer supported by Form Builder.
MNUFTL	Full screen menu functionality no longer supported by Form Builder.
MNUPME	Full screen menu functionality no longer supported by Form Builder.
MNUSTL	Full screen menu functionality no longer supported by Form Builder.
MNUSTY	Full screen menu functionality no longer supported by Form Builder.

Note that in this release only, the above preferences will continue to appear on the Preference Palette. However, setting any of these preferences will have no effect.


Features added to Form Generator in Oracle Designer Release 2.1.2

Related Topics

Major new features in Oracle Designer Form Generator Release 2.1.2

Generation of blocks onto tab canvas pages

Generation of lookup items as poplists and text lists

Generation and design capture of multiple modules is now supported by the Design Editor's new batch processing tools.

Other new and improved Form Generator features in Oracle Designer Release 2.1.2

The width of a generated button item is determined by ITMBIF, regardless of whether the button is generated from an action item or from an unbound item with a Display Type of Button.

Absolute tab stops you set using GRPTAB/GRPUTT and BLKTAB/BLKUTT now apply to single line and multi-line item groups and rows respectively. In earlier versions, Form Generator only applied absolute tab stops where there were too many items to fit on one line.

You can now generate image items from unbound items.

During design capture, Form Generator takes into account the settings of ITMBIF and TXTSCA when setting the width of captured bound items and unbound items.

If OLBOLD is set to Yes (not recommended), Form Generator gives precedence to template objects before obsolete preference values when generating windows.

New Form Generator preferences in Oracle Designer Release 2.1.2

None.

Form Generator preferences with changed defaults in Oracle Designer Release 2.1.2

The default values of a number of Form Generator preferences from previous releases have changed:

Preference name	Default value in earlier releases	Default value in Oracle Designer R2.1.2
DELWRN	Yes	CASCADE
LWCFLN	No	UPPER

When upgrading from earlier releases, note that any of these preferences that was not explicitly set to its default value will be set to its new default value.

Form Generator preferences removed in Oracle Designer Release 2.1.2

None.


Features added to Form Generator in Designer/2000 Release 2.1.1

Related Topics

Major new features in Designer/2000 Form Generator Release 2.1.1

None.

Other new and improved Form Generator features in Designer/2000 Release 2.1.1

New maximum value of 9999 for the BLKSBW preference to enhance control of scroll bar widths.

Other changes to Form Generator functionality in Designer/2000 Release 2.1.1

None.

New Form Generator preferences in Designer/2000 Release 2.1.1

None.

Form Generator preferences with changed defaults in Designer/2000 Release 2.1.1

The default values of a number of Form Generator preferences from previous releases have changed:

Preference name	Default value in earlier releases	Default value in Designer/2000 R2.1.1
GRPTLP	INSIDE	ON DECORATION

When upgrading from earlier releases, note that any of these preferences that was not explicitly set to its default value will be set to its new default value.

Form Generator preferences removed in Designer/2000 Release 2.1.1

None.


Features added to Form Generator in Designer/2000 Release 2.1

Related Topics

Major new features in Designer/2000 Form Generator Release 2.1

Subclassing objects from object libraries during generation

Major enhancements to navigation code generation

Using application logic and Form Generator

Generation of prompts as properties of items, and more control over prompt splitting

Generation of native Form Builder tab canvases

Other new and improved Form Generator features in Designer/2000 Release 2.1

Indicating the current record in a block by Setting the Current Record Visual Attribute Group property and by Generating current record indicator items

Data block generation based on procedures, sub-queries and transactional triggers

Generating row LOVs

Generation of library modules attached to form modules

Design capture enhancements (previously called reverse engineering)

Calculated item generation (previously summary and derived items)

Button generation from Repository action items and unbound items

Mirror item generation from second and subsequent bound items

Multi-row item groups in multi-row blocks

Nested item groups

Generating generated forms again whilst preserving layout and modifications to application logic (replaces regeneration functionality of earlier releases)

The option of hard coded domain validation when generating combo boxes, LOVs of allowable values, poplists, and text lists using the Dynamic List property

New option of DEFAULT&SMARTBAR for the FMNDMA preference to include the default Form Builder menu and toolbar in generated forms

Enhanced support for the generation of Year 2000 compliant applications

Form Builder can be conveniently invoked to view generated modules using options in the Build Actions dialog after generation (for more information, refer to Displaying the Build Actions dialog box in the Design Editor help system)

New Form Generator terminology in Designer/2000 Release 2.1

If you have used Form Generator in previous releases of Designer/2000, you'll notice some changes in the terms you're familiar with. Below is a summary of those changes:

Release 1.x	Release 2.1
boilerplate graphic	graphic object
boilerplate text	graphic text
copy context	block context
derived item	formula item
detailed column usage	bound item
detailed table usage	module component table usage
Display Datatype property	Display Type property
Forms Generator	Form Generator
Implementation Item property	Template/Library Object property
Justification property	Alignment property
named preference set	preference set
Other flag	Enter FK via Descriptor property
Oracle Forms	Form Builder
page	content canvas
Page/Popup Width property	Canvas Width property
Page/Popup Height property	Canvas Height property
popup	stacked canvas
regeneration	generating generated forms again
reverse engineering	design capture
secondary usage	No longer required. Non-base table items are generated from unbound items. A bound item based on the same column as an earlier bound item is generated as a mirror item.
Select property	Query property
Soft LOV property	Dynamic List property
stacked item group (a generated set of stacked canvases accessed via a poplist as an alternative to native Form Builder tab canvases)	A Repository item group with the Stacked property set to Yes. In Designer/2000 Release 2.1 you can generate both native Form Builder tab canvases, and the alternative implementation using stacked canvases and a poplist
User Help Text property	User/Help Text property
New Form Generator preferences in Designer/2000 Release 2.1

There are a number of new Form Generator preferences in Designer/2000 Release 2.1. For more information, refer to New Form Generator preferences in Designer/2000 Release 2.1.

Form Generator preferences with changed defaults in Designer/2000 Release 2.1

The default values of a number of Form Generator preferences from previous releases have changed. For more information, refer to Form Generator preferences with changed defaults in Designer/2000 Release 2.1.

When upgrading from earlier releases, note that any of these preferences that was not explicitly set to its default value will be set to its new default value.

Form Generator preferences removed in Designer/2000 Release 2.1

A number of Form Generator preferences from previous releases have been removed in Designer/2000 Release 2.1. For more information, refer to Form Generator preferences removed in Designer/2000 Release 2.1.

Obsolete Form Generator preferences in Designer/2000 Release 2.1

Form Generator support for object libraries in Designer/2000 Release 2.1 has made a number of preferences obsolete. We strongly recommend you do not use these preferences. These preferences are only supported in Release 2.1 for backwards compatibility, and will be removed in future releases. For more information, refer to Object libraries and earlier versions of Form Generator. For a list of obsolete preferences, refer to Alphabetical list of obsolete preferences and the equivalent object library properties.

Form Generator visual attributes removed in Designer/2000 Release 2.1

Name of Removed Visual Attribute	Reason for Removal
CG$SINGLE_AREA	No longer required
Changes to the Form Generator standard templates shipped with Designer/2000 Release 2.1

The appsgen.fmb standard template is not shipped with Designer/2000 Release 2.1.

In Release 2.1, template names that previously began with OFG4 now start with OFG (e.g. ofg4pc1t.fmb is now called ofgpc1t.fmb). Note that for backward compatibility only, templates with the original (i.e. OFG4) names continue to be shipped. Although these templates have been upgraded to the latest Oracle Developer Form Builder release, we recommend you do not use them because they might not support new Form Generator functionality.


Menu generation

Related Topics

About Oracle Forms menu modules

About generated menu modules

Prerequisites for menu generation

Defining module networks for menu generation

Generating menu modules

Generated menu module properties

Generated menu properties

Generated menu item properties

How Form Generator stores and retrieves generated menu modules

Setting a menu item's Command Type property

Setting a menu item's Menu Item Code property

Including standard menu items in generated menus

Assigning database roles to menus and menu items

Generating menu substitution parameters

Merging generated menus with template menus

Deleting intermediate menus

Generating separator items

Generating menu access keys


About Oracle Forms menu modules

Related Topics

An Oracle Forms menu module is a collection of menus (a main menu object and any number of submenu objects) and menu item commands that together make up an application menu.

Oracle Forms applications can run with one of the following:

•	A default form menu and default menu toolbar supplied with Oracle Forms.

•	A custom menu, defined as a separate menu module and attached to the form. A custom menu can either be constructed using Form Builder, or generated from repository information using Form Generator.

•	No menu at all

Note:	A menu module is part of an Oracle Forms application, and cannot be run on its own.

Hierarchical structure

Oracle Forms menu modules typically have a hierarchical or ‘tree’ structure, with a main menu and one or more submenus. Each individual menu in a menu module displays one or more menu items. A menu item is associated with a command that either calls a form or invokes another menu. When an operator selects a menu item, Oracle Forms executes the command assigned to that item.

Multiple menus and forms

At run time, an Oracle Forms application can have only one menu active at a time; this can be either the default Oracle Forms menu or a custom menu. In an application that has several forms, more than one form module can share a menu, or each form can have its own menu displayed when it becomes the active form.

Menu security

Oracle Forms applications can be run with menu security enforced or not enforced. When Oracle Forms enforces menu security, it does so using database roles. A number of roles can be assigned to a menu module; each assigned role can then be granted access to individual menu items within the menu module.

Parameters

Substitution parameters are interactive variables whose values can be referenced in menu item command statements. Values for parameters can be set automatically, or entered by operators at runtime.

Menu roles

In versions of Oracle Forms prior to Oracle Forms 5.0, you could define Oracle Forms menu roles to control access to menus and items in a menu module. However, in Oracle Forms 5.0 onwards, you use database roles to implement menu security and menu roles are available for backward-compatibility only.

For this reason and because menu roles will not be supported in the next major release of Oracle Forms, Form Generator's ability to generate and update menu roles has been removed in Oracle Designer release 2 onwards.


About generated menu modules

Related Topics

Form Generator enables you to generate Oracle Forms menu modules from information held in the repository. The generated menu module is a collection of related menus, menu items and submenus. The structure of the menu module reflects the relationships defined between repository modules in a module network. You can generate an Oracle Forms form module and an associated menu module at the same time, or you can specify a generated menu module to attach to forms you generate separately.

Using Form Generator, you can generate Oracle Forms menu modules from repository modules of language Oracle Forms and of type Menu or type Default. You can generate an Oracle Forms menu module on its own, or at the same time as generating an Oracle Forms form module.

You can also limit the scope of a generated menu module by generating a menu module for a subsection of the module network below a specified start module

During menu module generation, Form Generator analyzes the repository module network and creates:

•	a menu for the start module

•	menu items on the generated menu from modules called by the first module

•	further menus for called modules of type MENU (note that Form Generator does not create menus from called modules of type Default other than the start module)

Any modules called by this module appear on the generated menu as menu items. For any called module of language Oracle Forms and of type Menu, Form Generator generates another menu and adds items from the modules it calls. Note that Form Generator never creates a menu from modules of language Oracle Forms and of type Default lower down the hierarchy.

In addition to menu items based on information held in the repository, Form Generator enables you to:

•	include standard menu items in every menu

•	merge menus derived from a template menu module into the generated menu module (the template menu items retain the properties defined for them in the template menu module)

Generated menus and the default Oracle Forms menu

Instead of attaching generated menus to the forms you generate, you can use the FMNDMA preference to specify that generated forms use the default Oracle Forms menu (consisting of standard commands that correspond to function keys) or any other menu module you have built by hand.


Prerequisites for menu generation

Related Topics

Before you can generate an Oracle Forms menu module, a module network must have been defined in the repository. For more information about module networks, refer to Defining module networks for menu generation.

Once a module network exists, there are several major decisions to make before generating a menu module:

•	decide the module in the network from which you want to start the generation of a menu hierarchy. This module (known as the start module) can be:

−	at the top of the menu hierarchy or at some point lower in the hierarchy

−	of type Menu or type Default

•	decide whether to generate a form module and associated menu module:

−	at the same time

−	separately

•	decide whether to include menu items from a template menu module

Other generation options to consider include:

•	Setting a menu item's Command Type property

•	Setting a menu item's Menu Item Code property

•	Including standard menu items in generated menus

•	Assigning database roles to menus and menu items

•	Generating menu substitution parameters

•	Merging generated menus with template menus

•	Deleting intermediate menus

•	Generating separator items

•	Generating menu access keys


Defining module networks for menu generation

Related Topics

About modules and module networks

Repository modules typically implement the lowest level functions carried out by a business (sometimes called elementary business functions).

One function is likely to be dependent on other functions in an application. Functions and the dependencies and relationships between them are represented as a function hierarchy. For example, the Despatch Product function cannot take place until the Receive Order from a Customer function has been completed.

Just as a function hierarchy represents the dependencies and relationships between functions, so a module network describes dependencies and relationships between modules. A module network specifies:

•	the modules called by a particular module

•	the modules that call a particular module

For more information, refer to Module Networks in the Design Editor help file.

Defining module networks

There are several different ways to create module networks. One of the most efficient methods is to use the Module Network Viewer (described in Adding new modules to a module network in the Design Editor help file).

For information about other ways to create module networks, refer to Creating module networks for client applications in the Design Editor help file.


Generating menu modules

Related Topics

To generate an Oracle Forms menu module from a repository module of language Oracle Forms and type Menu or type Default:

1.	With a repository module of type Menu or of type Default selected, display the Generate Form dialog box by selecting Generate→Generate Module from the Design Editor.

2.	Make sure the Generate Option dropdown list is set to Menu.

For more information about the other settings, refer to the Generate Form dialog box.

3.	Display the Form Generator Options dialog box (either by selecting the Options button on the Generate Form dialog box or by selecting Options→Generator Options→Forms) and set generation options as necessary.

For more information about the available options, refer to Form Generator Options dialog box.

4.	When you have specified the options you require, click the Start button on the Generate Form dialog box to generate an Oracle Forms menu module from the repository module definition.

The Message Window appears, displaying warnings and errors output by Form Generator.

During generation, Form Generator creates a binary menu definition. Depending on the options you have set on the Form Generator Options dialog box, the binary menu definition is stored either in the filesystem (as a file with the suffix .MMB) or in a database. Again depending on the options you specify, Form Generator can:

•	upload the generated .MMB file to the repository

•	compile the binary menu definition and store it in the filesystem as a file with the suffix .MMX

You can use the Message Window to correct errors detected during generation. For more information, refer to Locating and fixing errors after generation in the Design Editor help system.

5.	When generation is complete, you can use the Build Actions dialog to view the generated module using Form Builder (for more information, refer to Displaying the Build Actions dialog box in the Design Editor help system).

To generate an Oracle Forms form module and an associated menu module at the same time:

1.	With a repository module of type Default selected, display the Generate Form dialog box by selecting Generate→Generate Module from the Design Editor.

2.	Make sure the Generate Option dropdown list is set to Form.

3.	Check the Generate Associated Menus checkbox.

For more information about the other settings, refer to the Generate Form dialog box.

4.	Display the Form Generator Options dialog box (either by selecting the Options button on the Generate Form dialog box or by selecting Options→Generator Options→Forms) and set generation options as necessary.

For more information about the available options, refer to Form Generator Options dialog box.

5.	When you have specified the options you require, click the Start button on the Generate Form dialog box to generate an Oracle Forms form module and the associated menu module from the repository module definitions.

The Message Window appears, displaying warnings and errors output by Form Generator.

During generation, Form Generator creates a binary menu definition. Depending on the options you have set on the Form Generator Options dialog box, the binary menu definition is stored either in the filesystem (as a file with the suffix .MMB) or in a database. Again depending on the options you specify, Form Generator can:

•	upload the generated .MMB file to the repository

•	compile the binary menu definition and store it in the filesystem as a file with the suffix .MMX

You can use the Message Window to correct errors detected during generation. For more information, refer to Locating and fixing errors after generation in the Design Editor help system.

6.	When generation is complete, you can use the Build Actions dialog to view the generated modules using Form Builder and/or to run the form (for more information, refer to Displaying the Build Actions dialog box in the Design Editor help system).

To generate an Oracle Forms form module and an associated menu module separately:

1.	Generate the menu module.

2.	Specify the location of a menu module associated with the form you want to generate (either the current database or the file system) using the FMNDUF preference.

3.	Specify the name of the menu module associated with the form using the FMNDMA and FMNDMN preferences.

4.	Generate the Oracle Forms form module as normal (refer to Generating form modules for more information).

Note: The menu module you associate with the form must exist before you can run the generated form.

To generate an Oracle Forms menu module for a subsection of the module network:

1.	Select the repository module in the module network below which you want to generate the Oracle Forms menu module.

The module you select is referred to as the start module.

2.	Generate the Oracle Forms menu module as described earlier in this topic.


Generated menu module properties

Related Topics

Menu Module Property	Derived from or set to:	Notes and Related Topics
Name	Implementation Name (if set) or Short Name property of repository module from which menu module is being generated	The repository module's Implementation Name (if set) or Short Name property must conform to Oracle Forms naming requirements, and in addition must not be a PL/SQL reserved word.  When generating a form and associated menu, Form Generator uses the properties of the module of type Default (i.e. not the properties of the module of type Menu).
Subclass Information	Subclass Information property of template menu module
Comments	Purpose property of repository module
Functional
Main Menu	Short Name property of repository module
Menu Directory	Menu Executable from Binary - Destination field on Compile tab of Form Generator Options dialog (if set)
Menu Filename	Implementation Name (if set) or Short Name property of repository module from which menu module is being generated	Use LWCFLN to specify the case of the filename.
Startup Code	Not set
Share Library with Form	Share Library with Form property of template menu module
Menu Security
Use Security	MNUEUS	For more information, refer to Assigning database roles to menus and menu items.
Module Roles	All roles assigned to individual menu items.	Includes default roles and any roles assigned to items derived from a template menu module. For more information, refer to Assigning database roles to menus and menu items.


Generated menu properties

Related Topics

Menu Property	Derived from or set to:	Notes and Related Topics
Name	Short Name property of called repository module	The repository module's Short Name property must conform to Oracle Forms naming requirements, and in addition must not be a PL/SQL reserved word.
Subclass Information	Not set
Comments	Purpose property of repository module
Functional
Tear-Off Menu	MNUTOF	Only available in some graphical environments (e.g. Motif supports this functionality, but MS Windows does not).


Generated menu item properties

Related Topics

Explicit properties

Menu Item Property	Derived from or set to:	Notes and Related Topics
Name	Short Title property (if set) or Short Name property of called repository module	Form Generator replaces spaces and ampersands with underscores. Where necessary to enforce uniqueness, Form Generator appends numbers to the name.
Subclass Information	Not set
Comments	Purpose property of repository module
Functional
Enabled	Yes
Label	Short Title property (if set) or Short Name property of called repository module	Use MNUULC to specify how menu access keys are identified.
Menu Item Type	Either Plain or Separator	Form Generator creates menu items of type Plain, unless the Language property of the repository module on which a generated menu item is based is null (in which case Form Generator creates a menu item of type Separator).  For more information about separator items, refer to Generating separator items
Magic Item	Not used.
Menu Item Radio Group	Not used.
Command Type	One of Null, Menu, or PL/SQL	For more information about how Form Generator derives the command type, refer to Setting a menu item's Command Type property
Menu Item Code	Repository module's Command Line property or one of a number of preferences	For more information about how Form Generator derives the code that executes when this menu item is selected, refer to Setting a menu item's Menu Item Code property
Keyboard Accelerator	Not set.
Visible in Menu	Set to Yes
Visible in Horizontal Menu Toolbar	Not set.
Visible in Vertical Menu Toolbar	Not set.
Icon in Menu	Not set.
Icon Filename	Not set
Menu Security
Item Roles	Database roles with access to the called repository module	Oracle Designer Server Generator can use information held in the repository relating to module access to create suitable database roles to access menu items generated by Form Generator. For more information, refer to Assigning database roles to menus and menu items
Display without Privilege	MNUDNP	Controls whether items users cannot access are displayed grayed out or omitted.
Physical
Visible	Yes
Font & Color	not set
Help
Hint	Top Title property (if set) or Implementation Name property (if set) or Short Name property of called repository module	This property specifies the text to appear in the message line. If using the Implementation Name property or the Short Name property, Form Generator capitalizes initial letters.
Character Mode
Help Description	User/Help Text property of called repository module	If the User/Help Text property is not set, this property is set to the string: 'No help available for this option'
Implicit properties

Menu Item Property	Derived from or set to:	Notes and Related Topics
Position of menu items in menu	Position of repository modules in the module network	Use MNUSGA to specify whether template menu items appear before or after generated menu items in the top level menu.


How Form Generator stores and retrieves generated menu modules

Related Topics

When Form Generator generates a menu module, it produces two outputs:

•	a binary menu module definition, as a file with file extension .MMB

•	(optionally) an executable runfile, with the file extension .MMX

Note that a repository module's Source Path and Runtime Path properties do not determine where Form Generator generates menu module files.

Menu module definition storage

Form Generator stores the menu module definition in, and retrieves it from, the location specified by the Generated Menu Location option on the Menu Options tab of the Form Generator Options dialog box.

The location is one of the following:

•	an operating system file, with the file extension .MMB (if you select this option, you can upload generated files to the repository)

•	the database on which the repository resides

•	a different database (use the Connect String field on the  Menu Options tab, to specify the database access string; use the Commands - Insert field to specify the command for inserting the menu module into the database)

To save the generated menu module definition in the repository, check the Upload generated files to repository checkbox on the Menu Options tab of the Form Generator Options dialog box. For more information about saving generated files in the repository, refer to About storing generated files in the repository after generation

Executable runfile creation and storage

The Menu Executable From Binary Command option on the Compile tab of the Forms Generator Options dialog box specifies the command Form Generator uses to compile the menu module definition into an executable runfile.

By default, Form Generator creates an executable runfile against the database on which the repository resides. To generate the executable runfile against a different database, use the Menu Executable From Binary - Connect String field on the Compile tab to specify the appropriate connect string.

Form Generator always writes the executable runfile to an operating system file in the directory specified by the Menu Executable From Binary - Destination field on the Compile tab.


Setting a menu item's Command Type property

Related Topics

The Command Type property of every Oracle Forms menu item is set to one of the following:

NULL	The default command type. Specifies that the menu item does not issue a command. (The Null command type is required for separator menu items.)
MENU	Invoke a sub-menu
PL/SQL	Execute PL/SQL
PLUS	not generated by Form Generator
Form	not generated by Form Generator
Macro	not generated by Form Generator

Form Generator determines the Command Type property of generated menu items based on the module definition held in the repository and the setting of various preferences.

For more information about the interaction between the generated Command Type and Menu Item Code properties, refer to Setting a menu item's Menu Item Code property.


Setting a menu item's Menu Item Code property

Related Topics

What happens when a user selects an Oracle Forms menu item is determined by the menu item’s Menu Item Code property.

The generation of a menu item's Menu Item Code property depends on:

-	the Language property of the repository module from which the menu item is generated

-	the Type property of the repository module from which the menu item is generated

-	the preference MNUUCL, which determines whether to create the menu item's Menu Item Code property from the Command Line property of the repository module from which menu item is generated (if it is set), from the Command Line property of the language (it it is set), or from the appropriate default preference (one of MNUDFC, MNUDGC, MNUDSC, MNUDHC or, for Oracle Designer 6i only, MNUDRC,)

-	for Oracle9i Designer, the following preferences:

RPTSVR	Report server
RPTPTH	Report path
RPTDTY	Report destination type
RPTDNM	Report destination name
RPTFMT	Report destination format
RPTSUF	Report file suffix
See Report invocation preferences.

The relationship between these factors is shown below:

Language property of repository module from which menu item is generated	Type property of repository module from which menu item is generated	Generated menu item's Menu Item Type property	Generated menu item's Command Type property	Generated menu item's Menu Item Code property
Oracle Forms	Menu	Plain	Menu	n/a
Oracle Forms	Default	Plain	PL/SQL	Repository module's Command Line property, language's Command Line property, or MNUDFC
Oracle Reports	Default	Plain	PL/SQL	Repository module's Command Line property, language's Command Line property, or MNUDRC For Oracle9i Designer, see Report invocation preferences.
Oracle Developer Graphics	Default	Plain	PL/SQL	Repository module's Command Line property, language's Command Line property, or MNUDGC
SQL SQL*Plus (and PL/SQL definitions)	Default	Plain	PL/SQL	Repository module's Command Line property, language's Command Line property, or MNUDSC
any other language (e.g. COBOL)	-	Plain	PL/SQL	Repository module's Command Line property, language's Command Line property, or MNUDHC
no language (i.e. Language property set to Null)	-	Separator	n/a	n/a
Resolving substitution strings in repository modules' Command Line properties

A repository module's Command Line property can include a number of substitution strings, each placed inside angle brackets. The table below shows how Form Generator resolves these substitution strings:

Substitution string:	What Form Generator does:
<MODULE>	Form Generator replaces this string with the value of the repository module's Implementation Name (if set) or Short Name property.
<CMDLINE>	Form Generator replaces this string with the value of the repository module's Command Line property (if set), or the language's Command Line property (if set), or the value of the appropriate default preference.
one or more of the Oracle Forms built-in menu substitution parameters (<UN>, <PW>, <SO>, <TT>, <AD>, <LN>)	Form Generator: • removes the angle brackets • inserts an ampersand (&) in front of the two character built-in menu substitution parameter name
one or more substitution strings entered for repository module arguments	To find out how Form Generator handles these substitution strings, refer to Generating menu substitution parameters.

For example, assume the Command Line property of a repository module called Orders is set to:

HOST ('ifrun60.exe <module> userid=<UN>/<PW>');

Form Generator uses this information to set the Menu Item Code property of a menu item generated to call the Orders module as follows:

HOST ('ifrun60.exe ORDERS &UN/&PW');

Notes

To ensure portability of the applications you generate, Form Generator ignores the Runtime Path property of the called repository module.

Note that where the menu item is itself a valid menu, Form Generator sets the generated menu item's Menu Item Code property to call that menu and ignores the command line defined in the repository.

If a menu item is generated for a module that has its Language property set to Null, Form Generator sets the Menu Item Type property to Separator. For more information, refer to Generating separator items.


Including standard menu items in generated menus

Related Topics

In addition to generating menu items from modules defined in the repository, Form Generator can also include one or more of the following standard menu items on the generated menus you specify:

•	Show Keys

•	Exit

All users that have access to a generated menu module have access to any standard menu items defined for it.

For each standard menu item included on a generated menu, Form Generator sets the menu item's Menu Item Code property to call the appropriate PL/SQL procedure. These procedures are held in an Oracle Forms library module shipped with Form Generator called ofgmnl.pll. If Form Generator generates a call to one of these procedures, it also attaches the library to the generated menu module.

The following table shows the PL/SQL procedure called by each standard menu item, the preferences to set to include standard menu items on generated menus, and which menus will contain those items.

Standard menu item	Menu item calls this PL/SQL procedure	Preference	Preference Settings
Show Keys	CG$_SHOW_KEYS	MNUSKY	TOP (default) - appears on top level menu only ALL - appears on all menus NONE - appears on none of the menus
Exit	CG$_EXIT	MNUEXI	TOP (default) - appears on top level menu only ALL - appears on all menus NONE - appears on none of the menus
The information used by Form Generator to create standard menu items is shown in the table below:

Oracle Forms Menu Item Property	Description of Property	Set to
-	Position of item in menu	Standard menu options are sequenced after all others in the menu. Show Keys always precedes Exit.
-	Assigned roles	All roles assigned to the generated menu module.
Label	Menu item name	‘Show Keys’ or ‘Exit’ as appropriate. Unique letter identification is performed only if the MNUULC preference is set.
Hint	Menu item hint text	‘Show Keys’ or ‘Exit’ as appropriate.
Display without Privilege	Appearance of menu item if user cannot select it	Yes
Help Description	Help text associated with menu item	No help text is provided.
Command Type	Command type of menu item	PL/SQL
Menu Item Code	Command associated with menu item	Appropriate PL/SQL procedure call.
Menu Item Type	Menu item type	Plain
-		All roles assigned to the generated menu module.


Assigning database roles to menus and menu items

Related Topics

Access to Oracle Forms menus

Oracle Forms either enforces menu security to control the menus and menu items that users can access, or allows unrestricted access to all menus and menu items.

If menu security is enforced, the menus and menu items in an Oracle Forms menu module can only be selected by users with access to those menus or menu items through a database role.

A menu module's Use Security property determines whether menu security is enforced.

Access to generated menus

During menu generation, you can use the roles that have access to a repository module to determine the database roles that are assigned to a menu item generated to call that module.

Each repository module can be accessed by:

•	one or more users

•	one or more roles

•	all users, that is, public access to the module has been specified

Form Generator always attempts to assign a database role to a menu item where the repository module on which the menu item is based is accessed by a repository role.  Form Generator assigns all the database roles assigned to individual menu items to the generated menu module as a whole, including any roles assigned to items derived from a template menu module.

Note that you can use Server Generator to generate database roles from repository role definitions. For more information, refer to About generated roles in the Server Generator help system.

To assign roles to generated menu items and menu modules:

1.	Grant access to the repository module to the required repository roles.

2.	Set MNUSEC to Yes.

During development when you want to generate and test menu modules quickly, you will probably find it more convenient not to assign roles to generated menu items and menu modules.

Note that to restrict access to generated menu items to the assigned repository roles, the generated menu module's Use Security property must be set to Yes.

To set the generated menu module's Use Security property to Yes:

•	Set MNUEUS to Yes.

During development when you want to generate and test menu modules quickly, you will probably find it more convenient if the menu module's Use Security property is set to No.

To assign all roles assigned to a generated menu module as a whole to a generated menu item:

•	Assign the PUBLIC standard repository role to the repository module

Deriving default roles

You might generate menu items from repository modules to which no repository users were granted access. To enable users to access the menu item at runtime, you can use the MNUDRN preference to assign a default database role to the generated menu item and generated menu module. Note that if you use MNUDRN, you must:

•	create a database role on the server with the same name as that specified by MNUDRN

•	grant the database role to database users

Database role access and standard menu items

If standard menu items are included in a generated menu, Form Generator assigns all the roles that are assigned to the menu module to the standard menu items.

Database role access and template menu items

Database roles assigned to menu items in a template menu module are assigned to those items in the generated menu module. If items in the template menu module are not assigned database roles, use the MNUADR preference to specify whether to assign all the roles assigned to the generated menu module to those items.


Generating menu substitution parameters

Related Topics

About Oracle Forms menu substitution parameters

Important note.  Menu substitution parameters are not supported by Oracle Forms 9i. Because of this, Oracle Designer 9i is unable to support generation of user-defined menu substitution parameters. From Oracle Designer 9i onwards, any user-defined menu parameter (e.g. <XX>) will simply apear in the menu's command line (e.g. :XX), with no run-time support. A warning will be issued by the menu generator. We recommend that you replace the use of these parameters with other code/methods for achieving the same results.

Oracle Forms menu substitution parameters are two-letter variables that can be referenced in a menu item's Menu Item Code property. Oracle Forms provides six built-in menu substitution parameters and you can also define your own substitution parameters.

The value of a menu substitution parameter can be set programmatically, or end users can interactively provide a value at runtime. When an end user selects a menu item with a command that includes a substitution parameter, Oracle Forms displays the Enter Parameter Values dialog and prompts the end user to enter a value. Oracle Forms then executes the menu command using the value provided by the end user.

About Oracle Designer module arguments

Oracle Designer module arguments are repository definitions of parameters passed between modules. A module argument definition describes a parameter the module expects to receive when it is called.

A module argument definition includes a Substitution String property. If this property is set, its value can be included in repository modules' Command Line properties between angled brackets (e.g. <emp_name>).

Generating menu substitution parameters from repository module arguments

When generating a menu item for a repository module, Form Generator creates an Oracle Forms menu substitution parameter from each argument defined for the module.

When generating the menu item's Menu Item Code property, Form Generator replaces any substitution strings in the repository module's Command Line property with the names of parameters generated for repository arguments. The names of the generated menu substitution parameters are preceded with an ampersand (&). If a generated menu item's Menu Item Code property contains a generated menu substitution parameter, end users are prompted to enter a value for the parameter at runtime.

Deriving the name of generated menu substitution parameters

How Form Generator derives the name of the generated substitution parameter depends on the setting of the MNUUPS preference and the suitability as an Oracle Forms parameter name of the Substitution String property (if set) or Name property of the repository module argument.

Oracle Forms substitution parameter names must:

•	not be more than two characters

•	not be one of the Oracle Forms built-in substitution parameters
(UN, PW, SO, TT, AD,  LN)

•	be unique within a menu module

Since no such restrictions are imposed on a repository argument's Substitution String and Name properties, these might be unsuitable as the name for a generated menu substitution parameter.

If MNUUPS is set to Yes, or if the Substitution String property (if set) or Name property of a repository argument is unsuitable, Form Generator creates a name for the generated menu substitution parameter that:

•	is unique

•	consists of a letter followed by a numeral

•	has allowable combinations from A0 - Z9

Generated Menu Substitution Parameter Properties

Parameter Property	Derived from or set to:	Notes and Related Topics
Name	Repository argument's Substitution string property	If the Substitution String property is not set, Form Generator uses the repository argument's Name property.
Subclass Information	Not set
Comments	Not set
Functional
Label	Prompt property of repository argument	This is what prompts the user to supply a value for the parameter.
Case Restriction	If repository argument is recorded for a bound item, set to the repository column definition's Uppercase property.	If the repository argument is not recorded for a bound item, this property is set to Mixed.
Conceal data	MNUPSC	Specifies whether the parameter is not displayed as the user enters it.
Associated menus	Not set
Data
Maximum length	Repository argument's Length property	Maximum number of characters the user can enter for the parameter.
Fixed length	MNUPFL	Specifies whether the parameter must have exactly the number of characters specified by the Maximum Length property.
Menu parameter initial value	Repository argument's Default property
Required	MNUPRQ	Specifies whether a value is mandatory for the parameter.
Help
Hint	Comment property of repository argument	What appears on the message line when the user is prompted to give a value to a substitution parameter.


Merging generated menus with template menus

Related Topics

In addition to menu items derived from modules in the repository and from standard menu items, when you generate a menu module you can also merge it with menus and menu items from template menu modules.

You can either generate the template menu module or create it manually using Form Builder.

Items in a generated menu module derived from a template menu module are referred to as template menu items. You can specify whether template menu items appear before or after generated menu items on the generated top level menu. Database roles assigned to items in a template menu module are assigned to those template menu items in the generated menu module.

To generate a menu module and merge it with a template menu module

1.	Create the template menu module.

For more information, refer to Creating template menu modules.

2.	Specify the template menu module.

For more information, refer to Specifying template menu modules.

3.	Specify the location of the template menu module.

For more information, refer to Specifying the location of template menu modules.

4.	Generate the menu module.


Deleting intermediate menus

Related Topics

About intermediate menus

Normally, modules of type DEFAULT call directly modules on which generated menu items are based.

However, the situation might exist where a module of type DEFAULT first calls a single module of type MENU, which in turn calls the modules on which generated menu items are based. If Form Generator generates a menu module from this module network, the result is an unnecessary ‘intermediate’ menu.

The intermediate menu contains a single generated menu item (in addition to any standard and template menu items). To select every other generated menu item in the menu hierarchy, users will always have to select the item on the intermediate menu.

You can improve the usability of the menu hierarchy by deleting an intermediate menu if one is generated.

To instruct Form Generator to delete an intermediate menu:

•	Set the MNUDIM preference to Y.


Generating separator items

Related Topics

About separator items

A separator menu item is displayed as a horizontal line (or other platform-specific visual element), and is useful for visually grouping related items on the same menu.

Users of the generated menu cannot select a separator menu item.

To generate a separator item:

1.	Create a new module in the repository.  How

2.	Set the repository module's Language property to Null.

3.	Include the module in the location in the module network where you want a separator item to appear.

Hint: To include separator items on several menus in a menu module, define one repository module with its Language property set to Null and include this in the module network wherever you want a separator item.


Generating menu access keys

Related Topics

About Oracle Forms menu access keys

Menu access keys provide end users with keyboard shortcuts for selecting menu items (without using the mouse). Applications with keyboard shortcuts offer both the usability of a menu-driven interface and the efficiency of keyboard commands.

A menu access key is indicated by an underlined character in a menu item's label. For example, the letter S might be the menu access key for the Save menu item, and therefore appears underlined at runtime. To invoke the Save command, an end user either could use the mouse, or could press a keystroke combination such as Alt-S (different GUIs use different command keys to activate menu access keys).

Native Oracle Forms functionality to create menu access keys

By default, Oracle Forms underlines the first upper case letter in a menu item's label and makes it the menu access key for that item. If there are no upper-case letters, the first character in the label is underlined and made the menu access key.

However, you can override the default menu access key and explicitly create your own by placing an ampersand (&) to the left of the desired character in the menu item's label. The ampersand will not appear at runtime, and the character you select as the menu access key can be either upper- or lower-case

Note: To include a literal "&" in a menu item label, enter two consecutive ampersands (&&).

Generating menu access keys

You can identify the letter in a generated menu item to use as the menu access key for that item in one of two ways:

•	using native Oracle Forms functionality to underline the first upper-case letter, the first character, or the character preceded by an ampersand in the generated menu item's label

•	using Form Generator functionality to identify a unique letter in the label of each item on a generated menu

To use native Oracle Forms functionality to identify menu access keys:

1.	Set MNUULC to No.

2.	If you want to override the default menu access key, place an ampersand to the left of the character you want as the menu access key in the repository property from which Form Generator derives the menu item label (i.e. the module's Short Title property (if set) or Short Name property).

To use Form Generator functionality to identify menu access keys:

1.	Set MNUULC to Yes.

Form Generator underlines a unique letter in each menu item label and makes this letter the menu access key. The underlined letter will be unique among the underlined letters in all items on the menu. If Form Generator cannot identify a unique letter, the first letter of the item label is underlined.


Using templates for menu generation

Related Topics

About template menu modules

Creating template menu modules

Specifying template menu modules

Specifying the location of template menu modules

Standard template menu modules


About template menu modules

Related Topics

What is a template menu module?

A template menu module is an existing menu module that Form Generator uses during the generation process. Template menu modules can be part of your strategy to ensure a consistent look and feel for generated applications created at different times and by different members of a development team.

Typically, you use a template menu module to define menu items (and associated code) that you want to appear in several generated menu modules.


Creating template menu modules

Related Topics

To create a template menu module:

1.	Create a new menu module in one of the following ways:

•	use Form Builder to create a menu module manually

•	use Form Builder to copy the ofgmnut.mmb standard template menu module shipped with Form Generator and modify it as necessary (the ofgmnut module contains items, and associated PL/SQL procedures, very similar to the Oracle Forms default form menu)

2.	Add menus and menu items to the template menu module that you want to appear in generated menus.

3.	Save the template menu module.

To find out how to specify Form Generator is to use the template menu you have created, refer to Specifying template menu modules.


Specifying template menu modules

Related Topics

To specify the template menu module Form Generator is to use during menu generation:

1.	Use the Template Name field on the Generate Form dialog to specify the name of the template menu module (in the format my_menu.mmb) to use during generation.

The default value in this field is the module currently specified by STMMMB.

If you change the name in the field, the name you enter is used instead of STMMMB. To restore the entry in the Template Name field to the current value of STMMMB, click the Reset button.

If the template menu module is stored as a file in the filesystem, you can specify a path in the Template Name field. If you do not specify a path to locate the file in the filesystem, use the Dependencies tab of the Form Generator Options dialog box to specify a path for the template.

If the template menu module is stored as a file in the repository, Form Generator ignores any path specified in the Template Name field or by STMMMB.

2.	Use the Dependencies tab of the Form Generator Options dialog box to specify whether the template menu module is a file in the filesystem or database, or a file in the repository.

For more information about how to specify the location of the template menu module, refer to Specifying the location of template menu modules.

3.	Use the MNUSGA preference to specify whether template menu items appear before or after generated menu items on the generated top level menu.

4.	If items in the template menu module are not assigned database roles, use the MNUADR preference to specify whether to assign all roles available to the generated menu module to template menu items.


Specifying the location of template menu modules

Related Topics

The way to specify the location of the template menu module depends on how and where the menu module is stored.

If the template menu module is stored as a file in the repository:

1.	On the Dependencies tab of the Form Generator Options dialog box, select the Repository option.

2.	In the Repository Folder field on the Dependencies tab of the Form Generator Options dialog box, specify the repository folders to search for the template menu module.

Note that if the template menu module is stored as a file in the repository, Form Generator ignores any path specified in the Template Name field on the Generate Form dialog or by STMMMB.

If the template menu module is stored as a file in the filesystem:

1.	On the Dependencies tab of the Form Generator Options dialog box, select the File or Database option.

2.	On the Standards tab of the Form Generator Options dialog box, set Menu Template Location to File.

3.	If the template menu module is not in the current working directory, specify the location of the template menu in one of the following ways:

•	Include the full path to the template menu in the Template Name field on the Generate Form dialog box.

•	On the Standards tab of the Form Generator Options dialog box, either type a path in the Path field (use a semi-colon to separate it from any existing entries), or use the Browse button to add a path.

If you do not specify a path in the Template Name field or the template menu is not in the path you specify in the field, Form Generator first searches for the specified template menu in the current working directory. If the template menu is not in the current working directory, Form Generator searches in the locations specified in the Path field (working from left to right) until it finds the specified template menu.

If the template menu module is stored on the database on which the repository is installed:

1.	On the Dependencies tab of the Form Generator Options dialog box, select the File or Database option.

2.	On the Standards tab of the Form Generator Options dialog box, set the Menu Template Location to Local Database.

If the template menu module is stored on a database other than the database on which the repository is installed:

1.	On the Dependencies tab of the Form Generator Options dialog box, select the File or Database option.

2.	On the Standards tab of the Form Generator Options dialog box, set the Menu Template Location to Other Database.

3.	Specify a command to extract the template menu module from the database in the Command field.

4.	Specify the full connect string (in the format username/password@database) in the Connect String field.

Notes

If the template menu module is held on a database and the current repository user does not own the module, set STMOWN to specify the owner.

If the template menu module references database objects and these objects are used during generation, they must be stored in the current database (i.e. the database containing the current repository user).


Standard template menu modules

Related Topics

A standard template menu module called ofgmnut.mmb is shipped with Form Generator. This template menu module contains items, and associated PL/SQL procedures, very similar to the Oracle Forms default form menu.

Use this template menu module when if you want to include items similar to those in the Oracle Forms default form menu in menu modules you generate.


Change history column support

Related Topics

About change history columns

When you define a table in the repository, you can define columns in the table to record the following operations performed on rows in the table.

•	date on which the record was created

•	date on which the record was modified

•	user that created the record

•	user that modified the record

Any generated items based on change history columns are made non-enterable.

Change history columns can be populated in the following ways:

•	 (recommended) by means of database triggers on the server, as generated by Server Generator

•	by means of code solely in the client application

For information about how to generate change history columns, refer to Generating change history columns in the Server Generator help system.

What code does Form Generator create when a change history column's Server Derived property is set to No?

When a change history column's Server Derived property is set to No, the column is to be populated by code in client applications.

When generating a form from a repository module that permits Insert or Update operations on a table containing such a change history column:

•	Form Generator adds code to PRE-INSERT and PRE-UPDATE triggers to populate items based on change history columns

•	if the module does not have a bound item based on a change history column but does permit Insert or Update operations on the table that contains it, Form Generator creates a non-displayed item based on the change history column

Note: If default values other than SYSDATE are defined for items generated from Date Created and Date Modified change history columns, Form Generator issues a warning, removes the default and adds code to populate the item with the value of SYSDATE.


Calling user exits

About the Oracle Forms user exit interface

The Oracle Forms user exit interface enables Oracle Forms applications to call foreign functions written in programming languages such as COBOL or C. Typically, the foreign functions perform tasks outside the scope of, but related to, the Oracle Forms application. Each foreign function is called by a specific named user exit.

User exits and generated forms

Form Generator can include a call to a named user exit at the end of each generated PRE-INSERT, PRE-UPDATE and PRE-DELETE trigger. Such calls are primarily intended to handle security processing (e.g., a user exit can be written to test whether a user has the privileges to insert, update or delete information on a given block and form).

When the user exit is called, it is passed the following parameters:

•	Form name

•	Block name

•	Base table name

•	Field name holding current username

•	Operation (insert, update, delete)

Calling a user exit from a generated form

•	Set the the UENAME preference to the name of the user exit to call.


Generating a form from a report module

Typically, you generate Oracle Forms applications from repository modules of language Oracle Forms and Report Builder applications from repository modules of language Oracle Reports. However, you can also generate Oracle Forms applications from repository modules of language Oracle Reports.

To generate a form from a report module:

1.	Select the repository module of language Oracle Reports that you want to generate as an Oracle Forms module.

2.	Select Generate→Generate Module As.

3.	Select the Forms option to display the Generate Form dialog box.

You can now generate as if the module were of language Oracle Forms. For more information about the dialog box, refer to the Generate Form dialog box.

4.	Display the Form Generator Options dialog box (either by selecting the Options button on the Generate Form dialog box or by selecting Options→Generator Options→Forms) and set generation options as necessary.

For more information about the available options, refer to Form Generator Options dialog box.

5.	When you have specified the options you require, click the Start button on the Generate Form dialog box to generate an Oracle Forms form module from the repository module definition.


 Reference code table generation

About reference code tables

A reference code table contains values, abbreviations and meanings of allowable values defined for unbound items, columns, and associated domains.

In a generated Oracle Forms application, the reference code table provides:

•	dynamic lists of valid selectable values for LOVs, pop lists, text lists and combo boxes

•	field validation

The reference code table is used by a generated form when the repository element (i.e. unbound item, column, domain) for which allowable values have been entered has its Dynamic List property set to Yes.

A reference code table is similar to a domain table in that it provides valid values and field validation. However, there are also significant differences. For more information, refer to Domain table support.

When is a reference code table created and populated automatically?

A reference code table is created and populated automatically by Server Generator when generating tables containing columns for which allowable values have been defined (either directly against the column or against a domain with which the column has been associated). For more information, refer to About reference code tables in the Server Generator help system.

The scope of the reference code table (container-specific or common to all containers) determines its name and content as follows:

•	if one reference code table is created for all containers, the table is called CG_REF_CODES and contains valid values and ranges for columns and domains from all folders and application systems

•	if one reference code table is created for each container, each table is called <container_name>_REF_CODES and contains valid values and ranges for columns and domains for that particular folder or application system

Use the General Generator Options dialog to specify the scope of the reference code table.

Note that a reference code table is not created and populated automatically where allowable values have been specified for unbound items.

Creating and/or updating a reference code table manually

If allowable values have been specified for unbound items, you must explicitly create the reference code table (if it does not already exist) and update the table.

If you modify the allowable values recorded for a repository element (i.e. unbound item, column or associated domain), you must update the reference code table to ensure up-to-date values are used for validation and to populate LOVs, pop lists, text lists and combo boxes.

If all allowable values are removed from an element, or if allowable values are added to an element that did not previously have any associated with it, you must generate the form again as well as updating the reference code table.

To find out how to create and/or update a reference code table, refer to About reference code tables in the Server Generator help system.


Generating multiple module applications

Related Topics

Introducing multiple module applications

About multiple module applications

Calling reports, displays and other forms from a generated form

About calling reports, displays, and other forms from generated forms

Calling reports, displays, and other forms using buttons generated from navigation action items

Calling reports, displays, and other forms using Key-Fn trigger code and CG$FF functionality

Specifying the startup query mode of called forms

Passing parameters between generated forms

About Oracle Forms parameters

About Oracle Designer module arguments

About Oracle Designer passed values

Passing values to bound items in called forms

Passing values to unbound items in called forms

Setting named passed values when calling forms

Generated forms and PL/SQL library modules

About generated forms and PL/SQLlibrary modules

Using attached PL/SQL library modules


About multiple module applications

Related Topics

What are generated multiple module applications?

Using Form Generator you can generate Oracle Forms applications that comprise multiple modules, generated from different repository module definitions (including links to modules of different types). For example, you might want a generated form to call a generated report, display, or another form.

When defining a repository module, you specify:

•	the modules called by that module

•	the modules calling that module

•	the arguments passed between calling modules and called modules

The resulting linked modules are collectively referred to as a module network. Form Generator uses module network information to generate the following features:

Generated feature:	For more information, refer to:
navigation buttons	Generating buttons to navigate to other blocks, windows, and modules
Oracle Forms parameters	About Oracle Forms parameters
PL/SQL library modules	About generated forms and PL/SQL library modules
calls to generated List of Values forms	Generating List of Values forms to display foreign key values
menu modules	Menu generation
calls to reports, displays and other generated forms	About calling reports, displays, and other forms from generated forms
automatically saving the current row in a calling form and using it to query a called form	Specifying a generated form's startup query mode when called by Key-Fn trigger code


About calling reports, displays, and other forms from generated forms

Related Topics

Form Generator provides two methods to call reports, displays, and other forms directly from a generated form (i.e. not using a menu):

•	if you have defined navigation action items, Form Generator generates buttons and associated code to call other modules (for more information, refer to Calling reports, displays, and other forms using buttons generated from navigation action items)

•	an alternative mechanism provided in versions of Form Generator prior to Oracle Designer release 2 involves generating Key-Fn trigger code and/or the use of the CG$FF generator item in the template form (for more information, refer to Calling reports,displays, and other forms using Key-Fn trigger code and CG$FF functionality)

The generated code passes any parameters to the called report, display, or form that have been generated from argument passed values and named passed values defined in the calling form.

The way to specify the startup query mode of a called form depends on which method (buttons generated from navigation action items or generated Key-Fn trigger code) is used to call the form.


Calling reports, displays, and other forms using buttons generated from navigation action items

Related Topics

To call reports, displays, and other forms using buttons generated from navigation action items:

1.	Define navigation action items to specify the links between modules.

For more information, refer to Generating buttons to navigate to other blocks, windows, and modules.

2.	Specify the startup mode of called forms.

For more information, refer to Specifying a generated form's startup query mode when called from a navigation action item.

3.	Specify any arguments in the called modules, and values passed from the calling form.

For more information, refer to:

•	Passing values to unbound items in called forms

•	Passing values to bound items in called forms


Calling reports, displays, and other forms using Key-Fn trigger code and CG$FF functionality

Related Topics

About generating Key-Fn trigger code to call reports, displays, and other forms

In versions of Oracle Designer prior to Release 2, Form Generator added code to a separate Key-Fn trigger for each called module. This mechanism is still supported in Oracle Designer release 2 onwards and is described below. However, generating Key-Fn trigger code as a mechanism to call other modules is likely to be discontinued in subsequent releases of Form Generator. Therefore, we strongly recommend you use navigation action items to call other modules. For more information, refer to Calling reports, displays, and other forms using buttons generated from navigation action items.

To call reports, displays, and other forms by generating Key-Fn trigger code:

1.	Set the CALLFM preference to Yes.

2.	Specify the modules called by a particular module and the modules that call that particular module.  How

3.	Specify the startup mode of called forms.

For more information, refer to Specifying the startup query mode of called forms.

Notes

The code to call the first module is attached to the Key-F0 trigger, the code to call the second module is attached to the Key-F1 trigger, and so on up to Key-F9. Use Oracle*Terminal to map function keys (Key-F0, Key-F1 etc.) to physical keys.

When a Key-Fn trigger fires, the generated code calls the specified module and optionally copies the primary key values for any base table rows currently displayed in the form into global variables. To find out how to use these global variables to automatically query related information in a called form, refer to Specifying a generated form's startup query mode when called by Key-Fn trigger code.

Form Generator derives the command to call a report, display or form as follows:

•	If the text string <MODULE> exists in the called module's Command Line property, Form Generator replaces <MODULE> with the called module's Implementation Name (if set) or Short Name property.

•	If a Runtime Path has been specified for the called module, Form Generator creates a command comprising the runtime path followed by the module command line.  (Hint: To ensure portability of the applications you generate, we recommend you do not set the Runtime Path property.)

If the form being called permits insert, delete or update operations on tables, Form Generator uses the CALL packaged procedure to implement the call. If the form being called does not permit insert, delete or update operations, Form Generator uses the CALL_QUERY packaged procedure.

Providing pop lists and text lists to call other modules using CG$FF functionality

In addition to generating Key-Fn trigger code, you can enable users of a generated form to call reports, displays and other forms from a pop list or text list.

To specify a pop list or text list, you must include a pop list or text list item in the template form with a name beginning with CG$FF. Form Generator uses this template item to define the required item in the generated form.

To use CG$FF functionality, you must set CALLFM to Yes.

The first entry on the pop list or text list acts as the list title, and is based on the default value of the template item. If necessary, Form Generator alters this to make it unique. The remaining values are based on the reports, displays and forms that can be called from the form.

Form Generator derives the value to display in the list for a particular module as follows:

if	the called module's Short Title property has been set, Form Generator uses this as the value for the poplist
otherwise, if	the called module's Name property has been set, Form Generator uses this as the value for the poplist
otherwise	Form Generator uses the called module's Implementation Name property
Using generated Key-Fn trigger code to generate buttons to call other modules

Instead of using a pop list or text list to navigate to called modules, you can use the generated Key-Fn trigger code to include buttons to call other forms. Use the supplied standard template ofgpc2t.fmb as an example of how you might do this. For more information, refer to About the ofgpc2t.fmb standard template form.


Specifying the startup query mode of called forms

Related Topics

When a generated form calls another generated form, you can specify the startup query mode of the called form. For more information about startup query modes, refer to About the startup query modes of generated forms.

The way to specify the startup query mode will depend on the mechanism used to call the called form:

CALLFM set to:	Form called by	Query mode controlled by:	For more information, refer to:
No	navigation action item	CG$STARTUP_MODE	Specifying a generated form's startup query mode when called from a navigation action item
Yes	Key-Fn trigger code	USEPKR	Specifying a generated form's startup query mode when called by Key-Fn trigger code


About Oracle Forms parameters

Related Topics

Oracle Forms parameters are variables of type CHAR, NUMBER, or DATE that you define at design time. Parameters provide a simple mechanism for defining and setting the values of inputs that are required by a form at startup.

You can pass parameter values to a form when an application executes the CALL_FORM, NEW_FORM, OPEN_FORM, or RUN_PRODUCT built-in subprograms. Parameters are passed to called forms by means of a parameter list.  A parameter list is a named programmatic construct that is simply a list of parameter names (called keys) and their values.

A parameter must have been defined at design time before you can specify a value for it at form startup.  That is, the form must be expecting the parameter value it receives at startup.


About Oracle Designer module arguments

Related Topics

Oracle Designer module arguments are repository definitions of parameters passed between modules. The module argument definition describes the parameters a module expects to receive when it is called. That is, the module argument is defined for the module that will receive the parameter.

You can explicitly associate both bound and unbound repository item definitions with module arguments. In other words, you can record the fact that a particular item uses a specified argument. Such a relationship is referred to as an argument usage.


About Oracle Designer passed values

Related Topics

Passed values are the values that are passed from a calling module as parameters to a called module. That is, the passed value is defined for the module that will pass the value.

There are two types of passed values:

•	Argument passed values - values passed from the calling module into arguments you have defined in the called module. When specifying that a module calls another module, you define the values that the calling module passes to arguments in the called module.

•	Named passed values - values passed from the calling module into pre-defined parameters created in every generated form. Note that these parameters are not shown in the Design Editor as repository module argument definitions in the called module.

When generating a called form from a repository module definition, Form Generator creates a parameter for each argument defined for the repository module.

Note that all parameters generated by Form Generator are of datatype CHAR. Form Generator includes code in calling forms to convert all parameters to datatype CHAR, and includes code in called forms to convert number and date parameters back to the correct datatype.


Passing values to bound items in called forms

Related Topics

Why pass values to bound items?

In a generated application, you might want to restrict the information a user can query in a called form (both when the form is called and subsequently) to that specified by one or more values passed to the form. To achieve such a restriction, in the repository you can define usages of arguments by bound items in the first navigable block of the form (as specified by the GENNAV preference).

How the values passed to a called form are used to query information depends on the form's startup mode, as follows:

Startup mode	Use of passed value(s)
NORMAL	Not used
NEW	Used to populate items generated from bound items.
AUTO QUERY	Used to build a temporary Where clause against the first navigable block. The Where clause is executed and then removed.
ENTER QUERY	Used to populate items generated from bound items.
RESTRICTED AUTO QUERY	Used to build a Where clause against the first navigable block. The Where clause is executed on form startup and retained for future use in queries against the block.
RESTRICTED ENTER QUERY	Used to build a Where clause against the first navigable block, before starting the form in Enter Query mode and populating items generated from bound items. The Where clause is retained for future use in queries against the block.
RESTRICTED NEW	Used to populate items generated from bound items and to restrict entry of new records to those values. The passed values are also used to build a Where clause that is retained for future use in queries against the block.

For more information about how to specify the startup mode of a called form, refer to Specifying the startup query mode of called forms.

To pass a value to an item generated from a repository bound item definition:

1.	Create a module argument definition in the called module.

2.	Create a usage of that argument by a bound item in the called module.

3.	In the calling module, specify the argument passed value that will be passed to the argument in the called module.

Notes

Bound items using arguments must be generated into the first navigable block in the form. Argument usages by bound items generated into subsequent blocks will have no effect in the generated form.

You can only pass values as described above when a module is called using a navigation action item (i.e. not when using Key-Fn triggers).

You cannot pass values to items generated from repository lookup items. In the repository, you can define a usage of an argument by a lookup item and Form Generator will create the parameter in the generated form. However, Form Generator:

•	will not create the code to populate the generated item using the value of the passed parameter

•	will not include the parameter in the generated block's WHERE clause


Passing values to unbound items in called forms

Related Topics

Why pass values to unbound items?

In a generated application, you might want an item generated from a repository unbound item definition in a called form to be populated with a value passed to the form when it is called. To achieve this, in the repository you can define a usage of the argument by the unbound item in the called module.

The value of the parameter generated from the argument usage is used to populate the unbound item, regardless of the startup query mode of the generated form.

Note that you can only pass values as described above when a module is called using a navigation action item (i.e. not when using Key-Fn triggers).

To pass a value to an item generated from a repository unbound item definition:

1.	Create a module argument definition in the called module.

2.	Create a usage of that argument by the unbound item in the called module.

3.	In the calling module, specify the argument passed value that will be passed to the argument in the called module.


Setting named passed values when calling forms

Related Topics

Why set named passed values?

When Form Generator generates a form, it creates code to handle a number of standard arguments passed to the form when it is called. You can specify values for these standard arguments by setting named passed values in the calling form.

To set named passed values:

1.	In the calling repository module, create a new named passed value to pass to the called repository module.  How

2.	Set the Name property of the named passed value to one of the following:

Named passed value:	Use to specify:	Valid values:
STARTUP MODE	the startup query mode when the generated form starts up. For more information, refer to:  • Specifying a generated form's default startup query mode using CG$STARTUP_MODE.  • Specifying a generated form's startup query mode when called from a navigation action item	NORMAL  AUTO QUERY ENTER QUERY RESTRICTED AUTO QUERY RESTRICTED ENTER QUERY RESTRICTED NEW NEW
CALL METHOD	which Oracle Forms built-in or user named procedure to call the other form.  Each Oracle Forms built-in accepts a number of parameters, which you can set using the named passed values below.	OPEN_FORM CALL_FORM NEW_FORM (user-named procedure)
ACTIVATE MODE	whether to give focus to the called form  (only applies if CALL_METHOD = OPEN_FORM)	ACTIVATE (default) NO_ACTIVATE
DATA MODE	whether to share library data between calling and called forms	NO_SHARE_LIBRARY_DATA SHARE_LIBRARY_DATA
DISPLAY	whether to hide the calling form before displaying the called form  (only applies if CALL_METHOD = CALL_FORM)	HIDE (default) NO_HIDE
QUERY MODE	whether to run the called form in query-only mode  (only applies if CALL_METHOD = NEW_FORM or CALL_FORM)	NO_QUERY_ONLY (default) QUERY_ONLY
ROLLBACK MODE	the rollback mode of the calling form	TO_SAVEPOINT (default) NO_ROLLBACK FULL_ROLLBACK
SESSION MODE	whether the calling form and the called form share the same database session  (only applies if CALL_METHOD = OPEN_FORM)	NO_SESSION (default) SESSION
SWITCH MENU	whether to keep the menu of the calling form for the called form  (only applies if CALL_METHOD = CALL_FORM)	NO_REPLACE (default) DO_REPLACE

3.	Set the Value property of the named passed value to one of the valid values listed above.

Notes on using CALL_METHOD with user-named procedures

If you specify a user-named procedure as the value for the CALL_METHOD named passed value, the procedure must be available to the generated form either in an attached library (recommended) or copied from the template.

The generated call to the procedure passes two parameters:

•	the name of the called form (type VARCHAR2)

•	the id of a parameter list (type PARAMLIST) that contains the argument passed values and other named passed values specified for the called module in the repository

Two parameters of the correct type must therefore be declared in the procedure.


About generated forms and PL/SQL library modules

Related Topics

About PL/SQL library modules

The forms you generate can include calls to functions and procedures in attached PL/SQL library modules. PL/SQL libraries provide a convenient means of storing client-side program units and sharing them among multiple applications. In addition, PL/SQL libraries support 'dynamic loading' (i.e. a PL/SQL library's program units are loaded into an application only when needed). Dynamic loading can significantly reduce the runtime memory requirements of an application. For more information about PL/SQL library modules, refer to About PL/SQL library modules in the Library Generator help system.

Form Generator is supplied with a number of shipped PL/SQL library modules to support standard generated functionality. You can also create PL/SQL library modules and attach them to generated forms yourself. In addition, you can specify that Form Generator is to create a 'generated module library' (i.e. a PL/SQL library module) automatically during generation.

You can store the PL/SQL library files required by a generated form in the filesystem or in the repository. Storing the PL/SQL library files in the repository enables you to make use of features such as the Dependency Analyzer and version control. For more information, refer to About storing files in the repository for use during generation.

Where a generated application calls code in a PL/SQL library, the .plx file must be available in the production environment in which the application is deployed.

About the Form Generator shipped PL/SQL libraries

The following shipped PL/SQL libraries are supplied with Form Generator in the <ORACLE_HOME>\cgenf61\admin directory:

Shipped library	Containing code to support:	When is the .plx required?
ofgbsl	block synchronization when generated forms contain more than one block	almost certainly required for all generated applications
ofgcall (example library)	calendar window functionality	only required if generated application contains calendar windows and this example library is attached to the template form
ofghpl	context sensitive help generation (using either a help form or MS-Help)	required if HLPTYP is set to either MSHELP or HELPFORM
ofgmes	display of generator messages in alerts	attached to ofgtel.plx and therefore required whenever ofgtel.plx is attached to a generated application
ofgmnl	standard menu options	only required if generated menu contains standard menu options
ofgnavl	navigation functionality	almost certainly required for all generated applications
ofgtab	native Oracle Forms tab canvas functionality	only required if generated application contains native Oracle Forms tab canvas functionality
ofgtel	a significant amount of generated functionality	almost certainly required for all generated applications
ofgtreen	navigator style forms	required if one or more generated forms is a navigator style form or contains navigator style items

By default, Form Generator assumes the shipped PL/SQL libraries have the original names with which they were supplied. However, you can use Registry variables to override the original names. This is a particular requirement if you intend to deploy Oracle Forms modules generated by the 6i and 6.0 versions of Form Generator in the same runtime environment. It is important that you override the original names before generating modules using 6i. For more information, refer to Notes on generating Oracle Forms modules for the same runtime environment using both Oracle Designer 6i and 6.0.

Creating PL/SQL library modules yourself

You can create PL/SQL library modules yourself in two ways:

•	by using Form Builder (or Report Builder) to create the PL/SQL library modules

•	by defining library modules containing application logic in the repository and generating them using Library Generator

Note that you can also create a repository library module definition that simply contains a reference to a file-based PL/SQL library module created using Form Builder.

Attaching PL/SQL library modules to generated forms

You can specify that a PL/SQL library module is to be attached to a generated form in one of two ways:

•	using Form Builder to attach PL/SQL library modules to the template form

•	specifying a module network link to attach repository library module definitions to the modules that call them

In both cases, Form Generator creates library attachment objects in the generated form. Form Generator attempts to set the library attachment object's PL/SQL Library Location property simply to the name of the PL/SQL library. However if Form Generator cannot find the PL/SQL library in the locations specified by the Registry variables, it adds the path specified in the Destination of generated .PLL files field on the Library Generator options dialog box to the PL/SQL Library Location property. Note that hard-coding the path into the PL/SQL Library Location property makes the generated application significantly less portable, and is therefore not recommended.

Generating attached library modules automatically

When using Form Generator to generate a form module, you can specify that Library Generator is automatically invoked to generate any attached library modules defined in the repository. You can also use Library Generator to capture existing PL/SQL library modules into the repository. For more information about these and other areas of Library Generator functionality, refer to Generating PL/SQL library modules in the Library Generation help system.

Creating a generated module library during generation

You can use the PGULIB preference to specify that Form Generator is to create a 'generated module library' (i.e. a PL/SQL library module) automatically during generation and attach it to the generated form.

Form Generator places generated program units, user-defined program units, and user-modified generated program units in the generated module library instead of placing the program units in the generated form itself.

Distributing attached library modules

When deploying the generated application, it is your responsibility to distribute any attached PL/SQL libraries (i.e. both generated module libraries created by Form Generator because PGULIB was set to Yes, and PL/SQL libraries you have created yourself) and to set the appropriate Registry variables to locate them. For more information, refer to Attaching PL/SQL library modules to generated Oracle Forms/Reports modules in the Library Generator help system.

For an example of how you might use attached PL/SQL library modules, refer to Using attached PL/SQL library modules.


Using attached PL/SQL library modules

Related Topics

Example 1

The example below shows how you might set the window title for two form modules using a PRE-FORM trigger referenced in a common template (Templa_1) but defined differently in two module specific PL/SQL libraries (Lib_A and Lib_B).

Example 2

The example below shows how you might generate forms containing references to both generic and module specific procedures, and include items from a template form that reference a named procedure that is different for individual modules.

PL/SQL library Lib_A contains generic code (proc_d) for the modules using template form Templa_1.

PL/SQL libraries Lib_B and Lib_C contain module specific code (proc_a and proc_b) and are linked to modules Module_1 and Module_2 respectively.

An expression in Module_2 references a procedure held on the Server (proc_f).

You can also embed program units in the template form and reference program units from the PL/SQL library that will be attached to the module. This enables you to implement generic functions differently for each module. In the example above, proc_e is referenced from Templa_1 and defined in each of the module specific PL/SQL libraries (Lib_B and Lib_C).


Navigation code generation

Startup navigation code generation

Item navigation code generation

Block navigation code generation

Window navigation code generation

Keyboard shortcut generation

See also

Generating buttons to navigate to other blocks, windows, and modules


Startup navigation code generation

Related Topics

About startup navigation code

Generating startup navigation code


About startup navigation code

Related Topics

About startup navigation code

Startup navigation code enables you to control which block the user navigates to when they start a form.

Form Generator generates blocks from module components and from user blocks defined in the template form. When running a generated form, users navigate to a block in the form that has one or more enterable fields. You can specify whether that first block is one generated from a module component or from a user block.

You can also specify a generated form's startup query mode. For more information, refer to Specifying the startup query mode of generated forms.


Generating startup navigation code

Related Topics

To control the generation of startup navigation code:

•	Set the value of the GENNAV preference as required.


Item navigation code generation

Related Topics

About item navigation

Generating item navigation code


About item navigation

Related Topics

Item navigation enables the user of a form to move from item to item within a block and across blocks by using [Next Item] and [Previous Item].

In Oracle Forms, [Next Item] moves to the next item in the block and [Previous Item] moves to the previous item in the block. An item's next and previous items are determined by its Next Navigation Item and Previous Navigation Item properties. If these properties are not set, the sequence of items is determined by the order they are listed in the Form Builder Object Navigator. Items can be non-navigable, in which case [Next Item] and [Previous Item] simply skip over the item during navigation.

When the user of a form reaches the last item or first item of the current record in a block, the behavior of item navigation depends upon the Navigation Style property of the block. You can set this property to one of the following:

Same Record	Pressing [Next Item] at the last item of the current record in a block moves to the first item of the same record. Pressing [Previous Item] at the first item of the current record in a block moves to the last item of the same record.
Change Record	Pressing [Next Item] at the last item of the current record in a block moves to the first item of the next record. Pressing [Previous Item] at the first item of the current record in a block moves to the last item of the previous record.
Change Block	Pressing [Next Item] at the last item of the current record in a block moves to the first item of the next block. Pressing [Previous Item] at the first item of the current record in a block moves to the first item of the previous block.

The Oracle Forms default style of navigation is Same Record:

  [Next Item] moves to the next item in the block
  [Next Item] wraps round to the first item in the block

Note that if Navigation Style is Same Record, the user of the form:

•	must use [Next Record] and [Previous Record] to navigate between records in a multi-record block

•	must use [Next Block] and [Previous Block] to navigate between blocks

About generated item navigation code

Form Generator does not set the Next Navigation Item and Previous Navigation Item properties of generated items. Consequently, navigation between items is determined by the order of the items in the form. What happens at the last item or first item of the current record in a block depends on the block's Navigation Style property (which you set using an object library object property) and a number of navigation preferences.

Where items from the same block are on different content canvases, the NAVPAG preference enables you to restrict navigation to items from the current block on the same content canvas.


Generating item navigation code

Related Topics

To control the behavior of item navigation:

1.	Arrange the items in the repository in the order you want them to be navigated, use the Display View to reorder the items if necessary.

2.	(Recommended)  Set the Navigation Style property of the block object (standard object name CGSO$BLOCK) in an object library as required to control the way [Next Item] and [Previous Item] behave when the user of the generated form reaches the last item or first item in the block.

If you want item navigation to behave differently when navigating within a multi-record block, set the Navigation Style property of the multi-record block object (standard object name CGSO$BLOCK_MR) in an object library as required.

For more information about copying or subclassing objects from an object library, refer to Using object libraries.

3.	Set the following navigation preferences as required:

•	NAVCRE to specify how item navigation behaves when the last item of the last record of a block is reached (this is only applicable if Navigation Style is Change Record)

•	NAVCRS to specify how item navigation behaves when the first item of the first record of a block is reached (this is only applicable if Navigation Style is Change Record)

•	NAVPAG to specify how item navigation behaves when items from the same block are on different canvases

•	NAVWRP to specify how item navigation behaves when the last item of the last block, or the first item of the first block is reached

•	NAVBWN to specify whether item navigation only occurs within a window or whether the user can use [Next Item] and [Previous Item] to navigate to items in different windows. This preference also determines the behavior of NAVWRP, i.e. whether last block is the last block in the window or the last block in the form. For more information about navigating to different windows, refer to Generating window navigation code

4.	To control whether buttons that are laid out in a block are navigable or not, set the Keyboard Navigable and Mouse Navigable properties of the button object (standard object name CGSO$BUTTON) in an object library.

For more information about copying or subclassing objects from an object library, refer to Using object libraries.

Note:	Lookup items, mirror items and unbound items are treated as part of the block they are associated with and as such are navigated to in turn.

5.	To enable the user of a generated form to navigate to an item group, use keyboard shortcuts.

For more information about keyboard shortcuts, refer to Generating Keyboard Shortcuts.

Examples

Example 1:  If the Navigation Style of the block is Change Block, when the user of the generated form reaches the last item of the block [Next Item] moves to the first item of the next block:

  [Next Item] moves to the next item in the block
  [Next Item] moves to the first item of the next block

Example 2:  If the Navigation Style of the block is Change Record, when the user reaches the last item of the block [Next Item] moves to the first item of the next record:

  [Next Item] moves to the next item in the block
  [Next Item] moves to the first item of the next record

Example 3:  If  NAVWRP is set to No, when the user reaches the last item in the last block [Next Item] does not wrap round to the first item of the first block (in this example Navigation Style is Change Block):

  [Next Item] moves to the next item in the block
  [Next Item] moves to the first item of the next block
  [Next Item] does not move


Block navigation code generation

Related Topics

About block navigation

Generating block navigation code

Block navigation and keyboard shortcuts

See also

Generating buttons to navigate to other blocks, windows, and modules


About block navigation

Related Topics

Block navigation enables the user of a form to move from block to block within a window or form by using [Next Block] and [Previous Block].

In generated forms, by default [Next Block] moves to the next block in the form and [Previous Block] moves to the previous block in the form. A block's next and previous blocks are determined by its Next Navigation Block and Previous Navigation Block properties. If these properties are not set, the sequence of blocks is determined by the order they are listed in the Form Builder Object Navigator.

The following diagram shows the behavior of [Next Block]:

  [Next Block] moves to the next block in the form
  [Next Block] moves to the first block in the form


Generating block navigation code

Related Topics

To control the behavior of block navigation

1.	Arrange the module components in the repository in the order you want the blocks to be navigated, use the Display View to reorder the module components if necessary.

2.	Set the following navigation preferences as required:

•	NAVRBN to specify whether block navigation is restricted to navigation between blocks within relationships. For more information about how you might use this preference refer to Block navigation and keyboard shortcuts

•	NAVNPB to specify whether the Next Navigation Block and Previous Navigation Block properties are set for every block

•	NAVWRP to specify how block navigation behaves when the last block or first block is reached

•	NAVBWN to specify whether block navigation only occurs within a window or whether the user of the generated form can use [Next Block] and [Previous Block] to navigate to blocks in different windows. This preference also determines the behavior of NAVWRP, i.e. whether last block is the last block of the window or the last block of the form. For more information on navigating to different windows, refer to Generating window navigation code

Example

If NAVWRP is set to No, when the user of the generated form reaches the last block [Next Block] does not wrap round to the first block:

  [Next Block] moves to the next block
  [Next Block] does not move

Block navigation and multi-region blocks

By default, Form Generator does not consider the different regions of a multi-region block to be different blocks when generating navigation code. As a result and depending on the structure of the generated form, users of the form might complain of unexpected behavior when they press [Next Block] or [Previous Block]. If this is an issue, enter application logic at module component level for the KEY-NXTBLK and KEY-PREVBLK events to explicitly specify the items to navigate to.


Block navigation and keyboard shortcuts

Related Topics

In some situations you may have blocks within a window that have no logical order, e.g. a block may have more than one child block:

If the blocks in the above example are ordered as follows in the repository:

•	Memberships

•	Bookings

•	Rentals

the generated form behaves as follows:

•	pressing [Next Block] in the Memberships block navigates to the Bookings block

•	pressing [Next Block] in the Bookings block navigates to the Rentals block.

If there is no relationship between the Bookings and Rentals blocks, this might not be desirable.

In this case set NAVRBN to Yes to restrict block navigation so that:

•	pressing [Next Block] in the Memberships block navigates to the Bookings block (because the Bookings block is the first child of the Memberships block)

•	pressing [Next Block] in the Bookings block does not move

•	pressing [Previous Block] in the Bookings and Rentals blocks navigates to the Memberships block

To enable navigation to the Rentals block, define a keyboard shortcut in the Title property of the Rentals module component, e.g. &Rentals and set NAVKEY to Yes. Pressing the 'R' shortcut key navigates to the Rentals block.

For more information about generating keyboard shortcuts, refer to Generating keyboard shortcuts..


Window navigation code generation

Related Topics

About window navigation

Generating window navigation code

Window navigation and cursor management

Window navigation and window management

See also

Generating buttons to navigate to other blocks, windows, and modules


About window navigation

Related Topics

Window navigation enables the user of an application to move from window to window within the application. There are two types of window navigation:

•	navigation to a window in the same form

•	navigation to a window in another form, report, etc

Navigation to windows in the same form

In generated forms the default method of navigation to windows in the same form is to use item and block navigation, i.e. when the user reaches the last item or last block in the current window [Next Item] and [Next Block] move to the first item or first block in the next window. This is the same behavior as Oracle Forms forms.

  [Next Block] moves to the next block in the current window
  [Next Block] moves to the first block in the next window

However, standard Windows behavior is for item and block navigation to be confined to the current window. Window navigation can be achieved by using the mouse or the 'Window' menu.

  [Next Block] moves to the next block in the current window
  [Next Block] does not move to the next window, but remains in the current window

Navigation to windows in other forms and reports

Navigation to windows in other forms or reports enables the user to move seamlessly around your application.


Generating window navigation code

Related Topics

To generate code for navigation between windows in the same module:

1.	Set NAVBWN to Y to generate item and navigation code that confines navigation to the current window, i.e. standard Windows behavior. If NAVBWN is set to N (default setting) item and block navigation code will enable navigation to other windows in the module.

2.	If you have set NAVBWN to Y, you can still generate code to navigate to other windows within the module by creating a navigation action item and specifying the module component you want the user to move to when the generated button is pressed.  How

To generate code for navigation between windows in different modules:

1.	Create a navigation action item and specify the other module to navigate to.  How

2.	To automatically query a called form, set the Startup Mode named passed value as required.

For more information about setting the startup query mode, refer to Specifying a generated form's startup query mode when called from a navigation action item.


Window navigation and cursor management

Related Topics

What is cursor management?

Cursor management determines where the cursor is displayed when the user of a form navigates from one window to another.

By default, generated forms employ standard Oracle Forms cursor management. If the user navigates from one window (e.g. called First_window) to a new window (e.g. called Second_window), the cursor is positioned in the first navigable item in Second_window. If the user then clicks on any part of First_window  (e.g. the title bar) other than a specific item:

•	First_window is activated

•	the cursor remains in Second_window, unless the user clicked on an item or used other navigation features (e.g. using [Previous item] from the first field in the next block in the next window) to explicitly specify an alternative item in First_window

Standard Windows behavior is to store the location of the cursor when First_window is deactivated. On reactivating First_window, the cursor will be displayed in the stored location unless the user has clicked on another item or used other navigation features (e.g. using [Previous item] from the first field in the next block in the next window) to specify an alternative item.

To generate a form that performs standard Windows cursor management:

•	Set NAVCUR to Y.

Example

The user opens Window 1 and navigates to the fourth item:

The user navigates to Window 2 (this is the first time this window has been navigated to, so the cursor is positioned in the first item):

The user navigates back to Window 1 by clicking on the window title bar. If NAVCUR is set to N, the cursor is not visible on the window and the user has to click on an item to position it:

If NAVCUR is set to Y, the cursor is positioned in the fourth item (i.e. the same item as the cursor was positioned in when the user navigated out of Window 1):


Window navigation and window management

Related Topics

Window management code determines what happens when a user closes a window in the generated application.

Default behavior in generated forms is for windows opened from another window (referred to as child windows) not to be closed when the user closes the window that opened them (the parent window).

However, standard Windows behavior is for child windows to be closed when the user closes the parent window.

To generate a form that performs window management:

1.	Set NAVWND to Y.

2.	If you set NAVWND to Y in both the calling and called forms, you can also use NAVCCF to determine whether other forms called by a window (child forms) are closed when that window is closed.

By default, child forms are left open. Set NAVCCF to Y to generate code to close child forms when the parent window is closed.


Keyboard shortcut generation

Related Topics

About keyboard shortcuts

Generating keyboard shortcuts


About keyboard shortcuts

Related Topics

What are keyboard shortcuts?

A keyboard shortcut is a key (typically, a letter) on the keyboard that, when pressed in combination with a control key (e.g. the ALT key in an MS Windows environment), will do one of the following:

•	navigate to the first navigable item in a generated block

•	navigate to the first navigable item in a generated item group

•	activate (i.e. simulate a click on) a generated button

The shortcut character is underlined in the title or label of the corresponding object.

Keyboard shortcuts are sometimes called mnemonic access keys.

Why generate keyboard shortcuts?

A keyboard shortcut enables users to:

•	navigate quickly to a particular block or item in the generated form without using the mouse

•	navigate to areas in the generated form that cannot be accessed in any other way

For an example of navigation in generated forms using keyboard shortcuts, refer to Block navigation and keyboard shortcuts.

You cannot generate keyboard shortcuts for:

•	tab pages on a tab canvas

•	iconic buttons


Generating keyboard shortcuts

Related Topics

To generate a keyboard shortcut:

1.	Insert an ampersand (&) immediately in front of the character you want as the shortcut in:

•	a module component's Title property

•	an item group's Prompt property

•	the Prompt property of an action item or unbound item

Make sure you specify a shortcut character that is not already used by other objects or menu items.

If you want to include an & in a generated block title, item group title or button label, follow the & with a space. Form Generator always removes ampersands unless they are followed by a space.

2.	Set the NAVKEY preference to Y.

Examples

NAVKEY	Repository property set to:	Generated as:	Keyboard Shortcut:
Yes	&Employees and Managers	Employees and Managers	e
Yes	Em&ployees and Managers	Employees and Managers	p
Yes	&Employees & Managers	Employees & Managers	e
Yes	Employees & &Managers	Employees & Managers	m
Yes	Employees & Managers	Employees & Managers	no keyboard shortcut (because & is followed by a space)
No	&Employees and Managers	Employees and Managers	no keyboard shortcut
No	Employees & &Managers	Employees & Managers	no keyboard shortcut


Using object libraries

About object libraries

About subclassed objects

Form Generator and object libraries

Creating object libraries and source objects for use by Form Generator

Subclassing or copying objects from object libraries into generated forms

Specifying object libraries

Specifying the location of object libraries

Object libraries and earlier versions of Form Generator

Standard source objects and object libraries

Alphabetical list of standard source objects and object types

Hierarchy of standard source objects

Alphabetical list of shipped implementation source objects

Alphabetical list of obsolete preferences and the equivalent object library properties


About object libraries

Related Topics

An Oracle Forms object library is a container for reusable objects and standards. Object libraries enable you to:

•	reuse an object in many forms

•	apply standards to existing objects

You can both copy objects from object libraries and subclass objects from object libraries.

Object libraries are the primary method for subclassing objects. Changes made to a source object in an object library can be propagated to any objects subclassed from that object by recompiling the appropriate forms.


About subclassed objects

Related Topics

A subclassed object is similar to a copied object, except that a subclassed object maintains a link to its source object.

Subclassing objects is an efficient way to reuse objects and enforce standards. A subclassed object automatically inherits any changes that have been made to the source object when you recompile a module containing it.

Object libraries are the primary method for subclassing objects, since it is convenient to keep the source of subclassed objects separately. Changes made to properties of a source object in an object library can be propagated to any objects subclassed from that object by subsequently recompiling the appropriate forms.

Note: 	If you make changes to a subclassed object property that has been inherited from a source object, subsequently recompiling the form will not modify the changed property. Changing the subclassed property removes the link between that property and the source object. However, the link between unchanged subclassed properties and the source object remains in force.


Form Generator and object libraries

Related Topics

When you generate forms using Form Generator, you can specify that Form Generator creates generated objects by either copying or subclassing from properties of source objects in one or more object libraries specified by the STOOLB preference.

You will typically want generated objects to inherit their properties from source objects, although you can direct Form Generator to use preference settings or repository information instead. But because source objects have all the properties of generated objects, using source objects enables you to set generated object properties that cannot be set using preferences or repository information.

Object libraries used by Form Generator can contain three types of source object:

•	module level source objects

•	standard source objects

•	implementation source objects

Module level source objects

A module level source object is an object of one of the following types that Form Generator subclasses or copies into the generated form from an object library:

alert	LOV	record group
block	object group	report
canvas	popup menu	trigger
editor	program unit	visual attribute
form parameter	property class	window

Using module level source objects enables you to:

•	include your own 'default' objects in generated forms

•	modify the properties of those objects in generated forms that have been subclassed (rather than copied) from module level source objects by changing objects in object libraries and recompiling the generated form (i.e. you do not have to generate the form again to see the effect of your changes)

Unlike standard source objects and implementation source objects, Form Generator does not use module level source objects to set properties of other objects. You explicitly specify the names of module level source objects from object libraries that you want in the generated form (using the OLBLST preference) and Form Generator simply subclasses or copies those specified objects into the generated form. It is your responsibility to manipulate the subclassed/copied objects as necessary (e.g. by using application logic).

We recommend that when using OLBLST to include module level source objects, you gather the objects into object groups and use OLBLST to specify those object groups instead of specifying the objects individually.

Note that Form Generator only subclasses/copies one occurrence of each module level source object. If two objects of different types but with the same name exist in an object library and you specify that name as a module level source object, Form Generator will only subclass/copy one object into the generated form. Similarly, if you are using multiple object libraries and two objects with the same name exist in two different object libraries, Form Generator will only subclass/copy the object from the first object library into the generated form. To resolve this situation, do one of the following:

•	rename one of the objects

•	if the objects are in the same object library, include both objects in an object group and add the name of the object group to the list of objects specified by OLBLST

Standard source objects

A standard source object is an object in an object library that Form Generator uses when creating a particular type of generated object. Form Generator uses the names of standard source objects to determine which to use during generation. Standard source objects have names prefixed with CGSO$. The rest of the object's name indicates the generated objects for which it can be the source. For example, the CGSO$CHECK_BOX standard source object is the source object for generated check boxes.

For more information about standard source objects, refer to:

•	Standard source objects and object libraries

•	Alphabetical list of standard source objects and object types

•	Hierarchy of standard source objects (note that this hierarchy does not represent a hierarchy of subclassing relationships)

The shipped object library ofgstnd1.olb contains all of the standard source objects. The shipped object library ofgwebol.olb contains a subset of the standard source objects.

Implementation source objects

An implementation source object is an object in an object library that you can explicitly specify Form Generator is to use (instead of a standard source object) when generating a particular object. You use the repository object definition's Template/Library Object property to specify the implementation source object Form Generator is to use.

You can specify two types of implementation source object:

•	user-defined implementation source objects, which you have created and named yourself

•	shipped implementation source objects, which provide default Oracle Forms functionality and which have names prefixed with CGAI$

User-defined implementation source objects

When creating a user-defined implementation source object, we recommend you do not give it a name that begins with CGSO$.

If Form Generator copies or subclasses properties of a generated block from an object library block, any items belonging to the object library block are also included in the generated form. If such an item has a name that begins CGAI$, Form Generator places the item below other items in the generated block and beside buttons generated from action items defined for the module component.  For more information, refer to Items copied or subclassed from items in object library blocks.

Shipped implementation source objects

The shipped object library ofgstnd1.olb contains a number of implementation source objects that provide default Oracle Forms functionality. The names of these implementation source objects begin with CGAI$. You can specify one of these implementation source objects as the object Form Generator is to use when generating:

•	an action item

•	an unbound item with a Display Type of Button

Note that the same functionality was provided in versions of Form Generator prior to Oracle Designer release 2 by CG$ button items in the template. Although the CG$ button item method continues to be supported in Release 2 onwards, we recommend you use CGAI$ implementation source objects instead.

For a list of the shipped implementation source objects and the equivalent CG$ template button items, refer to Alphabetical list of shipped Implementation source objects.

The shipped object library ofgwebol.olb does not contain any implementation source objects.


Creating object libraries and source objects for use by the Form Generator
Creating object libraries and source objects for use by Form Generator

Related Topics

To create your own object library:

1.	Use Form Builder either to copy one of the standard object libraries shipped with Form Generator or to create a new object library.

Note:	We strongly recommend you do not modify a standard object library directly. Instead, always take a copy of a standard object library and modify the copy.

2.	Define the standard source objects and implementation source objects that you want to use during generation.

3.	Save the object library.

4.	In Oracle Designer, specify the object library as one to use during generation.  How

Recommended way to define items as source objects in an object library

When defining items as source objects (both standard source objects and user-defined implementation source objects) in an object library, we recommend you follow the steps below to subclass items rather than copy items:

1.	Create an item called CGSO$DEFAULT_ITEM.

2.	Set any properties of the CGSO$DEFAULT_ITEM that will be common across every item in the container (i.e. application system or folder).

3.	Subclass (i.e. instead of copying) from CGSO$DEFAULT_ITEM any immediate child items (as defined in the standard source object hierarchy).

4.	Subclass any items that are children of children of CGSO$DEFAULT_ITEM from their parent items.

We recommend you create and modify source objects in an object library maintenance form and use the FM2LIB61 utility to convert the form to an object library.

For detailed guidelines about subclassing objects, refer to the Oracle Forms help system.

Creating an object library using the FM2LIB61 utility

Form Generator is supplied with a utility called FM2LIB61. This utility enables you to create and maintain source objects in an .fmb file instead of an .olb file (i.e. an object library). Such an .fmb file is referred to as an object library maintenance form. There are several advantages to this approach, including:

•	ease of maintenance - you do not have to drag objects into a form module for editing and then drag them back into the object library

•	retention of subclassing information when editing objects - subclassing information is lost when you drag objects from an object library into a form module for editing

Having defined the objects in the fmb file, you use the FM2LIB61 utility to convert the fmb file into an object library (.olb file).

As well as using the FM2LIB61 utility to maintain object libraries for use during form generation, you can also use the utility to convert any .fmb file to an .olb file.

For more information about using the FM2LIB61 utility, refer to the file FM2LIB61.txt in the <ORACLE_HOME>\CGENF61 directory.

Object libraries and user named visual attributes

When creating an object for use in an object library, you can set the object's Visual Attribute Group property to the name of a visual attribute in the form in which you are creating the object itself.

However, note that Form Generator only includes visual attributes in a generated form in the following circumstances:

•	if the visual attribute is included in the template form

•	if the visual attribute is included in the object library and specified by the OLBLST preference

If you decide to include the visual attribute in the template form, note that both the template form and the form where you create the object library object must contain the visual attribute. Instead of maintaining the visual attribute in two places, we recommend you subclass the visual attribute in the template form from the visual attribute in the object library maintenance form (i.e. the form in which you define object library objects).

Notes on how to avoid source object name conflicts

Form Generator identifies a source object using the object's name and not its type. To avoid source object name conflicts, note the following points:

•	An object library can contain two or more objects that have the same name but are of different types. During generation, Form Generator attempts to use the first object library object it finds with a particular name. If that object is not of the correct type, Form Generator is unable to use the object. To make sure that Form Generator uses the correct object library object, we recommend you give unique names to objects in the same object library.

•	If you are using multiple object libraries, Form Generator searches the object libraries in the order in which you specified them on the Generate Form dialog. This is significant because different object libraries can contain objects of the same type with the same name and Form Generator will always copy or subclass from the first object it finds with the correct name. Therefore, this feature enables you to 'override' some of the source objects in one object library (johnolib.olb) with source objects from another object library (fredolib.olb) simply by specifying the fredolib.olb object library before the johnolib.olb object library.

•	Be aware that if you give the same names to objects of different types in two (or more) object libraries and you specify that Form Generator is to use both object libraries during generation:

−	Form Generator will never use the object in the second (and subsequent) object library

−	Form Generator might be unable to subclass or copy from the object in the first object library if it is of an inappropriate type

We therefore recommend you do not give the same name to objects of different types in different object libraries that you intend to use together.


Subclassing or copying objects from object libraries into generated forms

Related Topics

To subclass or copy objects from an object library into generated forms:

1.	Specify the standard source objects and implementation source objects you require in one or more object libraries.

For more information about defining object libraries, refer to Creating object libraries and source objects for use by Form Generator.

2.	Where appropriate, use the Template/Library Object property to identify an implementation source object from an object library for Form Generator to use instead of the standard source object.

3.	(strongly recommended) Set the OLBOLD preference to No to ensure that form generation does not rely on obsolete preferences that will not be supported in future releases of Form Generator.

4.	Set the OLBSOC preference to specify whether to copy or subclass objects from object libraries.

For more information about copying and subclassing, refer to About subclassed objects.

5.	Set the OLBLST preference to specify the names of module level source objects to subclass or copy into the form (use commas to separate object names).

Although you can specify multiple objects using OLBLST, we recommend you gather the objects into object groups and use OLBLST to specify those object groups instead of specifying the objects individually.

6.	Specify the object libraries to use during generation.

For more information about how to specify the object libraries Form Generator is to use during generation, refer to Specifying object libraries.

7.	Generate the form.


Specifying object libraries
Specifying object libraries and their locations

Related Topics

To specify the object libraries Form Generator is to use during generation:

1.	Use the Object Library Name field on the Generate Form dialog to specify the names of one or more object libraries (in the format my_oblib.olb) to use during generation (use semi-colons to separate object library names).

Note that Form Generator searches through object libraries for a particular object in the order in which you specify the object libraries. Note also that Form Generator attempts to use the first object it locates with the correct name (regardless of the object's type).

The default value in this field are the object libraries currently specified by STOOLB.

If you change the names in the field, the names you enter are used instead of STOOLB. To restore the entry in the Object Library Name field to the current value of STOOLB, click the Reset button.

If object libraries are stored as files in the filesystem, you can specify paths in the Object Library Name field. If you do not specify paths to locate files in the filesystem, use the Dependencies tab of the Form Generator Options dialog box to specify paths for object libraries.

2.	Use the Dependencies tab of the Form Generator Options dialog box to specify whether object libraries are files in the filesystem or files in the repository.

For more information about how to specify the location of object libraries, refer to Specifying the location of object libraries.


Specifying the location of object libraries

Related Topics

The way to specify the location of object libraries depends on how and where the object libraries are stored.

If object libraries are stored as files in the repository:

1.	On the Dependencies tab of the Form Generator Options dialog box, select the Repository option.

2.	In the Repository Folder field on the Dependencies tab of the Form Generator Options dialog box, specify the repository folders to search for object libraries.

Note that if object libraries are stored as files in the repository, Form Generator ignores any paths specified in the Object Library Name field on the Generate Form dialog or by STOOLB.

If object libraries are stored as files in the filesystem:

1.	On the Dependencies tab of the Form Generator Options dialog box, select the File or Database option.

2.	If object libraries are not in the current working directory, specify the location of object libraries in one of the following ways:

•	Include the full path to object libraries in the Object Library Name field on the Generate Form dialog box.

•	On the Dependencies tab of the Form Generator Options dialog box, either type a path in the Path field (use a semi-colon to separate it from any existing entries), or use the Browse button to add a path.

If you do not specify a path in the Object Library Name field or an object library is not in the path you specify in the field, Form Generator first searches for the object library in the current working directory. If the object library is not in the current working directory, Form Generator searches in the locations specified in the Path field (working from left to right) until it finds the specified object library.


Object libraries and earlier versions of the Form Generator
Object libraries and earlier versions of Form Generator

Related Topics

The use of object libraries by Form Generator was a new feature in Oracle Designer release 2. In versions of Oracle Designer prior to Release 2, much of the functionality provided by object libraries was available using preferences and objects defined in templates.

Object libraries and obsolete preferences

In versions of Oracle Designer prior to Release 2, Form Generator used a number of preferences to set object properties. For example, you might have set the IMGBEV preference to determine the style of the border surrounding images.

In Oracle Designer release 2 onwards, Form Generator can use source objects in object libraries to set the properties of generated objects. This method is more flexible since you can change object properties in object libraries and propagate those changes to subclassed objects in generated forms simply by recompiling the forms (i.e. you do not have to generate the forms again). We strongly recommend you make use of the flexibility offered by object libraries to set and maintain standards in the applications you generate.

The support for object libraries has resulted in a number of preferences becoming obsolete. For a full list of obsolete preferences, refer to Alphabetical list of obsolete preferences and the equivalent object library properties.

We strongly recommend you do not use the obsolete preferences. However, to ensure backward-compatibility, you can set the OLBOLD preference to specify Form Generator continues to use these preferences instead of properties in object libraries.

Note: 	The OLBOLD preference and the obsolete preferences will be removed in future releases of Form Generator.

Object libraries and CG$ template objects

In versions of Oracle Designer prior to Release 2, Form Generator used a number of objects from the template form to control properties of generated objects.

In Release 2 onwards, Form Generator continues to use CG$ template objects as in previous releases - with one exception. When creating an LOV indicator button, Form Generator first searches object libraries for a standard source object called CGSO$LOV_BUT and uses that instead of a CG$LB template object if one has been defined.

Note: 	It is likely that CG$ template objects will be replaced by object library functionality in future releases of Form Generator.

Object libraries and CG$ template button items

In versions of Oracle Designer prior to Release 2, Form Generator used a number of CG$ template button items from the template form to provide default Oracle Forms functionality.

In Oracle Designer release 2 onwards, Form Generator continues to use CG$ template button items. However, equivalent functionality is also available through the use of shipped implementation source objects (prefixed CGAI$) in object libraries. For a list of the shipped implementation source objects and the equivalent CG$ template button items, refer to Alphabetical list of shipped implementation source objects.

Note that the behavior of Form Generator with regard to shipped implementation source objects and CG$ template button items is slightly different. If a template contains CG$ template buttons, every form generated with that template contains those CG$ template buttons. To include the same functionality in every generated form using CGAI$ objects, either explicitly specify implementation source objects for individual unbound items in every module (potentially difficult to maintain and not recommended), or follow the instructions below to generate a common control block:

1.	Create a reusable module component.  How

2.	Create an unbound item for each generated item you want in the control block.  How

3.	Set the Template/Library Object property for each unbound item to the appropriate CGAI$ implementation source object.

4.	Include the reusable module component as the first or last component in every module.  How

Object libraries and Generator named visual attributes

In versions of Oracle Designer prior to Release 2, Form Generator applied a number of Generator named visual attributes (NVAs) from the template form to generated objects.

In Oracle Designer release 2 onwards, Form Generator can use the properties of standard source objects in object libraries to set the properties of generated objects in much the same way as using Generator NVAs. This method is more flexible since you can change object properties in object libraries and propagate those changes to subclassed objects in generated forms simply by recompiling the forms. We strongly recommend you make use of the flexibility offered by object libraries to set and maintain standards in the applications you generate.

However, to ensure backward-compatibility, in Release 2 onwards Form Generator continues to use Generator NVAs on objects that have not been subclassed or copied from an object library as follows:

•	if an implementation source object in an object library has been specified for an object, use this if it exists

•	if an implementation source object has been specified and it does not exist, or if no implementation source object has been specified, use an appropriate standard source object from an object library

•	if no appropriate standard source object exists in any object library, apply the appropriate visual attribute from the template form

Note: 	Generator NVAs will be removed in future releases of Form Generator.

Object libraries and generated items' widths, lengths, and formats

In versions of Oracle Designer prior to Release 2, if information about an item's width, length, and format were not recorded in the repository (either against the column definition or the item definition), Form Generator obtained this information from a number of preferences (prefixed TXT).

In Oracle Designer release 2 onwards, if information about an item's width, length, and format are not recorded in the repository, Form Generator obtains this information from source objects in object libraries. Form Generator only uses the corresponding TXT preferences if no appropriate source object exists in any object library, or if an appropriate source object exists but the relevant property has not been set. For more information, refer to:

•	Setting the Maximum Length property of generated items

•	Layout preferences - text item


Standard source objects and object libraries

Related Topics

During generation, Form Generator analyzes each object it creates to determine which standard source object it expects to use in an object library. Form Generator can use a standard source object from an object library during generation providing the standard source object:

•	has one of the recognized names

•	is of the correct object type

Form Generator uses the names of standard source objects to determine which to use during generation. Standard source objects have names prefixed with CGSO$. The rest of the object's name indicates the generated objects for which it can be the source. For example, the CGSO$CHECK_BOX standard source object is the source object for generated check boxes. For a list of the recognized names of standard source objects, refer to Alphabetical list of standard source objects and object types.

The standard source objects are arranged in a predefined hierarchy. If Form Generator does not find the expected standard source object, it searches object libraries for the parent of the standard source object and uses that instead. Note that this hierarchy does not represent a hierarchy of subclassing relationships. For a graphical representation of the standard source object hierarchy, refer to Hierarchy of standard source objects.

Standard source object suffixes

In some cases, you can further refine the standard source objects from which Form Generator obtains properties for generated objects by adding the suffixes below to the standard source object name:

Order	Suffix	Use if generated object will be a:
1	_MR	multi-record block, or an item in a multi-record block
2	_CT	control block (i.e. the module component contains only unbound items)
3	_DO	display only item
4	_MD	mandatory item
You can use the above suffixes individually or in combination. Form Generator will use the most appropriate standard source item, according to the order of precedence indicated.

Form Generator first searches object libraries for a standard source object name containing all of the applicable suffixes. If no such standard source object exists, Form Generator searches object libraries for the standard source object name that contains the greatest number of appropriate suffixes. If two or more standard source objects contain the same number of appropriate source objects, Form Generator uses the one containing the suffixes highest in the order of precedence (see table above).

Note that Form Generator ignores a standard source object if any of the suffixes are not applicable.

Examples

Example 1: Form Generator is going to create a display-only check box in a multi-record block.

Form Generator searches object libraries for each of the following objects, in the order shown:

CGSO$CHECK_BOX_MR_DO

CGSO$CHECK_BOX_MR

CGSO$CHECK_BOX_DO

CGSO$CHECK_BOX

CGSO$DEFAULT_ITEM_MR_DO

CGSO$DEFAULT_ITEM_MR

CGSO$DEFAULT_ITEM_DO

CGSO$DEFAULT_ITEM

As soon as Form Generator finds one of these objects, it subclasses or copies the object into the generated form and abandons the search. If Form Generator fails to find any of these standard source objects, it creates a check box item using default item properties.

Example 2: An object library contains the following objects:

CGSO$CHAR_MD_DO

CGSO$CHAR_MR

CGSO$CHAR_DO

CGSO$CHAR

Form Generator is generating a form from a module that contains a display-only character item in a multi-record block. Form Generator subclasses or copies the CGSO$CHAR_MR standard source object into the generated form because:

•	the _MD suffix in CGSO$CHAR_MD_DO is inappropriate

•	the _DO suffix in CGSO$CHAR_DO is lower in the suffix order of precedence than _MR

Example 3: An object library contains the following objects:

CGSO$DATE_MR

CGSO$CHAR_MR_MD

CGSO$CHAR_DO

CGSO$DEFAULT_ITEM

Form Generator is generating a form from a module that contains a mandatory date item. Form Generator subclasses or copies the CGSO$DEFAULT_ITEM standard source object into the generated form because:

•	the _MR suffix in CGSO$DATE_MR is inappropriate

•	the only occurrences of CGSO$CHAR (i.e. the parent of CGSO$DATE) have inappropriate suffixes (_MR_MD and _DO)

If the object library had contained a standard source object called CGSO$CHAR or failing that, an object called CGSO$DEFAULT_ITEM_MD, Form Generator would have used these objects instead.


 Alphabetical list of standard source objects and object types

Related Topics

Below is a list of the standard source objects you can include in an object library:

Standard Source Object Name	Possible Suffixes	Object Library Object Type	Type of Generated Item	Parent Standard Source Object Name
CGSO$AIBUTTON	CT	Item	Button	CGSO$BUTTON
CGSO$ALPHA	MR, CT, DO, MD	Item	Alpha	CGSO$CHAR
CGSO$BLOCK	MR, CT	Block	-	-
CGSO$BLOCK_MULTIREGION	-	Block	-	CGSO$BLOCK
CGSO$BLOCK_NVGTR	-	Block	-	-
CGSO$BUTTON	MR, CT	Item	Button	CGSO$DEFAULT_ITEM
CGSO$CANVAS	-	Canvas	-	-
CGSO$CANVAS_NVGTR	-	Canvas	-	-
CGSO$CANVAS_POPLIST	-	Canvas	-	-
CGSO$CANVAS_POPUP	-	Canvas	-	-
CGSO$CANVAS_SPREAD	-	Canvas	-	-
CGSO$CANVAS_STFOOT		Canvas	-	CGSO$CANVAS
CGSO$CANVAS_STHEAD		Canvas	-	CGSO$CANVAS
CGSO$CANVAS_TAB	-	Canvas	-	-
CGSO$CHAR	MR, CT, DO, MD	Item	Char	CGSO$DEFAULT_ITEM
CGSO$CHAR_MLINE	MR, CT, DO, MD	Item	Char	CGSO$CHAR
CGSO$CHART	MR, CT, DO, MD	Item	Chart	CGSO$DEFAULT_ITEM
CGSO$CHECK_BOX	MR, CT, DO, MD	Item	Check Box	CGSO$DEFAULT_ITEM
CGSO$COMBO	MR, CT, DO, MD	Item	Combo Box	CGSO$DEFAULT_ITEM
CGSO$CONTEXT	MR, CT, DO, MD	Item	Char	CGSO$DEFAULT_ITEM
CGSO$CUR_REC_IND	MR, CT, DO, MD	Item	Char	CGSO$DEFAULT_ITEM
CGSO$DATE	MR, CT, DO, MD	Item	Date	CGSO$CHAR
CGSO$DATETIME	MR, CT, DO, MD	Item	Datetime	CGSO$CHAR
CGSO$DEFAULT_ITEM	MR, CT, DO, MD	Item	-	-
CGSO$DESC_FLEX	MR, CT, DO, MD	Item	Char	CGSO$DEFAULT_ITEM
CGSO$DISPLAY_ITEM	MR, CT, MD	Item	Display item	CGSO$DEFAULT_ITEM
CGSO$DRILL_IND	MR, CT, DO, MD	Item	Char	CGSO$DEFAULT_ITEM
CGSO$FILE	MR, CT, DO, MD	Item	File	CGSO$DEFAULT_ITEM
CGSO$FRAME_RECT	-	Frame	-	-
CGSO$FRAME_HORZ_LINES	-	Frame	-	-
CGSO$FRAME_LINE_TOP	-	Frame	-	-
CGSO$HTOOL_BLK_NVGTR	-	Block	Block	-
CGSO$HTOOL_CNV_NVGTR	-	Canvas	Canvas	-
CGSO$HTREE	-	Item	Hierarch. Tree	CGSO$DEFAULT_ITEM
CGSO$IMAGE	MR, CT, DO, MD	Item	Image	CGSO$DEFAULT_ITEM
CGSO$INTEGER	MR, CT, DO, MD	Item	Integer	CGSO$NUMBER
CGSO$LOB	MR, CT, DO, MD	Item	LOB	CGSO$DEFAULT_ITEM
CGSO$LONG	MR, CT, DO, MD	Item	Long	CGSO$DEFAULT_ITEM
CGSO$LOV	-	LOV	-	-
CGSO$LOV_BUT	MR, CT	Item	Button	-
CGSO$MONEY	MR, CT, DO, MD	Item	Money	CGSO$NUMBER
CGSO$NUMBER	MR, CT, DO, MD	Item	Number	CGSO$CHAR
CGSO$OCX	MR, CT, DO, MD	Item	OCX Control	CGSO$DEFAULT_ITEM
CGSO$OLE	MR, CT, DO, MD	Item	Ole Container	CGSO$DEFAULT_ITEM
CGSO$POP	MR, CT, DO, MD	Item	Pop List	CGSO$DEFAULT_ITEM
CGSO$RADIO	MR, CT, DO, MD	Item	Radio Group	CGSO$DEFAULT_ITEM
CGSO$RADIO_BUTTON	MR, CT, DO, MD	Item	Radio Button	-
CGSO$RECORD_GROUP	-	Record Grp	Record Grp	-
CGSO$SOUND	MR, CT, DO, MD	Item	Sound	CGSO$DEFAULT_ITEM
CGSO$TAB_PAGE	-	Tab Page	-	-
CGSO$TEXT_LIST	MR, CT, DO, MD	Item	Text List	CGSO$DEFAULT_ITEM
CGSO$TIME	MR, CT, DO, MD	Item	Time	CGSO$CHAR
CGSO$TREE_ITEM_NVGTR	-	Item	H. Tree Item	-
CGSO$VTOOL_BLK_NVGTR	-	Block	Block	-
CGSO$VTOOL_CNV_NVGTR	-	Canvas	Canvas	-
CGSO$WINDOW	-	Window	-	-
CGSO$WINDOW_NVGTR	-	Window	-	-

Note that the shipped object library ofgstnd1.olb contains all of the standard source objects. The shipped object library ofgwebol.olb contains a subset of the standard source objects.


 Hierarchy of standard source objects

Related Topics

Form Generator regards standard source objects as arranged in a predefined hierarchy. If Form Generator does not find the required standard source object, it searches object libraries for the parent of that standard source object and uses the parent instead. Note that this hierarchy does not represent a hierarchy of subclassing relationships.

The shipped object library ofgstnd1.olb contains all of the standard source objects. The shipped object library ofgwebol.olb contains a subset of the standard source objects.

For more information about using standard source objects, refer to Standard source objects and object libraries.

Below is a graphical representation of the hierarchy of standard source objects:

CGSO$BLOCK

CGSO$BLOCK_MR

CGSO$BLOCK_CT

CGSO$BLOCK_MULTIREGION

CGSO$CANVAS

CGSO$STFOOT

CGSO$STHEAD

CGSO$CANVAS_TAB

CGSO$CANVAS_SPREAD

CGSO$CANVAS_POPUP

CGSO$CANVAS_POPLIST

CGSO$DEFAULT_ITEM

CGSO$DEFAULT_ITEM_MR

CGSO$DEFAULT_ITEM_CT

CGSO$DEFAULT_ITEM_DO

CGSO$DEFAULT_ITEM_MD

CGSO$BUTTON

CGSO$AIBUTTON

CGSO$AIBUTTON_CT

CGSO$BUTTON_MR

CGSO$BUTTON_CT

CGSO$CHAR

CGSO$CHAR_MR

CGSO$CHAR_CT

CGSO$CHAR_DO

CGSO$CHAR_MD

CGSO$ALPHA

CGSO$ALPHA_MR

CGSO$ALPHA_CT

CGSO$ALPHA_DO

CGSO$ALPHA_MD

CGSO$CHAR_MLINE

CGSO$CHAR_MLINE_MR

CGSO$CHAR_MLINE_CT

CGSO$CHAR_MLINE_DO

CGSO$CHAR_MLINE_MD

CGSO$DATE

CGSO$DATE_MR

CGSO$DATE_CT

CGSO$DATE_DO

CGSO$DATE_MD

CGSO$DATETIME

CGSO$DATETIME_MR

CGSO$DATETIME_CT

CGSO$DATETIME_DO

CGSO$DATETIME_MD

CGSO$NUMBER

CGSO$NUMBER_MR

CGSO$NUMBER_CT

CGSO$NUMBER_DO

CGSO$NUMBER_MD

CGSO$INTEGER

CGSO$INTEGER_MR

CGSO$INTEGER_CT

CGSO$INTEGER_DO

CGSO$INTEGER_MD

CGSO$MONEY

CGSO$MONEY_MR

CGSO$MONEY_CT

CGSO$MONEY_DO

CGSO$MONEY_MD

CGSO$TIME

CGSO$TIME_MR

CGSO$TIME_CT

CGSO$TIME_DO

CGSO$TIME_MD

CGSO$CHART

CGSO$CHART_MR

CGSO$CHART_CT

CGSO$CHART_DO

CGSO$CHART_MD

CGSO$CHECK_BOX

CGSO$CHECK_BOX_MR

CGSO$CHECK_BOX_CT

CGSO$CHECK_BOX_DO

CGSO$CHECK_BOX_MD

CGSO$COMBO

CGSO$COMBO_MR

CGSO$COMBO_CT

CGSO$COMBO_DO

CGSO$COMBO_MD

CGSO$CONTEXT

CGSO$CONTEXT_MR

CGSO$CONTEXT_CT

CGSO$CONTEXT_DO

CGSO$CONTEXT_MD

CGSO$CUR_REC_IND

CGSO$CUR_REC_IND_MR

CGSO$CUR_REC_IND_CT

CGSO$CUR_REC_IND_DO

CGSO$CUR_REC_IND_MD

CGSO$DESC_FLEX

CGSO$DESC_FLEX_MR

CGSO$DESC_FLEX_CT

CGSO$DESC_FLEX_DO

CGSO$DESC_FLEX_MD

CGSO$DISPLAY_ITEM

CGSO$DISPLAY_ITEM_MR

CGSO$DISPLAY_ITEM_CT

CGSO$DISPLAY_ITEM_MD

CGSO$DRILL_IND

CGSO$DRILL_IND_MR

CGSO$DRILL_IND_CT

CGSO$DRILL_IND_DO

CGSO$DRILL_IND_MD

CGSO$FILE

CGSO$FILE_MR

CGSO$FILE_CT

CGSO$FILE_DO

CGSO$FILE_MD

CGSO$HTREE

CGSO$IMAGE

CGSO$IMAGE_MR

CGSO$IMAGE_CT

CGSO$IMAGE_DO

CGSO$IMAGE_MD

CGSO$LOB

CGSO$LOB_MR

CGSO$LOB_CT

CGSO$LOB_DO

CGSO$LOB_MD

CGSO$LONG

CGSO$LONG_MR

CGSO$LONG_CT

CGSO$LONG_DO

CGSO$LONG_MD

CGSO$OLE

CGSO$OLE_MR

CGSO$OLE_CT

CGSO$OLE_DO

CGSO$OLE_MD

CGSO$POP

CGSO$POP_MR

CGSO$POP_CT

CGSO$POP_DO

CGSO$POP_MD

CGSO$RADIO

CGSO$RADIO_MR

CGSO$RADIO_CT

CGSO$RADIO_DO

CGSO$RADIO_MD

CGSO$RADIO_BUTTON

CGSO$RADIO_BUTTON_MR

CGSO$RADIO_BUTTON_CT

CGSO$RADIO_BUTTON_DO

CGSO$RADIO_BUTTON_MD

CGSO$SOUND

CGSO$SOUND_MR

CGSO$SOUND_CT

CGSO$SOUND_DO

CGSO$SOUND_MD

CGSO$TEXT_LIST

CGSO$TEXT_LIST_MR

CGSO$TEXT_LIST_CT

CGSO$TEXT_LIST_DO

CGSO$TEXT_LIST_MD

CGSO$FRAME_RECT

CGSO$FRAME_HORZ_LINES

CGSO$FRAME_LINE_TOP

CGSO$HTOOL_BLK_NVGTR

CGSO$HTOOL_CNV_NVGTR

CGSO$LOV

CGSO$LOV_BUT

CGSO$LOV_BUT_MR

CGSO$LOV_BUT_CT

CGSO$RADIO_BUTTON

CGSO$RADIO_BUTTON_MR

CGSO$RADIO_BUTTON_CT

CGSO$RADIO_BUTTON_DO

CGSO$RADIO_BUTTON_MD

CGSO$RECORD_GROUP

CGSO$TREE_ITEM_NVGTR

CGSO$VTOOL_BLK_NVGTR

CGSO$VTOOL_CNV_NVGTR

CGSO$WINDOW_NVGTR

CGSO$WINDOW


 Alphabetical list of shipped implementation source objects

Related Topics

Below is a list of the implementation source objects in the shipped object library ofgstnd1.olb that provide default Oracle Forms functionality. Also included are the CG$ template button items used in versions of Form Generator prior to Release 2 to provide default Oracle Forms functionality.

For more information about shipped implementation source objects, refer to Form Generator and object libraries.

Shipped Implementation Source Object	Default Oracle Forms Functionality	CG$ Template Button Item
CGAI$CANCEL_QUERY	Cancel Query	CG$CQ
CGAI$CLEAR_BLOCK	Clear Block	CG$CB
CGAI$CLEAR_ITEM	Clear Item	CG$CF
CGAI$CLEAR_RECORD	Clear Record	CG$CR
CGAI$COMMIT	Commit	CG$CM
CGAI$COPY	Copy	CG$CP
CGAI$COUNT_HITS	Count Query Hits	CG$CH
CGAI$CUT	Cut	CG$CT
CGAI$DISPLAY_ERROR	Display Error	CG$DE
CGAI$DUPL_ITEM	Duplicate Item	CG$DF
CGAI$DUPLICATE_RECORD	Duplicate Record	CG$DR
CGAI$EDIT	Edit Item	CG$ED
CGAI$ENTER_QUERY	Enter Query Mode	CG$EQ
CGAI$EXECUTE_QUERY	Execute Query	CG$XQ
CGAI$EXIT	Exit	CG$EX
CGAI$FETCH_NEXT_SET	Fetch Next Set	CG$FN
CGAI$HELP	Help	CG$HP
CGAI$INSERT_RECORD	Insert Record	CG$IR
CGAI$KEYS	Keys	CG$KY
CGAI$LAST_CRITERIA	Last Criteria	CG$LQ
CGAI$LOCK_RECORD	Lock Record	CG$LR
CGAI$LOV	List of Values	CG$LV
CGAI$NEXT_BLOCK	Next Block	CG$NB
CGAI$NEXT_ITEM	Next Item	CG$NF
CGAI$NEXT_PAGE	Next Page	CG$NP
CGAI$NEXT_RECORD	Next Record	CG$NR
CGAI$PASTE	Paste	CG$PA
CGAI$PREV_BLOCK	Previous Block	CG$PB
CGAI$PREV_ITEM	Previous Item	CG$PF
CGAI$PREV_PAGE	Previous Page	CG$PP
CGAI$PREV_RECORD	Previous Record	CG$PR
CGAI$PRINT	Print	CG$OP
CGAI$REFRESH	Refresh	CG$RF
CGAI$REMOVE_RECORD	Remove Record	CG$RR
CGAI$ROLLBACK	Rollback	CG$RB
CGAI$SCROLL_DOWN	Scroll Down	CG$SD
CGAI$SCROLL_UP	Scroll Up	CG$SU


 Alphabetical list of obsolete preferences and the equivalent object library properties

Related Topics

Form Generator support for object libraries in Oracle Designer release 2 onwards has resulted in the following preferences becoming obsolete. We strongly recommend you do not use these preferences. However, to ensure backward-compatibility, in Release 2 onwards you can set the OLBOLD preference to specify Form Generator continues to use these preferences instead of properties in object libraries.

Note:	The OLBOLD preference and the obsolete preferences will be removed in future releases of Form Generator.

Obsolete Preference	Equivalent Object Library Property
AUTOHP	Display Hint Automatically
BLKSBW	Scroll Bar Width
BLKVSB	Show Vertical Scroll Bar
COLSEC	Enforce Column Security
IMGBEV	Image Item - Bevel
IMGCMP	Image Item - Compression Quality
IMGDHT	Image Item - Height
IMGDWD	Image Item - Width
IMGHSB	Image Item - Show Horizontal Scroll Bar
IMGQLT	Image Item - Display Quality
IMGSZS	Image Item - Sizing Style
IMGVSB	Image Item - Show Vertical Scroll Bar
LOVNAV	Push Button - Keyboard Navigable
TXTBEV	Text Item - Bevel
WINCLO	Window - Close Allowed
WINDLG	Window - Window Style
WINFHT	Window - Height
WINFIX	Window - Resize Allowed
WINFWD	Window - Width
WINFXP	Window - X Position
WINFYP	Window - Y Position
WINHSB	Window - Show Horizontal Scrollbar
WINICN	Window - Icon Filename
WINICO	Window - Minimize Allowed
WINICT	Window - Minimized Title
WINMOV	Window - Move Allowed
WINVSB	Window - Show Vertical Scrollbar
WINZOO	Window - Maximize Allowed


Generating windows, canvases, blocks, and items

Window generation

Canvas generation

Toolbar generation

Block generation

Item generation

Lookup item generation

Calculated item generation

Button generation

Check box item generation

Combo box item generation

Display item generation

Hierarchical tree item generation

Image item generation

Mirror item generation

Navigator style item generation

OLE container item generation

Poplist item generation

Radio group and radio button generation

Text item generation

Text list item generation

Item group generation

Stacked item group generation

List of Values indicator button generation

Frame generation

Graphic object and graphic text generation

Bean Area item generation

Custom user interface component generation


Window generation

About windows

About generated windows

Generating windows

Generated window properties

Repository window properties used by Form Generator

How Form Generator determines the properties of a generated window

Setting the generated window title

Setting the MDI window title

User windows from the template and generated forms

Including a root window in a generated form

Including a console in the generated form

Generating launch windows using Form Generator


About windows

Related Topics

A window is a container for all visual objects that make up an Oracle Forms application, including canvases. A single form can include any number of windows. Every new form automatically includes a default window named WINDOW1.

By itself, the window object is an empty frame. The frame provides a title bar and handles for interacting with the window, making it possible for end users to scroll, move, and resize the window.

A window typically contains a canvas with navigable items, and thus is invoked at runtime in response to navigation to items on that canvas. Windows also can be displayed and closed programmatically, independent of any item navigation events. At runtime, when a window is displayed programmatically, or when navigation occurs to an item on a canvas assigned to that window, Oracle Forms displays the window with the appropriate canvas background.

Oracle Forms and MDI (Multiple Document Interface) window management

Oracle Forms fully supports the MS Windows MDI (Multiple Document Interface) system of window management. MDI applications display a default parent window (created by the window manager at runtime) called the application window.

All other windows in the application are either document windows or dialog windows.

Document windows are always displayed within the MDI application window frame. If the operator resizes the application window so that it is smaller than a document window, the document window is clipped. Operators can maximize a document window so that it occupies the entire content area of the application window.

Dialog windows are free-floating, and the operator can move them outside the application window if they are defined as Movable. If the operator resizes the application window to make it smaller than a dialog window, the dialog window is not clipped.


About generated windows

Related Topics

Form Generator generates a window from a window definition held in the repository.

Form Generator names each generated window (except for the root window, if one is created) with the value entered for the Name property of the repository window definition.

If a module component has not been associated with a repository window definition, during generation Form Generator generates a window in which to display the corresponding generated block.  Form Generator gives the generated window the same name as the module component


Generating windows

Related Topics

To generate a window from a repository window definition:

1.	Create a repository window definition.  How

2.	Set repository properties for the window definition as appropriate.

The object libraries supplied with Form Generator already contain a suitable object from which to subclass or copy properties. If you are not using one of the supplied object libraries, we recommend you add a suitable object to one of the object libraries you are using as described in the next step.

3.	(recommended) Create a window in an object library and set the properties you want Form Generator to copy or subclass in one of the following ways:

•	by creating a window in the object library called CGSO$WINDOW

•	by specifying an object in the object library for Form Generator to use when generating the window, using the Template/Library Object property of the repository window definition

For more information about copying or subclassing objects from an object library, refer to Using object libraries.

4.	(Optional)  Use preferences to specify further properties of generated windows.

For a list of preferences to use, refer to Layout Preferences - Window. Note that a number of window layout preferences are obsolete in Oracle Designer release 2 onwards.

Using templates and obsolete preferences

We strongly recommend you use objects in object libraries to set properties of generated windows. However, to ensure backwards compatibility, in Oracle Designer release 2 onwards you can continue to use obsolete window layout preferences and windows in a template form to define properties of generated windows. For more information, refer to:

•	Generated window properties

•	How Form Generator determines the properties of a generated window


Generated window properties

Related Topics

For more information about how Form Generator determines which potential source of information to use to set properties, refer to How Form Generator determines the properties of a generated window

Window Property	Derived from or set to:	Notes and Related Topics	Backwards compatibility only:
Name	Name property of repository window definition	If a repository window definition does not exist, Form Generator creates a window called module_name  (followed by a number if a window with this name already exists)
Functional
Title	Title property of repository window definition or object library object properties	Setting the generated window title	Template property
Width and Height	Width and Height properties of repository window definition or object library object properties	If the generated window is scrollable, Form Generator uses specified window dimensions. If the generated window is not scrollable (i.e. either the Scrollable property or the WINSCR preference is set to No) and window dimensions are initially too small to display the content canvas, Form Generator increases the initial window dimensions to the size of the largest content canvas displayed in the window.	Template property or obsolete preferences WINFWD, WINFHT - not recommended
X Position and Y Position	X Position and Y Position properties of repository window definition or object library object properties		Template property or obsolete preferences WINFXP, WINFYP - not recommended
Show Horizontal Scrollbar and Show Vertical Scrollbar	Object library object properties	If the generated window is not scrollable (i.e. either the Scrollable property or the WINSCR preference is set to No), Form Generator sets these properties to No.	Template properties or obsolete preferences WINHSB, WINVSB - not recommended
Move allowed	Object library object property		Template property or obsolete preference WINMOV - not recommended
Inherit Menu	Object library object property		Template property
Close Allowed	Object library object property		Template property or obsolete preference WINCLO - not recommended
Maximize Allowed	Object library object property		Template property or obsolete preference WINZOO - not recommended
Minimize Allowed	Object library object property		Template property or obsolete preference WINICO - not recommended
Fixed Size	Object library object property		Template property or obsolete preference WINFIX - not recommended
Icon Filename	Object library object property	The icon must be available to the generated form at runtime.	Template property or obsolete preference WINICN - not recommended
Minimized Title	Object library object property		Template property or obsolete preference WINICT - not recommended
Window Style	Object library object property		Template property or obsolete preference WINDLG - not recommended


Repository window properties used by Form Generator

Related Topics

Repository Window Property	Use to specify to Form Generator	Notes and Related Topics
Name
Template/Library Object	Object library object
Display
Title	Title property of generated window
Scrollable	whether window is scrollable
Width	Width property of generated window
Height	Height property of generated window
Placement
X Position	X Position property of generated window
Y Position	Y Position property of generated window
Documentation
Description	Not used by Form Generator.
Notes	Not used by Form Generator.


How Form Generator determines the properties of a generated window

Related Topics

When generating a window, you can set the generated window's properties using:

•	(recommended) properties of the repository window definition

•	(not recommended) if you set OLBOLD to Yes, properties of a suitable template object or obsolete preferences

•	if you set OLBOLD to No, properties of source objects in object libraries or properties of a suitable template object

•	hard coded Oracle Forms default values

During generation, Form Generator analyzes each of the above in turn until there is enough information to create the window. The process is presented below:

Notes

•	The generated form has the same coordinate system as the template form. If no template form is used, the Real coordinate system is used and the Units property defaults to Inch. For more information, refer to Notes on coordinate systems and Form Generator.

•	If a generated window is not scrollable and any content canvas to be displayed in the window is larger than the window, Form Generator increases the size of the window sufficiently to display the entire content canvas.

•	When analyzing the template form for a suitable template object from which to set properties, Form Generator looks for a window as follows:

−	Form Generator first tries to use a window called CG$WINDOW_n, where n is the position of the repository window definition in the sequence of windows defined in the repository. For example, if generating the third window defined in the repository, Form Generator attempts to use CG$WINDOW_3.

−	If Form Generator cannot locate a window called CG$WINDOW_n, it attempts to use a window called CG$WINDOW. For example, if generating the third window defined in the repository and Form Generator cannot locate CG$WINDOW_3, it attempts to use CG$WINDOW.

Having identified the template window to use, Form Generator sets the properties of the generated window (excluding the window dimensions and X and Y coordinates) to those of the selected template window.

Illustration: Template windows example

•	The process of deriving the Title property of a generated window is different to the one presented above. For more information, refer to Setting the generated window title.


Setting the generated window title

Related Topics

To set the title of the window in which a generated form will be displayed:

•	Set the Title property of the repository window definition.

Notes

If you do not specify a value for the Title property, Form Generator creates the window title by evaluating the following conditions:

if	the repository window definition Title property is null, Form Generator creates a window title using the Title property of a window in an object library, and sets the repository window definition's Title property to this value
otherwise, if	the object library window Title property is null, Form Generator creates a window title using the template window title and sets the repository window definition's Title property to this value
otherwise, if	the template window Title property is null, Form Generator creates a window title using the first line of Module Top Title as follows, and sets the repository window definition's Title property to this value: <first line of Module Top Title>: Window<window number>
otherwise, if	the Module Top Title is null, Form Generator creates a window title using the Module Name as follows, and sets the repository window definition's Title property to this value: <Module Name>: Window<window number>


Setting the MDI window title

Related Topics

About setting the MDI window title

The MDI window title is an important way of distinguishing between different applications (for more information about the MDI application window, refer to About windows.).

Form Generator provides you with different ways of setting the MDI window title of generated applications, including:

•	entering PRE-FORM trigger code in the template form

•	entering application logic in the repository (which can include calls to code in attached libraries)

As well as setting the MDI window title to a hard coded text string, you can also use either of the above methods in combination with one or more CG$ generator items to include repository information in the MDI window title. For more information about accessing repository information, refer to Accessing repository properties using Release 1.x style generator items from the template.

Example

The ofgpc1t and ofgpc2t standard templates shipped with Oracle Designer include a CG$AT generator item and the following form-level PRE-FORM trigger code.

set_window_property(FORMS_MDI_WINDOW,TITLE,
get_item_property('CG$CTRL.CG$AT',HINT_TEXT));

During generation, Form Generator:

•	creates an item called CG$AT in the CG$CTRL block, and sets its Hint property to the repository application system's Title property.

•	creates code (called from the generated PRE-FORM trigger) to populate the MDI window title from the Hint property of the CG$AT item

To hard code the MDI window title using a PRE-FORM trigger in the template form:

1.	Use Form Builder to open or create a template form.

2.	Add code to the PRE-FORM trigger to set the MDI window title, similar to that shown below:

set_window_property(FORMS_MDI_WINDOW,TITLE,'required_MDI_window_title');

where required_MDI_window_title is the title you want to give the MDI window.

To hard code the MDI window title using application logic:

1.	Use the Design Editor to enter the following user-defined application logic for the PRE-FORM event to set the window title using the Hint property from the generated item:

begin
set_window_property(FORMS_MDI_WINDOW,TITLE,'required_MDI_window_title');
end;

where required_MDI_window_title is the title you want to give the MDI window.

To include repository information from generator items in the MDI window title using a PRE-FORM trigger in the template form:

1.	Use Form Builder to open or create a template form.

2.	On a content or stacked header or footer canvas (e.g. CG$HEADER) in the template form, create a generator item defining the information you want to access.

For a list of the CG$ generator items that contain repository information, refer to List of Release 1.x style CG$ generator items providing access to repository properties.

3.	Set the Visible property of the item to False.

4.	Create a form-level PRE-FORM trigger in the template form.

5.	Add code to the PRE-FORM trigger to set the MDI window title using the Hint property of the generator item, similar to that shown below:

set_window_property(FORMS_MDI_WINDOW,TITLE,
get_item_property('CG$CTRL.generator_item',HINT_TEXT));

where generator_item is a CG$ generator item.

To include repository information from generator items in the MDI window title using application logic:

1.	Use Form Builder to open or create a template form.

2.	On a content or stacked header or footer canvas (e.g. CG$HEADER) in the template form, create a CG$ generator item defining the information you want to access.

For a list of the CG$ generator items that contain repository information, refer to List of Release 1.x style CG$ generator items providing access to repository properties.

3.	Give the newly created item the correct five character name.

4.	Set the Visible property of the item to False.

5.	Use the Design Editor to enter the following application logic for the PRE-FORM event to set the window title using the Hint property from the generated item:

begin
set_window_property(FORMS_MDI_WINDOW,TITLE,
get_item_property('CG$CTRL.generator_item',HINT_TEXT));
end;

where generator_item is a CG$ generator item.


User windows from the template and generated forms

Related Topics

About user windows

Including user windows in generated forms


Including a root window in a generated form

Related Topics

What is an Oracle Forms root window?

A root window is a window that has special characteristics that make it useful in multiple-form applications (i.e. applications in which several form modules run at the same time). Using a root window enables you to have a single window that:

•	always displays the console for the currently active form (an advantage only on platforms other than MS Windows, because on MS Windows, the console is always displayed on the MDI application window)

•	displays the content canvas assigned to the root window defined for the currently active form

At runtime, only one root window can be displayed at a time. When several forms, each of which has a root window, are running at the same time, the result is a single root window that displays the console for whichever form is currently the active form in the application.

For more information about root windows, refer to the Oracle Forms help system.

To include a root window in a generated form:

1.	Create a repository window definition.  How

2.	Set the Name property of the newly created window definition to ROOT_WINDOW.

3.	Define any other window properties, as required.


Including a console in the generated form

Related Topics

What is the Oracle Forms console?

The console is the name given to the Oracle Forms status line and message line, which are displayed at the bottom of the window.

The window in which the console appears depends on the runtime environment:

•	in a Microsoft Windows environment, the console always appears at the bottom of the MDI application window regardless of the window specified by the Console Window property (although the Console Window property must be set to the name of a window in the form to indicate the console is to be displayed)

•	in other environments, the console appears in the window specified by the Console Window property

To set the Console Window property of a generated form:

1.	Set CONWIN to Yes.

2.	If you are using a template form, set the template's Console Window property to the name of a window in the generated form.

If you are not using a template form (or the template's Console Window property is not set to a window in the generated form), Form Generator sets the generated form's Console Window property to the name of the window containing the first block in the generated form that contains a displayed item.


Generating launch windows using Form Generator

Related Topics

About launch windows

A launch window is an Oracle Forms window containing buttons to invoke one or more application modules.

To generate a launch window:

1.	Create a new module in the repository.  How

2.	Create a repository window definition.  How

For information about setting properties of generated windows, refer to Generating windows.

3.	Create a navigation action item in the window and specify the module you want to navigate to.  How

For more information about setting properties of buttons generated from navigation action items, refer to Generating buttons to navigate to other blocks, windows, and modules.

4.	Create further navigation action items as required.

5.	Generate the module.


About user windows

Related Topics

A user window is any window in the template form with a name that does not begin with CG$.

Form Generator always includes user windows (without modification) in the generated form.

Note:	Form Generator does not generate items into user windows, with the exception of the root window (for more information about root windows, refer to Including a root window in a generated form).

We recommend you associate user canvases with user windows.


Including user windows in generated forms

Related Topics

To include user windows from the template in a generated form:

1.	In Form Builder, open or create a template form.

2.	Create a new window.

3.	Give the newly created window a name that does not begin with CG$.

4.	Define any other window properties, as required.


Canvas generation

Related Topics

About canvases

Content canvas generation

Stacked canvas generation

Tab canvas generation

When does Form Generator expand canvases?

User canvases from the template and generated forms


About canvases

Related Topics

Canvases are the background objects on which are placed the interface items (text items, check boxes, radio groups, etc.) and graphic objects/text (boxes, lines, images, etc.) that users see and interact with when they run a form. There are different types of canvas:

•	content canvas

•	stacked canvas

•	horizontal toolbar canvas

•	vertical toolbar canvas

•	tab canvas (comprising tab pages)


Content canvas generation

Related Topics

About content canvases

About generated content canvases

Generating content canvases

Generated content canvas properties

How Form Generator determines the dimensions of a generated content canvas

See also

Placing blocks on canvases


About content canvases

Related Topics

A content canvas is a background object that occupies the entire content pane of the window in which it is displayed. Every window must be associated with at least one content canvas. Only one content canvas will ever be visible in a window at any one time.


About generated content canvases

Related Topics

Form Generator generates a content canvas (sometimes referred to as a page) when the Placement property for a module component is New content canvas.

Form Generator gives each generated content canvas a name of the format CG$PAGE_n, where n is the sequence number of the content canvas.

For more information about blocks and content canvases (including placing blocks side-by-side on the same content canvas), refer to Placing blocks on canvases.


Generating content canvases

Related Topics

To generate a content canvas:

1.	Set the Placement property of a module component to New content canvas.  How

2.	Set repository properties for the generated content canvas as appropriate.

The object libraries supplied with Form Generator already contain a suitable object from which to subclass or copy properties. If you are not using one of the supplied object libraries, we recommend you add a suitable object to one of the object libraries you are using as described in the next step.

3.	(recommended) Create a canvas in an object library and set the properties you want Form Generator to copy or subclass in one of the following ways:

•	by creating a canvas in the object library called CGSO$CANVAS

•	by specifying an object in the object library for Form Generator to use when generating the content canvas, using the Placement Template/Library Obj property of the repository module component definition

For more information about copying or subclassing objects from an object library, refer to Using object libraries.

4.	(Optional)  Use preferences to specify further properties of generated content canvases.

For a list of preferences to use, refer to Layout Preferences - Content canvas.

Using templates and preferences

We strongly recommend you use repository properties and objects in object libraries to set properties of generated content canvases. However, to ensure backwards compatibility, in Oracle Designer release 2 onwards you can continue to use preferences and content canvases in a template form to define properties of generated content canvases.

If none of the object libraries you are using contains a suitable source object, Form Generator looks for a content canvas in the template with the same name as the content canvas that will be generated (if a content canvas with the same name does not exist in the template, Form Generator looks for a template content canvas with the name CG$PAGE). If no suitable canvas exists in the template, Form Generator uses preferences to set the dimensions of the content canvas and Oracle Forms default values to set other properties. For more information, refer to How Form Generator determines the dimensions of a generated content canvas.

Note that Form Generator ignores the Sequence Number property and the Window property in the template form, and derives the corresponding information from repository information for the module component.


Generated content canvas properties

Related Topics

Explicit Properties

Content Canvas Property	Derived from or set to:	Notes and Related Topics	Backwards compatibility
Window	Module component's Window property, or object library object properties
Width and Height	Width and Height properties of first module component on canvas (or object library object properties)	If any blocks on the canvas are wider than the initial canvas width, Form Generator increases the canvas width accordingly. Form Generator also increases canvas width when placing blocks side-by-side on the same canvas. If you specify canvas expansion, Form Generator may expand the canvas vertically.  For more information, refer to: • How Form Generator determines the dimensions of a generated content canvas • When does Form Generator expand canvases?	Template property or preferences PAGCWD, PAGCHT Picture
Implicit Properties

Content Canvas Property	Derived from or set to:	Notes and Related Topics	Backwards compatibility
Margins (Left and Right) Picture	PAGMAR
Allow Expansion	Canvas height expanded to fit specified number of rows	If number of rows not specified, Form Generator places as many rows as possible on the unexpanded canvas. For more information refer to: • When does Form Generator expand canvases? • Number of rows in a block
Header	As defined in template
Header Separator Picture	PAGHDS	Vertical space between header and first block.
Footer	As defined in template
Footer Separator Picture	PAGFTS	Vertical space between last block and footer.
Inter-Block Separator Picture	PAGIBS
Context Depth Picture	PAGCON	Block context area and block context item generation
Title for First Block Picture	PAGTFB	A title is often superfluous for the first block on a canvas (e.g. when the header gives similar information).
Relative Block Indentation Picture	PAGBIN	Relative block indentation
Block Stubs Picture Picture	PAGSTB	Block stub generation


How Form Generator determines the dimensions of a generated content canvas

Related Topics

When generating a content canvas, you can control the initial dimensions of the generated canvas using:

•	(recommended) properties of the first repository module component definition

•	properties of a suitable object library object

•	properties of a suitable template object

•	preferences (PAGCHT or PAGCWD)

During generation, Form Generator analyzes each of the above in turn until there is enough information to create the content canvas. The process is presented below:

If any blocks on the canvas are wider than the initial canvas width, Form Generator increases the canvas width accordingly.

Notes

•	Form Generator uses the width of the content canvas derived from the above process to control the default widths of generated blocks placed on that canvas.

For example, assume the Width property of the first module component is 96. Using the above process, Form Generator determines that the content canvas width is 96. Now assume that PAGMAR is set to 6. Form Generator calculates the default width of blocks placed on the content canvas as 84 (i.e. 96 - (6 * 2)).

•	If you want to place blocks side-by-side on the same canvas, Form Generator increases the width of the content canvas as necessary to place the blocks beside each other. However, Form Generator continues to determine the default width of blocks as described above.

•	If you are using relative tab stops, Form Generator uses the above process to identify the minimum width of a canvas. Form Generator increases the width of the block as necessary to display items and item groups on the specified relative tab stops. Therefore, Form Generator also increases the width of the content canvas sufficiently to display the block.

•	The generated form has the same coordinate system as the template form. If no template form is used, the Real coordinate system is used and the Units property defaults to Inch. For more information, refer to Notes on coordinate systems and Form Generator.

•	Form Generator increases the height of a content canvas (to the maximum specified by the CANMHT) if the dimensions specified for the canvas are not sufficient to display the desired number of rows.

If you do not specify the number of rows to display, Form Generator places as many rows as possible on the unexpanded canvas. If the unexpanded canvas is not large enough to display a single row, Form Generator increases the height of the canvas sufficiently to display a single row (up to the maximum height specified by CANMHT). For more information, refer to When does Form Generator expand canvases?


Stacked canvas generation

Related Topics

About stacked canvases

About generated stacked canvases

Generating stacked canvases

Generated stacked canvas properties

How Form Generator determines the position and dimensions of a generated stacked canvas

See also

Placing blocks on canvases


About stacked canvases

Related Topics

A stacked canvas is displayed in a window on top of, or "stacked" on the content canvas assigned to that same window. Stacked canvases obscure some part of the underlying content canvas, and are often shown and hidden programmatically. More than one stacked canvas can be displayed in a window at the same time.


About generated stacked canvases

Related Topics

Form Generator generates a stacked canvas (sometimes referred to as a popup) when the Placement property for a module component is New stacked canvas.

Note that Form Generator makes special use of stacked canvases to create spreadtables (horizontally scrolling stacked canvases placed beside context items) when the target content canvas is not wide enough to show a row without wrapping it. For more information about spreadtables and other block overflow options, refer to Block overflow control.

For more information about blocks and stacked canvases (including placing blocks side-by-side on the same stacked canvas), refer to Placing blocks on canvases.

You may find that a generated stacked canvas displays differently in the Oracle Forms runtime environment and as a WebForm. Aligning the context items on tab canvases with items on spreadtable blocks describes why this occurs in one specific case, and it will help you to resolve the problem.


Generating stacked canvases

Related Topics

To generate a stacked canvas:

1.	Set the Placement property of a module component to New stacked canvas.  How

2.	Set repository properties for the generated stacked canvas as appropriate.

The object libraries supplied with Form Generator already contain a suitable object from which to subclass or copy properties. If you are not using one of the supplied object libraries, we recommend you add a suitable object to one of the object libraries you are using as described in the next step.

3.	(recommended) Create a canvas in an object library and set the properties you want Form Generator to copy or subclass in one of the following ways:

•	by creating a canvas in the object library called CGSO$CANVAS_POPUP

•	by specifying an object in the object library for Form Generator to use when generating the stacked canvas, using the Placement Template/Library Obj property of the repository module component definition

For more information about copying or subclassing objects from an object library, refer to Using object libraries.

4.	(Optional)  Use preferences to specify further properties of generated stacked canvases.

For a list of preferences to use, refer to Layout Preferences - Stacked canvas.

Using templates and preferences

We strongly recommend you use repository properties and objects in object libraries to set properties of generated stacked canvases. However, to ensure backwards compatibility, in Oracle Designer release 2 onwards you can continue to use preferences and stacked canvases in a template form to define properties of generated stacked canvases.

If none of the object libraries you are using contains a suitable source object, Form Generator looks for a stacked canvas in the template with the same name as the stacked canvas that will be generated (if a stacked canvas with the same name does not exist in the template, Form Generator looks for a template stacked canvas with the name CG$POPUP). If no suitable canvas exists in the template, Form Generator uses preferences to set the position and dimensions of the stacked canvas and Oracle Forms default values to set other properties. For more information, refer to How Form Generator determines the position and dimensions of a generated stacked canvas.

Note that Form Generator ignores the Sequence Number property and the Window property in the template form, and derives the corresponding information from repository information for the module component.


Generated stacked canvas properties

Related Topics

Explicit properties

Stacked Canvas Property	Derived from or set to:	Notes and Related Topics	Backwards compatibility
Width and Height	Width and Height properties of first module component on canvas (or object library object properties)	If any blocks on the canvas are wider than the initial canvas width, Form Generator increases the canvas width accordingly. Form Generator also increases canvas width when placing blocks side-by-side on the same canvas. If you specify canvas expansion, Form Generator may expand the canvas vertically. For more information, refer to: • How Form Generator determines the position and dimensions of a generated stacked canvas • When does Form Generator expand canvases?	Template property or preferences    POPCWD, POPCHT Picture
Window	Module component's Window property, or object library object property
Viewport Width and Height	View Width and View Height properties of first module component on canvas, or object library object properties	For more information, refer to How Form Generator determines the position and dimensions of a generated stacked canvas	Template property or preferences POPVWD POPVHT Picture
Viewport X and Y Position Picture	X position and Y position properties of first module component on canvas, or object library object properties	For more information, refer to How Form Generator determines the position and dimensions of a generated stacked canvas	Template property or preferences POPVXP, POPVYP
Viewport X and Y Position on Canvas	Object library object properties
View Horizontal and Vertical Scrollbars	Object library object properties		Template property or preferences POPVSB, POPHSB
Bevel	Object library object property		Template property or POPBEV Picture
Implicit properties

Stacked Canvas Property	Derived from or set to:	Notes and Related Topics	Backwards compatibility
Margins (Left and Right) Picture	POPMAR	Objects in the stacked canvas are laid out between these margins.
Allow Expansion	Canvas height expanded to fit specified number of rows	If number of rows not specified, Form Generator places as many rows as possible on the unexpanded canvas. For more information refer to: • When does Form Generator expand canvases? • Number of rows in a block
Header	As defined in template
Header Separator Picture	POPHDS	Vertical space between header and first block.
Footer	As defined in template
Footer Separator Picture	POPFTS	Vertical space between last block and footer.
Context Depth Picture	POPCON	Block context area and block context item generation
Title for First Block Picture	POPTFB	A title is often superfluous for the first block on a stacked canvas (e.g. when the stacked canvas header gives similar information)
Relative Block Indentation Picture Picture Picture	POPBIN	Relative Block Indentation
Block Stubs	POPSTB	Block stub generation
Inter-Block Separator Picture	POPIBS


How Form Generator determines the position and dimensions of a generated stacked canvas

Related Topics

When generating a stacked canvas, you can set the position and initial dimensions of the generated canvas using:

•	(recommended) properties of the first repository module component definition

•	properties of a suitable object library object

•	properties of a suitable template object

•	preferences (POPCHT, POPCWD, POPVWD, POPVHT, POPVXP and POPVYP)

During generation, Form Generator analyzes each of the above in turn until there is enough information to create the stacked canvas. The process is presented below:

If any blocks on the canvas are wider than the initial canvas width, Form Generator increases the canvas width accordingly.

Notes

•	Form Generator uses the width of the stacked canvas derived from the above process to control the default widths of generated blocks placed on that canvas.

For example, assume the Width property of the first module component is 96. Using the above process, Form Generator determines that the stacked canvas width is 96. Now assume that POPMAR is set to 6. Form Generator calculates the default width of blocks placed on the stacked canvas as 84 (i.e. 96 - (6 * 2)).

•	If you want to place blocks side-by-side on the same canvas, Form Generator increases the width of the stacked canvas as necessary to place the blocks beside each other. However, Form Generator continues to determine the default width of blocks as described above.

•	If you are using relative tab stops, Form Generator uses the above process to identify the minimum width of a canvas. Form Generator increases the width of the block as necessary to display items and item groups on the specified relative tab stops. Therefore, Form Generator also increases the width of the stacked canvas sufficiently to display the block.

•	The generated form has the same coordinate system as the template form. If no template form is used, the Real coordinate system is used and the Units property defaults to Inch. For more information, refer to Notes on coordinate systems and Form Generator.

•	Form Generator increases the height of a stacked canvas (to the maximum specified by the CANMHT) if the dimensions specified for the canvas are not sufficient to display the desired number of rows.

If you do not specify the number of rows to display, Form Generator places as many rows as possible on the unexpanded canvas. If the unexpanded canvas is not large enough to display a single row, Form Generator increases the height of the canvas sufficiently to display a single row (up to the maximum height specified by CANMHT). For more information, refer to When does Form Generator expand canvases?


Tab canvas generation

Related Topics

About tab canvases and tab pages

About generated tab canvases and tab pages

See also

Generating blocks onto native Oracle Forms tab canvases

Stacked item group generation


About tab canvases and tab pages

Related Topics

What is a tab canvas?

A tab canvas enables you to group and display a large amount of related information on a single, dynamic canvas object. Like stacked canvases, tab canvases are displayed on top of a content canvas, partly obscuring it.

A tab canvas is made up of one or more tab pages. Tab pages each display a subset of the information displayed on the entire tab canvas.

What are tab pages?

A tab canvas can have many tab pages, and must have at least one. Think of tab pages as the folders in a filing system. Each individual tab page (folder) has a labeled tab that developers and end users click to access the page. You click the labeled tab to display the page at the front of the tab canvas, thereby obscuring any other page(s).

Each tab page occupies an equal amount of space on the tab canvas, roughly equal to the size of the canvas itself. This layering of related canvas sections enables you to display more information on a single canvas.

Tab pages are sub-objects of a tab canvas.  Like the canvas to which it is attached, each tab page has properties.


About generated tab canvases and tab pages

Related Topics

What are generated native Oracle Forms tab canvases?

Form Generator generates a native Oracle Forms tab canvas and tab pages on which to place:

•	generated blocks, if a repository module component has its Placement property set to New tab canvas page (for more information, refer to Generating blocks onto native Oracle Forms tab canvases)

•	generated stacked item groups, if two or more repository item groups in a module component have their Stacked property set to Yes (for more information, refer to Stacked item group generation)

If the above conditions are met and CANNTC is set to Yes, Form Generator places each block generated from a module component and each stacked item group onto different tab pages.

On selection of a tab label, the corresponding tab page is displayed and the cursor navigates to the first enterable item on that tab page. Where users navigate to an item on a tab page that is not currently displayed (e.g. by pressing the [Next Item] key), the appropriate tab page is displayed.


When does Form Generator expand canvases?

Related Topics

Form Generator can vertically expand the generated content canvas or stacked canvas during block layout in any of the following circumstances:

•	the desired number of rows for a block cannot fit on the unexpanded canvas - Form Generator vertically expands the canvas to fit the desired number of rows

•	a single row cannot fit on the unexpanded canvas - Form Generator vertically expands the canvas to fit the desired a single row

•	you have not specified the number of rows to display on the canvas - Form Generator displays as many rows as possible on the unexpanded canvas (if the unexpanded canvas is not large enough to display a single row, Form Generator increases the height of the canvas sufficiently to display a single row (up to the maximum height specified by CANMHT))

For more information about specifying the number of rows to display, refer to Number of rows in a block.


User canvases from the template and generated forms

Related Topics

About user canvases

Including user canvases in generated forms


About user canvases

Related Topics

A user canvas is any canvas in the template form with a name that does not begin with CG$.

Form Generator always includes user canvases from the template form in the generated form, together with any user items (i.e. items or graphic objects/text with names that do not begin with CG$) on the canvas.

However, note that Form Generator never includes CG$ generator items from a user canvas in the template form in a generated form.

Use the OTCAEN preference to control whether user canvases are sequenced before or after generated canvases. Note that the sequence of user canvases in the template form with respect to each other is maintained in the generated form.

All the properties of a user canvas, with the exception of the Sequence property but including the Window property, are copied into the generated form. It is up to you to make sure that a window of the same name as that associated with the user canvas will appear in the generated form.

You can associate a user canvas with a specific generator window (e.g. CG$WINDOW_3) in the template. Note however, that since generated canvas management code will ignore the user canvas, it will be difficult to navigate to the canvas. We therefore recommend you associate user canvases with user windows.

Illustration: User canvases example


Including user canvases in generated forms

Related Topics

To include user canvases from the template in a generated form:

1.	In Form Builder, open or create a template form.

2.	Create a new canvas.

3.	Give the newly created canvas a name that does not begin with CG$.

4.	Associate the newly created canvas with a window.

You must ensure that a window of the name you specify will appear in the generated form. We recommend you associate user canvases with user windows.

5.	Define any other canvas properties, as required.

6.	Define any graphic objects/text and any user items on the canvas that you want to appear in the generated form.

Note:	Generator objects on user canvases are not included in the generated form.


Toolbar generation

Related Topics

About toolbars

About generated toolbars

Generating a toolbar for the MDI window of a generated form

Generate a toolbar for generated windows

Generated toolbar properties


About toolbars

Related Topics

A toolbar is a canvas containing items (typically buttons) that becomes part of the window frame, as shown below:

Toolbars can appear horizontally across the top of a window on a Horizontal Toolbar canvas, or vertically on the left side of a window on a Vertical Toolbar canvas.


About generated toolbars

Related Topics

Form Generator can generate toolbars into windows in a generated form using object libraries and templates. Note that to generate a toolbar into the MDI window, you must define it in a template.

Using an object library

Form Generator can include a vertical toolbar or horizontal toolbar defined in a template when copying or subclassing windows from an object library into a generated form.

The Horizontal Toolbar Canvas property or Vertical Toolbar Canvas property of one of the following object library objects must be set to the name of the toolbar canvas defined in the template:

•	a window called CGSO$WINDOW, from which Form Generator copies or subclasses all generated window properties by default

•	a window specified as the implementation source object for a repository window definition, using the Template/Library Object property

Using a template

Form Generator can use a template canvas and its contents to create a toolbar.

You can define toolbars in template forms to augment or completely replace stacked headers and footers in the generated form. Toolbars are visible for all content canvases that appear in a window, just as stacked canvases are. In addition, toolbars give your generated applications much more of a native look and feel. This is particularly important for the Microsoft Windows platform.

Template toolbars are subject to the same generation rules as stacked headers and footers. The template toolbar can contain any valid Generator item, except those that define requirements for static graphic text (i.e., CG$PN: Page Number, CG$PM: Page n of m and CG$PT: Page Total).

The template toolbar can also contain graphic objects/text and user items. However, user items defined in the template are only incorporated into the first generated toolbar created from the template toolbar.

Generated toolbars and the default Oracle Forms toolbar

As well as toolbars defined in object libraries and templates, you can also use the FMNDMA preference to include the default Oracle Forms toolbar (or smartbar) in forms you generate.


Generating a toolbar for the MDI window of a generated form

Related Topics

To generate a toolbar for the MDI window of a generated form:

1.	Use Form Builder to create a canvas of type Horizontal Toolbar or Vertical Toolbar in the template form.

2.	Name the canvas (do not give it a name beginning with CG$).

3.	Set properties for the canvas as required.

4.	Create any graphic objects/text and items on the toolbar canvas as required.

5.	Set the Form Horizontal Toolbar Canvas or Form Vertical Toolbar Canvas property of the template form to the name of the toolbar canvas you created.

6.	Generate the form.


Generating a toolbar for generated windows

Related Topics

Using an object library

To include a toolbar in every window copied or subclassed from the CGSO$WINDOW standard object in an object library:

1.	Use Form Builder to create a canvas of type Horizontal Toolbar or Vertical Toolbar in the template form.

2.	Create objects (e.g. buttons) on the toolbar canvas in the template form as required.

3.	If a window called CGSO$WINDOW does not already exist in the object library, use Form Builder to create a window in the template form called CGSO$WINDOW. If a window called CGSO$WINDOW does already exist in the object library, drag the window into the template form.

4.	Set the window's Horizontal Toolbar Canvas property or Vertical Toolbar Canvas property (as appropriate) to the name of the toolbar canvas you have created.

5.	Drag the window into the object library.

For more information about copying or subclassing objects from an object library, refer to Using object libraries.

6.	Delete the window called CGSO$WINDOW from the template form.

To include a specific toolbar in a window generated from a particular repository window definition:

1.	Follow the instructions above but do not use a  window with a name beginning CGSO$.

2.	Specify the window as the implementation source object for the repository window definition using the Template/Library Object property.

Using a template

To include a toolbar in a generated window:

1.	Use Form Builder to create a canvas of type Horizontal Toolbar or Vertical Toolbar in the template form.

2.	Name the canvas either of the following (depending on whether you created a Horizontal Toolbar or Vertical Toolbar canvas respectively):

•	CG$HORIZONTAL_TOOLBAR[_n]

•	CG$VERTICAL_TOOLBAR[_n]

where _n is the order within the form of the generated window to which you want to assign the toolbar.

For example if EMPWINDOW is the second window, and you want to assign a vertical toolbar to that window, name the toolbar canvas CG$VERTICAL_TOOLBAR_2.

3.	Set properties for the toolbar canvas as required.

4.	Create generator items, user items, and graphic objects/text on the toolbar canvas as required.

5.	Generate the form.


Generated toolbar properties

Related Topics

Note:	Toolbars for inclusion in an MDI window must be defined in a template.

Toolbar Property	Derived from or set to:	Notes and Related Topics
General
Name	Object library object property or template object property	If using a template object, either CG$HORIZONTAL_TOOLBAR[_n] or CG$VERTICAL_TOOLBAR[_n] where n is the number of the generated window to which the toolbar is assigned. If using a template object and you do not specify a number, Form Generator creates a toolbar canvas for each generated window.
Canvas Type	Object library object property or template object property
Physical
Visible	True
Window	Name of the generated window to which the toolbar is attached
Width	Object library object or template object property	For vertical toolbars, use Form Builder to set the width (the height changes dynamically to fill the window).
Height	Object library object or template object property	For horizontal toolbars, use Form Builder to set the height (the width changes dynamically to fill the window).
Bevel	Object library object or template object property


Block generation

Related Topics

About blocks

About data blocks

About generated data blocks

Generating data blocks

Generated data block properties (explicit)

Generated data block properties (implicit)

Repository module component properties used by Form Generator

Repository table usage properties used by Form Generator

How Form Generator determines the dimensions of generated blocks

More about block generation


About blocks

Related Topics

In Oracle Forms, a block is a logical container that has no physical representation - only the items contained in a block are visible in the application interface. Every item in a form must belong to a block. Items in the same block can appear on different canvases in different windows.

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 records.

There are two types of block:

•	data blocks (often simply referred to as a block)

•	control blocks


About data blocks

Related Topics

A data block is 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 (often simply referred to as blocks) can be based on database tables, views, procedures, or transactional triggers.

What is a base table block?

A data block associated with a specific database table or view is sometimes referred to as a base table block. One or more items in a base table block correspond directly to columns in the block's base table.


About generated data blocks

Related Topics

Form Generator creates new data blocks (often simply referred to as blocks) from module components defined in the repository.

There are some differences between data blocks generated using generated using Form Generator and data blocks you create using Form Builder. Specifically, a block generated by Form Generator has additional properties (e.g. block border, block title) to enable you to give it a physical representation to users of a generated form.

Form Generator enables you to generate:

•	single region blocks, where items from the block created by Form Generator have to appear in one layout region on the same canvas in the same window

•	multi-region blocks, where items from the block created by Form Generator can appear in different layout regions on different canvases or in different windows in the generated form

Most blocks you generate will be single region blocks. Single region blocks are based on a single table and comprise one rectangular layout region that cannot be split across different canvases or windows.

You generate a single region block by defining a module component and including one base table usage and one or more lookup table usages. You specify the number of records to be displayed in a single region block and every item in the block (except for items in single areas and module component level action items) appears the number of times you specify.

In some cases, you will want to generate multi-region blocks. For more information, refer to Multi-region block generation.

About basing blocks on procedures

Typically, you will generate blocks based on tables or views. However, to improve performance when generating client/server applications you might want to generate blocks based on PL/SQL procedures. For more information about basing blocks on procedures, refer to Generating blocks based on views, sub-queries, transactional triggers, or stored procedures.


Generating data blocks

Related Topics

To generate a data block:

1.	Create a module component in the Design Editor.  How

2.	Create a base table usage in the module component.  How

3.	Create bound and unbound items as required.  How

If you are specifying the base table usage for a detail block, you must create bound items for those foreign key columns that will link the generated blocks.

The object libraries supplied with Form Generator already contain a suitable object from which to subclass or copy properties. If you are not using one of the supplied object libraries, we recommend you add a suitable object to one of the object libraries you are using as described in the next step.

4.	(recommended) Create a block in an object library and set the properties you want Form Generator to copy or subclass in one of the following ways:

•	by creating a block in the object library called CGSO$BLOCK

•	by specifying an object in the object library for Form Generator to use when generating the block, using the Template/Library Object property of the repository module component

For more information about copying or subclassing objects from an object library, refer to Using object libraries.

Note that if you subclass or copy from a block in an object library and items belong to that object library block, Form Generator will subclass or copy those items into the generated form. For more information, refer to Items copied or subclassed from items in object library blocks.

5.	Set other properties for the generated block as required, using repository information and preferences.

Single region blocks and multi-region blocks

This topic describes how to generate single region data blocks (i.e. where items from the block appear in one layout region on the same canvas in the same window). To find out how to generate multi-region data blocks (i.e. where items from the block can appear in different layout regions on different canvases or in different windows), refer to Multi-region block generation.

Using templates and obsolete preferences

We strongly recommend you use objects in object libraries to set properties of generated objects. However, to ensure backwards compatibility, in Oracle Designer release 2 onwards you can continue to use obsolete preferences and objects in a template form to define properties of generated objects.


Generated data block properties (explicit)

Related Topics

Block Property	Derived from or set to:	Notes and Related Topics	Backwards compatibility
General
Name	Module component name
Comments	BLKCMT	Split across multiple lines if MAXPLS is exceeded.
Navigation
Navigation Style	Set to SAME RECORD
Next and Previous Navigation Data Block		Can be set by block synchronization functionality to implement block navigation. This is dependent on the block synchronization coding style.
Records
Current Record Visual Attribute Group	CG$CURRENT_RECORD	For more information, refer to Setting the Current Record Visual Attribute Group property and CURREC
Number of Records Displayed	Set to number of rows to be displayed	For more information about setting this property, refer to Number of rows in a block.
Record Orientation	Always set to Vertical
Database
Database Data Block	Yes
Enforce Primary Key		Set to Yes when none of the primary key items in the generated block are server-derived and NXTKEY is set to Yes.
Query Allowed	Module component Query property
Query Data Source Type	Data Source Type property of module component	For more information, refer to Data block generation based on procedures, sub-queries and transactional triggers. If the module component's Data Source Type property was set to View, this property is set to Table.
Query Data Source Name	Table/View Name of base table usage (unless module component Data Source Type is set to sub-query or procedure)	During generation, Form Generator checks that the table name uniquely identifies the table within the first 21 characters. If not, Form Generator issues an error because the 30 character Oracle Forms limit on program unit names will be exceeded before the program unit has been uniquely identified where the table name is appended to a 9 character Generator prefix (e.g. CGRI$CHK_). Before attempting to generate again, modify the repository table definition to make the table name unique within 21 characters.
WHERE Clause	Based on Query Where clause recorded for table usage.
ORDER BY Clause
Optimizer Hint
Insert Allowed	Module Component Insert property
Update Allowed	Module Component Update property
Locking Mode
Delete Allowed	Module Component Delete property
Key Mode	Object library property or Oracle Forms default of Automatic (unless module component has base table usage of a view)	If a module component with a base table usage of a view (i.e. rather than of a table) has its Insert and/or Update property set to Yes and its Datatarget Type property set to Table, Form Generator sets this property to Updateable or Non-Updateable depending on whether the view's primary key is updateable.
Enforce Column Security	Object library property		Obsolete preference COLSEC - not recommended
Records Fetched	Set to number of rows to be displayed
Advanced Database
DML Data Target Type	Data Target Type property of module component	Typically Table (for more information, refer to Data block generation based on procedures, sub-queries and transactional triggers
DML Data Target Name	Table/View Name of base table usage (unless module component Data Target Type is set to sub-query or procedure)
DML Returning Value	DMLRET	Controls the refreshing of values changed (by server-side triggers) after insert or update using the Oracle8 RETURNING clause. For more information, refer to Defining derived columns for population by generated Oracle Forms applications.
Scrollbar
Show Scrollbar	Object library object property		Obsolete preference BLKVSB
Scrollbar Canvas		When the items of this block are placed on a single canvas, this property is set to that canvas. When the items are spread across more than one canvas, this property is set to the first canvas for this block. When generating multi-region blocks, use MRBVSB to specify which layout region (and hence which canvas) is to have a scrollbar.
Scrollbar Orientation	Vertical
Scrollbar Position	Object library object property	Scrollbar is positioned within block margin.	BLKSBP
Scrollbar Width	Object library object property		Obsolete preference BLKSBW
Character Mode
Listed In Data Block Menu	Set to Y	The description to appear on the block menu is set to the table comment.
Data Block Description	Comment property of table as defined in repository
Generated multi-region block properties

In general, Form Generator sets a generated multi-region block's properties as follows:

•	Form Generator uses the data properties and preferences defined for the primary module component and its base/lookup table usage to set a generated multi-region block's data properties

•	Form Generator uses the properties and preferences defined for the primary module component or module sub-component from which each layout region was generated to determine its appearance

For more information, refer to Generated multi-region block properties.


Generated data block properties (implicit)

Related Topics

Block Property	Derived from or set to:	Notes and Related Topics
Canvas	Placement property of module component	The first module component is always on a new content canvas. At least one row of the block must fit in the specified position. If not, Form Generator displays an error message and stops generation.
Overflow Style	Overflow Style property of module component, or BLKOVF	Determines what action should be taken if the canvas is not wide enough to show a row on a single line. For more information, refer to Block overflow control.
Margins (Left and Right) Picture	BLKMAR	Items in the block are laid out within these margins
Headers		Block header can contain block title, block context, and block stubs.
Title Picture	Module component Title property or preferences BLKTFB, PAGTFB, POPTFB	To include a block title for the first block of a generated canvas, set PAGTFB or POPTFB to Y. To include a block title for the first block of a generated form set both PAGTFB and BLKTFB. to Y.
Title Justification Picture	BLKTLJ
Title Margin Picture	BLKTLM
Title Spacing Picture	BLKTLS	Space placed before and after block title (primarily for character mode form generation, when title is embedded in decoration). Specified in space characters rendered in the same font as the title.
Title expansion	ITMPPE	The width of any decoration is increased to allow for any increase in the title's width.
Title minimum width	ITMMPW	The width of any decoration is increased to allow for any increase in the title's width.
Header Separator Picture	BLKHDS	Vertical space between contents of header and items in block
Footer Separator Picture	BLKFTS	Vertical space between items in block and contents of footer
Decoration Type Picture	BLKDEC
Decoration Dash Style Picture	BLKDST
Decoration Brush Width Picture	BLKBWD
Spacing between Wrapped Rows Picture	BLKMLR	Vertical space between rows in a multi-row block when the rows  wrap
Spacing between Unwrapped Rows Picture	BLKSLR	Vertical space between rows in a multi-row block when the rows do not wrap
Spacing between lines in a Wrapped Row Picture	BLKMLL
Justification Picture	BLKJUS	Justification of items within available width (the width of the widest line). Note that Form Generator ignores BLKJUS when using relative tab stops and always aligns items to the left.
Single Item Line Justification Picture	ITMSFJ	You must also set BLKLYS to FILL.
Line Alignment Picture	BLKLYS
Use of Space on Wrapped Lines containing 2-D items Picture	BLKVFL	When a wrapped line contains two-dimensional items, how Form Generator uses available space below short items adjacent to tall items. If BLKVFL set to Y, BLKMLF assumed to be set to WRAP.
Multi-Line Format Picture	BLKMLF	Maximum number of items on a line before it wraps.
Absolute Tab Stop Positions Picture	BLKTAB BLKUTT	When absolute tab stops are used and prompts appear next to items, the gap between the prompt and its associated item is always the value of ITMPIG. preference. However, the gap between the end of one item and the prompt for the next (specified by ITMIPG) is used as a minimum gap. If this is greater than the distance to the next absolute tab stop, the tab stop after that one is used. If a single item cannot fit in the available space and you have asked Form Generator to use absolute tab stops, the item is truncated to fit. To use absolute tab stops to align items across multiple blocks, refer to Aligning items across multiple blocks
Scrollbar Spacing from Items Picture	BLKSBS
Context Areas and Items		Block context area and block context item generation
Relative Block Indentation		Relative block indentation
Generated multi-region block properties

In general, Form Generator sets a generated multi-region block's properties as follows:

•	Form Generator uses the data properties and preferences defined for the primary module component and its base/lookup table usage to set a generated multi-region block's data properties

•	Form Generator uses the properties and preferences defined for the primary module component or module sub-component from which each layout region was generated to determine its appearance

For more information, refer to Generated multi-region block properties.


Repository module component properties used by Form Generator

Related Topics

Module Component Property	Use to specify to Form Generator	Notes and Related Topics
Name	Name of generated block.
Usage Sequence	Order of the block with respect to other generated blocks in the form
Short Description	Not used by Form Generator
Template/Library Object	Object library object from which to subclass or copy generated block properties
Language	Oracle Forms.	Form Generator ignores this property if it is not set to Oracle Forms.
Module Level	Not used by Form Generator.
Placement
Window	Window in which to display generated block/layout region
Placement	Type of canvas on which the generated block/layout region is to appear, and whether it is the first to appear on that canvas	If module component/sub-component generated as first block/layout region in a window, the X and Y Position properties specify default properties of window. If module component/sub-component generated as first block/layout region on a stacked canvas, the X and Y Position properties specify location of view on underlying content canvas. If you set this property to Right of, use the Right of Component property to specify the block/layout region to place this generated block/layout region beside. Note: Do not set this property to Stacked.
Right of Component	An earlier module component/sub-component beside which this module component/sub-component is placed	Form Generator only uses this property if the Placement property is set to Right of. For more information, refer to Placing blocks side-by-side on the same canvas.
Placement Template/Library Obj	Object library object from which to subclass or copy canvas properties	If the block/layout region generated from this module component/sub-component is the first block/layout region on a content canvas/stacked canvas/tab canvas page, Form Generator uses this object library object to set content canvas/stacked canvas/tab canvas page properties. If the block/layout region is not the first on a content canvas/stacked canvas/tab canvas page, Form Generator ignores this property.
X Position	X position of window, or X position of view on canvas
Y Position	Y position of window, or Y position of view on canvas
Relative Tab Stops
Tab Stop Scope	Determines whether items/item groups within the module component/sub-component are aligned with items/item groups in another module component/sub-component	Set this property: • to None to ignore relative tab stops  • to Self to align items/item groups with the same relative tab stops inside the module component/sub-component but not outside • to Parent to align items/item groups with the same relative tab stops both in the module component/sub-component and outside Note that to align items/item groups in two different module components using the same relative tab stop, you must set the Tab Stop Scope property of both module components to Parent. Note also that to align items/item groups in two sub-components with the same primary module component, you must set the Tab Stop Scope property of both sub-components to Parent. For more information, refer to Positioning items (and item groups) using tab stops.
Container
Container Item	Not used by Form Generator.
Data
Datasource Type	Source of data displayed in a block	For more information, refer to  Data block generation based on procedures, sub-queries and transactional triggers
Datatarget Type	Where any DML operations on data in a generated block	For more information, refer to Data block generation based on procedures, sub-queries and transactional triggers
Operations
Insert?	Whether INSERT operations are allowed on the base table
Delete?	Whether records in the base table can be deleted from this block
Update?	Whether records on the base table can be updated from this block
Query
Query?	Whether QUERY operations can be performed in this block
Autoquery?	Determines default startup query mode if using USEPKR	To set default startup query mode to Execute Query, set this property to Yes or Default Behavior. To set default startup query mode to Enter Query, set this property to No. For more information, refer to Specifying a generated form's default startup query mode using USEPKR.
Display
Title	Title for the block/layout region
Layout Style	Not used by Form Generator
Rows Displayed	Preferred number of rows to be created in the block/layout region	For more information about setting this property, refer to Number of rows in a block
Overflow	What action should be taken if the canvas is not wide enough to show a row on a single line	If this property is not set, Form Generator uses BLKOVF
Size
Width	Initial width of block/layout region and canvas	Form Generator might ignore this width. For more information, refer to: • How Form Generator determines the dimensions of generated blocks • How Form Generator determines the dimensions of a generated content canvas • How Form Generator determines the position and dimensions of a generated stacked canvas
Height	Initial height of block/layout region and canvas	Form Generator might ignore this height. For more information, refer to: • How Form Generator determines the dimensions of generated blocks • How Form Generator determines the dimensions of a generated content canvas • How Form Generator determines the position and dimensions of a generated stacked canvas
View Width	Width of view on stacked canvas displaying generated block/layout region
View Height	Height of view on stacked canvas displaying generated block/layout region
Help
User/Help Text	Help information to be displayed for generated forms as specified by the HLPTYP preference.	For more information, refer to Context-sensitive help generation
Help Context Id Prefix	Used by Help Generator
Documentation
Description	Used to create block level comments if BLKCMT contains the string 'ID'.	Descriptive information about the module component for administrative purposes.
Notes		Additional descriptive information about the module component for administrative purposes.
Generated multi-region block properties

In general, Form Generator sets a generated multi-region block's properties as follows:

•	Form Generator uses the data properties and preferences defined for the primary module component and its base/lookup table usage to set a generated multi-region block's data properties

•	Form Generator uses the properties and preferences defined for the primary module component or module sub-component from which each layout region was generated to determine its appearance

For more information, refer to Generated multi-region block properties.


Repository table usage properties used by Form Generator

Related Topics

Table Usage Property	Use to specify to Form Generator	Notes and Related Topics
Table/View/ Materialized View	base table for the block	During generation, Form Generator checks that the table name uniquely identifies the table within the first 21 characters. If not, Form Generator issues an error because the 30 character Oracle Forms limit on program unit names will be exceeded before the program unit has been uniquely identified where the table name is appended to a 9 character Generator prefix (e.g. CGRI$CHK_). Before attempting to generate again, modify the repository table definition to make the table name unique within 21 characters. If this property specifies a view, the view does not inherit any properties from the table(s) on which it is based. You must enter any design details specifically for the view.
Usage Alias	Unique name for the table usage within a module.	During generation, Form Generator replaces every occurrence of this usage alias in SQL statements (e.g. in WHERE clauses and derivation expressions) in the current module with the table name. If you set this property, do not use this usage alias as an alias for any other table in any SQL statements you enter in the current module.
Name in Database	an alternative name for the table	If specified, Form Generator uses this name instead of the name entered for the Table/View/Materialized View property.
Partition	Name of table partition from which to retrieve values into an LOV	Form Generator only uses this property if set for a repository LOV table usage.
Usage Type	Type of table usage	For module components, sub-components, and LOV components, the following are valid: • Base Table • Lookup In addition, the following are also valid for LOV components only: • Single Row SQL Aggregate • Subquery For more information about using table usages of type Single Row SQL Aggregate and Subquery, refer to Generating an Oracle Forms LOV from a repository LOV definition.
Template/Library Object	Not used by Form Generator.
Query
WHERE Clause of Query	SQL expression to: • restrict the values returned to the form from a query on a table (module component base table and lookup table usages) • restrict the values from a lookup table that are available in an LOV when querying data (module component lookup table usages and repository LOV table usages)	To ensure uniqueness, we recommend you refer to any columns in the expression using repository item names.  For more information, refer to Using different WHERE clauses.
Select Distinct	Indicates whether DISTINCT is added to the query when generating LOVs and blocks based on queries
Link
Link to	Table usage to which the current table usage is linked
Via Join Constraint	Foreign key with which to link the current table usage to a second table usage
Outer Join?	Specifies whether the SELECT statement created for an LOV table usage of type Single Row SQL Aggregate uses an outer join.	If you set this property to Default Behavior, Form Generator determines whether to use an outer join or not.
Lookup
Validation WHERE clause (module component lookup table usages and repository LOV table usages)	SQL expression to restrict values from a lookup table that are available in an LOV when entering or modifying data	To ensure uniqueness, we recommend you refer to any columns in the expression using repository item names. For more information, refer to Using different WHERE clauses.
Sub Query
Not Exists?	Indicates whether the sub-query includes NOT EXISTS	Only used when table usage is an LOV table usage of type Subquery. For more information, refer to Generating an Oracle Forms LOV from a repository LOV definition.
Tree Walk	Not used by Form Generator
Documentation
Comment	Used to create block level comments if BLKCMT contains the string 'UC'.	Descriptive information about the table usage for administrative purposes.
Description	Used to create block level comments if BLKCMT contains the string 'ID'.	Descriptive information about the table usage for administrative purposes.
Notes		Additional descriptive information about the table usage for administrative purposes.
Generated multi-region block properties

In general, Form Generator sets a generated multi-region block's properties as follows:

•	Form Generator uses the data properties and preferences defined for the primary module component and its base/lookup table usage to set a generated multi-region block's data properties

•	Form Generator uses the properties and preferences defined for the primary module component or module sub-component from which each layout region was generated to determine its appearance

For more information, refer to Generated multi-region block properties.


How Form Generator determines the dimensions of generated blocks

Related Topics

How Form Generator determines the width of generated blocks

When generating a block, you can control the initial width of the generated block using:

•	the Width property of the repository module component definition

•	properties of a suitable object library object (i.e. a canvas)

•	properties of a suitable template object (i.e. a canvas)

•	preferences (PAGCWD or POPCWD)

During generation, Form Generator analyzes each of the above in turn until there is enough information to create the block with an initial width.

Subsequently, Form Generator might decrease the width of the block depending on:

•	the existence of unused space to the right of the rightmost item in the block (only if the module component's Width property was not set)

•	the canvas margins specified by PAGMAR/POPMAR

•	the block indentations specified by PAGBIN/POPBIN

Alternatively, Form Generator might increase the width if you have specified relative tab stops.

The process is presented below:

Note the following:

•	The size and style of block decoration might also affect the block width.

How Form Generator determines the height of generated blocks

When generating a block, you can control the initial height of the generated block using:

•	the Height property of the repository module component definition

•	properties of a suitable object library object (i.e. a canvas)

•	properties of a suitable template object (i.e. a canvas)

•	preferences (PAGCHT or POPCHT)

During generation, Form Generator analyzes each of the above in turn until there is enough information to create the block with an initial height. Subsequently, Form Generator might increase the height of the block depending on the number of rows to display in the block.

The process is presented below:

Note the following:

•	Where available canvas height is restricted, Form Generator might further reduce a block's height to enable the inclusion of summary items or a button bar.

•	Use BLKHDS/BLKFTS to set the height of block header and footer separators when you want fine control over block height.. For example you might use the preferences to exactly align the block decoration of blocks placed beside each other.

•	For more information about how Form Generator calculates the Unexpanded Rows and Expanded Rows values, refer to Number of rows in a block.

•	The size and style of block decoration might also affect the block height.


More about block generation

Related Topics

Data block generation based on procedures, sub-queries and transactional triggers

Multi-region block generation

Placing blocks on canvases

Block relation generation

Block overflow control

Generating blocks onto native Oracle Forms tab canvases

Number of rows in a block

Aligning items across multiple blocks

Block context area and block context item generation

Relative block indentation

Block stub generation

Control block generation

Spreadtable canvas generation

Single area in multi-row block generation

Setting the Current Record Visual Attribute Group property

Preventing Insert, Update, Delete and/or Query Operations on a Block

User blocks from the template and generated forms

Adding blocks using Form Builder

Changing block placement using Form Builder

Using different WHERE clauses


Data block generation based on procedures, sub-queries and transactional triggers

Related Topics

About basing blocks on different datasources

Which datasource to base generated blocks on

About basing generated blocks on views

About basing generated blocks on procedures in the Server API

Generating blocks based on views, sub-queries, transactional triggers or stored procedures


About basing blocks on different datasources

Related Topics

Oracle Forms enables you to specify separate query and DML datasources for a data block (using the block's Query Data Source and DML Data Target properties respectively).  Possible query and DML datasources include:

•	table (the most commonly used block datasource)

•	view

•	transactional trigger (typically used when Oracle Forms is running against a datasource other than an Oracle database)

•	FROM clause (used to perform joins, lookups, and calculations without having to create a view on the server)

•	stored procedure (a more advanced option that returns data to a data block using either a ref cursor or a table of records)

Typically you will want to generate blocks that query information from a base table, and perform DML operations on that table.

For general information about datasources, refer to the Oracle Forms help.

A discussion about datasources and generated blocks is given in Which datasource to base generated blocks on


Which datasource to base generated blocks on

Related Topics

The table below shows the block datasources on which Form Generator can base generated blocks:

Query datasources for generated blocks can be:	DML datasources for generated blocks can be:
None	None
Table	Table
View	Transactional Triggers
From clause (also called a sub-query)	Procedure
Procedure

Typically you will want to generate blocks that query information from a base table, and perform DML operations on that table.

However, to populate lookup items in a block Form Generator creates a POST-QUERY trigger that fires for each record retrieved by a query. This can significantly increase network traffic in a client server environment.

A more efficient alternative is to base a block containing lookup items on a view or on a sub-query (also called a FROM clause), that comprises columns from both the base table and the lookup table. However, this approach still requires records to be passed to the form from the database either individually or in a buffer. Additionally, DML operations might not be possible on a view in some situations and you will have to specify Transaction Trigger as the DML Data Target for the generated block. Transaction triggers increase network traffic since they must also fire for each record that has been created or updated.

A further alternative is to base a block on a procedure stored on the server and to pass a PL/SQL table of records between the block and the procedure. It is the procedure that queries and performs DML on the base table. Basing a generated block containing lookup items on stored procedures is significantly more efficient in terms of network traffic than the other options outlined above. An Oracle Designer utility enables you to create suitable server-side procedures on which to base blocks by generating the Server API.

Datasources and control blocks

A control block does not read from or write to a database table (i.e. it has no Query datasource or DML datasource). You generate control blocks from module components containing no table usages and only unbound items. Do not set a module component's Datasource Type and Datatarget Type properties to None unless you want to generate the module component as a control block. For more information about control blocks, refer to Control block generation.


About basing generated blocks on views

Related Topics

To reduce network traffic, you might decide to base a generated block containing lookup items on a view that comprises columns from both the base table and the lookup table.

To base a generated block on a view comprising columns from both the base table and the lookup table, you:

•	create a module component containing a base table usage and a lookup table usage

•	set the module component's Datasource type property to View

•	generate the Module Component API

These steps are described in detail in Generating blocks based on views, sub-queries, transactional triggers or stored procedures.

Note the database view on which the block is based is created when you generate the Module Component API. Do not create a repository view definition comprising the columns from the base table and lookup table, include that in the module component, and then attempt to generate the Module Component API.

Create a module component like this to base a generated block on a view comprising columns from both the base table and the lookup table:		Do not create a module component like this to base a generated block on a view comprising columns from both the base table and the lookup table:


About basing generated blocks on procedures in the Server API

Related Topics

You use Oracle Designer to generate the Server Application Programmatic Interface (API) from table and module component definitions in the repository.

The generated Server API provides a powerful and easy-to-use PL/SQL interface that generated client applications can call to perform queries and DML operations on base tables in the Oracle server.

The Server API is made up of:

•	the Module Component API (comprising procedures to perform queries on the tables used by a generated application, and calls to Table API procedures to perform DML operations on those tables)

•	the Table API (comprising procedures to perform inserts, updates, deletions and locks on the tables used by a generated application)

If you specify Procedure as the query datasource for a generated block, the block is populated by a procedure in the Module Component API (this procedure is referred to as a 'module handler') that passes a PL/SQL table of records to the generated form.

Similarly, if you specify Procedure as the DML datasource for a generated block, a table of records is passed from the block back to the module handler on the server, which in turn calls a procedure in the Table API (this procedure is referred to as a 'table handler') to update the base table.

If you intend to base a generated block on a server-side procedure generated as part of the Server API, you must generate the API before you attempt to run the generated form. For more information, refer to Generating the Server API in the Server Generator help system.


Generating blocks based on views, sub-queries, transactional triggers, or stored procedures
Generating blocks based on views, sub-queries, transactional triggers or stored procedures

Related Topics

To generate a block based on a view, sub-query, transactional trigger or stored procedure:

1.	Create a module component.  How

2.	Use the module component's Datasource Type property to specify the generated block's query datasource, using the following table as a guide:

Datasource Type property	Advantages	Disadvantages
Table	generated code is easy to read no LONG datatype restrictions buffering is possible to offset increased network traffic	increased network traffic because of record-by-record fetch of lookup details
View	more efficient than table since lookup values do not require another database roundtrip buffering is possible to offset increased network traffic	a different database object may be required as the datatarget
Sub-query	less database maintenance than a view	a different database object is required as the datatarget query by example not supported
Procedure	significant reduction in network traffic because entire block is returned from the server in a PL/SQL table of records	query by example not supported
3.	Use the module component's Datatarget Type property to specify the generated block's DML datasource, using the following table as a guide:

Datatarget Type property	Advantages	Disadvantages
Table	generated code is easy to read buffering is possible to offset increased network traffic	increased network traffic because of record-by-record DML operations on base table no consistent interface to table
Transactional Triggers	table handlers on server act as standard API to enter data buffering is possible to offset increased network traffic	must fire for each record that has been created or updated
Procedure	significant reduction in network traffic because all records are passed to the server in a PL/SQL table of records table handlers on server act as standard API to enter data	large sets of data could impact network performance derived columns are not automatically requeried
4.	If you specified View or Procedure as a datasource or datatarget, you must generate the Module Component API and possibly the Table API as shown below:

Datasource or Datatarget	Type	Before running the generated form, you must generate:
Datasource	View	Module Component API
Datasource	Procedure	Module Component API
Datatarget	Procedure	Module Component API and Table API
For more information, refer to Generating the Server API in the Server Generator help system.


Multi-region block generation

Related Topics

About multi-region blocks

Generating multi-region blocks

Generated multi-region block properties

Examples of generated multi-region blocks

Notes on the generation of multi-region blocks


About multi-region blocks

Related Topics

Most blocks you generate will be single region blocks. Single region blocks are based on a single table and comprise one rectangular layout region that cannot be split across different canvases or windows. You generate a single region block from a single module component.

In some cases, you will want to generate multi-region blocks. As with single region blocks, a multi-region block is based on a single table. However, a multi-region block comprises a number of different rectangular layout regions. The layout regions in a multi-region block can be placed on:

•	different places on the same canvas

•	different canvases in the same window

•	different canvases in different windows

You generate a multi-region block by defining:

•	a primary module component with one base table usage and (optionally) one or more lookup table usages

•	one or more module sub-components, each with a usage of the same base table as the primary module component, and (optionally) each with one or more lookup table usages

Form Generator creates a rectangular layout region for the primary module component and for each module sub-component. Although they contain items based on columns from the same table, the different layout regions can display different numbers of rows. The data in different regions in a multi-region block is always synchronized (i.e. the regions all display data for the same current record).

You can create bound items based on the same columns as bound items in the primary module component (or any other module sub-component). Note that Form Generator will generate second and subsequent items as mirror items. Also note the standard source objects for these mirror items will be the same as for the first bound item (i.e. not CGSO$CONTEXT, which is the usual standard source object for mirror items).

Multi-region blocks are a common feature of Oracle Applications forms (where they are referred to as 'combination blocks').


Generating multi-region blocks

Related Topics

To generate a multi-region block:

1.	Create a primary module component in the Design Editor.  How

2.	Set the module component's Placement property and Rows Displayed properties as required.

3.	Create a base table usage in the primary module component.  How

4.	Create bound and unbound items as required.  How

5.	(optional) Create a lookup table usage and lookup items if required.  How

6.	Create a module sub-component for the primary module component.  How

7.	Set the module sub-component's Placement property and Rows Displayed properties as required.

Note that the module sub-component's Placement and Rows Displayed properties can be different to those properties defined for the primary module component. If you want the module sub-component's layout region placed in a new window, set the Window property accordingly.

8.	Create a base table usage in the module sub-component.  How

The usage you specify for the module sub-component must be of the same table as the primary module component's base table usage.

9.	Create bound and unbound items as required.  How

You can create bound items based on the same columns as bound items in the primary module component (or any other module sub-component). We strongly recommend you give different names to bound items based on the same column. If you do not do so, Form Generator will generate unique names for second and subsequent items based on the same column by appending an arbitrary string to the generated item names.

10.	(optional) Create lookup table usages and lookup items if required.  How

11.	Define further module sub-components as required.

The object libraries supplied with Form Generator already contain a suitable object from which to subclass or copy properties. If you are not using one of the supplied object libraries, we recommend you add a suitable object to one of the object libraries you are using as described in the next step.

12.	(recommended) Create a block in an object library and set the properties you want Form Generator to copy or subclass in one of the following ways:

•	by creating a block in the object library called CGSO$BLOCK_MULTIREGION

•	by specifying an object in the object library for Form Generator to use when generating the block, using the Template/Library Object property of the primary module component

For more information about copying or subclassing objects from an object library, refer to Using object libraries.

Note that if you subclass or copy from a block in an object library and items belong to that object library block, Form Generator will subclass or copy those items into the generated form. For more information, refer to Items copied or subclassed from items in object library blocks.

13.	If the layout regions will be generated onto different canvases,

•	set NAVPAG to specify the behavior of [Next Item] and [Previous Item] item navigation

•	set MRBMCR to control navigation within multi-region blocks when a user of the generated form enters a query, executes a query, or inserts a new record

You might also want to consider using navigation action items to enable users to navigate to layout regions on different canvases. For more information, refer to Generating buttons to navigate to other blocks, windows, and modules.

14.	Use the MRBVSB preference to generate a scroll bar for a multi-row region.

15.	Set other properties for the generated block as required, using repository information and preferences.

Using templates and obsolete preferences

We strongly recommend you use objects in object libraries to set properties of generated objects. However, to ensure backwards compatibility, in Oracle Designer release 2 onwards you can continue to use obsolete preferences and objects in a template form to define properties of generated objects.


Generated multi-region block properties

Related Topics

In general, Form Generator sets a generated multi-region block's data properties using the data properties and preferences defined for the primary module component and its base/lookup table usage.

Form Generator determines the appearance of each region in a multi-region block from properties and preferences defined for the primary module component or module sub-component from which the region was generated. In addition, Form Generator uses the CGSO$BLOCK_MULTIREGION source object from an object library (or the implementation source object specified by the module component's Placement Template/Library Object property).

Generated multi-region block block properties

Block Property	Derived from  or set to:	Notes and Related Topics
General
Name	Primary module component name
Navigation
Navigation Style	Object library object
Records
Number of Records Displayed	Set to the largest number of rows to be displayed in any of the layout regions in the block
Records Fetched	Set to the largest number of rows to be displayed in any of the layout regions in the block
Scrollbar
Show Scrollbar	Object library object property	If there are several multi-row layout regions in the block, use MRBVSB to identify the multi-row layout region(s) with a scrollbar.
Generated multi-region block item properties

Item Property	Derived from or set to:	Notes and Related Topics
Name	Repository item from which the item is generated	We strongly recommend you give different names to bound items based on the same column. If you do not do so, Form Generator will generate unique names for second and subsequent items based on the same column by appending an arbitrary string to the generated item names.
Data
Initial value	Set to Null for second and subsequent bound items based on the same column and generated as mirror items.	For a second or subsequent bound item in a module component based on the same column on which a bound item is already based, Form Generator sets this property to null
Required	Set to No for second and subsequent bound items based on the same column and generated as mirror items.
Copy Value from Item		Set by Form Generator to implement block synchronization.
Synchronize with Item		For a second or subsequent bound item in a module component based on the same column on which a bound item is already based, Form Generator sets this property to the name of the item generated from the first bound item. The second generated item is a mirror of the first.
Records
Number of items displayed	Rows Displayed property of the module component from which the layout region containing the item was generated
Database
Database item	Set to No for second and subsequent bound items based on the same column and generated as mirror items.


Examples of generated multi-region blocks

Related Topics

For the examples in this topic, the requirement is to generate:

•	a 'search area' containing enough information to identify an employee

•	a 'detail area' in which to view more details about an employee selected in the search area

Two module components have been defined:

ListMC is a primary module component. It has a base table usage of the EMP table and a lookup usage of the DEPT table. The module component's Rows Displayed property is set to 6.

DetailsMC is a module sub-component of ListMC. It has a base table usage of the EMP table and lookup usages of the DEPT and JOBS tables. The module sub-component's Rows Displayed property is set to 1.

Form Generator generates the primary module component and the module sub-component as two separate rectangular layout regions.

You use the Placement properties of the primary module component and the module sub-component to control where Form Generator places the layout regions.

Example1: Layout regions placed on the same canvas in the same window

In this example, ListMC and DetailsMC are placed on the same canvas. The items in the two layout regions are synchronized, so that selecting the second record in ListMC displays the appropriate information in DetailsMC.

The relevant properties of the two module components are set as follows:

Module Component	Title	Placement property	Window property
ListMC	List of Employees	New content canvas	Window1
DetailsMC	Employee Details	Same content canvas	Window1
Example 2: Layout regions placed on different canvases in the same window

In this example, ListMC and DetailsMC are placed on different content canvases but displayed in the same window. A module component level action item has been defined for ListMC to navigate to DetailsMC. Similarly, a module component level action item has been defined for DetailsMC to navigate to ListMC. The items in the two layout regions are synchronized (even though they are never displayed simultaneously), so that selecting the second record in ListMC and then navigating to DetailsMC displays the appropriate information in DetailsMC.

The relevant properties of the two module components are set as follows:

Module Component	Title	Placement property	Window property
ListMC	List of Employees	New content canvas	Window1
DetailsMC	Employee Details	New content canvas	Window1
Example 3: Layout regions placed on different canvases in different windows

In this example, ListMC and DetailsMC are placed on different content canvases and displayed in different windows. A module component level action item has been defined for ListMC to navigate to DetailsMC. Similarly, a module component level action item has been defined for DetailsMC to navigate to ListMC. The items in the two layout regions are synchronized, so that selecting the second record in ListMC displays the appropriate information in DetailsMC. To restrict item navigation to each canvas, NAVPAG was set to Yes.

The relevant properties of the two module components are set as follows:

Module Component	Title	Placement property	Window property
ListMC	List of Employees	New content canvas	Window1
DetailsMC	Employee Details	New content canvas	Window2
Example 4: Layout regions placed on different canvases in different windows, with drilldown current record indicator

In this example, ListMC and DetailsMC are placed on different content canvases and displayed in different windows. A drilldown current record indicator item has been defined for ListMC to navigate to DetailsMC. A module component level action item has been defined for DetailsMC to navigate to ListMC. The items in the two layout regions are synchronized, so that selecting the second record in ListMC displays the appropriate information in DetailsMC.

The relevant properties of the two module components are set as follows:

Module Component	Title	Placement property	Window property
ListMC	List of Employees	New content canvas	Window1
DetailsMC	Employee Details	New content canvas	Window2
Example 5: Layout regions placed on different tab canvas pages

In this example, ListMC and DetailsMC are placed on different tab canvas pages. The items in the two layout regions are synchronized, so that selecting the second record in ListMC displays the appropriate information in DetailsMC. To restrict item navigation to this content canvas, NAVPAG was set to Yes. To restrict item navigation to each tab canvas page, set the block navigation. How

The relevant properties of the two module components are set as follows:

Module Component	Title	Placement property	Window property
ListMC	List	New tab canvas page	Window1
DetailsMC	Details	New tab canvas page	Window1


Notes on the generation of multi-region blocks

Related Topics

When generating multi-region blocks, note the following:

•	Form Generator only creates one block for a primary module component and all of its module sub-components.

•	You can generate multiple module sub-components as multi-row layout regions. However only one multi-row region in a multi-region block can have a scrollbar, unless the multi-row regions are generated onto different tab canvas pages of the same tab canvas in the same window. Use the MRBVSB preference to specify the multi-row region(s) with a scrollbar.

•	You cannot enter application logic for module sub-components. To define block level trigger code, enter application logic for the primary module component.

•	If you make the primary module component reusable, any module sub-components are also made reusable and included automatically when you include the primary module component in a module.

•	If none of the object libraries you are using contain CGSO$BLOCK_MULTIREGION, Form Generator attempts to use CGSO$BLOCK to set properties of a multi-region block. Note that Form Generator will not use CGSO$BLOCK_CT or CGSO$BLOCK_MR (if they exist in an object library) because the primary module component and its module sub-components might have conflicting requirements (e.g one might be multi-row while another might be single row).

•	When generating a multi-region block, you can sequence blocks generated from other module components between the layout regions generated from a primary module component and its module sub-components. For example, you might want a master block and a detail block to appear on the same canvas. If the master block was generated from a primary module component, layout regions generated from any module sub-components could appear on different content canvases and/or in different windows.

•	Bound items in module sub-components can use arguments passed to the form providing the primary module component is generated as the first navigable block in the form.

•	You can create window level and module component level action items for module sub-components in the same way as for module components.

•	Layout regions generated from a primary module component and its module sub-components have headers and footers in the same way as blocks. However, context items from blocks on previous canvases are not generated into more than one header (either for a block or for a layout region) on any one canvas.

•	You can include drilldown current record indicator items to navigate between different layout regions in a multi-region block. For more information, refer to Current record indicator item generation.

•	By default, Form Generator does not consider the different regions of a multi-region block to be different blocks when generating navigation code. As a result and depending on the structure of the generated form, users of the form might complain of unexpected behavior when they press [Next Block] or [Previous Block]. If this is an issue, enter application logic at module component level for the KEY-NXTBLK and KEY-PREVBLK events to explicitly specify the items to navigate to.


Placing blocks on canvases

Related Topics

Placing blocks on content canvases

Placing blocks on stacked canvases

Placing blocks on tab canvases

Placing blocks side-by-side on the same canvas

Combining block placements


Placing blocks on content canvases

Related Topics

About placing blocks on content canvases

Use the module component's Placement property to place a block on a content canvas.

By default, Form Generator places the second and subsequent blocks on the same canvas below the previous blocks on that canvas. For more information about placing a block beside a previous block instead of below it, refer to Placing blocks side-by-side on the same canvas.

For more information about generating content canvases, refer to Content canvas generation.

To place a block on a new content canvas:

•	Set the module component's Placement property to New Content Canvas.

To place a block on the same content canvas as the previous block:

•	Set the module component's Placement property to Same Content Canvas.

Examples

Example 1: First block placed on a new content canvas

In this example, the first block is placed on a new content canvas.

Module  component	Placement  property	Window  property	Rows Displayed	Title
Dept	New Content Canvas	Window1	6	List of Departments
Data view		Generated as
Example 2: Second block placed on same content canvas in same window

In this example, the second block is placed on the same content canvas as the first block.

Module  component	Placement  property	Window  property	Rows Displayed	Title
Dept Emp	New Content Canvas Same Content Canvas	Window1 Window1	6 1	List of Departments Employee Details
Data view		Generated as
Example 3: Second block placed on new content canvas in same window

In this example, the second block is placed on a new content canvas, but in the same window as the first block. Navigation action items have been included to enable navigation between the two canvases.

Module  component	Placement  property	Window  property	Rows Displayed	Title
Dept Emp	New Content Canvas New Content Canvas	Window1 Window1	6 1	List of Departments Employee Details
Data view		Generated as
Example 4: Second block placed on new content canvas in new window

In this example, the second block is placed on a new content canvas and in a different window to the first block. Navigation action items have been included to enable navigation between the two windows.

Module  component	Placement  property	Window  property	Rows Displayed	Title
Dept Emp	New Content Canvas New Content Canvas	Window1 Window2	6 1	List of Departments Employee Details
Data view		Generated as


Placing blocks on stacked canvases

Related Topics

About placing blocks on stacked canvases

Use the module component's Placement property to place a block on a stacked canvas.

By default, Form Generator places the second and subsequent blocks on the same canvas below the previous blocks on that canvas. For more information about placing a block beside a previous block instead of below it, refer to Placing blocks side-by-side on the same canvas.

For more information about generating stacked canvases, refer to Stacked canvas generation.

To place a block on a new stacked canvas:

•	Set the module component's Placement property to New Stacked Canvas.

To place a block below the previous block on the same stacked canvas:

•	Set the module component's Placement property to Same Stacked Canvas.

Examples

Example 1: Second block placed on new stacked canvas

In this example, the second block is placed on a new stacked canvas. When the user navigates to the second block, it appears on top of the content canvas.

Module  component	Placement  property	Window  property	Rows Displayed	Title
Dept Emp	New Content Canvas New Stacked Canvas	Window1 Window1	6 1	List of Departments Employee Details
Data view		Generated as
Example 2: Third block placed on same stacked canvas

In this example, the third block is placed on the same stacked canvas as the stacked canvas.

Module  component	Placement  property	Window  property	Rows Displayed	Title
Dept Emp Acc	New Content Canvas New Stacked Canvas Same Stacked Canvas	Window1 Window1 Window1	6 1 1	List of Departments Employee Details Accounts
Data view		Generated as


Placing blocks on tab canvases

Related Topics

About placing blocks on tab canvases

Use the module component's Placement property to place a block on a tab canvas page.

By default, Form Generator places the second and subsequent blocks on the same canvas below the previous blocks on that canvas. For more information about placing a block beside a previous block instead of below it, refer to Placing blocks side-by-side on the same canvas.

For more information about blocks and tab canvases:

•	for general information about tab canvases, refer to Tab canvas generation.

•	for detailed information, examples, and notes related to the placement of blocks on tab canvases, refer to Generating blocks onto native Oracle Forms tab canvases

To place a block on a new tab canvas page:

•	Set the module component's Placement property to New Tab Canvas Page.

To place a block on the same stacked canvas as the previous block:

•	Set the module component's Placement property to Same Tab Canvas Page.

Examples

Example 1: Second block placed on new tab canvas page

In this example, the first and second blocks are placed on different tab canvas pages.

Module  component	Placement  property	Window  property	Rows Displayed	Title
Dept Emp	New Tab Canvas Page New Tab Canvas Page	Window1 Window1	6 1	List of Departments Employee Details
Data view		Generated as
Example 2: Second and third blocks placed on same tab canvas page

In this example, the first and second blocks are placed on different tab canvas pages. The third block is placed on the same tab canvas page as the second block.

Module  component	Placement  property	Window  property	Rows Displayed	Title
Dept Emp Acc	New Tab Canvas Page New Tab Canvas Page Same Tab Canvas Page	Window1 Window1 Window1	6 1 1	List of Departments Emp & Acc Details Accounts
Data view		Generated as


Placing blocks side-by-side on the same canvas

Related Topics

About placing blocks side-by-side on the same canvas

By default, Form Generator places the second and subsequent blocks on the same canvas below the previous blocks on that canvas. Use a module component's Placement property and Right of Component property to place a block beside a previous block instead of below it.

When you create a new module component, it is automatically placed in a new window and on a different canvas. To generate two blocks side-by-side on the same canvas, you must first include the corresponding module components in the same window and on the same canvas.

To place a block beside a previous block on the same canvas:

1.	Set the module component's Placement property to Right of.

2.	Set the module component's Right of Component property to the name of a previous module component.

Examples

Example 1: Second block placed beside previous block on same content canvas

In this example, the second block is placed beside the first block.

Module  component	Placement  property	Right of Component property	Window  property	Rows Displayed	Title
Dept Emp	New Content Canvas Right of	- Dept	Window1 Window1	6 1	List of Departments Employee Details
Data view		Generated as
Example 2: Third block placed beside second block and below first block on same content canvas

In this example, the second and third blocks are placed beside each other below the first block. The widths of the generated blocks have been explicitly specified so that the first block is the same width as the lower two blocks. The gap between the blocks placed beside each other is specified by PAGMAR. In this example, PAGMAR is set to 2. To decide the value to specify for the Width property of Dept, you would have done the following calculation:

	Set Width property of Dept = (width of Emp) + (width of Acc) + (value of PAGMAR)
=>	Set Width property of Dept = 32 + 26 + 2
=>	Set Width property of Dept = 60
Module  component	Placement  property	Right of Component property	Window  property	Rows Displayed	Title	Width property
Dept Emp Acc	New Content Canvas Same Content Canvas Right of	- - Emp	Window1 Window1 Window1	6 1 1	List of Departments Employee Details Accounts	60 32 26
Data view		Generated as
Example 3: Second and third blocks placed beside first block

In this example, the second and third blocks are both placed beside the first block. You have increased the number of rows in the first block to take advantage of the extra space.

Module  component	Placement  property	Right of Component property	Window  property	Rows Displayed	Title
Dept Emp Acc	New Content Canvas Right of Right of	- Dept Dept	Window1 Window1 Window1	17 1 1	List of Departments Employee Details Accounts
Data view		Generated as
Notes

Note 1

The gap between blocks placed beside each other is specified by PAGMAR/POPMAR

Note 2

When placing the current block beside a previous block, Form Generator ignores any space to the right of the previous block (e.g. as specified by PAGMAR/POPMAR or PAGBIN/POPBIN). However, Form Generator retains any space to the left of the current block. The illustrations below demonstrate this functionality.

Blocks placed below each other PAGMAR=3 PAGBIN=2
Blocks placed beside each other PAGMAR=3 PAGBIN=2 Gap between Dept and Emp = 5 Gap between Dept and Acc = 7
Blocks placed beside each other PAGMAR=3 PAGBIN=2 Gap between Dept and Emp = 5 Gap between Emp and Acc = 7


Combining block placements

Related Topics

About combining block placements

To achieve a particular layout, you will want to combine module components with a number of different placement properties. In some cases, you will also have to use the X Position property and Y Position property of module components to place generated blocks and canvases precisely where you want them.

Examples

Example 1: Third and fourth blocks placed side-by-side on same tab canvas page

In this example, the third and fourth blocks are placed side-by-side on a tab canvas below the first block.

Module  component	Placement  property	Right of Component property	Window  property	Rows Displayed	Title
Ctry Dept Emp Acc	New Content Canvas New Tab Canvas Page New Tab Canvas Page Right of	- - - Emp	Window1 Window1 Window1 Window1	6 6 1 1	List of Countries List of Departments Emp & Acc Details Accounts
Data view		Generated as
Example 2: First block placed on content canvas, second and third blocks placed on tab canvas pages

In this example, the X Position and Y Position properties of the Dept module component have been explicitly set to position the tab canvas beside the List of Countries block.

Module  component	Placement  property	Right of Component property	Window  property	Rows Displayed	Title property	Width property	X Position property	Y Position property
Ctry Dept Emp	New Content Canvas New Tab Canvas Page New Tab Canvas Page	- - -	Window1 Window1 Window1	6 6 1	List of Countries Dept Employees	54 - -	- 56 -	- 0 -
Data view		Generated as


Block relation generation

Related Topics

About relations between blocks

When does Form Generator create relations between blocks?

Generating relations between blocks

Generated relation properties


About relations between blocks

Related Topics

A relation is a logical object that specifies the master-detail relationship between one master block and one corresponding detail block.

The relationship between the blocks reflects a primary key to foreign key relationship between the tables on which the blocks are based. There is no limit to the number of detail blocks for any given master. Each detail block can also act as a master for other blocks.

A relation is a property of the master block.


When does Form Generator create relations between blocks?

Related Topics

You can use Form Generator to create relations between generated blocks and the block synchronization code to ensure the related blocks show consistent data if:

•	there is a foreign key relationship between two base tables

•	there is a key-based master detail link between the two module component table usages

•	the two usages are of different tables

In addition, Form Generator enables you to generate relations between two blocks based on one table if the link between the two module components represents a self-referencing (or recursive) foreign key relationship.

However, Form Generator does not support links between module components where the link is:

•	an inverted master detail link

•	a same table link representing a primary key relationship between two usages of the same table

The types of links from which Form Generator does and does not generate relations are shown below:

Form Generator generates this as a master-detail relationship between two blocks based on different tables		Form Generator will not generate this inverted master detail link
Form Generator will not generate this same table link		Form Generator generates two blocks based on the same table related by the self-referencing foreign key relationship between Mgr and Empno

For more information about links between module components, refer to Key Based Links. in the Design Editor help system.

Note that you can use Form Generator to generate

•	blocks that do not have links to other blocks

•	multi-region blocks from a primary module component and its module sub-components (which always have the same base table)

•	a form containing a detail block with two masters, sometimes called a 'master master detail form' or a 'matrix form' (note that Form Generator will not generate forms with more than two masters)


Generating relations between blocks

Related Topics

To generate a relation when generating a master-detail form:

1.	Create a module component and table usages in the Design Editor for the generated master block.  How

2.	Create bound and unbound items as required.  How

3.	Create a second module component and table usages in the Design Editor for the generated detail block.  How

4.	Create bound and unbound items as required, including bound items for those foreign key columns that will link the generated blocks.  How

5.	Create a key-based link between the two table usages.  How

6.	Set properties for the generated blocks and items as required.

During generation, Form Generator sets the properties of the generated relation.


Generated relation properties

Related Topics

Relation Property	Derived from or set to:	Notes and Related Topics
Name	Foreign key name, prefixed with CG$FK
Comments
Functional
Detail Data Block		Name of block based on second base table usage in link
Join Condition	Based on foreign key in link
Delete Record Behavior	Cascade Delete property of foreign key definition used in link
Prevent Masterless Operations	Set to Yes
Coordination
Deferred	Oracle Forms default value
Automatic Query	Oracle Forms default value


Block overflow control

Related Topics

About block overflow

About the block overflow options

Specifying block overflow options and overflow context items

Generated overflow area properties


About block overflow

Related Topics

Block overflow is the term used to refer to the situation in which the items created by Form Generator to display information for a single record in the base table of a module component (and/or module sub-component, in the case of generated multi-region blocks) will not fit on a single line in the available width.


About the block overflow options

Related Topics

There are four options when block overflow occurs:

•	Wrap Line

•	Overflow Below

•	Overflow Right

•	Spreadtable

If you choose an option other than Wrap Line, Form Generator uses two areas - a context area and an overflow area. The context area contains items that Form Generator identifies as context items. The overflow area contains the remaining items and any context items that will not fit in the context area.

Use the OFADFT preference to identify context items. Use the OFAGRP preference to specify the conditions under which an item group is included in the context area.

The Wrap Line block overflow option

This option is Form Generator's normal layout. Each item (with its prompt) is placed adjacent to and to the right of the preceding item. When the edge of the block is reached, the next item wraps onto the next line.

The Overflow Below block overflow option

A number of rows of context items are laid out in a one line per row multi-row format in a context area, placed above an overflow area containing other items in the current row. The block must be large enough to lay out all the other items for one row in the overflow area.

The Overflow Right block overflow option

A number of rows of context items are laid out in a one-line-per-row multi-row format in a context area, placed to the left of an overflow area containing other items for the current row. The default number of rows chosen for the context area will correspond to the height of the overflow area.

The overflow area takes all the space to the right of the context area. The block must be large enough to lay out all the other items for one row in the overflow area.

The Spreadtable Block overflow option

This option is similar to the Overflow Right option, except that there is always enough room to display all the items in the overflow area on one line. One or more rows of context items are laid out in a one-line-per-row multi-row format in the context area, placed to the left of a 'spreadtable' (a stacked canvas with a horizontal scrollbar) that contains the overflow items on a single line. Because the spreadtable is a scrollable stacked canvas, its width is not restricted by the width of the block.

Note that the Spreadtable overflow option is only valid for blocks placed on content canvases and tab canvases (i.e. it is not valid for blocks placed on stacked canvases).

For more information about spreadtables, refer to Spreadtable canvas generation.


Specifying block overflow options and overflow context items

Related Topics

To specify the block overflow option:

•	Set the Overflow property of the module component.

To identify the overflow context items (applies to Overflow Below, Overflow Right, or Spreadtable overflow options):

1.	Use the OFADFT preference to specify the criteria by which Form Generator picks context items.

2.	Use the OFAGRP preference to specify the conditions under which Form Generator includes an item group in the context area. Either the item group is used in its entirety or it is not used at all.

3.	If you set OFADFT to N, set the Context property of those items you want to appear in the context area.

4.	If you set the overflow option to Overflow Right or Spreadtable, use the OFAPCN preference to control how the available width is shared between the context area and the overflow area.

5.	(recommended) If you set the overflow option to Spreadtable, create a stacked canvas called CGSO$CANVAS_SPREAD in an object library and set the properties you want Form Generator to copy or subclass.

For more information about copying or subclassing objects from an object library, refer to Using object libraries.

6.	Use the appropriate preferences to set other overflow area properties.


Generated overflow area properties

Related Topics

Overflow Area Property	Derived from or set to:	Notes and Related Topics
Margin	OFAMAR
Justification	OFAJUS
Title	OFATTL
Title justification	OFATLJ
Title margin	OFATLM
Title spacing	OFATLS
Title expansion	ITMPPE	The width of any decoration is increased to allow for any increase in the title's width.
Title minimum width	ITMMPW	The width of any decoration is increased to allow for any increase in the title's width.
Decoration	OFADEC
Brush width	OFABWD
Dash style	OFADST
Overflow area table uses default context items	OFADFT
Overflow area context item group inclusion	OFAGRP
Overflow area percentage of available width reserved for context	OFAPCN
Overflow area header separator	OFAHDS
Overflow area footer separator	OFAFTS
Overflow area below, content separator	OFABCS
Overflow area right, content separator	OFARCS
Limit rows within overflow area on right	OFALIM
Overflow area multi-line line separator	OFAMLL


Generating blocks onto native Oracle Forms tab canvases

Related Topics

About generated blocks displayed on native Oracle Forms tab canvases

Generating blocks onto tab canvases/tab pages

Generated tab canvas/tab page properties for displaying blocks

Examples of blocks generated onto tab canvases/tab pages

Notes on the use of tab canvases for displaying blocks

See also

Placing blocks on canvases

Generating Wizard style forms


About generated blocks displayed on native Oracle Forms tab canvases

Related Topics

Form Generator places blocks generated from module components onto different tab pages of a generated tab canvas when both the following conditions are met:

•	CANNTC is set to Yes

•	two or more repository module components have their Placement properties set to New tab canvas page

Using Form Generator, you can generate:

•	multiple blocks onto the same tab canvas page

•	all of the blocks in a window onto pages of the same tab canvas

•	stacked item groups onto tab canvas pages, even if the stacked item groups are themselves displayed on tab canvases

Form Generator uses the Title property of the first module component to be generated onto a tab page as the label for that tab page. If you do not set the Title property, Form Generator uses the module component's Name property.

During generation, Form Generator creates a record group containing data to control canvas management, and attaches the OFGTAB.pll library.

For more information about blocks and tab canvases (including placing blocks side-by-side on the same tab canvas page), refer to Placing blocks on canvases.


Generating blocks onto tab canvases/tab pages

Related Topics

To generate blocks onto a native Oracle Forms tab canvas:

1.	Create a module component in the Design Editor.  How

2.	Set the Placement property of the first or only module component to be generated onto a tab page to New Tab Canvas Page.

3.	Set the Placement property of any subsequent module components you want generated onto the same tab page to Same Tab Canvas Page.

4.	Set the Placement property of the next module component to be generated onto a new tab page to New Tab Canvas Page.

5.	Continue setting the Placement properties of module components as required.

6.	Set CANNTC to Yes.

7.	Set the Title property for the module components as required.

The Title property of the first block on each tab canvas page is used as the label for that tab canvas page. If you do not set the Title property, Form Generator uses the block's Name property. If necessary, you can use POPTFB/PAGTFB to prevent the block title appearing on both the label and on the tab canvas page itself.

8.	Set other repository properties for the module components as appropriate.

The object libraries supplied with Form Generator already contain suitable objects from which to subclass or copy properties of both the generated tab canvas and generated tab canvas pages. If you are not using one of the supplied object libraries, we recommend you add suitable objects to one of the object libraries you are using as described in the next two steps.

9.	(recommended) Create a tab canvas in an object library called CGSO$CANVAS_TAB and set the properties you want Form Generator to copy or subclass when generating the tab canvas.  If you are using spreadtable blocks, refer to Aligning the context items on tab canvases with items on spreadtable blocks.

10.	(recommended) Create a tab canvas page in the object library and set the properties you want Form Generator to copy or subclass in one of the following ways:

•	by creating a tab canvas page in the object library called CGSO$TAB_PAGE

•	by specifying a tab canvas page in the object library for Form Generator to use when generating the tab canvas page, using the Placement Template/Library Obj property of the module component

For more information about copying or subclassing objects from an object library, refer to Using object libraries.

11.	(Optional)  Use preferences to specify further properties of blocks generated onto tab canvases and tab pages.

For a list of preferences to use, refer to Layout Preferences - Block.


Generated tab canvas/tab page properties for displaying blocks

Related Topics

Generated tab canvas properties

Tab Canvas Property	Derived from or set to:	Notes and Related Topics
Name	CG$M_TAB_<n>
Canvas Type	Tab
Subclass Information
Comments	null
Functional
Raise on Entry	Yes
Popup Menu	null
Viewport
Viewport Width	Width of widest block displayed on tab canvas pages
Viewport Height	Height of highest block on tab canvas page
Physical
Visible	Yes
Window	set to the name of the window generated for the module component
Viewport X and Y Position	Determined by Form Generator according to available space, and overflow options	This is the position of tab canvas on the underlying content canvas.
Bevel	None
Tab Style	Object library object property
Tab Attachment Edge	Top
Font & Color
Visual Attribute Group	Default
International
Direction	Default
Miscellaneous
View Horizontal Scrollbar	Object library object
View Vertical Scrollbar	Object library object
Generated tab page properties

Tab Page Property	Derived from or set to:	Notes and Related Topics
Name	CG$M_TAB_<n>_PAGE_<n>
Comments	null
Functional
Enabled	Yes
Label	Title property of first block on this tab page	If Title property is not set, Form Generator uses the module component's Name property.
Physical
Visible	Yes
Font and Color
Visual Attribute Group	Default
International
Direction	Default


Examples of blocks generated onto tab canvases/tab pages

Related Topics

A four block form with two blocks displayed on tab canvas pages

To generate the above layout:

1.	Create four module components on the same content canvas.

2.	Set the Placement property of the first module component to New content canvas.

3.	Set the Placement property of the second and third module components to New tab canvas page.

4.	Set the Placement property of the fourth module component to Same content canvas.

5.	Set CANNTC to Yes.

A four block form with two blocks displayed on tab canvas pages, and stacked item groups displayed on one of those tab canvas pages

To generate the above layout:

1.	Create four module components on the same content canvas.

2.	Set the Placement property of the first module component to New content canvas.

3.	Set the Placement property of the second and third module components to New tab canvas page.

4.	Create stacked item groups from items in the first module component placed on a tab canvas page.

5.	Set the Placement property of the fourth module component to Same content canvas.

6	Set CANNTC to Yes.

A four block form with all blocks displayed on tab canvas pages

To generate the above layout:

1.	Create four module components on the same content canvas.

2.	Set the Placement property of each of the module components to New tab canvas page.

3.	Set CANNTC to Yes.

A four block form with all blocks displayed on tab canvas pages and buttons at the bottom of the content canvas (sometimes called a Wizard style form)

To generate the above layout:

1.	Create four module components on the same content canvas.

2.	Set the Placement property of each of the module components to New tab canvas page.

3.	Create window level action items for the repository window definition from which Form Generator will generate the window displaying the tab canvas.

4.	Add suitable application logic for the action items.

For an example of how you might add application logic, refer to Generating Wizard style forms.

5.	Set CANNTC to Yes.

A three block form with the first two blocks displayed on tab canvas pages and a third block displayed below the tab canvas

To generate the above layout:

1.	Create three module components on the same content canvas.

2.	Set the Placement property of the first two module components to New tab canvas page.

3.	Set the Placement property of the third module component to Same content canvas.

4.	Set CANNTC to Yes.


Notes on the use of tab canvases for displaying blocks

Related Topics

Note the following when generating tab canvases to display blocks:

•	A tab canvas (and its tab pages) generated from module components will appear at the position of the first module component that has its Placement property set to New Tab Canvas Page. It is your responsibility to make sure that blocks in the resulting form do not appear to users to be out of sequence.

•	A content canvas can only contain one tab canvas generated from module components.

•	If a generated form contains multiple content canvases, each content canvas can contain one tab canvas generated from module components.

•	All block layout preferences apply to blocks generated onto tab pages.

•	If the block you are generating onto a tab canvas page contains stacked item groups that are themselves to be generated onto a native Oracle Forms tab canvas, the first item in the block must not be in one of the stacked item groups (i.e. the first item must be placed on the underlying tab canvas page).

•	The label for a tab canvas page is derived from the title given to the first block displayed on that tab canvas page. If you do not want both the label and the block title to appear on the tab canvas page, set POPTFB to No to prevent the block title being displayed (if the first block on a tab canvas page is the first block on the content canvas, use PAGTFB).

•	If you set the X Position and Y Position properties of the first module component to be placed on the first tab canvas page, Form Generator will use those properties to position the generated tab canvas on the underlying content canvas.

•	If the first block in a content canvas is generated onto a tab canvas and you set the Width and Height properties of the module component from which that block was generated, Form Generator will use the dimensions you specified as default dimensions for the underlying content canvas.

•	Form Generator determines the dimensions of a generated tab canvas as follows:

−	Form Generator determines the width of a generated tab canvas either from the largest Width property specified for any module component placed on a tab canvas page or from the width of the widest block to be displayed on a tab canvas page, whichever is the greater

−	Form Generator determines the height of a generated tab canvas either from the largest Height property specified for any module component placed on a tab canvas page or from the height of the highest block to be displayed on a tab canvas page, whichever is the greater


Number of rows in a block

Related Topics

About the 'Expanded Rows' and the 'Unexpanded Rows' values

Explicitly specifying the number of rows to appear in a block

Specifying that the maximum possible number of rows are to appear in a block


About the 'Expanded Rows' and the 'Unexpanded Rows' values

Related Topics

For each block it creates during generation, Form Generator calculates two figures:

the Unexpanded Rows value	the number of rows that will fit on the canvas without expanding the canvas vertically
the Expanded Rows value	the number of rows that will fit on the canvas if it is expanded to the maximum size possible (as specified by CANMHT)

Form Generator then determines the number of rows you want in the block from the Rows Displayed property and the Maximum Rows? checkbox on the Module Component dialog box. If the specified number of rows will not fit on the unexpanded canvas (i.e. the number of rows is greater than the Unexpanded Rows value), Form Generator expands the canvas vertically as necessary. Note that when you explicitly specify the number of rows to appear in a block, the height of the target canvas is not restricted by CANMHT.

If you have not specified the number of rows to display, Form Generator places as many rows as possible on the unexpanded canvas. If the unexpanded canvas is not large enough to display a single row, Form Generator increases the height of the canvas sufficiently to display a single row (up to the maximum size possible, as specified by CANMHT).

Note that the number of rows might also be restricted by the height of two-dimensional objects if SARLIM and SARENB are set to Yes.


Explicitly specifying the number of rows to appear in a block

Related Topics

To specify the number of rows that are displayed in a block (or layout region in a multi-region block) created from a module component, set the Rows Displayed property of the appropriate module component accordingly.

If the Rows Displayed value you enter is greater than either the Unexpanded Rows value or the Expanded Rows value calculated by Form Generator during generation, Form Generator increases the size of the target canvas and displays an appropriate message.

Note that when you explicitly specify the number of rows to appear in a block, the height of the target canvas is not restricted by CANMHT.


Specifying that the maximum possible number of rows are to appear in a block

Related Topics

To specify the maximum possible number of rows are displayed on the canvas for a block (or layout region in a multi-region block) created from a module component, do either of the following:

•	check the Maximum Rows? check box on the Module Component dialog

•	set the module component's Rows Displayed property to 0 (or null)

During generation, Form Generator attempts to fit as many rows as possible on the canvas by increasing the height of the canvas to the maximum size possible (as specified by CANMHT)

Note that if the Rows Displayed property is set to null or 0, Form Generator will use the CGSO$BLOCK_MR standard source object (if this object exists in an object library, and the object library is being used to set generated properties) to set properties of the generated block. Note that Form Generator will use this multi-row block standard source object even if only one row can be placed on the (unexpanded or expanded) canvas. There are two exceptions:

•	in the case of multi-region blocks, Form Generator will continue to use the CGSO$BLOCK_MULTIREGION standard source object

•	in the case of a block displayed in a detail window in a navigator style form where the corresponding module component's Rows Displayed property is set to null or 0, Form Generator generates the block with one row and therefore does not use CGSO$BLOCK_MR


Aligning items across multiple blocks

Related Topics

Aligning items across multiple blocks

When displaying multiple blocks, you might want to vertically align items in the different blocks (e.g. aligning the start of the prompts, or the start of the items themselves). Aligning items across multiple blocks is straightforward if you are using relative tab stops, and slightly more complicated if you are using absolute tab stops.

For more information about relative and absolute tab stops, refer to Positioning items (and item groups) using tab stops.

Aligning items across multiple blocks using relative tab stops

You can use relative tab stops to align items across multiple blocks. Note that you can also align item groups across multiple blocks using relative tab stops.

1.	Give the same relative tab stop number to the items you want to align.

2.	For each of the different module components containing the items, set the module component's Tab Stop Scope property to Parent.

Note that if the items are in item groups, you must also set the item group's Tab Stop Scope property to Parent.

Aligning items across multiple blocks using absolute tab stops

Absolute tab stops for items within a block (as specified by BLKTAB) are set from the position of the left-hand edge of that block on the canvas, not the left-hand edge of the canvas. If the left-hand edge of a subsequent block has a different position on the canvas (e.g. if one block is indented with respect to the other, if the blocks have different margins, or if one of the blocks has a scrollbar), the 'same' tab stops in different blocks will be at different horizontal positions from the left-hand edge of the canvas. Consequently, items in different blocks will not appear as vertically aligned.

Using the following combination of preferences and setting them as shown, you can ensure that absolute tab stops are vertically aligned (i.e. are in the same horizontal positions on the canvas) across blocks containing multi-line records.

Preference	Set to
BLKUTT	(the same value for each block)
BLKTAB	(the same values for each block)
PAGBIN	0
BLKJUS	LEFT
BLKMAR	(the same value for each block)
BLKSBP	(if set to LEFT for one block, then set to LEFT for each block, with identical settings for BLKSBS and for the Scroll Bar Width object library property)


Block context area and block context item generation

Related Topics

About block context areas

About block context items

Generating block context areas

Generating block context items

Generated block context area properties

Generated block context item properties


About block context areas

Related Topics

A block context area is an area in the block header in which items of information about the current context for records in the block are displayed. This context information indicates the current records in master blocks that are on preceding canvases.

The number of linked previous master blocks from which Form Generator displays context for detail blocks is referred to as block context depth.

For content canvases, Form Generator can display context information from master blocks when both the following conditions are met:

•	the master block is on a different content canvas to the detail block

•	information from the master block does not appear as context for any other block on the same content canvas as the detail block

For stacked canvases, Form Generator can display context information from master blocks when both the following conditions are met:

•	the master block is on a different stacked canvas to the detail block.

•	information from the master block does not appear as context for any other block on the same stacked canvas as the detail block.


About block context items

Related Topics

Block context items display context information for a detail block. The context information indicates the current records in master blocks on preceding canvases. Block context items are based on items present in the master block and are displayed in a block context area.

Form Generator creates block context items:

•	as mirror items (i.e. the Synchronize with Item property is set to the name of the item in the master block)

•	with the name CG$BCTX_<name>


Generating block context areas

Related Topics

To generate block context areas:

•	Set PAGCON or POPCON to the number of linked previous master blocks from which you want to display context for detail blocks.


Generating block context items

Related Topics

To generate block context items:

1.	Set CONDFT to identify the items to appear in the block context area.

If you set CONDFT to Y, Form Generator creates block context items from repository items that are based on columns that form part of the primary key of the base table, or items that are marked as descriptors of the base table.

2.	If you set CONDFT to N, set the Context property to Yes for those repository items from which you want to generate block context items.

The object libraries supplied with Form Generator already contain a suitable object from which to subclass or copy properties. If you are not using one of the supplied object libraries, we recommend you add a suitable object to one of the object libraries you are using as described in the next step.

3.	(Recommended)  Create an item in an object library and set the properties you want Form Generator to copy or subclass in one of the following ways by creating an item in the object library called CGSO$CONTEXT.

Note that you cannot specify an implementation source object for block context items. For more information about copying or subclassing objects from an object library, refer to Using object libraries.

Illustrations

Context depth on content canvases example

Context depth on stacked canvases

Context items on stacked canvases example

Context area details


Generated block context area properties

Related Topics

Context Area Property	Derived from or set to:	Notes and Related Topics
Context Depth on content canvases Picture	PAGCON
Context Depth on stacked canvases Picture	POPCON
Margins	CONMAR
Header
Title Justification	CONTLJ
Title Margin	CONTLM	Horizontal space placed before left-aligned title or after right-aligned title.  Combined with title horizontal spacing, determines the left-hand starting point of context title.
Title Horizontal Spacing	CONTLS	Horizontal space placed on either side of context title within block context area.
Context Header Separator Picture	CONHDS	Vertical space between context header and contents of context area
Context Footer Separator	CONFTS	Vertical space between contents of context area and context footer
Decoration Type Picture	CONDEC
Decoration Dash Style Picture	CONDST
Decoration Brush Width Picture	CONBWD	If a large point size is used, the lines used to draw the decoration may encroach on the context margin.


Generated block context item properties

Related Topics

Context Item Property	Derived from or set to:	Notes and Related Topics
Name	CG$BCTX_<name>	where name is the name of the item in the master block (truncated to 28 characters). If the resulting name is not unique, Form Generator adds a number to the name.
Synchronize with Item	name of item in master block
Default Context Items	CONDFT
Item Group as Context Item	CONGRP	An item group is an 'unsplittable' object that is either in or not in the context area.
Context Items Vertical Spacing	CONMLL


Relative block indentation

Related Topics

About relative block indentation

Setting relative block indentation


About relative block indentation

Related Topics

Relative block indentation refers to the width of a block (or layout region in a multi-region block) relative to previous or subsequent blocks (or layout regions).

You can specify that the widest block on the canvas is the first block, with subsequent blocks becoming narrower. Alternatively, you can specify that the widest block is the last block, in which case the blocks on the canvas become progressively wider.

Blocks are always centered within the available width. The width of a block is never permitted to fall to a value that would not permit the layout of items.

Note:	The block width also depends on whether you are generating context areas and block stubs for the block. A positive block width is ignored if you have not set PAGSTB (for content canvases) or POPSTB (for stacked canvases) to Y.


Setting relative block indentation

Related Topics

To specify the amount by which block width is increased or decreased:

•	Set PAGBIN or POPBIN to the values by which you want to increase or decrease the width of subsequent blocks on content canvases and stacked canvases respectively.

Illustrations

How PAGBIN controls block indentation

How POPBIN controls block indentation

Stacked canvas relative block indentation example

Minimum block width example


Block stub generation

Related Topics

About block stubs

Generating block stubs

Generated block stub properties


About block stubs

Related Topics

A block stub is a diagrammatic representation of a block that does not appear on the current canvas. Block stubs indicate the position of the blocks on the current canvas with respect to the total sequence of blocks in the form. The order of the block stubs is the order of the blocks they represent.

Block stubs can also contain context information.

If you generate block stubs:

•	the header of the first block on a canvas contains a stub for each block that precedes it in the form

•	the footer of the last block on a canvas contains a stub for each subsequent block in the form

In this way, each block can be represented on canvas of the form - once as a real block, and on all other canvases as a block stub.


Generating block stubs

Related Topics

To generate block stubs:

•	Set PAGSTB or POPSTB to Y to include block stubs on content canvases and stacked canvases respectively.

Illustrations

Block stubs example 1

Block stubs example 2


Generated block stub properties

Related Topics

Block Stub Property	Derived from or set to:	Notes and Related Topics
Create on content canvas	PAGSTB	First block header contains stubs for any preceding blocks and last block footer contains stubs for any following blocks
Create on stacked canvas	POPSTB	First block header contains stubs for any preceding blocks and last block footer contains stubs for any following blocks
Title	Module component Title property
Title Justification	STBTLJ
Title Margin	STBTLM	Horizontal space placed in front of left-aligned title or after right-aligned title
Title Spacing	STBTLS	Space placed before and after block title (primarily for character mode form generation, when title is embedded in decoration)
Header Separator	STBHDS	Vertical space between contents of stub header and top of stub
Footer Separator	STBFTS	Vertical space between items in stub and base of stub
Decoration Type	STBDEC
Decoration Dash Style	STBDST
Decoration Brush Width	STBBWD


Control block generation

Related Topics

About Oracle Forms control blocks

Why use control blocks?

Generating control blocks

Including non-generated control blocks in generated forms

When does Form Generator create the CG$CTRL control block?


About Oracle Forms control blocks

Related Topics

An Oracle Forms control block is a block that does not have a relationship to a database table. Control blocks can contain items of any type (e.g. buttons, text items, check boxes). However, regardless of item type, all of the items in a control block are non-base table items (i.e. items that do not correspond to columns in a database table). Non-base table items are also referred to as control items.


Why use control blocks?

Related Topics

Using the same control block in a number of different forms gives those forms a common 'look-and-feel'. For example, placing standard Oracle Forms functionality in a common control block at the top of every form presents users with a consistent interface. In addition, grouping non-base table items together in a control block is often more convenient than scattering them throughout the blocks in a form.

Form Generator creates a control block when you have defined a module component containing unbound items but no table usages. Note that Form Generator ignores the setting of a module component's Datasource and Datatarget properties in these circumstances.

In some circumstances, Form Generator automatically creates a control block called CG$CTRL. For more information, refer to When does Form Generator create the CG$CTRL control block?


Generating control blocks

Related Topics

To generate a control block:

1.	Create a module component.  How

Typically you will want to create a reusable module component to include in multiple generated applications.

2.	Create an unbound item for each generated item you want in the control block.  How

Note that the module component must not contain any bound items.

3.	If you want to include default Oracle Forms functionality in the control block, set the Template/Library Object property of unbound items to the appropriate CGAI$ implementation source object.

4.	If you created the module component as reusable for use in multiple modules, include the module component in the required modules.  How


Including non-generated control blocks in generated forms

Related Topics

To define a standard control block to appear in all generated forms:

•	Create the control block as a user block in the template form.

For more information about user blocks, refer to User blocks from the template and generated forms


When does Form Generator create the CG$CTRL control block?

Related Topics

If you have defined unbound items in a module component, Form Generator will create non-base table items from those items. These generated non-base table items will belong to the data block generated from the corresponding module component.

However, Form Generator also creates non-base table items from:

•	CG$ items with the Visible property set to No (for more information, refer to Accessing repository properties using Release 1.x style generator items from the template)

•	context items

•	other items for use by generated code

Oracle Forms requires that every item in a form must belong to a block, but these generated non-base table items are not associated with any module component. There is therefore no repository definition of a data block to which the generated items can belong.

Form Generator resolves this situation by creating a control block to which the generated non-base table items can belong. The generated block is given the name CG$CTRL.

The CG$CTRL block has no physical representation in the generated form and has none of the properties (e.g. block decoration) associated with generated data blocks. The CG$CTRL block is simply a logical object to which generated non-base table items can belong.


Spreadtable canvas generation

Related Topics

About spreadtable canvases

When does Form Generator create a spreadtable canvas?

Generated spreadtable canvas properties


About spreadtable canvases

Related Topics

A spreadtable canvas is a stacked canvas with a horizontal scrollbar that is placed to the right of one or more context items.


When does Form Generator create a spreadtable canvas
When does Form Generator create a spreadtable canvas?

Related Topics

Form Generator creates a spreadtable canvas as an overflow area when all the following conditions are met:

•	the module component's Placement property is not set to Stacked canvas

•	the module component's Overflow property is set to Spreadtable

•	a row will not fit on a single line in the generated form without wrapping

Form Generator initially lays out the spreadtable in one line of infinite width, because by definition, it cannot run out of horizontal space. It then splits prompts, reducing the width of the spreadtable to make the best use of the available horizontal space.

Form Generator determines the context items in the same way as for any overflow area setting. For more information, refer to Specifying block overflow options and overflow context items.

To restrict item navigation to items in the current content canvas, set NAVPAG to Yes.

Illustration: Spreadtable canvas example


Generated spreadtable canvas properties

Related Topics

Spreadtable Canvas Property	Derived from or set to:	Notes and Related Topics
Bevel	SPRBEV
Horizontal Scrollbar Picture	SPRHSB
Scrollbar Space	SPRSBH	Platform dependent


Single area in multi-row block generation

Related Topics

About single areas

Why define single areas?

When does Form Generator create single areas?

Generating a single area

Generated single area properties


About single areas

Related Topics

A single area contains one instance of an item, regardless of the number of rows in the block (or layout region in a multi-region block).

A block can contain several single areas. The only restriction is that at least one item is not in a single area.

As the current record changes, the content of items in single areas is changed accordingly.


Why define single areas?

Related Topics

If the rows in a multi-row block (or multi-row layout region in a multi-region block) do not wrap, large two-dimensional items can waste space on the canvas. Defining such items as single areas can result in a more efficient use of space.

In general, any two dimensional object (such as images, radio groups, item groups, text lists, and multi-line text items) is a likely candidate for a single area.


When does Form Generator create single areas?

Related Topics

Form Generator only creates single areas if the tallest single area candidate is taller than the tallest non-single area candidate item. This ensures that single areas are created only when doing so saves space.

The default action is that if a block (or layout region in a multi-region block) consists of single line rows, any item with a height greater than one line is considered as a candidate for a single area. Provided that the layout will derive some benefit, (defined as containing an item whose height is at most half that of the single area), the candidate single areas are laid out as single areas.


Generating a single area

Related Topics

To generate one or more single areas:

•	Set the single area preferences (SARENB, SARCHT and SARLIM) as required.


Generated single area properties

Related Topics

Single Area Property	Derived from or set to:	Notes and Related Topics
Single Area for Multi-row Block	SARENB
Single Area Cutoff Height	SARCHT	Use at item level to individually select or reject items as candidates for a single area.
Limit Rows beside a Single Area	SARLIM	Expansion is permitted, but no more rows than can be fitted beside the single area are allowed.


Setting the Current Record Visual Attribute Group property

Related Topics

What is the Oracle Forms Current Record Visual Attribute Group property?

The Oracle Forms Current Record Visual Attribute Group property determines how the currently selected row in a multi-row block appears on the form (e.g. by highlighting the row in a different color).

When a record is selected (e.g. by navigating to one of the enterable items in the record), the visual attribute of the record changes to that specified by the Current Record Visual Attribute Group property.

The CURREC preference determines whether the Current Record Visual Attribute Group property is set for the block or for individual items in the block.

To set the Current Record Visual Attribute Group Property:

1.	Set the CURREC preference as required.

2.	Define a visual attribute called CG$CURRENT_RECORD in the template form, to set the appearance of the record when it is the current record.

3.	Generate the form.


Preventing Insert, Update, Delete and/or Query operations on a block

Related Topics

To prevent an INSERT, UPDATE, DELETE and/or QUERY operation on a block:

•	Set the corresponding property on the module component containing the base table usage to No.

In the case of multi-region blocks, set the corresponding property of the primary module component.

Behavior of the generated form

When Form Generator finds that the property is set to No, it disables the equivalent operation on the generated block. To do this, it:

•	redefines the necessary keys to disable the action (i.e., KEY-CREREC, KEY-DELREC, KEY-ENTQRY, KEY-EXEQRY)

•	adds code to the appropriate trigger (i.e., PRE-INSERT, PRE-UPDATE, PRE-DELETE or PRE-QUERY) to prevent the action


User blocks from the template and generated forms

Related Topics

About user blocks

Including user blocks in generated forms


About user blocks

Related Topics

A user block is any block in the template form with a name that does not begin with CG$.

Form Generator always copies user blocks into the generated form, together with:

•	CG$ generator items belonging to the user block (in the generated form, these items are either reassigned to the CG$CTRL control block or converted into graphic text)

•	user items (i.e. items with names that do not begin with CG$) belonging to the user block

•	any block-level or item level triggers associated with the user block

Notes

A user block defined in the template form is always copied into the generated form, even if its items are all CG$ generator items that will be reassigned to the CG$CTRL control block. In this situation, a warning message is displayed during compilation indicating that the generated block will have no items.


Including user blocks in generated forms

Related Topics

To include user blocks from the template in a generated form:

1.	In Form Builder, open or create a template form.

2.	Create a new block.

3. 	Give the block a name that does not begin with CG$.

4.	Create generator items and user items that are to be included in the generated form.


Adding blocks using Form Builder

Related Topics

According to how Form Generator implements block synchronization, the generated block synchronization code also synchronizes any blocks that you add to the form. When you add a block:

•	define the master detail relationships in which the block participates by creating the appropriate relation objects

•	remove the following code from the form level ON-CLEAR-DETAILS trigger:

--
-- Begin default relation program section
--
BEGIN
   Clear_All_Master_Details;
END;
--
-- End default relation program section
--

•	remove the block level ON-POPULATE-DETAILS and ON-CHECK-DELETE-MASTER triggers created by Form Builder

For more information about how Form Generator implements block synchronization, refer to Block synchronization.

Tips:

•	If the foreign key used in a relation object linking this block to a master contains optional columns, add a PRE-QUERY trigger to ensure that NULL values are handled as desired.

•	If the block has more than one master, add an ON-POPULATE-DETAILS trigger to each master to ensure that both master records are present before the query on the detail is performed.

•	You should be able to find copies of the required triggers in other generated forms.

•	To trap any queries or inserts performed when there is no record in a master block, set the 'Prevent Masterless Operations' property of the relevant relation. Note that relations are only coordinated correctly when they are based on a mandatory foreign key or one that is considered mandatory for this module.


Changing block placement using Form Builder

Related Topics

As long as you do not change how Form Generator implements block synchronization, you can move blocks onto different canvases and move canvases to different windows.

Note that changes to the generated layout may result in inconsistencies in the generated canvas management if your form uses spreadtable, or stacked header or footer canvases. To ensure that canvas management operates correctly, we recommend you generate the form again after changes to block placement.

For more information about how Form Generator implements block synchronization, refer to Block synchronization.


Using different WHERE clauses

Related Topics

When to use the WHERE Clause of Query property

Use the WHERE Clause of Query property to restrict displayed values when querying information in a generated form.

Note that it is important that you refer to items in WHERE clauses using their item name, and not the name of the underlying column usage.

When to use the WHERE Clause of Query property of a module component base table usage

Use a module component base table usage's WHERE Clause of Query property to restrict the values returned to the form from a query on the base table.

When to use the WHERE Clause of Query property of a module component lookup table usage

Use a module component lookup table usage's WHERE Clause of Query property to:

•	restrict the values returned to a form from a query on the lookup table

•	restrict the values from the lookup table that are available in an LOV when querying data

If chained lookup table usages exist, Form Generator includes in the generated block's Where Clause property the WHERE clause of Query property of all lookup table usages (where these exist).

Note that Form Generator combines this property of a module component lookup table usage with any repository LOV table usage WHERE Clause of Query properties, providing that the repository LOV definition's Additional Restriction property is not set.

When to use the WHERE Clause of Query property of a LOV table usage (either a base table usage or a lookup table usage)

Use the WHERE Clause of Query property of a repository LOV table usage (either a base table usage or a lookup table usage) to restrict values in a generated LOV using a different condition to that specified for a module component lookup table usage (if one exists).

Whether the repository LOV table usage's WHERE Clause of Query property is combined with or used instead of a module component lookup table usage's WHERE Clause of Query property depends on the repository LOV's Additional Restriction property as follows:

•	if you set the repository LOV's Additional Restriction property, the LOV table usage WHERE Clause of Query properties are combined with the Additional Restriction property and used instead of the module component lookup table usage's WHERE Clause of Query property

•	if you do not set the repository LOV's Additional Restriction property, the LOV table usage WHERE Clause of Query properties are combined with the module component lookup table usage's WHERE Clause of Query property

When to use the Validation WHERE Clause property

Use the Validation WHERE Clause property to restrict displayed values when entering or modifying information in a generated form.

When to use the Validation WHERE Clause property of a module component base table usage

Form Generator ignores this property if it is set for the module component base table usage.

When to use the Validation WHERE Clause property of a module component lookup table usage

Use a module component lookup table usage's Validation WHERE Clause property to:

•	restrict the values from the lookup table that generated foreign key validation code considers to be valid when entering or modifying data

•	restrict the values from the lookup table that are available in an LOV when entering or modifying data

Note that Form Generator combines this property of a module component lookup table usage with any repository LOV table usage Validation WHERE Clause properties, providing that the repository LOV definition's Additional Restriction property is not set.

When to use the Validation WHERE Clause property of a LOV table usage (either a base table usage or a lookup table usage)

Use the Validation WHERE Clause property of a repository LOV table usage (either a base table usage or a lookup table usage) to restrict values in a generated LOV using a different condition to that specified for a module component lookup table usage (if one exists) when entering or modifying data.

Whether the repository LOV table usage's Validation WHERE Clause property is combined with or used instead of a module component lookup table usage's Validation WHERE Clause property depends on the repository LOV's Additional Restriction property as follows:

•	if you set the repository LOV's Additional Restriction property, the LOV table usage Validation WHERE Clause properties are combined with the Additional Restriction property and used instead of the module component lookup table usage's Validation WHERE Clause property

•	if you do not set the repository LOV's Additional Restriction property, the LOV table usage Validation WHERE Clause properties are combined with the module component lookup table usage's Validation WHERE Clause property

Example

A sales company runs a generated Oracle Forms application to maintain customer account information. Each customer account is managed by an account manager.

Information about customers is held in a table called CUST. Information about account managers is held in a table called ACC_MANAGERS.

When an account manager leaves the company, their accounts must be allocated to another account manager. The application contains a form specifically for this purpose.

The form queries those customers whose account managers have left. To allocate a customer to a new account manager, an LOV is available containing account managers who continue to work for the company.

To generate this form:

•	the WHERE clause of Query property of the lookup table usage of ACC_MANAGERS was set to END_DATE IS NOT NULL

•	the Validation WHERE clause property of the lookup table usage of ACC_MANAGERS was set to END_DATE IS NULL


Item generation

About Oracle Forms items

About generating data items and control items

Generating base table items

Generated item properties (common)

Repository item properties used by Form Generator

Repository column properties used by Form Generator

Setting the Maximum Length property of generated items

Setting the Initial Value property of generated items

How Form Generator determines the dimensions of a generated item

Positioning items (and item groups) using tab stops

Item prompt generation

User items from the template and generated forms

Items copied or subclassed from items in object library blocks

Notes about generating items from unbound items


About Oracle Forms items

Related Topics

What are Oracle Forms items?

Oracle Forms items are the interface objects that display information to operators and allow them to interact with an Oracle Forms application. Every item in a form belongs to a block.

What are data items and control items?

A data item is an item in a data block that corresponds directly to a column in the table on which the block is based. A data item displays information from the column and enables you to enter values into the column directly.

A control item does not relate to a database column in the base table of a block. Control items can:

•	display look-up values (values from a table other than the base table of the block)

•	display totals, averages, rankings, and other summary information calculated from values in base table items and database tables

•	accept input from operators that is required by the application, but that is not stored in the database

What are the different types of item?

The appearance and behavior of both data items and control items is heavily influenced by the Item Type property.

An item's Item Type property can be set to one of the following:

Item Type	Description
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 Oracle Graphics.  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.  Selecting 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.
hierarchical tree item	An area which displays grouped data in the form of a standard navigator with expandable nodes.
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 poplist (sometimes called a drop list), a t-list (sometimes called 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. A radio button is a text label with a graphic state indicator.
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 generating data items and control items

Related Topics

About generating data items

Using Form Generator, you generate data items from bound items in module component base table usages.

Data items are also referred as base table items.

About generating control items

Using Form Generator, you generate control items:

•	as lookup items from bound items in module component lookup table usages

•	as button items from navigation action items and custom action items

•	as button items from unbound items with Display Type of Button

•	as summary items from unbound items of type Computed

•	as formula items from unbound items of types SQL expression, Client Side Function, Server Side Function

•	as current record indicator items from unbound items with Display Type of Current Record or Drilldown

•	as descriptive flexfield items from unbound items with Display Type of Descriptive Flexfield

•	as 'empty' non-base table items for which you can enter appropriate code after generation

Control items are also referred to as non-base table items.

For more information about generating control items from unbound items, refer to Notes about generating items from unbound items.


Generating base table items

Related Topics

To generate a base table item:

1.	Create a module component table usage in the Design Editor.  How

2.	Create a bound item.  How

3.	Set the Display Type of the bound item as required.

The object libraries supplied with Form Generator already contain a suitable object from which to subclass or copy properties. If you are not using one of the supplied object libraries, we recommend you add a suitable object to one of the object libraries you are using as described in the next step.

4.	(recommended) Create an object of the appropriate name in an object library and set the properties you want Form Generator to copy or subclass.

For more information about copying or subclassing objects from an object library, refer to Using object libraries.

5.	Set other properties for the generated item as required using repository information and preferences.

The repository information and preferences to use will depend on the type of item you are generating and the functionality you want it to have. To find out how to set specific item properties, refer to the appropriate topics in this help system.

Using templates and obsolete preferences

We strongly recommend you use objects in object libraries to set properties of generated objects. However, to ensure backwards compatibility, in Oracle Designer release 2 onwards you can continue to use obsolete preferences and objects in a template form to define properties of generated objects.


Generated item properties (common)

Related Topics

The appearance and behavior of Oracle Forms items are controlled by item properties. Form Generator creates item properties from:

•	information recorded for the repository item

•	information recorded for the column definition on which the repository item is based (bound items only)

•	preferences

•	an object library

•	a template form

Oracle Forms base table items and control items of all types have many properties in common. The table below lists these common properties, and shows how Form Generator sets these properties when generating items. Note that an item of a specific type might have additional properties unique to that item type. Such properties are listed in the topic dealing with the creation of items of that particular type.

Item Property	Derived from or set to:	Notes and Related Topics
Name	Repository item from which the item is generated
Item Type	Repository item Display Type
Comment	FLDCMT	Always contains: • item name • base table name (bound items only) • base table alias (bound items only) Split across multiple lines if MAXPLS is exceeded.
Functional
Enabled	Object library object property	If no suitable object library object exists, set to True if the repository item's Insert property and/or Update properties is set to Yes.
Justification	Alignment property of repository item, or Justification property of appropriate source object in object library	Set according to repository item's Alignment property. • if Alignment = Left, Justification set to Start • if Alignment = Right, Justification set to End • if Alignment = Center, Justification set to Center If the repository item's Alignment property is not set and the item is copied or subclassed from a source object in an object library, the source object's Justification property is used to set this property. If the repository item's Alignment property is not set and the item is not copied or subclassed from a source object, this property defaults to Start.
Multi-line		Refer to properties of specific item type
Wrap Style		Refer to properties of specific item type
Case Restriction		Set to Y if the UPPER property of the underlying column is set to Y. Otherwise, set to N.
Conceal Data		Not set
Keep Cursor Position		Not set
Automatic Skip  (text items only)	Set to N
Navigation
Keyboard Navigable	Object library object property	If no suitable object library object exists, set to True if the repository item's Insert property and/or Update properties is set to Yes.
Data
Datatype	Datatype property of repository item (or underlying column if not set)	If Form Generator cannot determine the datatype to use, it sets the datatype to Char.
Maximum Length	Set according to a number of conditions.	Refer to Setting the Maximum Length property of generated items
Fixed Length (text items only)		Not set.
Initial value	Default Value property of repository item or column	For more information, refer to Setting the Initial Value property of generated items.
Required		Set to Y if the generated item is displayed and enterable and the Optional property of the repository item is not Y, or if the column is Mandatory.
Format Mask	Format Mask property of repository item, or Format Mask property of appropriate source object in object library.	If a Format Mask property is not set for either the repository item or the source object, Form Generator uses the value of the appropriate preference from the following list: TXTDDF, TXTDTF, TXTDNF, and TXTDMF
Copy Value from Item		Set by Form Generator to implement block synchronization.
Synchronize with Item		For a second or subsequent bound item in a module component based on the same column on which a bound item is already based, Form Generator sets this property to the name of the item generated from the first bound item. The second generated item is a mirror of the first.
Calculation
Summarizing Function	A summary or aggregate function	SUM and COUNT are the only valid options for forms generation.
Records
Current Record Visual Attribute Group	CURREC
Database
Database Item		Set to Yes if the item is generated from a repository item: • in a module component base table usage • with no derivation text recorded against them Set to No if the item is generated from a repository item: • in a module component lookup table usage linked to a base table usage (either directly or indirectly) • that has derivation text recorded against it • that specifies summary details in subsequent base table usages linked to the current one
Primary Key		Set to Yes for primary key items if NXTKEY = Y. Otherwise, set to No.
Query Allowed	Query property of repository item	Image items in Oracle Forms do not permit query operations. However, when Form Generator creates an associated text item, and that text item is base table, the Query Allowed property is set according to the Query property of the repository item.
Query Length		For generated items where the maximum length of the underlying column is 255 or less, the Query Length is set to 255. For generated items where the maximum length of the underlying column is greater than 255 (e.g. the maximum length of a VARCHAR2 column can be up to 2000), the query length is set to the maximum length of the column. Note:  Query Length is set to null for generated items based on columns of the following types: • LONG • LONG RAW • BLOB • CLOB • NCLOB • BFILE
Case Insensitive Query		Set to No
Insert Allowed	Insert property of repository item	Image items in Oracle Forms do not permit query operations. However, when Form Generator creates an associated text item, and that text item is base table, the Insert Allowed property is set according to the Insert property of the repository item.
Update Allowed	Update property of repository item	Image items in Oracle Forms do not permit query operations. However, when Form Generator creates an associated text item, and that text item is base table, the Update Allowed property is set according to the Update property of the repository item.
Update Only if Null		Set to No (only applies to Image and Text items)
Lock Record		Set to Y for non-base table items based on descriptor columns
List of Values (LOV)
List of Values	Name of LOV attached to item	For more information, refer to  Oracle Forms List of Values (LOV) generation
List X and Y Position		Not set
Validate from List		Not set
Editor
Editor	DFTCED or DFTLED	Which preference to use depends on the datatype of the item (either CHAR or LONG/LOB)
Physical
Visible	Display property of repository item
Width	Width property of repository item, or Width property of appropriate source object in object library. Subject to ITMBIF and TXTSCA	If a Width property is not set for either the repository item or the source object, Form Generator uses the value of the generated item's Maximum Length property. For more information about the Maximum Length property, refer to Setting the Maximum Length property of generated items. For more information about how fonts and coordinate systems affect item dimensions, refer to  How Form Generator determines the dimensions of a generated item.
Height	Height property of repository item, or Height property of appropriate source object in object library. Subject toITMBIF and TXTSCA	If a Height property is not set for either the repository item or the source object, Form Generator uses the value of the TXTDHT preference. For more information about how fonts and coordinate systems affect item dimensions, refer to  How Form Generator determines the dimensions of a generated item.
Bevel		Refer to properties of specific item type
Rendered	Rendered property of appropriate source object in object library
Prompt
Prompt	Prompt property of repository item	For more information about the distinction between prompts and labels when generating buttons, check boxes and radio buttons, refer to About generated item prompts
Help
Hint	Hint property of repository item	If no Hint property exists, a hint of the format 'Enter VALUE for X' is generated, where X is the item prompt or, if this is not available, the column name.
Display Hint Automatically	Object library object property	(or obsolete preference AUTOHP - not recommended)
Tooltip	Hint property of repository item (controlled by ITMTIP)
Tooltip Visual Attribute Group	Object library object property


Repository item properties used by Form Generator

Related Topics

Note that when you first create a bound item, its display properties (e.g. Prompt) are set to those values defined as the default display properties for the column definition. No such default values exist for unbound items.

Repository item Property	Use to specify to Form Generator	Notes and Related Topics
Module Unit	Module component, sub-component or LOV containing item
Table Usage (bound item only)	Table usage containing bound item
Column (bound item only)	Name of column on which the bound item is based	Form Generator creates PL/SQL parameter names from column names, preceded by the prefix specified by the PARAMP preference. Note that column names must not start with the characters specified by PARAMP.
Name	Generated item name	Use to ensure uniqueness in Derivation Text and PL/SQL Block multi-line text properties.
Unbound Type (unbound item only)	Type of unbound item (valid values: Computed, SQL Expression, Client-side Function, Server-side Function, Custom)	Used when generating summary items, formula items, buttons, current record indicator items, descriptive flexfields, and 'empty' non-base table items
Maximum Length (unbound item only)	If greater than 255, used to set the Query Length of generated items.	This property can also be used to set the Maximum Length property of some generated items. For more information, refer to Setting the Maximum Length property of generated items.
Usage Sequence	Order of item generated from repository item, with respect to items generated from other repository items in the same module component	This property is derived from the position of the repository item in the module component.
Template/Library Object	1. Source object defined in object library. 2. OLE container (defined in the template) that is associated with the repository item.
Operations
Insert?	The Insert Allowed property of the generated item
Update?	The Update Allowed property of the generated item
Query
Query?	The Query Allowed property of the generated item	Yes and No are valid values for Form Generator. If you set this property to Always, Form Generator generates the item as if you had set the property to Yes.
Range Search	Not used by Form Generator
ConText Option? (bound item only)	Not used by Form Generator.
Display
Display	The Visible property of the generated item
Prompt	Prompt for generated items (labels for buttons, graphic text for groups)	For more information about the distinction between prompts and labels when generating buttons, check boxes and radio buttons, refer to About generated item prompts
Display Type	Item Type property and Data Type property of generated item	The Item Type property of a generated item depends on the repository item's Display Type property. For example, if the Display Type is Pop List, Form Generator attempts to create a pop list in the generated form (provided that the underlying column has a suitable list of allowed values).
Show Meaning	Whether to display the Abbreviation, Value and/or Meaning properties of allowable values	For text items with allowable values, controls whether the abbreviation, meaning and/or value is displayed. For more information, refer to Generating an Oracle Forms LOV of allowable values. For radio buttons, poplists, combo boxes and text lists, controls what appears as labels or in lists. If set to Meaning and the allowable value's Meaning property is not set, Form Generator uses the Value property. If set to Abbreviation and the allowable value's Abbreviation property is not set, Form Generator uses the Meaning property as follows: • if the first word of meaning is 6 characters or more and there are subsequent words in the meaning, use the initial character of each word up to a maximum of 6 characters • if the first word of meaning is less than 6 characters, use that word • if meaning is 6 characters or more and there are no subsequent words, use the first 6 characters of meaning If set to Abbreviation and the allowable value's Abbreviation property and Meaning property are not set, Form Generator uses the Value property as follows: • if the first word of value is 6 characters or more and there are subsequent words in the value, use the initial character of each word up to a  maximum of 6 characters • if the first word of value is less than 6 characters, use that word • if the value is 6 characters or more and there are no subsequent words, use the first 6 characters of value
Width	Width property of generated item	Form Generator computes the width required for the item (including space for bevels and other GUI features) using the average character cell width of the font.
Height	Height property of generated item	Form Generator computes the height required for the item (including space for bevels and other GUI features) using the height of the font.
Alignment	Position of values displayed in generated item
Format Mask	Format Mask property of generated item	If no format mask is specified, Form Generator uses the Format Mask property of the appropriate object in object library (or one of the following preferences: TXTDNF, TXTDTF, TXTDMF, and TXTDDF) When specifying a numeric format mask, use the NLS compliant separator characters D and G as the decimal separator and group separator respectively.
Formatting	Not used by Form Generator
Wrap Style	Not used by Form Generator
Item Group	Item group to which the item belongs	Form Generator lays out all items in a group with respect to each other before laying the group as a whole out with respect to other objects on the form.
Context?	Whether this item is included in: • block context areas • row LOVs • record node labels in navigator style forms
User Text Areas (unbound item only)	Not used by Form Generator
Relative Tab Stops
Start Tab Stop	A numeric value indicating a relative tab stop to align the left hand edge of the item with items or item groups for which the same relative tab stop value has been defined.	For more information, refer to Positioning items (and item groups) using tab stops.
End Tab Stop	A numeric value indicating a relative tab stop to align the right hand edge of the item with items or item groups for which the same relative tab stop value has been defined.	Note that the value you enter for the End Tab Stop property must be greater than the value of the item's Start Tab Stop property (if set). For more information, refer to Positioning items (and item groups) using tab stops.
Align Prompt?	Whether to align the prompt of this item with the prompts of other items for which the same relative tab stop has been defined.	Note that Form Generator might ignore this property to optimize the use of space For more information, refer to Positioning items (and item groups) using tab stops.
Definition
Domain (unbound item only)	a domain associated with unbound item
Datatype	The Datatype property of generated item.	Form Generator also sets other properties according to this property (e.g. whether to use DFTCED or DFTLED  to set the text editor). If this property is not set for a bound item, Form Generator uses the Datatype property of the underlying column to determine the Datatype property of the generated item.
Default value	Initial Value property of generated item	For more information, refer to Setting the Initial Value property of generated items.
Default value type	Indicates whether the default value is a literal string or a function call.	For more information, refer to Setting the Initial Value property of generated items.
Optional?	The Required property of the generated item
Ordering
Order By Sequence	Position of the item within the block's ORDER BY clause (if one exists)	If the WHERE Clause of Query property of the table usage containing this item does not contain an ORDER BY clause, Form Generator uses this property to construct the generated block's ORDER BY Clause.
Sort Order	Order in which values are displayed	Use in conjunction with the Order By Sequence property.
Computed
Reset Level (unbound item only)	Not used by Form Generator
Reset Group (unbound item only)	Not used by Form Generator
SQL
Derivation Text (unbound item only)	A SQL expression to derive a value for the generated item	Enter derivation expressions to create non-base table calculated items. To ensure uniqueness, we recommend you refer to any columns in the derivation expression using item names. To call a PL/SQL function or procedure, enter the statement containing the function call.  Do not include comments in expressions (even in the format /* comment */ ). If you want to comment the expression, do so in the item's Description property or Notes property. For more information, refer to Rules to follow when calling PL/SQL functions and procedures from generated forms and Generating Year 2000 compliant applications.
PL/SQL Block	PL/SQL statements and/or calls to PL/SQL functions and procedures.	Enter expressions of this text type when defining button items and calling Calendar Windows. To ensure uniqueness, we recommend you refer to any columns using item names. Do not enter more than one line for this property. For more information, refer to Rules to follow when calling PL/SQL functions and procedures from generated forms and Generating Year 2000 compliant applications
Validation
Dynamic List? (unbound item only)	Specifies whether allowable values are hard coded into the generated form or retrieved from the CG_REF_CODES table.	For more information refer to Generating an Oracle Forms LOV of allowable values, About generated combobox items, About generated poplist items, and About generated text list items.
Help
Hint	Hint property of generated item	Also used to set generated item's Tooltip property (depending on setting of ITMTIP)
User/Help Text	Help information to be displayed for generated items as specified by the HLPTYP preference.	For more information, refer to Context-sensitive help generation
Documentation
Comment	Item level comments	Used if the  FLDCMT preference contains the string 'UC'.
Description	Any descriptive information about the repository item for administrative purposes.
Notes	Additional descriptive information about the repository item for administrative purposes


Repository column properties used by Form Generator

Related Topics

Repository column Property	Use to specify to Form Generator	Notes and Related Topics
Table	Name of table to which column belongs
Name	Column name	Form Generator creates PL/SQL parameter names from column names, preceded by the prefix specified by the PARAMP preference. Note that column names must not start with the characters specified by PARAMP.
Sequence in Table	Not used by Form Generator
Complete?	Not used by Form Generator
Domain	Domain to which column belongs	Form Generator uses allowable values recorded for the domain to which a column belongs if no allowable values have been recorded for the column itself.
Def Template/Library Object	Not used by Form Generator	When a repository item based on this column is created, this property is used to set the equivalent repository item property.
Scalar
Datatype	Used to check integrity of module design during generation	Form Generator also uses this property when a bound repository item's Datatype property is not set to determine how to set the generated item's Datatype property.
Average Length	Not used by Form Generator
Maximum Length	If greater than 255, used to set the Query Length of generated items.	This property can also be used to set the Maximum Length property of some generated items. For more information, refer to Setting the Maximum Length property of generated items.
Decimal Places	Used when calculating width of numeric items and when defining datatypes of fields in tables of records.
Object	Not used by Form Generator
Definition
Optional?	Used when generating items that require allowable values to have been defined	When creating a checkbox item from a repository item based on an optional column, Form Generator requires that only one allowable value has been defined for the column. When creating other types of items from repository items based on optional columns, Form Generator includes a null option.
Uppercase?	Used to set the Case Restriction property of generated menu substitution parameters if a repository argument is recorded for a bound item	For more information, refer to Generating menu substitution parameters.
Default Value	Not used by Form Generator	When a repository item based on this column is created, this property is used to set the equivalent repository item property.
Default Value Type	Not used by Form Generator	When a repository item based on this column is created, this property is used to set the equivalent repository item property.
Sequence	Specifies name of an Oracle or code control sequence that populates the column	If the Server Derived property is set to No, Form Generator generates code to populate a generated item from this sequence.  For more information, refer to Autogenerated sequence numbers and Form Generator
Cluster Column	Not used by Form Generator
Volumes	Not used by Form Generator
Default Display
Display?	Not used by Form Generator	When a repository item based on this column is created, this property is used to set the equivalent repository item property.
Display Type	Not used by Form Generator	When a repository item based on this column is created, this property is used to set the equivalent repository item property.
Alignment	Not used by Form Generator	When a repository item based on this column is created, this property is used to set the equivalent repository item property.
Display Length	Not used by Form Generator	When a repository item based on this column is created, this property is used to set the equivalent repository item property.
Display Height	Not used by Form Generator	When a repository item based on this column is created, this property is used to set the equivalent repository item property.
Display Sequence	Not used by Form Generator	When a repository item based on this column is created, this property is used to set the equivalent repository item property.
Descriptor Sequence	indicates whether column is a descriptor	Use the CONDFT preference to specify whether to generate block context items from columns that have this property set. For more information, refer to Block context area and block context item generation.
Format Mask	Not used by Form Generator	When a repository item based on this column is created, this property is used to set the equivalent repository item property.
Formatting	Not used by Form Generator
Prompt	Not used by Form Generator	When a repository item based on this column is created, this property is used to set the equivalent repository item property. For more information, refer to Generating item prompts.
Default Ordering
Order By Sequence	Not used by Form Generator	When a repository item based on this column is created, this property is used to set the equivalent repository item property.
Sort Order	Not used by Form Generator	When a repository item based on this column is created, this property is used to set the equivalent repository item property.
Select Column	Not used by Form Generator
Denormalization	Not used by Form Generator
Derivation
AutoGen Type	Used when generating code to support autogenerated sequence numbers unique within parent and change history columns	For more information, refer to About the code generated to support autogenerated sequence numbers unique within a parent. and Change history column support
Server Defaulted?	Indicates whether the column's default value should be supplied by application logic residing on the server if no value is supplied by a client side application.	If you want to generate code to populate the derived column (i.e. you set the Server Derived? property to No), set this property to No. For more information, refer to Defining derived columns for population by generated Oracle Forms applications.
Server Derived?	Specifies whether the expression to populate a derived column is to be calculated on the server or on the client.	If set to No, Form Generator uses the Derivation expression property to generate code to populate the derived column. For more information, refer to Defining derived columns for population by generated Oracle Forms applications. This property is also used when generating code to support autogenerated sequence numbers and change history columns. For more information, refer to Autogenerated sequence numbers and Form Generator and Change history column support
Derivation Expression	Specifies the SQL expression or PL/SQL function call that will populate the column.	If the Server Derived? property is set to No, Form Generator uses this expression when generating code to populate the derived column. For more information, refer to Defining derived columns for population by generated Oracle Forms applications and Rules to follow when calling PL/SQL functions and procedures from generated forms and Generating Year 2000 compliant applications.
Derivation Expression Type	Indicates whether the derivation expression is a simple SQL expression or a PL/SQL function call.	If the Server Derived? property is set to No, Form Generator uses this property to determine the type of expression to create. For more information, refer to Defining derived columns for population by generated Oracle Forms applications.
Source
Source Attribute	Not used by Form Generator
Validation
Suggestion List?	Must be set to Yes to generate combo box items from items based on this column.	For more information, refer to Generating combo box items.
Dynamic List?	Specifies whether allowable values are hard coded into the generated form or retrieved from the CG_REF_CODES table.	For more information refer to Generating an Oracle Forms LOV of allowable values, About generated combobox items, About generated poplist items, and About generated text list items.
Where/Validation Condition	Specifies a check constraint that may be enforced in generated forms	Note that you cannot combine SQL conditions and function calls in the same WHERE/Validation Condition property if you want the constraint to be validated in generated forms.  Do not include comments in the condition (even in the format /* comment */ ). If you want to comment the condition, do so in the column's Description property or Notes property. For more information, refer to About check constraints
Where/Validation Type	Not used by Form Generator
Validation Error Message	Message to display if the constraint generated from the Where/Validation Condition property is violated	For more information, refer to Conditions for adding code to support check constraints.
Help
Hint	Not used by Form Generator	When a repository item based on this column is created, this property is used to set the equivalent repository item property.
User/Help Text	Used by Form Generator if equivalent repository item property not set.	For more information, refer to Defining multi-line help text.
Documentation
Comment	Used to create field level comments if FLDCMT contains the string 'CC'.	Descriptive information about the column for administrative purposes
Description	Used to create field level comments if FLDCMT contains the string 'CD'.	Descriptive information about the column for administrative purposes
Notes		Additional descriptive information about the column for administrative purposes.
Field	Not used by Form Generator


Setting the Maximum Length property of generated items

Related Topics

How to set the Maximum Length property for a generated item depends on the Data Type property of the item. From the Data Type property Form Generator determines whether the item is:

•	a character item

•	a numeric item

•	a date item

Having established which of the above best describes the item, Form Generator sets the item's Maximum Length property as described in this topic. Note that special rules apply when setting the Maximum Length property of generated character items or long items based on derived columns.

Setting the Maximum Length property of character items

If a generated item's Data Type property is set to one of the following, Form Generator considers the item to be a character item:

•	CHAR

•	ALPHA

•	LONG

•	LOB

•	any other datatype not considered to be a numeric or date item

Form Generator sets the Maximum Length property of generated character items as follows:

1.	Maximum Length property of the column definition or unbound item definition, if set.

2.	Value of appropriate object property in object library, if available.

3.	Preference TXTDLL (for items of Data Type LOB or LONG) and preference TXTDCL (for items of other datatypes).

Setting the Maximum Length property of numeric items

If a generated item's Data Type property is set to one of the following, Form Generator considers the item to be a numeric item:

•	INTEGER

•	MONEY

•	NUMBER

•	RINTEGER

•	RMONEY

•	RNUMBER

Form Generator sets the Maximum Length property of generated displayed numeric items as follows:

1.	Length of the Format Mask property of the repository item, if set.

2.	Value based on Maximum Length property of column definition or unbound item definition if set. If the item can hold negative numbers, Form Generator increases the item's Maximum Length property by 1 to accommodate the minus sign. Similarly, Form Generator increase the item's Maximum Length property if the item can contain a decimal point.

3.	Value of appropriate object property in object library, if available.

4.	Preference TXTDNL.

Form Generator sets the Maximum Length property of generated non-displayed numeric items as follows:

1.	Value based on Maximum Length property of column definition or unbound item definition, if set (if item can hold negative numbers or is scaled and can contain a decimal point, the value is maximum length + 1).

2.	Value of appropriate object property in object library, if available.

3.	Preference TXTDNL.

Setting the Maximum Length property of date items

If a generated item's Data Type property is set to one of the following, Form Generator considers the item to be a date item:

•	DATE

•	DATETIME

•	TIME

Form Generator sets the Maximum Length property of generated date items as follows:

1.	Width property of the repository item, if set.

2.	Length of the Format Mask property of the repository item, if set.

3.	Value of appropriate object property in object library, if available.

4.	Preference TXTDDL (for items of Data Type DATE), TXTDTL (for items of Data Type DATETIME), and TXTDHL (for items of Data Type TIME).

Setting the Maximum Length property of character items or long items based on derived columns:

Form Generator sets the Maximum Length property of generated character items or long items based on derived columns from the largest of the following:

•	the item's Display Width property multiplied by the Display Height property

•	the Maximum Length property of the base column

•	the sum of the Maximum Length properties of the items in the derivation expression, plus the length of the derivation expression itself


Setting the Initial Value property of generated items

Related Topics

For generated text items

Use the Default Value and Default Value Type property of a repository item to set the Initial Value property of the generated Oracle Forms item as follows:

Set Default Value property to:	Set Default Value Type property to	Displayed in generated item:	Notes
a literal string	Literal	the specified string
an item name	Literal	the value of the specified item	In the following format: :item_name The specified item must appear in an earlier block in the form
SYSDATE	Client Function Call or Database Function Call	current system date	Initial Value property set to $$DATE$$.  In a generated Oracle Forms application the date generated from SYSDATE is the date in the client. If you want to use the date on the server in your application you should use $$DBDATE$$ as the Initial Value property.
USER	Client Function Call or Database Function Call	current username	Initial Value property set to $$USER$$
a date/time system default value	Client Function Call or Database Function Call	local system date/time or database date/time	The date/time system default values are $$DATE$$, $$DATETIME$$, $$TIME$$, $$DBDATE$$, $$DBDATETIME$$, and $$DBTIME$$
a function call	Client Function Call or Database Function Call	value returned from the function	In the following format: myfunc(arg1, arg2)
Notes

•	The value returned for display in the generated item must be compatible with the item's data type.

•	The Default Value and Default Value Type properties of a repository bound item default to the corresponding properties of the column on which the bound item is based.

•	When you are specifying a default value for a generated radio group, checkbox, text list or poplist, the value you specify must be one of the allowable values defined for the appropriate repository element (i.e. unbound item, column, or domain).

•	Form Generator generates the same code if the Default Value Type property is set to Client Function Call or to Database Function Call.

•	Image items do not have default values. However, when Form Generator has created an associated text item (and it is a base table item), the text item can have a default value.

•	You can set the default value of a mandatory list item (i.e. poplist, text list, or combo box) to null by creating a function that returns null and has a return type with the same datatype as the list item's datatype. Include the function in the generated form (e.g. as a named routine, or in the template form). For example, you might create the RetNull() function as follows:

FUNCTION RetNull RETURN varchar2 IS
BEGIN
    return null;
END;

Assuming you had created the RetNull function shown above, set the repository list item's Default Value property to "RetNull()" and its Default Value Type property to Client Function Call. During generation, Form Generator sets the Initial Value property of the generated item to the first allowable value. At runtime however, the RetNull() function is called and the list item is nullified.


How Form Generator determines the dimensions of a generated item

Related Topics

When generating an item, you can set the generated item's Width and Height properties using:

•	properties of the repository item definition

•	properties of source objects in object libraries

•	the Maximum Length property of the generated item (to set the Width property) and TXTDHT (to set the Height property)

During generation, Form Generator analyzes each of the above in turn until there is enough information to create the item. The process is presented below:

Item width	Item height
Notes on the Width property of generated items

The number of characters that can be displayed in a generated item is determined by the Width property of the repository item on which the generated item is based. For example, if you specify a width of 3 for a repository item, Form Generator will make the generated item three 'average characters' wide.

If a vertical scrollbar is to be displayed beside a generated multi-line text item, Form Generator increases the item's Width property to allow for the scrollbar.

Use the ITMBIF preference to control how Form Generator calculates the width of an 'average character'. For more information, refer to Notes on coordinate systems and Form Generator.

We recommend you allow Form Generator to compute the space required for GUI items (e.g. poplists) by setting ITMODD to GUI.

Notes on the Maximum Length property of generated items

The Maximum Length property of a generated item determines how many characters the item can contain. Note that an item can contain more characters than it can display at any one time. In other words, the item's Maximum Length property can be greater than the item's Width property. For more information about how Form Generator determines an item's Maximum Length property, refer to Setting the Maximum Length property of generated items.


Positioning items (and item groups) using tab stops

Related Topics

About tab stops

About absolute tab stops

About relative tab stops

Using relative tab stops to position items and item groups

Examples of the use of relative tab stops

Notes on relative tab stops and BLKVFL

See also

Aligning items across multiple blocks


About tab stops

Related Topics

Form Generator enables you to specify the points at which Form Generator is to position the starts and ends of items and their prompts. These points are referred to as tab stops.

There are two kinds of tab stop:

•	absolute tab stops (tab stop positions are specified in character cells and items are placed at those positions)

•	relative tab stops (items sharing the same tab stop are positioned relative to each other)

Note that the use of absolute tab stops and relative tab stops are mutually exclusive. Form Generator determines whether to use relative tab stops or absolute tab stops as follows:

•	Form Generator uses relative tab stops if the Tab Stop Scope property of an item group or module component is set to Self or Parent, and relative tab stops have been defined

•	Form Generator uses absolute tab stops if the Tab Stop Scope property of an item group or module component is set to None and the appropriate preferences have been set (BLKUTT/GRPUTT and BLKTAB/GRPTAB)


About absolute tab stops

Related Topics

Absolute tab stops are specified in character cells from the left hand edge of the block or item group using BLKUTT or GRPUTT respectively. The starts and ends of items and their prompts can be placed at absolute tab stops using the settings of BLKTAB and GRPTAB.

In the example item group below, Form Generator has used the absolute tab stops (specified in character cells from the left hand edge of the item group by the setting of GRPTAB) to position the start of items (as specified by the setting of GRPUTT).

If you specify absolute tab stops, during generation Form Generator positions items using the next available tab stop you have specified. Form Generator determines which is the next available tab stop by considering the length of items and prompts, the gaps between prompts and items, and the width within which items are to be laid out. If there is insufficient room on the current line, Form Generator places the item on a tab stop on the next line.

Absolute tab stops were supported in previous releases of Form Generator and will continue to be supported in future releases.

Notes on the use of absolute tab stops

Note the following when using absolute tab stops:

•	Form Generator determines the position of items with respect to one another during generation, which can make it difficult for you to explicitly align particular items with each other

•	you cannot use absolute tab stops to position item groups themselves

•	aligning items in different blocks is not straightforward (for more information, refer to Aligning items across multiple blocks)


About relative tab stops

Related Topics

Relative tab stops are numeric values that enable you to position and align items and item groups relative to each other (i.e. next to each other or below each other). Using relative tab stops also enables you to explicitly specify that you want a particular item or item group to appear on a new line.

In the example below, Form Generator has used relative tab stops to vertically align items:

You set relative tab stops for both items and item groups using either or both of the following relative tab stop properties:

•	Start Tab Stop property

•	End Tab Stop property

If you specify relative tab stops, during generation Form Generator horizontally positions items/item groups so that any items/item groups with the same relative tab values are vertically aligned below one another. The Start Tab Stop property and the End Tab Stop property determine whether it is the left hand edge, the right hand edge, or both edges of the item/item group that are aligned.

In addition, an item's Align Prompt property enables you to vertically align the starts of prompts of items that are vertically aligned (note that Form Generator might ignore this property to optimize the use of space).

When using relative tab stops, you can set the Tab Stop Scope property of a container object (i.e. an item group or module component) to align:

•	items within an item group with items outside the item group

•	items within one module component with items in another module component

For detailed illustrations of how to use relative tab stops, refer to Examples of the use of relative tab stops.

Notes on the use of relative tab stops

Note the following when using relative tab stops:

•	In general, Form Generator only uses relative tab stops if relative tab stops have been defined and the Tab Stop Scope property of an item group or module component is set to Self or Parent. Note that Form Generator also uses relative tab stops to position items in an item group with its Tab Stop Scope property set to None if the object that contains the item group (i.e. a module component or another item group) has its Tab Stop Scope property set to Self or Parent. In this case, Form Generator positions items as if the item group's Tab Stop Scope property was set to Self.

•	Items are always sequenced (for navigation purposes) according to the value of their Usage Sequence property. Relative tab stops are sequenced in their numeric order. If the relative tab setting of the next item in the usage sequence is lower than the relative tab setting of the previous item, Form Generator places the next item on a new line and aligns it appropriately.

•	The interaction between relative tab stops and the BLKVFL preference is relatively complex. For more information, refer to Notes on relative tab stops and BLKVFL.

•	We recommend you increase the numbers for relative tab stops in increments to allow for the subsequent insertion of new tab stops between existing ones.

•	Post prompts cannot be aligned using relative tab stops.

•	If you have specified relative tab stops, Form Generator increases the width of the canvas sufficiently to display all the items and item groups. In other words, block overflow does not occur.


Using relative tab stops to position items and item groups

Related Topics

How to position item groups using relative tab stops:

1.	Create the first item group.  How

2.	Set the item group's Start Tab Stop property to a numeric value if you want the left hand edge of the item group aligned with any items or item groups outside the item group for which the same relative tab stop value has been defined.

3.	Set the item group's End Tab Stop property to a numeric value if you want the right hand edge of the item group aligned with any items or item groups outside the item group for which the same relative tab stop value has been defined.

Note that the value you enter for the End Tab Stop property must be greater than the value of the Start Tab Stop property (if set).

4.	Use the item group's Tab Stop Scope property to determine whether items within the item group are aligned with items outside the item group:

•	set the item group's Tab Stop Scope property to Parent if you want items within the item group to be aligned with items outside the item group

•	set the item group's Tab Stop Scope property to Self if you do not want items within the item group aligned with items outside the item group

5.	Create a second item group.

6.	Set the second item group's relative tab stop properties depending on where you want the second item group positioned relative to the item groups and items preceding it:

•	if you want the second item group placed on the next line and vertically aligned with the first item group, set the Start Tab Stop property and/or End Tab Stop property to the same value as the first item group

•	if you simply want the second item group to appear on the same line as the first item group, do not set the second item group's Start Tab Stop property or End Tab Stop property

•	if you want the second item group to appear on the same line as the first item group, and and you also want to align subsequent item groups below it, set the item group's Start Tab Stop property and/or End Tab Stop property to values greater than those defined for the first item group

7.	Use the item group's Tab Stop Scope property to determine whether items within the item group are aligned with items outside the item group.

Note that to align items in two different item groups using the same relative tab stop, you must set the Tab Stop Scope property of both item groups to Parent.

8.	Use the Tab Stop Scope property of the module component containing the item group to determine whether the item group (and the items/item groups within it) is aligned with items/item groups with the same relative tab stop value in other module component:

•	set the module component's Tab Stop Scope property to Parent if you want items/item groups within the module component to be aligned with items/item groups in other module components

•	set the module component's Tab Stop Scope property to Self if you do not want items/item groups within the module component to be aligned with items/item groups in other module components

How to position items using relative tab stops:

1.	Create the first bound or unbound item.  How

2.	Set the item's Start Tab Stop property to a numeric value if you want the start of the item aligned with other items or item groups for which the same relative tab stop value has been defined.

3.	Set the item's End Tab Stop property to a numeric value if you want the end of the item aligned with other items or item groups for which the same relative tab stop value has been defined.

Note that the value you enter for the End Tab Stop property must be greater than the value of the Start Tab Stop property (if set).

4.	Set the item's Align prompt property to determine whether the start of the item's prompt is aligned with the starts of the prompts of other items for which the same relative tab stop has been defined.

5.	Create the second bound or unbound item

6.	Set the second item's relative tab stop properties depending on where you want the second item positioned relative to the first:

•	if you want the second item placed on the next line and vertically aligned with the first item, set the Start Tab Stop property and/or End Tab Stop property to the same value as the first item

•	if you want the second item to appear on the same line as the first item, do not set the second item's Start Tab Stop property or End Tab Stop property

•	if you want the second item to appear on the same line as the first item, and and you also want to align subsequent items below it, set the item's Start Tab Stop property and/or End Tab Stop property to values greater than those defined for the first item

7.	Set the second item's Align prompt property to determine whether the item's prompt is aligned with the prompts of other items for which the same relative tab stop has been defined.

8.	Create subsequent bound and unbound items following the steps described above.

9.	If one or more of the items is in an item group, use the item group's Tab Stop Scope property to determine whether the items within the item group are aligned with items outside the item group, or with items in other item groups.

Note that to align items in two different item groups using the same relative tab stop, you must set the Tab Stop Scope property of both item groups to Parent.

10.	Use the Tab Stop Scope property of the module component containing the items to determine whether they are aligned with items/item groups with the same relative tab stop value in other module components.

Note that to align items in two different module components using the same relative tab stop, you must set the Tab Stop Scope property of both module components to Parent.


Examples of the use of relative tab stops

Related Topics

Example 1: Aligning the start of items using relative tab stops

In this example, the start of each item with the same start tab stop number is vertically aligned.

The relevant properties of the above items are as follows:

Item	Start tab  stop	End tab  stop	Align  prompt
1	100	-	No
2	-	-	-
3	200	-	No
4	100	-	No
5	200	-	No
6	100	-	No
Example 2: Aligning the end of items using relative tab stops

In this example, the end of each item with the same end tab stop number is vertically aligned.

The relevant properties of the above items are as follows:

Item	Start tab  stop	End tab  stop	Align  prompt
1	-	10	No
2	-	-	-
3	-	20	No
4	-	10	No
5	-	20	No
6	-	10	No
Example 3: Aligning the start and the end of items using relative tab stops

In this example, the starts and ends of items with the same start and end tab stop numbers are vertically aligned.

The relevant properties of the above items are as follows:

Item	Start tab  stop	End tab  stop	Align  prompt
1	1000	1500	No
2	-	-	-
3	2000	2500	No
4	1000	1500	No
5	2000	2500	No
6	1000	1500	No

Notice that items with the same Start Tab Stop and End Tab Stop properties are the width of the widest item with those properties. Form Generator has increased the widths of items 1 and 6 to be the same width as item 4, and has increased the width of item 3 to be the same width as item 5.

Example 4: Aligning the start of prompts using relative tab stops

In this example:

•	the ends of items with the same end tab stop number are vertically aligned

•	the starts of the prompts of items are vertically aligned where items themselves are vertically aligned on the same tab stop number and those items' Align Prompt properties are set to Yes

The relevant properties of the above items are as follows:

Item	Start tab  stop	End tab  stop	Align  prompt
1	-	5	No
2	-	-	-
3	-	10	Yes
4	-	5	No
5	-	10	Yes
6	-	5	No
Example 5: Aligning items within an item group using relative tab stops

In this example:

•	the start of items in an item group with the same tab number are aligned

•	the item group's Tab Stop Scope property is set to Self

The relevant properties of the above items are as follows:

Item	Start tab  stop	End tab  stop	Align  prompt
1	145	-	No
2	145	-	No
3	145	-	No

Note that although item 1 has the same start tab stop as items 2 and 3, it is not aligned with those items because the item group's Tab Stop Scope property is set to Self.

Example 6: Aligning items within an item group with items outside the item group using relative tab stops

In this example:

•	the start of items both inside and outside an item group with the same tab number are vertically aligned

•	the item group's Tab Stop Scope property is set to Parent

The relevant properties of the above items are as follows:

Item	Start tab  stop	End tab  stop	Align  prompt
1	145	-	No
2	145	-	No
3	145	-	No
Example 7: Aligning an item group with an item outside the item group using relative tab stops

In this example:

•	an item and an item group with the same start tab stop number are vertically aligned

•	items within an item group with the same start tab stop number are vertically aligned

The relevant properties of the above items are as follows:

Item or Item Group	Start tab  stop	End tab  stop	Align  prompt
1	30	-	No
2	35	-	No
3	35	-	No
A	30	-	-

The item group's Start Tab Stop property is set to 30.

Example 8: Aligning items and item groups using relative tab stops

In this example:

•	items within an item group and items outside the item group with the same tab stop number are vertically aligned

•	two item groups and an item with the same start tab stop number are vertically aligned

•	the same value is specified for the Start Tab Stop property for items in two item groups, but the items are not aligned because the Tab Stop Scope property of one item group is set to Self

The relevant properties of the above items are as follows:

Item or Item Group	Start tab  stop	End tab  stop	Align  prompt
1	30	-	No
2	35	-	No
3	35	-	No
4	35	-	No
5	35	-	No
6	35	-	No
7	35	-	No
A	30	-	-
B	30	-	-

The Tab Stop Scope property of item group A is set to Parent. The Tab Stop Scope property of item group B is set to Self.

Example 9: More complex example

In this example:

•	multiple items and their prompts have been positioned using relative tab stops

•	Form Generator has ignored the Align prompt property of item 8 to optimize the use of space

The relevant properties of the above items are as follows:

Item	Start tab  stop	End tab  stop	Align  prompt
1	100	-	No
2	-	300	No
3	100	300	No
4	100	-	-
5	-	200	Yes
6	100	-	-
7	-	200	Yes
8	-	300	Yes
9	100	-	-
10	-	200	Yes
11	100	-	-
12	-	200	Yes
13	100	-	-
14	-	200	Yes
15	100	300	-


Notes on relative tab stops and BLKVFL

Related Topics

In some situations, the use of relative tab stops and the setting of the BLKVFL preference can interfere with each other. Form Generator resolves the interaction between relative tab stops and BLKVFL on the basis of a number of rules:

Rule 1	An item with a higher relative tab stop is always placed to the right of a preceding item with a lower relative tab stop.
Rule 2	An item with a lower relative tab stop is always placed to the left of a preceding item with a higher relative tab stop. Whether the item is placed on the same line as the preceding item depends on the setting of BLKVFL. a. If BLKVFL = No, the item is placed to the left and below the preceding item b. If BLKVFL = Yes, the item is placed to the left and on the same line as the preceding item
Rule 3	An item with the same relative tab stop as a preceding item is always placed below the preceding item. The proximity of the two items depends on the setting of BLKVFL. a. If BLKVFL = Yes, the item is placed immediately below the preceding item with the same relative tab stop b. If BLKVFL = No, the item is placed below the preceding item with the same relative tab stop but at a position below the lowest item already laid out
Rule 4	When using relative tab stops to lay out items, an item cannot be placed above any preceding item regardless of the setting of BLKVFL.
Scenario 1: BLKVFL=No, usage sequence and relative tab stop sequence in step

In this scenario, BLKVFL is set to No. The Usage Sequence and Start tab stop properties are in step (i.e. the item with the lowest Usage Sequence value has the lowest Start tab stop value). In this scenario, you would get the same result if you set BLKVFL is set to Yes.

This scenario demonstrates rule 1.

The relevant properties of the above items are as follows:

Item	Usage Sequence	Start tab  stop	Align  prompt
1	10	100	No
2	20	200	No
3	30	300	No
Scenario 2: BLKVFL=No, usage sequence and relative tab stop sequence out of step

In this scenario, BLKVFL is set to No. The Usage Sequence and Start tab stop properties are out of step (i.e. the item with the lowest Usage Sequence value does not have the lowest Start tab stop value).

This scenario demonstrates rule 2a.

The relevant properties of the above items are as follows:

Item	Usage Sequence	Start tab  stop	Align  prompt
1	10	100	No
2	20	50	No
3	30	300	No
Scenario 3: BLKVFL=Yes, usage sequence and tab relative stop sequence out of step

In this scenario, BLKVFL is set to Yes. The Usage Sequence and Start tab stop properties are out of step (i.e. the item with the lowest Usage Sequence value does not have the lowest Start tab stop value).

The generated layout might not be what you expect. Item 2 appears before item 1 because BLKVFL = Yes and Form Generator therefore applies rule 2b. Note that the navigation sequence in the generated form (derived from item Usage Sequence properties) might be confusing for users.

This scenario demonstrates rule 2b.

The relevant properties of the above items are as follows:

Item	Usage Sequence	Start tab  stop	Align  prompt
1	10	100	No
2	20	50	No
3	30	300	No
Scenario 4: BLKVFL=No, usage sequence and tab relative stop sequence in step

In this scenario, BLKVFL is set to No. The first and second items have their Usage Sequence properties set to the same value. The Usage Sequence and Start tab stop properties are in step (i.e. the item with the lowest Usage Sequence value has the lowest Start tab stop value).

This scenario demonstrates rule 3b.

The relevant properties of the above items are as follows:

Item	Usage Sequence	Start tab  stop	Align  prompt
1	10	100	No
2	20	100	No
3	30	300	No
Scenario 5: BLKVFL=Yes, usage sequence and tab relative stop sequence in step

In this scenario, BLKVFL is set to Yes. The first and second items have their Usage Sequence properties set to the same value. The Usage Sequence and Start tab stop properties are in step (i.e. the item with the lowest Usage Sequence value has the lowest Start tab stop value).

The generated layout might not be what you expect. Although BLKVFL = Yes, item 3 is not raised to the same line as item 1 because Form Generator applies rule 4.

This scenario demonstrates rule 4.

The relevant properties of the above items are as follows:

Item	Usage Sequence	Start tab  stop	Align  prompt
1	10	100	No
2	20	100	No
3	30	300	No
Scenario 6: BLKVFL=No, two dimensional item, usage sequence and relative tab stop sequence out of step

In this scenario, BLKVFL is set to No. The Usage Sequence and Start tab stop properties are out of step (i.e. the item with the lowest Usage Sequence value does not have the lowest Start tab stop value).

This scenario demonstrates rule 3b and rule 4.

The relevant properties of the above items are as follows:

Item	Usage Sequence	Start tab  stop	Align  prompt
1	10	100	No
2	20	50	No
3	30	300	No
Scenario 7: BLKVFL=Yes, two dimensional item, usage sequence and relative tab stop sequence in step

In this scenario, BLKVFL is set to Yes. The second and third items have their Usage Sequence properties set to the same value.The Usage Sequence and Start tab stop properties are in step (i.e. the item with the lowest Usage Sequence value has the lowest Start tab stop value).

This scenario demonstrates rule 3a.

The relevant properties of the above items are as follows:

Item	Usage Sequence	Start tab  stop	Align  prompt
1	10	100	No
2	20	200	No
3	30	200	No
Scenario 8: BLKVFL=No, two dimensional item, usage sequence and relative tab stop sequence in step

In this scenario, BLKVFL is set to No. The second and third items have their Usage Sequence properties set to the same value.The Usage Sequence and Start tab stop properties are in step (i.e. the item with the lowest Usage Sequence value has the lowest Start tab stop value).

This scenario demonstrates rule 3b.

The relevant properties of the above items are as follows:

Item	Usage Sequence	Start tab  stop	Align  prompt
1	10	100	No
2	20	200	No
3	30	200	No


Item prompt generation

Related Topics

About item prompts

About generated item prompts

Generating item prompts

Generated item prompt properties


About item prompts

Related Topics

Each interface control can have a prompt associated with it. A prompt is the text that appears beside, for example, a text item.

Prompts differ from graphic text in that prompts are directly linked to an item. For example, when you move an item in Form Builder's Layout Editor, the item and its prompt move to the new location.

Oracle Forms provides several properties that enable you to arrange and manage prompts. In addition, there are several properties that enable you to specify a prompt's visual appearance.


About generated item prompts

Related Topics

Form Generator enables you to generate prompts from information held in the repository about columns, bound and unbound items, and action items.

Typically, Form Generator sets the Prompt property of generated items to the Prompt property of the corresponding repository item.

In general, Form Generator arranges items in a generated form within the available width in such a way as to minimize the vertical space used. Adhering to this principle, Form Generator attempts to position item prompts in the following order or precedence:

Relative Position of Prompt and Item	Order of Precedence
Prompt next to item	1
Split prompt next to item	2
Prompt over item	3
Split prompt over item	4
Pre-prompts and post-prompts

You can specify that Form Generator is to separate the prompt for a generated item into:

•	a pre-prompt, appearing before the generated item

•	a post-prompt, appearing after the generated item

In this case, Form Generator sets:

•	the generated item's Prompt property to the pre-prompt

•	creates the post-prompt as graphic text

Prompts and labels

Item prompts and item labels are similar but separate item properties.

A prompt is a property of any type of item. You can reposition a prompt with respect to its corresponding item.

A label is a property of the following items:

•	buttons (text appears on button face)

•	check boxes (text appears beside check box as 'hot' text)

•	radio buttons (text appears beside radio button in a radio group as 'hot' text)

Unlike a prompt, you cannot reposition a label with respect to its corresponding item.

There might be situations when you want to use a prompt instead of a label. For example, in a multi-row block it is probably more appropriate to have a single prompt positioned above a column of check boxes than to have a label beside each check box. Use the CBXALM preference to generate such a block.

Prompts and item groups

Form Generator positions prompts for items in multi-row item groups in the same way as for other items in the multi-row block. Form Generator always positions prompts for items in single row item groups to the left of items in the group.

Preferences controlling item prompt generation

A number of preferences control the creation and position of generated item prompts.

ITMASP	Allow split prompts		ITMPIG	Prompt/item gap
ITMDPS	Item default prompt separator		ITMPJL	Prompt justification above a left-justified item
ITMFPS	Marker to force prompt splitting		ITMPJR	Prompt justification above a right-justified item
ITMIPG	Item/prompt gap		ITMPLM	Allow prompts left of items in a multi-row block
ITMIPS	Display-only item prompt separator		ITMPPE	Permitted percentage expansion
ITMMPS	Mandatory item prompt separator		ITMPPM	Item post-prompt marker
ITMMPW	Minimum permitted width		ITMSPM	Item split-prompt marker
ITMOPS	Optional item prompt separator
ITMPAS	Allow prompts above items in a single-row block


Generating item prompts

Related Topics

To generate item prompts:

1.	Set the Prompt property of repository items to the prompts you want to appear beside items in the generated form.

For bound items, the Prompt property defaults to the Prompt property of the column on which the item is based.

2.	To specify where Form Generator should split the prompt if it will not fit on a single line next to the generated item:

•	include a special character (e.g. a right chevron > ) in the text defined for the Prompt property at the point where the prompt is to split

•	set the ITMSPM preference to the special character

•	set the ITMASP preference to Y

3.	To specify that Form Generator is to split a prompt, regardless of whether the prompt will fit on a single line next to the generated item:

•	include a special character (e.g. a left chevron < ) in the text defined for the Prompt property at the point where the prompt is to split

•	set the ITMFPS preference to the special character

4.	To specify that Form Generator is to separate the prompt into two parts as a pre-prompt and a post-prompt:

•	include a special character (e.g. a vertical bar | ) in the text defined for the Prompt property at the point where the prompt is to be divided into a pre-prompt and a post-prompt

•	set the ITMPPM preference to the special character

We recommend you set the ITMSPM, ITMFPS and ITMPPM preferences to different special characters.

5.	To specify a character to appear between a prompt and the item beside which it is placed, set one of the preferences in the table below to the character (e.g. a colon : ) you want to appear.

To specify a prompt separator character:	Use this preference:
for mandatory items	ITMMPS
for optional items	ITMOPS
for display only items	ITMIPS
as the default	ITMDPS
Note that Form Generator ignores the above preferences when prompts are placed above items.

6.	To increase the prompt width beyond that necessary to display the characters currently specified for the prompt, set the ITMPPE preference.

For example, you might want to set ITMPPE to allow for an increase in the number of characters in the prompt when it is translated into a different language.

7.	To specify a minimum width for the generated prompt, set the ITMMPW preference.

8.	To specify the position of any prompts placed above generated items, set the ITMPJL and ITMPJR preferences.

9.	To specify the horizontal space between the end of the prompt (i.e. the pre-prompt) for an item and the item itself, set the ITMPIG preferences.

The ITMPIG preference sets the generated item's Prompt Attachment Offset property.

10.	To specify the horizontal space between the end (i.e. the right-hand edge) of one item (including its post-prompt, if one exists) and the start of the next item, set the ITMIPG preference.

Examples

Item prompt arrangement example

Item prompt separator example

Item prompt justification example

Item prompt spacing example


Generated item prompt properties

Related Topics

Item Prompt Property	Derived from or set to:	Notes and Related Topics
Prompt	Repository item's Prompt property
Prompt Display Style	All Records or First Record	Form Generator sets this property to All Records if all items in a single row or multi-row block appear in the same block. Otherwise, Form Generator sets this property to First Record.
Prompt Justification	Start
Prompt Attachment Edge	Start or Top	Form Generator sets this property to Start if prompt is to left of generated item. Otherwise, Form Generator sets this property to Top if prompt is above generated item.
Prompt Alignment	Start, or value of ITMPJL/ITMPJR	Form Generator sets this property to Start if prompt is to left of generated item. If prompt is above generated item: • if prompt is left justified, use ITMPJL • if prompt is right justified, use ITMPJR
Prompt Attachment Offset	ITMPIG
Prompt Alignment Offset	0
Prompt Reading Order	Default
Prompt Visual Attributes	Object library object


User items from the template and generated forms

Related Topics

About user items

Including user items in generated forms


About user items

Related Topics

A user item is any item or graphic object/text in the template form with a name that does not begin with CG$.

Form Generator includes user items (without modification) in the generated form, providing:

•	the user item belongs to a user block (i.e. a block with a name that does not begin with CG$)

•	the user item is placed on one of the following:

−	a content or stacked header or footer canvas (e.g. CG$STACKED_HEADER)

−	a toolbar canvas (e.g. CG$HORIZONTAL_TOOLBAR)

−	a user canvas (i.e. a canvas with a name that does not begin with CG$)

For example, if you create a radio button called MY_RADIO_BUTTON and put it on a canvas called CG$PAGE, Form Generator will not generate an item in the generated form from MY_RADIO_BUTTON because it appears on a canvas with a name beginning CG$ that is not a header or footer.

•	the user item does not appear either partially or totally off its template canvas

•	any objects the user item is dependent on or subordinate to are included in the form

When Form Generator includes a user item from the template into a generated form, it also includes any associated item level triggers.

Notes

A user item is only included once in the generated form. For example, if a header is applied to content canvases 1 and 2 in the generated form, any user items in the header are only included on content canvas 1.


Including user items in generated forms

Related Topics

To include user items from the template in a generated form:

1.	Use Form Builder to open or create a template form.

2.	If a user block (i.e. a block with a name that does not begin with CG$) does not already exist, create one now.

3.	Create a new item belonging to a user block.

4.	Give the newly created item a name that does not begin with CG$.

5.	Position the newly created user item on a user canvas (i.e. a canvas with a name that does not begin with CG$) or on a content or stacked header or footer canvas in the template form.

6.	Set the properties of the user item in the template to specify properties for the generated item or graphic object/text in the generated form.


Items copied or subclassed from items in object library blocks

Related Topics

In addition to using an object library block to set properties of a generated block, Form Generator also includes any items belonging to the object library block in the generated block.

If you want the object library item to be placed with buttons generated from action items defined for the module component on which the generated block is based, give the object library item a name that starts CG$AI. If the object library item name does not start with CG$AI, Form Generator places the object library item before generated items in the block. Note that generated navigation code always assumes that items from an object library precede other items in the form, regardless of the item name.

If the form is subsequently captured into the repository, Form Generator ignores the object library item.


Notes about generating items from unbound items

Related Topics

You can use Form Generator to generate the different types of Oracle Forms item from repository unbound item definitions as well as from bound item definitions. Use the Display Type property of an unbound item to indicate the type of generated item you want Form Generator to create.

Form Generator generates unbound items as control items. Control items are not based on columns in the database table on which the block is based. Therefore, information entered into control items is not automatically saved to the database and control items are not automatically populated from database columns.

In some cases, Form Generator creates the code to support the item generated from the unbound item (e.g. summary items or formula items). In other cases, it is your responsibility to enter the necessary application logic to support the item generated from the unbound item. For more information about entering application logic, refer to Creating, editing, and checking logic in the Design Editor help system.

Types of unbound item supported by Form Generator

Form Generator generates unbound items as follows:

Unbound Type property set to:	Description	Example
Server side function	Generated item holds the result of calling a server-side function.  Enter the function call in the item's Derivation Text property. Use this type of unbound item to generate formula items (for more information, refer to Formula item generation). Any references to items must be prefixed with the module component name. We recommend that the called function contains error handling code to trap exceptions.	calc_total_salary(emp_mc.empno)
Client side function	Generated item holds the result of calling a function in a library attached to the form, included in the form from application logic in the repository, or copied into the form from a template. Enter the function call in the item's Derivation Text property. Use this type of unbound item to generate formula items (for more information, refer to Formula item generation). Any references to items must be prefixed with the module component name. We recommend that the called function contains error handling code to trap exceptions.	calc_total_salary(emp_mc.empno)
Computed	Generated item holds the result of one of the following summary functions: AVG; COUNT; MAX; MIN; STDDEV; SUM; VARIANCE.  Enter the function call in the item's Derivation Text property. Use this type of unbound item to generate summary items (for more information, refer to Summary item generation). Note that references to items must be prefixed with the module component name, and the function call must be in the format: function(<module component>.<item>)	sum(emp_mc.sal)
Custom	Use this type of unbound item to generate:
	• Oracle Forms 'control items' (i.e. items that do not relate to a database column in the base table of a block) of different display types	Refer to: • check boxes • combo boxes • poplists • radio groups • text items • text lists
	• descriptive flexfields (Display Type property set to Descriptive Flexfield)	Refer to Descriptive flexfield generation
	• current record indicators (Display Type property set to Current Record Indicator)	Refer to Current record indicator item generation
	• buttons laid out within a block that: call standard Oracle Forms functionality; execute user-defined application logic; call PL/SQL functions and procedures (enter the PL/SQL call in the item's PL/SQL Block property	Refer to Button generation
	• empty non-base table items	Refer to Generating 'empty' non-base table items
SQL expression	Generated item holds the result of a SQL or PL/SQL expression (i.e. with no calls to user-defined functions). Use this type of unbound item to generate formula items (for more information, refer to Formula item generation).	SAL + COMM


Lookup item generation

About lookup items

About generated lookup items

Lookup text item generation

Generating lookup text items

Notes and examples for generating displayed and/or enterable lookup text items

Lookup poplist and text list item generation

About generated lookup poplist, lookup text list and lookup combo box items

Generating lookup poplist, lookup text list and lookup combo box items

Notes and examples for generating lookup poplist, lookup text list and lookup combo box items


About lookup items

Related Topics

Lookup items are items in a base table block that contain values from a table other than the base table of that block.

Such items are known as look-up items because the application needs to query, or 'look up', a value for the item whenever a query is executed in the block, or whenever the current record changes.


About generated lookup items

Related Topics

Form Generator creates lookup items for inclusion in a generated data block from repository items in lookup table usages linked to the base table usage. The link between a base table usage and a lookup table usage is derived from the relationship between a foreign key in the base table and a primary key in the lookup table. This relationship determines the join conditions used to retrieve values into lookup items in the generated form.

Form Generator enables you to generate lookup items as:

•	text items (for more information, refer to Generating lookup text items)

•	poplist, text list and combo box items (for more information, refer to About generated lookup poplist, lookup text list and lookup combo box items)

As with other generated items, the position of the generated lookup item depends on the position of the corresponding repository item within the module component base table usage.

Note that a lookup table usage can itself contain a foreign key used to retrieve further lookup details. This situation is referred to as a chained lookup.

Note that the foreign key column in the base table should be used, instead of the primary key column of the lookup table usage. If the primary key of the lookup table usage is used, the primary key column usage is not generated and, for example, application logic that references the primary key will not work.


Generating lookup text items

Related Topics

To generate a lookup text item:

1.	Create a lookup table usage for each table from which lookup information is to be retrieved.  How

2.	In the lookup table usage, create a bound item for each generated lookup item you want in the generated data block.  How

3.	Set the Display Type property of each of the lookup items to Text.

4.	To specify whether generated items based on foreign key columns and lookup columns are displayed and/or enterable in the generated form, use a combination of the corresponding repository items' Display, Query, Insert, and Update properties.

Setting these properties enables you to use a generated item based on a lookup column to modify values in the foreign key column in the base table usage. A series of examples is given in the help topic Notes and examples for generating displayed and/or enterable lookup text items.


Notes and examples for generating displayed and/or enterable lookup text items

Related Topics

To specify whether generated items based on foreign key columns and lookup columns are displayed and/or enterable in the generated form, use a combination of the corresponding repository items' Display, Query, Insert, and Update properties. Setting these properties enables you to use a generated item based on a lookup column to modify values in the foreign key column in the base table usage.

Example 1: Foreign key column displayed and enterable, lookup column displayed but not enterable

In this example, the generated form contains three fields, Employee Number, Department Number and Department Name.

The following item properties are set as shown:

	Display	Query	Insert	Update
empno (primary key in base table usage)	Yes	Yes	Yes	No
deptno (foreign key in base table usage)	Yes	Yes	Yes	Yes
dname  (lookup item in lookup table usage)	Yes	No	No	No
When a user enters details for a new employee, they specify the number of the employee's department in the Department Number field. When a number is entered in the Department Number field, the corresponding department name appears in the Department Name field. However, users cannot enter the name directly in the Department Name field.

Example 2: Foreign key column not displayed, lookup column displayed and enterable

In this example the generated form contains two fields, Employee Number and Department Name.

The following item properties are set as shown:

	Display	Query	Insert	Update
empno (primary key in base table usage)	Yes	Yes	Yes	No
deptno (foreign key in base table usage)	No	No	No	No
dname  (lookup item in lookup table usage)	Yes	Yes	Yes	Yes
When a user enters details for a new employee, they specify the name of the employee's department in the Department Name field.

If you make a lookup item enterable as described above, we recommend that the column on which the enterable lookup item is based is in a unique key.

Example 3: Foreign key column displayed but not enterable, lookup column displayed and enterable

In this example, the generated form contains three fields, Employee Number, Department Number and Department Name.

The following item properties are set as shown:

	Display	Query	Insert	Update
empno (primary key in base table usage)	Yes	Yes	Yes	No
deptno (foreign key column in base table usage)	Yes	No	No	No
dname  (lookup item in lookup table usage)	Yes	Yes	Yes	Yes
When a user enters details for a new employee, they specify the name of the employee's department in the Department Name field. When a name is entered in the Department Name field, the corresponding department number appears in the Department Number field. However, users cannot enter the number directly in the Department Number field.

If you make a lookup item enterable as described above, we recommend that the column on which the enterable lookup item is based is in a unique key.

Example 4: Foreign key column displayed, enterable and associated with an LOV, lookup table/columns not required

In this example, the generated form contains two displayed fields Employee Number and Department Number.

The following item properties are set as shown:

	Display	Query	Insert	Update
empno (primary key in base table usage)	Yes	Yes	Yes	No
deptno (foreign key column in base table usage)	Yes	Yes	Yes	Yes
When a user enters details for a new employee, they specify the number of the employee's department in the Department Number field.

To display an Oracle Forms LOV showing department names and numbers:

•	create a repository LOV with a table usage of DEPT

•	associate the repository LOV with the deptno item

Example 5: Foreign key column not displayed, lookup column displayed and enterable (with an associated LOV)

In this example the generated form contains two fields, Employee Number and Department Name.

The following item properties are set as shown:

	Display	Query	Insert	Update
empno (primary key in base table usage)	Yes	Yes	Yes	No
deptno (foreign key in base table usage)	No	No	No	No
dname  (lookup item in lookup table usage)	Yes	Yes	Yes	Yes
When a user enters details for a new employee, they specify the name of the employee's department in the Department Name field.

If you make a lookup item enterable as described above, we recommend that the column on which the enterable lookup item is based is in a unique key.

To display an Oracle Forms LOV showing department names and numbers:

•	create a repository LOV with a table usage of DEPT

•	associate the repository LOV with the dname item

Note that the LOV shown above assumes that LOVVAL is set to No. If LOVVAL is set to Yes, Dname would appear before Deptno in the LOV.


About generated lookup poplist, lookup text list and lookup combo box items

Related Topics

You can use Form Generator to generate poplist items, text list and combo box items to display values from lookup tables in the following ways:

•	implicitly

•	explicitly using a repository LOV definition

•	explicitly using a lookup table usage

Implicit lookup poplist, lookup text list and lookup combo box item generation

You can generate lookup poplist, lookup text list and lookup combo box items implicitly by:

•	creating a base table item based on a column that is a foreign key to one (and only one) lookup table

•	setting the item's Display Type property to Poplist, Text list or Combo box

Note that you do not create the lookup table usage, and that the base table column must form a single column foreign key relationship with the lookup table.

Explicit lookup poplist, lookup text list and lookup combo box item generation using a repository LOV definition

You can generate lookup poplist, lookup text list and lookup combo box items explicitly using a repository LOV definition by:

•	creating a repository LOV definition with a usage of the lookup table

•	associating the LOV with an item in a module component base table usage and setting the item's Display Type property to Poplist, Text list or Combo box

Note that you can only associate one LOV with the repository item you are generating as a lookup poplist, lookup text list and lookup combo box item, and that the base table column must form a single column foreign key relationship with the lookup table.

Explicit lookup poplist, lookup text list and lookup combo box generation using a lookup table usage

You can generate lookup poplist, lookup text list and lookup combo box items explicitly using a lookup table usage by:

•	creating a bound item in the lookup table usage (i.e. a lookup item)

•	setting the item's Display Type property to Poplist, Text list or Combo box

In the case of both single column and multiple column foreign key relationships between a base table and a lookup table, Form Generator determines most properties of the generated poplist/text list/combo box item from a lookup item in the lookup table usage. However, Form Generator determines some properties from a foreign key item in the base table usage.

In the case of a multiple column foreign key relationship:

•	the column in the lookup table from which the poplist/text list item is generated must be the only column in a unique key

•	when deriving properties of the generated item from a foreign key item in the base table usage, Form Generator uses the first foreign key item in the base table usage

Note the following:

•	Form Generator ignores the WHERE clause of Query property of lookup table usages when generating blocks containing lookup poplist/text list/combo box items.

•	Only one item in the lookup table usage (i.e. the poplist, text list or combo box item) can have its Display property set to Yes

•	All items in subsequent (i.e. chained) lookups linked to the first lookup table usage must have their Display properties set to No.

•	If allowable values have been defined for a lookup column definition in the repository, Form Generator uses the allowable values rather than values from the lookup table to populate a generated lookup poplist, text list or combo box item based on the column.


Generating lookup poplist, lookup text list and combo box items
Generating lookup poplist, lookup text list and lookup combo box items

Related Topics

To implicitly generate a lookup item as a poplist, text list or combo box item:

1.	Create a module component base table usage.  How

2.	Create a base table item based on a column that is a foreign key to one (and only one) lookup table.

3.	Set the item's Display Type property to Poplist, Text list or Combo box.

4.	Set other properties of the generated poplist, text list or combo box item using repository information, preferences, and/or object library object properties.

For more information about setting properties of the generated item, refer to Generating poplist items, Generating text list items and Generating combo box items as appropriate.

5.	To specify the columns in the lookup table that you want to appear in the generated text list, poplist or combo box, set the following properties:

•	set the Descriptor sequence property of columns in the lookup table that you want to appear in the generated text list, poplist or combo box

•	set the Show Meaning property of the Poplist, Text list or Combo box item to to one of the following, depending on the value you want in the list:

Show Meaning	To display in the list...
Abbreviation only	values from the primary key column in the lookup table
Meaning only	values from all descriptor columns concatenated together
Meaning alongside code	values from the primary key column in the lookup table concatenated with values from the first descriptor column
Note that if you do not set both of the above properties, the generated text list, poplist or combo box item will contain values from the lookup table's primary key column. Note also that when values are concatenated together, the values are 'padded' with blanks to increase their width to that specified by the column's Display Width property.

To explicitly generate a lookup item as a poplist, text list or combo box item using a repository LOV definition:

1.	Create a module component base table usage.  How

2.	Create a base table item based on a column that is a foreign key to the lookup table.

3.	Set the item's Display Type property to Poplist, Text list or Combo box.

4.	Set other properties of the generated poplist, text list or combo box item using repository information, preferences, and/or object library object properties.

For more information about setting properties of the generated item, refer to Generating poplist items, Generating text list items and Generating combo box items as appropriate.

5.	Create a repository LOV definition (either reusable or specific).  How

6.	Create an LOV base table usage of the lookup table containing the values you want to display in the generated poplist, text list or combo box item.

7.	In the LOV table usage, create bound items based on the primary key column and the columns you want to use to provide values to the generated poplist, text list or combo box item.

Note that:

•	the first item must be based on the lookup table's primary key column

•	any subsequent displayed items in the LOV will be concatenated and displayed as values in the generated poplist, text list or combo box item

•	you must not set the repository LOV definition's Return List property

8.	Set the Display properties to Yes for those items based on columns in the lookup table that you want to appear in the generated text list, poplist or combo box.

9.	Associate the repository LOV definition with the base table item in the module component.

To explicitly generate a lookup item as a poplist, text list or combo box item using a lookup table usage:

1.	Create a base table usage and a lookup table usage.  How

2.	Create items in the table usages as required, but you must include:

•	all foreign key items in the base table usage that form the relationship with the lookup table usage

•	all primary key items in the lookup table usage

•	the item to be generated as a poplist/text list/combo box in the lookup table usage (if the base table and the lookup table are joined by a multiple column foreign key constraint, the lookup item must be based on the only column in a unique key)

3.	Set the Display property of the foreign key item(s) in the base table usage to No.

4.	Set the Display property of the lookup item you want displayed as a poplist, text list or combo box to Yes.

Note that this must be the only item in the lookup table usage with its Display property set to Yes.

5.	Set the Display properties of all other items in the lookup table usage to No.

6.	Set the Display Type property of the lookup item to Poplist, Text list or Combo box as required.

7.	Set other properties for the generated poplist, text list or combo box item against either the foreign key item in the base table usage or the lookup item in the lookup table usage as shown below:

Property	Base table item	Lookup table item
Insert?		X
Update?		X
Query?		X
Display?		X
Template/Library Object		X
Prompt		X
Display Type		X
Show Meaning		X
Width		X
Height		X
Alignment		X
Format Mask		X
Item Group	X
Context?	X
Datatype	X
Default Value	X
Optional	X
Order By Sequence	X
Sort Order	X
Hint		X
User/Help Text		X
Comment		X
8.	Set other properties of the generated poplist or text list item using repository information, preferences, and/or object library object properties.

For more information about setting properties of the generated item, refer to Generating poplist items, Generating text list items and Generating combo box items as appropriate.

Using templates and obsolete preferences

We strongly recommend you use objects in object libraries to set properties of generated objects. However, to ensure backwards compatibility, in Oracle Designer release 2 onwards you can continue to use obsolete preferences and objects in a template form to define properties of generated objects.


Notes and examples for generating lookup poplist, lookup text list and lookup combo box items

Related Topics

Example 1: Single column foreign key relationship between EMP and DEPT

The Deptno column in the EMP table is a foreign key to the DEPT table. In the DEPT table, the Deptno column is the primary key.

To generate the Department Name poplist item displaying values from DEPT.Dname, set the following properties as shown:

	Display Type	Display	Query	Insert	Update
EMP.Deptno		No	No	No	No
DEPT.Deptno		No	No	No	No
DEPT.Dname	Poplist	Yes	Yes	Yes	Yes
Example 2: Multiple column foreign key relationship between EMP and DEPT

The Country and Deptno columns in the EMP table form a foreign key to the DEPT table. In the DEPT table, the Country and Deptno columns form the primary key and the Dname column is a unique key.

To generate the Department Name poplist item displaying values from DEPT.Dname, set the following properties as shown:

	Display Type	Display	Query	Insert	Update
EMP.Country		No	No	No	No
EMP.Deptno		No	No	No	No
DEPT.Country		No	No	No	No
DEPT.Deptno		No	No	No	No
DEPT.Dname	Poplist	Yes	Yes	Yes	Yes

Note that DEPT.Dname must be a unique key.

Example 3: Single column foreign key relationship between EMP and DEPT, poplist displaying primary key values

The Deptno column in the EMP table is a foreign key to the DEPT table. In the DEPT table, the Deptno column is the primary key.

To generate the Department Number poplist item displaying values from DEPT.Deptno, set the following properties as shown:

	Display Type	Display	Query	Insert	Update
EMP.Deptno		No	No	No	No
DEPT.Deptno	Poplist	Yes	Yes	Yes	Yes
DEPT.Dname		No	No	No	No


Calculated item generation

About calculated items

Summary items

About summary items

About generated summary items

Generating summary items

Generated summary item properties

Examples of generated summary items

Formula items

About formula items

About generated formula items

Generating formula items

Generated formula item properties

Formula items example


About calculated items

Related Topics

An Oracle Forms calculated item is a display only non-base table item to which you assign a value based on a calculation involving one or more variable values. For example, you might want to display the number of employees in a particular department or the total salary of a particular employee (including commission).

A calculated item can be in one of two calculation modes:

•	Summary (for more information, refer to About summary items)

•	Formula (for more information, refer to About formula items)


Summary item generation

Related Topics

About summary items

About generated summary items

Generating summary items

Generated summary item properties

Examples of generated summary items


About summary items

Related Topics

An Oracle Forms summary item is a calculated item that performs a single summary calculation on the values of a single item (the summarized item) over all the rows in a block. For example, you might want to display the number of employees in a particular department, by applying the COUNT summary function to the EMPNO item.

A summary item can be based on one of the following summary functions:

SUM	MAX	VARIANCE
COUNT	MIN
AVG	STDDEV
Note:	The summarized item can be a formula item. For more information about formula items refer to About formula items.

Recalculation of summary items

A summary item is marked for recalculation whenever any value of its summarized item is inserted, modified or deleted.

Note:	Recalculation does not occur immediately. The item is marked for recalculation to ensure that it is recalculated before the new value is referenced or displayed to the user of the form. You should not write any code which depends upon the recalculation occurring at a specific time.


About generated summary items

Related Topics

Form Generator generates a summary item for any unbound item of type Computed.

The value of the summary item is derived from the calculation specified in the Derivation Text property of the unbound item.

The unbound item used to define the summary item must be capable of storing a value. Therefore the Display Type of the unbound item must be one of the following:

check box	list item	text item
display item	radio group

The repository item to be summarized must be one of the following:

•	a bound item

•	an unbound item of type SQL Expression, Client Side Function or Server Side Function (i.e. a formula item - for more information about formula items refer to About formula items)

The Display Type property of the item to be summarized must not be Button.

Notes on the generation of summary items

•	The generated summary item can be in a different block to the item being summarized, or in the same block.

•	If the generated summary item and the summarized item are in the same block and the block is a multi-record block in which the lines do not wrap, note the following:

−	the summary item is displayed once regardless of the number of records in the block

−	the summary item is displayed below the summarized item

−	if you include the summary item in a horizontal item group along with other summary items, Form Generator positions the summary items within the item group below the items they summarize (to ensure correct positioning, do not include non-summary items in the item group)

−	if you include the summary item in a vertical item group along with other summary items, Form Generator left justifies the vertical item group (i.e. the summary items are not positioned below the items they summarize)

−	Form Generator does not attempt to prevent the prompts of summary items overwriting each other or overwriting other items

•	Form Generator does not position generated summary items below the items they summarize in a multi-record block in which the lines do wrap.


Generating summary items

Related Topics

Before you can generate a summary item:

•	make sure the item you want to summarize already exists in the repository

To generate a summary item:

1.	Create an unbound item in the table usage representing the block in which you want the summary item to appear.  How

2.	Set the item's Name property to a unique name.

3.	Set the item's Unbound Type property to Computed.

4.	Set the item's Usage Sequence property to determine the position of the generated summary item if:

•	the generated summary item is to appear in a different block to the summarized item

•	the generated summary item is to appear in the same single record block as the summarized item

•	the generated summary item is to appear in the same multi-record block as the summarized item, but the the lines in the multi-record block do not wrap

Depending on how you created the unbound item, this step might not be necessary. If the generated summary item and the summarized item are to appear in the same multi-record block in which the lines do not wrap, Form Generator positions the summary item below the item it summarizes

5.	Set the item's Datatype property as shown below:

Summary function:	Datatype:	Notes:
SUM, COUNT, AVG, STDDEV, VARIANCE	NUMBER	Datatype can be BINARY, DECIMAL, DOUBLE PRECISION, FLOATING POINT, INTEGER, NUMBER, REAL or SMALL INT, however we recommend that you only use the NUMBER datatype.
MAX, MIN	The same as the datatype of the summarized item	For example, a summary item that displays the most recent (i.e. maximum) date in the HIRE_DATE column must have a datatype of DATE.
6.	Enter the summary calculation as the item's Derivation Text property, in the format SUMMARY_FUNCTION(module_component.item).

For example:

COUNT(emp_mc.empno)

or

AVG(emp_mc.sal)

Note:	If the Derivation Text is not in the format SUMMARY_FUNCTION(module_component.item), Form Generator displays an error during generation. Do not include comments in the Derivation Text property (even in the format /* comment */ ). If you want to include a comment, do so in the item's Description property or Notes property. Prefix any references to items with the module component name (if generating multi-region blocks and the item is in a module sub-component, specify the name of the primary module component).

Recalculation of summary items in different blocks to summarized items

If the summary item and the summarized item are in a master block and a detail block respectively, recalculation of the value in the summary item depends on the number of rows in the master block.

If only one row is displayed in the master block containing the summary item, the summary item is always recalculated when any of the following changes are made in the detail block:

•	when a restrictive query is performed on the detail block

•	when the summarized item is updated

•	when records are added or deleted

If more than one row is displayed in the master block containing the summary item, the summary item is never recalculated when changes are made in the detail block. If a restrictive query is performed on the detail block, a warning is issued to indicate that the information in the summary item will not be accurate. Form Generator generates:

•	the summary item as a formula item

•	a PRE-QUERY trigger to issue the warning

If the item being summarized is itself a formula item, the Derivation Text property of that summarized formula item:

•	must only contain references to items in the same block

•	must not reference other formula items


Generated summary item properties

Related Topics

Generated properties	Derived from or set to:	Notes and related topics:
Calculation Mode	Summary
Summary Function	the summary function used in the repository item's Derivation Text property	Example: If the Derivation Text property is set to: COUNT(emp_mc.empno) this property is set to Count
Summarized Block	the block to which the summarized item belongs	Example: If the Derivation Text property in the repository is set to: COUNT(emp_mc.empno) this property is set to EMP_MC
Summarized Item	the item enclosed in parentheses in the repository item's Derivation Text property	Example: If the Derivation Text property is set to: COUNT(emp_mc.empno) this property is set to EMPNO
Insert Allowed	No
Update Allowed	No
Query Allowed	No
Mouse Navigable	No
Keyboard Navigable	No
Required	No
Update Only if NULL	No
Visible	the repository item's Display property
Generated block properties

Form Generator sets the Query All Records property of the summarized block to True.

If the summarized item is displayed in a detail block and you defined the summary item in the master block, Form Generator generates the summary item as belonging to a control block.


Examples of generated summary items

Related Topics

Example 1

In this example, the summary items are in the master block and the summarized items are in a detail block.

To generate the summary items in the above form:

1.	Create an unbound item called HEADCOUNT in the DEPT_MC module component with the following properties:

Property:	Set to:
Unbound Type	Computed
Usage Sequence	5
Prompt	Headcount
Derivation Text	count(emp_mc.empno)
2.	Create a second unbound item called AVG_SAL in the DEPT_MC module component with the following properties:

Property:	Set to:
Unbound Type	Computed
Usage Sequence	6
Prompt	Average Salary
Derivation Text	avg(emp_mc.sal)
Example 2

In this example, the summary items and the summarized items are in the detail block. The summary items are positioned below the items they summarize.

Example 3

In this example, the summary items and the summarized items are in the detail block. The summary items are in a horizontal item group, and the summary items are positioned below the items they summarize.

Example 4

In this example, the summary items and the summarized items are in the detail block. The summary items are in a horizontal item group, and the summary items are positioned below the items they summarize. To enhance the appearance of the form, the item group has not been given a title and GRPDEC has been set to LINE TOP.

Example 5

In this example, the summary items and the summarized items are in the detail block. The summary items are in a vertical item group. Note that summary items in vertical item groups are not positioned below the items they summarize.


Formula item generation

Related Topics

About formula items

About generated formula items

Generating formula items

Generated formula item properties

Formula items example


About formula items

Related Topics

An Oracle Forms formula item is a calculated item that displays values derived from a calculation involving one or more items, parameters, global variables, system variables or constants. For example, you might want to display an employee's total income, which is calculated from the salary and commission of that employee. Formula items can also call functions held on the server or the client.

Recalculation of formula items

A formula item is marked for recalculation whenever a change occurs to any item, parameter or global variable that appears in the calculation.

Note:	Recalculation does not occur immediately. The item is marked for recalculation to ensure that it is recalculated before the new value is referenced or displayed to the user of the form. You should not write any code which depends upon the recalculation occurring at a specific time.


About generated formula items

Related Topics

Form Generator generates a formula item (formula items were called 'derived items' in versions prior to Oracle Designer release 2) for any unbound item of type:

•	SQL Expression

•	Client Side Function

•	Server Side Function

The value of the formula item is derived from the calculation specified in the Derivation Text property of the unbound item.

The unbound item used to define the formula item must be capable of storing a value. Therefore the Display Type of the unbound item must be one of the following;

check box	list item	text item
display item	radio group
Note:	Form Generator can also generate formula items to populate derived columns. For more information, refer to Defining derived columns for population by generated Oracle Forms applications.


Generating formula items

Related Topics

Before you can generate a formula item:

•	make sure any items you will be using in the formula item calculation already exist in the same module component

To generate a formula item:

1.	Create an unbound item in the table usage representing the block in which you want the formula item to appear.  How

2.	Set the item's Name property to a unique name.

3.	Set the item's Unbound Type property to:

•	SQL Expression, if the calculation is a simple expression

•	Client Side Function, if the calculation contains a call to a function which resides on the client (for example in the template form or in a library attached to the template form)

•	Server Side Function, if the calculation contains a call to a function which resides on the server

4.	Set the item's Usage Sequence property to determine where the generated item will be displayed in the block (depending on how you created the unbound item, this step might not be necessary).

5.	Enter the SQL expression or function call which defines the calculation in the Derivation Text property.

For example:

emp.sal + nvl(emp.comm,0)

or

calc_sal(emp.sal,emp.comm)

Note:	If the SQL expression is not valid, Form Generator displays an error during generation.

If the expression contains a decode statement, for example:

decode(flag,1,'TRUE,'FALSE')

Form Generator creates a function to perform the decode statement. A call to the generated function will be used in the formula text instead of the decode statement.

For more information about calling PL/SQL functions, refer to Rules to follow when calling PL/SQL functions and procedures from generated forms.

Restrictions for formula item derivation text

Do not include any of the following in formula item derivation text:

•	references to restricted built-in subprograms

•	Data Manipulation Language (DML) statements

•	circular dependencies

All of the above will cause errors during compilation of a generated form. For more information, refer to the Oracle Forms help system.

Avoid using built-ins such as COPY, NAME_IN, DO_KEY and EXECUTE_TRIGGER. Although these built-ins will not produce errors at compile time, at runtime Oracle Forms might be unable to accurately recalculate the formula item.

Do not include comments in the Derivation Text property (even in the format /* comment */ ). If you want to include a comment, do so in the item's Description property or Notes property.


Generated formula item properties

Related Topics

Generated properties	Derived from or set to:	Notes and related topics:
Calculation Mode	Formula
Formula	the SQL expression or function call in the repository item's Derived Text property	Example: If the Derivation Text property is set to: emp.sal + NVL(emp.comm,0) this property is set to: :emp.sal + NVL(:emp.comm,0) If the formula item is generated to implement column derivation, this property is set to the repository column definition's Derivation Expression property (with column references changed to item references). For more information about column derivation, refer to Defining derived columns for population by generated Oracle Forms applications.
Insert Allowed	No
Update Allowed	No
Query Allowed	No
Mouse Navigable	No
Keyboard Navigable	No
Required	No
Update Only if NULL	No
Visible	the repository item's Display property	If the formula item is generated to implement column derivation, this property is set to No. For more information about column derivation, refer to Defining derived columns for population by generated Oracle Forms applications.


Formula items example

Related Topics

You might want to generate the following form:

To create the Total Salary item:

1.	Create an unbound item in the Employees table usage.

2.	Set the following properties:

Property:	Set to:
Name	TOT_SAL
Unbound Type	SQL Expression
Usage Sequence	5
Prompt	Total Salary
Derivation Text	emp.sal + NVL(emp.comm,0)
Alternatively, you could have a function, CALC_SAL which calculates the total salary if passed the basic salary and commission. In this case, set the properties as follows:

Property:	Set to:
Name	TOT_SAL
Unbound Type	Client Side Function or Server Side Function (depending on where the function is located)
Usage Sequence	5
Prompt	Total Salary
Derivation Text	CALC_SAL(emp.sal,emp.comm)
For more information, refer to Generating formula items.


Button generation

About buttons

About generated buttons

Generating buttons to call PL/SQL functions and procedures

Generating buttons to navigate to other blocks, windows, and modules

Generating buttons to execute user defined application logic

Generating buttons to call standard Oracle Forms functionality

Generated button properties

Repository action item properties used by Form Generator


About buttons

Related Topics

Buttons are interface items that end users select to execute commands or initiate actions.

For example, buttons can be used to initiate navigation, display LOVs, invoke an editor or window, commit data in a form, issue a query, or perform almost any other operation that can be coded with PL/SQL.

Oracle Forms supports two button styles

•	text

•	iconic

Iconic buttons are often used in toolbars because they display bitmapped graphics.

Runtime behavior

On GUI platforms, a text button is displayed as a rectangle with a text label inside that describes the button's action. On character mode platforms, a text button appears as a text string enclosed by parentheses.

Iconic buttons are displayed as graphic icons, without text labels. Iconic buttons can be displayed only on GUI platforms.


About generated buttons

Related Topics

Using Form Generator, you can generate buttons from item definitions recorded in the repository.

You specify different kinds of repository items to generate buttons for different purposes, as follows:

Repository item	Generated as:	Use for:
Navigation Action Item	button in a button bar at foot of block or window	navigation
Custom Action Item	button in button bar at foot of block or window	executing application logic
unbound items with Display Type of Button	button in a block, laid out with other bound and unbound items	executing application logic

Generated buttons can either be iconic or have text labels.

For more information about generating button items, refer to:

•	Generating buttons to call pl/sql functions and procedures

•	Generating buttons to navigate to other blocks, windows and modules

•	Generating buttons to execute user-defined application logic

•	Generating buttons to call standard Oracle Forms functionality

For an example of how you might use a generated button, refer to Starting a Web browser from a button in a generated form.

Action items and generated buttons

Action items can be defined for module components or for windows.

If an action item is defined for a module component, Form Generator creates a button below the other items in the generated block.

If the generated block is subclassed or copied from a block in an object library that contains items with names starting with CGAI$, Form Generator also includes those object library items beside the button generated from the action item (for more information, refer to Items copied or subclassed from items in object library blocks.)

If an action item is defined for a window, Form Generator creates an additional block (positioned below other generated blocks) on every content canvas displayed in the window. Each additional block is called CGNV$<window_name>_<seq_num> and contains all the action items defined for the window.

When generating multi-region blocks, you can define action items for the primary module component and/or its module sub components. During generation, Form Generator will create buttons below the corresponding layout region.

Using templates and obsolete preferences

We strongly recommend you use objects in object libraries to set properties of generated objects. However, to ensure backwards compatibility, in Oracle Designer release 2 onwards you can continue to use obsolete preferences and objects in a template form to define properties of generated objects.

Bearing this in mind, you can use the CG$PUSH_BUTTON named visual attribute in the template form to control the appearance of generated buttons (whether iconic or not).


Generating buttons to call PL/SQL functions and procedures

Related Topics

To generate a button to call PL/SQL functions and procedures:

1.	Create an unbound item with a Display Type of Button.  How

2.	Set the unbound item's Unbound Type property to Custom.

3.	Set the unbound item's PL/SQL Block multi-line text property to the function or procedure call to be made when the user clicks on the generated button.

For more information about entering PL/SQL function and procedure calls, refer to Rules to follow when calling PL/SQL functions and procedures from generated forms


Generating buttons to navigate to other blocks, windows, and modules

Related Topics

To generate a button to navigate to another block, window, or module:

1.	Create an action item of type Navigation Action Item.  How

2.	Specify the block you want the user to navigate to when they click the generated button (the block can be in the same window or a different window, on the same canvas or a different canvas, in the same module or in a different module).

The object libraries supplied with Form Generator already contain a suitable object from which to subclass or copy properties. If you are not using one of the supplied object libraries, we recommend you add a suitable object to one of the object libraries you are using as described in the next step.

3.	(recommended) Create a button in an object library and set the properties you want Form Generator to copy or subclass in one of the following ways:

•	by creating a button in the object library called CGSO$AIBUTTON (module component level action items) or CGSO$AIBUTTON_CT (window level action items)

•	by specifying an object in the object library for Form Generator to use when generating the button, using the Template/Library Object property of the repository action item definition

Note that buttons for action items displayed at window level are never navigable.

For more information about copying or subclassing objects from an object library, refer to Using object libraries.

4.	Set action item preferences as required.

For more information about action items, refer to Creating action items in the Design Editor help system.

For more information about generating navigation code, refer to Navigation code generation.

For more information about generating launch windows (i.e. windows that only contain buttons to navigate to other modules), refer to Generating launch windows using Form Generator.


Generating buttons to execute user-defined application logic

Related Topics

To generate a button to execute user-defined application logic:

1.	Create either an unbound item or an action item as follows:

•	to generate a button at the bottom of a block or window, create an action item of type Custom Action Item  How

•	to generate a button that is laid out within a block, create an unbound item with a Display Type of button and an Unbound Type of Custom  How

2.	Enter the application logic you want to execute when the user clicks on the button generated from this item (typically using a WHEN-BUTTON-PRESSED trigger).  How


Generating buttons to call standard Oracle Forms functionality

Related Topics

To generate a button to call standard Oracle Forms functionality:

1.	Create either an unbound item or an action item as follows:

•	to generate a button at the bottom of a block or window, create an action item of type Custom Action Item  How

•	to generate a button that is laid out within a block, create an unbound item with a Display Type of button and an Unbound Type of Custom  How

2.	Set the item's Template/Library Object property to the name of the appropriate CGAI$ shipped implementation source object from the ofgstnd1.olb object library.

Either use the ofgstnd1.olb object library during generation, or copy the CGAI$ item into one of the object libraries you are using.

For a list of shipped implementation source objects, refer to Alphabetical list of shipped implementation source objects.


Generated button properties

Related Topics

Button Property	Derived from or set to:	Notes and Related Topics
Item Type	Push Button
Functional
Label	Prompt property of repository item
Iconic	For buttons generated from repository action items, set to Yes if Icon Name property is not null. For buttons generated from repository unbound items, set to object library object property.
Icon Filename	For buttons generated from repository action items, set to Icon Name property. For buttons generated from repository unbound items, set to object library object property.	Include the path to the directory containing the icon files in the UI_ICON Registry variable. For more information about setting Registry variables, refer to Notes on Registry variables and form generation.
Navigation
Keyboard navigable	Object library object property	If no object library source object, set to No.
Mouse Navigate	Object library object property	If no object library source object, set to No. If a generated multi-row block will have a button in every row, we recommend you set the Mouse Navigate property of the appropriate object library source object to Yes.
Physical
Width and Height		For buttons generated from repository action items, set to Button Width and Button Height properties recorded in the repository (note that AIBBWD can override the repository action item's Button Width property). For buttons generated from repository unbound items, set to object library object properties. Use ITMPPE and ITMMPW to specify room for label expansion and a minimum label width respectively.
Help
Hint		Form Generator derives text for a generated button's Hint property as follows: • if hint text is defined for the repository item, Form Generator uses it • otherwise, if a prompt is defined for the repository item, Form Generator uses it • otherwise, Form Generator does not set the button's Hint property


Repository action item properties used by Form Generator

Related Topics

Note that Form Generator ignores generator action items.

Repository action item Property	Use to specify to Form Generator	Notes and Related Topics
Module Component	Module component containing action item	The button generated from the action item appears at the bottom of the block generated from this module component. Note that Form Generator subclasses or copies properties of module component level action items from CGSO$AIBUTTON.
Window	Window containing action item	The button generated from the action item appears below every block in this window. Form Generator creates additional blocks called CGNV$<window_name>_<seq_num> below every generated block in the window. Each of these blocks contains the action items defined for the window. Note that Form Generator subclasses or copies properties of window level action items from CGSO$AIBUTTON_CT (or CGSO$AIBUTTON if CGSO$AIBUTTON_CT does not exist).
Name	Unique name for action item.
Generator Item Type	Not used by Form Generator.
Usage Sequence	Order of display for buttons generated from action items within the same window or module
Default?	Whether this action item is generated as the default button.	A default button is one which is automatically pressed if the [Enter] key is pressed.
Enable on database record? (Custom action items only)	Not used by Form Generator.
Template/Library Object	Object library object
Navigate To
To Module Component (Navigation action items only)	The module component to which the generated button navigates.
To Module (Navigation action items only)	The module to which the generated button navigates.
Display
Prompt	Generated button label
Icon Name	The name of the graphic file containing the icon	Only used when button is generated as iconic. Do not include a file extension.
Create Button? (Navigation and Custom action items only)	Whether to generate a button for this action item.	Default is Yes.
Button Height	The height of the button that is generated for the action item.	If appropriate source object exists in object library, its height is used instead of this property.
Button Width	The width of the button that is generated for the action item.	If appropriate source object exists in object library, its width is used instead of this property.  Note that this property is ignored if AIBBWD is not set to NONE.
Create Menu Item? (Navigation and Custom action items only)	Not used by Form Generator
Help
Hint	Hint property of generated button.
User/Help Text	Help information to be displayed for generated button as specified by the HLPTYP preference.	For more information, refer to Context-sensitive help generation
Documentation
Description	Any descriptive information about the repository item for administrative purposes.
Notes	Additional descriptive information about the repository item for administrative purposes


Check box item generation

About check box items

About generated check box items

Generating check box items

Generated check box item properties


About check box items

Related Topics

A check box is a two-state control that indicates whether a certain condition or value is on or off, true or false.

On GUI platforms, a check box is displayed as small, square box with a text label to the right. On character mode platforms, a check box appears in square brackets.

The display state of a check box is always either checked or unchecked. Operators toggle the state of a check box by clicking it with the mouse, or by navigating to the check box and pressing [Select]. On most GUIs, the text in the check box label is "hot."  That is, operators can toggle the check box by clicking either the check box element or the text label itself.

Illustration: Check box example


About generated check box items

Related Topics

About generated check box items

A check box is created for any bound or unbound repository item that has a Display Type of Check box.

The values represented by the checked and unchecked state of the box are determined by allowable values.

For unbound items, Form Generator uses allowable values recorded directly against the item, or against the domain to which the item belongs. For bound items, Form Generator uses allowable values recorded against the column on which the item is based, or against the domain to which the column belongs.

Rules that Form Generator applies to allowable values when generating check boxes

A check box is a two-state control. Therefore, Form Generator applies the following rules to allowable values when generating checkboxes:

•	if the item is mandatory, there must be two (and only two) allowable values

•	if the item is optional, there must be one (and only one) allowable value

•	a range must not have been defined for the allowable values

If the allowable values for a repository item with a Display Type of Check box do not meet the above conditions, Form Generator issues a warning and generates the repository item as a text item.

How Form Generator sets the checked property of a check box

Form Generator sets the checked value of the check box as follows:

	Condition:	Checked property set to:
if	allowable value has a sequence number of 1	this value
otherwise, if	allowable value has a value of 'Y'	Y
otherwise, if	allowable values have sequence numbers	value with the lowest sequence number
otherwise, if	there is only one allowable value and it has the value 'N'	NULL
otherwise	first allowable value (in alphanumeric order)	this value


Generating check box items

Related Topics

Before you can generate a check box item:

•	if you want to generate a check box from a bound item based on a column, the column (or the domain to which the column belongs) must have had allowable values defined against it that met the rules given in About generated check box items before the column was created on the database

•	if you want to generate a check box from an unbound item, make sure the unbound item (or the domain to which the item belongs)  has allowable values defined against it that meet the rules given in About generated check box items

To generate a check box item:

1.	Create a repository item definition.  How

2.	Set the Display Type of the item to Check box.

3.	If you created the item as an unbound item:

•	set the item's Unbound Type property to Custom

•	define one allowable value (if the item is optional) or two allowable values (if the item is mandatory)

•	enter the necessary application logic to support the item generated from the unbound item (for more information, refer to Creating, editing, and checking logic in the Design Editor help system)

The object libraries supplied with Form Generator already contain a suitable object from which to subclass or copy properties. If you are not using one of the supplied object libraries, we recommend you add a suitable object to one of the object libraries you are using as described in the next step.

4.	(Recommended)  Create a check box in an object library and set the properties you want Form Generator to copy or subclass in one of the following ways:

•	by creating a check box in the object library called CGSO$CHECK_BOX

•	by specifying an object in the object library for Form Generator to use when generating the check box, using the Template/Library Object property of the repository item definition

For more information about copying or subclassing objects from an object library, refer to Using object libraries.

5.	Set other properties for the generated check box as required, using repository information and preferences.

To find out how to set specific generated check box item properties, refer to Generated check box item properties.

Using Templates and Obsolete Preferences

We strongly recommend you use objects in object libraries to set properties of generated objects. However, to ensure backwards compatibility, in Oracle Designer release 2 onwards you can continue to use obsolete preferences and objects in a template form to define properties of generated objects.


Generated check box item properties

Related Topics

Check box Property	Derived from or set to:	Notes and Related Topics
Check Box Mapping of Other Values	Object library object property	If no suitable object library object exists: • if checkbox is mandatory, set to Not Allowed • if checkbox is optional, set to Unchecked
Indicator Width	CBXIWD
Label Picture	Repository item Prompt property	In a multi-row block where rows do not wrap, use CBXALM to create a prompt above a column of check boxes instead of a label beside each check box.
Dimensions	Repository item Display Width and Display Height properties	Use ITMODD to override the dimensions specified for the repository item. Use ITMPPE and ITMMPW to specify room for label expansion and a minimum label width respectively.

For a list of common generated item properties, refer to Generated item properties (common).


Combo box item generation

About combo box items

About generated combo box items

Generating combo box items

Generated combo box item properties


About combo box items

Related Topics

A combo box is a text item with a suggested list of values. When running a generated form containing a combo box, users can select a value from the list or enter a different value.

Illustration: Combo box example


About generated combo box items

Related Topics

About generated combo box items

Form Generator creates combo boxes from bound or unbound repository items that have a Display Type of Combo box.

The values displayed in the list for a generated combo box are suggested values. A user of the generated form may enter an alternative value, but this value is not added to the list of suggested values.

For both bound and unbound items, Form Generator derives suggested values from repository allowable values as follows:

•	for unbound items, Form Generator uses allowable values recorded directly against the unbound item (or against the domain to which the item belongs) as suggested values

•	for bound items, Form Generator uses allowable values recorded against the column (or against the domain to which the column belongs) as suggested values

You can control whether the suggested values are hard coded into the generated form or retrieved from the CG_REF_CODES table at runtime. If the values are retrieved from CG_REF_CODES, Form Generator creates the CGDV$POPULATE_DYNAMIC_LISTS procedure, which is called by the PRE-FORM trigger.

Rules that Form Generator applies when generating combo boxes

Form Generator applies the following rules when generating combo boxes:

•	if a bound item is being generated as a combo box, the Suggestion List property of the column on which the bound item is based must have been set Yes before the column was created on the database

•	a range of values must not have been defined as an allowable value


Generating combo box items

Related Topics

Before you can generate a combo box item:

•	if you want to generate a combo box from a bound item based on a column, the column (or the domain to which the column belongs) must have had allowable values defined against it that met the rules given in About generated combo box items before the column was created on the database (in particular, the column's Suggestion List property must have been set to Yes)

•	if you want to generate a combo box from an unbound item, make sure the unbound item (or the domain to which the item belongs) has allowable values defined against it that meet the rules given in About generated combo box items

To generate a combo box item:

1.	Create a repository item definition.  How

2.	Set the Display Type of the item to Combo box.

3.	If you created the item as an unbound item:

•	set the item's Unbound Type property to Custom

•	enter the necessary application logic to support the item generated from the unbound item (for more information, refer to Creating, editing, and checking logic in the Design Editor help system)

4.	Set the Show Meaning property of the item to one of the following, depending on the value you want in the list:

Show Meaning	To display in the list...
<Null>	the Value property of allowable values
Abbreviation only	the Abbreviation property of allowable values
Meaning only	the Meaning property of allowable values

Note that Meaning alongside code is not a valid option in this context.

5.	Set the Dynamic List ? property of the element (i.e. unbound item, domain, or column) where the allowable values are defined, according to how you want to populate the combo box:

•	to populate the combo box from a query against the CG_REF_CODES table on form start-up, set the Dynamic List ? property to Yes

•	to populate the combo box from hard coded values in the generated form, set the Dynamic List ? property to No

The object libraries supplied with Form Generator already contain a suitable object from which to subclass or copy properties. If you are not using one of the supplied object libraries, we recommend you add a suitable object to one of the object libraries you are using as described in the next step.

6.	(Recommended)  Create a combo box in an object library and set the properties you want Form Generator to copy or subclass in one of the following ways:

•	by creating a combo box in the object library called CGSO$COMBO

•	by specifying an object in the object library for Form Generator to use when generating the combo box, using the Template/Library Object property of the repository item definition

For more information about copying or subclassing objects from an object library, refer to Using object libraries.

7.	Set other properties for the generated combo box as required, using repository information and preferences.

To find out how to set specific generated combo box properties, refer to Generated combo box item properties.

Using templates and obsolete preferences

We strongly recommend you use objects in object libraries to set properties of generated objects. However, to ensure backwards compatibility, in Oracle Designer release 2 onwards you can continue to use obsolete preferences and objects in a template form to define properties of generated objects.


Generated combo box item properties
Generated combo box properties

Related Topics

Combo Box Property	Derived from or set to:	Notes and Related Topics
Mapping of Other Values	Object library object property
Indicator Width Picture	CLSIWD
Maximum Number of Items in List Picture	CLSMAX
Dimensions	Repository item Display Width and Display Height properties	Use ITMODD to override the dimensions specified for the repository item. Use ITMPPE and ITMMPW to specify room for expansion and a minimum width respectively for values displayed in the combo box.

For a list of common generated item properties, refer to Generated item properties (common).


Display item generation

About display items

About generated display items

Generating display items

Generated display item properties


About display items

Related Topics

A display item is 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.


About generated display items

Related Topics

Form Generator creates display items from bound or unbound repository items that have a Display Type of Display Item.

If you set a repository bound item's Display Type property to Display Item, the generated item displays values queried from the database column on which the item is based. However, the generated item will not allow the insertion, updating, or deletion of data.

If you define an unbound item as a calculated item (i.e. a summary item or a formula item) with a Display Type of Display Item, Form Generator creates the code to populate the item. For more information about calculated items, refer to Calculated item generation.

In all other cases, if you define a repository unbound item with a Display Type of Display Item, it is your responsibility to enter the application logic to populate the generated display item.

A note about display items and display-only text items

In the following circumstances, Form Generator creates items that behave similarly to display items but which are not generated with an Item Type of Display Item:

•	a repository item with all of its Query, Insert, Update and Delete properties set to No

•	a generated mirror item

•	a repository item of Display Type of Text for which allowable values have been defined and that has its Show Meaning property set to Meaning Alongside Code (Form Generator generates a display-only text item with no prompt to display the Meaning property of an allowable value beside the generated text item containing the allowable value's Value property)

•	an item based on a derived column that is to be populated by code in the client application (i.e. the column's Server Derived property is set to No)

•	a generated item based on a change history column

•	a calculated item (i.e. a summary item or a formula items) with its Display Type not set to Display Item


Generating display items

Related Topics

To generate a display item:

1.	Create a repository item definition.  How

2.	Set the Display Type of the item to Display Item.

3.	If the item is neither a bound item nor a calculated item (i.e. a formula item or a summary item), enter the necessary application logic to populate the display item.

For more information about application logic, refer to Creating, editing, and checking logic in the Design Editor help system

The object libraries supplied with Form Generator already contain a suitable object from which to subclass or copy properties. If you are not using one of the supplied object libraries, we recommend you add a suitable object to one of the object libraries you are using as described in the next step.

4.	(Recommended)  Create an item in an object library and set the properties you want Form Generator to copy or subclass in one of the following ways:

•	by creating a display item in the object library called CGSO$DISPLAY_ITEM

•	by specifying an object in the object library for Form Generator to use when generating the display item, using the Template/Library Object property of the repository item definition

For more information about copying or subclassing objects from an object library, refer to Using object libraries.

5.	Set other properties for the generated display item as required, using repository information and preferences.

To find out how to set specific generated display item properties, refer to Generated display item properties.


Generated display item properties

Related Topics

Item Property	Derived from or set to:	Notes and Related Topics
Item Type	Display Item	Set from Display Type property of repository item
Database Item	Set to Yes if generated from a bound item Set to No if generated from an unbound item
Column Name	Name of column if generated from a bound item
Implicit properties

Item Property	Derived from or set to:	Notes and Related Topics
Item prompt separator	ITMIPS

For a list of common generated item properties, refer to Generated item properties (common).


Hierarchical tree item generation

About hierarchical tree items

About generated hierarchical tree items

Generating hierarchical tree items

Generated hierarchical tree item properties


About hierarchical tree items

Related Topics

The hierarchical tree item displays data in the form of a standard navigator, similar to those used in Oracle Forms.

You can populate a hierarchical tree item with values contained in a Record Group or Query Text. At runtime, you can programmatically add, remove, modify, or evaluate elements in a hierarchical tree item.

The amount of data displayed at any one time depends upon the expansion of individual data nodes, whether through built-ins or a user clicking on a node.


About generated hierarchical tree items

Related Topics

Form Generator creates hierarchical tree items from unbound repository items that have a Display Type of Hierarchical Tree Control.

To populate and manipulate the generated tree item, you can either enter code as application logic in the repository, or you can enter code for the item in the object library from which Form Generator is to subclass or copy properties.

For example, you might add the following application logic against the WHEN-NEW-FORM-INSTANCE event to populate the generated hierarchical tree item when the form is invoked:

DECLARE

   htree         ITEM;

BEGIN

   -- Find the tree itself.

   htree := Find_Item('block2.item3');

   -- Populate the tree with data.

   Ftree.Populate_Tree(htree);

END;

What are the differences between generated navigator style forms, generated navigator style items, and generated hierarchical tree items?

Form Generator generates Oracle Forms hierarchical tree items in the following circumstances:

•	When generating a navigator style form from a repository module that has its Layout Format property set to Navigator. In this case, the generated hierarchical tree item always belongs to the first block in the form and always appears in its own window (the navigator window). Form Generator generates the code to populate the item with data. When you generate navigator style forms, you can only set the properties of the generated window and canvas using properties of the designated CGSO$ object library objects. Note that you do not create a repository item with a Display Type of Tree Control to generate a navigator style form.

•	When generating a navigator style item from an unbound item with its Display Type property set to Navigator Style Item. In this case, you can specify the block layout region (using module components and module sub-components) and window in which to include the generated hierarchical tree item. Form Generator generates the code to populate the item with data. You can use repository properties to control the generated properties of both the item itself and the window and canvas used to display the item.

•	When generating a hierarchical tree item from an unbound item with its Display Type property set to Tree Control. In this case, you can specify the block layout region and window in which to include the generated hierarchical tree item. Note that it is your responsibility to write the code to populate the generated item with data.


Generating hierarchical tree items

Related Topics

1.	Create a module component.  How

2.	Create an unbound item.  How

Note that the module component must only contain one item.

3.	Set the unbound item's Unbound Type property to Custom.

4.	Set the unbound item's Display Type property to Tree Control.

To populate and manipulate the generated tree item, you can either enter code as application logic in the repository, or you can enter code for the item in the object library from which Form Generator is to subclass or properties.

5.	(Optional)  Include application logic against the WHEN-NEW-FORM-INSTANCE event to populate the generated hierarchical tree item when the form is invoked.

For an example of suitable code, refer to About generated hierarchical tree items.

6.	(Optional)  Include application logic against the following events to manipulate the generated hierarchical tree item:

•	WHEN-TREE-NODE-ACTIVATED

•	WHEN-TREE-NODE-EXPANDED

•	WHEN-TREE-NODE-SELECTED

The object libraries supplied with Form Generator already contain a suitable object from which to subclass or copy properties. If you are not using one of the supplied object libraries, we recommend you add a suitable object to one of the object libraries you are using as described in the next step.

7.	(Recommended)  Create an item in an object library and set the properties you want Form Generator to copy or subclass in one of the following ways:

•	by creating a hierarchical tree item in the object library called CGSO$HTREE

•	by specifying an object in the object library for Form Generator to use when generating the hierarchical tree item, using the Template/Library Object property of the repository item definition

For more information about copying or subclassing objects from an object library, refer to Using object libraries.

8.	Set other properties for the generated hierarchical tree item as required, using repository information and preferences.

To find out how to set specific generated display item properties, refer to Generated hierarchical tree item properties.


Generated hierarchical tree item properties

Related Topics

Hierarchical tree item property	Derived from or set to:	Notes and Related Topics
Allow Empty Branches	Object library object property
Multi-Selection	Object library object property
Show Lines	Object library object property
Show Symbols	Object library object property
Record Group	Object library object property
Data Query	Object library object property

For a list of common generated item properties, refer to Generated item properties (common).


Image item generation

About image items

About generated image items

Generating image items and associated text items

Generated image item properties


About image items

Related Topics

An image item is an interface control that stores and displays either vector or bitmap images. Like other items that store values, image items can be either base table items (items that relate directly to database columns) or control items.  The definition of an image item is stored as part of the form module .FMB and .FMX files, but no image file is actually associated with an image item until the item is populated at runtime.

Illustration: Image item example


About generated image items

Related Topics

For a repository item with a Display Type of IMAGE, Form Generator creates:

•	an image item

•	an associated text item (with a maximum length of 2000)

About image items generated from repository bound item definitions

When generating an image item from a repository bound item definition, Form Generator determines where images are stored (either on the database or in operating system files) on the basis of the datatype of the underlying column.

Column Datatype	Location of Images	Text Item	Image Item
VARCHAR2 or BFILE	File system	Base table item, containing name of image file.  The text item (and not the image item) is generated from the repository item.	Non-base table item, displaying image file specified by text item.  The image item is not generated from a repository item.
LONG RAW or BLOB	Database	Non-base table item, enabling user to specify image file. The text item is not generated from a repository item.	Base table item displaying image file specified by text item. The image is subsequently stored in database column. This provides a mechanism of transferring images held in operating system files onto the database. The image item (and not the text item) is generated from the repository item.

You set the repository item's properties to control the properties of the item (i.e. either the image item or the text item) generated from that repository item. In particular, the usage properties of the repository item determine whether the user can query, insert, delete or update the image or filename held on the database.

Form Generator uses standard source objects to determine the properties of the item that is not generated from the repository item (i.e. when you cannot set properties or specify an implementation source object because there is no repository item).

About image items generated from repository unbound item definitions

When generating an image item from a repository unbound item definition, images are always stored on the file system:

Column Datatype	Location of Images	Text Item	Image Item
n/a	File system	Non-base table item, enabling user to specify image file. The text item (and not the image item) is generated from the repository item.	Non-base table item, displaying image file specified by text item. The image item is not generated from a repository item.

Form Generator creates the code to populate the image item with the image file specified by the user in the text item.

You set the repository item's properties to control the properties of the text item generated from that repository item. Form Generator uses standard source objects to determine the properties of the image item (i.e. when you cannot set properties or specify an implementation source object because the image item is not generated from a repository item).


Generating image items and associated text items

Related Topics

To generate an image item:

1.	Create a repository bound or unbound item definition.  How

2.	Set the Display Type of the item to Image.

The object libraries supplied with Form Generator already contain a suitable object from which to subclass or copy properties. If you are not using one of the supplied object libraries, we recommend you add a suitable object to one of the object libraries you are using as described in the next step.

3.	(Recommended)  Create an item in an object library and set the properties you want Form Generator to copy or subclass as follows:

•	for the item that is generated from the repository item, do one of the following:

−	if the generated item is an image item, create an image item in the object library called CGSO$IMAGE; if the generated item is a text item, create a text item in the object library called CGSO$CHAR

−	specify an object in the object library for Form Generator to use when generating the item, using the Template/Library Object property of the repository item definition

•	for the item that is not generated from the repository item:

−	if the generated item is an image item, create an image item in the object library called CGSO$IMAGE

−	if the generated item is a text item, create a text item in the object library called CGSO$CHAR

For more information about copying or subclassing objects from an object library, refer to Using Object Libraries.

4.	Set other properties for the generated image item and its associated text item as required, using repository information and preferences.

To find out how to set specific generated image item properties, refer to Generated image item properties and Generated text item properties.

Using templates and obsolete preferences

We strongly recommend you use objects in object libraries to set properties of generated objects. However, to ensure backwards compatibility, in Oracle Designer release 2 onwards you can continue to use obsolete preferences and objects in a template form to define properties of generated objects.


Generated image item properties

Related Topics

Image Item Property	Derived from or set to:	Notes and Related Topics
Compression Quality	Object library property	(or obsolete preference IMGCMP - not recommended)
Display Quality	Object library property	(or obsolete preference IMGQLT - not recommended)
Sizing Style	Object library property	(or obsolete preference IMGSZS - not recommended)
Height	Repository item Height or object library property	(or obsolete preference IMGDHT - not recommended)
Width	Repository item Width or object library property	(or obsolete preference IMGDWD - not recommended)
Show Horizontal Scrollbar	Object library property	(or obsolete preference IMGHSB - not recommended)
Show Vertical Scrollbar	Object library property	(or obsolete preference IMGVSB - not recommended)
Space reserved for Horizontal Scrollbar	IMGSBH
Space reserved for Vertical Scrollbar	IMGSBW
Display Filename Item Picture	IMGDFI
Width of Filename Item Picture	IMGFIW
Attach Prefix to Filename Item Picture	IMGIFP

For a list of common generated item properties, refer to Generated item properties (common).


Mirror item generation

About mirror items

About generated mirror items

Generating mirror items

Generated mirror item properties


About mirror items

Related Topics

A mirror item is an item that displays the value contained in another item. In previous versions of Oracle Forms, a mirror item was created by setting an item's Mirror Item property. In Oracle Forms 5.0 onwards, a mirror item is created by setting an item's Synchronize with Item property.


About generated mirror items

Related Topics

Form Generator can generate mirror items from both bound items and unbound items.

In the case of bound items, Form Generator generates mirror items when a module component contains more than one bound item based on the same column. Form Generator:

•	generates the second bound item (and any subsequent bound items based on the same column) as a mirror item

•	sets the Synchronize with Item property of generated mirror items to the name of the item generated from the first bound item

In the case of unbound items, Form Generator generates mirror items when a module component contains an unbound item of type SQL Expression that contains the name of another item in the same module component (and nothing else) in its Derivation Text property. Form Generator:

•	generates the unbound item (and any subsequent unbound items with the same Derivation Text property) as a mirror item

•	sets the Synchronize with Item property of generated mirror items to the name of the item referenced in the Derivation Text property

Note that Form Generator also creates mirror items for:

•	block context items (for more information, refer to About block context items.)

•	second and subsequent items based on the same column when generating multi-region blocks (for more information, refer to About multi-region blocks)


Generating mirror items

Related Topics

To generate a mirror item from a bound item:

1.	Create a bound item from which Form Generator is to generate the item that will be 'mirrored' by the mirror item.  How

2.	Create a second bound item based on the same column as the first bound item.

This is the item from which Form Generator will generate the mirror item. Note that you can create further bound items based on the same column as the first bound item.

3.	Set properties for both items as required, using object library objects, preferences and repository information.

The object libraries supplied with Form Generator already contain a suitable object from which to subclass or copy properties. If you are not using one of the supplied object libraries, we recommend you add a suitable object to one of the object libraries you are using as described in the next step.

4.	(Recommended)  Create an item on which to base the mirror item in an object library and set the properties you want Form Generator to copy or subclass in one of the following ways:

•	by creating an item in the object library called CGSO$CONTEXT

•	by specifying an object in the object library for Form Generator to use when generating the mirror item, using the Template/Library Object property of the repository item definition

For more information about copying or subclassing objects from an object library, refer to Using object libraries.

5.	Generate the form.

Form Generator creates the second bound item (and any subsequent bound items) based on the same column as the first bound item as a mirror item.

To generate a mirror item from an unbound item:

1.	Create a repository item from which Form Generator is to generate the item that will be 'mirrored' by the mirror item.  How

2.	Create the unbound item from which Form Generator will generate the mirror item.  How

3.	Set the unbound item's Unbound Type property to SQL Expression.

4.	Specify the name of the first item in the unbound item's Derivation Text property, in the format <module_component.item_name>.

For example, you might specify EMPMC.TOTAL_REMUNERATION as the unbound item's Derivation Text property.

Note that you can create further unbound items with the same derivation text.

5.	Set properties for both items as required, using object library objects, preferences and repository information.

The object libraries supplied with Form Generator already contain a suitable object from which to subclass or copy properties. If you are not using one of the supplied object libraries, we recommend you add a suitable object to one of the object libraries you are using as described in the next step.

6.	(Recommended)  Create an item on which to base the mirror item in an object library and set the properties you want Form Generator to copy or subclass in one of the following ways:

•	by creating an item in the object library called CGSO$CONTEXT

•	by specifying an object in the object library for Form Generator to use when generating the mirror item, using the Template/Library Object property of the repository unbound item definition

For more information about copying or subclassing objects from an object library, refer to Using object libraries.

7.	Generate the form.

Form Generator creates the unbound item (and any subsequent unbound items with the same Derivation Text property) as a mirror item.


Generated mirror item properties

Related Topics

Item Property	Derived from or set to:	Notes and Related Topics
Synchronize with Item	Name of item generated from first bound item based on same column as this item.


Navigator style item generation

About navigator style items

About generated navigator style items

Generating navigator style items

Generated navigator style item properties

Examples of generated navigator style items


About navigator style items

Related Topics

What is a navigator style item?

A navigator style item enables users to quickly navigate through hierarchical data to locate a particular record.

A navigator style item:

•	is implemented as a hierarchical tree item

•	can be placed on its own canvas or on the same canvas as other items

The look and feel of the expanding and collapsing tree is similar to the tree in the Design Editor's navigator window.


About generated navigator style items

Related Topics

About generated navigator style items

Form Generator creates navigator style items from unbound repository items that have a Display Type of Navigator Style Item. Form Generator generates the navigator style item as an Oracle Forms hierarchical tree item and creates the code necessary to populate the item.

All blocks and records in the generated form are represented as nodes in the hierarchical tree item. Initially the navigator style item displays all master blocks in the form as unexpanded 'block nodes'. If the user expands one of the block nodes, the records in the block appear as 'record nodes'. If the master block is linked to one or more detail blocks, each record node can be expanded to display a block node for the detail block(s). If the user expands the detail block node, the records in the detail block appear as record nodes. At any point, the user can select a record node and view or edit that record in the corresponding block.

Note that although generated navigator style items are laid out amongst other items generated from the same module component or module sub-component, if you open the generated form in Form Builder you will notice that the navigator style item always belongs to a separate block.

What are the differences between generated navigator style forms, generated navigator style items, and generated hierarchical tree items?

For a discussion of the differences between generated navigator style forms, generated navigator style items, and generated hierarchical tree items, refer to About generated hierarchical tree items.


Generating navigator style items

Related Topics

To generate navigator style items:

1.	Create an unbound item.  How

2.	Set the unbound item's Unbound Type property to Custom.

3.	Set the unbound item's Display Type property to Navigator Style Item.

4.	(optional) To restrict the records displayed in the navigator item for a particular block, include a suitable WHERE clause in the corresponding module component's WHERE Clause of Query property.

5.	(optional) To sort the records displayed in the navigator item for a particular block, include a suitable ORDER BY clause in the corresponding module component's WHERE Clause of Query property.

6.	Set NVRBLB for module components to give labels to block nodes.

For example, you might set NVRBLB to Employees for a module component with a table usage of the EMP table. Note that if you do not set NVRBLB for a module component, Form Generator uses the block title.

7.	Set the Context property to Yes for those items you want to use as record node labels to identify records in the navigator item.

For example, you might set the Context property to Yes for an item based on the ENAME column to see employees' names in the navigator item. Note that if you do not set the Context property to Yes for any items in a block, Form Generator uses the primary key items.

8.	Use the NVRBKI, NVRRCI, NVRLSP, and NVRNCI preferences to customize the appearance of the generated hierarchical tree item.

9.	Set NVRWAS to specify whether auto-select functionality is included in the generated form.

If auto-select functionality is included and a user clicks on a record node in the generated navigator, the corresponding record is queried and displayed.

10.	(Recommended) Create an item in an object library and set the properties you want Form Generator to copy or subclass in one of the following ways:

•	by creating a hierarchical tree item in the object library called CGSO$TREE_ITEM_NVGTR

•	by specifying an object in the object library for Form Generator to use when generating the navigator style item, using the Template/Library Object property of the repository item definition

For more information about copying or subclassing objects from an object library, refer to Using object libraries.

11.	Set other properties for the generated navigator style item as required, using repository information and preferences.

To find out how to set specific generated navigator style item properties, refer to Generated navigator style item properties.


Generated navigator style item properties

Related Topics

Generated navigator window properties

Window Property	Derived from or set to:	Notes and Related Topics
Name	Repository window property
Sub-class object	The CGSO$WINDOW standard source object, or a specified implementation source object	Use any of the standard source objects or the
All other properties	Repository window properties, preferences, and/or object library object properties	For more information about setting window properties, refer to Window generation.
Generated navigator canvas properties

Canvas Property	Derived from or set to:	Notes and Related Topics
Sub-class object	The appropriate CGSO$CANVAS standard source object or a specified implementation source object
All other properties	Repository properties, preferences, and/or object library object properties	For more information about setting canvas properties, refer to Canvas generation.
Generated navigator block properties

Block Property	Derived from or set to:	Notes and Related Topics
Name	Repository module component name if the repository unbound item is in its own module component	If repository unbound item is in a module component with other items, Form Generator creates a block with the same name as the unbound item.
Sub-class object	CGSO$BLOCK or a specified implementation source object
Number of records displayed	1
Single record	Yes
Database Data block	No
All other properties	Repository properties, preferences, and/or object library object properties	For more information about setting block properties, refer to Block generation.
Generated navigator item properties

Item Property	Derived from or set to:	Notes and Related Topics
Name	Repository item name
Item Type	Hierarchical Tree
Sub-class object	CGSO$TREE_ITEM_NVGTR
Enabled	Yes
Allow Empty Branches	Yes
Multi-Selection	No
Record Group	Null
Mouse navigable	Yes
Number of items displayed	1
Visible	Yes
All other properties	Repository properties, preferences, and/or object library object properties


Examples of generated navigator style items

Related Topics

Example 1: Generated navigator style item on the same canvas as other items

In this example, an unbound item with its Display Type property set to Navigator Style Item has been included in the same module component as other bound and unbound items.

When the user of the generated form clicks on an employee name in the navigator style item, the selected employee's details are displayed.

Example 2: Generated navigator style item on a separate tab canvas page

In this example, an unbound item with its Display Type property set to Navigator Style Item has been included as the only item in a module component with its Placement property set New Tab Canvas Page. Other module sub-components appear on different tab canvas pages.

When the user of the generated form clicks on an employee name in the navigator style item and selects one of the tab canvas pages, the selected employee's details are displayed.

Example 3: Generated navigator style item on a separate content canvas

In this example, an unbound item with its Display Type property set to Navigator Style Item has been included as the only item in a module component with its Placement property set to New Content Canvas. Three subsequent module components have been created in a master-detail-detail relationship with each other, and with their Placement properties set to New Stacked Canvas.

	When the user of the generated form clicks on a country name in the navigator style item, the stacked canvas containing country details is displayed.
	When the user of the generated form clicks on a department name in the navigator style item, the stacked canvas containing department details is displayed.
	When the user of the generated form clicks on an employee name in the navigator style item, the stacked canvas containing employee details is displayed.
Example 4: Generated navigator style item in a separate window

In this example, an unbound item with its Display Type property set to Navigator Style Item has been included as the only item in a module component in a separate window.

When the user clicks on a country name, department name, or employee name, the appropriate block is displayed in a different window. Note that this use of a navigator style item is very similar to the way in which Form Generator creates navigator style forms.

Using a navigator style item enables you to use repository properties to specify generated window, canvas, block, and item properties. If you generated the above form as a navigator style form, you would set window, canvas, block, and item properties using object library objects.


OLE container item generation

About OLE

About Oracle Forms and OLE

Generating OLE container items

Generated OLE container item properties


About OLE

Related Topics

OLE (Object Linking and Embedding) provides you with the capability to integrate objects from many application programs into a single compound document. Compound documents enable you to use the features from multiple application programs.

An OLE server application creates OLE objects that are embedded or linked in an OLE container application; OLE containers store and display OLE objects. Applications can be OLE server applications, OLE container applications, or both. Oracle Forms is an OLE container application, and Oracle Graphics and Microsoft Word are examples of OLE server applications.

An OLE object can be either linked or embedded. If the object is linked, then the OLE container application contains a pointer or reference to the OLE object (typically a file on disk). Any updates to the source object are visible in all OLE container applications that have linked it. If the OLE object is embedded, the OLE container application contains a copy of that object. Any updates to the source object are not visible in OLE container applications that have embedded it.

Any machine that has the creating application in its registration database should be able to display and manipulate the OLE object. Machines that do not contain the application that created the OLE object are still able to display the OLE object, but cannot manipulate it.

The user can (optionally) interact with the OLE object in the OLE container, using the right mouse button. When this is pressed, a menu that lists all permissible actions the user can perform is displayed.


About Oracle Forms and OLE

Related Topics

Oracle Forms is an OLE container application. Including an OLE container item in an Oracle Forms module enables:

•	the embedding and linking of OLE objects into the OLE container item

•	the in-place activation of embedded contents in the OLE container item

•	the programmatic access to OLE objects, properties, and methods through OLE automation support from PL/SQL

•	the seamless storage of OLE objects in a database in LONG RAW or BLOB columns

OLE container items function under Microsoft Windows only. Forms that contain OLE container items can be run on other platforms, but the OLE container items appear dimmed and cannot be used.

For more information about OLE and Oracle Forms, refer to the Oracle Forms help system.


Generating OLE container items

Related Topics

To generate an OLE container item:

1.	Create a repository bound item based on a column that has its Data Type property set to LONG RAW or BLOB.  How

2.	Set the Display Type of the repository item to OLE Container.

3.	(Optional)  Set the Template/Library Object property of the repository item to the name of an OLE container item defined in an object library.

4.	If you specify an implementation object, create an item of type OLE container in an object library and set the properties you want Form Generator to copy or subclass.

For more information about copying or subclassing objects from an object library, refer to Using object libraries.

If you do not define an implementation object in an object library, Form Generator creates an OLE container item with default properties that accepts OLE objects of any OLE Class.

5.	Set other properties for the generated OLE container item as required, using repository information and preferences.

To find out how to set specific generated OLE container item properties, refer to Generated OLE container item properties.

Using templates and obsolete preferences

We strongly recommend you use objects in object libraries to set properties of generated objects. However, to ensure backwards compatibility, in Oracle Designer release 2 onwards you can continue to use obsolete preferences and objects in a template form to define properties of generated objects.

If none of the object libraries you are using contains a suitable source object, Form Generator looks for an item of type OLE Container in the template with the name specified by the Template/Library Object property. If you define the implementation object in the template form, you can include it anywhere in the template form and give it any name. However, we recommend you prefix the item name with 'CG$' and/or define it in a 'CG$' block. The item does not then become part of the generated application. Only those OLE container items used in a particular generation run are copied into the generated form.


Generated OLE container item properties

Related Topics

OLE Container Item Property	Derived from or set to:	Notes and Related Topics
OLE Class	Implementation object from object library or template	If no implementation object of type OLE Container exists, any class of OLE object can be inserted into the generated OLE container item.
OLE Activation Style	Implementation object from object library or template	Default value if no implementation object
OLE In-place Activation	Implementation object from object library or template	Default value if no implementation object
OLE Inside-Out Support	Implementation object from object library or template	Default value if no implementation object
OLE Tenant Types	Implementation object from object library or template	Default value if no implementation object
Show OLE Tenant Type	Implementation object from object library or template	Default value if no implementation object
OLE Tenant Aspect	Implementation object from object library or template	Specify an initial content for the OLE container in object library or template form.
OLE Resize Style	Implementation object from template	Default value if no implementation object
Show OLE Popup Menu	Implementation object from object library or template	Default value if no implementation object
OLE Popup Menu Items	Implementation object from object library or template	Default value if no implementation object

For more information about the above properties, refer to the Oracle Forms help system.

For a list of common generated item properties, refer to Generated item properties (common).


Poplist item generation

About poplist items

About generated poplist items

Generating poplist items

Generated poplist item properties


About poplist items

Related Topics

A poplist item appears initially as a single field (similar to a text item field). When the user selects the list icon, a list of available choices appears.

Illustration: Pop list example


About generated poplist items

Related Topics

Form Generator creates poplist items from bound or unbound repository items that have a Display Type of Poplist where one or other of the following conditions is true:

•	allowable values have been associated with the bound or unbound item

•	a repository LOV definition is associated with the bound or unbound item

About poplist items and allowable values

For both bound and unbound items, Form Generator derives values in the poplist from repository allowable values as follows:

•	for unbound items, Form Generator uses allowable values recorded directly against the unbound item (or against the domain to which the item belongs)

•	for bound items, Form Generator uses allowable values recorded against the column (or against the domain to which the column belongs)

You can control whether the allowable values are hard coded into the generated form or retrieved from the CG_REF_CODES table at runtime. If the values are retrieved from CG_REF_CODES, Form Generator creates the CGDV$POPULATE_DYNAMIC_LISTS procedure, which is called by the PRE-FORM trigger.

About poplist items and repository LOV definitions

As well as using allowable values to populate generated poplist items, you can also generate poplist items using repository LOV definitions by:

•	creating a repository LOV definition with a usage of the table containing the values you want in the generated poplist item

•	associating the LOV with an item in a module component base table usage and setting the item's Display Type property to Poplist

Note that you can only associate one LOV with the repository item you are generating as a poplist item.

For more information about generating poplist items using repository LOV definitions, refer to Using repository LOV definitions to generate poplist, text list and combo box items.

Rules that Form Generator applies when generating poplist items

Form Generator applies the following rules when generating poplist items:

•	a range of values must not have been defined as an allowable value

About generated poplist items to display lookup values

As well as using Form Generator to generate a poplist to display allowable values (i.e. values recorded in the repository and either hard coded or retrieved from CG_REF_CODES), you can also use Form Generator to generate a poplist to display values from a lookup table. The generation of lookup poplist items is covered separately in the following help topics:

•	About generated lookup poplist, lookup text list and lookup combo box items

•	Generating lookup poplist, lookup text list and lookup combo box items

•	Notes and examples for generating lookup poplist, lookup text list and lookup combo box items

Note that if allowable values have been defined for a lookup column definition in the repository, Form Generator uses the allowable values rather than values from the lookup table to populate a generated lookup poplist item based on the column.


Generating poplist items

Related Topics

Before you can generate a poplist item:

•	if you want to generate a poplist item from a bound item based on a column, the column (or the domain to which the column belongs) must have had allowable values defined against it that met the rules given in About generated poplist items before the column was created on the database

•	if you want to generate a poplist item from an unbound item, make sure the unbound item (or the domain to which the item belongs) has allowable values defined against it that meet the rules given in About generated poplist items

To generate a poplist item:

1.	Create a repository item definition.  How

2.	Set the Display Type property of the item to Pop list.

3.	If you created the item as an unbound item:

•	set the item's Unbound Type property to Custom

•	enter the necessary application logic to support the item generated from the unbound item (for more information, refer to Creating, editing, and checking logic in the Design Editor help system)

4.	Set the Show Meaning property of the item to one of the following, depending on the value you want in the list:

Show Meaning	To display in the list...
<Null>	the Value property of allowable values
Abbreviation only	the Abbreviation property of allowable values
Meaning only	the Meaning property of allowable values

Note that Meaning alongside code is not a valid option in this context.

5.	Set the Dynamic List ? property of the element (i.e. unbound item, column, or domain) where the allowable values are defined, according to how you want to populate the poplist:

•	to populate the poplist from a query against the CG_REF_CODES table on form start-up, set the Dynamic List ? property to Yes

•	to populate the poplist from hard coded values in the generated form, set the Dynamic List ? property to No

The object libraries supplied with Form Generator already contain a suitable object from which to subclass or copy properties. If you are not using one of the supplied object libraries, we recommend you add a suitable object to one of the object libraries you are using as described in the next step.

6.	(Recommended)  Create a poplist in an object library and set the properties you want Form Generator to copy or subclass in one of the following ways:

•	by creating a poplist item in the object library called CGSO$POP

•	by specifying an object in the object library for Form Generator to use when generating the poplist, using the Template/Library Object property of the repository item definition

For more information about copying or subclassing objects from an object library, refer to Using object libraries.

7.	Set other properties for the generated poplist as required, using repository information and preferences.

To find out how to set specific generated poplist item properties, refer to Generated poplist item properties.

Using templates and obsolete preferences

We strongly recommend you use objects in object libraries to set properties of generated objects. However, to ensure backwards compatibility, in Oracle Designer release 2 onwards you can continue to use obsolete preferences and objects in a template form to define properties of generated objects.


Generated poplist item properties

Related Topics

Poplist Property	Derived from or set to:	Notes and Related Topics
Mapping of Other Values	Object library object property
Indicator Width Picture	PLSIWD
Maximum Length Picture	PLSMAX
Dimensions	Repository item Display Width and Display Height properties	Use ITMODD to override the dimensions specified for the repository item. Use ITMPPE and ITMMPW to specify room for expansion and a minimum width respectively for values displayed in the poplist.

For a list of common generated item properties, refer to Generated item properties (common).


Radio group and radio button generation

About radio groups

About generated radio groups

Generating radio groups

Generated radio group properties

Generated radio button properties


About radio groups

Related Topics

A radio group is an interface control that displays a fixed number of options that are mutually exclusive. Each option is represented by an individual radio button.

A radio group can include any number of radio buttons. Radio buttons can be sized, positioned, and formatted independently of each other.

Illustration: Radio groups example


About generated radio groups

Related Topics

Form Generator creates radio groups from bound or unbound repository items that have a Display Type of Radio Group.

For both bound and unbound items, Form Generator derives radio buttons from repository allowable values as follows:

•	for unbound items, Form Generator uses allowable values recorded directly against the unbound item (or against the domain to which the item belongs)

•	for bound items, Form Generator uses allowable values recorded against the column (or against the domain to which the column belongs)

When allowable values are recorded against the column, those recorded against its domain are ignored.

For a non-mandatory item or column, Form Generator creates an extra radio button to enable users to select null. For example, if a non-mandatory column (or its domain) has two allowable values, Form Generator creates three radio buttons.

Rules that Form Generator applies when generating radio groups

Form Generator applies the following rules when generating radio groups:

•	a range of values must not have been defined as an allowable value


Generating radio groups

Related Topics

Before you can generate a radio group:

•	if you want to generate a radio group from a bound item based on a column, the column (or the domain to which the column belongs) must have had allowable values defined against it that met the rules given in About generated radio groups before the column was created on the database

•	if you want to generate a radio group from an unbound item, make sure the unbound item (or the domain to which the item belongs) has allowable values defined against it that meet the rules given in About generated radio groups

To generate a radio group:

1.	Create a repository item definition.  How

2.	Set the Display Type property of the item to Radio Group (Across) or Radio Group (Down)

3.	If you created the item as an unbound item:

•	set the item's Unbound Type property to Custom

•	enter the necessary application logic to support the item generated from the unbound item (for more information, refer to Creating, editing, and checking logic in the Design Editor help system)

4.	Set the Show Meaning property of the item to one of the following, depending on the radio button label you want in the generated form:

Show Meaning	Label
<Null>	the allowable value
Abbreviation only	the abbreviation defined for the allowable value
Meaning only	the meaning defined for the allowable value

Note that Meaning alongside code is not a valid option in this context.

The object libraries supplied with Form Generator already contain suitable objects from which to subclass or copy properties. If you are not using one of the supplied object libraries, we recommend you add suitable objects to one of the object libraries you are using as described in the next step.

5.	(Recommended)  Create a radio group and a radio button in an object library and set the properties you want Form Generator to copy or subclass in one of the following ways:

•	by creating a radio group and a radio button in the object library called CGSO$RADIO and CGSO$RADIO_BUTTON respectively

•	by specifying objects in the object library for Form Generator to use when generating the radio group, using the Template/Library Object property of the repository item definition

For more information about copying or subclassing objects from an object library, refer to Using object libraries.

6.	Set other properties for the generated radio group as required, using repository information and preferences.

To find out how to set specific generated poplist item properties, refer to Generated radio group properties and Generated radio button properties.

Using templates and obsolete preferences

We strongly recommend you use objects in object libraries to set properties of generated objects. However, to ensure backwards compatibility, in Oracle Designer release 2 onwards you can continue to use obsolete preferences and objects in a template form to define properties of generated objects.


Generated radio group properties

Related Topics

Radio Group Property	Derived from or set to:	Notes and Related Topics
Decoration Brush Width Picture	RADBWD
Decoration Type Picture	RADDEC
Decoration Dash Style Picture	RADDST
Title	Prompt property of repository item
Title position Picture	RADTLP
Title Justification Picture	RADTLJ
Title Margin Picture	RADTLM	Horizontal space placed with item group title. If title is left-justified, margin is before radio group title. If title is right-justified, margin is after title.
Title Spacing Picture	RADTLS	Specified in space characters rendered in the same font as the title.
Title expansion	ITMPPE	The width of any decoration is increased to allow for any increase in the title's width.
Title minimum width	ITMMPW	The width of any decoration is increased to allow for any increase in the title's width.
Margin Picture	RADMAR
Header Separator Picture	RADHDS	Vertical space between header and radio buttons.
Footer Separator Picture	RADFTS	Vertical space between radio buttons and bottom of radio group
Orientation Picture	Display Type property	Either Radio Group (Across) or Radio Group (Down). If Radio Group (Across), radio groups are laid out horizontally. Each button in the group is placed to the right of the preceding button. If the button does not fit in the available width, it is wrapped to the next line. Use RADHIS to specify the horizontal space between buttons. If Radio Group (Down), radio groups are laid out vertically. Each button in the group is placed under the preceding button. Use RADVIS to specify the vertical space between lines.
Buttons on Each Line Picture	RADMLF
Button Spacing Picture	RADVIS RADHIS
Maximum number of radio buttons	BUTMAX

For a list of common generated item properties, refer to Generated item properties (common).


Generated radio button properties

Related Topics

Radio Button Property	Derived from or set to:	Notes and Related Topics
Label	Allowable value's Meaning, Abbreviation, or value in full	Controlled by Show Meaning property of repository item
Indicator Width	BUTIWD
Dimensions	Repository item Display Width and Display Height properties	Use ITMODD to override the dimensions specified for the repository item. Use ITMPPE and ITMMPW to specify room for expansion and a minimum width respectively.
A note on radio button display width:

If the radio buttons are laid out horizontally and Form Generator is calculating the radio button display width, the width of the individual buttons will vary.

However, the width of the widest button is written to the repository item.

If the radio buttons are laid out vertically and Form Generator is calculating the radio button display width, all the buttons will be the same width, that is, the width of the widest button.

Form Generator calculates the display width if the display width against the repository item is NULL or ITMODD is set.


Text item generation

About text items

About generated text items

Generating text items

Generated text item properties

Attaching an editor to text items


About text items

Related Topics

A text item is an interface control that displays user-enterable text in a field in either single or multi-line display.

Illustration: Text item example


About generated text items

Related Topics

Form Generator creates text items from bound or unbound repository items that have a display type that is not in the following list:

Button	Image
Chart	OLE Container
Check box	Poplist
Combo Box	Radio Group
	Text List
See also About Concealed data.


Generating text items

Related Topics

To generate a text item:

1.	Create a repository item.  How

2.	Set the Display Type of the repository item to Text.

3.	If you created the item as an unbound item:

•	set the item's Unbound Type property to Custom

•	enter the necessary application logic to support the item generated from the unbound item (for more information, refer to Creating, editing, and checking logic in the Design Editor help system)

A repository item definition can have allowable values recorded for it. For a bound item, allowable values might be entered against the column (or associated domain) on which the item is based. For an unbound item, you can enter allowable values directly against the item, or against an associated domain.

4.	If the item has allowable values defined for it, you can:

•	use the item's Show Meaning property to specify whether to display the Value and/or Meaning properties of allowable values as follows:

−	if set to <Null>, generates an enterable text item to display the allowable value's Value property

−	if set to Meaning Alongside Code, generates a display-only text item with no prompt to display the Meaning property of an allowable value beside the generated text item containing the allowable value's Value property.

−	if set to Meaning Only, generates an enterable text item to display the Meaning property of an allowable value instead of the allowable value's Value property.

•	validate user input using an LOV of allowable values (for more information, refer to Generating an Oracle Forms LOV of allowable values

In the case of bound items, note that the column (or associated domain) on which the item is based must have had allowable values defined against it before the column was created on the database

The object libraries supplied with Form Generator already contain a suitable object from which to subclass or copy properties. If you are not using one of the supplied object libraries, we recommend you add a suitable object to one of the object libraries you are using as described in the next step.

5.	(Recommended)  Create a text item in an object library and set the properties you want Form Generator to copy or subclass in one of the following ways:

•	by creating a text item in the object library called CGSO$CHAR

•	by specifying an object in the object library for Form Generator to use when generating the text item, using the Template/Library Object property of the repository item definition

For more information about copying or subclassing objects from an object library, refer to Using object libraries.

6.	Set other properties for the generated text item as required, using repository information and preferences.

To find out how to set specific generated text item properties, refer to Generated text list item properties.

Using templates and obsolete preferences

We strongly recommend you use objects in object libraries to set properties of generated objects. However, to ensure backwards compatibility, in Oracle Designer release 2 onwards you can continue to use obsolete preferences and objects in a template form to define properties of generated objects.


Generated text item properties

Related Topics

Text Item Property	Derived from or set to:	Notes and Related Topics
Height	Repository item Height or object library property	If no height is specified, Form Generator uses TXTDHT
Bevel	Object library property	(or obsolete preference TXTBEV - not recommended)
Maximum Length	Dependent on Display Type of repository item. For image items, the associated item generated for the image path has a maximum length of 2000.	Refer to Setting the Maximum Length property of generated items  For more information, refer to About generated image items
Format Mask	Format Mask property of repository item, or of appropriate source object in object library.	If no format mask is specified, Form Generator uses one of the following preferences:  TXTDDF, TXTDTF, TXTDNF, and TXTDMF
Multi-line Picture	Repository item Height and TXTMLI	Set both TXTMLI (to allow multi-line text items) and repository item Height greater than one (to create multi-line text item). Note that if Form Generator is using a source object in an object library to generate the item, this property is always set to the value of the equivalent property of the source object.
Scrollbar if Multi-line Picture	TXTVSB
Space Reserved for Scrollbar Picture	TXTSBW
Font	Font properties of source object in object library or visual attribute in template form	If you do not specify all the font information, Form Generator will use the closest match to the specification. For example, if you specify Times font but do not specify a font size, Form Generator will create the text item with a Times font at the default size (usually 12 point). If you specify a size without a font, Form Generator will create the text item with the default font at the specified size. If no font information is specified, Form Generator will create the text item using the default font.
Editor	Editor (defined in object library or template, or by FORMS60_EDITOR Registry variable) specified by DFTCED or  DFTLED	For more information, refer to Attaching an editor to text items

For a list of common generated item properties, refer to Generated item properties (common).


Attaching an editor to text items

Related Topics

Oracle Forms enables you to attach an editor to a text item. The user can invoke the attached editor to edit the item's value.

You can attach an editor to a generated text item in the following ways:

•	using an editor defined in an object library

•	using the FORMS60_EDITOR Registry variable

How to attach an editor defined in an object library:

1.	Use Form Builder to define the editor and its properties in an object library.

2.	Attach the editor to the source object for the generated text item.

How to attach an editor using the FORMS60_EDITOR Registry variable:

1.	Set the Registry variable FORMS60_EDITOR to the name of the desired editor.

2.	Set the DFTCED preference (or the DFTLED preference, if the datatype of the generated item is LONG or LOB) to SYSTEM_EDITOR.

How to invoke the editor on entry to a generated item

To automatically invoke (in a separate popup window) the editor defined for a generated item on entry to that item:

1.	Set EDITPP to DEFAULT or HELP.

2.	Make sure the generated item will meet the conditions specified in the help topic for the EDITPP preference.


Text list item generation

About text list items

About generated text list items

Generating text list items

Generated text list item properties


About text list items

Related Topics

A text list item appears as a rectangular box which displays a fixed number of values. When the text list contains values that cannot be displayed (due to the displayable area of the item), a vertical scroll bar appears, allowing the user to view and select undisplayed values.

Illustration: Text list example


About generated text list items

Related Topics

Form Generator creates text list items from bound or unbound repository items that have a Display Type of Text list where one or other of the following conditions is true:

•	allowable values have been associated with the bound or unbound item

•	a repository LOV definition is associated with the bound or unbound item

About text list items and allowable values

For both bound and unbound items, Form Generator derives values in the text list from repository allowable values as follows:

•	for unbound items, Form Generator uses allowable values recorded directly against the unbound item (or against the domain to which the item belongs)

•	for bound items, Form Generator uses allowable values recorded against the column (or against the domain to which the column belongs)

You can control whether the allowable values are hard coded into the generated form or retrieved from the CG_REF_CODES table at runtime. If the values are retrieved from CG_REF_CODES, Form Generator creates the CGDV$POPULATE_DYNAMIC_LISTS procedure, which is called by the PRE-FORM trigger.

About text list items and repository LOV definitions

As well as using allowable values to populate generated text list items, you can also generate text list items using repository LOV definitions by:

•	creating a repository LOV definition with a usage of the table containing the values you want in the generated text list item

•	associating the LOV with an item in a module component base table usage and setting the item's Display Type property to Text list

Note that you can only associate one LOV with the repository item you are generating as a text list item.

For more information about generating text list items using repository LOV definitions, refer to Using repository LOV definitions to generate poplist, text list and combo box items.

Rules that Form Generator applies when generating text list items

Form Generator applies the following rules when generating text list items:

•	a range of values must not have been defined as an allowable value

About generated text list items to display lookup values

As well as using Form Generator to generate a text list to display allowable values (i.e. values recorded in the repository and either hard coded or retrieved from CG_REF_CODES), you can also use Form Generator to generate a text list to display values from a lookup table. The generation of lookup text list items is covered separately in the following help topics:

•	About generated lookup poplist, lookup text list and lookup combo box items

•	Generating lookup poplist, lookup text list and combo box items

•	Notes and examples for generating lookup poplist, lookup text list and lookup combo box items

If allowable values have been defined for a lookup column definition in the repository, Form Generator uses the allowable values rather than values from the lookup table to populate a generated lookup text list item based on the column.


Generating text list items

Related Topics

Before you can generate a text list item:

•	if you want to generate a text list item from a bound item based on a column, the column (or the domain to which the column belongs) must have had allowable values defined against it that met the rules given in About generated text list items before the column was created on the database

•	if you want to generate a text list item from an unbound item, make sure the unbound item (or the domain to which the item belongs) has allowable values defined against it that meet the rules given in About generated text list items

To generate a text list:

1.	Create a repository item definition.  How

2.	Set the Display Type property of the item to Text list.

3.	If you created the item as an unbound item:

•	set the item's Unbound Type property to Custom

•	enter the necessary application logic to support the item generated from the unbound item (for more information, refer to Creating, editing, and checking logic in the Design Editor help system)

4.	Set the Show Meaning property of the item to one of the following, depending on the value you want in the list:

Show Meaning	To display in the list...
<Null>	the Value property of allowable values
Abbreviation only	the Abbreviation property of allowable values
Meaning only	the Meaning property of allowable values

Note that Meaning alongside code is not a valid option in this context.

4.	Set the Dynamic List ? property for the element (i.e. unbound item, column, or domain) where the allowable values are defined, according to how you want to populate the text list:

•	to populate the text list from a query against the CG_REF_CODES table on form start-up, set the Dynamic List ? property to Yes

•	to populate the text list from hard coded values in the generated form, set the Dynamic List ? property to No

The object libraries supplied with Form Generator already contain a suitable object from which to subclass or copy properties. If you are not using one of the supplied object libraries, we recommend you add a suitable object to one of the object libraries you are using as described in the next step.

5.	(Recommended)  Create a text list item in an object library and set the properties you want Form Generator to copy or subclass in one of the following ways:

•	by creating a text list item in the object library called CGSO$TEXT_LIST

•	by specifying an object in the object library for Form Generator to use when generating the text list item, using the Template/Library Object property of the repository item definition

For more information about copying or subclassing objects from an object library, refer to Using object libraries.

6.	Set other properties for the generated text list as required, using repository information and preferences.

To find out how to set specific generated text list item properties, refer to Generated text list item properties.

Using templates and obsolete preferences

We strongly recommend you use objects in object libraries to set properties of generated objects. However, to ensure backwards compatibility, in Oracle Designer release 2 onwards you can continue to use obsolete preferences and objects in a template form to define properties of generated objects.


Generated text list item properties

Related Topics

Text List Property	Derived from or set to:	Notes and Related Topics
Mapping of Other Values	Object library object property
Maximum Number of Items in List Picture	TLSMAX
Space for Vertical Scrollbar Picture	TLSSBH
Space for Horizontal Scrollbar Picture	TLSSBW
Dimensions	Repository item Display Width and Display Height properties	Use ITMODD to override the dimensions specified for the repository item. Use ITMPPE and ITMMPW to specify room for expansion and a minimum width respectively for values displayed in the text list.

For a list of common generated item properties, refer to Generated item properties (common).


 About concealed data

Related Topics

Concealed data is a display type that displays asterisks instead of the true value of a field.

Data given the display type of concealed data is not encrypted and can be queried in the normal way.  When data is queried from a table, where a column has its display type set to concealed data, asterisks will be printed on the results page for the values in that column.

In other respects, the concealed data display type acts like the text item display type, for which see Text item generation.


Item group generation

About item groups

Generating item groups

Generated item group properties

Repository item group properties used by Form Generator

Examples of item groups in single row and multi-row Blocks

See also

Stacked item group generation


About item groups

Related Topics

An item group is a collection of generated items and their prompts that Form Generator treats as a single object when laying out a form. If a repository module contains item groups, during generation Form Generator:

•	first lays out each item in the item group with respect to other items within the item group

•	then positions the item group as a whole with respect to other items and item groups in the block

Use item groups both to control how Form Generator lays out a generated form, and to indicate associated groups of items to the user.

Stacking item groups

You might have a number of different item groups in the same block. In this situation, you can place the item groups on different canvases (typically as tab pages on a tab canvas). Item groups that have their stacked property set to Yes are referred to as 'stacked item groups'. For more information , refer to Tab canvas generation.

Nesting item groups

You can also nest item groups as follows:

•	a non-stacked item group inside another non-stacked item group

•	a non-stacked item group inside a stacked item group

•	a stacked item group inside a non-stacked item group

Note that you cannot nest a stacked item group inside another stacked item group.


Generating item groups

Related Topics

To generate an item group:

1.	Define an item group in the repository.  How

2.	Set properties for the generated item group as required, using repository information and preferences.

3.	Include an item in the item group by setting the item's Item Group property to the name of the item group.

To place several repository items in an item group, the items must be consecutive and have the same value for the Item Group property.

Illustration: Item groups example


Generated item group properties

Related Topics

Generated Item Group Property	Derived from or set to:	Notes and Related Topics
Number of Items on a Line Picture	GRPMLF
Orientation of Items Picture	Orientation property of item group
Spacing between Items in Vertical Item Group Picture	GRPVIS
Spacing between Items in Horizontal Item Group Picture	GRPHIS
Alignment of Vertical Item Groups Picture	GRPUTT
Alignment of Horizontal Item Groups Picture	GRPTAB GRPUTT
Margin Picture	GRPMAR
Title	Prompt property of repository item group
Title Justification Picture	GRPTLJ
Title Margin Picture	GRPTLM
Title Spacing Picture	GRPTLS	Specified in space characters rendered in the same font as the title.
Title expansion	ITMPPE	The width of any decoration is increased to allow for any increase in the title's width.
Title minimum width	ITMMPW	The width of any decoration is increased to allow for any increase in the title's width.
Header Separator Picture	GRPHDS
Footer Separator Picture	GRPFTS
Decoration Type Picture	GRPDEC
Dash Style Picture	GRPDST
Brush Width Picture	GRPBWD
Item prompt position	Depends on the number of rows in the item group	Form Generator positions prompts for items in multi-row item groups in the same way as for other items in the multi-row block. Form Generator always positions prompts for items in single row item groups to the left of items in the group.


Repository item group properties used by Form Generator

Related Topics

Repository Item Group Property	Use to specify to Form Generator	Notes and Related Topics
Name	Not used by Form Generator
Parent Item Group		Name of item group within which this item group has been defined (if applicable)
Template/Library Object	A tab canvas or tab canvas page in an object library to use when generating stacked item groups	Not used when generating non-stacked item groups. When generating stacked item groups: • if CANNTC is set to Yes, specifies a tab canvas page in the object library from which to copy or subclass properties of the tab canvas page onto which the item group is generated • if CANNTC is set to No, specifies a stacked canvas in the object library from which to copy or subclass properties of the stacked canvas onto which the item group is generated For more information, refer to Generating stacked item groups onto tab canvases/tab pages).
Display
Prompt	Title of generated item group	If item group generated as native Oracle Forms tab page, specifies the tab page Label. If item group generated in alternative tab page style, specifies the entry in the poplist.
Layout Format	How to generate item groups in multi-row blocks	To generate an item group for each row in a multi-row block, set this property to Standard. To generate one multi-row item group in a multi-row block, set this to Multi-record. For more information, refer to Examples of item groups in single row and multi-row blocks Different stacked item groups displayed on tab pages on the same tab canvas can have this property set differently.
Orientation	Orientation of item group	Either Horizontal or Vertical. If Horizontal, item groups are laid out horizontally. Each item in the group is placed to the right of the preceding item. If the item does not fit in the available width, it is wrapped to the next line. Use GRPHIS to specify the horizontal space between items. If Vertical, item groups are laid out vertically. Each item in the group is placed under the preceding item. Use GRPVIS to specify the vertical space between lines.
Stacked?	When set to Yes for two item groups in the same module component, Form Generator generates item groups as tab pages or stacked canvases	Use CANNTC to control whether item groups are displayed as tab pages on a native Oracle Forms tab canvas, or on stacked canvases accessed via a poplist. For more information, refer to Tab canvas generation.
Relative Tab Stops
Tab Stop Scope	Determines whether items within the item group are aligned with items outside the item group	Set this property: • to None to ignore relative tab stops (unless a nested item group within the current item group has this property set to Self or Parent) • to Self to align items with the same relative tab stops in the item group but not outside the item group • to Parent to align items with the same relative tab stops both in the item group and outside the item group Note that to align items in two different item groups using the same relative tab stop, you must set the Tab Stop Scope property of both item groups to Parent. For more information, refer to Positioning items (and item groups) using tab stops.
Start Tab Stop	A numeric value indicating a relative tab stop to align the left hand edge of the item group with items or item groups outside the item group.	For more information, refer to Positioning items (and item groups) using tab stops.
End Tab Stop	A numeric value indicating a relative tab stop to align the right hand edge of the item group with items or item groups outside the item group.	Note that the value you enter for the End Tab Stop property must be greater than the value of the item group's Start Tab Stop property (if set). For more information, refer to Positioning items (and item groups) using tab stops.
Reports Break Group	Not used by Form Generator
Help
User/Help Text	Not used by Form Generator
Documentation
Description	Not used by Form Generator.
Notes	Not used by Form Generator.


Examples of item groups in single row and multi-row blocks

Related Topics

Example 1: Item group in a single row block

To generate the above layout:

1.	Create a module component with a base table usage of EMP and set the module component's Rows Displayed property to 1.

2.	Create an item group and set:

•	the item group's Prompt property to 'Address'

•	the item group's Stacked property to No

•	the item group's Layout Format property to Standard

3.	Include bound items based on STREET, AREACODE and CITY in the item group.

Example 2: Item groups in a multi-row block (Layout=Standard)

To generate the above layout:

1.	Create a module component with a base table usage of EMP and set the module component's Rows Displayed property to 3.

2.	Create an item group and set:

•	the item group's Prompt property to 'Address'

•	the item group's Stacked property to No

•	the item group's Layout Format property to Standard

3.	Include bound items based on STREET, AREACODE and CITY in the item group.

Example 3: Multi-row item group in a multi-row block (Layout=Multi-Record)

To generate the above layout:

1.	Create a module component with a base table usage of EMP and set the module component's Rows Displayed property to 4.

2.	Create an item group and set:

•	the item group's Prompt property to 'Address'

•	the item group's Stacked property to No

•	the item group's Layout Format property to Multi-Record

•	the item group's Orientation property to Horizontal

3.	Include bound items based on STREET, AREACODE and CITY in the item group.

Example 4: Item group in a single area in a multi-row block

To generate the above layout:

1.	Create a module component with a base table usage of EMP and set the module component's Rows Displayed property to 4.

2.	Create an item group and set:

•	the item group's Prompt property to 'Address'

•	the item group's Stacked property to No

•	the item group's Layout Format property to Standard

•	the item group's Orientation property to Horizontal

3.	Include bound items based on STREET, AREACODE and CITY in the item group.

4.	Set the following preferences as shown:

Preference:	Set preference to:
GRPMLF	2
SARCHT	2
SARENB	Yes
SARLIM	No


Stacked item group generation

About stacked item groups

Generating stacked item groups onto tab canvases/tab pages

Generated tab canvas/tab page properties for displaying stacked item groups

Examples of stacked item groups generated onto tab canvases/tab pages

Notes on the use of tab canvases for displaying stacked item groups

Aligning the context items on tab canvases with items on spreadtable blocks


About stacked item groups

Related Topics

What are stacked item groups?

A stacked item group is a repository item group definition that has its Stacked property set to Yes. The existence of two or more stacked item groups in a module component indicates that the item groups are to be generated onto the same area on a canvas, but only one stacked item group will be visible at any one time.

You can use Form Generator to implement stacked item groups in one of two ways:

•	as a number of native Oracle Forms tab canvas pages

•	an alternative implementation using stacked canvases and a poplist

Generating stacked item groups as native Oracle Forms tab canvas pages

Form Generator places stacked item groups on different tab pages of a generated tab canvas when both the following conditions are met:

•	CANNTC is set to Yes

•	two or more repository item groups in a module component have their Stacked property set to Yes

Each item group's Prompt property is used as the label for the tab page on which the items in that item group appear. Form Generator lays out any other items in the module component before and after the tab canvas.

An alternative implementation

As well as generating native Oracle Forms tab canvases, Form Generator enables you to provide the same functionality by generating stacked item groups onto different stacked canvases displayed in the same area on a form. Only one of the stacked canvases is visible at any one time. Note that using this alternative implementation:

•	you can generate multi-record stacked item groups, which are not fully supported when generating native Oracle Forms tab canvases

•	you cannot generate the stacked canvases containing the stacked item groups onto tab canvas pages, which is supported when generating native Oracle Forms tab canvases

Users of the generated form select which stacked canvas to display using a control poplist containing the Prompt of each item group in the stack. Note that the control poplist can only be accessed using a GUI input device such as a mouse or trackball. If users of the forms you generate will not have access to such devices, this implementation might be unsatisfactory.

To implement tab canvases in this way, set CANNTC to No.

This implementation of tab canvases was supported in versions of Form Generator prior to Release 2, and is sometimes called 'alternate regions'.


Generating stacked item groups onto tab canvases/tab pages

Related Topics

To generate item groups onto a native Oracle Forms tab canvas:

1.	Create two or more item groups from repository items in the same module component  How

For more information, refer to About item groups.

2.	Specify a Prompt for each of the item groups you want displayed on tab pages.

3.	Set the Stacked property to Yes for each of the item groups you want displayed on tab pages.

4.	Set the Layout Format property to Standard for each of the item groups you want displayed on tab pages.

Note that you cannot generate multi-record stacked item groups onto native Oracle Forms tab canvases.

4.	Set CANNTC to Yes.

5.	Set other repository properties for the item groups as appropriate.

The object libraries supplied with Form Generator already contain suitable objects from which to subclass or copy properties of both the generated tab canvas and generated tab canvas pages. If you are not using one of the supplied object libraries, we recommend you add suitable objects to one of the object libraries you are using as described in the next two steps.

6.	(recommended) Create a tab canvas in the object library called CGSO$CANVAS_TAB and set the properties you want Form Generator to copy or subclass when generating the tab canvas. To ensure that alignment is correct, refer to Aligning the context items on tab canvases with items on spreadtable blocks.

7.	(recommended) Create a tab canvas page in the object library and set the properties you want Form Generator to copy or subclass in one of the following ways:

•	by creating a tab canvas page in the object library called CGSO$TAB_PAGE

•	by specifying a tab canvas page in the object library for Form Generator to use when generating the tab canvas page, using the Template/Library Object property of the repository item group definition

For more information about copying or subclassing objects from an object library, refer to Using object libraries.

8.	(Optional)  Use preferences to specify further properties of generated tab canvases and tab pages.

For a list of preferences to use, refer to Layout Preferences - Item Group.


Generated tab canvas/tab page properties for displaying stacked item groups

Related Topics

Generated tab canvas properties

Tab Canvas Property	Derived from or set to:	Notes and Related Topics
Name	CG$TAB_CANVAS_<n>
Canvas Type	Tab
Subclass Information
Comments	null
Functional
Raise on Entry	No
Popup Menu
Viewport
Viewport Width	Width of widest item group in stack
Viewport Height	Height of highest item group in stack
Physical
Visible	Yes
Window	set to the name of the window generated for the module component
Viewport X and Y Position	Determined by Form Generator according to available space, and overflow options	This is the position of tab canvas on the underlying content canvas.
Bevel	None
Tab Style	Object library object property
Tab Attachment Edge	Top
Font & Color
Visual Attribute Group	CG$PAGE
International
Direction	Default
Miscellaneous
View Horizontal Scrollbar	No
View Vertical Scrollbar	No
Generated tab page properties

Tab Page Property	Derived from or set to:	Notes and Related Topics
Name	CG$TAB_<n>
Comments	null
Functional
Enabled	Yes
Label	item group Title property
Physical
Visible	Yes
Font and Color
Visual Attribute Group	CG$PAGE
International
Direction	Default
Alternative implementation (i.e. CANNTC set to No)

Property	Derived from or set to:	Notes and Related Topics
Decoration around stacked canvases	As defined for item group on first stacked canvas.	Decoration is drawn on the block's content canvas (i.e. not on the stacked canvas containing the items from the item group).
Dimensions of stacked canvases		Each item group is displayed on a separate, identically-sized stacked canvas. The stacked canvas dimensions are defined as the area within the decoration. The view of each stacked canvas is the same size as the stacked canvas itself, and is positioned on the block's content canvas within the decoration.
Other canvas properties	CGSO$CANVAS_POPLIST object in an object library
Control Poplist Entries	Prompt for each item group
Control Poplist Position	GRPTLP.
Other Control Poplist properties	CGSO$BUTTON object in an object library


Examples of stacked item groups generated onto tab canvases/tab pages

Related Topics

Stacked item group on a tab canvas in a single row block

To generate the above layout:

1.	Create a module component with a base table usage of EMP and set:

•	the module component's Rows Displayed property to 1

•	the module component's Overflow Style to Wrap Line

•	the item group's Layout Format property to Standard

2.	Include bound items based on JOB, HIREDATE and DNAME in the stacked item group.

3.	Create another item group and set:

•	the item group's Prompt property to 'More'

•	the item group's Stacked property to Yes

•	the item group's Layout Format property to Standard

4.	Include other items in the second stacked item group as required.

5.	Set CANNTC to Yes.

Stacked item group on a tab canvas to the right in a multi-row block

To generate the above layout:

1.	Create a module component with a base table usage of EMP and set the module component's Rows Displayed property to 4.

2.	Make sure the items fit within the width of the form (i.e. are not included in an overflow area).

3.	Create an item group and set:

•	the item group's Prompt property to 'Detail'

•	the item group's Stacked property to Yes

•	the item group's Layout Format property to Standard

4.	Include bound items based on JOB, HIREDATE and DNAME in the stacked item group.

5.	Create another item group and set:

•	the item group's Prompt property to 'More'

•	the item group's Stacked property to Yes

•	the item group's Layout Format property to Standard

6.	Include other items in the second stacked item group as required.

7.	Set SARCHT to 2.

8.	Set SARENB to Yes.

9.	Set CANNTC to Yes.

Note that any repository items after those in the first stacked item group and not in any subsequent stacked item group will appear after the tab canvas, as shown below:

Stacked item group on a tab canvas below in a multi-row block

To generate the above layout:

1.	Create a module component with a base table usage of EMP and set:

•	the module component's Rows Displayed property to 4

•	the module component's Overflow Style property to Overflow Below

2.	Create an item group and set:

•	the item group's Prompt property to 'Detail'

•	the item group's Stacked property to Yes

•	the item group's Layout Format property to Standard

3.	Include bound items based on JOB, HIREDATE and DNAME in the stacked item group.

4.	Create another item group and set:

•	the item group's Prompt property to 'More'

•	the item group's Stacked property to Yes

•	the item group's Layout Format property to Standard

5.	Include other items in the second stacked item group as required.

6.	Set OFADEC to 'NONE' to prevent any extra decoration being drawn around the tab canvas.

7.	Set CANNTC to Yes.

Make sure that those generated items you want to appear in the multi-row part of the block will fit within the width of the form. Any items that will not fit within the width of the form will be included in the overflow area along with the tab canvas, as shown below:

Stacked item groups on a tab canvas placed on the tab canvas page generated for a module component

For an example of this layout, refer to Examples of blocks generated onto tab canvases/tab pages.

Alternative stacked item group implementation in a single row block (i.e. CANNTC set to No)

To generate the above layout:

1.	Create a module component with a base table usage of EMP and set:

•	the module component's Rows Displayed property to 1

•	the module component's Overflow Style to Wrap Line

2.	Create an item group and set:

•	the item group's Prompt property to 'Details'

•	the item group's Stacked property to Yes

•	the item group's Layout Format property to Standard

3.	Include bound items based on JOB, HIREDATE and DNAME in the stacked item group.

4.	Create another item group and set:

•	the item group's Prompt property

•	the item group's Stacked property to Yes

5.	Include other items in the second stacked item group as required.

6.	Set CANNTC to No.

Alternative stacked item group implementation in a multi-row block (i.e. CANNTC set to No)

To generate the above layout:

1.	Create a module component with a base table usage of EMP and set the module component's Rows Displayed property to 4.

2.	Make sure the items fit within the width of the form (i.e. are not included in an overflow area).

3.	Create an item group and set:

•	the item group's Prompt property to 'Details'

•	the item group's Stacked property to Yes

•	the item group's Layout Format property to Multi-Record

•	the item group's Orientation property to Horizontal

4.	Include bound items based on JOB, HIREDATE and DNAME in the stacked item group.

5.	Create another item group and set:

•	the item group's Prompt property

•	the item group's Stacked property to Yes

•	the item group's Orientation property to Horizontal

6.	Include other items in the second stacked item group as required.

7.	Set CANNTC to No.

Note that any repository items after those in the first stacked item group and not in any subsequent stacked item group will appear after the stacked canvas, as shown above.


Notes on the use of tab canvases for displaying stacked item groups

Related Topics

Note the following when generating tab canvases to display stacked item groups:

•	A block cannot contain more than one tab canvas displaying stacked item groups.

•	Tab canvases displaying stacked item groups can be laid out within blocks that are themselves displayed on tab canvases (for more information, refer to Examples of blocks generated onto tab canvases/tab pages).

•	Tab canvases displaying stacked item groups cannot appear on other stacked canvases (including spreadtables and overflow context areas).

•	A tab canvas displaying stacked item groups cannot contain items from more than one block.

•	To ensure items in stacked item groups on a tab canvas in a detail block are synchronized with a master block (i.e. on a different canvas), set the BSCSCP preference to Window or Form.

•	If all the items in a detail block are in stacked item groups on tab pages on a tab canvas, Form Generator creates a block context area above the tab canvas for any context items from the master block (for more information, refer to Block context area and block context item generation).

•	A multi-row stacked item group generated onto a native Oracle Forms tab canvas only appears as correctly aligned with items on the underlying content canvas in a Windows NT environment. If you are generating for other environments, you might have to use Form Builder to align the stacked item group.

•	You may find that a multi-row stacked item groups generated onto a tab canvas has the tabs incorrectly aligned to the items on the spreadtable. For more information, refer to Aligning tabs

•	If you have tab canvases with spreadtable blocks, you may find that the context items are correctly aligned with the items on the spreadtable on either WebForms or the Oracle Forms runtime environment, and incorrectly aligned in the other. There is an offset value set on CGSO$CANVAS_TAB which will correct this. For more information, refer to Aligning the context items on tab canvases with items on spreadtable blocks


Aligning context items on tab canvases with items on spreadtable blocks

Related Topics

This only applies to tab canvases with spreadtable blocks.

The amount by which the context item on the tab canvas is offset is taken from a tag in the comment property for CGSO$CANVAS_TAB. The shipped values are as follows:

•	In ofgwebol.olb the comment property for CGSO$CANVAS_TAB is blank. An application generated with this object library will appear correctly as a WebForm, but the context items will not line up correctly with the items on the spreadtable when it is run in the Oracle Forms runtime environment.

•	In ofgstnd1.olb the comment for CGSO$CANVAS_TAB is

<CG$VIEW_OFFSET x=0.08in, y=0.07in >

An application generated with this object library will appear correctly in the Oracle Forms runtime environment, but the context items will not line up correctly with the items on the spreadtable when it is run as a WebForm.


List of values indicator button generation

About generated list of values indicator buttons

Generating list of values indicator buttons

Generated list of values indicator button properties


About generated list of values indicator buttons

Related Topics

Form Generator can generate lists of values (LOVs) for validation of user input. Often you will want to give users an indication that such an LOV exists, and provide an easy way to display it.

When Form Generator creates an LOV for a generated text item, you can specify that a button is also created to invoke the list of values. This LOV button is in addition to the other mechanisms for invoking the list of values.

In the generated form, the button is always placed adjacent to the item. If there is a post-item prompt on the same line, it is placed after the button.

•	prompt adjacent	PREP ITEM LOVB POST

•	prompt above	PREP(POST) ITEM LOVB

If the item must be truncated, the button is not generated, because there is not enough space.


Generating list of values indicator buttons

Related Topics

To include an LOV button beside an item in a generated form:

The object libraries supplied with Form Generator already contain a suitable object from which to subclass or copy properties. If you are not using one of the supplied object libraries, we recommend you add a suitable object to one of the object libraries you are using as described in the next step.

1.	(recommended) Create a button item called CGSO$LOV_BUT in an object library and give the item the properties you require of the generated button (e.g. dimensions, icon, visual attribute).

For more information about copying or subclassing objects from an object library, refer to Using object libraries.

2.	Set LOVBUT to Y.

Using templates and obsolete preferences

We strongly recommend you use objects in an object library to set properties of generated objects. However, to ensure backwards compatibility, in Oracle Designer release 2 onwards you can continue to use obsolete preferences and objects in a template form to define properties of generated objects.

Bearing this in mind, you can create an item called CG$LB in the header or footer of a template form. Form Generator first searches object libraries for CGSO$LOV_BUT. If such an object does not exist in any object library, Form Generator searches the template for CG$LB.

If you do not define an item with one of the above names in either the object libraries or the template, Form Generator will use suitable default values.


Generated list of values indicator button properties

Related Topics

LOV Button Property	Derived from or set to:	Notes and Related Topics
Button/Item Spacing	LOVITG
Button/Item Alignment	LOVBAL	The height of the button can be different to that of the item
Keyboard Navigable	CGSO$LOV_BUT object library object property	(or obsolete preference LOVNAV - not recommended)
Mouse Navigate	CGSO$LOV_BUT object library object property
Dimensions	CGSO$LOV_BUT in object library, or CG$LB item in template form	Form Generator looks in object libraries first. If Form Generator finds neither CGSO$LOV_BUT nor CG$LB, it uses a suitable default.
Icon	CGSO$LOV_BUT in object library, or CG$LB item in template form	Form Generator looks in the object libraries first. If Form Generator finds neither CGSO$LOV_BUT nor CG$LB, it uses a suitable default.
Visual Attribute	CGSO$LOV_BUT in object library, or CG$LB item in template form	Form Generator looks in the object libraries first. If Form Generator finds neither CGSO$LOV_BUT nor CG$LB, it uses a suitable default.


Frame generation

About Oracle Forms frames

When does Form Generator include frames in generated forms?

Generating frames

Generated frame properties


About Oracle Forms frames

Related Topics

An Oracle Forms frame is a graphic object that appears on a canvas. A frame comprises:

•	the decoration around an area on the canvas, including a title

•	a set of properties that control how objects associated within a frame are laid out within the boundaries of that frame

Using frames rather than graphic lines for decoration offers several benefits:

•	there is more control over the appearance of decoration (for example, the frame decoration can have a rounded style to give it an Oracle look-and-feel)

•	frames are loaded more efficiently than graphic lines at runtime, which significantly improves performance when running forms as WebForms applications

Note that Form Generator only creates Oracle Forms frames when generating decoration as an alternative to graphic lines for surrounding blocks, item groups, radio groups, block context areas, and overflow areas.


When does Form Generator include frames in generated forms?

Related Topics

Form Generator creates frames if LAYFRA is set to Yes when generating decoration for surrounding:

•	blocks

•	item groups

•	radio groups

•	block context areas

•	overflow areas

If LAYFRA is set to Yes, Form Generator also uses frames' Title properties to display titles for generated blocks, item groups and radio groups providing the appropriate title position preference (i.e. BLKTLP, GRPTLP, RADTLP) is set to On Decoration. If the title position preference is set to Inside or Outside, Form Generator creates graphic text to display titles for generated blocks, item groups and radio groups (i.e. as if LAYFRA were set to No).


Generating frames

Related Topics

To generate frames as decoration:

1.	Set LAYFRA to Yes

2.	Set the following decoration preferences as required to set generated frame properties:

Frame Property	Block preference	Item Group preference	Radio Group preference	Block Context Area preference	Overflow area preference
Line width	BLKBWD	GRPBWD	RADBWD	CONBWD	OFABWD
Bevel	BLKDEC	GRPDEC	RADDEC	CONDEC	OFADEC
Dash Style	BLKDST	GRPDST	RADDST	CONDST	OFADST
Frame Title Alignment	BLKTLJ	GRPTLJ	RADTLJ	CONTLJ	OFATLJ
3.	(optional) To generate titles as frame properties, set the appropriate preference (i.e. BLKTLP, GRPTLP, or RADTLP) to On Decoration.

Note that if you specify a title position other than On Decoration, Form Generator will generate the titles as graphic text.

The object libraries supplied with Form Generator already contain suitable objects from which to subclass or copy properties. If you are not using one of the supplied object libraries, we recommend you add a suitable object to one of the object libraries you are using as described in the next step.

4.	(recommended) Create a frame in an object library and set the properties you want Form Generator to copy or subclass by creating a frame in the object library with one of the following names, according to the type of decoration:

If XXXDEC preference set to:	Use this standard source object:
R, RR, LR, IR, OR	CGSO$FRAME_RECT
L, IL, OL	CGSO$HORZ_LINES
LT, ILT, OLT	CGSO$FRAME_LINE_TOP

For more information about copying or subclassing objects from an object library, refer to Using object libraries.


Generated frame properties

Related Topics

Frame Property	Derived from or set to:	Notes and Related Topics
Graphics Type	Frame
Subclass Information	One of: CGSO$FRAME_RECT CGSO$HORZ_LINES CGSO$FRAME_LINE_TOP	Which standard source object is used depends on the value of the appropriate preference (i.e. BLKDEC, GRPDEC, RADDEC, CONDEC, OFADEC)
Layout Data Block	<Null>	Form Generator only uses frames to create decoration. Specifically, Form Generator does not use frames as areas within which to layout blocks and items.
Line Width	BLKBWD, GRPBWD, RADBWD, CONBWD, OFABWD	Overrides object library object property.
Dash Style	BLKDST, GRPDST, RADDST, CONDST, OFADST	Overrides object library object property.
Bevel	BLKDEC, GRPDEC, RADDEC, CONDEC, OFADEC	Overrides object library object property.
Frame Title	Block title, item group title, or radio group title	This property is set providing the appropriate preference (i.e. BLKTLP, GRPTLP, or RADTLP) is set to On Decoration
Frame Title Alignment	BLKTLJ, GRPTLJ, RADTLJ, CONTLJ, OFATLJ	Overrides object library object property.


Graphic object and graphic text generation

About Oracle Forms graphic objects and graphic text

When does Form Generator include graphic objects/text in generated forms

Generated graphic objects/text properties

Using graphic objects/text as the background for a generated form


About Oracle Forms graphic objects and graphic text

Related Topics

Graphic objects are lines, shapes and images you can draw or import onto a canvas using the Form Editor's drawing tools.

You use the Form Editor's Text tool to enter graphic text. In contrast to text items, when you create graphic text you do not programmatically set the text to be displayed at runtime (although you can change other properties of graphic text). The text you enter at design-time is displayed at runtime.

Graphic objects and graphic text are collectively referred to as 'graphic objects/text'. Graphic objects/text are associated with the canvas on which you place them - deleting a canvas deletes all of its graphic objects/text.

Although you can manipulate some properties of graphic objects/text dynamically, operators cannot interact directly with graphic objects/text at runtime.

In Oracle Forms 5.0 onwards, graphic objects/text:

•	are named

•	can be subclassed like any other object

•	are displayed within the Object Navigator and Property Palette, as well as in the Form Editor

•	have properties that can be set dynamically

In versions of Oracle Forms prior to Oracle Forms 5.0, graphic objects/text were referred to as boilerplate and had none of the above features.


When does Form Generator include graphic objects/text in generated forms?

Related Topics

Form Generator includes graphic objects/text in generated forms:

•	when creating blocks and items if LAYFRA is set to No as follows:

−	decoration around blocks, item groups, radio groups, block context areas, and overflow areas is created as a graphic object

−	any title for blocks, item groups, radio groups, block context areas, and overflow areas is created as graphic text

−	post-item prompts are created as graphic text

•	when creating blocks and items if LAYFRA is set to Yes as follows:

−	any title for blocks, block stubs, block context areas, and item groups is created as graphic text if the appropriate title position preference (i.e. BLKTLP, GRPTLP, RADTLP) is not set to On Decoration

−	post-item prompts are created as graphic text

•	when creating objects in the generated form from generator items defined in the template (e.g. CG$AT)

•	when including information defined in preferences (e.g. CONAME)

To control the properties of the above generated graphic objects/text, use the appropriate Generator named visual attributes in the template form. For more information, refer to Release 1.x style generator named visual attributes in the template form.

In addition, if Form Generator includes a generator canvas or user canvas defined in the template, any graphic objects/text on the canvas in the template is copied into the generated form (e.g. if Form Generator uses a content canvas in the template that contains a graphic object, the graphic object is copied onto the generated canvas. The graphic object would act as a background to generated blocks.)


Generated graphic objects/text properties

Related Topics

Graphic objects/text Property	Derived from or set to:	Notes and Related Topics
Cap Style	Set to Butt	Graphic objects and graphic text
Join Style	Set to Mitre	Graphic objects and graphic text
Rotation Angle	Set to 0	Graphic objects and graphic text
Line Spacing	Set to Single	Graphic text only
Fixed Bounding Box	Set to No	Graphic text only
Wrap Text	Set to No	Graphic text only
Bounding Box Scaleable	Set to No	Graphic text only
Font Scaleable	Set to Yes	Graphic text only
Horizontal Justification	Set to Left	Graphic text only
Vertical Justification	Set to Top	Graphic text only
Bevel	Set to None	Graphic objects and graphic text
Direction	Set to Default	Graphic text only


Using graphic objects/text as the background for a generated form

Related Topics

To use graphic objects/text (e.g. a company logo) as the background for a generated form:

1.	Use Form Builder to open or create a template form.

2.	Create a new content canvas.

3.	Give the content canvas the name CGSO$CANVAS (graphic objects/text on a canvas called CGSO$CANVAS will appear on all generated content canvases).

4.	Create graphic objects/text on the CGSO$CANVAS canvas as required.


Context depth on canvases example
Context depth on content canvases example

With PAGCON=1, DEPARTMENTS will appear as context for employees because they are related by one foreign key link. However, COMPANIES will not appear as context for EMPLOYEES because the indirect foreign key link between them consists of two foreign keys.

With PAGCON=2, however, COMPANIES also becomes a valid context for the EMPLOYEES.

Note:	Setting PAGCON to zero stops any context appearing on content canvases.


How PAGBIN controls block indentation


Minimum block width example


Block stubs - Example 1
Block stubs Example 1

You might want a form to contain five blocks:

•	Sales Orders, in the primary window

•	Order Line Items and Products, in window 1

•	Services and Client companies, in a pop-up

To ensure that users are aware of their current position with respect to the total number of blocks in the form, set PAGSTB to Y to show preceding and following blocks in the form as stubs on the content canvas.


Context depth on stacked canvases example
Context items on stacked canvases example

With POPCON=1, SALES ORDERS will appear as context for LINE ITEMS because they are related by one foreign key link. However, COMPANIES will not appear as context for LINE ITEMS because the indirect foreign key link between them consists of two foreign keys.

With POPCON=2, however, COMPANIES also becomes a valid context for the LINE ITEMS.

Note:	Setting POPCON to zero stops any context appearing on stacked canvases.


Context depth on stacked canvases

With POPCON=1, SALES ORDERS will appear as context for LINE ITEMS because they are related by one foreign key link. However, COMPANIES will not appear as context for LINE ITEMS because the indirect foreign key link between them consists of two foreign keys.

With POPCON=2, however, COMPANIES also becomes a valid context for the LINE ITEMS.

Note:	Setting POPCON to zero stops any context appearing on stacked canvases.


Stacked canvas relative block indentation example

You might want to make it easy to distinguish between the blocks on stacked canvases of a generated form. Use the POPBIN preference to specify the amount of horizontal space by which you want to indent or outdent subsequent blocks on the stacked canvas.


How POPBIN controls block indentation


Stacked canvas view example
Stacked canvas example


Spreadtable canvas example


Context area details


Context header example

The Order Line Items block contains information about line items on each sales order. The previous block in the form, the Sales Order block, is on a different canvas to the Line Items block. To show the sales order on which line items shown in the Order Line Items block are found, the block header in the example contains the following information:

•	context title 'Sales Order' (justification governed by CONTLJ, margin governed by CONTLM, spacing governed by CONTLS)

•	the Sales Order number as a context item (called CG$BCTX_SO_NUMBER)


Context decoration example

You want to give the context area a thick dashed rectangle as a border. Use the CONBWD, CONDST and CONDEC preferences respectively.


Block stubs - Example 2


Item groups example

Typically, you will use item groups to position sets of related items, such as address details.


Radio groups example
Radio group example


Image item example


Text list example


Poplist example


Combo box example


Check box example


Text item example


 Template windows example

If you want the second generated window of each form to have particular properties, create a template window called CG$WINDOW_2 with those properties.

You can also set up a 'generic' template window called CG$WINDOW to provide properties for other generated windows where there is no equivalent CG$WINDOW_n (where n is the position of the repository window definition in the sequence of windows defined in the repository).


User canvases example


Interaction of headers and footers example

The content canvas header template is merged with the generated content canvas. The stacked header floats above all content canvases within the window.


Adding space to headers and footers example


Multi-line text item example


Text list example
Text list properties example


Validating foreign key arcs


Combo box properties example


Check box properties example


Poplist properties example


Radio group appearance example


Radio group title example


Radio group margins example


Radio group orientation example


Image item file example


Block decoration example


Block layout example


Block tabulation with absolute tab stops example


Block title example


Block margins example


Block header and footer example


Block spacing example


Block scrollbar example


Item group appearance example


Item group layout example


Item group tabulation with absolute tab stops example


Item group title example


Item group margins example


Item group header and footer example


Item group inter item spacing example


Item group multi-line format example


Item prompt separator example


Item prompt arrangement example


Item prompt justification example


Item prompt spacing example


Content canvas dimensions example


Content canvas spacing example


Content canvas content example


Stacked canvas appearance example


Stacked canvas spacing example


Stacked canvas view example
Stacked canvas example


Design capture example
Design capture


Using Form Generator preferences

About Form Generator preferences

About Form Generator preference levels

Setting Form Generator preferences

Guidelines for setting Form Generator preferences

Predefined preference sets shipped with Form Generator

New Form Generator preferences in Designer/2000 Release 2.1

Form Generator preferences with changed defaults in Designer/2000 Release 2.1

Form Generator preferences removed in Designer/2000 Release 2.1

Form Generator preferences - organized by category

Form Generator preferences - organized alphabetically

Using Form Generator preferences to control...

See also

The Generator Preference Palette in the Design Editor help.


 About Form Generator preferences

Related Topics

Preferences are instructions you give to Form Generator to control the appearance and behavior of generated forms. For example, you can set the block decoration preference (BLKDEC) to determine the style of line surrounding blocks on generated forms.

Every preference has a default value or 'factory setting'. You can generate forms successfully using these factory settings. In other words, you do not have to have change any preference settings before generating forms. However, you can explicitly set preferences to generate reports that meet your particular requirements.

For general information about setting preferences, refer to The Generator Preference Palette in the Design Editor help.


 About Form Generator preference levels

Related Topics

You can set preferences at different levels. The level at which you set a preference determines what that preference setting applies to.

All preferences can be set at container (i.e. folder/application system) level. The other levels at which you can set any given preference depend on the preference itself. A full list of possible levels at which a preference might be set is given below:

•	container (i.e. folder/application system)

•	domain

•	table

•	constraint

•	column

•	module

•	module component

•	module sub-component

•	LOV component

•	constraint usage

•	item group

•	item

•	action item

During generation, Form Generator processes preferences in a strict order of precedence, starting at the most local level (i.e. item level) and ending at the most global (i.e. container level). For example, when generating a module Form Generator might encounter a preference set at both module and container level. In this situation, Form Generator uses the value of the preference set at module level because this is more local than the container level setting.

If Form Generator finds a preference set at a given level, it uses that value and does not continue to search for the same preference at a higher level. If a preference is not set at any level, Form Generator uses the factory value.

For general information about setting preferences, refer to The Generator Preference Palette in the Design Editor help.


Setting Form Generator preferences

Related Topics

To control the appearance and behavior of generated modules by changing preference settings, use the Generator Preferences Palette in the Design Editor.

For general information about setting preferences, refer to The Generator Preference Palette in the Design Editor help.


Guidelines for setting Form Generator preferences

Related Topics

When setting Form Generator preferences, you might find the following guidelines useful:

•	Set preferences at the highest applicable level.

If you want a preference to apply globally to the container (i.e. folder/application system), then set the preference at container level.

•	Use preference sets.

Preference sets enable you to maintain a group of preferences in one place. You can reference the preference set at any appropriate level in the preference hierarchy. You can create your own preference sets using the Generator Preference Palette. In addition, Form Generator is shipped with predefined preference sets.

•	Do not unintentionally override the value of a preference that you have set at one level by also setting it at a lower level.

For example, if you set a preference for the RENTALS table and for a module that uses RENTALS, the module-level preference will always override the table-level preference value. This is probably not what you intended.

For general information about setting preferences, refer to The Generator Preference Palette in the Design Editor help.


Predefined preference sets shipped with Form Generator

Related Topics

Preference sets enable you to maintain a group of preferences in one place. You can reference a preference set at any appropriate level in the preference hierarchy. You can create your own preference sets using the Generator Preference Palette. In addition, the following predefined preference set is shipped with Form Generator:

•	CG$GENERAL

For more information about preference sets, refer to the following topics in the Design Editor help system:

•	Preference Sets

•	Referencing generator preference sets

CG$GENERAL predefined preference set

Use this predefined preference set to optimize the look-and-feel of generated applications. It is often most useful to reference this preference set at container (i.e. folder/application system) level.

CG$GENERAL predefined preference set, organized alphabetically

CG$GENERAL predefined preference set, organized by category


CG$GENERAL predefined preference set, organized alphabetically

Related Topics

Preference	CG$GENERAL setting	Factory default setting
BLKDEC	NONE	RECTANGLE
BLKFTS	0.05 in	1
BLKHDS	0.05 in	1
BLKJUS	LEFT	CENTER
BLKMLL	0	1
BLKMLR	0.05 in	1
BLKSBP	RIGHT	LEFT
BLKSBS	0.05 in	1
BLKSBW	0.2 in	2
BLKSLR	0.05 in	0
BLKTFB	N	Y
BLKTLM	0.1 in	2
BLKTLP	ON DECORATION	INSIDE
BLKTLS	1	2
BUTIWD	0.25 in	3
CBXIWD	0.25 in	2
CLSIWD	0.4 in	4
CONDEC	NONE	RECTANGLE
CONMAR	0.05 in	1
CONTLM	0.1 in	2
CONTLS	1	2
GRPDEC	INSET RECTANGLE	RECTANGLE
GRPFTS	0.1 in	1
GRPHDS	0.05 in	1
GRPHIS	0.2 in	2
GRPMAR	0.1 in	1
GRPTLM	0.2 in	2
GRPTLS	1	2
GRPUTT	SD	(no value)
HELPLN	110	80
HLPFRM	ofgwfhf	ofghlpf
IMGSBH	0.2 in	1
IMGSBW	0.2 in	3
ITMIPG	0.1 in	2
ITMPIG	0.05 in	1
LOVBUT	Y	N
LOVITG	0	1
LWCFLN	MIXED	UPPER
NAVCCF	Y	N
NAVCUR	Y	N
NAVKEY	Y	N
NAVNPB	Y	N
NAVWND	Y	N
OFABCS	0.1 in	1
OFADEC	NONE	RECTANGLE
OFAFTS	0.1 in	1
OFAHDS	0	1
OFAJUS	LEFT	CENTER
OFAMAR	0.05 in	1
OFAMLL	0.05 in	1
OFARCS	0.1 in	1
OFATLM	0.2 in	2
OFATLS	1	2
OLBLST	CGUTIL$CALENDAR	(no value)
PAGCHT	50	22
PAGCON	0	1
PAGCWD	55	80
PAGFTS	0.1 in	0
PAGHDS	0.1 in	0
PAGIBS	0.1 in	0
PAGMAR	0.05 in	1
PAGTFB	N	Y
PLSIWD	0.4 in	4
POPCHT	40	11
POPHSB	N	Y
POPMAR	0	1
POPTFB	N	Y
POPVHT	40	11
RADDEC	INSET RECTANGLE	RECTANGLE
RADFTS	0.1 in	1
RADHDS	0.05 in	1
RADHIS	0.15 in	2
RADMAR	0.1 in	1
RADTLM	0.2 in	2
RADTLP	ON DECORATION	INSIDE
RADTLS	1	2
SPRBEV	NONE	LOWERED
STBDEC	NONE	RECTANGLE
STBTLM	0.2 in	2
TLSSBH	0.2 in	1
TLSSBW	0.2 in	4
TXTSBW	0.2 in	3
USECAL	Y	N


CG$GENERAL predefined preference set, organized by category

Related Topics

Note that these categories just list the preferences where the value is different for CG$GENERAL. Click here for the list of all preferences organized by category.

End user interface

Generator runtime

Layout - Block

Layout - Button

Layout - Check Box

Layout - Combo Box

Layout - Content canvas

Layout - Context

Layout - Image

Layout - Item

Layout - Item Group

Layout - Overflow

Layout - Poplist

Layout - Radio Group

Layout - Spread Tab

Layout - Stacked canvas

Layout - Stub

Layout - Text Item

Layout - Text List

List of Values

Navigation

Standards

End user interface preferences

	CG$GENERAL setting	Factory default setting
HELPLN	110	80
HLPFRM	ofgwfhf	ofghlpf
USECAL	Y	N
Generator runtime preferences

	CG$GENERAL setting	Factory default setting
LWCFLN	MIXED	UPPER
Layout - Block preferences

	CG$GENERAL setting	Factory default setting
BLKDEC	NONE	RECTANGLE
BLKFTS	0.05 in	1
BLKHDS	0.05 in	1
BLKJUS	LEFT	CENTER
BLKMLL	0	1
BLKMLR	0.05 in	1
BLKSBP	RIGHT	LEFT
BLKSBS	0.05 in	1
BLKSBW	0.2 in	2
BLKSLR	0.05 in	0
BLKTFB	N	Y
BLKTLM	0.1 in	2
BLKTLP	ON DECORATION	INSIDE
BLKTLS	1	2
Layout - Button preferences

	CG$GENERAL setting	Factory default setting
BUTIWD	0.25 in	3
Layout - Check Box preferences

	CG$GENERAL setting	Factory default setting
CBXIWD	0.25 in	2
Layout - Combo Box preferences

	CG$GENERAL setting	Factory default setting
CLSIWD	0.4 in	4
Layout - Content canvas preferences

	CG$GENERAL setting	Factory default setting
PAGCHT	50	22
PAGCON	0	1
PAGCWD	55	80
PAGFTS	0.1 in	0
PAGHDS	0.1 in	0
PAGIBS	0.1 in	0
PAGMAR	0.05 in	1
PAGTFB	N	Y
Layout - Context preferences

	CG$GENERAL setting	Factory default setting
CONDEC	NONE	RECTANGLE
CONMAR	0.05 in	1
CONTLM	0.1 in	2
CONTLS	1	2
Layout - Image preferences

	CG$GENERAL setting	Factory default setting
IMGSBH	0.2 in	1
IMGSBW	0.2 in	3
Layout - Item preferences

	CG$GENERAL setting	Factory default setting
ITMIPG	0.1 in	2
ITMPIG	0.05 in	1
Layout - Item Group preferences

	CG$GENERAL setting	Factory default setting
GRPDEC	INSET RECTANGLE	RECTANGLE
GRPFTS	0.1 in	1
GRPHDS	0.05 in	1
GRPHIS	0.2 in	2
GRPMAR	0.1 in	1
GRPTLM	0.2 in	2
GRPTLS	1	2
GRPUTT	SD	(no value)
Layout - Overflow preferences

	CG$GENERAL setting	Factory default setting
OFABCS	0.1 in	1
OFADEC	NONE	RECTANGLE
OFAFTS	0.1 in	1
OFAHDS	0	1
OFAJUS	LEFT	CENTER
OFAMAR	0.05 in	1
OFAMLL	0.05 in	1
OFARCS	0.1 in	1
OFATLM	0.2 in	2
OFATLS	1	2
Layout - Poplist preferences

	CG$GENERAL setting	Factory default setting
PLSIWD	0.4 in	4
Layout - Radio Group preferences

	CG$GENERAL setting	Factory default setting
RADDEC	INSET RECTANGLE	RECTANGLE
RADFTS	0.1 in	1
RADHDS	0.05 in	1
RADHIS	0.15 in	2
RADMAR	0.1 in	1
RADTLM	0.2 in	2
RADTLP	ON DECORATION	INSIDE
RADTLS	1	2
Layout - Spread Tab preferences

	CG$GENERAL setting	Factory default setting
SPRBEV	NONE	LOWERED
Layout - Stacked canvas preferences

	CG$GENERAL setting	Factory default setting
POPCHT	40	11
POPHSB	N	Y
POPMAR	0	1
POPTFB	N	Y
POPVHT	40	11
Layout - Stub preferences

	CG$GENERAL setting	Factory default setting
STBDEC	NONE	RECTANGLE
STBTLM	0.2 in	2
Layout - Text Item preferences

	CG$GENERAL setting	Factory default setting
TXTSBW	0.2 in	3
Layout - Text List preferences

	CG$GENERAL setting	Factory default setting
TLSSBH	0.2 in	1
TLSSBW	0.2 in	4
List of Values preferences

	CG$GENERAL setting	Factory default setting
LOVBUT	Y	N
LOVITG	0	1
Navigation preferences

	CG$GENERAL setting	Factory default setting
NAVCCF	Y	N
NAVCUR	Y	N
NAVKEY	Y	N
NAVNPB	Y	N
NAVWND	Y	N
Standards preferences

	CG$GENERAL setting	Factory default setting
OLBLST	CGUTIL$CALENDAR	(no value)


New Form Generator preferences in Designer/2000 Release 2.1

Related Topics

The following new Form Generator preferences have been introduced in Designer/2000 Release 2.1 onwards.

Name of new preference/category	Preference description
Action item preferences	A new preference category to support the generation of buttons from action items.
CANNTC	Native tab canvases
CONWIN	Generate console window
CURREC	Current record attribute property settings
Default font preferences	A new preference category to control the font properties used by Form Generator. However, instead of using these preferences, we strongly recommend you use objects in object libraries to set properties of generated objects.
ITMFPS	Item force prompt split
ITMMPW	Minimum prompt width
ITMPPE	Prompt percentage expansion
LOVMKL	Validate multiple column foreign keys with LOV (removed in 6i)
MNUDGC	Default command line to use to run a Graphics module
MNUSEC	Generate menu security
Navigation preferences	A new preference category to control navigation between items, blocks, and windows.
OLBOLD	Object library keep old preferences
OLBSOC	Object library subclass or copy
ROWLOV	Implement ROWLOV Functionality
STOOLB	The name of the object library
VLDOPT	Optimize constraint validation


Form Generator preferences with changed defaults in Designer/2000 Release 2.1

Related Topics

The default values of the following Form Generator preferences have changed in Designer/2000 Release 2.1 onwards.

When upgrading from versions of Oracle Designer prior to Release 2.1, note that any of these preferences that was not explicitly set to its default value will be set to its new default value.

Preference name	Default value in earlier releases	Default value in Designer/2000 R2.1
CALLFM	Yes	No
GRPTLP	INSIDE	INSIDE
HLPFRM	ofg4hlpf	ofghlpf
HLPTYP	HELPFORM	MSHELP
ITMDPS	:	(no value)
LOVBAL	C	CENTER
MAXPLS	73	240
MNUDRC	RUN_PRODUCT ( REPORTS, '<MODULE>',SYNCHRONOUS, RUNTIME,FILESYSTEM,NULL, NULL);	RUN_PRODUCT ( REPORTS, '<MODULE>',SYNCHRONOUS, RUNTIME,FILESYSTEM,'','');
MNUDSC	SQLPLUS <UN>/<PW> @<MODULE>	HOST('SQLPLUS <UN>/<PW> @<MODULE>');
TXTDDF	(no value)	DD-MON-RR
TXTDTF	(no value)	DD-MM-RRRR HH24:MI
STFFMB	ofg4pc1t.fmb	ofgpc1t.fmb


Form Generator preferences removed in Designer/2000 Release 2.1

Related Topics

The following Form Generator preferences have been removed in Designer/2000 Release 2.1 onwards.

Name of Removed Preference	Reason for Removal
ADNTRT	Functionality replaced by the Add Notes check box on the Forms Design Capture Options dialog box
AUTOQY	Preference renamed USEPKR (and default changed to NONE)
BLKNAV	Superseded by new navigation functionality
BLKNME	In Release 2 onwards, Form Generator uses module component names to name generated blocks
CCEWN	Superseded by Enforce when Null property of check constraints
CCTABL	Superseded by Scope of Code Control Table option on General Generator Options dialog
CGTBLS	Superseded by option on General Generator Options dialog
DVTABL	Superseded by Scope of Reference Code Table option on General Generator Options dialog
DVDSPM	Functionality replaced by the Show Meaning item property
FLDNAV	Superseded by new navigation functionality
GRPENB	Functionality replaced by capability to define item groups graphically in the Design Editor
LAYCLP	Functionality replaced by capability to set the Fill Pattern property of graphic objects/text
MNUCDR	Functionality no longer required because MNUDRN is used to determine whether to assign a default role to menu items
MNUCMN	Functionality no longer required because Repository module Short Name/Implementation Name properties meet the uniqueness requirements necessary for menu generation
MNUDBG	Functionality no longer supported by Oracle Forms
MNUOSC	Functionality no longer supported by Oracle Forms
MNUPFX	Functionality no longer required because the MNUUMN preference has been removed
MNUSAS	Functionality replaced by new preference MNUSEC
MNUUMN	Functionality no longer required because Repository module Short Name/Implementation Name properties meet the uniqueness requirements necessary for menu generation
MODLCK	Functionality replaced by the Prevent Generation? module property
MSGFLP	Functionality replaced by MSGSFT
NPNAVB	Preference renamed NAVNPB
PHDMSK	Functionality replaced by capability to set format mask of CG$DT generator item in template form
REGXXX	Regeneration functionality has been replaced by new Form Generator functionality to capture application logic and to generate preserving layout. For more information refer to Generating generated forms again.
REWHFD	WHERE clauses are always captured and formatted correctly. For more information, refer to Repository table usage properties set during design capture.
SPINCR	Superseded by option on General Generator Options dialog
SYDUAL	Superseded by Name of Dual Table field on General Generator Options dialog
TEMSIZ	Superseded by a new process for obtaining window, content canvas, and stacked canvas size and/or dimensions
VBXBEV, VBXDHT, VBXDWD	Preferences removed because 16-bit VBX functionality is not supported in 32-bit Oracle Forms applications
WHTIME	Superseded by Record Time on Change History Columns checkbox on General Generator Options dialog
WINBOR	Not required in Oracle Forms 5.0 onwards.
WINUSR	Functionality replaced by ability to create a Repository window definition called ROOT_WINDOW


Form Generator preferences - organized by category

Related Topics

Preference Category	Use preferences in this category to:
Action item preferences	control action items
Coding style preferences	control style of generated code
Commenting preferences	control level of commenting added to forms, blocks, fields and triggers
DBA preferences	perform database administration type tasks (e.g. scope of reference tables)
Descriptive flexfield preferences	generate Oracle Applications descriptive flexfields
End user interface preferences	control generated form behavior when run by an end user
Environment preferences	develop a system for an environment other than character mode
Form/library attachment preferences	specify the name of a library module to attach to the generated form (in addition to both a generated module library, and any library modules attached via a module network or template form)
Form/menu attachment preferences	control attachment of menus to forms where menu has not been generated during form generation
Generate options preferences	control content of generated code
Generator runtime preferences	control Generator behavior during generation process
Journaling preferences	define generated code to record changes to data
Layout preferences	control generation of clear patterns for graphic objects/text, and line widths
Layout preferences - block	control properties of blocks
Layout preferences - button	control properties of buttons
Layout preferences - canvas	control maximum canvas height and generation of native tab canvases
Layout preferences - check box	control properties of check box items
Layout preferences - combo box	control properties of combo boxes
Layout preferences - content canvas	control layout and appearance of content canvases, and also values/messages to use for query-mode field
Layout preferences - context	control properties of block context areas
Layout preferences - custom item	control properties of custom items (i.e. OLE2 containers)
Layout preferences - default font	font properties (if not set in an object library or template)
Layout preferences - image	control properties of image items
Layout preferences - item	control layout and appearance of items
Layout preferences - item group	control layout and appearance of item groups
Layout preferences - multi-region	control appearance of multi-region blocks
Layout preferences - overflow	control appearance of overflow areas
Layout preferences - pop list	control properties of pop lists
Layout preferences - radio group	control properties of radio group
Layout preferences - single area	control creation of single areas for display of large two-dimensional items
Layout preferences - spreadtable	control layout and appearance of spreadtable canvases (created when Overflow Style set to Spreadtable)
Layout preferences - stacked canvas	control layout and appearance of generated stacked canvases
Layout preferences - stub	control creation and properties of block stubs
Layout preferences - text item	control properties of text items
Layout preferences - text list	control properties of text lists
Layout preferences - window	control properties of generated windows
List of Values preferences	control implementation of validation/lists of values for columns with known values/ranges
Menu preferences - end user	specify basic end user facilities of generated menus
Menu preferences - generation options	control generation of menus
Menu preferences - roles	control generation of roles
Navigation preferences	control navigation between items, blocks and windows
Navigator preferences	control appearance and behavior of navigator style forms and navigator style items
Report invocation preferences	Specify the report server, path, destination type, destination name, destination format and file suffix to use when invoking a report from a menu or form object
Standards preferences	specify template form, template menu and object library to use during generation
Web deployment preferences	set options for running generated Oracle Forms applications as WebForms applications


Using Form Generator preferences to control...

Related Topics

Block appearance

Block arrangement

Block context area appearance

Block context area titles

Block context area spacing

Block context area contents

Block titles

Block spacing

Block scrollbars

Check box layout

Combo box layout

Image item files

Image item scrollbars

Item prompt separators

Item prompt arrangement

Item prompt justification

Item prompt spacing

Item group appearance

Item group arrangement

Item group titles

Item group spacing

Overflow area appearance

Overflow area arrangement

Overflow area titles

Overflow area spacing

Overflow area contents

Content canvas dimensions

Content canvas spacing

Content canvas contents

Poplist layout

Stacked canvas appearance

Stacked canvas arrangement

Stacked canvas spacing

Stacked canvas views

Radio group appearance

Radio group titles

Radio group margins

Radio group arrangement

Block stub appearance

Block stub titles

Block stub spacing

Text item appearance

Text item length

Text item format

Multi-line text items

Text list layout

Navigator appearance


   Form Generator preferences - organized alphabetically

A

AIBBWD	Action item button width
AIBHDS	Action item button header separator
AIBHIS	Action item button horizontal inter-item spacing
AIBORD	Action item button bar order
ALKPLN	Accept joins to lookup tables
ANOVRW	Overwrite existing form definition?
APARLN	Accept joins to parent tables
AUTOHP	Set automatic hint for all fields (obsolete)
B

BLKBWD	Block brush width
BLKCMT	Block-level comment format mask
BLKDEC	Block decoration
BLKDST	Block dash style
BLKFTS	Block footer separator
BLKHDS	Block header separator
BLKJUS	Block justification
BLKLYS	Block layout style
BLKMAR	Block margin
BLKMLF	Block multi-line format
BLKMLL	Block multi-line line separator
BLKMLR	Block multi-line row separator
BLKOVF	Default block overflow action
BLKSBP	Block scrollbar position
BLKSBS	Block scrollbar separator
BLKSBW	Block scrollbar width (obsolete)
BLKSLR	Block single-line row separator
BLKTAB	Block tabulation table
BLKTFB	Title first block of form
BLKTGS	Block-level trigger execution style
BLKTLJ	Block title justification
BLKTLM	Block title margin
BLKTLP	Block title position
BLKTLS	Block title spacing
BLKUTT	Use block tabulation table
BLKVFL	Block vertical fill (try and use space in 2 dims)
BLKVSB	Block vertical scrollbar (obsolete)
BSCHMD	Allow user to toggle block synchronization mode
BSCSCP	Block synchronization - coordination scope
BSMOFF	Type of block synchronization when OFF
BSMON	Type of block synchronization when ON
BSQENP	Query block on entry to new canvas
BUTIWD	Button indicator width
BUTMAX	Maximum number of buttons within a radio group
BUTPEX	Extra expansion for button
C

CALLFM	Form calls form
CANMHT	Canvas maximum height
CANNTC	Native tab canvases
CBXALM	Allow label above check indicator in a multi-row block.
CBXIWD	Check box indicator width
CBWPEX	Extra expansion for check box
CLSIWD	Combo box indicator width
CLSMAX	Maximum number of items in a combo box
CMTFMT	Level of commenting in generated form
COLSEC	Set the Column Security Flag on block (obsolete)
CONAME	Company name
CONBWD	Context brush width
CONDEC	Context decoration
CONDFT	Context uses default context items
CONDST	Context dash style
CONFTS	Context footer separator
CONGRP	Context item group inclusion
CONHDS	Context header separator
CONMAR	Context margin
CONMLL	Context multi-line row line separator
CONTLJ	Context title justification
CONTLM	Context title margin
CONTLS	Context title spacing
CONWIN	Generate console window
CURREC	Current record attribute property settings
D

DELWRN	Warn user if delete will cascade to other tables
DFAPPL	Application short name
DFDATE	VDATE definition
DFDESC	Generate description field
DFFNAM	Field name
DFLOCK	LOCK_FLAG definition
DFNAME	Name
DFPICK	AUTOPICK definition
DFREAD	READ_ONLY definition
DFSIDS	Generate segment IDs field
DFTCED	Editor to use for CHAR text items
DFTITL	Title definition
DFTLED	Editor to use for LONG/LOB text items
DFUSDB	USEDBFLDS definition
DMLRET	Set DML returning value
DVHILO	Implement single range using field attributes?
DVHLVF	Name of form to display valid ranges
DVLOVF	Name of form to display valid values
E

EDITPP	Automatically invoke field editor
F

FKLOVT	For LOV on foreign key, use native Forms LOV
FLDCMT	Field-level comment format mask
FMNDMA	Name of menu module if not implicit menu generation
FMNDMN	Name of the start menu if not implicit menu generation
FMNDMS	Display menu on startup
FMNDSR	Menu security role to use when running the form
FMNDUF	Use file flag if not implicit menu generation
FNTNAM	Default font name
FNTSIZ	Default font size
FNTSPC	Default font spacing
FNTSTY	Default font style
FNTWGT	Default font weight
FRMCMT	Form-level comment format mask
G

GENNAV	Generate code to navigate to first block of form?
GLNCON	Global variable naming convention
GRPBWD	Item group brush width
GRPDEC	Item group decoration
GRPDST	Item group dash style
GRPFTS	Item group footer separator
GRPHDS	Item group header separator
GRPHIS	Item group horizontal inter-item spacing
GRPMAR	Item group margin
GRPMLF	Item group multi-line format
GRPTAB	Group tabulation table
GRPTLJ	Item group title justification
GRPTLM	Item group title margin
GRPTLP	Item group title position
GRPTLS	Item group title spacing
GRPUTT	Use group tabulation table
GRPVIS	Item group vertical inter-item spacing
H

HELPLN	Maximum hint text length
HLPFRM	Name of form that displays user help information
HLPTGT	Target window or frame for generated HTML-based help
HLPTYP	Type of Help System used
HLPURL	URL path for HTML-based help package
HPTABL	Scope of Help Text Table
I

IGNFWD	Ignore first word when generating mnemonic
IMGBEV	Image bevel (obsolete)
IMGCMP	Image compression (obsolete)
IMGDFI	Display image filename item
IMGDHT	Image default height (obsolete)
IMGDWD	Image default width (obsolete)
IMGFIW	Image filename item width
IMGHSB	Image horizontal scrollbar (obsolete)
IMGIFP	Image file prefix
IMGQLT	Image quality (obsolete)
IMGSBH	Image item, horizontal scrollbar width
IMGSBW	Image item, vertical scrollbar width
IMGSZS	Image sizing style (obsolete)
IMGVSB	Image vertical scrollbars (obsolete)
ITMASP	Allow split prompts
ITMBIF	Base item sizes on the font
ITMDPS	Item default prompt separator
ITMFPS	Marker to force prompt splitting
ITMIPG	Item/prompt gap
ITMIPS	Display-only item prompt separator
ITMMPS	Mandatory item prompt separator
ITMMPW	Minimum permitted width
ITMODD	Override display dimensions
ITMOPS	Optional item prompt separator
ITMPAS	Allow prompts above items in a single-row block
ITMPIG	Prompt/item gap
ITMPJL	Prompt justification above a left-justified item
ITMPJR	Prompt justification above a right-justified item
ITMPLM	Allow prompts left of items in a multi-row block
ITMPPE	Permitted percentage expansion
ITMPPM	Item post-prompt marker
ITMSFJ	Justification of single item lines when BLKLYS is FILL
ITMSPM	Item split-prompt marker
ITMTGS	Item-level trigger execution style
ITMTIP	Provide tooltips for items
J

JNNTMD	In which operations is note field mandatory
JNNTRQ	Which operations allow note field entry
JNSSID	Record userenv('sessionid') on journal rows?
K

L

LAYFRA	Use frames instead of graphic objects/text
LAYLWD	Line width
LOVACT	Abbreviation column title for LOV
LOVBAL	List of values button alignment
LOVBUT	Use a button to indicate available list of values
LOVDAB	Display domain abbreviation in LOV
LOVDCT	Display column titles in LOV
LOVDMN	Display domain meaning in LOV
LOVHCT	High Value column title for LOV
LOVHPN	Horizontal LOV position
LOVITG	List of values item gap
LOVLCT	Low Value column title for LOV
LOVMCT	Meaning column title for LOV
LOVMHT	List of values height
LOVMWD	Maximum width of LOV
LOVNAV	List of values button navigation (obsolete)
LOVVAL	Validate item in LOV
LOVVPN	Vertical LOV position
LOVXCO	List of values - X coordinate
LOVYCO	List of values - Y coordinate
LWCFLN	Filenames in lowercase, uppercase, or mixed case
M

MAXPLS	Maximum length of a generated PL/SQL line
MNUADR	Grant all roles access to generated template items with no security
MNUDFC	Default command line to use to call a form
MNUDGC	Default command line to use to run a Graphics module
MNUDHC	Default command line to use to invoke a HOST command
MNUDIM	Delete intermediate menu
MNUDNP	Display dimmed, inaccessible items
MNUDRC	Default command line to use to run a report
MNUDRN	Name for the default role
MNUDSC	Default command line to use to invoke SQL*Plus
MNUEUS	Enable Use security flag
MNUEXI	Include Exit option on generated menus
MNUPFL	Parameter must be fixed length
MNUPRQ	Parameter is required and must be entered
MNUPSC	Parameter is secure, not echoed to screen
MNUSEC	Generate menu security
MNUSGA	Sequence generated menu items after template items
MNUSKY	Include Show Keys option on generated menus
MNUTOF	All menus generated as tear off
MNUUCL	Use command line from module definition
MNUULC	Unique letter or capital letter as menu access key
MNUUPS	Generate unique parameter strings
MODLIB	Module specific library attachment
MOUSEN	Mouse navigation limit
MRBMCR	Multi-region block maintain current region
MRBVSB	Multi-region block vertical scrollbar
MSGSFT	Package used for messaging
N

NATLNG	National language for end-user text
NAVBWN	Navigation bound by window
NAVCCF	Close child forms
NAVCRE	Move at end of a change record block
NAVCRS	Move at start of a change record block
NAVCUR	Navigation cursor management
NAVKEY	Mnemonic access key generation
NAVNPB	Navigation next/previous block
NAVPAG	Restrict item navigation to items on the current content canvas
NAVRBN	Restrict block navigation
NAVWND	Navigation window management
NAVWRP	Navigation wrap
NIVVKC	NULL is a valid value in key constraints
NVRBKI	Navigator block node icon filename
NVRBLB	Navigator block node label
NVRLSP	Navigator record node context item label separator
NVRNCI	Navigator null context item
NVRRCI	Navigator record node icon filename
NVRWAS	Navigator generated with auto-select
NXTKEY	KEY-NXTKEY functionality required?
O

OFABCS	Overflow area below, content separator
OFABWD	Overflow area brush width
OFADEC	Overflow area decoration
OFADFT	Overflow area table uses default context items
OFADST	Overflow area dash style
OFAFTS	Overflow area footer separator
OFAGRP	Overflow area context item group inclusion
OFAHDS	Overflow area header separator
OFAJUS	Overflow area justification
OFALIM	Limit rows within overflow area on right
OFAMAR	Overflow area margin
OFAMLL	Overflow area multi-line line separator
OFAPCN	Overflow area percentage of available width reserved for context
OFARCS	Overflow area right, content separator
OFATLJ	Overflow area title justification
OFATLM	Overflow area title margin
OFATLS	Overflow area title spacing
OFATTL	Overflow area title
OFFFLD	OFF message in query-mode field
OFFMES	Auto-query mode OFF message
OLBLST	List of module level source objects in object libraries
OLBOLD	Object library keep old preferences
OLBSOC	Object library subclass or copy
OLEBEV	OLE container custom item bevel
OLEDHT	OLE container custom item default height
OLEDWD	OLE container custom item default width
ONFLD	ON message in query-mode field
ONMES	Auto-query mode ON message
OTBAEN	Order template blocks at end
OTCAEN	Order template canvases at end
P

PAGBIN	Content canvas relative block indentation
PAGCHT	Content canvas height
PAGCON	Content canvas context depth
PAGCWD	Content canvas width
PAGFTS	Content canvas footer separator
PAGHDS	Content canvas header separator
PAGIBS	Content canvas inter-block separator
PAGMAR	Content canvas margin
PAGSTB	Generate block stubs on pages
PAGTFB	Title first block on page
PARAMP	Generated PL/SQL parameter prefix
PGULIB	Write generated program units to attached library
PLSFCS	Use uppercase for PL/SQL packaged procedures
PLSIWD	Pop list indicator width
PLSMAX	Maximum number of items in a pop list
PLSPEX	Extra expansion for pop list
POPBEV	Stacked canvas bevel
POPBIN	Stacked canvas relative block indentation
POPCHT	Stacked canvas height
POPCON	Stacked canvas context depth
POPCWD	Stacked canvas width
POPFTS	Stacked canvas footer separator
POPHDS	Stacked canvas header separator
POPHSB	Stacked canvas horizontal scrollbar
POPIBS	Stacked canvas inter-block separator
POPMAR	Stacked canvas margin
POPSTB	Generate block stubs on stacked canvases
POPTFB	Title first block on stacked canvas
POPVHT	Stacked canvas view height
POPVSB	Stacked canvas vertical scrollbar
POPVWD	Stacked canvas view width
POPVXP	Stacked canvas view X position
POPVYP	Stacked canvas view Y position
Q

R

RADBWD	Radio group brush width
RADDEC	Radio group decoration
RADDST	Radio group dash style
RADFTS	Radio group footer separator
RADHDS	Radio group header separator
RADHIS	Radio group horizontal inter-item spacing
RADMAR	Radio group margin
RADMLF	Radio group multi-line format
RADTLJ	Radio group title justification
RADTLM	Radio group title margin
RADTLP	Radio group title position
RADTLS	Radio group title spacing
RADVIS	Radio group vertical inter-item spacing
REPCHS	Replace characters in trigger/hint line text
RPTSVR	Report server
RPTPTH	Report path
RPTDTY	Report destination type
RPTDNM	Report destination name
RPTFMT	Report destination format
RPTSUF	Report file suffix
ROWLOV	Implement row LOV functionality
S

SARCHT	Single area cutoff height
SARENB	Enable creation of single areas for multi-row blocks
SARLIM	Limit rows within highest single area
SCTFMB	Form containing objects to ignore on capture
SELSTL	How PL/SQL SELECT statements are coded
SEQCMT	Apply sequence values at commit time?
SPRBEV	Spreadtable bevel
SPRHSB	Spreadtable horizontal scrollbar
SPRSBH	Spreadtable horizontal scrollbar height
SQLFCS	Use uppercase for SQL functions?
SQLKCS	Use uppercase for SQL keywords?
STBBWD	Stub brush width
STBDEC	Stub decoration
STBDST	Stub dash style
STBFTS	Stub footer separator
STBHDS	Stub header separator
STBTLJ	Stub title justification
STBTLM	Stub title margin
STBTLS	Stub title spacing
STFFMB	The filename of the template form
STFOWN	Owner of the template form
STMMMB	The name of the menu template
STMOWN	Owner of the template menu
STOOLB	The name of the object library
T

TABOWN	Table owner for use in SQL
TLSMAX	Maximum number of items in a text list
TLSSBH	Text list horizontal scrollbar height
TLSSBW	Text list vertical scrollbar width
TXTBEV	Text item bevel (obsolete)
TXTDCL	Text item default character length
TXTDDF	Text item default date format
TXTDDL	Text item default date length
TXTDHL	Text item default time (HH:MM:SS) length
TXTDLL	Text item default LONG/LOB length
TXTDMF	Text item default MONEY format
TXTDNF	Text item default NUMBER format
TXTDNL	Text item default numeric length
TXTDTF	Text item default DATETIME format
TXTDTL	Text item default DATETIME length
TXTMLI	Multi-line text items
TXTSBW	Multi-line text item, vertical scrollbar width
TXTSCA	Scale factor for data, number and upper case text items
TXTVSB	Scrollbar for multi-line text items
U

UENAME	Name of user exit to call from commit triggers
USECAL	Add call to calendar window for date fields
USEPKR	Use primary key recall
V

VLDOPT	Optimize constraint validation
VLDTFK	When should foreign keys be validated?
VLDTPK	When should primary keys be validated?
VLDTTC	When should table-level check constraints be validated?
VLDTUK	When should unique keys be validated?
VLDUNT	Validation unit
W

WEBCOL	Preview mode color scheme
WEBHGT	Preview window height
WEBHTM	User-specified HTML file
WEBLAF	Preview mode look-and-feel style
WEBPTH	Server form location path
WEBURL	Server base URL
WEBWID	Preview window width
WEDI	Where to enforce data integrity
WINCLO	Window closeable (obsolete)
WINDLG	Window is a dialog (obsolete)
WINFHT	Window frame height (obsolete)
WINFIX	Window fixed size (obsolete)
WINFWD	Window frame width (obsolete)
WINFXP	Window frame X position (obsolete)
WINFYP	Window frame Y position (obsolete)
WINHSB	Window horizontal scrollbar (obsolete)
WINICN	Window icon name (obsolete)
WINICO	Window iconizable (obsolete)
WINICT	Window icon title (obsolete)
WINMOV	Window movable (obsolete)
WINSCR	Generate scrolling windows
WINVSB	Window vertical scrollbar (obsolete)
WINZOO	Window zoomable (obsolete)
X Y Z


Indicates whether this preference can be set at container (i.e. folder/application system) level. Click here for more information.


Indicates whether this preference can be set at domain level. Click here for more information.


Indicates whether this preference can be set at table level. Click here for more information.


Indicates whether this preference can be set at constraint level. Click here for more information.


Indicates whether this preference can be set at column level. Click here for more information.


Indicates whether this preference can be set at module level. Click here for more information.


Indicates whether this preference can be set at module component level. Click here for more information.


Indicates whether this preference can be set at module sub-component level. Click here for more information.


Indicates whether this preference can be set at LOV level. Click here for more information.


Indicates whether this preference can be set at constraint usage level. Click here for more information.


Indicates whether this preference can be set at item group level. Click here for more information.


Indicates whether this preference can be set at item level. Click here for more information.


Indicates whether this preference can be set at action item level. Click here for more information.


 Action item preferences

Related Topics

These preferences enable you to control the appearance and behavior of action items.

Name	Description	Levels at which preferences can be set
		Cont	Dom	Tab	Con	Col	Mod	MC	Sub	LOV	CnU	ItG	Itm	Act
AIBBWD	Action item button width	X					X	X	X
AIBHDS	Action item button header separator	X					X	X	X
AIBHIS	Action item button horizontal inter-item spacing	X					X	X	X
AIBORD	Action item button bar order	X					X	X	X


 Action item button width (AIBBWD)

Related Topics

Default:	LONGEST TEXT
Values:	(a number), up to 15 characters
Levels:	Container, Module, Module Component, Module Sub-component
Category:	Action item

Use this preference to specify the width of buttons generated from action items. Either specify one of the options below or enter a numeric value for the width.

(a number)	All buttons will be the specified width in characters (must be greater than zero)
LONGEST TEXT	All buttons are the size of the button with the longest text on it.
INDIVIDUAL TEXT	Each button is just big enough to hold its own text.
NONE	Width specified by each repository action item's Button Width property


 Action item button header separator (AIBHDS)

Related Topics

Default:	1
Values:	Up to 30 characters
Levels:	Container, Module, Module Component, Module Sub-component
Category:	Action item

Use this preference to specify the amount of vertical space to leave between the last line of generated items at the bottom of a block (or layout region in a multi-region block) and a button bar containing buttons generated from module component level action items.

The default units are character cells (i.e. if you do not specify a unit, Form Generator uses character cells). However, you can specify an alternative unit by appending a space and one of the following abbreviations:

Abbreviation	Unit	Example	Max No of decimal places
in	real inches	0.7 in	three (i.e. 0.001, but not 0.0001)
cm	real centimeters	4.56 cm	three (i.e. 0.001, but not 0.0001)
pixel	real pixels	120 pixel	none
point	real points	30 point	one (i.e. 0.1, but not 0.01)

During generation, Form Generator converts the value you specify into the equivalent units in the generated form. For more information about real units, refer to Notes on coordinate systems and Form Generator.


 Action item button horizontal inter-item spacing (AIBHIS)

Related Topics

Default:	2
Values:	Up to 30 characters
Levels:	Container, Module, Module Component, Module Sub-component
Category:	Action item

Use this preference to specify the horizontal space between action items generated as buttons.

The default units are character cells (i.e. if you do not specify a unit, Form Generator uses character cells). However, you can specify an alternative unit by appending a space and one of the following abbreviations:

Abbreviation	Unit	Example	Max No of decimal places
in	real inches	0.7 in	three (i.e. 0.001, but not 0.0001)
cm	real centimeters	4.56 cm	three (i.e. 0.001, but not 0.0001)
pixel	real pixels	120 pixel	none
point	real points	30 point	one (i.e. 0.1, but not 0.01)

During generation, Form Generator converts the value you specify into the equivalent units in the generated form. For more information about real units, refer to Notes on coordinate systems and Form Generator.


 Action item button bar order (AIBORD)

Related Topics

Default:	LEFT TO RIGHT
Values:	LEFT TO RIGHT, RIGHT TO LEFT
Levels:	Container, Module, Module Component, Module Sub-component
Category:	Action item

Use this preference to specify the direction in which action item buttons are laid out on a button bar. The order of the buttons is determined by the order in which they are defined in the diagrammer.


 Coding style preferences

Related Topics

These preferences enable you to control the style of generated code to aid conformance to any project standards that may be in force.

Name	Description	Levels at which preferences can be set
		Cont	Dom	Tab	Con	Col	Mod	MC	Sub	LOV	CnU	ItG	Itm	Act
IGNFWD	Ignore first word when generating mnemonic	X					X
MAXPLS	Maximum length of a generated PL/SQL line	X					X
PGULIB	Write generated program units to attached library	X					X
PLSFCS	Use uppercase for PL/SQL packaged procedures	X					X
SELSTL	How PL/SQL SELECT statements are coded	X					X
SQLFCS	Use uppercase for SQL functions?	X					X
SQLKCS	Use uppercase for SQL keywords?	X					X


 Ignore first word when generating mnemonic (IGNFWD)

Related Topics

Default:	No
Values:	Yes, No
Levels:	Container, Module
Category:	Coding style

If a table defined in the repository does not have a table alias, Form Generator creates a mnemonic for the table from the table name.

The table alias is used in generated SQL statements as the name of the block based on the table.

Use this preference to specify whether the first part of the table name is used to create the mnemonic.

If this preference is set to No, a table is given a mnemonic that includes the first part of the table name. For example, the PER_EMPLOYMENT_HISTORY table is given the mnemonic PEH (i.e. PER_EMPLOYMENT_HISTORY).

If this preference is set to Yes, the PER_EMPLOYMENT_HISTORY table would be given the mnemonic EH (i.e. PER_EMPLOYMENT_HISTORY).

If the table name is a single word, this preference is ignored.


 Maximum length of a generated PL/SQL line (MAXPLS)

Related Topics

Default:	240
Values:	73 to 240
Levels:	Container, Module
Category:	Coding style

Use this preference to specify the maximum length of:

•	lines of generated PL/SQL code

•	lines of text recorded as comments for generated modules, blocks, and items (as specified by FRMCMT, BLKCMT, and FLDCMT)

If the value specified by this preference is exceeded, Form Generator inserts a new line character and the generated code or text wraps onto the next line.


 Write generated program units to attached library (PGULIB)

Related Topics

Default:	No
Values:	Yes, No
Levels:	Container, Module
Category:	Coding style

Use this preference to specify that Form Generator is to create a 'generated module library' (i.e. an Oracle Forms library module) automatically during generation and attach it to the generated form. Placing program units in a separate library can significantly reduce the runtime memory requirements of the generated form because libraries support 'dynamic loading' (i.e. a library's program units are loaded into an application only when needed).

If you set this preference to Yes:

•	Form Generator places generated program units, user-defined program units, and user-modified generated program units in a generated module library attached to the generated form instead of placing the program units in the generated form itself

•	if any library modules are attached to the generated form, Form Generator attaches these to the generated module library as well

Form Generator saves the generated module library binary and executable files:

•	to the same locations as the generated form binary and executable

•	with the same name as the generated form with an appropriate extension (if a library with this name is already attached to the generated form, Form Generator adds a number to the generated module library name to make the name unique)

If you set this preference to No, Form Generator places generated program units in the generated form.

Notes

A generated module library is not represented by a repository module definition.

If you set PGULIB to Yes, it might take Form Generator longer to generate forms.

Use LWCFLN to specify a case (i.e. upper case, lower case, or mixed case) for the name of the generated library module.


 Use uppercase for PL/SQL packaged procedures (PLSFCS)

Related Topics

Default:	No
Values:	Yes, No
Levels:	Container, Module
Category:	Coding style

Use this preference to specify whether PL/SQL packaged procedure names that are used in the generated form (or generated module library) are in uppercase or lowercase.

If this preference is set to Yes, all PL/SQL packaged procedure names are in uppercase.

If this preference is set to No, PL/SQL packaged procedure names are in lowercase.

Related preferences

SQLFCS

SQLKCS


 How PL/SQL SELECT statements are coded (SELSTL)

Related Topics

Default:	EXPLICIT
Values:	EXPLICIT, IMPLICIT
Levels:	Container, Module
Category:	Coding Style

Use this preference to specify whether PL/SQL SELECT statements are coded using implicit or explicit cursors.

The options are:

EXPLICIT	SELECT statements are coded using explicit cursors.
IMPLICIT	SELECT statements are coded using implicit cursors.


 Use uppercase for SQL functions (SQLFCS)

Related Topics

Default:	No
Values:	Yes, No
Levels:	Container, Module
Category:	Coding style

Use this preference to specify whether SQL function names used in the generated form (or generated module library) are in uppercase or lowercase.

If this preference is set to Yes, all SQL function names are in uppercase.

If this preference is set to No, all SQL function names are in lowercase.

Related preferences

SQLKCS


 Use uppercase for SQL keywords (SQLKCS)

Related Topics

Default:	Yes
Values:	Yes, No
Levels:	Container, Module
Category:	Coding style

Use this preference to specify whether the SQL keywords used in the generated form (or generated module library) are in uppercase or lowercase.

If this preference is set to Yes, SQL keywords are displayed in uppercase.

If this preference is set to No, SQL keywords are displayed in lowercase.

Related preferences

SQLFCS


 Commenting preferences

Related Topics

These preferences enable you to control the level of commenting that is added to the generated form itself and to generated blocks, fields, and triggers.

Note:	Form Generator also adds comments for its own use that are not affected by these preference settings.

Name	Description	Levels at which preferences can be set
		Cont	Dom	Tab	Con	Col	Mod	MC	Sub	LOV	CnU	ItG	Itm	Act
BLKCMT	Block-level comment format mask	X					X
CMTFMT	Level of commenting in generated form	X					X
FLDCMT	Field-level comment format mask	X					X
FRMCMT	Form-level comment format mask	X					X


 Block-level comment format mask (BLKCMT)

Related Topics

Default:	NM.TC.UC.TU.CU.ID.TL.BL.JC
Values:	(no value), up to 35 characters
Levels:	Container, Module
Category:	Commenting

Use this preference to specify the contents of block-level comments generated for each data block.

The value for this preference consists of a number of two-character codes separated by full stops.

The codes are :

NM	Module component name (and version, if a reusable module component)
TN	Base table name and version
TC	Repository table definition Comment property
UC	Table usage Comment property
TU	Operations allowed on the base table by the module component (in the case of multi-region blocks, only the primary module component)
CU	Repository items in the module component, and their allowed operations (in the case of multi-region blocks, all the items in both the primary module component and its module sub-components)
TD	Repository table definition Description property
EI	Entities implemented by the repository table definition
ID	Description property of module component. In the case of multi-region blocks, only the primary module component
TL	Create top separator line of made up of  the character '*'
JC	Join condition
BL	Create bottom separator line made up of  the character '*'
(no value)	no comments

Form Generator creates the appropriate comments for the value set for this preference.

The header for a particular comment type is not displayed if the comment has not been defined in the repository. For example, the header for a table comment is not displayed if there is no table comment in the repository.

If the text generated as comments exceeds the value specified by MAXPLS, Form Generator inserts a new line character and the generated text wraps onto the next line.

Related preferences

FRMCMT

FLDCMT

CMTFMT


 Level of commenting to be generated (CMTFMT)

Related Topics

Default:	FULL
Values:	BRIEF, FULL, NONE
Levels:	Container, Module
Category:	Commenting

Use this preference to specify the type of comments that are created for triggers and procedures.

The options are:

FULL  (F)	Full commenting is included.
BRIEF (B)	Only a brief (one-line) comment is included.
NONE (N)	No comments are included for triggers and procedures.

If the text generated as comments exceeds the value specified by MAXPLS, Form Generator inserts a new line character and the generated text wraps onto the next line.

Related preferences

FRMCMT

BLKCMT

FLDCMT


Format mask for field level comments (FLDCMT)
 Format mask for field-level comments (FLDCMT)

Related Topics

Default:	NM.CC.CD.UC.ID.TL.BL
Values:	(no value), up to 23 characters
Levels:	Container, Module
Category:	Commenting

Use this preferences to specify the contents of generated field-level comments displayed for each generated field.

The value of this preference is one or more two-character codes separated by full stops.

The codes are:

NM	Generated item name
CC	Repository column definition Comment property
CD	Repository column definition Description property
UC	Repository item Comment property
ID	Repository item Description property
TL	Create top separator line made up of '*' characters
BL	Create bottom separator line made up of '*' characters
(no value)	no comments

Appropriate comments are created for each code. The header for a particular comment type is not displayed if there is no information to display. For example, the heading for column description is not displayed if no column description exists in the repository. Invalid codes are ignored.

Note that the following are always included in generated field-level comments:

•	item name

•	base table name (bound items only)

•	base table alias (bound items only)

If the text generated as comments exceeds the value specified by MAXPLS, Form Generator inserts a new line character and the generated text wraps onto the next line.

Related preferences

BLKCMT

FRMCMT

CMTFMT


Format mask for form level comments (FRMCMT)
 Format mask for form-level comments (FRMCMT)

Related Topics

Default:	NM.MD.AP.PP.DS.NT.BF.TU.RI.TL.BL.WC
Values:	(no value), up to 41 characters
Levels:	Container, Module
Category:	Commenting

Use this preference to specify the contents of the generated form-level comments for the form.

The value for this preference is one or more two character codes separated by full stops.

The codes are:

NM	Repository module Short Name and version
MD	Modified section
AP	Workarea name and container path
PP	Module purpose
DS	Module description
NT	Module notes
BF	Business functions implemented by the module
TU	Module component table usages
CU	Repository items in the module
RI	Referential integrity rules
TL	Create top separator line made up of '*' characters
BL	Create bottom separator line made up of '*' characters
WC	Generator warning messages
(no value)	no comments

Form Generator creates the appropriate comments for the value set for this preference.

The header for a particular comment type is not displayed if the comment has not been defined in the repository. For example, the header for module notes is not displayed if  there is no table comment in the repository.

If the text generated as comments exceeds the value specified by MAXPLS, Form Generator inserts a new line character and the generated text wraps onto the next line.

Related preferences

BLKCMT

FLDCMT

CMTFMT


 DBA preferences

Related Topics

These preferences concern database administration, and control such things as the naming of the online reference tables.

Name	Description	Levels at which preferences can be set
		Cont	Dom	Tab	Con	Col	Mod	MC	Sub	LOV	CnU	ItG	Itm	Act
COLSEC	Set the column security flag on block (obsolete)	X					X
HPTABL	Scope of help text table	X
TABOWN	Table owner for use in SQL	X					X


 Set column security on for each block (COLSEC) (obsolete)

Related Topics

Default:	No
Values:	Yes, No
Levels:	Container, Module
Category:	DBA

We strongly recommend you do not use this obsolete preference. Instead, set properties of an appropriate source object in an object library. Click here to find out more (including how to continue using this preference).

Having read the above, you might decide to disregard the recommendation. In which case, you can use this preference to specify the Enforce Column Security property for each block in the generated form.

If this preference is set to Yes, the Enforce Column Security property is set to Yes for each block.

If this preference is set to No, the Enforce Column Security property is set to No for every block in the form.


Scope of on-line help table (HPTABL)
 Scope of online help table (HPTABL)

Related Topics

Default:	GENERIC
Values:	APPSYS, GENERIC
Levels:	Container
Category:	DBA

Use this preference to specify whether the help table created by the Update Help Tables Utility is system wide or container wide.

If you want to display help information in the generated application in a separate help form or in HTML-based help format, you use help tables to store help text recorded for repository elements. At runtime, the help tables are queried and the most appropriate help is displayed.

Help information is displayed in the generated application in a separate help form or in HTML-based help format, help tables are used to store help text recorded for repository elements. At runtime, the help tables are queried and the most appropriate help is displayed.

The options are:

GENERIC (G)	System wide. A single table called CG_FORM_HELP is created to hold online help text for forms generated from all the repository containers.
APPSYS (A)	Container wide. A table is created for each repository application system or folder, named <container_name>_FORM_HELP.

In the case of help text displayed in a separate help form, note that the standard help forms (ofghlpf and ofgwfhf) attempt to locate help text in a table called CG_FORM_HELP. In other words, ofghlpf and ofgwfhf assume that HPTABL was set to GENERIC. If you set HPTABL to APPSYS and you intend to use ofghlpf or ofgwfhf to display help text, you must change any references to CG_FORM_HELP in ofghlpf or ofgwfhf to refer instead to the name of the table created for the application system or folder (i.e. <container_name>_FORM_HELP).

In the case of HTML-based help, if the user specified by the DAD (Database Access Descriptor) is not the owner of the help table, do one of the following:

•	create a public or private synonym for the help table and grant the user specified by the DAD access to the table (note that the synonym must be the same as the name of the help table (i.e. CG_FORM_HELP or <container_name>_FORM_HELP))

•	export the help table from the user that you used to create/populate the help table and import the table into the user specified by the DAD

For more information about using this preference, refer to Generating help tables.

Related preferences

HLPFRM


 Table owner for use in SQL (TABOWN)

Related Topics

Default:	(no value)
Values:	(no value), up to 30 characters
Levels:	Container, Module
Category:	DBA

Use this preference to specify the name of an Oracle user to prefix to table names in generated forms.

When this preference is set, all references to table names in a generated form (or generated module library) are prefixed with the name of the user specified by TABOWN. For example, if  there is a table usage of EMP and you set the TABOWN preference to SCOTT, all references to EMP will be in the format SCOTT.EMP.


 Descriptive flexfield preferences

Related Topics

Do not use these preferences unless you are sure your Oracle Applications installation is implemented in the same major version of Oracle Forms as that generated by Form Generator. For more information, click here.

Having read the above, you might decide to continue to use these preferences. In which case, these preferences enable you to generate Oracle Applications descriptive flexfields. To use these preferences you must:

•	create a template with the Application Object Library (AOL) libraries attached

•	have Oracle Applications Release 10SC

For more information about using these preferences, refer to Descriptive flexfield generation.

Name	Description	Levels at which preferences can be set
		Cont	Dom	Tab	Con	Col	Mod	MC	Sub	LOV	CnU	ItG	Itm	Act
DFAPPL	Application short name	X		X									X
DFDATE	VDATE definition	X		X									X
DFDESC	Generate description field	X		X									X
DFFNAM	Field name	X		X									X
DFLOCK	LOCK_FLAG definition	X		X									X
DFNAME	Name	X		X									X
DFPICK	AUTOPICK definition	X		X									X
DFREAD	READ_ONLY definition	X		X									X
DFSIDS	Generate segment IDs field	X		X									X
DFTITL	Title definition	X		X									X
DFUSDB	USEDBFLDS definition	X		X									X


 Descriptive flex - application short name (DFAPPL)

Related Topics

Default:	(no value)
Values:	(no value), up to 30 characters
Levels:	Container, Table, Item
Category:	Descriptive flexfield

Do not use this preference unless you are sure your Oracle Applications installation is implemented in the same major version of Oracle Forms as that generated by Form Generator. For more information, click here.

Having read the above, you might decide to continue to use this preference. In which case, you can use this preference to define the application short name of the table that contains the Descriptive Flex item.

This value is used for the APPL_SHORT_NAME parameter when registering the Descriptive Flex field.

For more information about generating descriptive flexfields, refer to Descriptive flexfield generation.


 Descriptive flex - VDATE definition (DFDATE)

Related Topics

Default:	(no value)
Values:	(no value), up to 30 characters
Levels:	Container, Table, Item
Category:	Descriptive flexfield

Do not use this preference unless you are sure your Oracle Applications installation is implemented in the same major version of Oracle Forms as that generated by Form Generator. For more information, click here.

Having read the above, you might decide to continue to use this preference. In which case, you can use this preference to specify the validation date against which the Start and End date of individual segment values is checked.

For more information about generating descriptive flexfields, refer to Descriptive flexfield generation.


 Descriptive flex - description field name (DFDESC)

Related Topics

Default:	DF_DESC
Values:	Up to 30 characters
Levels:	Container, Table, Item
Category:	Descriptive flexfield

Do not use this preference unless you are sure your Oracle Applications installation is implemented in the same major version of Oracle Forms as that generated by Form Generator. For more information, click here.

Having read the above, you might decide to continue to use this preference. In which case, you can use this preference to specify the Descriptive Flex description field.

This value is the DESCRIPTION parameter that is used when registering the Descriptive Flex field.

For more information about generating descriptive flexfields, refer to Descriptive flexfield generation.


 Descriptive flex - field name (DFFNAM)

Related Topics

Default:	DF
Values:	Up to 30 characters
Levels:	Container, Table, Item
Category:	Descriptive flexfield

Do not use this preference unless you are sure your Oracle Applications installation is implemented in the same major version of Oracle Forms as that generated by Form Generator. For more information, click here.

Having read the above, you might decide to continue to use this preference. In which case, you can use this preference to specify the value of the Descriptive Flex (DF) field name.

If Form Generator finds that there is already an item of that name in the block, it makes the name unique by appending a number to it.

For more information about generating descriptive flexfields, refer to Descriptive flexfield generation.


 Descriptive flex - LOCK_FLAG definition (DFLOCK)

Related Topics

Default:	(no value)
Values:	(no value), Yes, No
Levels:	Container, Table, Item
Category:	Descriptive flexfield

Do not use this preference unless you are sure your Oracle Applications installation is implemented in the same major version of Oracle Forms as that generated by Form Generator. For more information, click here.

Having read the above, you might decide to continue to use this preference. In which case, you can use this preference to specify the LOCK_FLAG variable used when registering a Descriptive Flex field.

If the preference is not set, LOCK_FLAG variable is not included in the registration and the default is used.

For more information about generating descriptive flexfields, refer to Descriptive flexfield generation.


 Descriptive flex - name (DFNAME)

Related Topics

Default:	(no value)
Values:	(no value), up to 30 characters
Levels:	Container, Table, Item
Category:	Descriptive flexfield

Do not use this preference unless you are sure your Oracle Applications installation is implemented in the same major version of Oracle Forms as that generated by Form Generator. For more information, click here.

Having read the above, you might decide to continue to use this preference. In which case, you can use this preference to specify the name of the Descriptive Flex.

It is the value used for the DESC_FLEX_NAME parameter for registering the Descriptive Flex field.

For more information about generating descriptive flexfields, refer to Descriptive flexfield generation.


 Descriptive flex - AUTOPICK definition (DFPICK)

Related Topics

Default:	(no value)
Values:	(no value), Yes, No
Levels:	Container, Table, Item
Category:	Descriptive flexfield

Do not use this preference unless you are sure your Oracle Applications installation is implemented in the same major version of Oracle Forms as that generated by Form Generator. For more information, click here.

Having read the above, you might decide to continue to use this preference. In which case, you can use this preference to specify the AUTOPICK variable when registering a Descriptive Flex field.

If the preference is not set, the AUTOPICK variable is not included in the registration and the default is used.

For more information about generating descriptive flexfields, refer to Descriptive flexfield generation.


 Descriptive flex - READ_ONLY definition (DFREAD)

Related Topics

Default:	(no value)
Values:	(no value), Yes, No
Levels:	Container, Table, Item
Category:	Descriptive flexfield

Do not use this preference unless you are sure your Oracle Applications installation is implemented in the same major version of Oracle Forms as that generated by Form Generator. For more information, click here.

Having read the above, you might decide to continue to use this preference. In which case, you can use this preference to specify the READ_ONLY variable used when registering a Descriptive Flex field.

If the preference is not set, the READ_ONLY variable is not included in the registration and the default is used.

For more information about generating descriptive flexfields, refer to Descriptive flexfield generation.


 Descriptive flex - segment IDs field name (DFSIDS)

Related Topics

Default:	DF_DATA
Values:	Up to 30 characters
Levels:	Container, Table, Item
Category:	Descriptive flexfield

Do not use this preference unless you are sure your Oracle Applications installation is implemented in the same major version of Oracle Forms as that generated by Form Generator. For more information, click here.

Having read the above, you might decide to continue to use this preference. In which case, you can use this preference to specify the name of the hidden Descriptive Flex ID field and is the value used for the DATA_FIELD parameter when registering the Descriptive Flex field.

For more information about generating descriptive flexfields, refer to Descriptive flexfield generation.


 Descriptive flex - TITLE definition (DFTITL)

Related Topics

Default:	(no value)
Values:	(no value), up to 30 characters
Levels:	Container, Table, Item
Category:	Descriptive flexfield

Do not use this preference unless you are sure your Oracle Applications installation is implemented in the same major version of Oracle Forms as that generated by Form Generator. For more information, click here.

Having read the above, you might decide to continue to use this preference. In which case, you can use this preference to specify the window title that is displayed at the top of the popup window.

For more information about generating descriptive flexfields, refer to Descriptive flexfield generation.


 Descriptive flex - USEDBFLDS definition (DFUSDB)

Related Topics

Default:	(no value)
Values:	(no value), Yes, No
Levels:	Container, Table, Item
Category:	Descriptive flexfield

Do not use this preference unless you are sure your Oracle Applications installation is implemented in the same major version of Oracle Forms as that generated by Form Generator. For more information, click here.

Having read the above, you might decide to continue to use this preference. In which case, you can use this preference to specify the USEDBFLDS variable used when registering a Descriptive Flex field.

If the preference is not set, the USEDBFLDS variable is not included in the registration and the default is used.

For more information about generating descriptive flexfields, refer to Descriptive flexfield generation.


 End user interface preferences

Related Topics

These preferences enable you to control the behavior of the generated form when it is run by an end user.

Note:	The appearance of the form is also affected by Layout Preferences and Standards Preferences.

Name	Description	Levels at which preferences can be set
		Cont	Dom	Tab	Con	Col	Mod	MC	Sub	LOV	CnU	ItG	Itm	Act
AUTOHP	Set automatic hint for all fields (obsolete)	X		X		X	X	X					X
BSCHMD	Allow user to toggle block synchronization mode	X					X
BSCSCP	Block synchronization - coordination scope	X					X
BSMOFF	Type of block synchronization when OFF	X					X
BSMON	Type of block synchronization when ON	X					X
BSQENP	Query block on entry to new canvas	X					X
CONWIN	Generate console window	X					X
CURREC	Current record attribute property settings	X					X	X
DELWRN	Warn user if delete will cascade to other tables	X		X			X	X
DFTCED	Editor to use for CHAR text items	X		X		X	X	X					X
DFTLED	Editor to use for LONG/LOB text items	X		X		X	X	X					X
EDITPP	Automatically invoke field editor	X		X		X	X	X					X
GENNAV	Generate code to navigate to first block of form?	X					X
HELPLN	Maximum hint text length	X					X
HLPFRM	Name of form that displays user help information	X					X
HLPTGT	Target window or frame for generated HTML-based help	X					X
HLPTYP	Type of Help System used	X					X
HLPURL	URL path for HTML-based help package	X					X
MSGSFT	Package used for messaging	X					X
NATLNG	National language for end-user text	X					X
OFFFLD	OFF message in query-mode field	X					X
ONFLD	ON message in query-mode field	X					X
OTCAEN	Order template canvases at end	X					X
ROWLOV	Implement row LOV functionality	X								X
USECAL	Add call to calendar window for date fields	X		X		X	X	X					X


 Set automatic help for all fields (AUTOHP) (obsolete)

Related Topics

Default:	Yes
Values:	Yes, No
Levels:	Container, Table, Column, Module, Module Component, Item
Category:	End user interface

We strongly recommend you do not use this obsolete preference. Instead, set properties of an appropriate source object in an object library. Click here to find out more (including how to continue using this preference).

Having read the above, you might decide to disregard the recommendation. In which case, you can use this preference to specify whether the Display Hint Automatically property is set for each of the items in the Oracle Forms application.

If this preference is set to Yes, when the cursor enters an item in the generated form, the item's hint text is automatically displayed.


 Allow user to toggle block synchronization mode (BSCHMD)

Related Topics

Default:	Yes
Values:	Yes, No
Levels:	Container, Module
Category:	End user interface

Set this preference to Yes to specify that Form Generator is to generate code to allow the user of the generated form to switch between the block synchronization query modes specified by BSMON and BSMOFF.

For more information about about using this preference, refer to Synchronization modes.

Related preferences

BSQENP


 Block synchronization - co-ordination scope (BSCSCP)

Related Topics

Default:	P
Values:	F, P, W
Levels:	Container, Module
Category:	End user interface

Use this preference to specify the scope of the query operation for blocks. The scope of the query operation can be the entire form or it can be limited to blocks in the current window or on the current canvas.

This is only applicable when the form is running in auto-query mode, because this preference specifies the blocks that are immediately queried.

The options are:

P	Block on the current canvas
W	Blocks displayed  in the current window
F	Blocks displayed in the current form
For more information about co-ordination scope, refer to Query scope.


 Type of block synchronization when OFF (BSMOFF)

Related Topics

Default:	N
Values:	(no value), A, E, N
Levels:	Container, Module
Category:	End user interface

Use this preference to specify the block synchronization used when the block synchronization toggle is set to OFF.

The options are:

A	Always query details when the master changes.
E	Query details on entry to the detail block.
N	Do not query details automatically.


 Type of block synchronization when ON (BSMON)

Related Topics

Default:	A
Values:	(no value), A, E, N
Levels:	Container, Module
Category:	End user interface

Use this preference to specify the block synchronization used when the block synchronization toggle is set to ON. If the block synchronization is set to ON, this governs the synchronization on entry to the form.

The options are:

A	Always query details when the master changes.
E	Query details on entry to the detail block.
N	Never query details automatically.


 Query block on entry to new canvas (BSQENP)

Related Topics

Default:	Yes
Values:	Yes, No
Levels:	Container, Module
Category:	End user interface

Use this preference to specify whether an automatic query is performed when the cursor enters a detail block on a new canvas.

This preference is only appropriate when the BSCSCP preference is set to P or W; this preference is overridden if BSCSCP is set to F.

If this preference is set to Yes, query is performed on entry to a new canvas.

If this preference is set to No, query is not performed on entry to a new canvas.

Related preferences

BSCSCP


 Generate console window (CONWIN)

Related Topics

Default:	Yes
Values:	Yes, No
Levels:	Container, Module
Category:	End user interface

Use this preference to specify whether Form Generator sets the Console Window property of generated forms. The Console Window property must be set if you want the generated form to contain the Oracle Forms console (the status line and message line displayed at the bottom of a  window).

If you set this preference to No, a console is not included in generated forms.

If you set this preference to Yes, Form Generator determines the window in which to display the console as follows:

if	the template form's Console Window is property is set to the name of a window in the generated form, Form Generator sets the generated form's Console Window property to this name
otherwise, if	you are not using a template form (or the template's Console Window property is not set to a window in the generated form), Form Generator sets the generated form's Console Window property to the name of the window containing the first block in the generated form that contains a displayed item

The window in which the console appears depends on the runtime environment:

•	in a Microsoft Windows environment, the console always appears at the bottom of the MDI application window regardless of the window specified by the Console Window property (although the Console Window property must be set to the name of a window in the form to indicate the console is to be displayed)

•	in other environments, the console appears in the window specified by the Console Window property


 Current record attribute property settings (CURREC)

Related Topics

Default:	NONE
Values:	NONE, ALL, MULTI
Levels:	Container, Module, Module Component
Category:	End user interface

Use this preference to control how the Current Record Visual Attribute Group property is set in the generated form.

NONE	There will be no current record highlighting.
ALL	The Current Record Visual Attribute Group block property of multi-row blocks is set to CG$CURRENT_RECORD (i.e. all items in multi-row blocks will be highlighted).
MULTI	The Current Record Visual Attribute Group item property of items displayed more than once in multi-row blocks is set to CG$CURRENT_RECORD (i.e. items in a single area of a multi-row block will not be highlighted as the current record, but all other items in the block will be highlighted).

When generating multi-region blocks, set this preference for the primary module component.

Note that if the Current Record Visual Attribute Group property of a generated block or item is derived from an object library or template, Form Generator overrides this preference.

For more information about using this preference, refer to Setting the Current Record Visual Attribute Group property.


 Warn user if delete will cascade to other tables (DELWRN)

Related Topics

Default:	CASCADE
Values:	ALWAYS, CASCADE, NEVER
Levels:	Container, Table, Module, Module Component
Category:	End user interface

Use this preference to specify whether Form Generator generates code to warn of delete operations (other than Delete Restricted, in which case such operations are prevented).

If this preference is set to CASCADE and the Validate In property is set to Client or set to Both, a warning is displayed when the user tries to delete a record that deletes other records in related tables. The record is not deleted unless the user immediately repeats the request.

If this preference is set to ALWAYS, a warning is always displayed when the user tries to delete a record. The record is not deleted unless the user immediately repeats the request.

If this preference is set to NEVER, Form Generator does not generate code to display the warning.

For more information about using this preference, refer to Referential integrity rules.


 Editor to use for CHAR text items (DFTCED)

Related Topics

Default:	(no value)
Values:	(no value), up to 30 characters
Levels:	Container, Table, Column, Module, Module Component, Item
Category:	End user interface

Use this preference to specify the editor that Form Generator attaches to generated text items whose datatype is CHAR.

The editor can be defined in the following ways:

•	as an editor item attached to a source object in an object library

•	by setting this preference to SYSTEM_EDITOR (the editor displayed is the one specified by the FORMS60_EDITOR Registry variable, if set)

•	(not recommended) as an editor item in the template form that is used for generation

For more information about using this preference, refer to Attaching an editor to text items.


 Editor to use for LONG/LOB text items (DFTLED)

Related Topics

Default:	(no value)
Values:	(no value), up to 30 characters
Levels:	Container, Table, Column, Module, Module Component, Item
Category:	End user interface

Use this preference to specify the editor that Form Generator attaches to generated text items whose datatype is LONG or LOB.

The editor can be defined in the following ways:

•	as an editor item attached to a source object in an object library

•	by setting this preference to SYSTEM_EDITOR (the editor displayed is the one specified by the FORMS60_EDITOR Registry variable, if set)

•	(not recommended) as an editor item in the template form that is used for generation

For more information about using this preference, refer to Attaching an editor to text items.


 Automatically invoke field editor (EDITPP)

Related Topics

Default:	NO
Values:	DEFAULT, HELP, NO
Levels:	Container, Table, Column, Module, Module Component, Item
Category:	End user interface

Use this preference to specify whether Form Generator creates code that automatically invokes an attached text editor when the cursor enters an empty text item for a new (i.e. uncommitted) record, provided the item meets the following conditions:

•	the item is enterable

•	there is no default value

•	the underlying column is not a foreign key

•	the underlying column does not have any valid values or ranges, and is not in a domain that has valid values or ranges

The generated code comprises an item-level WHEN-NEW-ITEM-INSTANCE trigger that calls the EDIT_TEXTITEM Oracle Forms built-in.

The options are:

NO (N)	The text editor is not invoked
DEFAULT (D)	The text editor is automatically invoked for the appropriate fields and the text editor's default hint message is displayed.
HELP (H)	The text editor is automatically invoked for the appropriate fields; and the text editor's hint message is displayed instead of the field's hint message.
For more information about using this preference, refer to Attaching an editor to text items.


 Navigate to first block on startup (GENNAV)

Related Topics

Default:	Yes
Values:	Yes, No
Levels:	Container, Module
Category:	End user interface

Use this preference to specify which block the cursor is moved to during startup processing in the generated form.

If this preference is set to No, the cursor is placed in the first block of the form that has one or more enterable fields, regardless of whether the block is derived from a repository module component table usage or copied from the template form.

If this preference is set to Yes, the cursor is placed in the first block of the form derived from a repository module component table usage that has one or more enterable fields; any preceding blocks copied from the template are not enterable.

Note that Form Generator ignores this preference when generating navigator style forms.

For more information about how to use this preference refer to Generating startup navigation code.


Maximum length allowed for help text (HELPLN)
 Maximum length allowed for hint text (HELPLN)

Related Topics

Default:	80
Values:	80 to 200
Levels:	Container, Module
Category:	End user interface

Use this preference to determine the maximum length for generated message text that is displayed either by the default Oracle Forms MESSAGE built in or by the procedures to display messages in the package specified by MSGSFT.


 Name of form that displays user help (HLPFRM)

Related Topics

Default:	ofghlpf
Values:	(no value), up to 240 characters
Levels:	Container, Module
Category:	End user interface

Use this preference to specify the name of the form that displays form, block and field help to the end-user of the generated form.

Oracle Corporation supplies two standard help forms:

•	ofgwfhf - optimized for WebForms applications

•	ofghlpf - optimized for client/server applications

For more information about Form Generator and context-sensitive help, refer to Context-sensitive help generation.

Related preferences

HLPTYP


 Target window or frame for generated HTML-based help (HLPTGT)

Related Topics

Default:	_blank
Values:	(no value), up to 30 characters
Levels:	Container, Module
Category:	End user interface

Use this preference when generating HTML-based help to specify where help text is displayed.

You can specify the name of a frame defined in the frameset you are using to display the WebForms application.

Alternatively, you can use one of the following values to specify where the help text is displayed relative to the content of an existing web browser session:

Value:	Use to specify that the help text:
_blank	is displayed in a new web browser session
_top	replaces the entire content of the current web browser window
_self	replaces the  content of the current frame in the web browser window
_parent	replaces the content of the frameset to which the current frame belongs

For more information about using this preference, refer to Displaying help text as HTML-based help in a web browser


 Type of help system used (HLPTYP)

Related Topics

Default:	HTML-BASED HELP
Values:	HTML-BASED HELP, MSHELP, HELPFORM, NONE
Levels:	Container, Module
Category:	End user interface

Use this preference to specify how to display user defined help information for generated forms.

The options are:

HTML-BASED HELP	Display user-defined help information from a help table in HTML-based help format. HTML-based help is only available if the generated form is run as a WebForms application in a web browser. Also note the following two prerequisites: • Oracle Application Server (or Oracle WebDB) must be installed on the application server machine • the user specified by the DAD must have access to the PL/SQL Web Toolkit
MSHELP	Display user defined help information in MS Help format, using help files created by the MS Help Generator from help text stored in the repository. At runtime, Oracle Forms will search for help files in the current working directory. If the files are not in the current working directory, Oracle Forms will search using the paths specified by the HELPFILE_PATH Registry variable.  Note 1: The current working directory is not necessarily the same as the location of the .fmx file. For example, the two might be different if you are running a generated form from the Design Editor. We therefore recommend that you always set the HELPFILE_PATH Registry variable to locate the help file.  Note 2: The HELPFILE_PATH Registry variable is not created automatically. Create the HELPFILE_PATH Registry variable under the ORACLE key in the Registry. Before attempting to run the generated form, add the appropriate path to the HELPFILE_PATH Registry variable. Note that the path must end with a backslash. For more information about creating Registry variables, refer to Notes on Registry variables and form generation.
HELPFORM	Display user defined help information from a help table using the form specified by the HLPFRM preference.
NONE	No code is generated to display user defined help information.

For more information, refer to Generating help tables.

For more information about Form Generator and context-sensitive help, refer to Context-sensitive help generation.


Type of help system used (HLPURL)
URL path for HTML-based help package (HLPURL)

Related Topics

Default:	(no value)
Values:	(no value), up to 240 characters
Levels:	Container, Module
Category:	End user interface

Use this preference when generating HTML-based help to specify the virtual path defined for the PL/SQL Agent that has the DAD user in which the FORM_HELP.DISPLAY package is installed. Use the following format:

http://<machine_address>/<virtual_path>/

For example, assume:

•	you are using Oracle Application Server

•	the address of the application server machine is pc1234.us.acme_corp.com

•	the virtual path defined for the PL/SQL Agent is webdeploy

In this case, you would set HLPURL to:

http://pc1234.us.acme_corp.com/webdeploy/

For more information about using this preference, refer to Displaying help text as HTML-based help in a web browser


 Package used for messaging (MSGSFT)

Related Topics

Default:	(no value)
Values:	(no value), up to 30 characters
Levels:	Container, Module
Category:	End user interface

Use this preference to specify the name of a package to customize the way in which generator and user messages are displayed.

If this preference is not set, the Oracle Forms MESSAGE built-in is used to display messages on the message line in the generated form. Generator messages are hard coded into generated PL/SQL from an .msb file.

If this preference is set, Form Generator includes calls to procedures in the package specified by this preference to display messages. The package must exist in the template form or in an attached library.

Using a message handling package to display messages enables you to:

•	display messages in Oracle Forms alerts

•	translate generator messages for a generated form because the message text is contained in an attached library file, rather than being hard-coded character strings within the generated PL/SQL code

•	manipulate both user and generator messages using procedures in the template

Form Generator is supplied with a suitable message-handling package called CG$FORM_ERRORS in the ofgtel.pll library to fetch messages from the ofgmes.pll library.

If you specify a package other than CG$FORM_ERRORS, the package you specify must contain the following three program units:

•	a procedure called PUSH

•	a function called MSGGETTEXT

•	a procedure called RAISE_FAILURE

There are also other naming conventions and parameter requirements you must follow if you decide to specify a package other than CG$FORM_ERRORS. For these reasons, we recommend you copy CG$FORM_ERRORS and then modify the copy. For more information, refer to About customizing the CG$FORM_ERRORS package.


 National language for end-user text (NATLNG)

Related Topics

Default:	AMERICAN
Values:	Up to 30 characters
Levels:	Container, Module
Category:	End user interface

Use this preference to specify the language used to display Form Generator error and warning messages, and hint lines in the generated form. Neither the text defined in the repository nor the text defined in any template forms is affected.

Contact your customer support representative for an up-to-date list of supported languages.

If this preference is set to a language that is not supported, or if the message files are not available, the text is displayed in American English (AMERICAN).

Optionally, you can also use this preference to specify the territory and character set to use to display messages in a given language. For example:

POLISH_POLAND.EE8MSWIN1250

This is important if the default NLS character set is not suitable for the platform on which you want to deploy generated forms.


 OFF message in query-mode field (OFFFLD)

Related Topics

Default:	-  -
Values:	(no value), up to 80 characters
Levels:	Container, Module
Category:	End user interface

Use this preference to specify the text displayed to the user to indicate that the current query mode is set to OFF.

For more information about using this preference, refer to Block synchronization messages and indicators.

Related preferences

BSCHMD


 ON message in query-mode field (ONFLD)

Related Topics

Default:	-AQ-
Values:	(no value), up to 80 characters
Levels:	Container, Module
Category:	End user interface

Use this preference to specify the text displayed to the user to indicate that the current query mode is set to ON.

For more information about using this preference, refer to Block synchronization messages and indicators.

Related preferences

BSCHMD


 Order template canvases at end (OTCAEN)

Related Topics

Default:	Yes
Values:	Yes, No
Levels:	Container, Module
Category:	End user interface

Use this preference to specify how Form Generator positions the canvases from the template form in relation to generated canvases.

If this preference is set to Yes, Form Generator places the canvases from the template form after all of the generated canvases.

If this preference is set to No, Form Generator places the canvases from the template form before all of the generated canvases.

For more information about using this preference, refer to User canvases from the template and generated forms.


 Implement row LOV functionality (ROWLOV)

Related Topics

Default:	No
Values:	Yes, No
Levels:	Container, Module, LOV
Category:	End user interface

Use this preference to specify whether Form Generator implements row LOV functionality (a common feature of Oracle Applications forms). A row LOV displays all the records in the base table on which a queryable block is based.

If this preference is set to Yes for a repository LOV definition, Form Generator will generate row LOV functionality providing:

•	the repository LOV definition has been given the same name as a queryable module component with which it is to be associated

•	the repository LOV definition has the same base table usage as the module component with the same name

•	the repository LOV definition includes all primary key columns of the base table

•	an unassociated inclusion of the repository LOV definition exists

For more information about row LOVs, refer to Generating row LOVs.


 Add call to calendar window for date fields (USECAL)

Related Topics

Default:	No
Values:	Yes, No
Levels:	Container, Table, Column, Module, Module Component, Item
Category:	End user interface

Use this preference to determine whether to generate calls to display a calendar window for generated date items, as specified by the text held as the PL/SQL Block multi-line text property of a bound item.

For more information about calendar windows, refer to Calendar windows for date items.


 Environment preferences

Related Topics

You may wish to use these preferences when developing a system to be run in an environment other than character mode.

Name	Description	Levels at which preferences can be set
		Cont	Dom	Tab	Con	Col	Mod	MC	Sub	LOV	CnU	ItG	Itm	Act
MOUSEN	Mouse navigation limit	X					X
REPCHS	Replace characters in trigger/hint line text	X					X
VLDUNT	Validation unit	X					X


 Mouse navigation limit (MOUSEN)

Related Topics

Default:	FORM
Values:	(no value), BLOCK, FIELD, FORM, RECORD
Levels:	Container, Module
Category:	Environment

Use this preference to specify the mouse navigation limit that is set in the generated form.

The options are:

FIELD (FI)

RECORD (R)

BLOCK (B)

FORM (FO)


 Replace characters in trigger/hint line text (REPCHS)

Related Topics

Default:	(no value)
Values:	(no value), up to 80 characters
Levels:	Container, Module
Category:	Environment

Use this preference to specify which characters to substitute for the default characters in the hint-line text field and the trigger error/warning text.

These characters are used when generating applications that are used on platforms that do not support certain characters.

Set this preference to a string that is made up of pairs of two characters so that, for each pair, the first character is replaced by the second. For example, if you want to replace square brackets with angle brackets, set this preference to [<]>.


 Validation unit (VLDUNT)

Related Topics

Default:	FIELD
Values:	BLOCK, FIELD, FORM, RECORD
Levels:	Container, Module
Category:	Environment

Use this preference to specify the validation unit that is set in the generated form.

The options are:

FIELD (FI)

RECORD (R)

BLOCK (B)

FORM (FO)

Oracle Forms validates the data in the unit when the user uses any function key that moves the cursor out of that unit.


 Form/library attachment preferences

Related Topics

Use this preference to specify the name of a library module to attach to the generated form (in addition to both a generated module library, and any library modules attached via a module network or template form).

Name	Description	Levels at which preferences can be set
		Cont	Dom	Tab	Con	Col	Mod	MC	Sub	LOV	CnU	ItG	Itm	Act
MODLIB	Module specific library attachment	X					X


 Module specific library attachment (MODLIB)

Related Topics

Default:	(no value)
Values:	(no value), up to 240 characters
Levels:	Container, Module
Category:	Form/library attachment

Consider using module networks or template forms to attach libraries to generated forms instead of the MODLIB preference because:

•	you can only specify one library using MODLIB

•	Form Generator will attach any libraries specified in a module network or attached to a template form before attaching the library specified by the MODLIB preference

•	Form Generator will ignore the MODLIB preference if it specifies a library that has already been attached via a module network or template form

Having read the above, you might decide to continue to use the MODLIB preference. In which case, you can use this preference to specify the name of a Forms library module to attach to the generated form (in addition to both a generated module library, and any library modules attached via a module network or template form).

Form Generator constructs the filename of the library to attach as follows:

<path for libraries><value of MODLIB>.pll

where:

<path for libraries> is the location of libraries. To ensure the generated form is portable between systems, do not include the path to the library in the preference value or in the PLL Files Path field on the Dependencies tab of the Form Generator Options dialog box. At runtime, Oracle Forms looks for attached libraries using the paths specified by the FORMS60_PATH variable in the Registry. Before attempting to run the generated form, add the appropriate path to the FORMS60_PATH variable.

Note: Do not enter the .pll suffix as part of the value for MODLIB.


 Form/menu attachment preferences

Related Topics

These preferences enable you control the attachment of menus to forms where the menu has not been generated during the form generation.

Name	Description	Levels at which preferences can be set
		Cont	Dom	Tab	Con	Col	Mod	MC	Sub	LOV	CnU	ItG	Itm	Act
FMNDMA	Name of menu module if not implicit menu generation	X					X
FMNDMN	Name of the start menu if not implicit menu generation	X					X
FMNDMS	Display menu on startup	X					X
FMNDSR	Menu security role to use when running the form	X					X
FMNDUF	Use file flag if not implicit menu generation	X					X


 Name of menu module if not implicit menu generation (FMNDMA)

Related Topics

Default:	DEFAULT
Values:	(no value), up to 240 characters
Levels:	Container, Module
Category:	Form/menu attachment

Use this preference to specify the menu to invoke when the form is run and when a menu is not generated as part of forms generation.

If the 'Use file' property is set to off (using the FMNDUF preference), set this preference to the name of the menu module in the database.

If the 'Use file' property is set to on (using the FMNDUF preference), set this preference to the name of the menu .mmx runfile.

If this preference is set to DEFAULT, the Oracle Forms default form menu is attached to the generated form. The default form menu includes standard commands that correspond to function keys.

If this preference is set to DEFAULT&SMARTBAR, the Oracle Forms default form menu and the default toolbar (or smartbar) are attached to the generated form. The default toolbar consists of iconic buttons on a toolbar (placed at the top of the form, beneath the pull-down form menu) that are shortcuts to many of the menu items on the default form menu.

If this preference is not set, the form is run without a menu.

For more information about using this preference, refer to Generating menu modules.

Related preferences

FMNDMN

FMNDUF


 Name of the start menu if not implicit menu generation (FMNDMN)

Related Topics

Default:	(no value)
Values:	(no value), up to 30 characters
Levels:	Container, Module
Category:	Form/menu attachment

If a menu is not being generated as part of forms generation, this preference specifies the main menu, or top-level menu, that invokes the menu module specified by the FMNDMA preference.

If this preference is not set, the main menu of the menu module is used.

For more information about using this preference, refer to Generating menu modules.

Related preferences

FMNDMA

FMNDUF


 Display menu on startup (FMNDMS)

Related Topics

Default:	No
Values:	Yes, No
Levels:	Container, Module
Category:	Form/menu attachment

Use this preference to specify whether the menu is automatically displayed when the form is first displayed.


 Menu security role to use when running the form (FMNDSR)

Related Topics

Default:	(no value)
Values:	(no value), up to 30 characters
Levels:	Container, Module
Category:	Form/menu attachment

Use this preference to specify the Menu Role property of the generated form module.

If this preference is set, Oracle Forms runs the menu as if the current user of the generated form were  a member of the specified security role.


 Use file flag if not implicit menu generation (FMNDUF)

Related Topics

Default:	Yes
Values:	Yes, No
Levels:	Container, Module
Category:	Form/menu attachment

If a menu is not being generated as part of forms generation, this preference specifies where Oracle Forms finds the menu's .MMX runfile.

If this preference is set to Yes, set the FMNDMA preference to the name of the menu .MMX runfile.

If this preference is set to No, set the FMNDMA preference to the name of the menu module in the database.

For more information about using this preference, refer to Generating menu modules.

Related preferences

FMNDMA

FMNDMN


 Generate options preferences

Related Topics

This set of preferences consists of various miscellaneous options that control the content of the generated code.

Name	Description	Levels at which preferences can be set
		Cont	Dom	Tab	Con	Col	Mod	MC	Sub	LOV	CnU	ItG	Itm	Act
BLKTGS	Block-level trigger execution style	X		X			X	X
CALLFM	Form calls form	X					X
DMLRET	Set DML returning value						X	X
GLNCON	Global level naming convention						X
ITMTGS	Item-level trigger execution style	X		X		X	X	X					X
NIVVKC	NULL is a valid value in key constraints	X			X		X
NXTKEY	KEY-NXTKEY functionality required?	X					X
SEQCMT	Apply sequence values at commit time?	X					X
UENAME	Name of user exit to call from commit triggers	X					X
VLDOPT	Optimize constraint validation	X		X	X		X	X			X
VLDTFK	When should foreign keys be validated?	X		X	X		X	X			X
VLDTPK	When should primary keys be validated?	X		X	X		X	X			X
VLDTTC	When should table-level check constraints be validated?	X		X	X		X	X			X
VLDTUK	When should unique keys be validated?	X		X	X		X	X			X
WEDI	Where to enforce data integrity	X					X


Block level trigger execution style (BLKTGS)
 Block-level trigger execution style (BLKTGS)

Related Topics

Default:	OVERRIDE
Values:	AFTER, BEFORE, OVERRIDE
Levels:	Container, Table, Module, Module Component
Category:	Generate options

Use this preference to set the Execution Hierarchy property of block-level triggers created by Form Generator.

The options are

OVERRIDE (O)	Fire the current trigger instead of any trigger by the same name at any higher scope.
BEFORE (B)	Fire the current trigger before the same trigger at the next higher scope.
AFTER (A)	Fire the current trigger after the same trigger at the next-higher scope.

When generating multi-region blocks, set this preference for the primary module component and not for module sub-components.


Form calls form (CALLFM)
 Form calls form/report (CALLFM)

Related Topics

Default:	No
Values:	Yes, No
Levels:	Container, Module
Category:	Generate options

Use this preference to specify whether Form Generator adds code to a separate Key-Fn trigger for each module called by a generated form.

If this preference is set to No, Form Generator does not generate Key-Fn trigger code to call modules.

If this preference is set to Yes, Form Generator generates Key-Fn trigger code to call modules in addition to generating buttons from navigation action items.

The recommended way to specify navigation between modules in Oracle Designer release 2 onwards is to define navigation action items. An alternative mechanism provided in versions of Form Generator prior to Release 2 involves generating Key-Fn trigger code and/or the use of the CG$FF generator item in the template form. However, generating Key-Fn trigger code as a mechanism to call other modules is likely to be discontinued in subsequent releases of Form Generator. Therefore, we strongly recommend you use navigation action items to call other modules. For more information, refer to Calling reports, displays, and other forms using buttons generated from navigation action items.


 Set DML returning value (DMLRET)

Related Topics

Default:	Let generator decide
Values:	Let generator decide, No
Levels:	Module, Module component level
Category:	Generate options

Use this preference to specify the way in which the DML returning value preference is set.

Let generator decide	The DML returning value property will be set to Yes if both the following conditions are met: - the module component's Datatarget Type property is set to Table - the module component has a base table usage of a table (i.e. rather than a view). Otherwise, the DML returning value property is set to No.
No	The DML returning value property is always set to No.


 Global variable naming convention (GLNCON)

Related Topics

Default:	Use table name
Values:	Use table name, Use table alias, Use name in database
Levels:	Module
Category:	Generate options

Use this preference to specify the way in which the global variables are named.

Use table name	Global variables will be given a name in the form :GLOBAL.CG$<table_name>_<column_name>
Use table alias	Global variables will be given a name in the form :GLOBAL.CG$<table_alias>_<column_name> An alias at the module component table usage level will be used in preference to the table definition alias or table name.
Use name in database	Global variables will be given a name in the form :GLOBAL.CG$<name_in_database>_<column_name>


Item level trigger execution style (ITMTGS)
 Item-level trigger execution style (ITMTGS)

Related Topics

Default:	OVERRIDE
Values:	AFTER, BEFORE, OVERRIDE
Levels:	Container, Table, Column, Module, Module Component, Item
Category:	Generate options

Use this preference to set the Execution Hierarchy property of item-level triggers created by Form Generator.

The options are

OVERRIDE (O)	Fire the current trigger instead of any trigger by the same name at any higher scope.
BEFORE (B)	Fire the current trigger before the same trigger at the next higher scope.
AFTER (A)	Fire the current trigger after the same trigger at the next-higher scope.


 Null is a valid value in key constraints (NIVVKC)

Related Topics

Default:	Yes
Values:	Yes, No
Levels:	Container, Constraint, Module
Category:	Generate options

Use this preference to specify whether NULL is a valid value in key constraints.

If this preference is set to Yes, NULL is a valid value.

If this preference is set to No, NULL is not a valid value.

For more information about using this preference, refer to Constraints and null values.


 KEY-NXTKEY functionality required (NXTKEY)

Related Topics

Default:	No
Values:	Yes, No
Levels:	Container, Module
Category:	Generate options

If you set this preference to Yes, Form Generator:

•	sets the Primary Key property of generated primary key items to Yes

•	sets the Enforce Primary Key property of generated blocks to Yes (providing the block does not contain server-derived primary key items)

If you set this preference to No, Form Generator:

•	does not set the Primary Key property for any fields in the generated form

•	sets the Enforce Primary Key property of generated blocks to No

•	disables the [NEXT PRIMARY KEY] function key

A note about running generated forms against an Oracle Lite database

If the generated form will be run against an Oracle Lite database, set this preference to Yes.


 Apply sequence values at commit time (SEQCMT)

Related Topics

Default:	Yes
Values:	Yes, No
Levels:	Container, Module
Category:	Generate options

Use this preference to specify when field values derived from an Oracle sequence are assigned.

If this preference is set to Yes, values are assigned on PRE-INSERT.

If this preference is set to No, the next sequence value is used as the default value for the field.

For more information about using this preference, refer to About the code generated to support autogenerated sequence numbers.


 Name of user exit to call from commit triggers (UENAME)

Related Topics

Default:	(no value)
Values:	(no value), up to 30 characters
Levels:	Container, Module
Category:	Generate options

Use this preference to specify the name of a user exit that is called by the generated form on PRE-INSERT, PRE-UPDATE and PRE-DELETE.

If this preference is not set, a user exit is not called.

For more information about using this preference, refer to Calling user exits.


 Optimize constraint validation (VLDOPT)

Related Topics

Default:	Yes
Values:	Yes, No
Levels:	Container, Table, Constraint, Module, Module Component, Constraint Usage
Category:	Generate options

Use this preference to specify how a constraint with multiple key columns is validated.

The options are:

No	Validate each key column individually
Yes	Only validate the constraint when all the columns in the constraint have been entered.
For more information about using this preference, refer to When are constraints enforced?


 When to validate foreign keys (VLDTFK)

Related Topics

Default:	F
Values:	B, C, F, N
Levels:	Container, Table, Constraint, Module, Module Component, Constraint Usage
Category:	Generate options

Use this preference to specify when foreign keys that have been defined in the repository should be validated in the generated code.

The options are:

C	At commit time only.
F	At field level only.
B	At field level and at commit time.
N	No validation is performed.

For more information about using this preference, refer to When are constraints enforced?


 When to validate primary keys (VLDTPK)

Related Topics

Default:	B
Values:	B, C, F, N
Levels:	Container, Table, Constraint, Module, Module Component, Constraint Usage
Category:	Generate options

Use this preference to specify when primary keys that have been defined in the repository are validated in the generated code.

The options are:

C	At commit time only.
F	At field level only.
B	Both at commit time and at field level.
N	Code is not generated to validate primary keys.
For more information about using this preference, refer to When are constraints enforced?


 When to validate table-level check constraints (VLDTTC)

Related Topics

Default:	F
Values:	B, C, F, N
Levels:	Container, Table, Constraint, Module, Module Component, Constraint Usage
Category:	Generate options

Use this preference to specify when table-level check constraints defined in the repository are validated in the generated code.

The options are:

C	Validate at commit time only.
F	Validate at field level only.
B	Validate at field level and at commit time.
N	Do not perform any validation.
For more information about using this preference, refer to When are constraints enforced?


 When to validate unique keys (VLDTUK)

Related Topics

Default:	B
Values:	B, C, F, N
Levels:	Container, Table, Constraint, Module, Module Component, Constraint Usage
Category:	Generate options

Use this preference to specify when unique keys that have been defined in the repository are validated in the generated code.

The options are:

C	At commit time only.
F	At field level only.
B	Both at commit time and at field level.
N	Code is not generated to validate unique keys.
For more information about using this preference, refer to When are constraints enforced?


 Where to enforce data integrity (WEDI)

Related Topics

Default:	D
Values:	C, D, S
Levels:	Container, Module
Category:	Generate options

Use this preference to override the 'Validate In' property that is held in the repository against each of the constraints.

This preference enables you to generate an application (with the constraints enforced in either the client or server) without generating the form and then the DDL for testing the application.

The options are:

C	Enforce data integrity rules in the client only.
S	Enforce data integrity rules in the server only.
D	Enforce data integrity rules as defined in the repository.
For more information about using this preference, refer to Where are constraints enforced?


 Generator runtime preferences

Related Topics

These preferences control the behavior of Form Generator during the generation process. The majority of them enable you to predefine the answers to some of the questions asked by Form Generator.

Name	Description	Levels at which preferences can be set
		Cont	Dom	Tab	Con	Col	Mod	MC	Sub	LOV	CnU	ItG	Itm	Act
ALKPLN	Accept joins to lookup tables	X					X
ANOVRW	Overwrite existing form definition?	X					X
APARLN	Accept joins to parent tables	X					X
LWCFLN	Filenames in lowercase, uppercase, or mixed case	X					X
PARAMP	Generated PL/SQL parameter prefix	X					X


 Accept joins to lookup tables (ALKPLN)

Related Topics

Default:	(no value)
Values:	(no value), Yes, No
Levels:	Container, Module
Category:	Generator runtime

During the generation process Form Generator attempts to establish joins to foreign key lookup tables.

If this preference is set to Yes, Form Generator implements these joins.

If the preference is set to No, Form Generator does not implement these joins.

If this preference is not set, Form Generator asks the user to accept or decline each candidate join to a foreign key lookup table.


 Overwrite existing form definition (ANOVRW)

Related Topics

Default:	(no value)
Values:	(no value), Yes, No
Levels:	Container, Module
Category:	Generator runtime

Use this preference to specify whether an existing form that is stored on a database is overwritten during the generation process.

If this preference is set to Yes, an existing form with the same name is overwritten by the newly generated form.

If this preference is set to No, processing of the current module ends if a form with the same name already exists.

If this preference is not set, Form Generator asks the user whether the existing form should be overwritten.


 Accept joins to parent tables (APARLN)

Related Topics

Default:	(no value)
Values:	(no value), Yes, No
Levels:	Container, Module
Category:	Generator runtime

During the generation process, Form Generator tries to establish joins to foreign key parent tables.

If this preference is set to Yes, Form Generator implements these joins.

If this preference is set to No, Form Generator does not implement these joins.

If this preference is not set, Form Generator asks the user to accept or decline each candidate join to a foreign key parent table.


Filenames in lowercase (LWCFLN)
 Filenames in lowercase, uppercase, or mixed case (LWCFLN)

Related Topics

Default:	UPPER
Values:	UPPER, LOWER, MIXED
Levels:	Container, Module
Category:	Generator runtime

Use this preference to specify the case of filenames when writing or reading from a file system.

Note that Form Generator ignores this preference when searching for files stored in the repository.


 Generated PL/SQL parameter prefix (PARAMP)

Related Topics

Default:	P_
Values:	Up to 10 characters
Levels:	Container, Module
Category:	Generator runtime

Use this preference to specify the characters Form Generator is to prefix to column names when constructing parameter names. The first character must be a letter. Any subsequent characters must be valid in a PL/SQL identifier (i.e. alphanumeric, underscore or dollar sign).

The parameter names of generated PL/SQL procedures are frequently based on column names. However, it is very important that the generated parameter names are different to the column names. Form Generator enforces this by:

•	using the prefix specified by this preference when creating PL/SQL parameter names from column names

•	insisting that no column name starts with the parameter prefix specified by this preference


 Journaling preferences

Related Topics

These preferences affect the code generated by Form Generator that marks rows with user/date created/last modified, and journals changes of user data into a journal table.

Name	Description	Levels at which preferences can be set
		Cont	Dom	Tab	Con	Col	Mod	MC	Sub	LOV	CnU	ItG	Itm	Act
JNNTMD	In which operations is note field mandatory	X		X			X	X
JNNTRQ	Which operations allow note field entry	X		X			X	X
JNSSID	Record userenv('sessionid') on journal rows?	X		X			X	X


 In which operations is note field mandatory (JNNTMD)

Related Topics

Default:	U
Values:	(no value), up to 5 characters
Levels:	Container, Table, Module, Module Component
Category:	Journaling

Use this preference to specify when the user of a generated form has to enter a journal note for a change to a table.

The value of this preference is a combination of one or more of the following:

I	insert operations
U	update operations
D	delete operations
For example, if a journal note must be created when a new record is inserted or deleted, the value of this preference must be set to ID.

This preference is ignored if the appropriate letter is not also set in the JNNTRQ preference.

For more information about using this preference, refer to Recording information in the journal table.

Related preferences

JNNTRQ

JNSSID


 Which operations allow note field entry (JNNTRQ)

Related Topics

Default:	U
Values:	(no value), up to 5 characters
Levels:	Container, Table, Module, Module Component
Category:	Journaling

Use this preference to specify when a user can enter journal notes for a particular operation.

The value of this preference is a combination of one or more of the following:

I	insert operations
U	update operations
D	delete operations
For example, if the user can enter a note when a new record is inserted and when an existing record is updated, the value for this preference is set to IU.

For more information about using this preference, refer to Recording information in the journal table.

Related preferences

JNNTMD

JNSSID


 Record userenv('sessionid') on journal rows (JNSSID)

Related Topics

Default:	No
Values:	Yes, No
Levels:	Container, Table, Module, Module Component
Category:	Journaling

Use this preference to specify whether session information is recorded in the journal table when the journaling is being performed by the client. This preference has no effect when the client is calling functions in the server to perform journaling.

If this preference is set to Yes, auditing session identifiers are recorded in the journal table.

If this preference is set to No, auditing session identifiers are not recorded in the journal table.

For more information about using this preference, refer to Recording information in the journal table.


 Layout preferences

Related Topics

These preferences enable you to control the generation of clear patterns for graphic objects/text, and line widths.

Name	Description	Levels at which preferences can be set
		Cont	Dom	Tab	Con	Col	Mod	MC	Sub	LOV	CnU	ItG	Itm	Act
LAYFRA	Use frames instead of graphic objects/text	X					X
LAYLWD	Line width	X					X


 Use frames instead of graphic objects/text (LAYFRA)

Related Topics

Default:	Yes
Values:	Yes, No
Levels:	Container, Module
Category:	Layout

Use this preference to specify that Form Generator uses frames (and frame titles) instead of graphic objects/text when generating decoration for surrounding:

•	blocks

•	item groups

•	radio groups

•	block context areas

•	overflow areas

If you set this preference to Yes, Form Generator uses frames.

If you set this preference to No, Form Generator uses graphic objects/text.

If LAYFRA is set to Yes, Form Generator also uses frames' Title properties to display titles for generated blocks, item groups and radio groups providing the appropriate title position preference (i.e. BLKTLP, GRPTLP, RADTLP) is set to On Decoration. If the title position preference is set to Inside or Outside, Form Generator creates graphic text to display titles for generated blocks, item groups and radio groups (i.e. as if LAYFRA were set to No).

Using frames rather than graphic lines for decoration offers several benefits:

•	there is more control over the appearance of decoration (for example, the frame decoration can have a rounded style to give it an Oracle look-and-feel)

•	frames are loaded more efficiently than graphic lines at runtime, which significantly improves performance when running forms as WebForms applications

For more information about using this preference, refer to Frame generation.


 Line width (LAYLWD)

Related Topics

Default:	0
Values:	0, 1
Levels:	Container, Module
Category:	Layout

Use this preference to specify the horizontal space that Form Generator reserves for vertical line graphic objects.

If the target environment is bitmapped, and lines are assumed to take up little or no horizontal space, this preference should be set to 0.

If the target environment is character mode, this preference should be set to 1 so that Form Generator reserves adequate space for line graphic objects.


 Layout preferences - block

Related Topics

Use preferences in this category to control properties of generated blocks.

Name	Description	Levels at which preferences can be set
		Cont	Dom	Tab	Con	Col	Mod	MC	Sub	LOV	CnU	ItG	Itm	Act
BLKBWD	Block brush width	X		X			X	X	X
BLKDEC	Block decoration	X		X			X	X	X
BLKDST	Block dash style	X		X			X	X	X
BLKFTS	Block footer separator	X		X			X	X	X
BLKHDS	Block header separator	X		X			X	X	X
BLKJUS	Block justification	X		X			X	X	X
BLKLYS	Block layout style	X		X			X	X	X
BLKMAR	Block margin	X		X			X	X	X
BLKMLF	Block multi-line format	X		X			X	X	X
BLKMLL	Block multi-line line separator	X		X			X	X	X
BLKMLR	Block multi-line row separator	X		X			X	X	X
BLKOVF	Default block overflow action	X					X
BLKSBP	Block scrollbar position	X		X			X	X	X
BLKSBS	Block scrollbar separator	X		X			X	X	X
BLKSBW	Block scrollbar width (obsolete)	X		X			X	X	X
BLKSLR	Block single-line row separator	X		X			X	X	X
BLKTAB	Block tabulation table	X		X			X	X	X
BLKTFB	Title first block of form	X					X
BLKTLJ	Block title justification	X		X			X	X	X
BLKTLM	Block title margin	X		X			X	X	X
BLKTLP	Block title position	X		X			X	X	X
BLKTLS	Block title spacing	X		X			X	X	X
BLKUTT	Use block tabulation table	X		X			X	X	X
BLKVFL	Block vertical fill (try and use space in 2 dims)	X		X			X	X	X
BLKVSB	Block vertical scrollbar (obsolete)	X		X			X	X	X
How to use these preferences to control:

Block appearance

Block arrangement

Block titles

Block spacing

Block scrollbars


 Using preferences to control block appearance

Related Topics

The following preferences (in the Layout Preferences - Block category) determine the appearance of a block.

Preference	Meaning
BLKDEC	Block decoration
BLKBWD	Block brush width
BLKDST	Block dash style


 Using preferences to control block arrangement

Related Topics

The following preferences (in the Layout Preferences - Block category) determine the arrangement of blocks on a form.

Preference	Meaning
BLKJUS	Block justification
BLKLYS	Block layout style
BLKMLF	Block multi-line format
BLKOVF	Default block overflow action
BLKTAB	Block tabulation table
BLKUTT	Use block tabulation table
BLKVFL	Block vertical fill


 Using preferences to control block titles

Related Topics

The following preferences (in the Layout Preferences - Block category) determine how the title of a block looks.

Preference	Meaning
BLKTFB	Title first block of form
BLKTLJ	Block title justification
BLKTLM	Block title margin
BLKTLP	Block title position
BLKTLS	Block title spacing


 Using preferences to control block spacing

Related Topics

The following preferences (in the Layout Preferences - Block category) determine the amount of white space around a block.

Preference	Meaning
BLKFTS	Block footer separator
BLKHDS	Block header separator
BLKMAR	Block margin
BLKMLL	Block multi-line line separator
BLKMLR	Block multi-line row separator
BLKSLR	Block single-line row separator


 Using preferences to control block scrollbars

Related Topics

The following preferences (in the Layout Preferences - Block category) determine the appearance of any block scrollbars.

Preference	Meaning
BLKSBP	Block scrollbar position
BLKSBS	Block scrollbar separator
BLKVSB	Block vertical scrollbar (This preference is obsolete in Oracle Designer release 2 onwards. We strongly recommend you use the appropriate source object property in an object library instead. For more information, refer to Using Object Libraries.)


 Block brush width (BLKBWD)

Related Topics

Default:	0
Values:	0, 1, 2, 4, 8, 16
Levels:	Container, Table, Module, Module Component, Module Sub-component
Category:	Layout - Block

Use this preference to specify the brush width for drawing rectangles and lines as decoration for blocks (and layout regions in multi-region blocks).

The value of this preference is in points (where a point is 1/72nd of an inch). A value of 0 indicates the thinnest line available on your platform.

Form Generator assumes that lines do not take up any horizontal or vertical space, so note the following:

•	If you use large brush widths, the lines drawn may encroach on other generated objects. In this case, you should consider allowing additional horizontal space for decoration, by either setting the LAYLWD (line width) preference to 1, or increasing the relevant margin preference for the object that is being decorated.

•	Additional vertical space for decoration can be obtained by increasing the relevant header or footer separator preferences for the object being decorated.

If LAYFRA is set to Yes, Form Generator creates decoration as frames. If LAYFRA is set to No, Form Generator creates decoration as graphic objects.


 Block decoration (BLKDEC)

Related Topics

Default:	RECTANGLE
Values:	(see below)
Levels:	Container, Table, Module, Module Component, Module Sub-component
Category:	Layout - Block

Use this preference to specify the decoration drawn around blocks (and layout regions in multi-region blocks).

The options are:

LINES (L)	Lines are drawn at the top and bottom of the block.
RECTANGLE (R)	A rectangle is drawn around the block.
RAISED RECTANGLE (RR)	A rectangle is drawn around the block with raised bevel.
LOWERED RECTANGLE (LR)	A rectangle is drawn around the block with lowered bevel.
INSET RECTANGLE (IR)	A rectangle is drawn around the block with inset bevel.
OUTSET RECTANGLE (OR)	A rectangle is drawn around the block with outset bevel.
INSET LINES (IL)	Lines are drawn at the top and bottom of the block with inset bevel.
OUTSET LINES (OL)	Lines are drawn at the top and bottom of the block with outset bevel.
LINE TOP (LT)	A line is drawn above the block.
INSET LINE TOP (ILT)	A line is drawn above the block with an inset bevel.
OUTSET LINE TOP (OLT)	A line is drawn above the block with an outset bevel.
NONE (N)	No decoration is drawn around generated blocks.

If LAYFRA is set to Yes, Form Generator creates decoration as frames. If LAYFRA is set to No, Form Generator creates decoration as graphic objects.

If LAYFRA is set to Yes, the option you select for this preference determines which standard source object from the object library to use to set generated frame properties as follows:

If BLKDEC preference set to:	Use this standard source object:
R, RR, LR, IR, OR	CGSO$FRAME_RECT
L, IL, OL	CGSO$HORZ_LINES
LT, ILT, OLT	CGSO$FRAME_LINE_TOP


 Block dash style (BLKDST)

Related Topics

Default:	SOLID
Values:	(see below)
Levels:	Container, Table, Module, Module Component, Module Sub-component
Category:	Layout - Block

Use this preference to specify the dash style used for drawing rectangles and lines as decoration for blocks (and layout regions in multi-region blocks).

The options are:

SOLID (S)	Solid
DOT (.)	Dot
SHORT DASH (-)	Short Dash
DASH DOT (-.)	Dash Dot
DOUBLE DOT (..)	Double Dot
LONG DASH (--)	Long Dash
DASH DOUBLE DOT (-..)	Dash Double Dot

If LAYFRA is set to Yes, Form Generator creates decoration as frames. If LAYFRA is set to No, Form Generator creates decoration as graphic objects.


 Block footer separator (BLKFTS)

Related Topics

Default:	1
Values:	Up to 30 characters
Levels:	Container, Table, Module, Module Component, Module Sub-component
Category:	Layout - Block

Use this preference to specify the amount of vertical space to leave at the bottom of the block (or layout region in a multi-region block) between the last line of generated items and any decoration.

The default units are character cells (i.e. if you do not specify a unit, Form Generator uses character cells). However, you can specify an alternative unit by appending a space and one of the following abbreviations:

Abbreviation	Unit	Example	Max No of decimal places
in	real inches	0.7 in	three (i.e. 0.001, but not 0.0001)
cm	real centimeters	4.56 cm	three (i.e. 0.001, but not 0.0001)
pixel	real pixels	120 pixel	none
point	real points	30 point	one (i.e. 0.1, but not 0.01)

During generation, Form Generator converts the value you specify into the equivalent units in the generated form. For more information about real units, refer to Notes on coordinate systems and Form Generator.


 Block header separator (BLKHDS)

Related Topics

Default:	1
Values:	Up to 30 characters
Levels:	Container, Table, Module, Module Component, Module Sub-component
Category:	Layout - Block

Use this preference to specify the amount of vertical space to leave at the top of the block (or layout region in a multi-region block) between any decoration and the first line of generated items.

The default units are character cells (i.e. if you do not specify a unit, Form Generator uses character cells). However, you can specify an alternative unit by appending a space and one of the following abbreviations:

Abbreviation	Unit	Example	Max No of decimal places
in	real inches	0.7 in	three (i.e. 0.001, but not 0.0001)
cm	real centimeters	4.56 cm	three (i.e. 0.001, but not 0.0001)
pixel	real pixels	120 pixel	none
point	real points	30 point	one (i.e. 0.1, but not 0.01)

During generation, Form Generator converts the value you specify into the equivalent units in the generated form. For more information about real units, refer to Notes on coordinate systems and Form Generator.


 Block justification (BLKJUS)

Related Topics

Default:	CENTER
Values:	CENTER, LEFT, RIGHT
Levels:	Container, Table, Module, Module Component, Module Sub-component
Category:	Layout - Block

Use this preference to specify the position of the area in the block (or in the layout region in a multi-region block) within which items are laid out (i.e. the width of the longest line).

The options are:

LEFT (L)	Align the items to the left
RIGHT (R)	Align the items to the right
CENTER (C)	Center the items

Note that Form Generator ignores this preference when using relative tab stops and always aligns items to the left.

For more information about using this preference, refer to Aligning items across multiple blocks.

Related preferences

BLKLYS


 Block layout style (BLKLYS)

Related Topics

Default:	FILL
Values:	(no value), CENTER, FILL
Levels:	Container, Table, Module, Module Component, Module Sub-component
Category:	Layout - Block

Use this preference to specify how all the items in a block (or layout region in a multi-region block) are centered within the area in which they are laid out (determined by the width of the longest line). If tab stops are used to position the items, this preference has no effect.

Items that extend over more than one line may prevent you from moving other items. Form Generator moves items as far as possible to satisfy the preference settings for these items.

The options are:

CENTER (C)	Centers each line (within the width of the longest line)
FILL (F)	Each line is left- and right-justified
(no value)	Items are not centered
Related preferences

BLKJUS

BLKUTT

ITMSFJ


 Block margin (BLKMAR)

Related Topics

Default:	1
Values:	Up to 30 characters
Levels:	Container, Table, Module, Module Component, Module Sub-component
Category:	Layout - Block

Use this preference to specify the size of both the left and right margins of a block (or layout region in a multi-region block).

Each generated block (or layout region) can have a left and a right margin. Objects are laid out between these margins.

The default units are character cells (i.e. if you do not specify a unit, Form Generator uses character cells). However, you can specify an alternative unit by appending a space and one of the following abbreviations:

Abbreviation	Unit	Example	Max No of decimal places
in	real inches	0.7 in	three (i.e. 0.001, but not 0.0001)
cm	real centimeters	4.56 cm	three (i.e. 0.001, but not 0.0001)
pixel	real pixels	120 pixel	none
point	real points	30 point	one (i.e. 0.1, but not 0.01)

During generation, Form Generator converts the value you specify into the equivalent units in the generated form. For more information about real units, refer to Notes on coordinate systems and Form Generator.

For more information about using this preference, refer to Aligning items across multiple blocks.


 Block multi-line format (BLKMLF)

Related Topics

Default:	WRAP
Values:	1, 2, 3, 4, 5, 6, 7, 8, 9, 10, WRAP
Levels:	Container, Table, Module, Module Component, Module Sub-component
Category:	Layout - Block

Use this preference to specify the number of items that are placed on each line in a block (or layout region in a multi-region block) that wraps onto more than one line.

The options are:

1 to 10	No more than the number of items specified by this preference are placed on any one line.
WRAP (W)	No restriction is placed on the number of items that can be placed on a line.
This preference can be overridden by two other preferences:

•	If the BLKVFL preference is set to Yes, the BLKMLF preference is assumed to be set to WRAP.

•	If absolute tab stops are used (i.e. the BLKUTT preference is set), the number of tab stops defined by the BLKTAB preference represents the maximum number of fields that can be placed on any one line.

For more information about using this preference, refer to Aligning items across multiple blocks.

Related preferences

BLKVFL

BLKUTT

BLKTAB


 Block multi-line line separator (BLKMLL)

Related Topics

Default:	1
Values:	Up to 30 characters
Levels:	Container, Table, Module, Module Component, Module Sub-component
Category:	Layout - Block

Use this preference to specify the amount of vertical space used to separate lines of items in a record where the record wraps onto more than one line.

If you set this preference to 0, Form Generator minimizes the amount of vertical space used by a generated block (or layout region in a multi-region block).

The default units are character cells (i.e. if you do not specify a unit, Form Generator uses character cells). However, you can specify an alternative unit by appending a space and one of the following abbreviations:

Abbreviation	Unit	Example	Max No of decimal places
in	real inches	0.7 in	three (i.e. 0.001, but not 0.0001)
cm	real centimeters	4.56 cm	three (i.e. 0.001, but not 0.0001)
pixel	real pixels	120 pixel	none
point	real points	30 point	one (i.e. 0.1, but not 0.01)

During generation, Form Generator converts the value you specify into the equivalent units in the generated form. For more information about real units, refer to Notes on coordinate systems and Form Generator.


 Block multi-line row separator (BLKMLR)

Related Topics

Default:	1
Values:	Up to 30 characters
Levels:	Container, Table, Module, Module Component, Module Sub-component
Category:	Layout - Block

Use this preference to control the vertical space that separates rows displayed in a block (or layout region in a multi-region block) where more than one row is displayed, and where each row wraps onto more than one line.

The default units are character cells (i.e. if you do not specify a unit, Form Generator uses character cells). However, you can specify an alternative unit by appending a space and one of the following abbreviations:

Abbreviation	Unit	Example	Max No of decimal places
in	real inches	0.7 in	three (i.e. 0.001, but not 0.0001)
cm	real centimeters	4.56 cm	three (i.e. 0.001, but not 0.0001)
pixel	real pixels	120 pixel	none
point	real points	30 point	one (i.e. 0.1, but not 0.01)

During generation, Form Generator converts the value you specify into the equivalent units in the generated form. For more information about real units, refer to Notes on coordinate systems and Form Generator.


 Default block overflow action (BLKOVF)

Related Topics

Default:	WRAP LINE
Values:	OVERFLOW BELOW, OVERFLOW RIGHT, SPREAD TABLE, WRAP LINE
Levels:	Container, Module
Category:	Layout - Block

Use this preference to specify the default action that Form Generator takes when a row does not fit on a single line within the width available to the block (or layout region in a multi-region block).

This value is only used if an overflow action is not defined against the module component.

The options are:

WRAP LINE (W)	Form Generator creates multi-line rows if a row does not fit on a single line.
SPREAD TABLE (S)	Form Generator creates a spreadtable to display the overflow.
OVERFLOW RIGHT (R)	Form Generator creates an overflow area on the right of the canvas. A single row is displayed in this overflow area.
OVERFLOW BELOW (B)	Form Generator creates an overflow area below the content items. A single row is displayed in this overflow area.


 Block scrollbar position (BLKSBP)

Related Topics

Default:	LEFT
Values:	LEFT, RIGHT
Levels:	Container, Table, Module, Module Component, Module Sub-component
Category:	Layout - Block

Use this preference to specify the position of the scrollbar within the block (or layout region in a multi-region block).

The options are:

LEFT (L)	The scrollbar is positioned on the left of the block.
RIGHT (R)	The scrollbar is positioned on the right of the block.

Note that if the block contains a multi-record area and a single record area (e.g.for an image, or a tab canvas), Form Generator uses this preference to place the scrollbar beside the multi-record area.

To generate a scrollbar for a block, set properties of the appropriate object in an object library (or use the obsolete preference BLKVSB).

To generate a scrollbar for a layout region in a multi-region block, use MRBVSB.

For more information about using this preference, refer to Aligning items across multiple blocks.


 Block scrollbar separator (BLKSBS)

Related Topics

Default:	1
Values:	Up to 30 characters
Levels:	Container, Table, Module, Module Component, Module Sub-component
Category:	Layout - Block

Use this preference to specify the horizontal space to leave between the generated items within a block (or layout region in a multi-region block) and the scrollbar (that is positioned within the margins defined for the block or layout region).

To generate a scrollbar for a block, set properties of the appropriate object in an object library (or use the obsolete preference BLKVSB).

To generate a scrollbar for a layout region in a multi-region block, use MRBVSB.

The default units are character cells (i.e. if you do not specify a unit, Form Generator uses character cells). However, you can specify an alternative unit by appending a space and one of the following abbreviations:

Abbreviation	Unit	Example	Max No of decimal places
in	real inches	0.7 in	three (i.e. 0.001, but not 0.0001)
cm	real centimeters	4.56 cm	three (i.e. 0.001, but not 0.0001)
pixel	real pixels	120 pixel	none
point	real points	30 point	one (i.e. 0.1, but not 0.01)

During generation, Form Generator converts the value you specify into the equivalent units in the generated form. For more information about real units, refer to Notes on coordinate systems and Form Generator.

For more information about using this preference, refer to Aligning items across multiple blocks.

Related preferences

BLKVSB


 Block scrollbar width (BLKSBW) (obsolete)

Related Topics

Default:	2
Values:	Up to 30 characters
Levels:	Container, Table, Module, Module Component, Module Sub-component
Category:	Layout - Block

We strongly recommend you do not use this obsolete preference. Instead, set properties of an appropriate source object in an object library. Click here  to find out more (including how to continue using this preference).

Having read the above, you might decide to disregard the recommendation. In which case, you can use this preference to specify the width of the scrollbar in a block (or layout region in a multi-region block).

To generate a scrollbar for a block, set properties of the appropriate object in an object library (or use the obsolete preference BLKVSB).

To generate a scrollbar for a layout region in a multi-region block, use MRBVSB.

The default units are character cells (i.e. if you do not specify a unit, Form Generator uses character cells). However, you can specify an alternative unit by appending a space and one of the following abbreviations:

Abbreviation	Unit	Example	Max No of decimal places
in	real inches	0.7 in	three (i.e. 0.001, but not 0.0001)
cm	real centimeters	4.56 cm	three (i.e. 0.001, but not 0.0001)
pixel	real pixels	120 pixel	none
point	real points	30 point	one (i.e. 0.1, but not 0.01)

During generation, Form Generator converts the value you specify into the equivalent units in the generated form. For more information about real units, refer to Notes on coordinate systems and Form Generator.

Related preferences

BLKVSB


 Block single-line row separator (BLKSLR)

Related Topics

Default:	0
Values:	Up to 30 characters
Levels:	Container, Table, Module, Module Component, Module Sub-component
Category:	Layout - Block

Use this preference to specify the amount of vertical space that separates rows displayed in a multi-row block (or multi-row layout region in a multi-region block) when each row occupies only one line (i.e. does not wrap).

The default units are character cells (i.e. if you do not specify a unit, Form Generator uses character cells). However, you can specify an alternative unit by appending a space and one of the following abbreviations:

Abbreviation	Unit	Example	Max No of decimal places
in	real inches	0.7 in	three (i.e. 0.001, but not 0.0001)
cm	real centimeters	4.56 cm	three (i.e. 0.001, but not 0.0001)
pixel	real pixels	120 pixel	none
point	real points	30 point	one (i.e. 0.1, but not 0.01)

During generation, Form Generator converts the value you specify into the equivalent units in the generated form. For more information about real units, refer to Notes on coordinate systems and Form Generator.


 Block tabulation table (BLKTAB)

Related Topics

Default:	2.20.42.60
Values:	Up to 80 characters
Levels:	Container, Table, Module, Module Component, Module Sub-component
Category:	Layout - Block

Use this preference to specify the absolute tab stops that are used to position items and their prompts. The absolute tab stops must be in ascending order and separated by periods.

Note:	The BLKUTT preference must be set.

For more information about using this preference, refer to About absolute tab stops..

Related preferences

BLKUTT


 Title first block of form (BLKTFB)

Related Topics

Default:	Yes
Values:	Yes, No
Levels:	Container, Module
Category:	Layout - Block

Use this preference to specify whether the first block of a form is given a title.

If this preference is set to Yes, and the PAGTFB preference is set to Yes, the first block of a form is given a title.

If this preference is set to No, the first block of a form is not given a title.

Form Generator ignores this preference if BLKTLP is set to No.

Related preferences

POPTFB

PAGTFB


 Block title justification (BLKTLJ)

Related Topics

Default:	LEFT
Values:	CENTER, LEFT, RIGHT
Levels:	Container, Table, Module, Module Component, Module Sub-component
Category:	Layout - Block

Use this preference to specify the alignment of the title within a block (or layout region in a multi-region block).

The options are:

LEFT (L)	The title is left-aligned.
RIGHT (R)	The title is right-aligned.
CENTER (C)	The title is centered.

Note the following:

•	If the block title does not fit within the block, the block is not given a title.

•	If LAYFRA is set to Yes and BLKTLP is set to On Decoration, Form Generator creates decoration as a frame and uses this preference to set the frame's Frame Title Alignment property. If LAYFRA is set to No (or if LAYFRA is set to Yes and BLKTLP is not set to On Decoration), Form Generator creates the title as graphic text and uses this preference to specify the position of the graphic text.


 Block title margin (BLKTLM)

Related Topics

Default:	2
Values:	Up to 30 characters
Levels:	Container, Table, Module, Module Component, Module Sub-component
Category:	Layout - Block

Use this preference to specify both the left and right margins for the title of a block (or layout region in a multi-region block).

The default units are character cells (i.e. if you do not specify a unit, Form Generator uses character cells). However, you can specify an alternative unit by appending a space and one of the following abbreviations:

Abbreviation	Unit	Example	Max No of decimal places
in	real inches	0.7 in	three (i.e. 0.001, but not 0.0001)
cm	real centimeters	4.56 cm	three (i.e. 0.001, but not 0.0001)
pixel	real pixels	120 pixel	none
point	real points	30 point	one (i.e. 0.1, but not 0.01)

During generation, Form Generator converts the value you specify into the equivalent units in the generated form. For more information about real units, refer to Notes on coordinate systems and Form Generator.


 Block title position (BLKTLP)

Related Topics

Default:	INSIDE
Values:	INSIDE, OUTSIDE, ON DECORATION, NONE
Levels:	Container, Table, Module, Module Component, Module Sub-component
Category:	Layout - Block

Use this preference to specify the positions of block titles.

The options are:

INSIDE	The title is positioned inside any decoration drawn around the block.
OUTSIDE	The title is positioned outside any decoration drawn around the block.
ON DECORATION	The title is placed on the decoration drawn around the block.  Notes: Set the title font fill pattern to a different color to the decoration (e.g. the canvas color would be a sensible choice). A title is not placed on a raised or lowered bevel decoration; if a block is surrounded by a raised or lowered bevel, Form Generator uses the INSIDE option.
NONE	The block is not given a title.

Use the BLKTLS preference to specify the space either side of the title. Use the BLKTLM and BLKTLJ preferences to adjust the position of the title within the line.

If LAYFRA is set to Yes and this preference is set to On Decoration, Form Generator creates decoration as a frame and uses BLKTLJ to set the frame's Frame Title Alignment property. If LAYFRA is set to No (or if LAYFRA is set to Yes and this preference is not set to On Decoration), Form Generator creates the title as graphic text and uses BLKTLJ to specify the position of the graphic text.


 Block title spacing (BLKTLS)

Related Topics

Default:	2
Values:	0 to 99
Levels:	Container, Table, Module, Module Component, Module Sub-component
Category:	Layout - Block

Use this preference to specify the amount of horizontal space left on either side of the title of a block (or layout region in a multi-region block).

This preference has little impact when the target environment is bitmapped as the title is placed inside any decoration and spacing on either side of it is unnoticed:

 ----------------------------------------

|      Block Title                       |

However, when the target environment is character mode, the title is embedded within any decoration and spacing on either side of it is more apparent:

 ------  Block Title  ----------------------------------

|                                        |


 Use block tabulation table (BLKUTT)

Related Topics

Default:	(no value)
Values:	(no value), ED, EP, SD, SP, SS, EE, SE1, SE2
Levels:	Container, Table, Module, Module Component, Module Sub-component
Category:	Layout - Block

Use this preference to specify whether Form Generator uses absolute tab stops for positioning items. If this preference is not set, absolute tab stops are not used. Note that Form Generator never uses absolute tab stops to position:

•	items on spreadtable canvases

•	context items for overflow areas (i.e. where a module component's Overflow property is set to Spreadtable, Overflow area right or Overflow area below).

Absolute tab stops are set using the BLKTAB preference.

The options are:

ED	Use the tab stops to align the end of the items.

EP	Use the tab stops to align the end of the post-prompts (if there is no post-prompt, then the effect is the same as for ED).

SD	Use the tab stops to align the start of the items.

SP	Use the tab stops to align the start of the prompts.

SS	Align the start of the prompts and align the start of the items

EE	Align the end of the prompts and align the end of the items

SE1	Align the start of the prompts and align the end of the items

SE2	Align the start of the prompts and align the end of the items

Note:	SE1 and SE2 have the same effect.

If BLKUTT is set to one of ED, EP, SD, or SP . . .

The gap between prompt and item is specified by the preference ITMPIG. The gap between an item and the next prompt, specified by the preference ITMIPG, is the minimum gap between the item and the prompt. If the gap is greater than the distance to the next absolute tab stop, the next absolute tab stop after that is used.

If insufficient space is available, items are truncated to align with absolute tab stops.

If BLKUTT is set to one of SS, EE, SE1, or SE2 . . .

Form Generator uses the absolute tab stops specified by the BLKTAB preference to align prompts to even tab stops (i.e. tab 0, tab 2, tab 4, . . .) and items to odd tab stops (i.e. tab 1, tab 3, tab 5, . . .). ITMPIG and ITMIPG specify the minimum gaps between prompt and item, and between item and the next prompt. If gaps will be less than specified by these preferences, the next appropriate absolute tab stop is used.

If insufficient space is available to display a prompt beside an item, the prompt is displayed above the item. In this case, if BLKUTT is set to SS, the SD alignment is used. If BLKUTT is set to EE, SE1 or SE2, the ED alignment is used.

For more information about using this preference, refer to Aligning items across multiple blocks.

Related preferences

BLKTAB

ITMPIG

ITMIPG

BLKMLF


 Block vertical fill (BLKVFL)

Related Topics

Default:	Yes
Values:	(no value), Yes, No
Levels:	Container, Table, Module, Module Component, Module Sub-component
Category:	Layout - Block

Use this preference to specify whether Form Generator uses the space available below short items that are adjacent to tall items.

This preference overrides the BLKMLF preference.

If this preference is set to Yes, it has the same effect as setting the BLKMLF preference to WRAP, allowing Form Generator to make the best use of the available vertical space.

Related preferences

BLKMLF


 Block vertical scrollbar (BLKVSB) (obsolete)

Related Topics

Default:	No
Values:	Yes, No
Levels:	Container, Table, Module, Module Component, Module Sub-component
Category:	Layout - Block

We strongly recommend you do not use this obsolete preference. Instead, set properties of an appropriate source object in an object library. Click here to find out more (including how to continue using this preference).

Having read the above, you might decide to disregard the recommendation. In which case, you can use this preference to specify whether a vertical scrollbar is generated for each block.

If this preference is set to Yes, a vertical scrollbar is generated.

If this preference is set to No, no vertical scrollbar is generated.

Notes

•	If properties of a generated block are derived from a block in an object library, Form Generator overrides the setting of this preference and obtains the generated block's scrollbar properties from the object library block.

•	To generate a scrollbar for a layout region in a multi-region block, use MRBVSB.


 Layout preferences - button

Related Topics

These preferences control basic details of generated buttons.

Name	Description	Levels at which preferences can be set
		Cont	Dom	Tab	Con	Col	Mod	MC	Sub	LOV	CnU	ItG	Itm	Act
BUTIWD	Button indicator width	X					X
BUTMAX	Maximum number of buttons within a radio group	X	X	X		X	X	X	X				X
BUTPEX	Extra expansion for button						X


 Button indicator width (BUTIWD)

Related Topics

Default:	3
Values:	Up to 30 characters
Levels:	Container, Module
Category:	Layout - Button

Use this preference to determine the width of the icon used for the radio button.

This preference is unlikely to need changing, unless you are generating a form to run on a different target platform.

The default units are character cells (i.e. if you do not specify a unit, Form Generator uses character cells). However, you can specify an alternative unit by appending a space and one of the following abbreviations:

Abbreviation	Unit	Example	Max No of decimal places
in	real inches	0.7 in	three (i.e. 0.001, but not 0.0001)
cm	real centimeters	4.56 cm	three (i.e. 0.001, but not 0.0001)
pixel	real pixels	120 pixel	none
point	real points	30 point	one (i.e. 0.1, but not 0.01)

During generation, Form Generator converts the value you specify into the equivalent units in the generated form. For more information about real units, refer to Notes on coordinate systems and Form Generator.

Related preferences

CBXIWD

PLSIWD

TLSSBW


 Maximum number of buttons within a radio group (BUTMAX)

Related Topics

Default:	5
Values:	(no value), 1 to 20
Levels:	Container, Domain, Table, Column, Module, Module Component, Module Sub-component, Item
Category:	Layout - Button

Use this preference to specify the maximum number of buttons that Form Generator can use for a radio group.

If the item is optional, the NULL button will be counted.

Form Generator warns you if it creates a radio group with more buttons than expected, but the radio group is still created if either of the following conditions is met:

•	the item is optional and the number of allowable values is greater than or equal to the value you set for BUTMAX

•	the item is mandatory and the number of allowable values is greater than the value you set for BUTMAX

If this preference is not set, no check is made on the number of buttons for the radio group.


 Extra expansion for button (BUTPEX)

Related Topics

Default:	0.2 in
Values:	zero, size in abbreviation units
Levels:	Module
Category:	Layout - Button

Related preferences: PLSPEX, CBXPEX, ITMPPE

Use this preference to expand the width of the button specified by a constant for displaying translatable character sets.

This preference is unlikely to need changing, unless you are generating a form to display different character setsof varying width.

The default units are character cells (i.e. if you do not specify a unit, Form Generator uses character cells). However, you can specify an alternative unit by appending a space and one of the following abbreviations:

Abbreviation	Unit	Example	Max number of decimal places
in	real inches	0.7 in	three (i.e. 0.001, but not 0.0001)
cm	real centimeters	4.56 cm	three (i.e. 0.001, but not 0.0001)
pixel	real pixels	120 pixel	none
point	real points	30 point	one (i.e. 0.1, but not 0.01)

During generation, Form Generator converts the value you specify into the equivalent units in the generated form. For more information about real units, refer to Notes on coordinate systems and Form Generator.


 Layout preferences - canvas

Related Topics

These preferences control the maximum height of content and stacked canvases, and whether to generate native Oracle Forms tab canvases or an alternative implementation using a poplist and stacked canvases.

Name	Description	Levels at which preferences can be set
		Cont	Dom	Tab	Con	Col	Mod	MC	Sub	LOV	CnU	ItG	Itm	Act
CANMHT	Canvas maximum height	X					X
CANNTC	Native tab canvases	X					X


 Canvas maximum height (CANMHT)

Related Topics

Default:	255
Values:	1 to 9999
Levels:	Container, Module
Category:	Layout - Canvas

Use this preference to specify the maximum height of a generated content canvas or stacked canvas.

Form Generator uses the maximum height to calculate the Expanded Rows figure if you do not specify the number of rows to be displayed in a generated block. For more information, refer to When does Form Generator expand canvases?.


 Native tab canvases (CANNTC)

Related Topics

Default:	Yes
Values:	Yes, No
Levels:	Container, Module
Category:	Layout - Canvas

Use this preference to specify how Form Generator generates native Oracle Forms tab canvases from:

•	module components that have their Placement properties set to New tab canvas page

•	item groups that have their Stacked properties set to Yes (i.e. stacked item groups)

For more information about tab canvases in general, refer to Tab canvas generation.

Module components

If this preference is set to Yes and a module component has its Placement properties set to New tab canvas page, Form Generator generates a native Oracle Forms tab canvas. The tab canvas pages contain those blocks generated from module components with Placement properties set to New tab canvas page or Same canvas page.

If this preference is set to No, Form Generator generates the module components as blocks on separate stacked canvases.

For more information, refer to Generating blocks onto native Oracle Forms tab canvases.

Stacked item groups

If this preference is set to Yes, stacked item groups are generated as native Oracle Forms tab canvas pages.

If this preference is set to No, Form Generator generates an alternative implementation of tab canvases. Stacked item groups are placed on separate stacked canvases, and a poplist is created to enable navigation between the stacked canvases.

For more information, refer to Stacked item group generation.


 Layout preferences - check box

Related Topics

These preferences control details of generated check box items.

Name	Description	Levels at which preferences can be set
		Cont	Dom	Tab	Con	Col	Mod	MC	Sub	LOV	CnU	ItG	Itm	Act
CBXALM	Allow label above check indicator in a multi-row block.	X		X			X	X	X
CBXIWD	Check box indicator width	X					X
How to use these preferences to control:

Check box layout


 Using preferences to control check box layout

Related Topics

The following preferences (in the Layout Preferences - Checkbox category) determine the appearance and behavior of check boxes.

Preference	Meaning
CBXALM	Allow label above check box indicator in a multi-row block
CBXIWD	Check box indicator width
Example

To generate check boxes in a multi-row block, with labels appearing next to each check box, set CBXALM to No.


Allow label above check indicator in a multi row block (CBXALM)
 Allow label above check indicator in a multi-row block (CBXALM)

Related Topics

Default:	Yes
Values:	Yes, No
Levels:	Container, Table, Module, Module Component, Module Sub-component
Category:	Layout - Check Box

Use this preference to specify whether a single prompt is positioned above a column of check boxes in a multi-row block (or multi-row layout region in a multi-region block) instead of a label beside each check box. In other words, whether the Prompt property of the generated item is used instead of the Label property.

If this preference is set to Yes, a prompt is displayed above the column of check boxes.

If this preference is set to No, a check box label is displayed next to each check box indicator.


 Check box indicator width (CBXIWD)

Related Topics

Default:	2
Values:	Up to 30 characters
Levels:	Container, Module
Category:	Layout - Check Box

Use this preference to specify the space allocated for the icon that depicts the check box indicator.

Note:	CBXIWD does not specify the size of the check box indicator icon.

You will only need to change this preference when generating forms to run on a target environment other than MS Windows.

The default units are character cells (i.e. if you do not specify a unit, Form Generator uses character cells). However, you can specify an alternative unit by appending a space and one of the following abbreviations:

Abbreviation	Unit	Example	Max No of decimal places
in	real inches	0.7 in	three (i.e. 0.001, but not 0.0001)
cm	real centimeters	4.56 cm	three (i.e. 0.001, but not 0.0001)
pixel	real pixels	120 pixel	none
point	real points	30 point	one (i.e. 0.1, but not 0.01)

During generation, Form Generator converts the value you specify into the equivalent units in the generated form. For more information about real units, refer to Notes on coordinate systems and Form Generator.

Related preferences

BUTIWD

TLSSBW


 Extra expansion for check box (CBXPEX)

Related Topics

Default:	0.3 in
Values:	zero, size in abbreviation units
Levels:	Module
Category:	Layout - Check Box

Related preferences: BUTPEX, PLSPEX, ITMPPE

Use this preference to expand the width of the check box specified by a constant for displaying translatable character sets.

This preference is unlikely to need changing, unless you are generating a form to display different character setsof varying width.

The default units are character cells (i.e. if you do not specify a unit, Form Generator uses character cells). However, you can specify an alternative unit by appending a space and one of the following abbreviations:

Abbreviation	Unit	Example	Max number of decimal places
in	real inches	0.7 in	three (i.e. 0.001, but not 0.0001)
cm	real centimeters	4.56 cm	three (i.e. 0.001, but not 0.0001)
pixel	real pixels	120 pixel	none
point	real points	30 point	one (i.e. 0.1, but not 0.01)

During generation, Form Generator converts the value you specify into the equivalent units in the generated form. For more information about real units, refer to Notes on coordinate systems and Form Generator.


 Layout preferences - combo box

Related Topics

These preferences control details of generated combo boxes:

Name	Description	Levels at which preferences can be set
		Cont	Dom	Tab	Con	Col	Mod	MC	MC	LOV	CnU	ItG	Itm	Act
CLSIWD	Combo box indicator width	X					X
CLSMAX	Maximum number of items in a combo box	X	X	X		X	X	X	X				X
How to use these preferences to control:

Combo box layout


 Using preferences to control combo box layout

Related Topics

The following preferences (in the Layout Preferences - Combo box category) determine the appearance and behavior of combo boxes.

Preference	Meaning
CLSIWD	Combo box indicator width
CLSMAX	Maximum number of items in a combo box
Example

To generate a combo box containing a maximum of four values in the drop down list, set CLSMAX to 4.


Combo-box indicator width (CLSIWD)
 Combo box indicator width (CLSIWD)

Related Topics

Default:	4
Values:	Up to 30 characters
Levels:	Container, Module
Category:	Layout - Combo Box

Use this preference to specify the space allocated for the icon that depicts the combo box indicator.

Note:	CLSIWD does not specify the size of the combo box indicator icon.

You will only need to change this preference when generating forms for a target environment other than MS Windows.

The default units are character cells (i.e. if you do not specify a unit, Form Generator uses character cells). However, you can specify an alternative unit by appending a space and one of the following abbreviations:

Abbreviation	Unit	Example	Max No of decimal places
in	real inches	0.7 in	three (i.e. 0.001, but not 0.0001)
cm	real centimeters	4.56 cm	three (i.e. 0.001, but not 0.0001)
pixel	real pixels	120 pixel	none
point	real points	30 point	one (i.e. 0.1, but not 0.01)

During generation, Form Generator converts the value you specify into the equivalent units in the generated form. For more information about real units, refer to Notes on coordinate systems and Form Generator.

Related preferences

BUTIWD

CBXIWD

PLSIWD

TLSSBW


Combo-box max no. of items in a combo-box (CLSMAX)
 Combo box max no. of items in a combo box (CLSMAX)

Related Topics

Default:	99
Values:	(no value), 1 - 999
Levels:	Container, Domain, Table, Column, Module, Module Component, Module Sub-component, Item
Category:	Layout - Combo Box

Use this preference to specify the maximum number of values that Form Generator places in a combo box.

If an item is optional, the NULL value for this item is counted.

If the value set for this preference is exceeded, Form Generator issues a warning.

If this preference is not set, no check is made on the number of values.


 Layout preferences - content canvas

Related Topics

These preferences control the details and appearance of generated content canvases (sometimes called pages). They also enable you to control the values/messages to use for the query-mode field that is displayed by default at the top of each content canvas.

Name	Description	Levels at which preferences can be set
		Cont	Dom	Tab	Con	Col	Mod	MC	Sub	LOV	CnU	ItG	Itm	Act
CONAME	Company name	X					X
OFFMES	Auto-query mode OFF message	X					X
ONMES	Auto-query mode ON message	X					X
PAGBIN	Content canvas relative block indentation	X					X
PAGCHT	Content canvas height	X					X
PAGCON	Content canvas context depth	X		X			X	X	X
PAGCWD	Content canvas width	X					X
PAGFTS	Content canvas footer separator	X					X
PAGHDS	Content canvas header separator	X					X
PAGIBS	Content canvas inter-block separator	X		X			X	X	X
PAGMAR	Content canvas margin	X					X
PAGSTB	Generate block stubs on content canvases	X					X
PAGTFB	Title first block on content canvas	X					X
How to use these preferences to control:

Content canvas dimensions

Content canvas spacing

Content canvas contents


 Using preferences to control content canvas dimensions

Related Topics

The following preferences (in the Layout Preferences - content canvas category) determine the appearance of the content canvas.

Preference	Meaning
PAGCHT	Content canvas height
PAGCWD	Content canvas width


 Using preferences to control content canvas spacing

Related Topics

The following preferences (in the Layout Preferences - content canvas category) determine the amount of white space surrounding the content canvas.

Preference	Meaning
PAGFTS	Content canvas footer separator
PAGHDS	Content canvas header separator
PAGIBS	Content canvas inter-block separator
PAGMAR	Content canvas margin


 Using preferences to control content canvas contents

Related Topics

The following preferences (in the Layout Preferences - content canvas category) determine the contents of the content canvas.

Preference	Meaning
CONAME	Company name
OFFMES	Auto-query mode OFF message
ONMES	Auto-query mode ON message
PAGTFB	Title first block on content canvas


 Company name (CONAME)

Related Topics

Default:	(no value)
Values:	(no value), up to 60 characters
Levels:	Container, Module
Category:	Layout - Content canvas

Use this preference to specify the string created as graphic text in the generated form if the CG$CN item is included in the template form.

Make sure the width of the CG$CN item in the template form is sufficient to contain the company name specified by this preference; otherwise, the company name will be truncated.


 Auto-query mode off message (OFFMES)

Related Topics

Default:	Auto-query mode off
Values:	(no value), up to 80 characters
Levels:	Container, Module
Category:	Layout - Content canvas

Use this preference to specify the message that is displayed on the message line when the user changes the query mode, from automatic query of detail blocks, to query detail blocks only on entry to the detail blocks.

Set the value of this preference to the message that is displayed on the message line.

For more information about using this preference, refer to Block synchronization messages and indicators.

Related preferences

BSCHMD

OFFFLD


 Auto-query mode on message (ONMES)

Related Topics

Default:	(no value)
Values:	(no value), up to 80 characters
Levels:	Container, Module
Category:	Layout - Content canvas

Use this preference to specify the message that is displayed on the message line when the user changes the query mode, from query detail blocks only on entry to the detail blocks, to automatic query of detail blocks.

For more information about using this preference, refer to Block synchronization messages and indicators.

Related preferences

BSCHMD

OFFMES


 Content canvas relative block indentation (PAGBIN)

Related Topics

Default:	0
Values:	Up to 30 characters
Levels:	Container, Module
Category:	Layout - Content canvas

Use this preference to specify the relative indentation of blocks (or layout regions in multi-region blocks) on content canvases. Blocks are always centered within the available width.

The default units are character cells (i.e. if you do not specify a unit, Form Generator uses character cells). However, you can specify an alternative unit by appending a space and one of the following abbreviations:

Abbreviation	Unit	Example	Max No of decimal places
in	real inches	0.7 in	three (i.e. 0.001, but not 0.0001)
cm	real centimeters	4.56 cm	three (i.e. 0.001, but not 0.0001)
pixel	real pixels	120 pixel	none
point	real points	30 point	one (i.e. 0.1, but not 0.01)

During generation, Form Generator converts the value you specify into the equivalent units in the generated form. For more information about real units, refer to Notes on coordinate systems and Form Generator.

If this preference is set to 0, all blocks on a content canvas are the same size (i.e. each block is as wide as the available width and there is no block indentation).

If this preference has a negative value, the first block on a content canvas is as wide as the available width. Each successive block on the same canvas is indented by twice the value of this preference (i.e. 2 * PAGBIN).

If this preference has a positive value, the last block on a content canvas is as wide as the available width, and each previous block on the same canvas is indented by twice the value of this preference (i.e. 2 * PAGBIN).

If block stubs are not generated on content canvases, a positive value has the same effect as a value of 0.

For more information about using this preference, refer to:

•	Relative block indentation

•	Aligning items across multiple blocks


 Content canvas height (PAGCHT)

Related Topics

Default:	22
Values:	1 - 9999
Levels:	Container, Module
Category:	Layout - Content canvas

Use this preference to specify the default height of content canvases.

This value is only used if a content canvas in a template does not form the basis of the generated canvas, and if the Height property is not set for the module component associated with the content canvas.


 Content canvas context depth (PAGCON)

Related Topics

Default:	1
Values:	0 to 99
Levels:	Container, Table, Module, Module Component, Module Sub-component
Category:	Layout - Content canvas

Use this preference to control the number of linked previous master blocks from which Form Generator displays context for detail blocks on content canvases.

If master and detail blocks are on different canvases, Form Generator can display context information in the detail block's header to identify the current master row. Information from the master's master block can also be displayed, and so on.

Example

If block COMPANY is on CG$PAGE_1, block DEPT is on CG$POPUP_1 and block EMP is on CG$PAGE_2, Form Generator displays context information for EMP to the number of master blocks specified by this preference.

•	If this preference is set to 0, no context information is displayed for EMP.

•	If this preference is set to 1, context information from DEPT is displayed for EMP.

•	If this preference is set to 2, context information from both COMPANY and DEPT is displayed.

For more information about using this preference, refer to Block context area and block context item generation.


 Content canvas width (PAGCWD)

Related Topics

Default:	80
Values:	1 to 9999
Levels:	Container, Module
Category:	Layout - Content canvas

Use this preference to specify the default width of a content canvas (and therefore to control the default width of the blocks placed on that canvas).

Form Generator only uses this value if:

•	a content canvas in a template does not form the basis of the generated canvas

•	the Width property is not set for the first module component associated with the content canvas.

If you want to place blocks side-by-side on the same canvas, this preference continues to control the default width of the blocks. However, Form Generator increases the width of the content canvas as necessary to place the blocks beside each other.

If you are using relative tab stops, this preference specifies the minimum width of a canvas (and therefore controls the minimum width of blocks placed on that canvas). Form Generator increases the width of the block as necessary to display items and item groups on the specified relative tab stops, and increases the width of the content canvas sufficiently to display the block.

For more information, refer to How Form Generator determines the dimensions of a generated content canvas.


 Content canvas footer separator (PAGFTS)

Related Topics

Default:	0
Values:	Up to 30 characters
Levels:	Container, Module
Category:	Layout - Content canvas

Use this preference to specify the space to leave between the last generated block on a content canvas and the bottom of the canvas.

Note that the space specified by this preference is in addition to space in a template footer, if such a footer has been defined.

The default units are character cells (i.e. if you do not specify a unit, Form Generator uses character cells). However, you can specify an alternative unit by appending a space and one of the following abbreviations:

Abbreviation	Unit	Example	Max No of decimal places
in	real inches	0.7 in	three (i.e. 0.001, but not 0.0001)
cm	real centimeters	4.56 cm	three (i.e. 0.001, but not 0.0001)
pixel	real pixels	120 pixel	none
point	real points	30 point	one (i.e. 0.1, but not 0.01)

During generation, Form Generator converts the value you specify into the equivalent units in the generated form. For more information about real units, refer to Notes on coordinate systems and Form Generator.


 Content canvas header separator (PAGHDS)

Related Topics

Default:	0
Values:	Up to 30 characters
Levels:	Container, Module
Category:	Layout - Content canvas

Use this preference to specify the space to leave between the top of a content canvas and the first generated block on the canvas.

Note that the space specified by this preference is in addition to space in a template header, if such a header has been defined.

The default units are character cells (i.e. if you do not specify a unit, Form Generator uses character cells). However, you can specify an alternative unit by appending a space and one of the following abbreviations:

Abbreviation	Unit	Example	Max No of decimal places
in	real inches	0.7 in	three (i.e. 0.001, but not 0.0001)
cm	real centimeters	4.56 cm	three (i.e. 0.001, but not 0.0001)
pixel	real pixels	120 pixel	none
point	real points	30 point	one (i.e. 0.1, but not 0.01)

During generation, Form Generator converts the value you specify into the equivalent units in the generated form. For more information about real units, refer to Notes on coordinate systems and Form Generator.


 Content canvas inter-block separator (PAGIBS)

Related Topics

Default:	0
Values:	Up to 30 characters
Levels:	Container, Table, Module, Module Component, Module Sub-component
Category:	Layout - Content canvas

Use this preference to specify the vertical space to leave between blocks (and layout regions in multi-region blocks) on content canvases.

The default units are character cells (i.e. if you do not specify a unit, Form Generator uses character cells). However, you can specify an alternative unit by appending a space and one of the following abbreviations:

Abbreviation	Unit	Example	Max No of decimal places
in	real inches	0.7 in	three (i.e. 0.001, but not 0.0001)
cm	real centimeters	4.56 cm	three (i.e. 0.001, but not 0.0001)
pixel	real pixels	120 pixel	none
point	real points	30 point	one (i.e. 0.1, but not 0.01)

During generation, Form Generator converts the value you specify into the equivalent units in the generated form. For more information about real units, refer to Notes on coordinate systems and Form Generator.


 Content canvas margin (PAGMAR)

Related Topics

Default:	1
Values:	Up to 30 characters
Levels:	Container, Module
Category:	Layout - Content canvas

Use this preference to specify the size of both left and right margins on a generated content canvas. Objects are laid out on the canvas between these margins.

If blocks are placed side-by-side on the same content canvas, the value of this preference also specifies the distance between the blocks.

The default units are character cells (i.e. if you do not specify a unit, Form Generator uses character cells). However, you can specify an alternative unit by appending a space and one of the following abbreviations:

Abbreviation	Unit	Example	Max No of decimal places
in	real inches	0.7 in	three (i.e. 0.001, but not 0.0001)
cm	real centimeters	4.56 cm	three (i.e. 0.001, but not 0.0001)
pixel	real pixels	120 pixel	none
point	real points	30 point	one (i.e. 0.1, but not 0.01)

During generation, Form Generator converts the value you specify into the equivalent units in the generated form. For more information about real units, refer to Notes on coordinate systems and Form Generator.


 Generate block stubs on content canvases (PAGSTB)

Related Topics

Default:	No
Values:	Yes, No
Levels:	Container, Module
Category:	Layout - Content canvas

Use this preference to specify whether block stubs are generated on content canvases.

If this preference is set to Yes, a block stub representing every previous block in the form appears in the header of the first block on a content canvas and a block stub representing every following block in the form appears in the footer of the last block on the canvas.

Block stubs can also be used to display context information as required.

If this preference is set to No, block stubs are not generated on content canvases.

For more information about using this preference, refer to Block stub generation.


 Title first block on content canvas (PAGTFB)

Related Topics

Default:	Yes
Values:	Yes, No
Levels:	Container, Module
Category:	Layout - Content canvas

Use this preference to specify whether the first block (or layout region, for multi-region blocks) on a content canvas is given a title.

If this preference is set to Yes, the first block or layout region on a content canvas is given a title.

If this preference is set to No, the first block or layout region on a content canvas is not given a title. Subsequent blocks or layout regions on the canvas are given a title as normal.

Form Generator ignores this preference if BLKTLP is set to No.


 Layout preferences - context

Related Topics

These preferences govern basic details of block context areas for generated canvases containing multiple blocks.

Name	Description	Levels at which preferences can be set
		Cont	Dom	Tab	Con	Col	Mod	MC	Sub	LOV	CnU	ItG	Itm	Act
CONBWD	Context brush width	X		X			X	X	X
CONDEC	Context decoration	X		X			X	X	X
CONDFT	Context uses default context items	X		X			X	X	X
CONDST	Context dash style	X		X			X	X	X
CONFTS	Context footer separator	X		X			X	X	X
CONGRP	Context item group inclusion	X		X			X	X	X
CONHDS	Context header separator	X		X			X	X	X
CONMAR	Context margin	X		X			X	X	X
CONMLL	Context multi-line row line separator	X		X			X	X	X
CONTLJ	Context title justification	X		X			X	X	X
CONTLM	Context title margin	X		X			X	X	X
CONTLS	Context title spacing	X		X			X	X	X
How to use these preferences to control:

Block context area appearance

Block context area titles

Block context area spacing

Block context area contents


 Using preferences to control block context area appearance

Related Topics

The following preferences (in the Layout Preferences - Context category) determine the appearance of the lines around the context area.

Preference	Meaning
CONBWD	Context area brush width
CONDEC	Context area decoration
CONDST	Context area dash style


 Using preferences to control block context area titles

Related Topics

The following preferences The following preferences (in the Layout Preferences - Context category) determine how the title of the context area looks.

Preference	Meaning
CONTLJ	Context area title justification
CONTLM	Context area title margin
CONTLS	Context area title spacing


 Using preferences to control block context area spacing

Related Topics

The following preferences (in the Layout Preferences - Context category) determine the amount of white space surrounding the context area.

Preference	Meaning
CONFTS	Context area footer separator
CONHDS	Context area header separator
CONMAR	Context area margin
CONMLL	Context area multi-line row line separator


 Using preferences to control block context area contents

Related Topics

The following preferences (in the Layout Preferences - Context category) determine the contents of the context area.

Preference	Meaning
CONDFT	Context uses default context items
CONGRP	Context item group inclusion


 Context brush width (CONBWD)

Related Topics

Default:	0
Values:	0, 1, 2, 4, 8, 16
Levels:	Container, Table, Module, Module Component, Module Sub-component
Category:	Layout - Context

Use this preference to specify the brush width with which rectangles and lines are drawn as decoration around block context areas.

The value of this preference is in points (where a point is 1/72nd of an inch). A value of 0 indicates the thinnest line available on your platform.

Form Generator assumes that lines do not take up any horizontal or vertical space, so note the following:

•	If you use large brush widths, the lines drawn may encroach on other generated objects. In this case, you should consider allowing additional horizontal space for decoration, by either setting the LAYLWD (line width) preference to 1, or increasing the relevant margin preference for the object that is being decorated.

•	Additional vertical space for decoration can be obtained by increasing the relevant header or footer separator preferences for the object being decorated.

If LAYFRA is set to Yes, Form Generator creates decoration as frames. If LAYFRA is set to No, Form Generator creates decoration as graphic objects.


 Context decoration (CONDEC)

Related Topics

Default:	RECTANGLE
Values:	(see below)
Levels:	Container, Table, Module, Module Component, Module Sub-component
Category:	Layout - Context

Use this preference to specify the decoration drawn around context items in block context areas.

The options are:

LINES (L)	Lines are drawn at the top and bottom of the items.
RECTANGLE (R)	A rectangle is drawn around the items.
RAISED RECTANGLE (RR)	A rectangle is drawn around the items with raised bevel.
LOWERED RECTANGLE (LR)	A rectangle is drawn around the items with lowered bevel.
INSET RECTANGLE (IR)	A rectangle is drawn around the items with inset bevel.
OUTSET RECTANGLE (OR)	A rectangle is drawn around the items with outset bevel.
INSET LINES (IL)	Lines are drawn at the top and bottom of the items with inset bevel.
OUTSET LINES (OL)	Lines are drawn at the top and bottom of the items with outset bevel.
LINE TOP (LT)	A line is drawn above the items.
INSET LINE TOP (ILT)	A line is drawn above the items with an inset bevel.
OUTSET LINE TOP (OLT)	A line is drawn above the items with an outset bevel.
NONE (N)	No decoration is drawn around generated items.

If LAYFRA is set to Yes, Form Generator creates decoration as frames. If LAYFRA is set to No, Form Generator creates decoration as graphic objects.

If LAYFRA is set to Yes, the option you select for this preference determines which standard source object from the object library to use to set generated frame properties as follows:

If CONDEC preference set to:	Use this standard source object:
R, RR, LR, IR, OR	CGSO$FRAME_RECT
L, IL, OL	CGSO$HORZ_LINES
LT, ILT, OLT	CGSO$FRAME_LINE_TOP


 Context uses default items (CONDFT)

Related Topics

Default:	Yes
Values:	Yes, No
Levels:	Container, Table, Module, Module Component, Module Sub-component
Category:	Layout - Context

Use this preference to specify the criteria Form Generator uses to select items from a master block for inclusion as context items in the context area of a detail block.

If this preference is set to Yes, Form Generator generates context items from repository items based on columns that:

•	form part of the primary key of the base table

•	are specified as descriptors of the base table

If this preference is set to No, Form Generator generates context items from repository items that have the Context property set to Y.

For information about overflow area context, see OFADFT.

For more information about using this preference, refer to Block context area and block context item generation.


 Context dash style (CONDST)

Related Topics

Default:	SOLID
Values:	(see below)
Levels:	Container, Table, Module, Module Component, Module Sub-component
Category:	Layout - Context

Use this preference to specify the dash style used for rectangles and lines drawn as decoration around block context areas.

The options are:

SOLID (S)	Solid
DOT (.)	Dot
SHORT DASH (-)	Short Dash
DASH DOT (-.)	Dash Dot
DOUBLE DOT (..)	Double Dot
LONG DASH (--)	Long Dash
DASH DOUBLE DOT (-..)	Dash Double Dot

If LAYFRA is set to Yes, Form Generator creates decoration as frames. If LAYFRA is set to No, Form Generator creates decoration as graphic objects.


 Context footer separator (CONFTS)

Related Topics

Default:	0
Values:	Up to 30 characters
Levels:	Container, Table, Module, Module Component, Module Sub-component
Category:	Layout - Context

Use this preference to specify the amount of vertical space to leave at the bottom of the block context area between the last line of generated items and any decoration.

The default units are character cells (i.e. if you do not specify a unit, Form Generator uses character cells). However, you can specify an alternative unit by appending a space and one of the following abbreviations:

Abbreviation	Unit	Example	Max No of decimal places
in	real inches	0.7 in	three (i.e. 0.001, but not 0.0001)
cm	real centimeters	4.56 cm	three (i.e. 0.001, but not 0.0001)
pixel	real pixels	120 pixel	none
point	real points	30 point	one (i.e. 0.1, but not 0.01)

During generation, Form Generator converts the value you specify into the equivalent units in the generated form. For more information about real units, refer to Notes on coordinate systems and Form Generator.


 Context item group inclusion (CONGRP)

Related Topics

Default:	ONE
Values:	All, ONE
Levels:	Container, Table, Module, Module Component, Module Sub-component
Category:	Layout - Context

Use this preference to specify how Form Generator manages item groups when picking items from a master block for inclusion in the context area for a detail block.

An item group is treated as an 'unsplittable' object that can be within the context or outside the context.

The options are:

ONE (O)	Only one of the items in the item group has to meet the criteria specified in the CONDFT preference for the item group to be considered as a candidate context object.
ALL (A)	All of the items in the item group must meet the criteria specified in the CONDFT preference for the item group to be considered as a candidate context/ object.
Related preferences

CONDFT


 Context header separator (CONHDS)

Related Topics

Default:	0
Values:	Up to 30 characters
Levels:	Container, Table, Module, Module Component, Module Sub-component
Category:	Layout - Context

Use this preference to specify the amount of vertical space to leave at the top of the block context area between any decoration and the first line of generated items.

The default units are character cells (i.e. if you do not specify a unit, Form Generator uses character cells). However, you can specify an alternative unit by appending a space and one of the following abbreviations:

Abbreviation	Unit	Example	Max No of decimal places
in	real inches	0.7 in	three (i.e. 0.001, but not 0.0001)
cm	real centimeters	4.56 cm	three (i.e. 0.001, but not 0.0001)
pixel	real pixels	120 pixel	none
point	real points	30 point	one (i.e. 0.1, but not 0.01)

During generation, Form Generator converts the value you specify into the equivalent units in the generated form. For more information about real units, refer to Notes on coordinate systems and Form Generator.


 Context margin (CONMAR)

Related Topics

Default:	1
Values:	Up to 30 characters
Levels:	Container, Table, Module, Module Component, Module Sub-component
Category:	Layout - Context

Use this preference to specify the size of both the left and right margins for block context areas.

Each generated context area can have a left and a right margin. Objects within the context area are laid out between these margins.

The default units are character cells (i.e. if you do not specify a unit, Form Generator uses character cells). However, you can specify an alternative unit by appending a space and one of the following abbreviations:

Abbreviation	Unit	Example	Max No of decimal places
in	real inches	0.7 in	three (i.e. 0.001, but not 0.0001)
cm	real centimeters	4.56 cm	three (i.e. 0.001, but not 0.0001)
pixel	real pixels	120 pixel	none
point	real points	30 point	one (i.e. 0.1, but not 0.01)

During generation, Form Generator converts the value you specify into the equivalent units in the generated form. For more information about real units, refer to Notes on coordinate systems and Form Generator.


 Context multi-line row line separator (CONMLL)

Related Topics

Default:	0
Values:	Up to 30 characters
Levels:	Container, Table, Module, Module Component, Module Sub-component
Category:	Layout - Context

Use this preference to specify the amount of vertical space that separates lines of items displayed in a block context area where the record wraps onto another line.

The default units are character cells (i.e. if you do not specify a unit, Form Generator uses character cells). However, you can specify an alternative unit by appending a space and one of the following abbreviations:

Abbreviation	Unit	Example	Max No of decimal places
in	real inches	0.7 in	three (i.e. 0.001, but not 0.0001)
cm	real centimeters	4.56 cm	three (i.e. 0.001, but not 0.0001)
pixel	real pixels	120 pixel	none
point	real points	30 point	one (i.e. 0.1, but not 0.01)

During generation, Form Generator converts the value you specify into the equivalent units in the generated form. For more information about real units, refer to Notes on coordinate systems and Form Generator.


 Context title justification (CONTLJ)

Related Topics

Default:	LEFT
Values:	CENTER, LEFT, RIGHT
Levels:	Container, Table, Module, Module Component, Module Sub-component
Category:	Layout - Context

Use this preference to specify the alignment of the context title within the block context area.

The options are:

LEFT (L)	The title is left-aligned.
RIGHT (R)	The title is right-aligned.
CENTER (C)	The title is centered.

Note the following:

•	If the context title does not fit within the available space, the context is not given a title.

•	If LAYFRA is set to Yes, Form Generator creates decoration as a frame and uses this property to set the frame's Frame Title Alignment property. If LAYFRA is set to No, Form Generator creates the title as graphic text and uses this property to specify the position of the graphic text.


 Context title margin (CONTLM)

Related Topics

Default:	2
Values:	Up to 30 characters
Levels:	Container, Table, Module, Module Component, Module Sub-component
Category:	Layout - Context

Use this preference to specify both the left and right context title margins within the block context area.

The default units are character cells (i.e. if you do not specify a unit, Form Generator uses character cells). However, you can specify an alternative unit by appending a space and one of the following abbreviations:

Abbreviation	Unit	Example	Max No of decimal places
in	real inches	0.7 in	three (i.e. 0.001, but not 0.0001)
cm	real centimeters	4.56 cm	three (i.e. 0.001, but not 0.0001)
pixel	real pixels	120 pixel	none
point	real points	30 point	one (i.e. 0.1, but not 0.01)

During generation, Form Generator converts the value you specify into the equivalent units in the generated form. For more information about real units, refer to Notes on coordinate systems and Form Generator.


 Context title spacing (CONTLS)

Related Topics

Default:	2
Values:	0 to 99
Levels:	Container, Table, Module, Module Component, Module Sub-component
Category:	Layout - Context

Use this preference to specify the horizontal space left on either side of the context title within the block context area.

This preference has little impact when the target environment is bitmapped as the title is inside any decoration drawn around the context and spacing on either side of it is unnoticed:

 ----------------------------------------

|   Context  Title                       |

However, when the target environment is character mode, the title is embedded within any decoration drawn around the context and the spacing on either side of it is more apparent:

 ------  Context Title  --------------------------------

|                                        |


 Layout preferences - custom item

Related Topics

Use preferences in this category to control properties of generated custom items (i.e. OLE2 containers).

Name	Description	Levels at which preferences can be set
		Cont	Dom	Tab	Con	Col	Mod	MC	Sub	LOV	CnU	ItG	Itm	Act
OLEBEV	OLE container custom item bevel	X		X		X	X	X	X				X
OLEDHT	OLE container custom item default height	X		X		X	X	X	X				X
OLEDWD	OLE container custom item default width	X		X		X	X	X	X				X


 OLE container custom item bevel (OLEBEV)

Related Topics

Default:	LOWERED
Values:	LOWERED, NONE, RAISED
Levels:	Container, Table, Column, Module, Module Component, Module Sub-component, Item
Category:	Layout - Custom Item

Use this preference to determine the style of the border surrounding OLE container items when a bevel has not been defined for the appropriate source object in an object library.

The options are:

RAISED (R)	The border has the appearance of a raised bevel.
LOWERED (L)	The border has the appearance of a lowered bevel.
NONE (N)	The item has no border.


 OLE container custom item default height (OLEDHT)

Related Topics

Default:	10
Values:	1 to 999
Levels:	Container, Table, Column, Module, Module Component, Module Sub-component, Item
Category:	Layout - Custom Item

Use this preference to specify the height for OLE container items when a height has not been defined against the repository item or an appropriate source object in an object library.


 OLE container custom item default width (OLEDWD)

Related Topics

Default:	20
Values:	1 to 999
Levels:	Container, Table, Column, Module, Module Component, Module Sub-component, Item
Category:	Layout - Custom Item

Use this preference to specify the width for OLE container items when a width has not been defined against the repository item or an appropriate source object in an object library.


 Layout preferences - default font

Related Topics

These preferences control the font properties used by Form Generator if you have not set font properties using an object in an object library or a visual attribute in a template form.

Instead of using these preferences, we strongly recommend you use objects in object libraries to set properties of generated objects.

Name	Description	Levels at which preferences can be set
		Cont	Dom	Tab	Con	Col	Mod	MC	Sub	LOV	CnU	ItG	Itm	Act
FNTNAM	Default font name	X					X
FNTSIZ	Default font size	X					X
FNTSPC	Default font spacing	X					X
FNTSTY	Default font style	X					X
FNTWGT	Default font weight	X					X


 Default font name (FNTNAM)

Related Topics

Default:	SYSTEM
Values:	Up to 30 characters
Levels:	Container, Module
Category:	Layout - Default Font

Use this preference to specify the font that Form Generator will use if you have not specified a font using an object in an object library or a visual attribute in a template form.

Instead of using this preference, we strongly recommend you set the Font Name property of the appropriate object in an object library.


 Default font size (FNTSIZ)

Related Topics

Default:	10
Values:	1 to 1000
Levels:	Container, Module
Category:	Layout - Default Font

Use this preference to specify the font size that Form Generator will use if you have not specified a font size using an object in an object library or a visual attribute in a template form.

Instead of using this preference, we strongly recommend you set the Font Size property of the appropriate object in an object library.


 Default font spacing (FNTSPC)

Related Topics

Default:	NORMAL
Values:	(see below)
Levels:	Container, Module
Category:	Layout - Default Font

Use this preference to specify the font spacing that Form Generator will use if you have not specified font spacing using an object in an object library or a visual attribute in a template form.

The options are:

•	ULTRADENSE

•	EXTRADENSE

•	DENSE

•	SEMIDENSE

•	NORMAL

•	SEMIEXPAND

•	EXPAND

•	EXTRAEXPAND

•	ULTRAEXPAND

Instead of using this preference, we strongly recommend you set the Font Spacing property of the appropriate object in an object library.


 Default font style (FNTSTY)

Related Topics

Default:	PLAIN
Values:	(see below)
Levels:	Container, Module
Category:	Layout - Default Font

Use this preference to specify the font style that Form Generator will use if you have not specified a font style using an object in an object library or a visual attribute in a template form.

The options are:

•	PLAIN

•	ITALIC

•	OBLIQUE

•	UNDERLINE

•	OUTLINE

•	SHADOW

•	INVERTED

•	OVERSTRIKE

•	BLINK

Instead of using this preference, we strongly recommend you set the Font Style property of the appropriate object in an object library.


 Default font weight (FNTWGT)

Related Topics

Default:	BOLD
Values:	(see below)
Levels:	Container, Module
Category:	Layout - Default Font

Use this preference to specify the font weight that Form Generator will use if you have not specified a font weight using an object in an object library or a visual attribute in a template form.

The options are:

•	ULTRALIGHT

•	EXTRALIGHT

•	LIGHT

•	DEMILIGHT

•	MEDIUM

•	DEMIBOLD

•	BOLD

•	EXTRABOLD

•	ULTRABOLD

Instead of using this preference, we strongly recommend you set the Font Weight property of the appropriate object in an object library.


 Layout preferences - image

Related Topics

These preferences control the basic details of generated image items.

Name	Description	Levels at which preferences can be set
		Cont	Dom	Tab	Con	Col	Mod	MC	Sub	LOV	CnU	ItG	Itm	Act
IMGBEV	Image bevel (obsolete)	X		X		X	X	X	X				X
IMGCMP	Image compression (obsolete)	X		X		X	X	X	X				X
IMGDFI	Display image filename item	X		X		X	X	X	X				X
IMGDHT	Image default height (obsolete)	X		X		X	X	X	X				X
IMGDWD	Image default width (obsolete)	X		X		X	X	X	X				X
IMGFIW	Image filename item width	X		X		X	X	X	X				X
IMGHSB	Image horizontal scrollbar (obsolete)	X		X		X	X	X	X				X
IMGIFP	Image file prefix	X		X		X	X	X	X				X
IMGQLT	Image quality (obsolete)	X		X		X	X	X	X				X
IMGSBH	Image item, horizontal scrollbar width	X					X
IMGSBW	Image item, vertical scrollbar width	X					X
IMGSZS	Image sizing style (obsolete)	X		X		X	X	X	X				X
IMGVSB	Image vertical scrollbars (obsolete)	X		X		X	X	X	X				X
How to use these preferences to control:

Image item files

Image item scrollbars


 Using preferences to control image item files

Related Topics

The following preferences (in the Layout Preferences - Image category) determine how the image file is used.

Preference	Meaning
IMGDFI	Display image filename item
IMGFIW	Image filename item width
IMGIFP	Image file prefix
Example

To generate an image item, using a prefix of C:\GRAPHICS\, displaying the filename of the image in a text item of width 15:

1.	Set IMGFIW to 15 to specify the width of the filename text item.

2.	Set IMGIFP to c:\graphics\ to specify the pathname to search for the image file.

3.	Set IMGDFI to Y to display the filename in a text item above the image item.


 Using preferences to control image item scrollbars

Related Topics

The following preferences (in the Layout Preferences - Image category) determine the appearance of any image item scrollbars

Preference	Meaning
IMGHSB	Image item horizontal scrollbar (This preference is obsolete in Oracle Designer release 2 onwards. We strongly recommend you use the appropriate source object property in an object library instead. For more information, refer to Using object libraries.)
IMGVSB	Image item vertical scrollbar (This preference is obsolete in Oracle Designer release 2 onwards. We strongly recommend you use the appropriate source object property in an object library instead. For more information, refer to Using object libraries.)
IMGSBH	Image item horizontal scrollbar height
IMGSBW	Image item vertical scrollbar width


 Image bevel (IMGBEV) (obsolete)

Related Topics

Default:	RAISED
Values:	LOWERED, NONE, RAISED
Levels:	Container, Table, Column, Module, Module Component, Module Sub-component, Item
Category:	Layout - Image

We strongly recommend you do not use this obsolete preference. Instead, set properties of an appropriate source object in an object library. Click here to find out more (including how to continue using this preference).

Having read the above, you might decide to disregard the recommendation. In which case, you can use this preference to determine the style of the border surrounding images.

The options are:

RAISED (R)	The border has the appearance of a raised bevel.
LOWERED (L)	The border has the appearance of a lowered bevel.
NONE (N)	The item has no border.
Related preferences

TXTBEV


 Image compression (IMGCMP) (obsolete)

Related Topics

Default:	Yes
Values:	Yes, No
Levels:	Container, Table, Column, Module, Module Component, Module Sub-component, Item
Category:	Layout - Image

We strongly recommend you do not use this obsolete preference. Instead, set properties of an appropriate source object in an object library. Click here to find out more (including how to continue using this preference).

Having read the above, you might decide to disregard the recommendation. In which case, you can use this preference to specify whether the image file should be compressed when including it in a generated form. Before an image is displayed in an image item, it is:

•	optionally compressed

•	converted to Oracle Format

If this preference is set to Yes, images are compressed when read into the form and converted to Oracle Format. The compression that takes place depends on the format of the image, but occurs regardless of whether the image file was compressed in the file system. Note that images are always stored in the database in Oracle Format.

If this preference is set to No, image files are not compressed before display.


 Display image filename item (IMGDFI)

Related Topics

Default:	Yes
Values:	(no value), Yes, No
Levels:	Container, Table, Column, Module, Module Component, Module Sub-component, Item
Category:	Layout - Image

Form Generator can create a text item (called a filename item) and an image item.

Use this preference to specify whether an additional filename item is displayed with an image item.

Depending on the datatype, Form Generator assumes that the images are held on the database, and generates the relevant items and code.

The image filename item is always displayed within the item group with the image item.

If this preference is set to Yes, Form Generator displays a text item with the image item.


 Image default height (IMGDHT) (obsolete)

Related Topics

Default:	10
Values:	1 to 9999
Levels:	Container, Table, Column, Module, Module Component, Module Sub-component, Item
Category:	Layout - Image

We strongly recommend you do not use this obsolete preference. Instead, set properties of an appropriate source object in an object library. Click here to find out more (including how to continue using this preference).

Having read the above, you might decide to disregard the recommendation. In which case, you can use this preference to specify the height for image items when a height has not been defined against the repository item.


 Image default width (IMGDWD) (obsolete)

Related Topics

Default:	20
Values:	1 to 9999
Levels:	Container, Table, Column, Module, Module Component, Module Sub-component, Item
Category:	Layout - Image

We strongly recommend you do not use this obsolete preference. Instead, set properties of an appropriate source object in an object library. Click here to find out more (including how to continue using this preference).

Having read the above, you might decide to disregard the recommendation. In which case, you can use this preference to specify the width for image items when a width has not been defined against the repository item.


 Image filename item width (IMGFIW)

Related Topics

Default:	(no value)
Values:	(no value), 1 to 999
Levels:	Container, Table, Column, Module, Module Component, Module Sub-component, Item
Category:	Layout - Image

Use this preference to specify the width for a filename text item that is displayed with an image.

If this preference is not set, the image filename text item is the same width as the image.

The height of the image filename text item is set by the appropriate source object property in an object library (or by the preference TXTDHT if no object library does contains an appropriate object).


 Image horizontal scrollbar (IMGHSB) (obsolete)

Related Topics

Default:	(no value)
Values:	(no value), Yes, No
Levels:	Container, Table, Column, Module, Module Component, Module Sub-component, Item
Category:	Layout - Image

We strongly recommend you do not use this obsolete preference. Instead, set properties of an appropriate source object in an object library. Click here to find out more (including how to continue using this preference).

Having read the above, you might decide to disregard the recommendation. In which case, you can use this preference to specify whether to add a horizontal scrollbar to image items.

If this preference is not set, and the IMGSZS preference is set to CROP, a horizontal scrollbar is displayed.

If this preference is not set, and the IMGSZS preference is set to ADJUST-TO-FIT, a horizontal scrollbar is not displayed


 Image file prefix (IMGIFP)

Related Topics

Default:	(no value)
Values:	(no value), up to 99 characters
Levels:	Container, Table, Column, Module, Module Component, Module Sub-component, Item
Category:	Layout - Image

Use this preference to specify the pathname to search for image item files. Form Generator prefixes the image item with the pathname.

Note:	The pathname must end with the character used to separate elements of a pathname in your environment. For Microsoft Windows this is the backslash (‘\’) character.


Image quality (IMGQLT) (obsolete)
 IMGQLT - Image quality (IMGQLT) (obsolete)

Related Topics

Default:	MEDIUM
Values:	HIGH, LOW, MEDIUM
Levels:	Container, Table, Column, Module, Module Component, Module Sub-component, Item
Category:	Layout - Image

We strongly recommend you do not use this obsolete preference. Instead, set properties of an appropriate source object in an object library. Click here to find out more (including how to continue using this preference).

Having read the above, you might decide to disregard the recommendation. In which case, you can use this preference to specify the quality of an image item.

The options are:

HIGH (H)	Display the image with high quality (requires more resources).
MEDIUM (M)	Display the image with medium quality.
LOW (L)	Display the image with low quality (requires fewer resources).


 Image item, horizontal scrollbar height (IMGSBH)

Related Topics

Default:	1
Values:	Up to 30 characters
Levels:	Container, Module
Category:	Layout - Image

Use this preference to specify the amount of space allocated for the height of the horizontal scrollbar.

Note:	IMGSBH does not specify the size of the horizontal scrollbar.

You will only need to change this preference when generating forms for a target environment other than MS Windows.

The default units are character cells (i.e. if you do not specify a unit, Form Generator uses character cells). However, you can specify an alternative unit by appending a space and one of the following abbreviations:

Abbreviation	Unit	Example	Max No of decimal places
in	real inches	0.7 in	three (i.e. 0.001, but not 0.0001)
cm	real centimeters	4.56 cm	three (i.e. 0.001, but not 0.0001)
pixel	real pixels	120 pixel	none
point	real points	30 point	one (i.e. 0.1, but not 0.01)

During generation, Form Generator converts the value you specify into the equivalent units in the generated form. For more information about real units, refer to Notes on coordinate systems and Form Generator.

Related preferences

TLSSBH

TLSSBW

TXTSBW


 Image item, vertical scrollbar width (IMGSBW)

Related Topics

Default:	3
Values:	0 to 10
Levels:	Container, Module
Category:	Layout - Image

Use this preference to specify the amount of space allocated for the width of the vertical scrollbar.

Note:	IMGSBW does not specify the size of the vertical scrollbar.

You will only need to change this preference when generating forms for a target environment other than MS Windows.

The default units are character cells (i.e. if you do not specify a unit, Form Generator uses character cells). However, you can specify an alternative unit by appending a space and one of the following abbreviations:

Abbreviation	Unit	Example	Max No of decimal places
in	real inches	0.7 in	three (i.e. 0.001, but not 0.0001)
cm	real centimeters	4.56 cm	three (i.e. 0.001, but not 0.0001)
pixel	real pixels	120 pixel	none
point	real points	30 point	one (i.e. 0.1, but not 0.01)

During generation, Form Generator converts the value you specify into the equivalent units in the generated form. For more information about real units, refer to Notes on coordinate systems and Form Generator.

Related preferences

TLSSBH

TLSSBW

TXTSBW


 Image sizing style (IMGSZS) (obsolete)

Related Topics

Default:	CROP
Values:	ADJUST-TO-FIT, CROP
Levels:	Container, Table, Column, Module, Module Component, Module Sub-component, Item
Category:	Layout - Image

We strongly recommend you do not use this obsolete preference. Instead, set properties of an appropriate source object in an object library. Click here to find out more (including how to continue using this preference).

Having read the above, you might decide to disregard the recommendation. In which case, you can use this preference to specify the display style of an image when the image does not match the display rectangle of the item.

The options are:

CROP (C)	Displays only the portion of the full image that fits in the display rectangle.
ADJUST-TO-FIT (A)	Scales the image to fit within the display rectangle.


 Image vertical scrollbars (IMGVSB) (obsolete)

Related Topics

Default:	(no value)
Values:	(no value), Yes, No
Levels:	Container, Table, Column, Module, Module Component, Module Sub-component, Item
Category:	Layout - Image

We strongly recommend you do not use this obsolete preference. Instead, set properties of an appropriate source object in an object library. Click here to find out more (including how to continue using this preference).

Having read the above, you might decide to disregard the recommendation. In which case, you can use this preference to specify whether to add a vertical scrollbar to image items.

If this preference is not set, and the IMGSZS preference is set to CROP, a vertical scrollbar is displayed.

If this preference is not set, and the IMGSZS preference is set to ADJUST-TO-FIT, a vertical scrollbar is not displayed


 Layout preferences - item

Related Topics

These preferences let you specify default format masks and display widths for items, and control the way Form Generator lays out the individual items.

Name	Description	Levels at which preferences can be set
		Cont	Dom	Tab	Con	Col	Mod	MC	Sub	LOV	CnU	ItG	Itm	Act
ITMASP	Allow split prompts	X		X			X	X	X
ITMBIF	Base item sizes on the font	X	X	X		X	X	X	X				X
ITMDPS	Item default prompt separator	X		X		X	X	X	X				X
ITMFPS	Marker to force prompt splitting	X		X		X	X	X	X				X
ITMIPG	Item/prompt gap	X					X	X	X
ITMIPS	Display-only item prompt separator	X		X		X	X	X	X				X
ITMMPS	Mandatory item prompt separator	X		X		X	X	X	X				X
ITMMPW	Minimum permitted width	X		X			X	X	X				X
ITMODD	Override display dimensions	X	X	X		X	X	X	X				X
ITMOPS	Optional item prompt separator	X		X		X	X	X	X				X
ITMPAS	Allow prompts above items in a single-row block	X		X			X	X	X
ITMPIG	Prompt/item gap	X		X		X	X	X	X				X
ITMPJL	Prompt justification above a left-justified item	X		X		X	X	X	X				X
ITMPJR	Prompt justification above a right-justified item	X		X		X	X	X	X				X
ITMPLM	Allow prompts left of items in a multi-row block	X		X			X	X	X
ITMPPE	Permitted percentage expansion	X		X			X	X	X				X
ITMPPM	Item post-prompt marker	X		X		X	X	X	X				X
ITMSFJ	Justification of single item lines when BLKLYS is FILL	X		X			X	X	X
ITMSPM	Item split-prompt marker	X		X		X	X	X	X				X
ITMTIP	Provide tooltips for items	X					X	X	X				X
How to use these preferences to control:

Item prompt separators

Item prompt arrangement

Item prompt justification

Item prompt spacing


 Using preferences to control item prompt separators

Related Topics

The following preferences (in the Layout Preferences - Item category) determine the prompt separators.

Preference	Meaning
ITMDPS	Item default prompt separator
ITMIPS	Display-only item prompt separator
ITMMPS	Mandatory item prompt separator
ITMOPS	Optional item prompt separator


 Using preferences to control item prompt arrangement

Related Topics

The following preferences (in the Layout Preferences - Item category) determine the position of item prompts.

Preference	Meaning
ITMASP	Allow split prompts
ITMPAS	Allow prompts above items in a single-row block
ITMPLM	Allow prompts left of items in a multi-row block
ITMPPM	Item post-prompt marker


 Using preferences to control item prompt justification

Related Topics

The following preferences (in the Layout Preferences - Item category) determine the justification of item prompts.

Preference	Meaning
ITMPJL	Prompt justification above a left-justified item
ITMPJR	Prompt justification above a right-justified item


 Using preferences to control item prompt spacing

Related Topics

The following preferences (in the Layout Preferences - Item category) determine the amount of white space in-between items and their prompts.

Preference	Meaning
ITMIPG	Item/prompt gap
ITMPIG	Prompt/item gap


 Allow split prompts (ITMASP)

Related Topics

Default:	Y
Values:	M, N, Y
Levels:	Container, Table, Module, Module Component, Module Sub-component
Category:	Layout - Item

Use this preference to specify whether Form Generator splits prompts over more than one line where the specified layout will not fit on a single horizontal line.

If set to Y and the specified layout will not fit on a horizontal line, Form Generator can split prompts. Note that setting this preference to Y does not force Form Generator to split prompts. If this preference is set to Y but the specified layout will fit on a single horizontal line, Form Generator does not split prompts. To force Form Generator to split prompts, set ITMFPS.

If this preference is set to M, Form Generator can split prompts to save screen space for multi-row blocks (or multi-row layout regions in multi-region blocks); in this case, prompts are not split in single row blocks.

Form Generator splits prompts as specified by preference ITMSPM. The split prompt can be placed adjacent to, or over, the item.

For example, the prompt 'Job Title' can be split as follows:

Split prompt adjacent to item	Job                                       Title: CLERK
Split prompt over item	Job                                     Title:                                   CLERK

If this preference is set to N, Form Generator does not split prompts if the specified layout will not fit on a single horizontal line.

For more information about using this preference, refer to Item prompt generation.

Related preferences

ITMMPS


 Base item sizes on the font (ITMBIF)

Related Topics

Default:	Yes
Values:	Yes, No
Levels:	Container, Domain, Table, Column, Module, Module Component, Module Sub-component, Item
Category:	Layout - Item

Use this preference to couple the item size computation to the font size.

If set to Yes, Form Generator creates items whose sizes are optimized for the platform on which Form Generator is running. When this preference is set to Yes, use the TXTSCA preference to specify a scaling factor for dates, numbers and uppercase text items.

If set to No, the item size is based on the character cell size, whether or not the item has a font associated with it.

This preference can be set No so that forms can be generated to run on multiple platforms.  However, you must ensure the character cell size specified in the template form is large enough to display all the item font sizes used in the form.

For more information about using this preference, refer to How Form Generator determines the dimensions of a generated item

Note that Form Generator also uses the container level setting of this preference during design capture. For more information refer to:

•	Repository bound item properties set during design capture

•	Repository unbound item properties set during design capture


 Item default prompt separator (ITMDPS)

Related Topics

Default:	(no value)
Values:	(no value), up to 10 characters
Levels:	Container, Table, Column, Module, Module Component, Module Sub-component, Item
Category:	Layout - Item

Use this preference to specify the default character or string that Form Generator appends to prompts placed beside items. Form Generator uses this preference when the preferences ITMIPS, ITMMPS and ITMOPS are not set.

Note that Form Generator ignores this preference when prompts are placed above items.

For more information about using this preference, refer to Item prompt generation.


 Marker to force prompt splitting (ITMFPS)

Related Topics

Default:	(no value)
Values:	(no value), any single ASCII character
Levels:	Container, Table, Column, Module, Module Component, Module Sub-component, Item
Category:	Layout - Item

Use this preference to specify a special character (e.g. a left chevron < ) in a repository item's Prompt property at which Form Generator is to split the generated prompt. Form Generator splits a generated prompt regardless of whether the prompt will fit on a single line next to the generated item.

The options are:

(no value)	Form Generator only splits a generated prompt if ITMASP is set to M or Y and the prompt will not fit on a single line next to the generated item. Use the ITMSPM preference to specify a character at which you want such a split to occur.
An ASCII character	Form Generator splits the prompt by replacing each occurrence of this character by a new-line.

Note that Form Generator will split prompts at the character specified by this preference, regardless of the setting of ITMASP.

We recommend you set the ITMSPM, ITMFPS and ITMPPM preferences to different special characters.

For more information about using this preference, refer to Item prompt generation.


 Item/prompt gap (ITMIPG)

Related Topics

Default:	2
Values:	Up to 30 characters
Levels:	Container, Module, Module Component, Module Sub-component
Category:	Layout - Item

Use this preference to specify the horizontal space between the end of an item (and its post-item prompt, if one exists) and the beginning of the prompt of the following item.

The default units are character cells (i.e. if you do not specify a unit, Form Generator uses character cells). However, you can specify an alternative unit by appending a space and one of the following abbreviations:

Abbreviation	Unit	Example	Max No of decimal places
in	real inches	0.7 in	three (i.e. 0.001, but not 0.0001)
cm	real centimeters	4.56 cm	three (i.e. 0.001, but not 0.0001)
pixel	real pixels	120 pixel	none
point	real points	30 point	one (i.e. 0.1, but not 0.01)

During generation, Form Generator converts the value you specify into the equivalent units in the generated form. For more information about real units, refer to Notes on coordinate systems and Form Generator.

This preference still has meaning when the prompts appear above items in a block (as in a multi-row block):

•	If the value of the BLKLYS preference is set to FILL, the value of ITMIPG is used as a minimum value.

•	If the BLKLYS preference is not set to FILL, the value of ITMIPG determines the gap between fields, because there is no prompt between fields.

For more information about using this preference, refer to Item prompt generation.

Related preferences

ITMPIG


 Display-only item prompt separator (ITMIPS)

Related Topics

Default:	(no value)
Values:	(no value), up to 10 characters
Levels:	Container, Table, Column, Module, Module Component, Module Sub-component, Item
Category:	Layout - Item

Use this preference to specify the character or string that Form Generator appends to prompts placed beside display items and display-only text items.

Note that Form Generator ignores this preference when prompts are placed above items.

For more information about using this preference, refer to Item prompt generation.

Related preferences

ITMDPS

ITMMPS

ITMOPS


 Mandatory item prompt separator (ITMMPS)

Related Topics

Default:	(no value)
Values:	(no value), up to 10 characters
Levels:	Container, Table, Column, Module, Module Component, Module Sub-component, Item
Category:	Layout - Item

Use this preference to specify the character or string that Form Generator appends to prompts placed beside mandatory items.

Note that Form Generator ignores this preference when prompts are placed above items.

For more information about using this preference, refer to Item prompt generation.

Related preferences

ITMDPS

ITMIPS

ITMOPS


 Minimum permitted width (ITMMPW)

Related Topics

Default:	0
Values:	0 to 9999
Levels:	Container, Table, Module, Module Component, Module Sub-component, Item
Category:	Layout - Item

Use this preference to specify a minimum width (in character cells) for some types of generated items and text. Set this preference to zero (the default) to specify no minimum width. For example, you might set this preference to give generated forms an Oracle Applications 'look-and-feel'.

You can use this preference to specify a minimum width for the following types of generated item and text:

Type of item or text	Notes
Prompt left of item	Width increased by adding extra space to left of prompt (unless prompt is aligned with a relative or absolute tab stop, in which case extra space is added to the right of the prompt)
Prompt right of item	Width increased by adding extra space to right of prompt
Prompt above left-justified field	Width increased by adding extra space to right of prompt
Prompt above right-justified field	Width increased by adding extra space to left of prompt
Prompt above center-justified field or checkbox	Width increased by adding extra space equally divided to the left and right of the prompt
Pre-prompt and post-prompt	Where both a pre-prompt and a post-prompt exist, Form Generator applies this preference to both by inserting extra space in front of the pre-prompt and after the post-prompt (unless pre-prompt is aligned with a relative or absolute tab stop, in which case extra space is added to the right of the pre-prompt)
Labels on the face of button	Button width increased by adding extra space
Labels for checkboxes in single record blocks	Width increased by adding extra space
Poplist item values	Width increased by adding extra space to the widest value
Text list item values	Width increased by adding extra space to the widest value
Combo-box item values	Width increased by adding extra space to the widest value
Radio button item values	Width increased by adding extra space to the widest radio button label
Block, group, and frame titles	Width of underlying decoration increased to allow for extra space
Display only fields	Width increased by adding extra space, except for fixed width field (e.g. date items)

Form Generator first applies any expansion (as specified by ITMPPE), before determining whether to increase the width to the size specified by this preference. This preference is ignored if Form Generator has to truncate a prompt.

For more information about using this preference, refer to Item prompt generation.


 Override display dimensions (ITMODD)

Related Topics

Default:	(no value)
Values:	(no value), GUI, RADIO GROUP
Levels:	Container, Domain, Table, Column, Module, Module Component, Module Sub-component, Item
Category:	Layout - Item

Use this preference to specify whether to override any display dimensions that might be held against the repository item for particular types of generated item.

The options are:

RADIO GROUP (RAD)	Form Generator ignores the display height and width set against the repository item for any radio group items.
GUI (GUI)	Form Generator ignores the display height and width set against the repository item for any GUI items.
A GUI item is a CHECK BOX, a RADIO GROUP, a POP-LIST, a COMBO BOX or a T-LIST.

For more information about using this preference, refer to How Form Generator determines the dimensions of a generated item.


 Optional item prompt separator (ITMOPS)

Related Topics

Default:	(no value)
Values:	(no value), up to 10 characters
Levels:	Container, Table, Column, Module, Module Component, Module Sub-component, Item
Category:	Layout - Item

Use this preference to specify the character or string that Form Generator appends to prompts placed beside optional items.

Note that Form Generator ignores this preference when prompts are placed above items.

For more information about using this preference, refer to Item prompt generation.

Related preferences

ITMDPS

ITMIPS

ITMMPS


 Allow prompts above items in a single-row block (ITMPAS)

Related Topics

Default:	N
Values:	(no value), A, N, Y
Levels:	Container, Table, Module, Module Component, Module Sub-component
Category:	Layout - Item

Use this preference to specify whether Form Generator places prompts above items in a block (or layout region in a multi-region block) in which only one row is displayed.

The options are:

Y	Form Generator places prompts above the item unless space constraints dictate otherwise.
N	Form Generator places prompts on the left of the item.
A	Form Generator always places prompts above the item, regardless of any space constraints.

Note that Form Generator ignores this preference when creating single row item groups and always places prompts to the left of items in single row item groups.

For more information about using this preference, refer to Item prompt generation.

Related preferences

ITMPLM


 Prompt/item gap (ITMPIG)

Related Topics

Default:	1
Values:	Up to 30 characters
Levels:	Container, Table, Column, Module, Module Component, Module Sub-component, Item
Category:	Layout - Item

Use this preference to specify the horizontal space that is displayed between the prompt for an item and the item itself.

The default units are character cells (i.e. if you do not specify a unit, Form Generator uses character cells). However, you can specify an alternative unit by appending a space and one of the following abbreviations:

Abbreviation	Unit	Example	Max No of decimal places
in	real inches	0.7 in	three (i.e. 0.001, but not 0.0001)
cm	real centimeters	4.56 cm	three (i.e. 0.001, but not 0.0001)
pixel	real pixels	120 pixel	none
point	real points	30 point	one (i.e. 0.1, but not 0.01)

During generation, Form Generator converts the value you specify into the equivalent units in the generated form. For more information about real units, refer to Notes on coordinate systems and Form Generator.

This preference has no meaning in blocks where the prompts appear above the item.

For more information about using this preference, refer to Item prompt generation.

Related preferences

ITMIPG


 Prompt justification above a left-justified item (ITMPJL)

Related Topics

Default:	LEFT
Values:	CENTER, LEFT, RIGHT
Levels:	Container, Table, Column, Module, Module Component, Module Sub-component, Item
Category:	Layout - Item

Use this preference to specify the positioning of a prompt for a left-aligned item when the prompt is placed above the item.

The options are:

LEFT	Align the prompt to the left above the item.
RIGHT	Align the prompt to the right above the item.
CENTER	Center the prompt above the item.
For more information about using this preference, refer to Item prompt generation.

Related preferences

ITMPJR


 Prompt justification above a right-justified item (ITMPJR)

Related Topics

Default:	RIGHT
Values:	CENTER, LEFT, RIGHT
Levels:	Container, Table, Column, Module, Module Component, Module Sub-component, Item
Category:	Layout - Item

Use this preference to specify the positioning of a prompt for a right-aligned item when the prompt is placed above the item.

The options are:

LEFT	Align the prompt to the left above the item.
RIGHT	Align the prompt to the right above the item.
CENTER	Center the prompt above the item.
For more information about using this preference, refer to Item prompt generation.

Related preferences

ITMPJL


 Allow prompts left of items in a multi-row block (ITMPLM)

Related Topics

Default:	N
Values:	A, N, Y
Levels:	Container, Table, Module, Module Component, Module Sub-component
Category:	Layout - Item

Use this preference to specify whether Form Generator places prompts to the left of items in a block (or layout region in a multi-region block) in which more than one row is displayed.

If this preference is set to A, Form Generator places the prompts to the left of items in multi-row blocks and multi-row layout regions.

If this preference is set to N, Form Generator does not place the prompts to the left of items; therefore, it places the prompts above the item.

This preference is ignored if the only option available to Form Generator, because of lack of space, is to layout the item with the prompt above the item.

For more information about using this preference, refer to Item prompt generation.

Related preferences

ITMPAS


 Permitted percentage expansion (ITMPPE)

Related Topics

Default:	0
Values:	0 to 9999
Levels:	Container, Table, Module, Module Component, Module Sub-component, Item
Category:	Layout - Item

Use this preference to specify a percentage by which to increase the width of some types of generated items and text beyond that necessary to display the currently specified characters. For example, you might set this preference to allow for an increase in the number of characters in a prompt when it is translated into a different language.

You can use this preference to increase the width of the following types of generated item and text:

Type of item or text	Notes
Prompt left of item	Width increased by adding extra space to left of prompt (unless prompt is aligned with a relative or absolute tab stop, in which case extra space is added to the right of the prompt)
Prompt right of item	Width increased by adding extra space to right of prompt
Prompt above left-justified field	Width increased by adding extra space to right of prompt
Prompt above right-justified field	Width increased by adding extra space to left of prompt
Prompt above center-justified field or checkbox	Width increased by adding extra space equally divided to the left and right of the prompt
Pre-prompt and post-prompt	Where both a pre-prompt and a post-prompt exist, Form Generator applies this preference to both by inserting extra space in front of the pre-prompt and after the post-prompt (unless pre-prompt is aligned with a relative or absolute tab stop, in which case extra space is added to the right of the pre-prompt)
Labels on the face of button	Button width increased by adding extra space + 0.2 inches
Labels for checkboxes in single record blocks	Width increased by adding extra space + 0.3 inches
Poplist item values	Width increased by adding extra space to the widest value + 0.5 inches
Text list item values	Width increased by adding extra space to the widest value + 0.5 inches
Combo-box item values	Width increased by adding extra space to the widest value + 0.5 inches
Radio button item values	Width increased by adding extra space to the widest radio button label
Block, group, and frame titles	Width of underlying decoration increased to allow for extra space
Display only fields	Width increased by adding extra space, except for fixed width field (e.g. date items)
Labels on the face of button	Button width increased by adding extra space + BUTPEX
Labels for checkboxes in single record blocks	Width increased by adding extra space + CBXPEX
Poplist item values	Width increased by adding extra space to the widest value + PLSPEX

Form Generator applies this preference before determining whether to increase the width to the size specified by ITMMPW. This preference is ignored if Form Generator has to truncate a prompt.

For more information about using this preference, refer to Item prompt generation.


 Item post-prompt marker (ITMPPM)

Related Topics

Default:	|
Values:	Up to 2 characters
Levels:	Container, Table, Column, Module, Module Component, Module Sub-component, Item
Category:	Layout - Item

Use this preference to specify the character used by Form Generator to indicate where to place the item in the prompt.

When the repository item prompt contains a post-prompt marker, that marker separates the prompt for a generated item into two parts; the pre-item prompt and the post-item prompt. The pre-item prompt is the text that precedes the marker, and the post-item prompt is the text that follows it.

For example, if ITMPPM is set to | and the repository item prompt is "Time | units", Time is the pre-item prompt and units is the post-item prompt.

Notes:

1.	For prompts adjacent to items, the pre-item prompt appears before the item, and the post-item prompt appears after the item.

2.	For prompts over the item, the pre-item prompt appears over the item and the post-item  prompt appears in parentheses next to it.

3.	If the post-item prompt is preceded by spaces, they are preserved if the prompt is positioned adjacent to the item. However, if the prompt is positioned over the item, the spaces are discarded.

4.	We recommend you set the ITMSPM, ITMFPS and ITMPPM preferences to different special characters.

For more information about using this preference, refer to Item prompt generation.

Related preferences

ITMSPM


 Justification of single-item lines when BLKLYS is FILL (ITMSFJ)

Related Topics

Default:	LEFT
Values:	CENTER, LEFT, RIGHT
Levels:	Container, Table, Module, Module Component, Module Sub-component
Category:	Layout - Item

Use this preference where to place a single item on a line when the layout algorithm specifies that each line must be left- and right-justified.

This preference is also used to position a single item that is displayed between two tall items or between the margin and a tall item.

The options are:

LEFT (L)	Align the item to the left of the line.
RIGHT (R)	Align the item to the right of the line.
CENTER (C)	Center the item within the line.
Related preferences

BLKLYS

BLKVFL


 Item split-prompt marker (ITMSPM)

Related Topics

Default:	(no value)
Values:	(no value), any single ASCII character
Levels:	Container, Table, Column, Module, Module Component, Module Sub-component, Item
Category:	Layout - Item

Use this preference to specify a special character (e.g. a right chevron > ) in a repository item's Prompt property at which Form Generator is to split a generated prompt if both the following conditions are true:

•	ITMASP is set to Y or M

•	the prompt will not fit on a single line next to the generated item

The options are:

(no value)	Form Generator splits the prompt by replacing the white space nearest the center of the prompt by a new line (the white space is one or more space characters).
An ASCII character	Form Generator splits the prompt by replacing each occurrence of this character by a new-line. If the prompt is not split, the first occurrence of this character is replaced by a space and any subsequent occurrences of the character in the prompt are left unchanged.

Form Generator will only split a generated prompt using the character specified by this preference if the prompt will not fit on a single line next to the generated item. Use the ITMFPS preference to force Form Generator to split a generated prompt at a specific character.

We recommend you set the ITMSPM, ITMFPS and ITMPPM preferences to different special characters.

For more information about using this preference, refer to Item prompt generation.

Related preferences

ITMASP


 Provide tooltips for items (ITMTIP)

Related Topics

Default:	BUTTONS
Values:	NONE, BUTTONS, ALL
Levels:	Container, Module, Module Component, Module Sub-component, Item
Category:	Layout - Item

Use this preference to specify when Form Generator uses the Hint property of repository items to set the Tooltip property of generated items.

The options are:

NONE	The Tooltip property of generated items is not set.
BUTTONS	Oracle Forms items of type Push Button generated from repository items have Tooltip properties set from the corresponding repository item's Hint property.
ALL	Oracle Forms items (regardless of item type) generated from repository items have Tooltip properties set from the corresponding repository item's Hint property.


 Layout preferences - item group

Related Topics

These preferences control the layout and appearance of generated item groups.

Name	Description	Levels at which preferences can be set
		Cont	Dom	Tab	Con	Col	Mod	MC	Sub	LOV	CnU	ItG	Itm	Act
GRPBWD	Item group brush width	X		X			X	X	X			X
GRPDEC	Item group decoration	X		X			X	X	X			X
GRPDST	Item group dash style	X		X			X	X	X			X
GRPFTS	Item group footer separator	X		X			X	X	X			X
GRPHDS	Item group header separator	X		X			X	X	X			X
GRPHIS	Item group horizontal inter-item spacing	X		X			X	X	X			X
GRPMAR	Item group margin	X		X			X	X	X			X
GRPMLF	Item group multi-line format	X		X			X	X	X			X
GRPTAB	Group tabulation table	X					X					X
GRPTLJ	Item group title justification	X		X			X	X	X			X
GRPTLM	Item group title margin	X		X			X	X	X			X
GRPTLP	Item group title position	X		X			X	X	X			X
GRPTLS	Item group title spacing	X		X			X	X	X			X
GRPUTT	Use group tabulation table	X		X			X	X	X			X
GRPVIS	Item group vertical inter-item spacing	X		X			X	X	X			X
How to use these preferences to control:

Item group appearance

Item group arrangement

Item group titles

Item group spacing


 Using preferences to control item group appearance

Related Topics

The following preferences (in the Layout Preferences - Item Group category) determine the appearance of the lines around the item group.

Preference	Meaning
GRPBWD	Item group brush width
GRPDEC	Item group decoration
GRPDST	Item group dash style


 Using preferences to control item group arrangement

Related Topics

The following preferences (in the Layout Preferences - Item Group category) determine the arrangement of item groups on a form.

Preference	Meaning
GRPMLF	Item group multi-line format
GRPTAB	Item group tabulation table
GRPUTT	Use item group tabulation table


 Using preferences to control item group titles

Related Topics

The following preferences (in the Layout Preferences - Item Group category) determine how the title of the item group looks.

Preference	Meaning
GRPTLJ	Item group title justification
GRPTLM	Item group title margin
GRPTLP	Item group title position
GRPTLS	Item group title spacing


 Using preferences to control item group spacing

Related Topics

The following preferences (in the Layout Preferences - Item Group category) determine the amount of white space surrounding the item group.

Preference	Meaning
GRPFTS	Item group footer separator
GRPHDS	Item group header separator
GRPHIS	Item group horizontal inter-item spacing
GRPMAR	Item group margin


 Item group brush width (GRPBWD)

Related Topics

Default:	0
Values:	0, 1, 2, 4, 8, 16
Levels:	Container, Table, Module, Module Component, Module Sub-component, Item Group
Category:	Layout - Item Group

Use this preference to specify the brush width for drawing rectangles and lines for item group decoration.

The value of this preference is in points (where a point is 1/72nd of an inch). A value of  0 indicates the thinnest line available on your platform.

Form Generator assumes that lines do not take up any horizontal or vertical space, so note the following:

•	If you use large brush widths, the lines drawn may encroach on other generated objects. In this case, you should consider allowing additional horizontal space for decoration, by either setting the LAYLWD (line width) preference to 1, or increasing the relevant margin preference for the object that is being decorated.

•	Additional vertical space for decoration can be obtained by increasing the relevant header or footer separator preferences for the object being decorated.

If LAYFRA is set to Yes, Form Generator creates decoration as frames. If LAYFRA is set to No, Form Generator creates decoration as graphic objects.


 Item group decoration (GRPDEC)

Related Topics

Default:	RECTANGLE
Values:	(see below)
Levels:	Container, Table, Module, Module Component, Module Sub-component, Item Group
Category:	Layout - Item Group

Use this preference to specify the decoration drawn around item groups.

The options are:

LINES (L)	Lines are drawn at the top and bottom of the item group.
RECTANGLE (R)	A rectangle is drawn around the item group.
RAISED RECTANGLE (RR)	A rectangle is drawn around the item group with raised bevel.
LOWERED RECTANGLE (LR)	A rectangle is drawn around the item group with lowered bevel.
INSET RECTANGLE (IR)	A rectangle is drawn around the item group with inset bevel.
OUTSET RECTANGLE (OR)	A rectangle is drawn around the item group with outset bevel.
INSET LINES (IL)	Lines are drawn at the top and bottom of the item group with inset bevel.
OUTSET LINES (OL)	Lines are drawn at the top and bottom of the item group with outset bevel.
LINE TOP (LT)	A line is drawn above the item group.
INSET LINE TOP (ILT)	A line is drawn above the item group with an inset bevel.
OUTSET LINE TOP (OLT)	A line is drawn above the item group with an outset bevel.
NONE (N)	No decoration is drawn around generated item groups.

If LAYFRA is set to Yes, Form Generator creates decoration as frames. If LAYFRA is set to No, Form Generator creates decoration as graphic objects.

If LAYFRA is set to Yes, the option you select for this preference determines which standard source object from the object library to use to set generated frame properties as follows:

If GRPDEC preference set to:	Use this standard source object:
R, RR, LR, IR, OR	CGSO$FRAME_RECT
L, IL, OL	CGSO$HORZ_LINES
LT, ILT, OLT	CGSO$FRAME_LINE_TOP


 Item group dash style (GRPDST)

Related Topics

Default:	SOLID
Values:	(see below)
Levels:	Container, Table, Module, Module Component, Module Sub-component, Item Group
Category:	Layout - Item Group

Use this preference to specify the dash style for drawing rectangles and lines for item group decoration.

The options are:

SOLID (S)	Solid
DOT (.)	Dot
SHORT DASH (-)	Short Dash
DASH DOT (-.)	Dash Dot
DOUBLE DOT (..)	Double Dot
LONG DASH (--)	Long Dash
DASH DOUBLE DOT (-..)	Dash Double Dot

If LAYFRA is set to Yes, Form Generator creates decoration as frames. If LAYFRA is set to No, Form Generator creates decoration as graphic objects.


 Item group footer separator (GRPFTS)

Related Topics

Default:	1
Values:	Up to 30 characters
Levels:	Container, Table, Module, Module Component, Module Sub-component, Item Group
Category:	Layout - Item Group

Use this preference to specify the vertical space to leave at the bottom of the item group between the last line of generated items and any decoration.

The default units are character cells (i.e. if you do not specify a unit, Form Generator uses character cells). However, you can specify an alternative unit by appending a space and one of the following abbreviations:

Abbreviation	Unit	Example	Max No of decimal places
in	real inches	0.7 in	three (i.e. 0.001, but not 0.0001)
cm	real centimeters	4.56 cm	three (i.e. 0.001, but not 0.0001)
pixel	real pixels	120 pixel	none
point	real points	30 point	one (i.e. 0.1, but not 0.01)

During generation, Form Generator converts the value you specify into the equivalent units in the generated form. For more information about real units, refer to Notes on coordinate systems and Form Generator.


 Item group header separator (GRPHDS)

Related Topics

Default:	1
Values:	Up to 30 characters
Levels:	Container, Table, Module, Module Component, Module Sub-component, Item Group
Category:	Layout - Item Group

Use this preference to specify the vertical space to leave at the top of the item group between any decoration and the first line of generated items.

The default units are character cells (i.e. if you do not specify a unit, Form Generator uses character cells). However, you can specify an alternative unit by appending a space and one of the following abbreviations:

Abbreviation	Unit	Example	Max No of decimal places
in	real inches	0.7 in	three (i.e. 0.001, but not 0.0001)
cm	real centimeters	4.56 cm	three (i.e. 0.001, but not 0.0001)
pixel	real pixels	120 pixel	none
point	real points	30 point	one (i.e. 0.1, but not 0.01)

During generation, Form Generator converts the value you specify into the equivalent units in the generated form. For more information about real units, refer to Notes on coordinate systems and Form Generator.


 Item group horizontal inter-item spacing (GRPHIS)

Related Topics

Default:	2
Values:	Up to 30 characters
Levels:	Container, Table, Module, Module Component, Module Sub-component, Item Group
Category:	Layout - Item Group

Use this preference to specify the space between items in a horizontally oriented group.

The default units are character cells (i.e. if you do not specify a unit, Form Generator uses character cells). However, you can specify an alternative unit by appending a space and one of the following abbreviations:

Abbreviation	Unit	Example	Max No of decimal places
in	real inches	0.7 in	three (i.e. 0.001, but not 0.0001)
cm	real centimeters	4.56 cm	three (i.e. 0.001, but not 0.0001)
pixel	real pixels	120 pixel	none
point	real points	30 point	one (i.e. 0.1, but not 0.01)

During generation, Form Generator converts the value you specify into the equivalent units in the generated form. For more information about real units, refer to Notes on coordinate systems and Form Generator.


 Item group margin (GRPMAR)

Related Topics

Default:	1
Values:	Up to 30 characters
Levels:	Container, Table, Module, Module Component, Module Sub-component, Item Group
Category:	Layout - Item Group

Use this preference to specify the size of both left and right group margins.

Each generated item group can have a left and a right margin. Objects within the group are laid out between these margins.

The default units are character cells (i.e. if you do not specify a unit, Form Generator uses character cells). However, you can specify an alternative unit by appending a space and one of the following abbreviations:

Abbreviation	Unit	Example	Max No of decimal places
in	real inches	0.7 in	three (i.e. 0.001, but not 0.0001)
cm	real centimeters	4.56 cm	three (i.e. 0.001, but not 0.0001)
pixel	real pixels	120 pixel	none
point	real points	30 point	one (i.e. 0.1, but not 0.01)

During generation, Form Generator converts the value you specify into the equivalent units in the generated form. For more information about real units, refer to Notes on coordinate systems and Form Generator.


 Item group multi-line format (GRPMLF)

Related Topics

Default:	WRAP
Values:	1, 2, 3, 4, 5, 6, 7, 8, 9, 10, WRAP
Levels:	Container, Table, Module, Module Component, Module Sub-component, Item Group
Category:	Layout - Item Group

Use this preference to specify the number of items that are placed on each line in a horizontal item group that wraps onto more than one line.

The options are:

1 to 10	No more than the  number of items specified by this preference are placed on any one line.
WRAP (W)	No restriction is placed on the number of items that can be placed on a line.


 Group tabulation table (GRPTAB)

Related Topics

Default:	2.20.42.60
Values:	Up to 80 characters
Levels:	Container, Module, Item Group
Category:	Layout - Item Group

Use this preference to specify the absolute tab stops that are used to display items and their prompts within horizontal item groups. The absolute tab stops must be in ascending order and separated by periods.

Note:	The GRPUTT preference must be set.


 Item group title justification (GRPTLJ)

Related Topics

Default:	LEFT
Values:	CENTER, LEFT, RIGHT
Levels:	Container, Table, Module, Module Component, Module Sub-component, Item Group
Category:	Layout - Item Group

Use this preference to specify the alignment of the item group title within the available width (the width of the item group minus left and right item group title margins).

The options are:

LEFT (L)	The title is left-aligned.
RIGHT (R)	The title is right-aligned.
CENTER (C)	The title is centered.

Note the following:

•	If the item group title does not fit within the available width, the item group is not given a title.

•	If LAYFRA is set to Yes and GRPTLP is set to On Decoration, Form Generator creates decoration as a frame and uses this preference to set the frame's Frame Title Alignment property. If LAYFRA is set to No (or if LAYFRA is set to Yes and GRPTLP is not set to On Decoration), Form Generator creates the title as graphic text and uses this preference to specify the position of the graphic text.


 Item group title margin (GRPTLM)

Related Topics

Default:	2
Values:	Up to 30 characters
Levels:	Container, Table, Module, Module Component, Module Sub-component, Item Group
Category:	Layout - Item Group

Use this preference to specify the size of both left and right item group title margins.

Each generated title can have a left and a right margin. The title of the item group is laid out between these margins.

The default units are character cells (i.e. if you do not specify a unit, Form Generator uses character cells). However, you can specify an alternative unit by appending a space and one of the following abbreviations:

Abbreviation	Unit	Example	Max No of decimal places
in	real inches	0.7 in	three (i.e. 0.001, but not 0.0001)
cm	real centimeters	4.56 cm	three (i.e. 0.001, but not 0.0001)
pixel	real pixels	120 pixel	none
point	real points	30 point	one (i.e. 0.1, but not 0.01)

During generation, Form Generator converts the value you specify into the equivalent units in the generated form. For more information about real units, refer to Notes on coordinate systems and Form Generator.


 Item group title position (GRPTLP)

Related Topics

Default:	ON DECORATION
Values:	INSIDE, OUTSIDE, ON DECORATION, NONE
Levels:	Container, Table, Module, Module Component, Module Sub-component, Item Group
Category:	Layout - Item Group

Use this preference to specify the position of item group titles.

The options are:

INSIDE	The title is positioned inside any decoration drawn around the item group. As part of the decoration, the title is repeated for each row of a multi-record block.
OUTSIDE	The title is positioned outside any decoration drawn around the item group. In this case, the title is treated in the same way as an item prompt. In a multi-record block in which each row takes up only one line (i.e. does not wrap), the title appears in the first row only.
ON DECORATION	The title is placed on the decoration drawn around the item group.  Notes: Set the title font fill pattern to a different color to the decoration (e.g. the canvas color would be a sensible choice). A title is not placed on a raised or lowered bevel decoration; if an item group is surrounded by a raised or lowered bevel, Form Generator uses the INSIDE option.
NONE	The item group is not given a title.

Use the GRPTLS preference to specify the space either side of the title. Use the GRPTLM and GRPTLJ preferences to adjust the position of the title within the line.

If LAYFRA is set to Yes and this preference is set to On Decoration, Form Generator creates decoration as a frame and uses GRPTLJ to set the frame's Frame Title Alignment property. If LAYFRA is set to No (or if LAYFRA is set to Yes and this preference is not set to On Decoration), Form Generator creates the title as graphic text and uses BRPTLJ to specify the position of the graphic text.


 Item group title spacing (GRPTLS)

Related Topics

Default:	2
Values:	0 to 99
Levels:	Container, Table, Module, Module Component, Module Sub-component, Item Group
Category:	Layout - Item Group

Use this preference to specify the amount of horizontal space left on either side of the item group title.

This preference has little impact when the target environment is bitmapped, because the title will be inside any decoration drawn around the item group and spacing on either side of it is unnoticed:

 --------------------------------

|      Item Group Title        |

However, if the target environment is character mode, the title is embedded within any decoration drawn around the item group and the spacing on either side of it is more apparent:

 ------- Item Group Title -------------------------

|                               |


 Use group tabulation table (GRPUTT)

Related Topics

Default:	(no value)
Values:	(no value), ED, EP, SD, SP, SS, EE, SE1, SE2
Levels:	Container, Table, Module, Module Component, Module Sub-component, Item Group
Category:	Layout - Item Group

Use this preference to specify the alignment of items in an item group as follows:

•	items in a vertical item group can be aligned with respect to each other

•	items in a horizontal item group can be aligned with respect to the absolute tab stops specified by the GRPTAB preference

Note that Form Generator never uses absolute tab stops to position item groups comprising context items for overflow areas (i.e. where a module component's Overflow property is set to Spreadtable, Overflow area right or Overflow area below).

The options are:

ED	Align the end of the items.

EP	Align the end of the post prompts (if there is no post-prompt, then the effect is the same as for ED).

SD	Align the start of the items.

SP	Align the start of the prompts.

SS	Align the start of the prompts and align the start of the items

EE	Align the end of the prompts and align the end of the items

SE1	Align the start of the prompts and align the end of the items; minimize the use of horizontal space

SE2	Align the start of the prompts and align the end of the items; make sure that no prompt overlaps an item

Note:	SE1 and SE2 have the same effect for horizontal item groups.

Horizontal Item Groups

If GRPUTT is set to one of ED, EP, SD, or SP:

•	The gap between prompt and item is specified by the preference ITMPIG.

•	The gap between an item and the next prompt, specified by the preference GRPHIS, is the minimum gap between the item and the prompt. If the gap is greater than the distance to the next absolute tab stop, the next absolute tab stop is used.

•	If insufficient space is available, items are truncated to align with absolute tab stops.

If GRPUTT is set to one of SS, EE, SE1, or SE2:

•	Form Generator uses the absolute tab stops specified by the GRPTAB preference to align prompts to even tab stops (i.e. tab 0, tab 2, tab 4, . . .) and items to odd tab stops (i.e. tab 1, tab 3, tab 5, . . .).

•	ITMPIG and GRPHIS specify the minimum gaps between prompt and item, and between item and the next prompt. If gaps will be less than specified by these preferences, the next appropriate absolute tab stop is used.

•	If insufficient space is available to display a prompt beside an item, the prompt is displayed above the item. In this case, if GRPUTT is set to SS, the SD alignment is used. If GRPUTT is set to EE, SE1 or SE2, the ED alignment is used.

Vertical Item Groups

The alignments ED, SD, SS, EE, and SE2 can increase the overall width of vertical item groups. If this makes the item group too wide to fit in the available width, the alignments EP or SP are used by Form Generator to position the items.

If an item cannot fit in the available space, the item is truncated to fit.

If GRPUTT is not set, the ends of items in a vertical item group are aligned.


 Item group vertical inter-item spacing (GRPVIS)

Related Topics

Default:	0
Values:	Up to 30 characters
Levels:	Container, Table, Module, Module Component, Module Sub-component, Item Group
Category:	Layout - Item Group

Use this preference to specify the space between lines in an item group that is laid out vertically.

The default units are character cells (i.e. if you do not specify a unit, Form Generator uses character cells). However, you can specify an alternative unit by appending a space and one of the following abbreviations:

Abbreviation	Unit	Example	Max No of decimal places
in	real inches	0.7 in	three (i.e. 0.001, but not 0.0001)
cm	real centimeters	4.56 cm	three (i.e. 0.001, but not 0.0001)
pixel	real pixels	120 pixel	none
point	real points	30 point	one (i.e. 0.1, but not 0.01)

During generation, Form Generator converts the value you specify into the equivalent units in the generated form. For more information about real units, refer to Notes on coordinate systems and Form Generator.


 Layout preferences - multi-region

Related Topics

These preferences control the appearance of multi-region blocks:

Name	Description	Levels at which preferences can be set
		Cont	Dom	Tab	Con	Col	Mod	MC	Sub	LOV	CnU	ItG	Itm	Act
MRBMCR	Multi-region block maintain current region	X					X	X
MRBVSB	Multi-region block vertical scrollbar	X					X	X	X


 Multi-region block maintain current region (MRBMCR)

Related Topics

Default:	Yes
Values:	Yes, No
Levels:	Container, Module, Module Component
Category:	Layout - multi-region

Use this preference to control navigation within multi-region blocks when a user of the generated form enters a query, executes a query, or inserts a new record.

Set this preference to Yes to ensure that the cursor moves to the first navigable item in the current region when a user of the generated form enters a query, executes a query, or inserts a new record.

Set this preference to No if you do not want to restrict navigation to the current region. The cursor moves to the first navigable item in the block (potentially in a different region on a different canvas) when a user of the generated form enters a query, executes a query, or inserts a new record. This is default Oracle Forms behavior.

Notes

•	This preference only applies to multi-region blocks (i.e. it does not apply to single region blocks, item groups on different tab canvas pages, or context areas/spreadtables).

•	This preference only controls navigation when a user of the generated form enters a query, executes a query, or inserts a new record. Use NAVPAG to control [Next Item] and [Previous Item] item navigation when items from the same block are on different canvases.


 Multi-region block vertical scrollbar (MRBVSB)

Related Topics

Default:	Yes
Values:	Yes, No
Levels:	Container, Module, Module Component, Module Sub-component
Category:	Layout - multi-region

Use this preference to specify the multi-row layout region in a generated multi-region block that is to have a vertical scrollbar.

How to use this preference depends on the canvases on which the multi-row layout regions will be placed. There are two alternatives:

•	If you are generating multi-row regions for the same block onto different tab canvas pages of the same tab canvas in the same window, more than one multi-row region can have a vertical scrollbar. Set this preference to Yes for the primary module component and/or module sub-component(s) from which Form Generator will generate the multi-row layout region(s) that you want to have a vertical scrollbar.

•	If you are not generating multi-row regions for the same block onto different tab canvas pages of the same tab canvas in the same window, only one multi-row region can have a vertical scrollbar. Set this preference:

−	to Yes for the primary module component or module sub-component from which Form Generator will generate the multi-row layout region that you want to have the vertical scrollbar

−	to No for other multi-row module components generated into the multi-region block

Notes

If you are not generating multi-row regions for the same block onto different tab canvas pages of the same tab canvas in the same window and this preference is set to Yes for more than one multi-row module component, Form Generator:

•	gives a scrollbar to the first multi-row layout region that has the MRBVSB preference set to Yes

•	issues a warning and ignores the setting of this preference for subsequent multi-row module components generated into the multi-region block


 Layout preferences - overflow

Related Topics

These preferences control the appearance of overflow areas:

Name	Description	Levels at which preferences can be set
		Cont	Dom	Tab	Con	Col	Mod	MC	Sub	LOV	CnU	ItG	Itm	Act
OFABCS	Overflow area below, content separator	X		X			X	X	X
OFABWD	Overflow area brush width	X		X			X	X	X
OFADEC	Overflow area decoration	X		X			X	X	X
OFADFT	Overflow area table uses default context items	X		X			X	X	X
OFADST	Overflow area dash style	X		X			X	X	X
OFAFTS	Overflow area footer separator	X		X			X	X	X
OFAGRP	Overflow area context item group inclusion	X		X			X	X	X
OFAHDS	Overflow area header separator	X		X			X	X	X
OFAJUS	Overflow area justification	X		X			X	X	X
OFALIM	Limit rows within overflow area on right	X		X			X	X	X
OFAMAR	Overflow area margin	X		X			X	X	X
OFAMLL	Overflow area multi-line line separator	X		X			X	X	X
OFAPCN	Overflow area percentage of available width reserved for context	X		X			X	X	X
OFARCS	Overflow area right, content separator	X		X			X	X	X
OFATLJ	Overflow area title justification	X		X			X	X	X
OFATLM	Overflow area title margin	X		X			X	X	X
OFATLS	Overflow area title spacing	X		X			X	X	X
OFATTL	Overflow area title	X		X			X	X	X

For more information about handling block overflow, refer to Block overflow control.

How to use these preferences to control:

Overflow area appearance

Overflow area arrangement

Overflow area titles

Overflow area spacing

Overflow area contents


 Using preferences to control overflow area appearance

Related Topics

The following preferences (in the Layout Preferences - Overflow category) determine the appearance of the lines around the overflow area.

Preference	Meaning
OFABWD	Overflow area brush width
OFADEC	Overflow area decoration
OFADST	Overflow area dash style


 Using preferences to control overflow area arrangement

Related Topics

The following preferences (in the Layout Preferences - Overflow category) determine the layout of the overflow area on the form.

Preference	Meaning
OFAJUS	Overflow area justification
OFALIM	Limit rows within overflow area on right
OFAPCN	Overflow area percentage of available width reserved for context


 Using preferences to control overflow area titles

Related Topics

The following preferences (in the Layout Preferences - Overflow category) determine how the title of the overflow area looks.

Preference	Meaning
OFATLJ	Overflow area title justification
OFATLM	Overflow area title margin
OFATLS	Overflow area title spacing
OFATTL	Overflow area title


 Using preferences to control overflow area spacing

Related Topics

The following preferences (in the Layout Preferences - Overflow category) determine the amount of white space surrounding the overflow area.

Preference	Meaning
OFABCS	Overflow area below, content separator
OFAFTS	Overflow area footer separator
OFAHDS	Overflow area header separator
OFAMAR	Overflow area margin
OFAMLL	Overflow area multi-line separator
OFARCS	Overflow area right, content separator


 Using preferences to control overflow area contents

Related Topics

The following preferences (in the Layout Preferences - Overflow category) determine the contents of the overflow area.

Preference	Meaning
OFADFT	Overflow area table uses default context items
OFAGRP	Overflow area context item group inclusion


 Overflow area below, content separator (OFABCS)

Related Topics

Default:	1
Values:	Up to 30 characters
Levels:	Container, Table, Module, Module Component, Module Sub-component
Category:	Layout - Overflow

Use this preference to specify the amount of space used to separate the content items from an overflow area below.

The default units are character cells (i.e. if you do not specify a unit, Form Generator uses character cells). However, you can specify an alternative unit by appending a space and one of the following abbreviations:

Abbreviation	Unit	Example	Max No of decimal places
in	real inches	0.7 in	three (i.e. 0.001, but not 0.0001)
cm	real centimeters	4.56 cm	three (i.e. 0.001, but not 0.0001)
pixel	real pixels	120 pixel	none
point	real points	30 point	one (i.e. 0.1, but not 0.01)

During generation, Form Generator converts the value you specify into the equivalent units in the generated form. For more information about real units, refer to Notes on coordinate systems and Form Generator.

For more information about handling block overflow, refer to Block overflow control.

Related preferences

OFARCS


 Overflow area brush width (OFABWD)

Related Topics

Default:	0
Values:	0, 1, 2, 4, 8, 16
Levels:	Container, Table, Module, Module Component, Module Sub-component
Category:	Layout - Overflow

Use this preference to specify the brush width used to draw rectangles and lines for overflow area decoration.

The value of this preference is in points (where a point is 1/72nd of an inch). A value of 0 indicates the thinnest line available on your platform.

Form Generator assumes that lines do not take up any horizontal or vertical space, so note the following:

•	If you use large brush widths, the lines drawn may encroach on other generated objects. In this case, you should consider allowing additional horizontal space for decoration, by either setting the LAYLWD (line width) preference to 1, or increasing the relevant margin preference for the object that is being decorated.

•	Additional vertical space for decoration can be obtained by increasing the relevant header or footer separator preferences for the object being decorated.

If LAYFRA is set to Yes, Form Generator creates decoration as frames. If LAYFRA is set to No, Form Generator creates decoration as graphic objects.

For more information about handling block overflow, refer to Block overflow control.


 Overflow area decoration (OFADEC)

Related Topics

Default:	RECTANGLE
Values:	(see below)
Levels:	Container, Table, Module, Module Component, Module Sub-component
Category:	Layout - Overflow

Use this preference to specify the decoration drawn around overflow areas.

The options are:

LINES (L)	Lines are drawn at the top and bottom of the overflow area.
RECTANGLE (R)	A rectangle is drawn around the overflow area.
RAISED RECTANGLE (RR)	A rectangle is drawn around the overflow area with raised bevel.
LOWERED RECTANGLE (LR)	A rectangle is drawn around the overflow area with lowered bevel.
INSET RECTANGLE (IR)	A rectangle is drawn around the overflow area with inset bevel.
OUTSET RECTANGLE (OR)	A rectangle is drawn around the overflow area with outset bevel.
INSET LINES (IL)	Lines are drawn at the top and bottom of the overflow area with inset bevel.
OUTSET LINES (OL)	Lines are drawn at the top and bottom of the overflow area with outset bevel.
LINE TOP (LT)	A line is drawn above the overflow area.
INSET LINE TOP (ILT)	A line is drawn above the overflow area with an inset bevel.
OUTSET LINE TOP (OLT)	A line is drawn above the overflow area with an outset bevel.
NONE (N)	No decoration is drawn around generated overflow areas.

If LAYFRA is set to Yes, Form Generator creates decoration as frames. If LAYFRA is set to No, Form Generator creates decoration as graphic objects.

If LAYFRA is set to Yes, the option you select for this preference determines which standard source object from the object library to use to set generated frame properties as follows:

If CONDEC preference set to:	Use this standard source object:
R, RR, LR, IR, OR	CGSO$FRAME_RECT
L, IL, OL	CGSO$HORZ_LINES
LT, ILT, OLT	CGSO$FRAME_LINE_TOP

For more information about handling block overflow, refer to Block overflow control.


 Overflow area table uses default context items (OFADFT)

Related Topics

Default:	Yes
Values:	Yes, No
Levels:	Container, Table, Module, Module Component, Module Sub-component
Category:	Layout - Overflow

Use this preference to specify the criteria used by Form Generator to pick context items that remain on the content canvas when constructing an overflow area. Where the overflow area is to the right, the OFAPCN preference determines the space available for the context area.

In addition to OFADFT, Form Generator also determines which items to include in the context area using:

•	the order of repository items

•	whether the underlying column is a primary key (or part of the primary key), or is a descriptor column

•	the Context property of the repository item

Form Generator always puts an item generated from the first displayed repository item into the context area, regardless of the setting of OFADFT. If the context area is not large enough to contain the item, the item is truncated to fit.

For more information about handling block overflow, refer to Block overflow control.

If OFADFT is set to Yes

If OFADFT is set to Yes and the first repository item is the primary key (or part of the primary key) or a descriptor, Form Generator puts items into the context area generated from subsequent repository items that are also part of the primary key or are descriptors until:

•	either Form Generator reaches a repository item that is not part of the primary key or not a descriptor

•	or there is no more room available in the context area

All remaining repository items (regardless of Context property, or whether they are part of the primary key or are descriptors) are put in the overflow area.

If OFADFT is set to No

If OFADFT is set to No and the first repository item has its Context property set to Y, Form Generator puts items into the context area derived from subsequent repository items that also have their Context property set to Y until:

•	either Form Generator reaches a repository item that does not have its Context property set to Y

•	or there is no more room available in the context area

All remaining repository items (regardless of Context property, or whether they are part of the primary key or are descriptors) are put in the overflow area.

For more information about using this preference, refer to Block overflow control.


 Overflow area dash style (OFADST)

Related Topics

Default:	SOLID
Values:	(see below)
Levels:	Container, Table, Module, Module Component, Module Sub-component
Category:	Layout - Overflow

Use this preference to specify the dash style for drawing rectangles and lines for overflow area decoration.

The options are:

SOLID (S)	Solid
DOT (.)	Dot
SHORT DASH (-)	Short Dash
DASH DOT (-.)	Dash Dot
DOUBLE DOT (..)	Double Dot
LONG DASH (--)	Long Dash
DASH DOUBLE DOT (-..)	Dash Double Dot

If LAYFRA is set to Yes, Form Generator creates decoration as frames. If LAYFRA is set to No, Form Generator creates decoration as graphic objects.

For more information about handling block overflow, refer to Block overflow control.


 Overflow area footer separator (OFAFTS)

Related Topics

Default:	1
Values:	Up to 30 characters
Levels:	Container, Table, Module, Module Component, Module Sub-component
Category:	Layout - Overflow

Use this preference to specify the amount of vertical space to leave at the bottom of the overflow area.

The default units are character cells (i.e. if you do not specify a unit, Form Generator uses character cells). However, you can specify an alternative unit by appending a space and one of the following abbreviations:

Abbreviation	Unit	Example	Max No of decimal places
in	real inches	0.7 in	three (i.e. 0.001, but not 0.0001)
cm	real centimeters	4.56 cm	three (i.e. 0.001, but not 0.0001)
pixel	real pixels	120 pixel	none
point	real points	30 point	one (i.e. 0.1, but not 0.01)

During generation, Form Generator converts the value you specify into the equivalent units in the generated form. For more information about real units, refer to Notes on coordinate systems and Form Generator.

For more information about handling block overflow, refer to Block overflow control.


 Overflow area context item group inclusion (OFAGRP)

Related Topics

Default:	ALL
Values:	ALL, ONE
Levels:	Container, Table, Module, Module Component, Module Sub-component
Category:	Layout - Overflow

Use this preference to specify how Form Generator manages item groups when picking context/static items that remain on the content canvas when constructing an overflow area.

An item group must be treated as an 'unsplittable' object than can either be a context/static object that remains on the content canvas, or can be placed on the overflow area.

The options are:

ONE (O)	Only one of the items in the item group need meet the criteria specified in the OFADFT preference for the item group to be considered as a candidate context/static object that remains on the content canvas.
ALL (A)	All of the items in the item group must meet the criteria specified in the OFADFT preference for the item group to be considered as a candidate context/static object that remains on the content canvas.

For more information about handling block overflow, refer to Block overflow control.

Related preferences

OFADFT


 Overflow area header separator (OFAHDS)

Related Topics

Default:	1
Values:	Up to 30 characters
Levels:	Container, Table, Module, Module Component, Module Sub-component
Category:	Layout - Overflow

Use this preference to specify the amount of vertical space to leave at the top of the overflow area.

The default units are character cells (i.e. if you do not specify a unit, Form Generator uses character cells). However, you can specify an alternative unit by appending a space and one of the following abbreviations:

Abbreviation	Unit	Example	Max No of decimal places
in	real inches	0.7 in	three (i.e. 0.001, but not 0.0001)
cm	real centimeters	4.56 cm	three (i.e. 0.001, but not 0.0001)
pixel	real pixels	120 pixel	none
point	real points	30 point	one (i.e. 0.1, but not 0.01)

During generation, Form Generator converts the value you specify into the equivalent units in the generated form. For more information about real units, refer to Notes on coordinate systems and Form Generator.

For more information about handling block overflow, refer to Block overflow control.


 Overflow area justification (OFAJUS)

Related Topics

Default:	CENTER
Values:	CENTER, LEFT, RIGHT
Levels:	Container, Table, Module, Module Component, Module Sub-component
Category:	Layout - Overflow

Use this preference to specify the position of the region within which items are laid out (i.e. the width of the longest line in the overflow area) with regard to the total width of the overflow area.

The options are:

LEFT (L)	Position the laid out region on the left within the overflow area.
RIGHT (R)	Position the laid out region on the right within the overflow area.
CENTER (C)	Center the laid out region within the overflow area.

For more information about handling block overflow, refer to Block overflow control.


 Limit rows within overflow area on right (OFALIM)

Related Topics

Default:	Yes
Values:	Yes, No
Levels:	Container, Table, Module, Module Component, Module Sub-component
Category:	Layout - Overflow

Use this preference to specify whether Form Generator limits the number of rows in blocks (or layout regions in multi-region blocks) containing an overflow area that is displayed to the right of the content items.

If this preference is set to Yes, the number of rows displayed is restricted by the height of the overflow area.

If this preference is set to No, no restriction is placed on the number of rows displayed.

For more information about handling block overflow, refer to Block overflow control.

Related preferences

SARLIM


 Overflow area margin (OFAMAR)

Related Topics

Default:	1
Values:	Up to 30 characters
Levels:	Container, Table, Module, Module Component, Module Sub-component
Category:	Layout - Overflow

Use this preference to specify both the left and right overflow area margins.

The default units are character cells (i.e. if you do not specify a unit, Form Generator uses character cells). However, you can specify an alternative unit by appending a space and one of the following abbreviations:

Abbreviation	Unit	Example	Max No of decimal places
in	real inches	0.7 in	three (i.e. 0.001, but not 0.0001)
cm	real centimeters	4.56 cm	three (i.e. 0.001, but not 0.0001)
pixel	real pixels	120 pixel	none
point	real points	30 point	one (i.e. 0.1, but not 0.01)

During generation, Form Generator converts the value you specify into the equivalent units in the generated form. For more information about real units, refer to Notes on coordinate systems and Form Generator.

For more information about handling block overflow, refer to Block overflow control.


 Overflow area multi-line line separator (OFAMLL)

Related Topics

Default:	1
Values:	Up to 30 characters
Levels:	Container, Table, Module, Module Component, Module Sub-component
Category:	Layout - Overflow

Use this preference to specify the vertical space used to separate lines of items in a record where the record wraps onto more than one line.

Change this preference to zero to minimize the amount of vertical space taken up by a generated overflow area.

The default units are character cells (i.e. if you do not specify a unit, Form Generator uses character cells). However, you can specify an alternative unit by appending a space and one of the following abbreviations:

Abbreviation	Unit	Example	Max No of decimal places
in	real inches	0.7 in	three (i.e. 0.001, but not 0.0001)
cm	real centimeters	4.56 cm	three (i.e. 0.001, but not 0.0001)
pixel	real pixels	120 pixel	none
point	real points	30 point	one (i.e. 0.1, but not 0.01)

During generation, Form Generator converts the value you specify into the equivalent units in the generated form. For more information about real units, refer to Notes on coordinate systems and Form Generator.

For more information about handling block overflow, refer to Block overflow control.


 Overflow area percentage of available width reserved for context (OFAPCN)

Related Topics

Default:	50
Values:	1 to 99
Levels:	Container, Table, Module, Module Component, Module Sub-component
Category:	Layout - Overflow

Use this preference to specify how Form Generator divides the available width between the context/static items that remain on the canvas and the overflow area.

It is only applicable when the overflow area is to the right of the context/static items.

This preference specifies the maximum percentage of the width available for context/static items. If the context items require less space than this, the remainder is available to the overflow area.

If there is insufficient space to display the context/static items, these items are transferred, one at the time until the remaining fit into the available space. If necessary the remaining context/static item is truncated to fit.

For more information about handling block overflow, refer to Block overflow control.


 Overflow area right, content separator (OFARCS)

Related Topics

Default:	1
Values:	Up to 30 characters
Levels:	Container, Table, Module, Module Component, Module Sub-component
Category:	Layout - Overflow

Use this preference to specify the amount of space used to separate the content items from an overflow area on the right.

The default units are character cells (i.e. if you do not specify a unit, Form Generator uses character cells). However, you can specify an alternative unit by appending a space and one of the following abbreviations:

Abbreviation	Unit	Example	Max No of decimal places
in	real inches	0.7 in	three (i.e. 0.001, but not 0.0001)
cm	real centimeters	4.56 cm	three (i.e. 0.001, but not 0.0001)
pixel	real pixels	120 pixel	none
point	real points	30 point	one (i.e. 0.1, but not 0.01)

During generation, Form Generator converts the value you specify into the equivalent units in the generated form. For more information about real units, refer to Notes on coordinate systems and Form Generator.

For more information about handling block overflow, refer to Block overflow control.

Related preferences

OFABCS


 Overflow area title justification (OFATLJ)

Related Topics

Default:	LEFT
Values:	CENTER, LEFT, RIGHT
Levels:	Container, Table, Module, Module Component, Module Sub-component
Category:	Layout - Overflow

Use this preference to specify the alignment of the overflow area title within the available width (the width of the overflow area minus left and right overflow area title margins).

The options are:

LEFT (L)	The title is left-aligned.
RIGHT (R)	The title is right-aligned.
CENTER (C)	The title is centered.

Note the following:

•	If the overflow area title does not fit within the available width, the overflow area is not given a title.

•	If LAYFRA is set to Yes, Form Generator creates decoration as a frame and uses this property to set the frame's Frame Title Alignment property. If LAYFRA is set to No, Form Generator creates the title as graphic text and uses this property to specify the position of the graphic text.

For more information about handling block overflow, refer to Block overflow control.


 Overflow area title margin (OFATLM)

Related Topics

Default:	2
Values:	Up to 30 characters
Levels:	Container, Table, Module, Module Component, Module Sub-component
Category:	Layout - Overflow

Use this preference to specify both the left and right overflow area title margins.

The default units are character cells (i.e. if you do not specify a unit, Form Generator uses character cells). However, you can specify an alternative unit by appending a space and one of the following abbreviations:

Abbreviation	Unit	Example	Max No of decimal places
in	real inches	0.7 in	three (i.e. 0.001, but not 0.0001)
cm	real centimeters	4.56 cm	three (i.e. 0.001, but not 0.0001)
pixel	real pixels	120 pixel	none
point	real points	30 point	one (i.e. 0.1, but not 0.01)

During generation, Form Generator converts the value you specify into the equivalent units in the generated form. For more information about real units, refer to Notes on coordinate systems and Form Generator.

For more information about handling block overflow, refer to Block overflow control.


 Overflow area title spacing (OFATLS)

Related Topics

Default:	2
Values:	0 to 99
Levels:	Container, Table, Module, Module Component, Module Sub-component
Category:	Layout - Overflow

Use this preference to specify the horizontal space left on either side of the overflow area title.

This preference has little impact when the target environment is bitmapped since the title is inside any decoration drawn around the overflow area and spacing on either side of it is unnoticed:

 ----------------------------------------

|      Overflow Area Title               |

However, when the target environment is character mode, the title is embedded within any decoration drawn around the overflow area and the spacing on either side of it is more apparent:

 --- Overflow Area Title ------------------------------------

|                                       |

For more information about handling block overflow, refer to Block overflow control.


 Overflow area title (OFATTL)

Related Topics

Default:	(no value)
Values:	(no value), up to 80 characters
Levels:	Container, Table, Module, Module Component, Module Sub-component
Category:	Layout - Overflow

Use this preference to specify the title used with overflow areas.

If the title does not fit within the overflow area, the title is not displayed.

For more information about handling block overflow, refer to Block overflow control.

Related preferences

OFATLM

OFATLJ


 Layout preferences - pop list

Related Topics

These preferences govern basic details of generated poplists.

Name	Description	Levels at which preferences can be set
		Cont	Dom	Tab	Con	Col	Mod	MC	Sub	LOV	CnU	ItG	Itm	Act
PLSIWD	Poplist indicator width	X					X
PLSMAX	Maximum number of items in a poplist	X	X	X		X	X	X	X				X
PLSPEX							X
How to use these preferences to control:

Poplist layout


 Using preferences to control poplist layout

Related Topics

The following preferences (in the Layout Preferences - Poplist category) determine the appearance and behavior of poplists.

Preference	Meaning
PLSIWD	Poplist indicator width
PLSMAX	Maximum number of items in a poplist
Example

To generate a poplist containing a maximum of four values, set PLSMAX to 4.


 Poplist indicator width (PLSIWD)

Related Topics

Default:	4
Values:	Up to 30 characters
Levels:	Container, Module
Category:	Layout - Pop List

Use this preference to specify the space allocated for the icon that depicts the poplist indicator.

Note:	PLSIWD does not specify the size of the poplist indicator icon.

You will only need to change this preference when generating forms for a target environment other than MS Windows.

The default units are character cells (i.e. if you do not specify a unit, Form Generator uses character cells). However, you can specify an alternative unit by appending a space and one of the following abbreviations:

Abbreviation	Unit	Example	Max No of decimal places
in	real inches	0.7 in	three (i.e. 0.001, but not 0.0001)
cm	real centimeters	4.56 cm	three (i.e. 0.001, but not 0.0001)
pixel	real pixels	120 pixel	none
point	real points	30 point	one (i.e. 0.1, but not 0.01)

During generation, Form Generator converts the value you specify into the equivalent units in the generated form. For more information about real units, refer to Notes on coordinate systems and Form Generator.

Related preferences

BUTIWD

CBXIWD

TLSSBW


 Maximum number of items in a poplist (PLSMAX)

Related Topics

Default:	5
Values:	(no value), 1 to 20
Levels:	Container, Domain, Table, Column, Module, Module Component, Module Sub-component, Item
Category:	Layout - Pop List

Use this preference to specify the maximum number of values that can be used for a poplist.

If the item is optional, the NULL value will always be included in the poplist (and hence, the maximum number of other values will be one less than that specified by this preference).

If the number of items for the poplist is greater than the value of this preference, Form Generator issues a warning.

If this preference is not set, no check is made on the number of values.

Note that this preference does not apply to lookup poplist items.


 Extra expansion for pop list (PLSPEX)

Related Topics

Default:	0.5 in
Values:	zero, size in abbreviation units
Levels:	Module
Category:	Layout - Pop List

Related preferences: BUTPEX, CBXPEX, ITMPPE

Use this preference to expand the width of the pop list specified by a constant for displaying translatable character sets.

This preference is unlikely to need changing, unless you are generating a form to display different character setsof varying width.

The default units are character cells (i.e. if you do not specify a unit, Form Generator uses character cells). However, you can specify an alternative unit by appending a space and one of the following abbreviations:

Abbreviation	Unit	Example	Max number of decimal places
in	real inches	0.7 in	three (i.e. 0.001, but not 0.0001)
cm	real centimeters	4.56 cm	three (i.e. 0.001, but not 0.0001)
pixel	real pixels	120 pixel	none
point	real points	30 point	one (i.e. 0.1, but not 0.01)

During generation, Form Generator converts the value you specify into the equivalent units in the generated form. For more information about real units, refer to Notes on coordinate systems and Form Generator.


 Layout preferences - radio group

Related Topics

These preferences govern the details and appearance of generated radio groups.

Name	Description	Levels at which preferences can be set
		Cont	Dom	Tab	Con	Col	Mod	MC	Sub	LOV	CnU	ItG	Itm	Act
RADBWD	Radio group brush width	X	X	X		X	X	X	X				X
RADDEC	Radio group decoration	X	X	X		X	X	X	X				X
RADDST	Radio group dash style	X	X	X		X	X	X	X				X
RADFTS	Radio group separator	X	X	X		X	X	X	X				X
RADHDS	Radio group header separator	X	X	X		X	X	X	X				X
RADHIS	Radio group horizontal inter-item spacing	X	X	X		X	X	X	X				X
RADMAR	Radio group margin	X	X	X		X	X	X	X				X
RADMLF	Radio group multi-line format	X	X	X		X	X	X	X				X
RADTLJ	Radio group title justification	X	X	X		X	X	X	X				X
RADTLM	Radio group title margin	X	X	X		X	X	X	X				X
RADTLP	Radio group title position	X	X	X		X	X	X	X				X
RADTLS	Radio group title spacing	X	X	X		X	X	X	X				X
RADVIS	Radio group vertical inter-item spacing	X	X	X		X	X	X	X				X
How to use these preferences to control:

Radio group appearance

Radio group titles

Radio group margins

Radio group arrangement


 Using preferences to control radio group appearance

Related Topics

The following preferences (in the Layout Preferences - Radio Group category) determine the appearance of the lines around the radio group.

Preference	Meaning
RADDEC	Radio group decoration
RADDST	Radio group dash style
RADBWD	Radio group brush width
Examples

To decorate a radio group with thick dotted lines:

1.	Use the RADDEC preference to set the decoration of the radio group to LINES.

2.	Set RADBWD to 4.

3.	Set RADDST to DOT.

To make a radio group look like it is on a raised area of the screen:

1.	Use the RADDEC preference to set the decoration of the radio group to RAISED RECTANGLE.

2.	For best effect, set RADBWD to a value between 0 and 2.

3.	You do not need to set RADDST, the value of this preference is ignored when generating three-dimensional effects.


 Using preferences to control radio group titles

Related Topics

The following preferences (in the Layout Preferences - Radio Group category) determine how the title of the radio group looks.

Preference	Meaning
RADTLM	Radio group title margin
RADTLS	Radio group title spacing
RADTLJ	Radio group title justification
RADTLP	Radio group title position
Example

To left justify the title of your radio group, position it inside the decoration, with a margin of 6 and 4 space characters in front of the title:

1.	Set the RADTLJ preference to LEFT to left justify the title.

2.	Set RADTLP to INSIDE to position the title.

3.	Set RADTLM to 6 to define the margin.

4.	Set RADTLS to 4 to place spaces in front of the title.


 Using preferences to control radio group margins

Related Topics

The following preferences (in the Layout Preferences - Radio Group category) determine how much blank space will be left around the radio group.

Preference	Meaning
RADMAR	Radio group margins
RADHDS	Radio group header separator
RADFTS	Radio group footer separator
Example

To generate a radio group with left and right margins of 5, a header separator of 1 and a footer separator of 1:

1.	Specify the left and right margins by setting the RADMAR preference to 5.

2.	Set RADHDS to 1 to define the header separator.

3.	Set RADFTS to 1 to define the footer separator.


 Using preferences to control radio group arrangement

Related Topics

The following preferences (in the Layout Preferences - Radio Group category) determine where the buttons in a radio group will be placed.

Preference	Meaning
RADHIS	Radio group horizontal inter-item spacing
RADMLF	Radio group multi-line format
RADVIS	Radio group vertical inter-item spacing
Examples

To arrange your radio group horizontally with 3 buttons on each line and a distance of 3 spaces between each button:

1.	Specify horizontal orientation for the radio group by setting the repository item's Display type property to Radio Group (Across).

2.	Set RADMLF to 3 to define the number of buttons per line.

3.	Set RADHIS to 3 to place 3 spaces between each button.

To arrange your radio group vertically with 2 lines between each radio button:

1.	Specify vertical orientation for the radio group by setting  the repository item's Display type property to Radio Group (Down).

You can also specify vertical orientation by setting RADMLF to 1.

2.	Set RADVIS to 2 to place 2 lines between each radio button.


 Radio group brush width (RADBWD)

Related Topics

Default:	0
Values:	0, 1, 2, 4, 8, 16
Levels:	Container, Domain, Table, Column, Module, Module Component, Module Sub-component, Item
Category:	Layout - Radio Group

Use this preference to specify the brush width for drawing rectangles and lines for radio group decoration.

The value of this preference is in points (where a point is 1/72nd of an inch). A value of 0 represents the thinnest line available on your platform.

Form Generator assumes that lines do not take up any horizontal or vertical space, so note the following:

•	If you select a large brush width, the lines drawn can encroach on other generated objects. In this case, you can allow additional horizontal space for decoration, by either setting the LAYLWD (line width) preference to 1, or increasing the relevant margin preference for the object that is being decorated.

•	Additional vertical space for decoration can be obtained by increasing the relevant header or footer separator preferences for the object being decorated.

If LAYFRA is set to Yes, Form Generator creates decoration as frames. If LAYFRA is set to No, Form Generator creates decoration as graphic objects.


 Radio group decoration (RADDEC)

Related Topics

Default:	RECTANGLE
Values:	(see below)
Levels:	Container, Domain, Table, Column, Module, Module Component, Module Sub-component, Item
Category:	Layout - Radio Group

Use this preference to specify the decoration drawn around radio groups.

The options are:

LINES (L)	Lines are drawn at the top and bottom of the radio group.
RECTANGLE (R)	A rectangle is drawn around the radio group.
RAISED RECTANGLE (RR)	A rectangle is drawn around the radio group with raised bevel.
LOWERED RECTANGLE (LR)	A rectangle is drawn around the radio group with lowered bevel.
INSET RECTANGLE (IR)	A rectangle is drawn around the radio group with inset bevel.
OUTSET RECTANGLE (OR)	A rectangle is drawn around the radio group with outset bevel.
INSET LINES (IL)	Lines are drawn at the top and bottom of the radio group with inset bevel.
OUTSET LINES (OL)	Lines are drawn at the top and bottom of the radio group with outset bevel.
LINE TOP (LT)	A line is drawn above the radio group.
INSET LINE TOP (ILT)	A line is drawn above the radio group with an inset bevel.
OUTSET LINE TOP (OLT)	A line is drawn above the radio group with an outset bevel.
NONE (N)	No decoration is drawn around generated radio groups.

If LAYFRA is set to Yes, Form Generator creates decoration as frames. If LAYFRA is set to No, Form Generator creates decoration as graphic objects.

If LAYFRA is set to Yes, the option you select for this preference determines which standard source object from the object library to use to set generated frame properties as follows:

If RADDEC preference set to:	Use this standard source object:
R, RR, LR, IR, OR	CGSO$FRAME_RECT
L, IL, OL	CGSO$HORZ_LINES
LT, ILT, OLT	CGSO$FRAME_LINE_TOP


 Radio group dash style (RADDST)

Related Topics

Default:	SOLID
Values:	(see below)
Levels:	Container, Domain, Table, Column, Module, Module Component, Module Sub-component, Item
Category:	Layout - Radio Group

Use this preference to specify the dash style drawn for rectangles and lines for radio group decoration.

The options are:

SOLID (S)	Solid
DOT (.)	Dot
SHORT DASH (-)	Short Dash
DASH DOT (-.)	Dash Dot
DOUBLE DOT (..)	Double Dot
LONG DASH (--)	Long Dash
DASH DOUBLE DOT (-..)	Dash Double Dot

If LAYFRA is set to Yes, Form Generator creates decoration as frames. If LAYFRA is set to No, Form Generator creates decoration as graphic objects.


 Radio group footer separator (RADFTS)

Related Topics

Default:	1
Values:	Up to 30 characters
Levels:	Container, Domain, Table, Column, Module, Module Component, Module Sub-component, Item
Category:	Layout - Radio Group

Use this preference to specify the vertical space to leave at the bottom of the radio group between the last line of generated items and any decoration.

The default units are character cells (i.e. if you do not specify a unit, Form Generator uses character cells). However, you can specify an alternative unit by appending a space and one of the following abbreviations:

Abbreviation	Unit	Example	Max No of decimal places
in	real inches	0.7 in	three (i.e. 0.001, but not 0.0001)
cm	real centimeters	4.56 cm	three (i.e. 0.001, but not 0.0001)
pixel	real pixels	120 pixel	none
point	real points	30 point	one (i.e. 0.1, but not 0.01)

During generation, Form Generator converts the value you specify into the equivalent units in the generated form. For more information about real units, refer to Notes on coordinate systems and Form Generator.


 Radio group header separator (RADHDS)

Related Topics

Default:	1
Values:	Up to 30 characters
Levels:	Container, Domain, Table, Column, Module, Module Component, Module Sub-component, Item
Category:	Layout - Radio Group

Use this preference to specify the vertical space to leave at the top of the radio group between any decoration and the first line of generated items.

The default units are character cells (i.e. if you do not specify a unit, Form Generator uses character cells). However, you can specify an alternative unit by appending a space and one of the following abbreviations:

Abbreviation	Unit	Example	Max No of decimal places
in	real inches	0.7 in	three (i.e. 0.001, but not 0.0001)
cm	real centimeters	4.56 cm	three (i.e. 0.001, but not 0.0001)
pixel	real pixels	120 pixel	none
point	real points	30 point	one (i.e. 0.1, but not 0.01)

During generation, Form Generator converts the value you specify into the equivalent units in the generated form. For more information about real units, refer to Notes on coordinate systems and Form Generator.


 Radio group horizontal inter-item spacing (RADHIS)

Related Topics

Default:	2
Values:	Up to 30 characters
Levels:	Container, Domain, Table, Column, Module, Module Component, Module Sub-component, Item
Category:	Layout - Radio Group

Use this preference to specify the space between buttons in a horizontally oriented radio group.

The default units are character cells (i.e. if you do not specify a unit, Form Generator uses character cells). However, you can specify an alternative unit by appending a space and one of the following abbreviations:

Abbreviation	Unit	Example	Max No of decimal places
in	real inches	0.7 in	three (i.e. 0.001, but not 0.0001)
cm	real centimeters	4.56 cm	three (i.e. 0.001, but not 0.0001)
pixel	real pixels	120 pixel	none
point	real points	30 point	one (i.e. 0.1, but not 0.01)

During generation, Form Generator converts the value you specify into the equivalent units in the generated form. For more information about real units, refer to Notes on coordinate systems and Form Generator.


 Radio group margin (RADMAR)

Related Topics

Default:	1
Values:	Up to 30 characters
Levels:	Container, Domain, Table, Column, Module, Module Component, Module Sub-component, Item
Category:	Layout - Radio Group

Use this preference to specify both the left and right radio group margins.

The default units are character cells (i.e. if you do not specify a unit, Form Generator uses character cells). However, you can specify an alternative unit by appending a space and one of the following abbreviations:

Abbreviation	Unit	Example	Max No of decimal places
in	real inches	0.7 in	three (i.e. 0.001, but not 0.0001)
cm	real centimeters	4.56 cm	three (i.e. 0.001, but not 0.0001)
pixel	real pixels	120 pixel	none
point	real points	30 point	one (i.e. 0.1, but not 0.01)

During generation, Form Generator converts the value you specify into the equivalent units in the generated form. For more information about real units, refer to Notes on coordinate systems and Form Generator.


 Radio group multi-line format (RADMLF)

Related Topics

Default:	WRAP
Values:	1, 2, 3, 4, 5, 6, 7, 8, 9, 10, WRAP
Levels:	Container, Domain, Table, Column, Module, Module Component, Module Sub-component, Item
Category:	Layout - Radio Group

Use this preference to specify how many radio buttons are positioned on each line in a radio group.

The options are:

1 to 10	No more than the number of radio buttons specified by this preference are placed on any one line.
WRAP (W)	No restriction is placed on the number of radio buttons that can be placed on a line.
If this preference is set to 1, this has the same effect as specifying a vertical layout for the radio button group.

If this preference is set to 2, the buttons are laid out in a rectangular array.


 Radio group title justification (RADTLJ)

Related Topics

Default:	LEFT
Values:	CENTER, LEFT, RIGHT
Levels:	Container, Domain, Table, Column, Module, Module Component, Module Sub-component, Item
Category:	Layout - Radio Group

Use this preference to specify the alignment of the radio group title within the available width (the width of the radio group minus left and right radio group title margins).

The options are:

LEFT (L)	The title is left-aligned.
RIGHT (R)	The title is right-aligned.
CENTER (C)	The title is centered.

Note the following:

•	If the radio group title does not fit within the available width, the radio group is not given a title.

•	If LAYFRA is set to Yes and RADTLP is set to On Decoration, Form Generator creates decoration as a frame and uses this preference to set the frame's Frame Title Alignment property. If LAYFRA is set to No (or if LAYFRA is set to Yes and RADTLP is not set to On Decoration), Form Generator creates the title as graphic text and uses this preference to specify the position of the graphic text.


 Radio group title margin (RADTLM)

Related Topics

Default:	2
Values:	Up to 30 characters
Levels:	Container, Domain, Table, Column, Module, Module Component, Module Sub-component, Item
Category:	Layout - Radio Group

Use this preference to specify both left and right radio group title margins.

The default units are character cells (i.e. if you do not specify a unit, Form Generator uses character cells). However, you can specify an alternative unit by appending a space and one of the following abbreviations:

Abbreviation	Unit	Example	Max No of decimal places
in	real inches	0.7 in	three (i.e. 0.001, but not 0.0001)
cm	real centimeters	4.56 cm	three (i.e. 0.001, but not 0.0001)
pixel	real pixels	120 pixel	none
point	real points	30 point	one (i.e. 0.1, but not 0.01)

During generation, Form Generator converts the value you specify into the equivalent units in the generated form. For more information about real units, refer to Notes on coordinate systems and Form Generator.


 Radio group title position (RADTLP)

Related Topics

Default:	INSIDE
Values:	INSIDE, OUTSIDE, ON DECORATION, NONE
Levels:	Container, Domain, Table, Column, Module, Module Component, Module Sub-component, Item
Category:	Layout - Radio Group

Use this preference to specify the position of radio group titles.

The options are:

INSIDE	The title is positioned inside any decoration drawn around the radio group. As part of the decoration, the title is repeated for each row of a multi-record block.
OUTSIDE	The title is positioned outside any decoration drawn around the radio group. In this case, the title is treated in the same way as an item prompt. In a multi-record block in which each row takes up only one line (i.e. does not wrap), the title appears in the first row only.
ON DECORATION	The title is placed on the decoration drawn around the radio group.  Notes: Set the title font fill pattern to a different color to the decoration (e.g. the canvas color would be a sensible choice). A title is not placed on a raised or lowered bevel decoration; if a radio group is surrounded by a raised or lowered bevel, Form Generator uses the INSIDE option.
NONE	The radio group is not given a title.

Use the RADTLS preference to specify the space either side of the title. Use the RADTLM and RADTLJ preferences to adjust the position of the title within the line.

If LAYFRA is set to Yes and this preference is set to On Decoration, Form Generator creates decoration as a frame and uses RADTLJ to set the frame's Frame Title Alignment property. If LAYFRA is set to No (or if LAYFRA is set to Yes and this preference is not set to On Decoration), Form Generator creates the title as graphic text and uses RADTLJ to specify the position of the graphic text.


 Radio group title spacing (RADTLS)

Related Topics

Default:	2
Values:	0 to 99
Levels:	Container, Domain, Table, Column, Module, Module Component, Module Sub-component, Item
Category:	Layout - Radio Group

Use this preference to specify the horizontal space left on either side of the radio group title.

This preference has little impact if the target environment is bitmapped because the title is displayed inside any decoration drawn around the radio

group and the spacing on either side is not noticed:

 --------------------------------
 |     Radio Group Title        |

However, if the target environment is character mode, the title is embedded within any decoration drawn around the radio group and  the spacing on either side of it is more apparent:

 ----- Radio Group Title --------------------------

|                               |


 Radio group vertical inter-item spacing (RADVIS)

Related Topics

Default:	0
Values:	Up to 30 characters
Levels:	Container, Domain, Table, Column, Module, Module Component, Module Sub-component, Item
Category:	Layout - Radio Group

Use this preference to specify the space between buttons in a vertically oriented radio group.

The default units are character cells (i.e. if you do not specify a unit, Form Generator uses character cells). However, you can specify an alternative unit by appending a space and one of the following abbreviations:

Abbreviation	Unit	Example	Max No of decimal places
in	real inches	0.7 in	three (i.e. 0.001, but not 0.0001)
cm	real centimeters	4.56 cm	three (i.e. 0.001, but not 0.0001)
pixel	real pixels	120 pixel	none
point	real points	30 point	one (i.e. 0.1, but not 0.01)

During generation, Form Generator converts the value you specify into the equivalent units in the generated form. For more information about real units, refer to Notes on coordinate systems and Form Generator.


 Layout preferences - single area

Related Topics

These preferences govern the creation of single areas for the display of large two-dimensional items (such as images, radio groups, item groups, text lists, and multi-line text items).

Name	Description	Levels at which preferences can be set
		Cont	Dom	Tab	Con	Col	Mod	MC	Sub	LOV	CnU	ItG	Itm	Act
SARCHT	Single area cutoff height	X		X		X	X	X	X				X
SARENB	Enable creation of single areas for multi-row blocks	X		X			X	X	X
SARLIM	Limit rows within highest single area	X		X			X	X	X


 Single area cutoff height (SARCHT)

Related Topics

Default:	2
Values:	0 to 999
Levels:	Container, Table, Column, Module, Module Component, Module Sub-component, Item
Category:	Layout - Single Area

Use this preference to specify the items that can be included in single areas.

The value of this preference represents the height of an item. The height of an item must be equal to or greater than the height specified by this preference before it can be placed in a single area.

If this preference is set to 0, no single areas are created.

Note:	This preference can be overridden by an item or block level preference.

For an item to be placed in a single area, one of the other items displayed must be no more than half the height of the single area item.

For more information about using this preference, refer to Single area in multi-row block generation.

Related preferences

SARENB


 Enable creation of single areas for multi-row blocks (SARENB)

Related Topics

Default:	Yes
Values:	Yes, No
Levels:	Container, Table, Module, Module Component, Module Sub-component
Category:	Layout - Single Area

Use this preference to specify whether Form Generator creates single areas for large two-dimensional items (such as images, radio groups, item groups, text lists, and multi-line text items) in multi-row blocks (or multi-row layout regions in multi-region blocks).

If this preference is set to No, the single areas are never built.

If this preference is set to Yes and each row can be displayed on a single line (i.e. the row does not wrap), Form Generator considers certain objects as candidates for single areas.

Given that the highest candidate single area object is higher than the highest non-single area object, Form Generator will create a single area for each candidate single area object. Each single area contains one instance of an item, regardless of the number of rows displayed. As the current record changes, the content of items in single areas is changed accordingly.

For example:

Form Generator generates code to ensure that as the current record in the block is changed, the corresponding single area object is shown. In the example above, the employee picture would change as the current employee record is changed.

Form Generator always ensures that at least one object in the block (or layout region in a multi-region block) is not a single area. This is to enable canvas management code to work correctly.

Objects are processed from left to right. If an object is a candidate for a single area, but making a single area would mean that no objects are left on the content canvas, then a single area is not built for that object.

For more information about using this preference, refer to Single area in multi-row block generation.


 Limit rows within highest single area (SARLIM)

Related Topics

Default:	Yes
Values:	Yes, No
Levels:	Container, Table, Module, Module Component, Module Sub-component
Category:	Layout - Single Area

Use this preference to specify whether Form Generator limits the number of rows in blocks (or layout regions in multi-region blocks) containing at least one single area.

If this preference is set to Yes, the number of rows displayed is restricted within the height of the highest single area object.

If this preference is set to No, no special restriction is placed on the number of rows displayed.

For more information about using this preference, refer to Single area in multi-row block generation.


 Layout preferences - spreadtable

Related Topics

These preferences govern the details of spreadtable canvases created when Overflow Style is set to Spreadtable and the content canvas is not wide enough to display a row on a single line.

Name	Description	Levels at which preferences can be set
		Cont	Dom	Tab	Con	Col	Mod	MC	Sub	LOV	CnU	ItG	Itm	Act
SPRBEV	Spreadtable bevel	X		X			X	X	X
SPRHSB	Spreadtable horizontal scrollbar	X		X			X	X	X
SPRSBH	Spreadtable horizontal scrollbar height	X					X


 Spreadtable bevel (SPRBEV)

Related Topics

Default:	LOWERED
Values:	LOWERED, NONE, RAISED
Levels:	Container, Table, Module, Module Component, Module Sub-component
Category:	Layout - Spread Tab

Use this preference to specify the beveling effect of spreadtable canvases.

The options are:

RAISED (R)	The shaded bevel gives the canvas the appearance of being raised above the level of canvases that it overlays.
LOWERED (L)	The shaded bevel gives the canvas the appearance of being lowered below the level of canvases that it overlays.
NONE (N)	The canvas is not displayed with a bevel. This effect can be confusing to users, because they will not be able to see the edges of the canvas.


 Spreadtable horizontal scrollbar (SPRHSB)

Related Topics

Default:	Yes
Values:	Yes, No
Levels:	Container, Table, Module, Module Component, Module Sub-component
Category:	Layout - Spread Tab

Use this preference to specify whether a horizontal scrollbar is displayed for a spreadtable.

If this preference is set to Yes, a horizontal scrollbar is displayed, allowing the user to scroll the spreadtable in a horizontal direction within the spreadtable view.

A vertical scrollbar option is not appropriate for a spreadtable. Instead, to create vertical block scrollbars, you can set the BLKVSB preference to Yes.

Related preferences

BLKVSB


 Spreadtable horizontal scrollbar height (SPRSBH)

Related Topics

Default:	1
Values:	Up to 30 characters
Levels:	Container, Module
Category:	Layout - Spread Tab

If horizontal scrollbars are displayed for spreadtables, use this preference to specify the amount of vertical space to allow for the scrollbar.

To create a scrollbar for spreadtables, set the SPRHSB preference to Yes.

Note that this preference does not control the actual height of the scrollbar itself. The scrollbar takes up vertical space within the spreadtable view, and so the height of the view is increased by this amount so that the scrollbar does not obscure items in the last row of the block displayed on the spreadtable.

The default units are character cells (i.e. if you do not specify a unit, Form Generator uses character cells). However, you can specify an alternative unit by appending a space and one of the following abbreviations:

Abbreviation	Unit	Example	Max No of decimal places
in	real inches	0.7 in	three (i.e. 0.001, but not 0.0001)
cm	real centimeters	4.56 cm	three (i.e. 0.001, but not 0.0001)
pixel	real pixels	120 pixel	none
point	real points	30 point	one (i.e. 0.1, but not 0.01)

During generation, Form Generator converts the value you specify into the equivalent units in the generated form. For more information about real units, refer to Notes on coordinate systems and Form Generator.


 Layout preferences - stacked canvas

Related Topics

These preferences control the details and appearance of generated stacked canvases (sometimes called popups).

Name	Description	Levels at which preferences can be set
		Cont	Dom	Tab	Con	Col	Mod	MC	Sub	LOV	CnU	ItG	Itm	Act
POPBEV	Stacked canvas bevel	X					X	X	X
POPBIN	Stacked canvas relative block indentation	X					X	X	X
POPCHT	Stacked canvas height	X					X	X	X
POPCON	Stacked canvas context depth	X		X			X	X	X
POPCWD	Stacked canvas width	X					X	X	X
POPFTS	Stacked canvas footer separator	X					X	X	X
POPHDS	Stacked canvas header separator	X					X	X	X
POPHSB	Stacked canvas horizontal scrollbar	X					X	X	X
POPIBS	Stacked canvas inter-block separator	X		X			X	X	X
POPMAR	Stacked canvas margin	X					X	X	X
POPSTB	Generate block stubs on stacked canvases	X					X	X	X
POPTFB	Title first block on stacked canvas	X					X	X	X
POPVHT	Stacked canvas view height	X					X	X	X
POPVSB	Stacked canvas vertical scrollbar	X					X	X	X
POPVWD	Stacked canvas view width	X					X	X	X
POPVXP	Stacked canvas view X position	X					X	X	X
POPVYP	Stacked canvas view Y position	X					X	X	X
How to use these preferences to control:

Stacked canvas appearance

Stacked canvas arrangement

Stacked canvas spacing

Stacked canvas views


 Using preferences to control stacked canvas appearance

Related Topics

The following preferences (in the Layout Preferences - Stacked Canvas category) determine the appearance of the stacked canvas.

Preference	Meaning
POPBEV	Stacked canvas bevel
POPCHT	Stacked canvas height
POPCWD	Stacked canvas width
POPHSB	Stacked canvas horizontal scrollbar
POPVSB	Stacked canvas vertical scrollbar
POPTFB	Title first block on stacked canvas


 Using preferences to control stacked canvas arrangement

Related Topics

The following preferences (in the Layout Preferences - Stacked Canvas category) determine the layout of the stacked canvas on the form.

Preference	Meaning
POPBIN	Stacked canvas relative block indentation
POPCON	Stacked canvas context depth
POPSTB	Generate block stubs on stacked canvases


 Using preferences to control stacked canvas spacing

Related Topics

The following preferences (in the Layout Preferences - Stacked Canvas category) determine the amount of white space surrounding the stacked canvas.

Preference	Meaning
POPFTS	Stacked canvas footer separator
POPHDS	Stacked canvas header separator
POPIBS	Stacked canvas inter-block separator
POPMAR	Stacked canvas margin


 Using preferences to control stacked canvas views

Related Topics

The following preferences (in the Layout Preferences - Stacked Canvas category) determine the size and position of the view of the stacked canvas.

Preference	Meaning
POPVHT	Stacked canvas view height
POPVWD	Stacked canvas view width
POPVXP	Stacked canvas view X position
POPVYP	Stacked canvas view Y position


 Stacked canvas bevel (POPBEV)

Related Topics

Default:	RAISED
Values:	LOWERED, NONE, RAISED
Levels:	Container, Module, Module Component, Module Sub-component
Category:	Layout - Stacked canvas

Use this preference to specify the beveling effect for stacked canvases.

The options are:

RAISED  (R) - The shaded bevel gives the canvas the appearance of being raised above the level of canvases that it overlays.

LOWERED (L) - The shaded bevel gives the canvas the appearance of being lowered below the level of canvases that it overlays.

NONE (N) - The canvas does not have a bevel. This effect can be confusing to users because they cannot see the edges of the canvas.


 Stacked canvas relative block indentation (POPBIN)

Related Topics

Default:	0
Values:	Up to 30 characters
Levels:	Container, Module, Module Component, Module Sub-component
Category:	Layout - Stacked canvas

Use this preference to specify the relative indentation of blocks (or layout regions in multi-region blocks) on stacked canvases. Blocks are always centered within the available width.

The default units are character cells (i.e. if you do not specify a unit, Form Generator uses character cells). However, you can specify an alternative unit by appending a space and one of the following abbreviations:

Abbreviation	Unit	Example	Max No of decimal places
in	real inches	0.7 in	three (i.e. 0.001, but not 0.0001)
cm	real centimeters	4.56 cm	three (i.e. 0.001, but not 0.0001)
pixel	real pixels	120 pixel	none
point	real points	30 point	one (i.e. 0.1, but not 0.01)

During generation, Form Generator converts the value you specify into the equivalent units in the generated form. For more information about real units, refer to Notes on coordinate systems and Form Generator.

If this preference is set to 0, all blocks on a stacked canvas are the same size (i.e. each block is as wide as the available width and there is no block indentation).

If this preference has a negative value, the first block on a stacked canvas is as wide as the available width. Each successive block on the same canvas is indented by twice the value of this preference (i.e. 2 * POPBIN).

If this preference has a positive value, the last block on a stacked canvas is as wide as the available width, and each previous block on the same canvas is indented by twice the value of this preference (i.e. 2 * POPBIN).

If block stubs are not generated on stacked canvases, a positive value has the same effect as a value of 0.

For more information about using this preference, refer to Relative block indentation.


 Stacked canvas height (POPCHT)

Related Topics

Default:	11
Values:	1 to 9999
Levels:	Container, Module, Module Component, Module Sub-component
Category:	Layout - Stacked canvas

Use this preference to specify the default canvas height of stacked canvases.

This value is only used if a stacked canvas in a template does not form the basis of the generated canvas, and if the Height property is not set for the module component associated with the stacked canvas.


 Stacked canvas context depth (POPCON)

Related Topics

Default:	0
Values:	0 to 99
Levels:	Container, Table, Module, Module Component, Module Sub-component
Category:	Layout - Stacked canvas

Use this preference to control the number of linked previous master blocks from which Form Generator displays context for detail blocks on stacked canvases.

If master and detail blocks are on different canvases, Form Generator can display context information in the detail block's header to identify the current master row. Information from the master's master block can also be displayed, and so on.

Example

If block COMPANY is on CG$PAGE_1, block DEPT is on CG$POPUP_1 and block EMP is on CG$POPUP_2, then Form Generator displays context information for EMP to the level specified by this preference.

•	If this preference is set to 0, no context information is displayed for EMP.

•	If this preference is set to 1, context information from DEPT is displayed for EMP.

•	If this preference is set to 2, context information from both COMPANY and DEPT is displayed.

For more information about using this preference, refer to Block context area and block context item generation.


 Stacked canvas width (POPCWD)

Related Topics

Default:	40
Values:	1 to 9999
Levels:	Container, Module, Module Component, Module Sub-component
Category:	Layout - Stacked canvas

Use this preference to specify the default canvas width of a stacked canvas (and therefore to control the default width of the blocks placed on that canvas).

Form Generator only uses this value if:

•	a stacked canvas in a template does not form the basis of the generated canvas

•	the Width property is not set for the module component associated with the stacked canvas.

If you want to place blocks side-by-side on the same canvas, this preference continues to control the default width of the blocks. However, Form Generator increases the width of the stacked canvas as necessary to place the blocks beside each other.

If you are using relative tab stops, this preference specifies the minimum width of a canvas (and therefore controls the minimum width of blocks placed on that canvas). Form Generator increases the width of the block as necessary to display items and item groups on the specified relative tab stops, and increases the width of the stacked canvas sufficiently to display the block.

For more information, refer to How Form Generator determines the position and dimensions of a generated stacked canvas.


 Stacked canvas footer separator (POPFTS)

Related Topics

Default:	0
Values:	Up to 30 characters
Levels:	Container, Module, Module Component, Module Sub-component
Category:	Layout - Stacked canvas

Use this preference to specify the vertical space to leave at the bottom of a stacked canvas after the last generated block.

The default units are character cells (i.e. if you do not specify a unit, Form Generator uses character cells). However, you can specify an alternative unit by appending a space and one of the following abbreviations:

Abbreviation	Unit	Example	Max No of decimal places
in	real inches	0.7 in	three (i.e. 0.001, but not 0.0001)
cm	real centimeters	4.56 cm	three (i.e. 0.001, but not 0.0001)
pixel	real pixels	120 pixel	none
point	real points	30 point	one (i.e. 0.1, but not 0.01)

During generation, Form Generator converts the value you specify into the equivalent units in the generated form. For more information about real units, refer to Notes on coordinate systems and Form Generator.


 Stacked canvas header separator (POPHDS)

Related Topics

Default:	0
Values:	Up to 30 characters
Levels:	Container, Module, Module Component, Module Sub-component
Category:	Layout - Stacked canvas

Use this preference to specify the vertical space to leave at the top of a stacked canvas before the first generated block.

The default units are character cells (i.e. if you do not specify a unit, Form Generator uses character cells). However, you can specify an alternative unit by appending a space and one of the following abbreviations:

Abbreviation	Unit	Example	Max No of decimal places
in	real inches	0.7 in	three (i.e. 0.001, but not 0.0001)
cm	real centimeters	4.56 cm	three (i.e. 0.001, but not 0.0001)
pixel	real pixels	120 pixel	none
point	real points	30 point	one (i.e. 0.1, but not 0.01)

During generation, Form Generator converts the value you specify into the equivalent units in the generated form. For more information about real units, refer to Notes on coordinate systems and Form Generator.


 Stacked canvas horizontal scrollbar (POPHSB)

Related Topics

Default:	Yes
Values:	Yes, No
Levels:	Container, Module, Module Component, Module Sub-component
Category:	Layout - Stacked canvas

Use this preference to specify whether a stacked canvas has a horizontal scrollbar.

If this preference is set to Yes, the canvas viewport is given a horizontal scrollbar, allowing the user to scroll the canvas in a horizontal direction within the viewport.

This scrollbar takes up vertical space within the height of the canvas viewport.


 Stacked canvas inter-block separator (POPIBS)

Related Topics

Default:	0
Values:	Up to 30 characters
Levels:	Container, Table, Module, Module Component, Module Sub-component
Category:	Layout - Stacked canvas

Use this preference to specify the amount of vertical space between blocks (and layout regions in multi-region blocks) on stacked canvases.

The default units are character cells (i.e. if you do not specify a unit, Form Generator uses character cells). However, you can specify an alternative unit by appending a space and one of the following abbreviations:

Abbreviation	Unit	Example	Max No of decimal places
in	real inches	0.7 in	three (i.e. 0.001, but not 0.0001)
cm	real centimeters	4.56 cm	three (i.e. 0.001, but not 0.0001)
pixel	real pixels	120 pixel	none
point	real points	30 point	one (i.e. 0.1, but not 0.01)

During generation, Form Generator converts the value you specify into the equivalent units in the generated form. For more information about real units, refer to Notes on coordinate systems and Form Generator.


 Stacked canvas margin (POPMAR)

Related Topics

Default:	1
Values:	Up to 30 characters
Levels:	Container, Module, Module Component, Module Sub-component
Category:	Layout - Stacked canvas

Use this preference to specify the size of both left and right margins on a generated stacked canvas. Objects are laid out on the canvas between these margins.

If blocks are placed side-by-side on the same stacked canvas, the value of this preference also specifies the distance between the blocks.

The default units are character cells (i.e. if you do not specify a unit, Form Generator uses character cells). However, you can specify an alternative unit by appending a space and one of the following abbreviations:

Abbreviation	Unit	Example	Max No of decimal places
in	real inches	0.7 in	three (i.e. 0.001, but not 0.0001)
cm	real centimeters	4.56 cm	three (i.e. 0.001, but not 0.0001)
pixel	real pixels	120 pixel	none
point	real points	30 point	one (i.e. 0.1, but not 0.01)

During generation, Form Generator converts the value you specify into the equivalent units in the generated form. For more information about real units, refer to Notes on coordinate systems and Form Generator.


 Generate block stubs on stacked canvases (POPSTB)

Related Topics

Default:	No
Values:	Yes, No
Levels:	Container, Module, Module Component, Module Sub-component
Category:	Layout - Stacked canvas

Use this preference to specify whether block stubs are generated on stacked canvases.

If this preference is set to Yes, a block stub representing every previous block in the form is displayed in the header of the first block on a stacked canvas and a block stub representing every following block in the form is displayed in the footer of the last block on the canvas.

Block stubs can also be used to display context information.

If this preference is set to No, block stubs are not be generated on stacked canvases.

For more information about using this preference, refer to Block stub generation.


 Title first block on stacked canvas (POPTFB)

Related Topics

Default:	Yes
Values:	Yes, No
Levels:	Container, Module, Module Component, Module Sub-component
Category:	Layout - Stacked canvas

Use this preference to specify whether the first block (or layout region, for multi-region blocks) on a stacked canvas is given a title.

If this preference is set to Yes, the first block or layout region on a stacked canvas is given a title.

If this preference is set to No, the first block or layout region on a stacked canvas is not given a title. Subsequent blocks or layout regions on the canvas are given a title as normal.

Form Generator ignores this preference if BLKTLP is set to No.


 Stacked canvas view height (POPVHT)

Related Topics

Default:	11
Values:	1 to 9999
Levels:	Container, Module, Module Component, Module Sub-component
Category:	Layout - Stacked canvas

Use this preference to specify the default height of the view on a stacked canvas.

This value is only used if a stacked canvas in an object library (or template) does not form the basis of the generated stacked canvas, and if no View Height has been set for the module component associated with the stacked canvas.


 Stacked canvas vertical scrollbar (POPVSB)

Related Topics

Default:	Yes
Values:	Yes, No
Levels:	Container, Module, Module Component, Module Sub-component
Category:	Layout - Stacked canvas

Use this preference to specify whether a stacked canvas has a vertical scrollbar.

If this preference is set to Yes, the canvas viewport is given a vertical scrollbar, allowing the user to scroll the canvas in a vertical direction within the viewport.

This scrollbar takes up horizontal space within the width of the stacked canvas viewport.


 Stacked canvas view width (POPVWD)

Related Topics

Default:	40
Values:	1 to 9999
Levels:	Container, Module, Module Component, Module Sub-component
Category:	Layout - Stacked canvas

Use this preference to specify the default width of the view on a stacked canvas.

This value is only used if a stacked canvas in an object library (or template) does not form the basis of the generated stacked canvas, and if no View Width has been set for the module component associated with the stacked canvas.


 Stacked canvas view X position (POPVXP)

Related Topics

Default:	0
Values:	0 to 9999
Levels:	Container, Module, Module Component, Module Sub-component
Category:	Layout - Stacked canvas

Use this preference to specify the X coordinate of the top left hand corner of a stacked canvas viewport relative to the upper left corner of the window's current content canvas.

This value is only used if a stacked canvas in an object library (or template) does not form the basis of the generated stacked canvas, and if the X Position property of the module component associated with the stacked canvas has not been set.


 Stacked canvas view Y position (POPVYP)

Related Topics

Default:	0
Values:	0 to 9999
Levels:	Container, Module, Module Component, Module Sub-component
Category:	Layout - Stacked canvas

Use this preference to specify the Y coordinate of the top left hand corner of a stacked canvas viewport relative to the upper left corner of the window's current content canvas.

This value is only used if a stacked canvas in an object library (or template) does not form the basis of the generated stacked canvas, and if the Y Position property of the module component associated with the stacked canvas has not been set.


 Layout preferences - stub

Related Topics

These preferences govern the creation and details of block stubs.

Name	Description	Levels at which preferences can be set
		Cont	Dom	Tab	Con	Col	Mod	MC	Sub	LOV	CnU	ItG	Itm	Act
STBBWD	Stub brush width	X		X			X	X	X
STBDEC	Stub decoration	X		X			X	X	X
STBDST	Stub dash style	X		X			X	X	X
STBFTS	Stub footer separator	X		X			X	X	X
STBHDS	Stub header separator	X		X			X	X	X
STBTLJ	Stub title justification	X		X			X	X	X
STBTLM	Stub title margin	X		X			X	X	X
STBTLS	Stub title spacing	X		X			X	X	X
How to use these preferences to control:

Block stub appearance

Block stub titles

Block stub spacing


 Using preferences to control block stub appearance

Related Topics

The following preferences (in the Layout Preferences - Stub category) determine the appearance of the lines around the block stub.

Preference	Meaning
STBBWD	Stub brush width
STBDEC	Stub decoration
STBDST	Stub dash style


 Using preferences to control block stub titles

Related Topics

The following preferences (in the Layout Preferences - Stub category) determine how the title of the block stub looks.

Preference	Meaning
STBTLJ	Stub title justification
STBTLM	Stub title margin
STBTLS	Stub title spacing


 Using preferences to control block stub spacing

Related Topics

The following preferences (in the Layout Preferences - Stub category) determine the amount of white space surrounding the block stub.

Preference	Meaning
STBFTS	Stub footer separator
STBHDS	Stub header separator


 Stub brush width (STBBWD)

Related Topics

Default:	0
Values:	0, 1, 2, 4, 8, 16
Levels:	Container, Table, Module, Module Component, Module Sub-component
Category:	Layout - Stub

Use this preference to specify the brush width for drawing rectangles and lines for stub decoration.

The value for this preference is specified in point size. A value of 0 indicates the thinnest line available on your platform.

Note:	A point is 1/72nd of an inch.

Form Generator assumes that lines do not take up any horizontal or vertical space.

If you use large brush widths, the lines drawn may encroach on other generated objects. In this case, you can allow additional horizontal space for decoration, by either setting the LAYLWD (line width) preference to 1, or increasing the relevant margin preference for the object that is being decorated.

Additional vertical space for decoration can be obtained by increasing the relevant header or footer separator preferences for the object being decorated.

Related preferences

LAYLWD


 Stub decoration (STBDEC)

Related Topics

Default:	RECTANGLE
Values:	(see below)
Levels:	Container, Table, Module, Module Component, Module Sub-component
Category:	Layout - Stub

Use this preference to specify the decoration drawn around stubs.

The options are:

LINES (L)	Lines are drawn at the top and bottom of the stub.
RECTANGLE (R)	A rectangle is drawn around the stub.
RAISED RECTANGLE (RR)	A rectangle is drawn around the stub with raised bevel.
LOWERED RECTANGLE (LR)	A rectangle is drawn around the stub with lowered bevel.
INSET RECTANGLE (IR)	A rectangle is drawn around the stub with inset bevel.
OUTSET RECTANGLE (OR)	A rectangle is drawn around the stub with outset bevel.
INSET LINES (IL)	Lines are drawn at the top and bottom of the stub with inset bevel.
OUTSET LINES (OL)	Lines are drawn at the top and bottom of the stub with outset bevel.
LINE TOP (LT)	A line is drawn above the stub.
INSET LINE TOP (ILT)	A line is drawn above the stub with an inset bevel.
OUTSET LINE TOP (OLT)	A line is drawn above the stub with an outset bevel.
NONE (N)	No decoration is drawn around generated stubs.


 Stub dash style (STBDST)

Related Topics

Default:	SOLID
Values:	(see below)
Levels:	Container, Table, Module, Module Component, Module Sub-component
Category:	Layout - Stub

Use this preference to specify the dash style for drawing rectangles and lines for stub decoration.

The options are:

SOLID (S)	Solid
DOT (.)	Dot
SHORT DASH (-)	Short Dash
DASH DOT (-.)	Dash Dot
DOUBLE DOT (..)	Double Dot
LONG DASH (--)	Long Dash
DASH DOUBLE DOT (-..)	Dash Double Dot


 Stub footer separator (STBFTS)

Related Topics

Default:	0
Values:	Up to 30 characters
Levels:	Container, Table, Module, Module Component, Module Sub-component
Category:	Layout - Stub

Use this preference to specify the vertical space to leave at the bottom of the stub.

The default units are character cells (i.e. if you do not specify a unit, Form Generator uses character cells). However, you can specify an alternative unit by appending a space and one of the following abbreviations:

Abbreviation	Unit	Example	Max No of decimal places
in	real inches	0.7 in	three (i.e. 0.001, but not 0.0001)
cm	real centimeters	4.56 cm	three (i.e. 0.001, but not 0.0001)
pixel	real pixels	120 pixel	none
point	real points	30 point	one (i.e. 0.1, but not 0.01)

During generation, Form Generator converts the value you specify into the equivalent units in the generated form. For more information about real units, refer to Notes on coordinate systems and Form Generator.


 Stub header separator (STBHDS)

Related Topics

Default:	0
Values:	Up to 30 characters
Levels:	Container, Table, Module, Module Component, Module Sub-component
Category:	Layout - Stub

Use this preference to specify the vertical space to leave at the top of the stub.

The default units are character cells (i.e. if you do not specify a unit, Form Generator uses character cells). However, you can specify an alternative unit by appending a space and one of the following abbreviations:

Abbreviation	Unit	Example	Max No of decimal places
in	real inches	0.7 in	three (i.e. 0.001, but not 0.0001)
cm	real centimeters	4.56 cm	three (i.e. 0.001, but not 0.0001)
pixel	real pixels	120 pixel	none
point	real points	30 point	one (i.e. 0.1, but not 0.01)

During generation, Form Generator converts the value you specify into the equivalent units in the generated form. For more information about real units, refer to Notes on coordinate systems and Form Generator.


 Stub title justification (STBTLJ)

Related Topics

Default:	LEFT
Values:	CENTER, LEFT, RIGHT
Levels:	Container, Table, Module, Module Component, Module Sub-component
Category:	Layout - Stub

Use this preference to specify the alignment of the stub title within the available width (the width of the stub itself minus left and right stub title margins).

The options are:

LEFT (L)	The title is left-aligned.
RIGHT (R)	The title is right-aligned.
CENTER (C)	The title is centered.
Note:	If the stub title does not fit within the available space, the context is not given a title.


 Stub title margin (STBTLM)

Related Topics

Default:	2
Values:	Up to 30 characters
Levels:	Container, Table, Module, Module Component, Module Sub-component
Category:	Layout - Stub

Use this preference to specify both the left and right stub title margins.

The default units are character cells (i.e. if you do not specify a unit, Form Generator uses character cells). However, you can specify an alternative unit by appending a space and one of the following abbreviations:

Abbreviation	Unit	Example	Max No of decimal places
in	real inches	0.7 in	three (i.e. 0.001, but not 0.0001)
cm	real centimeters	4.56 cm	three (i.e. 0.001, but not 0.0001)
pixel	real pixels	120 pixel	none
point	real points	30 point	one (i.e. 0.1, but not 0.01)

During generation, Form Generator converts the value you specify into the equivalent units in the generated form. For more information about real units, refer to Notes on coordinate systems and Form Generator.


 Stub title spacing (STBTLS)

Related Topics

Default:	2
Values:	0 to 99
Levels:	Container, Table, Module, Module Component, Module Sub-component
Category:	Layout - Stub

Use this preference to specify the horizontal space on either side of the stub title.

This preference has little impact when the target environment is bitmapped as the title is displayed inside any decoration drawn around the stub and the spacing on either side is unnoticed:

 ----------------------------------------

|      Stub Title                        |

However, when the target environment is character mode, the title is embedded within any decoration drawn around the stub and the spacing on either side of it is more apparent:

 ------  Stub Title  ----------------------------------

|                                        |


 Layout preferences - text item

Related Topics

These preferences govern the details of generated text items.

Name	Description	Levels at which preferences can be set
		Cont	Dom	Tab	Con	Col	Mod	MC	Sub	LOV	CnU	ItG	Itm	Act
TXTBEV	Text item bevel (obsolete)	X		X		X	X	X	X				X
TXTDCL	Text item default character length	X					X
TXTDDF	Text item default date format	X					X
TXTDDL	Text item default date length	X					X
TXTDHL	Text item default time (HH:MM:SS) length	X					X
TXTDHT	Text item default height	X					X
TXTDLL	Text item default LONG/LOB length	X					X
TXTDMF	Text item default MONEY format	X					X
TXTDNF	Text item default NUMBER format	X					X
TXTDNL	Text item default numeric length	X					X
TXTDTF	Text item default DATETIME format	X					X
TXTDTL	Text item default DATETIME length	X					X
TXTMLI	Multi-line text items	X		X		X	X	X	X				X
TXTSBW	Multi-line text item, vertical scrollbar width	X					X
TXTSCA	Scale factor for data, number and upper case text items	X	X	X		X	X	X	X				X
TXTVSB	Scrollbar for multi--line text items	X		X		X	X	X	X				X
How to use these preferences to control:

Text item appearance

Text item length

Text item format

Multi-line text items


Using preferences to control text item appearance

Related Topics

The following preferences (in the Layout Preferences - Text Item category) determine the appearance of text items.

Preference	Meaning
TXTBEV	Text item bevel (This preference is obsolete in Oracle Designer release 2 onwards. We strongly recommend you use the appropriate source object property in an object library instead. For more information, refer to Using Object Libraries.)
TXTDHT	Text item default height (this preference is only used if the height has not been defined in the repository or for an appropriate object library object)
TXTSCA	Scale factor for date, number and uppercase text items
Example

To remove any bevel from around text items, set TXTBEV to NONE.


 Using preferences to control text item length

Related Topics

The following preferences (in the Layout Preferences - Text Item category) determine the length of text items if the length has not already been defined in the repository or for an appropriate object library object. For more information about how Form Generator determines the Maximum Length property of generated text items, refer to Setting the Maximum Length property of generated items.

Preference	Meaning
TXTDCL	Default character length
TXTDDL	Default date length
TXTDHL	Default time length
TXTDLL	Default LONG/LOB length
TXTDNL	Default numeric length
TXTDTL	Default datetime length


 Using preferences to control text item format

Related Topics

The following preferences (in the Layout Preferences - Text Item category) determine the format mask applied to text items if the format has not already been defined in the repository or for an appropriate object library object. .

Preference	Meaning
TXTDDF	Default date format
TXTDMF	Default money format
TXTDNF	Default number format
TXTDTF	Default datetime format
Example

To set any unformatted date items to have a DD/MM/YY format mask and unformatted money items a 99.99 format:

1.	Set TXTDDF to DD/MM/YY to define the default date format.

2.	Set TXTDMF to 99.99 to define the default money format.

Note:	These values will only be used if the format of an item has not already been defined in the repository.


Using preferences to control multi-line text items

Related Topics

The following preferences (in the Layout Preferences - Text Item category) determine how text items of type character are displayed if they have a height greater than one.

Preference	Meaning
TXTMLI	Multi-line text items
TXTVSB	Scrollbar for multi-line text items
TXTSBW	Text item vertical scrollbar width
Example

To set a text item so that it is not multi-line, set the TXTMLI preference to N.

To set a text item so that it is multi-line and has a vertical scrollbar:

1.	Set TXTMLI to Y to make the item multi-line.

2.	Set TXTVSB to Y to specify the item has a scrollbar.


 Text item bevel (TXTBEV) (obsolete)

Related Topics

Default:	LOWERED
Values:	LOWERED, NONE, RAISED
Levels:	Container, Table, Column, Module, Module Component, Module Sub-component, Item
Category:	Layout - Text Item

We strongly recommend you do not use this obsolete preference. Instead, set properties of an appropriate source object in an object library. Click here to find out more (including how to continue using this preference).

Having read the above, you might decide to disregard the recommendation. In which case, you can use this preference to specify the style of the border surrounding text items.

The options are:

RAISED (R)	The border has the appearance of a raised bevel.
LOWERED (L)	The border has the appearance of a lowered bevel.
NONE (N)	The item has no border.
Related preferences

IMGBEV


 Text item default character length (TXTDCL)

Related Topics

Default:	60
Values:	1 to 255
Levels:	Container, Module
Category:	Layout - Text Item

Use this preference to specify the Width and Maximum Length properties of generated text items when Form Generator cannot determine these values from repository information or object library objects.

For more information about how Form Generator determines the Maximum Length property, refer to Setting the Maximum Length property of generated items.


 Text item default date format (TXTDDF)

Related Topics

Default:	DD-MON-RR
Values:	(no value), up to 60 characters
Levels:	Container, Module
Category:	Layout - Text Item

Use this preference to specify the Format Mask property of generated date items when Form Generator cannot determine this value from repository information or an object library object.

Examples: 	DD-MON-RRRR, DD-MON-YYYY.

We strongly recommend you specify a Year 2000 compliant date format. For more information, refer to Generating Year 2000 compliant applications.

See the "SQL*Plus Reference Guide" for details of valid date formats.


 Text item default date length (TXTDDL)

Related Topics

Default:	11
Values:	1 to 250
Levels:	Container, Module
Category:	Layout - Text Item

Use this preference to specify the Width and Maximum Length properties of generated date items when Form Generator cannot determine these values from repository information or object library objects.

For more information about how Form Generator determines the Maximum Length property, refer to Setting the Maximum Length property of generated items.


 Text item default time (HH:MM:SS) length (TXTDHL)

Related Topics

Default:	5
Values:	2 to 8
Levels:	Container, Module
Category:	Layout - Text Item

Use this preference to specify the Width and Maximum Length properties of generated items  of type Time when Form Generator cannot determine these values from repository information or object library objects.

For more information about how Form Generator determines the Maximum Length property, refer to Setting the Maximum Length property of generated items.


 Text item default height (TXTDHT)

Related Topics

Default:	1
Values:	1 to 9
Levels:	Container, Module
Category:	Layout - Text Item

Use this preference to specify the height for text items when Form Generator cannot determine this value from repository information or an object library object.


 Text item default LONG/LOB length (TXTDLL)

Related Topics

Default:	32000
Values:	1 to 32766
Levels:	Container, Module
Category:	Layout - Text Item

Use this preference to specify the Width and Maximum Length properties of generated items of type LONG or LOB when Form Generator cannot determine these values from repository information or object library objects.

For more information about how Form Generator determines the Maximum Length property, refer to Setting the Maximum Length property of generated items.


 Text item default MONEY format (TXTDMF)

Related Topics

Default:	(no value)
Values:	(no value), up to 100 characters
Levels:	Container, Module
Category:	Layout - Text Item

Use this preference to specify the Format Mask property of generated items of type MONEY when Form Generator cannot determine this value from repository information or an object library object.

If the preference is not set, no format mask is applied to MONEY items.


 Text item default NUMBER format (TXTDNF)

Related Topics

Default:	(no value)
Values:	(no value), up to 100 characters
Levels:	Container, Module
Category:	Layout - Text Item

Use this preference to specify the Format Mask property of generated items of type NUMBER when Form Generator cannot determine this value from repository information or an object library object. Use the NLS compliant separator characters D and G as the decimal separator and group separator respectively.

If this preference is not set, no format mask is applied to NUMBER items.

See the "SQL*Plus Reference Guide" for details of valid formats.


 Text item default numeric length (TXTDNL)

Related Topics

Default:	12
Values:	1 to 100
Levels:	Container, Module
Category:	Layout - Text Item

Use this preference to specify the Width and Maximum Length properties of generated numeric items when Form Generator cannot determine these values from repository information or object library objects.

Numeric fields are those with a Display Type of INT, RINT, NUMBER, RNUMBER, MONEY or RMONEY.

For more information about how Form Generator determines the Maximum Length property, refer to Setting the Maximum Length property of generated items.


 Text item default DATETIME format (TXTDTF)

Related Topics

Default:	DD-MM-RRRR HH24:MI
Values:	(no value), up to 60 characters
Levels:	Container, Module
Category:	Layout - Text Item

Use this preference to specify the Format Mask property of generated items of type DATETIME when Form Generator cannot determine this value from repository information or an object library object. If you do set this preference, we strongly recommend you specify a Year 2000 compliant date format. For more information, refer to Generating Year 2000 compliant applications.

If the preference is not set, no format mask is applied to DATETIME items.

See the "SQL*Plus Reference Guide" for details of valid formats.


 Text item default DATETIME length (TXTDTL)

Related Topics

Default:	20
Values:	1 to 250
Levels:	Container, Module
Category:	Layout - Text Item

Use this preference to specify the Width and Maximum Length properties of generated items of type DATETIME when Form Generator cannot determine these values from repository information or object library objects.

For more information about how Form Generator determines the Maximum Length property, refer to Setting the Maximum Length property of generated items.


 Multi-line text items (TXTMLI)

Related Topics

Default:	Yes
Values:	Yes, No
Levels:	Container, Table, Column, Module, Module Component, Module Sub-component, Item
Category:	Layout - Text Item

Use this preference to specify whether or not Form Generator creates a multi-line text item when appropriate.

A multi-line text item can be used if the display height is greater than one and a character Display Type is specified for the repository item.

Note that if Form Generator is using a source object in an object library to generate the item, this property is always set to the value of the equivalent property of the source object.


 Multi-line text item, vertical scrollbar width (TXTSBW)

Related Topics

Default:	3
Values:	Up to 30 characters
Levels:	Container, Module
Category:	Layout - Text Item

Use this preference to specify the space allocated for the width of the vertical scrollbar that is associated with text items.

Note:	TXTSBW does not specify the size of the vertical scrollbar.

This preference is unlikely to need changing, unless you are generating a form to run on a different target platform.

The default units are character cells (i.e. if you do not specify a unit, Form Generator uses character cells). However, you can specify an alternative unit by appending a space and one of the following abbreviations:

Abbreviation	Unit	Example	Max No of decimal places
in	real inches	0.7 in	three (i.e. 0.001, but not 0.0001)
cm	real centimeters	4.56 cm	three (i.e. 0.001, but not 0.0001)
pixel	real pixels	120 pixel	none
point	real points	30 point	one (i.e. 0.1, but not 0.01)

During generation, Form Generator converts the value you specify into the equivalent units in the generated form. For more information about real units, refer to Notes on coordinate systems and Form Generator.

Related preferences

TLSSBH

TLSSBW

IMGSBW

IMGSBH


Scale factor for data, number and upper case text items (TXTSCA)
 Scale factor for DATE, NUMBER and uppercase text items (TXTSCA)

Related Topics

Default:	20
Values:	Up to 100
Levels:	Container, Domain, Table, Column, Module, Module Component, Module Sub-component, Item
Category:	Layout - Text Item

Certain text items (dates, numbers, and items displayed in uppercase) require a wider-than-average display width. This preference causes the display width of such items to be increased by the specified percentage, providing ITMBIF is set to Yes.

This does not affect the display width stored in the repository; it merely adjusts the physical width of the item.

Any expansion is applied after the item width has been computed; i.e. it is independent of decisions about whether the size is based on the font or character cell.

The expanded width is rounded up. This will only be noticed if the form is using the character coordinate system.

For more information about using this preference, refer to How Form Generator determines the dimensions of a generated item.

Note that Form Generator also uses the container level setting of this preference during design capture. For more information refer to:

•	Repository bound item properties set during design capture

•	Repository unbound item properties set during design capture


 Scrollbar for multi-line text items (TXTVSB)

Related Topics

Default:	Yes
Values:	Yes, No
Levels:	Container, Table, Column, Module, Module Component, Module Sub-component, Item
Category:	Layout - Text Item

Use this preference to specify whether multi-line text items have a vertical scrollbar.


 Layout preferences - text list

Related Topics

These preferences govern the details of generated text lists.

Name	Description	Levels at which preferences can be set
		Cont	Dom	Tab	Con	Col	Mod	MC	Sub	LOV	CnU	ItG	Itm	Act
TLSMAX	Maximum number of items in a text list	X	X	X		X	X	X	X				X
TLSSBH	Text list horizontal scrollbar height	X					X
TLSSBW	Text list vertical scrollbar width	X					X
How to use these preferences to control:

Text list layout


 Using preferences to control text list layout

Related Topics

The following preferences (in the Layout Preferences - Text List category) determine the appearance and behavior of text lists.

Preference	Meaning
TLSMAX	Maximum number of items in a text list
TLSSBH	Text list horizontal scrollbar height
TLSSBW	Text list vertical scrollbar width
Example

To generate a text list containing a maximum of four values, set TLSMAX to 5.


 Maximum number of items in a text list (TLSMAX)

Related Topics

Default:	5
Values:	(no value), 1 to 20
Levels:	Container, Domain, Table, Column, Module, Module Component, Module Sub-component, Item
Category:	Layout - Text List

Use this preference to specify the maximum number of items in a text-list.

If the item is optional, the NULL value will be counted.

If the number of items in a text list is greater than the value of this preference, Form Generator issues a warning.

If this preference is not set, no check is made on the number of items.

Note that this preference does not apply to lookup text list items.


 Text list horizontal scrollbar height (TLSSBH)

Related Topics

Default:	1
Values:	Up to 30 characters
Levels:	Container, Module
Category:	Layout - Text List

Use this preference to specify the space allocated for the height of the horizontal scrollbar that is associated with text-list items.

Note:	TLSSBH does not specify the size of the horizontal scrollbar.

You will only need to change this preference when generating forms for a target environment other than MS Windows.

The default units are character cells (i.e. if you do not specify a unit, Form Generator uses character cells). However, you can specify an alternative unit by appending a space and one of the following abbreviations:

Abbreviation	Unit	Example	Max No of decimal places
in	real inches	0.7 in	three (i.e. 0.001, but not 0.0001)
cm	real centimeters	4.56 cm	three (i.e. 0.001, but not 0.0001)
pixel	real pixels	120 pixel	none
point	real points	30 point	one (i.e. 0.1, but not 0.01)

During generation, Form Generator converts the value you specify into the equivalent units in the generated form. For more information about real units, refer to Notes on coordinate systems and Form Generator.

Related preferences

TLSSBW

BUTIWD

CBXIWD

PLSIWD


 Text list vertical scrollbar width (TLSSBW)

Related Topics

Default:	4
Values:	Up to 30 characters
Levels:	Container, Module
Category:	Layout - Text List

Use this preference to specify the space allocated for the width of the vertical scrollbar that is associated with text-list items.

Note:	TLSSBW does not specify the size of the vertical scrollbar.

You will only need to change this preference when generating forms for a target environment other than MS Windows.

The default units are character cells (i.e. if you do not specify a unit, Form Generator uses character cells). However, you can specify an alternative unit by appending a space and one of the following abbreviations:

Abbreviation	Unit	Example	Max No of decimal places
in	real inches	0.7 in	three (i.e. 0.001, but not 0.0001)
cm	real centimeters	4.56 cm	three (i.e. 0.001, but not 0.0001)
pixel	real pixels	120 pixel	none
point	real points	30 point	one (i.e. 0.1, but not 0.01)

During generation, Form Generator converts the value you specify into the equivalent units in the generated form. For more information about real units, refer to Notes on coordinate systems and Form Generator.

Related preferences

TLSSBH

BUTIWD

CBXIWD

PLSIWD


 Layout preferences - window

Related Topics

These preferences govern the default properties of generated windows.

Name	Description	Levels at which preferences can be set
		Cont	Dom	Tab	Con	Col	Mod	MC	Sub	LOV	CnU	ItG	Itm	Act
WINCLO	Window closeable (obsolete)	X					X
WINDLG	Window is a dialog (obsolete)	X					X
WINFHT	Window frame height (obsolete)	X					X
WINFIX	Window fixed size (obsolete)	X					X
WINFWD	Window frame width (obsolete)	X					X
WINFXP	Window frame X position (obsolete)	X					X
WINFYP	Window frame Y position (obsolete)	X					X
WINHSB	Window horizontal scrollbar (obsolete)	X					X
WINICN	Window icon name (obsolete)	X					X
WINICO	Window iconizable (obsolete)	X					X
WINICT	Window icon title (obsolete)	X					X
WINMOV	Window movable (obsolete)	X					X
WINSCR	Generate scrolling windows	X					X
WINVSB	Window vertical scrollbar (obsolete)	X					X
WINZOO	Window zoomable (obsolete)	X					X


 Window closeable (WINCLO) (obsolete)

Related Topics

Default:	Yes
Values:	Yes, No
Levels:	Container, Module
Category:	Layout - Window

We strongly recommend you do not use this obsolete preference. Instead, set properties of an appropriate source object in an object library. Click here to find out more (including how to continue using this preference).

Having read the above, you might decide to disregard the recommendation. In which case, you can use this preference to specify whether windows are closeable.

If this preference is set to Yes, the windows are closeable.

If this preference is set to No, the windows are not closeable.

Note:	This property is a GUI hint and may not be observed on all platforms The ROOT_WINDOW is always closeable.


 Window is a dialog (WINDLG) (obsolete)

Related Topics

Default:	No
Values:	Yes, No
Levels:	Container, Module
Category:	Layout - Window

We strongly recommend you do not use this obsolete preference. Instead, set properties of an appropriate source object in an object library. Click here to find out more (including how to continue using this preference).

Having read the above, you might decide to disregard the recommendation. In which case, you can use this preference to specify whether windows are created as document or dialog windows on platforms that support the Multiple Document Interface (MDI) system for window management.

MDI applications display a default parent window called the application window. All of the other windows in the application are either document windows or dialog windows.

Document windows are always displayed within the application window frame. If the user of a generated form resizes the application window so that it is smaller than the document window, the document window is made smaller.

The user of a generated form can maximize a document window so that it occupies the entire content area of the application window.

Note:	The ROOT_WINDOW is always a document window.


 Window frame height (WINFHT) (obsolete)

Related Topics

Default:	24
Values:	1 to 9999
Levels:	Container, Module
Category:	Layout - Window

We strongly recommend you do not use this obsolete preference. Instead, set properties of an appropriate source object in an object library. Click here to find out more (including how to continue using this preference).

Having read the above, you might decide to disregard the recommendation. In which case, you can use this preference to specify the default frame height of windows.

This value is only used if a template window does not form the basis of the generated window, and if no window/view height has been set for the table usage associated with the window (i.e. one with a layout position of NEW WINDOW).


 Window fixed size (WINFIX) (obsolete)

Related Topics

Default:	No
Values:	Yes, No
Levels:	Container, Module
Category:	Layout - Window

We strongly recommend you do not use this obsolete preference. Instead, set properties of an appropriate source object in an object library. Click here to find out more (including how to continue using this preference).

Having read the above, you might decide to disregard the recommendation. In which case, you can use this preference to specify whether windows are fixed-size windows.

If this preference is set to Yes, the windows are fixed-size windows.

If this preference is set to No, the windows are not fixed-size windows.

Note:	This property is a GUI hint and may not be observed on all platforms The ROOT_WINDOW is never of fixed size.


 Window frame width (WINFWD) (obsolete)

Related Topics

Default:	80
Values:	1 to 9999
Levels:	Container, Module
Category:	Layout - Window

We strongly recommend you do not use this obsolete preference. Instead, set properties of an appropriate source object in an object library. Click here to find out more (including how to continue using this preference).

Having read the above, you might decide to disregard the recommendation. In which case, you can use this preference to specify the default frame width of windows.

This value is only used if a template window does not form the basis of the generated window, and if no window/view width has been set for the table usage associated with the window (i.e. one with a layout position of NEW WINDOW).


 Window frame X position (WINFXP) (obsolete)

Related Topics

Default:	0
Values:	0 to 9999
Levels:	Container, Module
Category:	Layout - Window

We strongly recommend you do not use this obsolete preference. Instead, set properties of an appropriate source object in an object library. Click here to find out more (including how to continue using this preference).

Having read the above, you might decide to disregard the recommendation. In which case, you can use this preference to specify the default X position of window frames.

This value is only used if a generated window is not based on a template window, and if no window/view X position is set for the table usage for the window (i.e. one with a layout position of NEW WINDOW).


 Window frame Y position (WINFYP) (obsolete)

Related Topics

Default:	0
Values:	0 to 9999
Levels:	Container, Module
Category:	Layout - Window

We strongly recommend you do not use this obsolete preference. Instead, set properties of an appropriate source object in an object library. Click here to find out more (including how to continue using this preference).

Having read the above, you might decide to disregard the recommendation. In which case, you can use this preference to specify the default Y position of window frames.

This value is only used if a generated window is not based on a template window, and if no window/view Y position is set for the table usage for the window (i.e. one with a layout position of NEW WINDOW).


 Window horizontal scrollbar (WINHSB) (obsolete)

Related Topics

Default:	Yes
Values:	Yes, No
Levels:	Container, Module
Category:	Layout - Window

We strongly recommend you do not use this obsolete preference. Instead, set properties of an appropriate source object in an object library. Click here to find out more (including how to continue using this preference).

Having read the above, you might decide to disregard the recommendation. In which case, you can use this preference to specify whether windows have horizontal scrollbar.

If this preference is set to Yes, a horizontal scrollbar is displayed for the window frames. This allows the user to scroll canvases in a horizontal direction within the window frame.

Note:	This scrollbar takes up vertical space within the width of the window frame.

A horizontal scrollbar is never displayed for the ROOT_WINDOW.


 Window icon name (WINICN) (obsolete)

Related Topics

Default:	(no value)
Values:	(no value), up to 30 characters
Levels:	Container, Module
Category:	Layout - Window

We strongly recommend you do not use this obsolete preference. Instead, set properties of an appropriate source object in an object library. Click here to find out more (including how to continue using this preference).

Having read the above, you might decide to disregard the recommendation. In which case, you can use this preference to specify the name of an icon to use for a minimized generated window. Do not include a file extension as part of the name.

If this preference is not set, Oracle Forms uses a default icon when a generated window is minimized.

If this preference is set, Oracle Forms uses the specified icon when a generated window is minimized, providing the following conditions are met:

•	the window can be iconized (WINICO set to Yes)

•	the window is not a root window (the default Oracle Forms icon is always used for root windows)

•	the icon file is present in a directory that is part of the resource search path for your platform


 Window iconized (WINICO) (obsolete)

Related Topics

Default:	Yes
Values:	Yes, No
Levels:	Container, Module
Category:	Layout - Window

We strongly recommend you do not use this obsolete preference. Instead, set properties of an appropriate source object in an object library. Click here to find out more (including how to continue using this preference).

Having read the above, you might decide to disregard the recommendation. In which case, you can use this preference to specify whether windows can be minimized.

If this preference is set to Yes, the windows can be minimized.

If this preference is set to No, the windows cannot be minimized.

Note:	This property is a GUI hint and may not be observed on all platforms The ROOT_WINDOW can always be minimized.


 Window icon title (WINICT) (obsolete)

Related Topics

Default:	(no value)
Values:	(no value), up to 30 characters
Levels:	Container, Module
Category:	Layout - Window

We strongly recommend you do not use this obsolete preference. Instead, set properties of an appropriate source object in an object library. Click here to find out more (including how to continue using this preference).

Having read the above, you might decide to disregard the recommendation. In which case, you can use this preference to specify the text displayed with the icon for a minimized generated window.

If this preference is not set, Oracle Forms uses a default icon title when a generated window is minimized.

If this preference is set, Oracle Forms uses the specified text when a generated window is minimized, providing the following conditions are met:

•	the window can be iconized (WINICO set to Yes)

•	the window is not a root window (the default Oracle Forms icon title is always used for root windows)


 Window movable (WINMOV) (obsolete)

Related Topics

Default:	Yes
Values:	Yes, No
Levels:	Container, Module
Category:	Layout - Window

We strongly recommend you do not use this obsolete preference. Instead, set properties of an appropriate source object in an object library. Click here to find out more (including how to continue using this preference).

Having read the above, you might decide to disregard the recommendation. In which case, you can use this preference to specify whether the user of a generated form can use the mouse to move windows.

If this preference is set to Yes, the windows are movable.

If this preference is set to No, the windows are not movable.

Note:	This property is a GUI hint and may not be observed on all platforms The ROOT_WINDOW is always movable.


 Generate scrolling windows (WINSCR)

Related Topics

Default:	Yes
Values:	Yes, No
Levels:	Container, Module
Category:	Layout - Window

Use this preference to specify whether Form Generator produces windows that can be scrolled to display the largest content canvas accessible from the window. Note that this preference is ignored if the window is based on a repository window definition.

If this preference is set to Yes, the generated windows have dimensions as specified by the user, and are scrollable.

If this preference is set to No, the size of the generated window is determined by the size of the largest content canvas that is displayed in the window. The window cannot be scrolled.


 Window vertical scrollbar (WINVSB) (obsolete)

Related Topics

Default:	Yes
Values:	Yes, No
Levels:	Container, Module
Category:	Layout - Window

We strongly recommend you do not use this obsolete preference. Instead, set properties of an appropriate source object in an object library. Click here to find out more (including how to continue using this preference).

Having read the above, you might decide to disregard the recommendation. In which case, you can use this preference to specify whether windows have a vertical scrollbar.

If this preference is set to Yes, a vertical scrollbar is displayed with the windows, allowing the user to scroll canvases in a vertical direction within the window frame.

Note:	This scrollbar takes up horizontal space within the width of the window frame.

A vertical scrollbar is never displayed with the ROOT_WINDOW.


 Window zoomable (WINZOO) (obsolete)

Related Topics

Default:	Yes
Values:	Yes, No
Levels:	Container, Module
Category:	Layout - Window

We strongly recommend you do not use this obsolete preference. Instead, set properties of an appropriate source object in an object library. Click here to find out more (including how to continue using this preference).

Having read the above, you might decide to disregard the recommendation. In which case, you can use this preference to specify whether windows are zoomable.

If this preference is set to Yes, the windows are zoomable.

If this preference is set to No, the windows are not zoomable.

Note:	This property is a GUI hint and may not be observed on all platforms The ROOT_WINDOW is always zoomable.


List of values preferences

Related Topics

These preferences enable you to control how the validation/lists of values for columns with known values/ranges is to be implemented.

Name	Description	Levels at which preferences can be set
		Cont	Dom	Tab	Con	Col	Mod	MC	Sub	LOV	CnU	ItG	Itm	Act
DVHILO	Implement single range using field attributes?	X		X		X	X	X					X
DVHLVF	Name of form to display valid ranges	X					X
DVLOVF	Name of form to display valid values	X					X
FKLOVT	For LOV on foreign key, use native Forms LOV	X					X
LOVACT	Abbreviation column title for LOV	X					X
LOVBAL	List of values button alignment	X	X	X	X	X	X
LOVBUT	Use a button to indicate available list of values	X	X	X	X	X	X	X			X		X
LOVDAB	Display domain abbreviation in LOV	X					X
LOVDCT	Display column titles in LOV	X					X
LOVDMN	Display domain meaning in LOV	X					X
LOVHCT	High Value column title for LOV	X					X
LOVHPN	Horizontal LOV position	X					X
LOVITG	List of values item gap	X	X	X	X	X	X
LOVLCT	Low Value column title for LOV	X					X
LOVMCT	Meaning column title for LOV	X					X
LOVMHT	List of values height	X	X	X	X	X	X	X		X	X		X
LOVMWD	Maximum width of LOV	X	X	X	X	X	X	X		X	X		X
LOVNAV	List of values button navigation (obsolete)	X	X	X	X	X	X	X			X		X
LOVVAL	Validate item in LOV	X					X						X
LOVVPN	Vertical LOV position	X					X
LOVXCO	List of values - X coordinate	X	X	X	X	X	X	X		X	X		X
LOVYCO	List of values - Y coordinate	X	X	X	X	X	X	X		X	X		X
For more information about using Form Generator to create Lists of Values, refer to Oracle Forms List of Values (LOV) generation


 Implement single range using field attributes (DVHILO)

Related Topics

Default:	Yes
Values:	Yes, No
Levels:	Container, Table, Column, Module, Module Component, Item
Category:	List of Values

Use this preference to specify the method of validation for items with a single range of allowable values.

If this preference is set to Yes, validation is performed using the High and Low properties of the generated item.

If this preference is set to No, validation is performed using the reference codes table.

For more information about using Form Generator to create Lists of Values, refer to  Oracle Forms List of Values (LOV) generation


 Name of form to display valid ranges (DVHLVF)

Related Topics

Default:	(no value)
Values:	(no value), up to 240 characters
Levels:	Container, Module
Category:	List of Values

Use this preference to specify the name of the form that is used to display a list of valid ranges of allowable values when the user of a generated form presses [List].

If this preference is not set, the native Oracle Forms LOV is used to display the list of valid ranges.

A sample form, OFGHLVF, is provided.

If a single range of allowable values is defined for an item, use the DVHILO preference to determine Form Generator's actions.

For more information about using this preference, refer to Calling Lists of Values forms to display allowable values.


 Name of form to display valid values (DVLOVF)

Related Topics

Default:	(no value)
Values:	(no value), up to 240 characters
Levels:	Container, Module
Category:	List of Values

Use this preference to specify the name of the form that is used to display a list of valid values when the user of a generated form presses [List].

If this preference is not set, the native Oracle Forms LOV is used to display the list of valid values.

A sample form, OFGLOVF, is provided.

For more information about using this preference, refer to Calling Lists of Values forms to display allowable values.


 For LOV on foreign key, use native Forms LOV (FKLOVT)

Related Topics

Default:	B
Values:	B, F, S
Levels:	Container, Module
Category:	List of Values

Use this preference to specify the method used by Form Generator to display lists of values (LOV) for foreign key items.

Form Generator can either use the native Oracle Forms LOV, or you can define module(s) in the repository with the Layout Format property set to LOV, and create calls in the repository from the module being generated to these LOV modules. (The LOV modules are generated in the normal way.)

The options are:

S	Use native Oracle Forms list of values.
F	Form Generator looks for a call from this module to another module with an LOV format whose first table usage is the table at the other end of the foreign key. If one is not found, a list of values is not provided.
B	Form Generator looks for a call from this module to another module with an LOV format whose first table usage is the table at the other end of the foreign key. If one is not found, the native Oracle Forms LOV is used.
For more information about using Form Generator to create Lists of Values, refer to Oracle Forms List of Values (LOV) generation


 Abbreviation Column title for LOV (LOVACT)

Related Topics

Default:	Abbreviation
Values:	Up to 20 characters
Levels:	Container, Module
Category:	List of Values

Use this preference to specify a title for the column in an LOV showing abbreviations of allowable values.

For more information about using Form Generator to create Lists of Values, refer to Oracle Forms List of Values (LOV) generation


 List of values button alignment (LOVBAL)

Related Topics

Default:	C
Values:	BOTTOM, CENTER, TOP
Levels:	Container, Domain, Table, Constraint, Column, Module, Module Component, Constraint Usage, Item
Category:	List of Values

Use this preference to specify the vertical alignment of an item and the item's list of values button.

The options are:

TOP (T)	Align the top of the text item and the button.
CENTER (C)	Align the center of the text item and the button.
BOTTOM (B)	Align the bottom of the text item and the button.

For more information about using Form Generator to create Lists of Values, refer to Oracle Forms List of Values (LOV) generation


 Use a button to indicate available list of values (LOVBUT)

Related Topics

Default:	No
Values:	Yes, No
Levels:	Container, Domain, Table, Constraint, Column, Module, Module Component, Constraint Usage, Item
Category:	List of Values

Use this preference to specify whether a button is displayed to indicate a list of values.

If this preference is set to Yes, each item that has a list of values available has a list of values button adjacent to it. Pressing this button displays the list of values.

Form Generator determines the dimensions, icon and visual attributes of the button from a button item (called CGSO$LOV_BUT) in an object library or from a button item (called CG$LB) in the template form. If no such items exist, Form Generator uses suitable default values.

For more information about using this preference, refer to List of values indicator button generation.


 Display domain abbreviation in LOV (LOVDAB)

Related Topics

Default:	Yes
Values:	Yes, No
Levels:	Container, Module
Category:	List of Values

Use this preference to specify whether abbreviations of allowable values are displayed in a list of values.

Note that you cannot display abbreviations in the list of values if the list of values is being used to perform validation (i.e. LOVVAL is set to Yes).

For more information about using this preference, refer to Generating an Oracle Forms LOV of allowable values.


 Display column title(s) in LOV (LOVDCT)

Related Topics

Default:	Yes
Values:	Yes, No
Levels:	Container, Module
Category:	List of Values

Use this preference to specify whether titles for value, meaning and abbreviation columns are displayed in an LOV.

For more information about using Form Generator to create Lists of Values, refer to  Oracle Forms List of Values (LOV) generation


 Display domain meaning in LOV (LOVDMN)

Related Topics

Default:	Yes
Values:	Yes, No
Levels:	Container, Module
Category:	List of Values

Use this preference to specify whether meanings of allowable values are displayed in a list of values.

For more information about using this preference, refer to Generating an Oracle Forms LOV of allowable values.


 High Value column title for LOV (LOVHCT)

Related Topics

Default:	High Value
Values:	Up to 20 characters
Levels:	Container, Module
Category:	List of Values

Use this preference to specify a title for the column in an LOV showing the high value for a range of allowable values.

For more information about using Form Generator to create Lists of Values, refer to Oracle Forms List of Values (LOV) generation


 Horizontal position of LOV (LOVHPN)

Related Topics

Default:	LEFT
Values:	CENTER, LEFT, RIGHT
Levels:	Container, Module
Category:	List of Values

Use this preference to specify the point, along the horizontal axis of an LOV displaying allowable values that the X position refers to. The X position is defined using the LOVXCO preference.

For more information about using Form Generator to create Lists of Values, refer to Oracle Forms List of Values (LOV) generation

Related preferences

LOVXCO


 List of Values, item gap (LOVITG)

Related Topics

Default:	1
Values:	0 to 10
Levels:	Container, Domain, Table, Constraint, Column, Module, Module Component, Constraint Usage, Item
Category:	List of Values

Use this preference to specify the gap between the item and the item's list of values button.

For more information about using Form Generator to create Lists of Values, refer to Oracle Forms List of Values (LOV) generation


 Low Value column title for LOV (LOVLCT)

Related Topics

Default:	Value
Values:	Up to 20 characters
Levels:	Container, Module
Category:	List of Values

Use this preference to specify a title for the column in an LOV showing the low value for a range of allowable values.

For more information about using Form Generator to create Lists of Values, refer to Oracle Forms List of Values (LOV) generation


 Meaning column title for LOV (LOVMCT)

Related Topics

Default:	Meaning
Values:	Up to 20 characters
Levels:	Container, Module
Category:	List of Values

Use this preference to specify a title for the column in an LOV showing meanings of allowable values.

For more information about using Form Generator to create Lists of Values, refer to Oracle Forms List of Values (LOV) generation


 List of values height (LOVMHT)

Related Topics

Default:	15
Values:	1 to 9999
Levels:	Container, Domain, Table, Constraint, Column, Module, Module Component, LOV, Constraint Usage, Item
Category:	List of Values

Use this preference to specify the height of a List of Values box.

For more information about using Form Generator to create Lists of Values, refer to  Oracle Forms List of Values (LOV) generation


 Maximum width of LOV (LOVMWD)

Related Topics

Default:	80
Values:	1 to 9999
Levels:	Container, Domain, Table, Constraint, Column, Module, Module Component, LOV, Constraint Usage, Item
Category:	List of Values

Use this preference to specify the maximum width of a List of Values box.

For more information about using Form Generator to create Lists of Values, refer to  Oracle Forms List of Values (LOV) generation


 List of values button navigation (LOVNAV) (obsolete)

Related Topics

Default:	No
Values:	Yes, No
Levels:	Container, Domain, Table, Constraint, Column, Module, Module Component, Constraint Usage, Item
Category:	List of Values

We strongly recommend you do not use this obsolete preference. Instead, set properties of an appropriate source object in an object library. Click here to find out more (including how to continue using this preference).

Having read the above, you might decide to disregard the recommendation. In which case, you can use this preference to specify whether users can use the keyboard to navigate to LOV buttons.

If this preference is set to Yes, generated LOV buttons are keyboard navigable.

For more information about using Form Generator to create Lists of Values, refer to Oracle Forms List of Values (LOV) generation


 Validate item in LOV (LOVVAL)

Related Topics

Default:	Yes
Values:	Yes, No
Levels:	Container, Module, Item
Category:	List of Values

Use this preference to specify whether the item is validated using an LOV.

If this preference is set to Yes, the LOV will be used to validate the item.

Note that validation using an LOV:

•	is only available for allowable values that do not include ranges

•	is not performed when a foreign key constraint is only validated in the server

For more information about using this preference, refer to Validation of user input using LOVs and trigger code.


 Vertical position of LOV (LOVVPN)

Related Topics

Default:	TOP
Values:	BOTTOM, CENTER, TOP
Levels:	Container, Module
Category:	List of Values

Use this preference to specify the point, along the vertical axis of an LOV displaying allowable values that the Y position refers to. The Y position is defined using the LOVYCO preference.

For more information about using Form Generator to create Lists of Values, refer to Oracle Forms List of Values (LOV) generation

Related preferences

LOVYCO


 List of values - X co-ordinate (LOVXCO)

Related Topics

Default:	0
Values:	0 to 240
Levels:	Container, Domain, Table, Constraint, Column, Module, Module Component, LOV, Constraint Usage, Item
Category:	List of Values

Use this preference to specify the position of the left edge of an LOV displaying allowable values.

If the default value for this preference is not changed, it means choose an X co-ordinate that centers the LOV.

In the case of foreign key validation, Form Generator does not know the width of the LOV, so 0 positions the LOV on the left of the screen with a modest indent.

Oracle Forms does not allow the LOV to run off the right edge of the screen. Any value of LOVXCO that makes the right edge of the LOV greater than the screen width is taken to mean: 'position the LOV on the right of the screen'.

For more information about using Form Generator to create Lists of Values, refer to Oracle Forms List of Values (LOV) generation


 List of values - Y co-ordinate (LOVYCO)

Related Topics

Default:	9
Values:	0 to 9999
Levels:	Container, Domain, Table, Constraint, Column, Module, Module Component, LOV, Constraint Usage, Item
Category:	List of Values

Use this preference to specify the screen location of the top edge of an LOV displaying allowable values.

Oracle Forms does not allow the LOV to run off the bottom edge of the screen. Any value of LOVYCO that makes the bottom edge of the LOV greater than the screen depth is taken to mean: 'position the LOV at the bottom of the screen'.

For more information about using Form Generator to create Lists of Values, refer to Oracle Forms List of Values (LOV) generation


 Menu preferences - end user

Related Topics

These preferences enable you to govern the basic end user facilities of the generated menu.

Name	Description	Levels at which preferences can be set
		Cont	Dom	Tab	Con	Col	Mod	MC	Sub	LOV	CnU	ItG	Itm	Act
MNUDNP	Display dimmed, inaccessible items	X					X
MNUEUS	Enable Use security flag	X					X
MNUPFL	Parameter must be fixed length	X					X
MNUPRQ	Parameter is required and must be entered	X					X
MNUPSC	Parameter is secure, not echoed to screen	X					X
MNUTOF	All menus generated as tear off	X					X
MNUULC	Unique letter or capital letter as menu access key	X					X


Display, grayed out, inaccessible items (MNUDNP)
 Display, dimmed, inaccessible items (MNUDNP)

Related Topics

Default:	Yes
Values:	Yes, No
Levels:	Container, Module
Category:	Menu - End User

Use this preference to specify whether a menu item is displayed if a user does not have sufficient privileges to select it.

If this preference is set to Yes, the menu item is dimmed, indicating that the user cannot select it.

If this preference is set to No, the menu item is not displayed on the generated menu if the user does not have the correct privileges to select it.

For more information about using this preference, refer to Generated menu item properties.


 Enable Use security flag (MNUEUS)

Related Topics

Default:	Yes
Values:	Yes, No
Levels:	Container, Module
Category:	Menu - End User

Use this preference to specify the Use security property in the generated menu module.

For more information about using this preference, refer to Assigning database roles to menus and menu items.


 Parameter must be fixed length (MNUPFL)

Related Topics

Default:	No
Values:	Yes, No
Levels:	Container, Module
Category:	Menu - End User

Use this preference to set the Fixed Length property of generated menu substitution parameters.

For more information about using this preference, refer to Generating menu substitution parameters.


 Parameter is required and must be entered (MNUPRQ)

Related Topics

Default:	No
Values:	Yes, No
Levels:	Container, Module
Category:	Menu - End User

Use this preference to set the Required property of generated menu substitution parameters.

For more information about using this preference, refer to Generating menu substitution parameters.


 Parameter is secure, not echoed to screen (MNUPSC)

Related Topics

Default:	No
Values:	Yes, No
Levels:	Container, Module
Category:	Menu - End User

Use this preference to set the Conceal data property of generated menu substitution parameters.

For more information about using this preference, refer to Generating menu substitution parameters.


All menus generated as tear-off (MNUTOF)
 All menus generated as tear off (MNUTOF)

Related Topics

Default:	Yes
Values:	Yes, No
Levels:	Container, Module
Category:	Menu - End User

Use this preference to set the Tear Off Menu property of all generated menus.

A tear-off menu is a submenu that users can drag away from the menu bar and reposition elsewhere on the screen.

Tear-off functionality is only available when the window manager supports tear-off functionality (e.g. Motif supports this functionality, but MS Windows does not).


Capitalize a unique letter of the menu item name (MNUULC)
 Unique letter or capital letter as menu access key (MNUULC)

Related Topics

Default:	Yes
Values:	Yes, No
Levels:	Container, Module
Category:	Menu - End User

Use this preference to specify how menu access keys for generated menu items are identified.

Set this preference to Yes if you want Form Generator to underline a unique letter in each menu item label and make this letter the menu access key. The underlined letter will be unique among the underlined letters in all items on the menu. If Form Generator cannot identify a unique letter, the first letter of the item label is underlined.

Set this preference to No if you want Form Generator to use Oracle Forms functionality to underline the first upper-case letter, the first character, or the character preceded by an ampersand in the generated menu item's label.

For more information about using this preference, refer to Generating menu access keys.


 Menu preferences - generation options

Related Topics

These preferences enable you to control the generation of menus.

Name	Description	Levels at which preferences can be set
		Cont	Dom	Tab	Con	Col	Mod	MC	Sub	LOV	CnU	ItG	Itm	Act
MNUDFC	Default command line to use to call a form	X					X
MNUDGC	Default command line to use to run a Graphics module	X					X
MNUDHC	Default command line to use to invoke a HOST command	X					X
MNUDIM	Delete intermediate menu	X					X
MNUDRC	Default command line to use to run a report	X					X
MNUDSC	Default command line to use to invoke SQL*Plus	X					X
MNUEXI	Include Exit option on generated menus	X					X
MNUSGA	Sequence generated menu items after template items	X					X
MNUSKY	Include Show Keys option on generated menus	X					X
MNUUCL	Use command line from module definition	X					X
MNUUPS	Generate unique parameter strings	X					X


 Default command line to use to call a form (MNUDFC)

Related Topics

Default:	CALL_FORM ('<MODULE>',HIDE,DO_REPLACE);
Values:	Up to 240 characters
Levels:	Container, Module
Category:	Menu - Gen Options

Use this preference to specify the command to call a form from a generated menu item if the repository module's Command Line property is not set or if the MNUUCL preference is set to No.

For more information about using this preference, refer to Setting a menu item's Menu Item Code property.

Related preferences

MNUUCL


Default command line to use to run a Graphics module (MNUDHC)
 Default command line to use to run a Graphics module (MNUDGC)

Related Topics

Default:	RUN_PRODUCT(GRAPHICS,'<MODULE>',SYNCHRONOUS,RUNTIME,FILESYSTEM,'','');
Values:	Up to 240 characters
Levels:	Container, Module
Category:	Menu - Gen Options

Use this preference to specify the command to call a graphics module from a generated menu item if the repository module's Command Line property is not set or if the MNUUCL preference is set to No.

For more information about using this preference, refer to Setting a menu item's Menu Item Code property.

Related preferences

MNUUCL


 Default command line to use to invoke a HOST command (MNUDHC)

Related Topics

Default:	HOST('<CMDLINE>');
Values:	Up to 240 characters
Levels:	Container, Module
Category:	Menu - Gen Options

Use this preference to specify the command to invoke a HOST command from a generated menu item if the repository module's Command Line property is not set or if the MNUUCL preference is set to No.

For more information about using this preference, refer to Setting a menu item's Menu Item Code property.

Related preferences

MNUUCL


 Delete intermediate menu (MNUDIM)

Related Topics

Default:	Yes
Values:	Yes, No
Levels:	Container, Module
Category:	Menu - Gen Options

Use this preference to specify the behavior of Form Generator if a start module of type DEFAULT calls only one module of type MENU.

If this preference is set to No, Form Generator will generate a menu with possibly only one item in the top-level menu (referred to as an intermediate menu).

If this preference is set to Yes, Form Generator will not generate an intermediate menu. Instead, Form Generator adds all the items that would have appeared in the intermediate menu to the top-level menu.

For more information about using this preference, refer to Deleting intermediate menus.


 Default command line to use to run a report (MNUDRC)

Related Topics

Default:	RUN_PRODUCT (REPORTS, '<MODULE>',SYNCHRONOUS,RUNTIME,FILESYSTEM,'','');
Values:	Up to 240 characters
Levels:	Container, Module
Category:	Menu - Gen Options

In Oracle Designer 6i only, use this preference to specify the command to run a report from a generated menu item if the repository module's Command Line property is not set or if the MNUUCL preference is set to No.

For more information about using this preference, refer to Setting a menu item's Menu Item Code property.

In Oracle9i Designer, this preference is not used.  For the alternative preferences to use, see Report invocation preferences.

Related preferences

MNUUCL


 Default command line to use to invoke SQL*Plus (MNUDSC)

Related Topics

Default:	HOST('SQLPLUS <UN>/<PW> @<MODULE>');
Values:	Up to 240 characters
Levels:	Container, Module
Category:	Menu - Gen Options

Use this preference to specify the command to invoke SQL*Plus from a generated menu item if the repository module's Command Line property is not set or if the MNUUCL preference is set to No.

For more information about using this preference, refer to Setting a menu item's Menu Item Code property.

Related preferences

MNUUCL


 Include Exit option on generated menus (MNUEXI)

Related Topics

Default:	TOP
Values:	ALL, NONE, TOP
Levels:	Container, Module
Category:	Menu - Gen Options

Use this preference to specify whether the Exit standard menu item appears on generated menus.

The options are:

TOP	Include the Exit item in the top-level menu only.
ALL	Include the Exit item in all generated menus.
NONE	Do not include the Exit item in any generated menu.
For more information about using this preference, refer to Including standard menu items in generated menus.


 Sequence generated menu items after template items (MNUSGA)

Related Topics

Default:	Yes
Values:	Yes, No
Levels:	Container, Module
Category:	Menu - Gen Options

If this preference is set to Yes, Form Generator sequences generated items after items from a template menu that are displayed in a top-level menu.

For more information about using this preference, refer to Merging generated menus with template menus


 Include show keys option on generated menus (MNUSKY)

Related Topics

Default:	TOP
Values:	ALL, NONE, TOP
Levels:	Container, Module
Category:	Menu - Gen Options

Use this preference to specify whether the Show Keys standard menu item appears on generated menus.

The options are:

TOP	Include the Show Keys item in the top-level menu only.
ALL	Include the Show Keys item in all generated menus.
NONE	Do not include the Show Keys item in any generated menu.
For more information about using this preference, refer to Including standard menu items in generated menus.


 Use command line from module definition (MNUUCL)

Related Topics

Default:	Yes
Values:	Yes, No
Levels:	Container, Module
Category:	Menu - Gen Options

Use this preference to specify how Form Generator sets the Menu Item Code property of a generated menu item.

If this preference is set to Yes and a repository module's Command Line property has been set, Form Generator uses the command line to set the generated menu item's Menu Item Code property (except when it is not relevant).

If this preference is set to No, Form Generator ignores a repository module's Command Line property and sets the Menu Item Code property using the value of an appropriate preference.

For more information about using this preference, refer to Setting a menu item's Menu Item Code property.

Related preferences

MNUDFC

MNUDGC

MNUDHC

MNUDRC

MNUDSC


 Generate unique parameter strings (MNUUPS)

Related Topics

Default:	No
Values:	Yes, No
Levels:	Container, Module
Category:	Menu - Gen Options

Use this preference to specify how Form Generator derives the name of menu substitution parameters generated from repository module arguments.

If this preference is set to Yes, or if the Substitution String property (if set) or Name property of a repository argument is unsuitable as a menu substitution parameter name, Form Generator creates a name for the generated substitution parameter that:

•	is unique

•	consists of a letter followed by a numeral

•	has allowable combinations from A0 - Z9

If this preference is set to No, Form Generator only creates a name for the generated substitution parameter if the Substitution String property (if set) or Name property of a repository argument is unsuitable as a menu substitution parameter name.

For more information about using this preference, refer to Generating menu substitution parameters.


 Menu preferences - roles

Related Topics

These preferences govern the generation of database roles.

Name	Description	Levels at which preferences can be set
		Cont	Dom	Tab	Con	Col	Mod	MC	Sub	LOV	CnU	ItG	Itm	Act
MNUADR	Grant all roles access to generated template items with no security	X					X
MNUDRN	Name for the default role	X					X
MNUSEC	Generate menu security	X					X


 Grant all roles access to generated template items with no security (MNUADR)

Related Topics

Default:	Yes
Values:	Yes, No
Levels:	Container, Module
Category:	Menu - Roles

Use this preference to assign roles to template menu items in the generated menu module when no roles have been assigned to them in the template menu module.

If this preference is set to Yes, Form Generator assigns all roles assigned to the generated menu module as a whole to any template menu items that have no roles assigned to them.

For more information about using this preference, refer to Merging generated menus with template menus.


 Name for the default role (MNUDRN)

Related Topics

Default:	DEVELOPER
Values:	(no value), up to 30 characters
Levels:	Container, Module
Category:	Menu - Roles

Use this preference to specify the name of a default database role for Form Generator to assign to generated menu items. Form Generator assigns the default role to any menu items generated from repository modules to which no roles were granted access.

For more information about using this preference, refer to Assigning database roles to menus and menu items.


 Generate menu security (MNUSEC)

Related Topics

Default:	Yes
Values:	Yes, No
Levels:	Container, Module
Category:	Menu - Roles

Use this preference to specify whether Form Generator generates menu security information as part of menu generation.

If this preference is set to No, Form Generator does not assign roles to menu items and menu modules.

For more information about using this preference, refer to Assigning database roles to menus and menu items.


 Navigation preferences

Related Topics

These preferences enable you to control navigation between items, blocks and windows.

Name	Description	Levels at which preferences can be set
		Cont	Dom	Tab	Con	Col	Mod	MC	Sub	LOV	CnU	ItG	Itm	Act
NAVBWN	Navigation bound by window	X					X
NAVCCF	Close child forms	X					X
NAVCRE	Move at end for change record block	X					X
NAVCRS	Move at start for change record block	X					X
NAVCUR	Navigation cursor management	X					X
NAVKEY	Mnemonic access key generation	X					X
NAVNPB	Navigation next/previous block	X					X
NAVPAG	Restrict item navigation to items on the current content canvas	X					X
NAVRBN	Restrict block navigation	X					X
NAVWND	Navigation window management	X					X
NAVWRP	Navigation wrap	X					X
USEPKR	Use primary key recall	X					X


 Navigation bound by window (NAVBWN)

Related Topics

Default:	No
Values:	Yes, No
Levels:	Container, Module
Category:	Navigation

Use this preference to specify whether item and block navigation within the generated form are confined to each window.

If this preference is set to No, item and block navigation to other windows in the module is possible.

If this preference is set to Yes, item and block navigation is confined to the current window. This is standard behavior for Windows applications.

This preference also defines the context for item/block wrapping behavior as used by NAVWRP and controls whether block navigation between blocks in separate windows is allowed if the NAVRBN preference is set to Yes.

For more information about generating navigation code, refer to Navigation code generation.


 Close child forms (NAVCCF)

Related Topics

Default:	No
Values:	Yes, No
Levels:	Container, Module
Category:	Navigation

Use this preference to specify what happens when the window containing a form is closed and other forms have been called from that window. In this context, a called form is considered to be the child of a parent window if it has been called from a button (generated from an action item) at block level or window level in the calling form.

If this preference is set to Yes, when a parent window is closed any child forms called from the parent window are also closed.

If this preference is set to No, when a parent window is closed any child forms called from the parent window are not closed.

This preference only has an effect if NAVWND is set to Yes in both the calling and called form.

Note:	This preference is implemented by setting the global CGNV$nav_close_forms to True or False. You can change the runtime behavior of generated forms by entering application logic to set this global programmatically.

For more information about using this preference, refer to Window navigation and window management.


Move at end of a change record block (NAVCRE)
 Move at end for change record block (NAVCRE)

Related Topics

Default:	(no value)
Values:	(no value), ALL, SINGLE, MULTI
Levels:	Container, Module
Category:	Navigation

Use this preference to specify the behavior of [Next Item] when the user of the generated form reaches the last item of the last record of a block.

This preference only has effect on blocks which have the Navigation Style property set to Change Record.

ALL	For all blocks [Next Item] will move the cursor on to the next block when the last item of the last record in the block is reached.
SINGLE	For single record blocks only [Next Item] will move the cursor on to the next block when the last item of the last record of the single record block is reached. If the block is a multi-record block, [Next Item] will insert a new record or do nothing.
MULTI	For multi-record blocks only [Next Item] will move the cursor on to the next block when the last item of the last record of the multi-record block is reached. If the block is a single record block, [Next Item] will insert a new record or do nothing.
(no value)	For all blocks [Next Item] will insert a new record when the last item of the last record of the block is reached. If inserts are not allowed in the block [Next Item] will do nothing. This is standard Oracle Forms behavior.

For more information about using this preference, refer to Generating item navigation code.


 Move at start of a change record block (NAVCRS)

Related Topics

Default:	(no value)
Values:	(no value), ALL, SINGLE, MULTI
Levels:	Container, Module
Category:	Navigation

Use this preference to specify the behavior of [Previous Item] when the user of the generated form reaches the first item of the first record of a block.

This preference only has effect on blocks which have the Navigation Style property set to Change Record.

ALL	For all blocks [Previous Item] will move the cursor back to the previous block when the first item of the first record in the block is reached.
SINGLE	For single record blocks only [Previous Item] will move the cursor back to the previous block when the first item of the first record of the single record block is reached. If the block is a multi-record block, [Previous Item] will do nothing.
MULTI	For multi-record blocks only [Previous Item] will move the cursor back to the previous block when the first item of the first record of the multi-record block is reached. If the block is a single record block, [Previous Item] will do nothing.
(no value)	For all blocks [Previous Item] will do nothing and not move the cursor when the first item of the first record of the block is reached. This is standard Oracle Forms behavior.

For more information about using this preference, refer to Generating item navigation code.


 Navigation cursor management (NAVCUR)

Related Topics

Default:	No
Values:	Yes, No
Levels:	Container, Module
Category:	Navigation

Use this preference to specify whether each window stores the location of the cursor when the user of the generated form navigates to a different window.

If this preference is set to No, the location of the cursor in the window is not stored. This is standard Oracle Forms behavior.

If this preference is set to Yes, the location of the cursor is stored when the user of the generated form leaves the window. On returning to the window, the cursor will be displayed in the stored location unless the user has clicked on another item or used other navigation features (e.g. using [Previous item] from the first field in the next block in the next window) to specify an alternative item.

For more information about using this preference, refer to Window navigation and cursor management.


 Mnemonic access key generation (NAVKEY)

Related Topics

Default:	No
Values:	Yes, No
Levels:	Container, Module
Category:	Navigation

Use this preference to specify whether to generate keyboard shortcuts (also called mnemonic access keys) for generated blocks, item groups and buttons. In the generated form, the shortcut character will be underlined.

Keyboard shortcuts are only generated if all the following conditions are met:

•	this preference is set to Yes

•	there is an ampersand (&) preceding the shortcut character in the repository Title or Prompt property

•	the title or prompt is displayed in the generated form

For example, if this preference is set to Yes, Em&ployee will appear as Employee.

Keyboard shortcuts are not generated for tab canvases or iconic buttons.

To include an & in a generated block title, item group title or button label, follow the & with a space. Regardless of the setting of this preference, Form Generator always removes an ampersand unless it is followed by a space.

For more information about using this preference, refer to Generating keyboard shortcuts.


 Navigation next/previous block (NAVNPB)

Related Topics

Default:	No
Values:	Yes, No
Levels:	Container, Module
Category:	Navigation

Use this preference to specify whether each block in the generated form has the Next Navigation Block property and Previous Navigation Block property set.

If this preference is set to Yes, the Next/Previous Navigation Block properties are set for every block in the form.

If this preference is set to No, the Next/Previous Navigation Block properties are only set when necessary (e.g. if the block is used to control block navigation or wrapping).

This preference is particularly useful when generating forms to integrate with Oracle Applications. For more information about generating forms for Oracle Applications refer to An overview of forms generation for Oracle Applications.

If the preference NAVRBN is set to Yes, NAVNPB has no effect as the Next/Previous Navigation Block properties will always be set.

For more information about using this preference, refer to Generating block navigation code.


 Restrict item navigation to items on the current content canvas (NAVPAG)

Related Topics

Default:	Yes
Values:	Yes, No
Levels:	Container, Module
Category:	Navigation

Use this preference to control [Next Item] and [Previous Item] item navigation when items from the same block are on different canvases (e.g. multi-region blocks, item groups on different tab canvas pages, context areas/spreadtables) on the same content canvas.

If you set this preference to Yes, Form Generator generates code to restrict item navigation to items from the current block on the current content canvas.

If you set this preference to No, navigation to items in the current block on other content canvases is allowed.

Example

Consider a multi-region block with items placed on two content canvases (CANVAS_A and CANVAS_B). Assume the currently displayed record is the first record and the block's Navigation Style property is set to Change Record. If the current item is the last item from the multi-region block on CANVAS_A and the user of the generated form presses [Next Item]:

•	if NAVPAG is set to Yes, the next record is displayed and navigation is to the first item in the layout region on CANVAS_A

•	if NAVPAG is set to No, navigation is to the first item in the layout region on CANVAS_B


 Restrict block navigation (NAVRBN)

Related Topics

Default:	No
Values:	Yes, No
Levels:	Container, Module
Category:	Navigation

Use this preference to specify whether block navigation for the generated form is restricted to navigation between blocks within relationships only.

If this preference is set to No, the property values of Next/Previous Navigation Block for blocks within the form will be set according to the preferences NAVNPB, NAVWRP and NAVBWN.

If this preference is set to Yes, for each block in the form Next/Previous Navigation Block will be set to itself, preventing block navigation. The exceptions are:

•	if the block has a master block, Previous Navigation Block is set to the master block

•	if the block has one or more child blocks, Next Navigation Block is set to the first defined child block

NAVBWN will still control if this block navigation will work between blocks in different windows.

Note:	Setting this preference to Yes will override the preferences NAVWRP (it will not wrap) and NAVNPB (Next/Previous Navigation Block will be set for every block).

For more information about using this preference, refer to Generating block navigation code.


 Navigation window management (NAVWND)

Related Topics

Default:	No
Values:	Yes, No
Levels:	Container, Module
Category:	Navigation

Use this preference to specify whether closing a window within a form will close all of its child windows. In this context, a window is considered to be the child of another window if a master detail relationship exists between blocks displayed in the two windows. The window containing the detail block is considered the child of the window containing the master block.

If this preference is set to No, closing a window within a form will not close any of its child windows. This is standard Oracle Forms behavior.

If this preference is set to Yes, closing a window within a form will close all of its child windows.

This preference also generates code to enable users to close windows using:

•	the Windows System menu

•	the top left button in a window title bar (Windows 3.1)

•	the X iconic button in a window title bar (Windows95)

This functionality is not provided by Oracle Forms by default.

For more information about using this preference, refer to Window navigation and window management.


 Navigation wrap (NAVWRP)

Related Topics

Default:	Yes
Values:	Yes, No
Levels:	Container, Module
Category:	Navigation

Use this preference to specify if item navigation and block navigation should wrap round when the last item or last block is reached.

If this preference is set to Yes, when the last item of the last block is reached, [Next Item] will move to the first item. When the last block is reached, [Next Block] will move to the first block. Use NAVBWN to specify whether last block is the last block in the window or the last block in the form.

For more information about generating navigation code, refer to Navigation code generation.


 Use primary key recall (USEPKR)

Related Topics

Default:	NONE
Values:	NONE, QUERY, ALL
Levels:	Container, Module
Category:	Navigation

Use this preference when specifying a generated form's:

•	default startup query mode

•	startup query mode when called from another form using Key-Fn trigger code

This preference controls whether the primary key of the current row in the calling form is saved into a global variable to automatically query the base table of the first block in the called form. Note that Form Generator only uses this preference if CALLFM is set to Yes.

If the USEPKR preference is set to QUERY or ALL, Form Generator will:

•	generate a POST-FORM trigger to save the primary key of the current row into a global variable upon exit from a form

•	generate a WHEN-NEW-FORM-INSTANCE trigger that uses the value of the global variable to query the base table of the first block

If the USEPKR preference is set to QUERY, the query will be performed if the first block of the called form meets both of the following conditions:

•	the block must allow queries

•	the block must not allow:

−	creation of new records

−	updates of existing records

−	deletions of existing records

If the USEPKR preference is set to ALL, the query is always performed when the calling form calls the second form.

If the USEPKR preference is set to NONE, the primary key is not stored and the query is not performed.

For more information about using this preference, refer to

•	Specifying a generated form's default startup query mode using USEPKR

•	Specifying a generated form's startup query mode when called by Key-Fn trigger code

•	Generating window navigation code


 Navigator preferences

Related Topics

These preferences enable you to control the appearance of navigator style forms and navigator style items.

Name	Description	Levels at which preferences can be set
		Cont	Dom	Tab	Con	Col	Mod	MC	Sub	LOV	CnU	ItG	Itm	Act
NVRBKI	Navigator block node icon filename	X					X	X	X
NVRBLB	Navigator block node label	X						X	X
NVRLSP	Navigator record node context item label separator	X					X	X	X
NVRNCI	Navigator null context item	X					X	X	X
NVRRCI	Navigator record node icon filename	X					X	X	X
NVRWAS	Navigator generated with auto-select	X					X
How to use these preferences to control:

Navigator appearance


 Using preferences to control navigator appearance

Related Topics

The following preferences (in the Navigator Preferences category) determine the appearance of navigator style forms and navigator style items.

Preference	Meaning
NVRBKI	Navigator block node icon filename
NVRBLB	Navigator block node label
NVRLSP	Navigator record node context item label separator
NVRRCI	Navigator record node icon filename


Navigator block node icon filename (NVRBKI)

Related Topics

Default:	nvrbkidf
Values:	(no value), up to 30 characters
Levels:	Container, Module, Module Component, Module Sub-component
Category:	Navigator

Use this preference when generating navigator style forms and navigator style items to specify the file containing the icon to indicate a block node. When specifying an icon file using this preference:

•	do not include the .ico suffix

•	do not include the path to the icon file (set the UI_ICON Registry variable)

If you do not specify a value for this preference, Form Generator does not include an icon for block nodes.


Navigator block node label (NVRBLB)

Related Topics

Default:	(no value)
Values:	(no value), up to 30 characters
Levels:	Container, Module Component, Module Sub-component
Category:	Navigator

Use this preference when generating navigator style forms and navigator style items to specify the label for a block node for the module component.

If you do not specify a value, Form Generator uses the title of the block as the block node label.


Navigator record node context item label separator (NVRLSP)

Related Topics

Default:	(two spaces)
Values:	(no value), up to 5 characters
Levels:	Container, Module, Module Component, Module Sub-component
Category:	Navigator

Use this preference when generating navigator style forms and navigator style items to include separator characters between the values from different items that comprise record node labels.

Use the Context property to specify the items that provide labels for record nodes.


Navigator null context item (NVRNCI)

Related Topics

Default:	(no value)
Values:	(no value), up to 30 characters
Levels:	Container, Module, Module Component, Module Sub-component
Category:	Navigator

Use this preference when generating navigator style forms and navigator style items to specify the characters to display instead of null when a record node label includes a context item that contains a null value.

Use the Context property to specify the items that provide labels for record nodes.


Navigator record node icon filename (NVRRCI)

Related Topics

Default:	nvrrcidf
Values:	(no value), up to 30 characters
Levels:	Container, Module, Module Component, Module Sub-component
Category:	Navigator

Use this preference when generating navigator style forms and navigator style items to specify the file containing the icon to indicate a record node. When specifying an icon file using this preference:

•	do not include the .ico suffix

•	do not include the path to the icon file (set the UI_ICON Registry variable)

If you do not specify a value for this preference, Form Generator does not include an icon for record nodes.


Navigator generated with auto-select (NVRWAS)

Related Topics

Default:	Yes
Values:	Yes, No
Levels:	Container, Module
Category:	Navigator

Use this preference to indicate whether Form Generator includes auto-select functionality for navigator style forms and navigator style items. If auto-select functionality is included and a user clicks on a record node in the navigator, the corresponding record is queried and displayed in its block.

If you set this preference to Yes, Form Generator includes auto-select functionality.

If you set this preference to No, Form Generator does not include auto-select functionality.


 Standards preferences

Related Topics

These preferences enable you to specify which specify template form, template menu and object libraries to use during generation.

Name	Description	Levels at which preferences can be set
		Cont	Dom	Tab	Con	Col	Mod	MC	Sub	LOV	CnU	ItG	Itm	Act
OLBLST	List of module level source objects in object libraries	X					X
OLBOLD	Object library keep old preferences	X					X
OLBSOC	Object library subclass or copy	X					X
OTBAEN	Order template blocks at end	X					X
SCTFMB	Form containing objects to ignore on capture	X					X
STFFMB	The filename of the template form	X					X
STFOWN	Owner of the template form	X					X
STMMMB	The name of the menu template	X					X
STMOWN	Owner of the template menu	X					X
STOOLB	The name of the object library	X					X


List of module level source objects in object libraries (OLBLST)

Related Topics

Default:	(no value)
Values:	(no value), up to 240 characters
Levels:	Container, Module
Category:	Standards

Use this preference to specify module level source objects (and/or object groups) in object libraries to subclass or copy into the generated form.

To specify multiple module level source objects, separate object names with commas.

We recommend that when using this preference to include module level source objects, you gather the objects into object groups and use this preference to specify those object groups instead of specifying the objects individually. Grouping objects into object groups also enables you to include two (or more) module level source objects with the same name in the generated form.

Note that if you use OLBLST to specify an object library object that references another object, the referenced object is not automatically subclassed or copied into the generated form. To include the referenced object, you must also specify it using this preference (either explicitly or by including it in an object group). For example, you might use OLBLST to specify a canvas called MYCANVAS that has its Window property set to MYWINDOW. Unless you add MYWINDOW to the list of objects specified by this preference, the window will not be included in the generated form and the form will not compile successfully.

For more information about object libraries, refer to Using object libraries.


Object library keep old preferences (OLBOLD)

Related Topics

Default:	NO
Values:	YES, NO
Levels:	Container, Module
Category:	Standards

This preference determines whether Form Generator will continue to use preferences made obsolete by the support for object libraries provided in Oracle Designer release 2 onwards. We strongly recommend you keep this preference set to No and do not use the obsolete preferences.

For more information about object libraries, refer to Using object libraries.

For information specifically about object libraries and obsolete preferences, refer to Object libraries and earlier versions of Form Generator.

Note: 	The OLBOLD preference is provided for backwards compatibility only. This preference and the obsolete preferences will be removed in future releases of Form Generator.


Object library subclass or copy (OLBSOC)

Related Topics

Default:	SUBCLASS
Values:	COPY, SUBCLASS
Levels:	Container, Module
Category:	Standards

This preference controls how Form Generator creates items in the generated form from objects in object libraries.

If this preference is set to COPY, Form Generator will create an object in the generated form as a copy of the object library object.

If this preference is set to SUBCLASS, Form Generator will create an object in the generated form as a subclass of the object library object.

For more information about object libraries, refer to Using object libraries.


 Order template blocks at end (OTBAEN)

Related Topics

Default:	No
Values:	Yes, No
Levels:	Container, Module
Category:	Standards

Use this preference to specify the positioning of blocks read from the template form with respect to generated blocks.

If this preference is set to Yes, Form Generator positions the blocks from the template form after all of the generated blocks.

If this preference is set to No, Form Generator positions blocks from the template form before all the generated blocks.


 Form containing objects to ignore on capture (SCTFMB)

Related Topics

Default:	(no value)
Values:	(no value), up to 240 characters
Levels:	Container, Module
Category:	Standards

Use this preference to specify the name and extension (in the format myform.fmb) of a default capture filter form module containing objects you do not want captured from a form during design recovery. The value of this preference is used as the default in the Capture Filter - Form Name field on the Capture Form Design dialog box.

The settings of options on the Capture Filter tab of the Forms Design Capture Options dialog box determines how Form Generator uses this preference.

If the Capture Filter Form Location option is set to File, Form Generator uses the capture filter form specified in the Capture Filter - Form Name field on the Capture Form Design dialog box. The Form Name field initially defaults to this preference.

If the Capture Filter Form Location option is set to Local Database, this preference must be set to the name of the capture filter form module. If the current repository user does not own the capture filter form module, that user must have been granted access to it by the owner of the module.

If the Capture Filter Form Location option is set to Other Database:

•	this preference must be set to the name of the capture filter form module

•	the Capture Filter Form Connect String option must be set to the connect string for the owner of the capture filter form module

•	the Capture Filter Form Command option must be set to the command to extract the capture filter form module from the database

For more information about using this preference, refer to Design capture of existing forms.


 The name of the template form (STFFMB)

Related Topics

Default:	ofgwebt.fmb
Values:	(no value), up to 240 characters
Levels:	Container, Module
Category:	Standards

Use this preference to specify the name and extension (in the format myform.fmb) of a default template form module. The value of this preference is used as the default in the Template Name field on the Generate Form dialog box.

The Dependencies tab of the Form Generator Options dialog box enables you to specify whether the template form is stored in the filesystem or database, or in the repository. The choice you make determines how Form Generator uses this preference.

For more information about using this preference, refer to Specifying template forms.

Template form stored as a file in the repository

If you specify that the template form is stored as a file in the repository, Form Generator searches for the template in the repository folders specified in the Repository Folders field on the Dependencies tab of the Form Generator Options dialog box.

Template form stored in the filesystem or database

If you specify that the template form is stored in the filesystem or database, the settings of options on the Standards tab of the Form Generator Options dialog box determine how Form Generator uses this preference.

If the Form Template Location option is set to File, Form Generator searches the filesystem for the template specified in the Template Name field on the Generate Form dialog box using the following in order:

•	any path specified in the Template Name field

•	the current working directory

•	any path specified in the Path field on the Dependencies tab of the Form Generator Options dialog box

If the Form Template Location option is set to Local Database, this preference must be set to the name of the form module template. If the current repository user does not own the template module, that user must have been granted access to it by the owner of the module. The owner is specified by the STFOWN preference.

If the Form Template Location option is set to Other Database:

•	this preference must be set to the name of the form module template

•	the Form Template Connect String option must be set to the connect string for the owner of the template module

•	the Form Template Command option must be set to the command to extract the template from the database

Related preferences

STFOWN


 Owner of the template form (STFOWN)

Related Topics

Default:	(no value)
Values:	(no value), up to 30 characters
Levels:	Container, Module
Category:	Standards

Use this preference to specify the owner of the form template when all of the following conditions are true:

•	the Source option on the Dependencies tab of the Form Generator Options dialog box is set to File or Database

•	the Form Template Location option on the Standards tab of the Form Generator Options dialog box is set to Local Database

•	the current repository user does not own the form

The current user must have been granted access to the form by the owner, otherwise, it will not be found and the generation will fail.

For more information about using this preference, refer to Specifying the location of template forms.

Related preferences

STFFMB


 The name of the menu template (STMMMB)

Related Topics

Default:	(no value)
Values:	(no value), up to 240 characters
Levels:	Container, Module
Category:	Standards

Use this preference to specify the name and extension (in the format mymenu.mmb) of a default template menu module. The value of this preference is used as the default in the Template Name field on the Generate Form dialog box.

The Dependencies tab of the Form Generator Options dialog box enables you to specify whether the template menu module is stored in the filesystem or database, or in the repository. The choice you make determines how Form Generator uses this preference.

For more information about using this preference, refer to Specifying template menu modules.

Template menu module stored as a file in the repository

If you specify that the template menu module is stored as a file in the repository, Form Generator searches for the template in the repository folders specified in the Repository Folders field on the Dependencies tab of the Form Generator Options dialog box.

Template menu module stored in the filesystem or database

If you specify that the template menu module is stored in the filesystem or database, the settings of options on the Standards tab of the Form Generator Options dialog box determine how Form Generator uses this preference.

If the Menu Template Location option is set to File, Form Generator searches the filesystem for the template specified in the Template Name field on the Generate Form dialog box using the following in order:

•	any path specified in the Template Name field

•	the current working directory

•	any path specified in the Path field on the Dependencies tab of the Form Generator Options dialog box

If the Menu Template Location option is set to Local Database, this preference must be set to the name of the menu module template. If the current repository user does not own the template module, that user must have been granted access to it by the owner of the module. The owner is specified by the STMOWN preference.

If the Menu Template Location option is set to Other Database:

•	this preference must be set to the name of the menu module template

•	the Menu Template Connect String option must be set to the connect string for the owner of the template module

•	the Menu Template Command option must be set to the command to extract the template from the database

Related preferences

STMOWN


 Owner of the menu template (STMOWN)

Related Topics

Default:	(no value)
Values:	(no value), up to 240 characters
Levels:	Container, Module
Category:	Standards

Use this preference to specify the owner of the menu template when all of the following conditions are true:

•	the Source option on the Dependencies tab of the Form Generator Options dialog box is set to File or Database

•	the Menu Template Location option on the Standards tab of the Form Generator Options dialog box is set to Local Database

•	the current repository user does not own the menu

The current user must have been granted access to the menu by the owner; otherwise, it will not be found and generation will fail.

For more information about using this preference, refer to Merging generated menus with template menus.

Related preferences

STMMMB


The name of the object library (STOOLB)

Related Topics

Default:	ofgwebol.olb
Values:	(no value), up to 240 characters
Levels:	Container, Module
Category:	Standards

Use this preference to specify the name and extension (in the format myobjlib.olb) of one or more default object libraries (use semi-colons to separate object library names). The value of this preference is used as the default in the Object Library Name field on the Generate Form dialog box. Note that Form Generator searches through object libraries for a particular object in the order in which you specify the object libraries.

The Dependencies tab of the Form Generator Options dialog box enables you to specify whether the object library is stored in the filesystem, or in the repository. The choice you make determines how Form Generator uses this preference.

For more information about using this preference, refer to Specifying object libraries.

For more information about object libraries in general, refer to Using object libraries.

Object libraries stored as files in the repository

If you specify that object libraries are stored as files in the repository, Form Generator searches for object libraries in the repository folders specified in the Repository Folders field on the Dependencies tab of the Form Generator Options dialog box.

Object libraries stored as files in the filesystem

If you specify that object libraries are stored as files in the filesystem, Form Generator searches the filesystem for the object libraries specified in the Object Library Name field on the Generate Form dialog box using the following in order:

•	any path specified in the Object Library Name field

•	the current working directory

•	any path specified in the Path field on the Dependencies tab of the Form Generator Options dialog box


 Web deployment preferences

Related Topics

These preferences enable you to set options for running generated Oracle Forms applications as WebForms applications.

Name	Description	Levels at which preferences can be set
		Cont	Dom	Tab	Con	Col	Mod	MC	Sub	LOV	CnU	ItG	Itm	Act
WEBCOL	Preview mode color scheme	X					X
WEBHGT	Preview window height	X					X
WEBHTM	User-specified HTML file	X					X
WEBLAF	Preview mode look-and-feel style	X					X
WEBURL	Server base URL	X					X
WEBWID	Preview window width	X					X


Preview mode color scheme (WEBCOL)

Related Topics

Default:	Blue
Values:	None, Red, Blue, Teal, Purple, Khaki, Olive, Titanium
Levels:	Container, Module
Category:	Web deployment

Use this preference when generating a form for display in the Web Previewer to specify the color scheme.

For more information about using this preference, refer to Using the Web Previewer to run a generated WebForms application.


Preview window height (WEBHGT)

Related Topics

Default:	600
Values:	1 to 9999
Levels:	Container, Module
Category:	Web deployment

Use this preference when generating a form for display in the Web Previewer to specify the height of the window.

For more information about using this preference, refer to Using the Web Previewer to run a generated WebForms application.


User-specified HTML file (WEBHTM)

Related Topics

Default:	(no value)
Values:	(no value), up to 240 characters
Levels:	Container, Module
Category:	Web deployment

Use this preference when generating a form for display in a java-enabled browser (having deployed the application to an application server) to specify the name (and optionally, the location) of the base HTML file.

For example, assume:

•	the location of the base HTML file is c:\webforms

•	the base HTML file is called my_base.html

In this case, you would set this preference to:

c:\webforms\my_base.html

The Dependencies tab of the Form Generator Options dialog box enables you to specify whether the base HTML file is stored in the filesystem or in the repository. The choice you make determines how Form Generator uses this preference.

For more information about using this preference, refer to Using a web browser to run a generated WebForms application.

Base HTML file stored as a file in the repository

If you specify that the base HTML file is stored as a file in the repository, Form Generator searches for the file in the repository folders specified in the Repository Folders field on the Dependencies tab of the Form Generator Options dialog box.

Base HTML file stored in the filesystem

If you specify that the base HTML file is stored in the filesystem, Form Generator searches the filesystem for the base HTML file specified by this preference using the following in order:

•	any path specified by this preference

•	the current working directory

•	any path specified in the Path field on the Dependencies tab of the Form Generator Options dialog box


Preview mode look-and-feel style (WEBLAF)

Related Topics

Default:	Oracle
Values:	(no value), up to 30 characters
Levels:	Container, Module
Category:	Web deployment

Use this preference when generating a form for display in the Web Previewer to specify the look-and-feel style of the form.

Two look-and-feel styles are supplied:

Oracle	Oracle look-and-feel (with rounded edges for buttons, scrollbars, and other objects)
Generic	standard Windows look-and-feel
In addition, you can use this preference to specify a look-and-feel style that you have defined yourself.

If you do not set this preference, the Oracle look-and-feel style is used.

For more information about using this preference, refer to Using the Web Previewer to run a generated WebForms application.


Server form location path (WEBPTH)

Related Topics

Default:	(no value)
Values:	(no value), up to 240 characters
Levels:	Container, Module
Category:	Web deployment

Use this preference to specify the path of the form on the server as known locally by that server.

For example, if the form is located on server drive C: in the directory \forms then enter c:\forms\ as the value for WEBPTH.

The mapping of the server drive and directory as seen by the client (e.g. h:\forms) is not the path required by WEBPTH.


Server base URL (WEBURL)

Related Topics

Default:	(no value)
Values:	(no value), up to 240 characters
Levels:	Container, Module
Category:	Web deployment

Use this preference to specify the location of the generated form (and the HTML file copied from the base HTML file) on the application server machine, in the following format:

http://<machine_address>/<virtual_directory>/<physical_directory>

For example, assume:

•	the address of the application server machine is pc1234.us.acme_corp.com

•	the physical directory into which the form is to be generated is d:\my_apps\forms\webdeploy

•	a virtual directory called apps has been created on pc1234 for the physical directory d:\my_apps\forms

In this case, you would set WEBURL to

http://pc1234.us.acme_corp.com/apps/webdeploy

Note that if the virtual directory and the physical directory are identical, you simply specify the virtual directory.

For more information about using this preference, refer to Using a web browser to run a generated WebForms application.


Preview window width (WEBWID)

Related Topics

Default:	800
Values:	1 to 9999
Levels:	Container, Module
Category:	Web deployment

Use this preference when generating a form for display in the Web Previewer to specify the width of the window.

For more information about using this preference, refer to Using the Web Previewer to run a generated WebForms application.


 Report invocation preferences

Related Topics

These preferences enable you to invoke a report from a menu or form object.

Name	Description	Levels at which preferences can be set
		Cont	Dom	Tab	Con	Col	Mod	MC	Sub	LOV	CnU	ItG	Itm	Act
RPTSVR	Report server	X					X
RPTPTH	Report path	X					X
RPTDTY	Report destination type	X					X
RPTDNM	Report destination name	X					X
RPTFMT	Report destination format	X					X
RPTSUF	Report file suffix	X					X


Report server (RPTSVR)

Related Topics

Default:	(no value)
Values:	(no value), up to 240 characters
Levels:	Container, Module
Category:	Report invocation

Use this preference to specify the name of the report server when invoking a report from a menu or form object.

For more information about using this preference, refer to Setting a menu item's Menu Item Code property.


Report server (RPTPTH)
Report path (RPTPTH)

Related Topics

Default:	(no value)
Values:	(no value), up to 240 characters
Levels:	Container, Module
Category:	Report invocation

Use this preference to specify the file path of the report to run when invoking a report from a menu or form object.

For more information about using this preference, refer to Setting a menu item's Menu Item Code property.


Report server (RPTDTY)
Report destination type (RPTDTY)

Related Topics

Default:	(no value)
Values:	(no value), up to 240 characters
Levels:	Container, Module
Category:	Report invocation

Use this preference to specify the report destination type when invoking a report from a menu or form object.

For more information about using this preference, refer to Setting a menu item's Menu Item Code property.


Report server (RPTDNM)
Report destination name (RPTDNM)

Related Topics

Default:	(no value)
Values:	(no value), up to 240 characters
Levels:	Container, Module
Category:	Report invocation

Use this preference to specify the report destination name when invoking a report from a menu or form object.

For more information about using this preference, refer to Setting a menu item's Menu Item Code property.


Report server (RPTFMT)
Report destination format (RPTFMT)

Related Topics

Default:	(no value)
Values:	(no value), up to 240 characters
Levels:	Container, Module
Category:	Report invocation

Use this preference to specify the report destination format when invoking a report from a menu or form object.

For more information about using this preference, refer to Setting a menu item's Menu Item Code property.


Report server (RPTSUF)
Report file suffix (RPTSUF)

Related Topics

Default:	(no value)
Values:	(no value), up to 240 characters
Levels:	Container, Module
Category:	Report invocation

Use this preference to specify the report file suffix when invoking a report from a menu or form object.

For more information about using this preference, refer to Setting a menu item's Menu Item Code property.


Generation of generated forms again

About generating generated forms again

Generating generated forms again

Preserving layout during generation


About generating generated forms again

Related Topics

After you have generated a form from a repository module definition, you might decide that the generated form meets your requirements immediately.

Alternatively, you might want to make changes to the generated form. Sometimes, the changes you make will be to the repository definitions from which the form was generated. The following sections in this help system will help you find out the changes to make:

•	Generating windows, canvases, blocks, and items

•	Generating functionality

To implement any changes you make, you simply generate the form again.

On other occasions, you might modify both the repository definitions and the generated form itself. For example, you might want to use Form Builder to:

•	modify generated application logic

•	retain the general layout of the generated form but fine tune it by adding new objects or by removing and/or repositioning generated objects

The only way to implement the repository definition changes is to generate the form again. However, during normal generation Form Generator ignores the existence of any previously generated layout and application logic. Any changes you have made to generated application logic and layout will therefore be lost. To retain existing layout or application logic, you must:

•	record changes to generated application logic by capturing the application logic into the repository before generating the form again (for more information, refer to Capturing application logic from Oracle Forms applications)

•	preserve the layout of the generated form  (for more information, refer to Preserving layout during generation)

Recommendations

To enable you to take advantage of Oracle Designer's impact analysis features, we strongly suggest you do not simply use Form Builder to add new blocks and items to a generated form. Instead, we recommend you create new module components and items in the repository module definition and generate the form again (and only use Form Generator's layout preservation functionality if absolutely necessary).

Before using Form Builder to modify the layout of a generated form, we also recommend you consider whether the changes you are about to make are critical to business requirements. If the changes are not critical, is it possible that the cost of your time making those changes will outweigh any benefits to users of the generated application?

Differences between this functionality and 'Regeneration' functionality in earlier releases of Form Generator

In releases of Form Generator prior to Oracle Designer release 2, a feature called Regeneration enabled you to generate again forms that had previously been generated. During regeneration, any new items created in the form were captured into the repository and any application logic changes were preserved. The form was then generated again, and any appearance and layout information was discarded and recreated.

In Oracle Designer release 2 onwards, generation preserving layout enables you to retain the appearance and layout of generated forms. However, changes to application logic and any new items added to the previously generated form are not captured into the repository. If required, you must capture application logic and any new items into the repository in a separate operation.


Generating generated forms again

Related Topics

To generate generated forms again:

1.	If you have used Form Builder to modify generated application logic or to add user-defined application logic to the generated form, and you want this application logic incorporated when you generate the form again, capture the application logic.  How

2.	Having captured the application logic from the existing generated form that you want to keep, make any further changes to repository information as necessary.

3.	If you intend to preserve layout during generation and you removed repository module components and/or item definitions, use Form Builder to remove the corresponding blocks and/or items before generating preserving layout.

If you do not remove the corresponding blocks/items, during generation preserving layout Form Generator will retain them in the generated form and treat them as user blocks/items.

4.	Generate the form again:

•	if you have only captured application logic from the generated form, generate the form again as you would do for normal generation (for more information, refer to Generating form modules

•	if you want to preserve layout during generation (regardless of whether you have captured application logic), refer to Preserving layout during generation


Preserving layout during generation

Related Topics

About generation preserving layout

About transfer canvases

Generating forms preserving layout

What happens to items during generation preserving layout?

What happens to blocks and module components during generation preserving layout?

Using templates and object libraries during generation preserving layout

Repository properties ignored by Form Generator during generation preserving layout


About generation preserving layout

Related Topics

When you use Form Generator to generate a form that has already been generated, Form Generator normally takes no account of the layout of the previously generated form or any changes made to it using Form Builder.

During generation preserving layout, Form Generator attempts to preserve as much of the appearance and layout of the existing form as possible by retaining the following from the existing form:

•	so-called 'layout objects' (blocks, items, canvases, windows, and boilerplate)

•	associated code (program units and trigger code groups beginning with CGLY$ and CGLT$)

•	the OFGTAB library attachment and record groups beginning with CGLY$ or CGLT$

All other objects and properties (as well as the properties of layout objects that do not affect layout) are generated as for normal generation.

Where existing objects are based on definitions that have been subsequently removed from the repository, Form Generator leaves the objects untouched. Where existing objects are based on repository definitions that have subsequently been changed in the repository, Form Generator will ignore the changes if they affect the layout of the form (for more information about the properties ignored by Form Generator, refer to Repository properties ignored by Form Generator during generation preserving layout). Where new repository items have been created, Form Generator places them on transfer canvases so as not to alter the existing layout.

Form Generator retains those properties of the existing form module itself that affect appearance, whilst generating again all of the module's other properties.

Recommendations

We strongly suggest you only use Form Generator's generation preserving layout functionality when absolutely necessary. Once you have used the functionality once to generate a module, you must continue to use it on all subsequent generations of that module.


About transfer canvases

Related Topics

What are transfer canvases?

Transfer canvases are content canvases created by Form Generator during generation preserving layout to contain new items belonging to blocks that existed in the previously generated version of the form.

Transfer canvases are named CG$TRANSFER_n, where n is unique number.

Although transfer canvases exist in the generated form, they are only intended as a temporary storage area into which Form Generator can place new items without disturbing existing layout. It is your responsibility to move items from transfer canvases onto other canvases in the generated form, and then to delete the transfer canvases. It is generally unwise to attempt to run generated forms containing transfer canvases.

Form Generator will not perform generation preserving layout if any items are still laid out on transfer canvases in the form being generated again. If empty transfer canvases already exist, Form Generator will remove them.

Once you have moved items from transfer canvases onto other canvases in the form and deleted the transfer canvases, you can generate preserving layout again. The items that you moved will be retained in their new positions, and the items will not be generated again onto transfer canvases.

Form Generator does not derive the properties of transfer canvases from template forms or object libraries. Transfer canvases have arbitrary dimensions determined by the size of the items Form Generator places on them during generation preserving layout.

Note that during generation preserving layout, Form Generator will not place an entirely new block (and the items it contains) on a transfer canvas. Regardless of the module component's Placement property, Form Generator will always place a new block and its items on a new 'normal' content canvas (i.e. not a transfer canvas).

How are items laid out on transfer canvases?

Form Generator does not apply any sophisticated layout principles to items on transfer canvases, because transfer canvases are only temporary storage areas from which you will subsequently move items to their permanent locations. For the same reason, Form Generator ignores the item layout preferences that apply during normal generation.

Form Generator places an item on the transfer canvas to the right of any previous item on the canvas. The prompt for an item on a transfer canvas is positioned above the item.


Generating forms preserving layout

Related Topics

To generate a form preserving layout:

1.	If you have used Form Builder to modify generated application logic or to add user-defined application logic to the generated form, and you want this application logic incorporated when you generate the form again, capture the application logic.  How

2.	Having captured the application logic from the existing generated form that you want to keep, make any further changes to repository information as necessary.

3.	If you have removed repository module components and/or item definitions and because you intend to preserve layout during generation, use Form Builder to remove the corresponding blocks and/or items before generating preserving layout.

If you do not remove the corresponding blocks/items, during generation preserving layout Form Generator will retain them in the generated form and treat them as user blocks/items.

4.	In the Design Editor, select the repository module from which you want to generate the form.

5.	Select Generate→Generate Module to display the Generate Form dialog box.

6.	Because the layout of the generated form already meets your requirements (either the initial generated layout was ideal, or you have fine tuned generated layout using Form Builder), use the Preserve Layout fields as follows:

•	select the Yes radio button to specify that Form Generator is not to make any changes to the form layout

•	specify the path and name of the previously generated form in the Source Form Name field

•	use the Source options on the Dependencies tab of the Form Generator Options dialog box to specify where to locate the previously generated form (either on the filesystem or in the repository) during generation

The default entry in the Source Form Name field comprises:

•	the path specified in the Destination of generated files field on the Form Options tab of the Form Generator Options dialog, if one exists

•	the module's Implementation Name property (or the Short Name property if the Implementation Name property has not been set), suffixed with .fmb

For more information about what Form Generator does when changes to layout are necessary, refer to About generation preserving layout.

For more information about the other settings, refer to the Generate Form dialog box.

7.	Display the Form Generator Options dialog box (either by selecting the Options button on the Generate Form dialog box or by selecting Options→Generator Options→Forms) and set generation options as necessary.

For more information about the available options, refer to Form Generator Options dialog box.

8.	When you have specified the options you require, click the Start button on the Generate Form dialog box to generate an Oracle Forms form module from the repository module definition.

The Form Generator message box appears.

During generation, Form Generator creates a binary form definition. Depending on the options you have set on the Form Generator Options dialog box, the binary form definition is stored either in the filesystem (as a file with the suffix .FMB) or in a database. Again depending on the options you specify, Form Generator can:

•	compile the binary form definition and store it in the filesystem as a file with the suffix .FMX

•	automatically run the compiled form definition after generation

9.	When generation is complete, close the Form Generator dialog boxes.

10.	If necessary, use Form Builder to reposition any new items in the generated form to meet your requirements.

If you have modified the form using Form Builder either before or after generation preserving layout (e.g. to remove transfer canvases), there might be code references to objects that no longer exist.

11.	If there are code references to objects that no longer exist, either generate the form preserving layout for a second time (recommended) or follow the steps below:

•	compile the form using Form Builder to identify any code references to objects (e.g. transfer canvases) that no longer exist

•	remove the code references to objects that no longer exist

•	compile the form again using Form Builder


What happens to items during generation preserving layout
What happens to items during generation preserving layout?

Related Topics

What happens to new repository items during generation preserving layout?

If Form Generator encounters a repository item definition for which no corresponding item exists in the previously generated form, Form Generator creates a new item on a transfer canvas. Form Generator creates a new transfer canvas for each block in the form that has new items.

After generation preserving layout, it is your responsibility to move items from transfer canvases onto the appropriate canvases in the generated form. For more information about transfer canvases, refer to About transfer canvases.

If action items have been defined for repository window definitions, Form Generator's normal behavior is to create a block containing buttons (a button block) at the bottom of every content canvas displayed in the window. If no window-level action items existed before original generation but they have been added between generation and generation preserving layout, adding a button block will clearly affect the appearance and layout of the generated form. So during generation preserving layout, Form Generator instead places a new button block on its own transfer canvas for each content canvas displayed in the window.

What happens to items in the generated form that do not have corresponding repository items?

This situation might have occurred because:

•	the item was added by hand after generation

•	the item was copied from the template as a user item or generator item

•	the repository item definition from which the item was generated has been removed

During generation preserving layout, Form Generator retains all the properties of any items in the existing form that do not have corresponding repository items. Any application logic for these items is also retained.

If you do not want such an item to be retained, use Form Builder to delete the item before generating preserving layout. Having deleted the item using Form Builder, the form created during generation preserving layout is laid out as before but with a gap where the deleted item was located.

What happens to items in the generated form that do have corresponding repository items?

Form Generator generates again all the properties of items in the generated form that have corresponding repository items, except for those properties controlling item appearance and layout specified in Repository properties ignored by Form Generator during generation preserving layout.

Form Generator generates again all application logic for items in the generated form that have corresponding repository items. If you have modified generated application logic and you want to retain your changes, you must capture the application logic before generation preserving layout.


What happens to blocks and module components during generation preserving layout
What happens to blocks and module components during generation preserving layout?

Related Topics

What happens to new repository module component definitions during generation preserving layout?

If Form Generator encounters a repository module component definition for which there is no corresponding block in the previously generated form, Form Generator creates a new block laid out as normal on a new content or stacked canvas.

Note that if the module component's Placement property is set to Same content canvas or Same stacked canvas, Form Generator places the new block on a new content canvas or new stacked canvas respectively.

What happens to blocks in the generated form that do not have corresponding repository module components?

This situation might have occurred because:

•	the block was added by hand after generation

•	the block was copied from the template as a user block or generator block

•	the repository module component definition from which the block was generated has been removed

During generation preserving layout, Form Generator retains all the properties of any blocks in the existing form that do not have corresponding repository module components. Any application logic for these blocks is also retained.

What happens to blocks in the generated form that do have corresponding repository module components?

Form Generator generates again all the properties of blocks in the generated form that have corresponding repository module components, except for those properties controlling block appearance and layout specified in Repository properties ignored by Form Generator during generation preserving layout. Form Generator also generates again any relations for blocks that have corresponding repository module components.

Form Generator generates again all application logic for blocks in the generated form that have corresponding repository module components. If you have modified generated application logic and you want to retain your changes, you must capture the application logic before generation preserving layout.

What happens to blocks or module components in new windows?

There are two ways in which you might consider changing the window in which a generated block is displayed:

•	you might use Form Builder to change the window assigned to the canvas on which the block is displayed

•	you might use Oracle Designer to define a different window for the repository module component from which the block was generated

If you subsequently generate preserving layout, in both cases Form Generator considers the block to have no corresponding module component and considers the module component from which it was generated to have no corresponding block. During generation preserving layout, Form Generator therefore:

•	creates a new block laid out as normal on a new content or stacked canvas for the module component

•	removes the previously generated block

If this is not what you want to happen, give the same name to both the window for the module component and the window in which the block is displayed.


Using templates and object libraries during generation preserving layout

Related Topics

Generation preserving layout, templates and object libraries

To ensure that objects created during generation preserving layout have the same appearance and layout properties as objects retained from previous generations of the form, we strongly recommend you specify the same template form and object library during generation preserving layout as was used when the form was originally generated.

Apart from manual changes to the original generated form, there are two likely causes for unexpected differences in appearance and layout between objects in the generated form and objects retained from previous generations:

•	the settings derived from a template form during generation preserving layout might differ from those used when the form was originally generated for one of the following reasons:

−	the original form was generated with no template, but a template was specified for generation preserving layout

−	the original form was generated with a template, but no template was specified for generation preserving layout

−	the original form was generated with one template, but a different template was specified for generation preserving layout

−	the original form was generated with a template and the same template was specified for generation preserving layout, but changes were made to the template between one generation and the next (e.g. named visual attributes copied from a template form and referenced in the original form are not retained during generation preserving layout)

•	the new objects are subclassed or copied from a different object library to the objects in the original generated form

If the same template form is specified for generation preserving layout as for original generation, any additional user items and user canvases added to the template form after original generation will be included during generation preserving layout. Note that any generator items (e.g. CG$AT) or generator canvases (e.g. CG$STACKED_HEADER) added to the template form after original generation will not be included during generation preserving layout. For this reason, we recommend you make as few changes as possible to the template form between generation and generation preserving layout.


Repository properties ignored by Form Generator during generation preserving layout

Related Topics

During generation preserving layout, Form Generator ignores changes to certain repository properties if these will affect the layout of the generated form.

Repository item properties ignored during generation preserving layout

Form Generator ignores changes to the following repository item properties during generation preserving layout:

Repository item Property	Ignored during generation preserving layout?
Display	ignored
Prompt	ignored
Display Type	ignored
Width	ignored
Height	ignored
Alignment	ignored
Wrap Style	ignored
Item Group	ignored
Context?	ignored
Datatype	ignored
Repository module component properties ignored during generation preserving layout

Form Generator ignores changes to the following repository module component properties during generation preserving layout:

Module Component Property	Ignored during generation preserving layout?
Placement	ignored
X Position	ignored
Y Position	ignored
Title	ignored
Layout Style	ignored
Rows Displayed	ignored
Overflow	ignored
Width	ignored
Height	ignored
View Width	ignored
View Height	ignored
Repository module properties ignored during generation preserving layout

Form Generator ignores changes to the following repository module properties during generation preserving layout:

Module Property	Ignored during generation preserving layout?
Layout Format	ignored
Oracle Forms objects and properties ignored during generation preserving layout

Form Generator ignores changes to the following Oracle Forms objects and properties during generation preserving layout:

•	coordinate information recorded for the Oracle Forms module

•	dimension and position information recorded for  the following objects:

−	items

−	blocks

−	windows

−	canvases

−	boilerplate

−	prompts

−	labels

•	all canvas properties

•	all window properties

•	horizontal toolbar canvases

•	vertical toolbar canvases

•	all block scrollbar properties

•	all prompt properties

•	all block scrollbar properties

•	all prompt properties

•	visual attribute information (i.e. font and color properties) for the following objects, unless the object referenced a visual attribute group in the template which has changed between original generation and generation preserving layout:

−	items

−	blocks

−	windows

−	canvases

−	prompts


Design capture of existing forms

Introducing design capture

About design capture

Capturing existing forms into the repository

Producing a design capture report

Repository properties set during design capture

Repository module properties set during design capture

Repository window properties set during design capture

Repository  module component properties set during design capture

Repository table usage properties set during design capture

Repository LOV properties set during design capture

Repository bound item properties set during design capture

Repository unbound item properties set during design capture

Repository item group properties set during design capture

Repository module argument properties set during design capture

More about design capture

How Form Generator captures buttons during design capture

How Form Generator captures library attachments during design capture

Ignoring objects during design capture

What Form Generator does not capture


About design capture

Related Topics

What is design capture?

Design capture is the process of taking an existing form and creating (or modifying) a corresponding repository module definition. The design capture process enables you to use the repository's reporting and cross-referencing facilities to document the existing application and prepare for further system development.

You can either capture a form as a new repository module or merge the captured module with an existing repository module.

As well as capturing form modules created using Oracle Forms 6i, you can also capture form modules created using:

•	Developer R6.0 Forms 6.0

•	Developer R2.x Forms 5.0

•	Developer/2000 R1.x Forms 4.5

•	Oracle Forms 4.0

You can capture form modules created using the above tools without having to first upgrade the forms.

What Form Generator captures during design capture

During design capture, Form Generator creates:

•	a new repository module definition for the form being captured

•	repository window definitions for windows in the form

•	repository module components for each block in the form

•	repository base table usages for each base table block in the form

•	repository lookup table usages when capturing generated forms

•	repository lookup table usages for each table in a list of values query in the form (when capturing hand-built blocks or forms generated with versions of Form Generator prior to release 6i)

•	repository bound and unbound items for all the items in the form (except for control block items displayed on vertical or horizontal toolbar canvases)

•	repository item groups for items on different tab pages of a tab canvas in the form

•	repository module arguments for each parameter in the form

What happens when a captured module is merged with an existing module?

Instead of creating a new repository module during design capture, you can merge an Oracle Forms module with an existing repository module. Form Generator applies the following rules to determine which repository objects and properties to set:

•	If the object being captured does not already exist in the repository, the Oracle Forms object's properties are used to set the repository object's properties (as for normal design capture).

•	If there is an object in the repository that does not exist in the form being captured, the object and its properties are deleted.

•	If the Oracle Forms object being captured already exists in the repository (i.e. an object of the same type and with the same name exists), the Oracle Forms object's properties replace the repository object's properties. Any of the repository object's properties that are not normally set during design capture are retained unmodified.

Note that additional rules apply when merging reusable module components and reusable LOVs. For more information, refer to Repository  module component properties set during design capture and Repository LOV properties set during design capture respectively.

Notes

Form Generator does not attempt to infer the database design from the form definition. Therefore, definitions of the tables, columns, and database constraints used by a form must already exist in the repository before you can capture the design of that form. If the required database object definitions do not already exist in the repository, consider using the Oracle Designer Capture Database Design utility to read information from the database and to create the definitions in the repository.

For more information about capturing database objects, refer to Capturing an existing database design in the Server Generator help file.

If the form being captured has associated application logic, you can choose either to capture the form together with its application logic, or to capture just the application logic. For more information, refer to Capturing application logic from Oracle Forms applications.

To capture a form containing objects subclassed from objects in another form, save a copy of the other form in the in a directory included in the FORMS60_PATH Registry variable.

As well as Oracle Forms form modules, you can also capture library modules into the repository. For more information, refer to Design capture of existing PL/SQL library modules in the Library Generator help system.

There are some circumstances when Form Generator will not update properties of existing repository objects during design capture. For more information, refer to When are repository objects not updated during generation and design capture.

During the design capture process, Form Generator can produce a report listing what has been captured into the repository. For more information about this report, refer to Producing a design capture report.

To find out what Form Generator does not capture into the repository during design capture, refer to What Form Generator does not capture.


Capturing existing forms into the repository

Related Topics

To capture the design of an existing form into a repository module:

1.	Make sure all tables and columns for data blocks and items in the form have been defined in the repository.

2.	(Recommended) To capture lookup table usages, make sure all foreign keys between tables used in the form have been defined in the repository.

3.	Select Generate→Capture Design of→Form to display the Capture Form Design dialog box.

4.	Specify the location of the form to be captured, as follows:

Option	Location	Notes
File	an operating system file	Specify the name of the .fmb file containing the form module in the Name field of the File - Name field. Use the Browse button to help locate the file if necessary.
Local Database	a form on the local database	Specify the name of the form in the Database - Name field.
Other Database	a form on a different database	Specify: • a connect string in the Connect string field to connect to the other database  • the name of the form in the Name field of the Database section. • a command to extract the form from the database in the Command field Form Generator extracts the form using the specified command, saves the form as an .fmb file, and uses this .fmb file to capture the design of the form into the repository.
Click here for a graphical representation of the above information.

5.	Use the Destination module field as follows:

•	to capture a form into a new repository module, you can specify a short name for the repository module that will be created by the design capture process in the Destination module field (if you do not specify a name, Form Generator creates a unique name based on the name of the Oracle Forms form module)

•	to capture a form and merge it with an existing repository module, specify the existing module's Short Name in the Destination module field (during design capture, Form Generator prompts you to confirm that you want to merge the existing module and the captured module)

6.	Specify the capture mode in which to run Form Generator to:

•	capture BOTH module design and application logic

•	capture ONLY module design (not application logic)

Note that the UPDATE application logic of existing repository module option is only available when capturing application logic. For more information, refer to Capturing application logic from Oracle Forms applications.

7.	Use the Additional Containers field to specify the location of objects (e.g. tables, languages, attached libraries, reusable module components, reusable LOVs) that are referenced by the form being captured but which are not in the target container.

8.	If you have included objects in a capture filter form to prevent them being captured, specify the name and optionally the path of the capture filter form in the Capture Filter - Form Name field.

For more information about using capture filter forms, refer to Ignoring objects during design capture.

9.	Use the Post Capture options to specify whether to save changes to the repository during design capture:

•	Commit - update repository objects

•	Browse/Edit - show proposed repository changes, enabling you to choose how to process them

Note that there are some circumstances when Form Generator will not update properties of repository objects. For more information, refer to When are repository objects not updated during generation and design capture.

10.	If you want to display the captured module definition on a diagram after you have captured the form, check the Create on Diagram after Capture check box.

11.	Display the Forms Design Capture Options dialog box (either by selecting the Options button on the Forms Design Capture dialog box or by selecting Options→Design Capture Options→Forms) and set design capture options as necessary.

For more information about the available options, refer to Forms Design Capture Options dialog box.

12.	When you have specified the options you require, click the Start button on the Capture Form Design dialog box to begin the design capture process.

Batch design capture of multiple modules

You can capture multiple modules of the same and different languages using the Design Editor's batch processing tools.

Capturing forms directly from Form Builder

You can capture forms into Oracle Repository directly from Form Builder.


Producing a design capture report

Related Topics

What is a design capture report?

A design capture report is a text file created by Form Generator during design capture. The report lists the elements that Form Generator has captured from the existing form into the repository during the design capture process.

To produce a design capture report during design capture:

•	On the Forms Design Capture Options dialog, specify a name (and optionally a location) in the Design Capture Log File field.

If you do not specify a name, Form Generator does not create a report file.

To view a design capture report having captured a form:

1.	Select Messages→List Actions to display the Build Actions dialog box.

2.	Double click on the View design capture report option in the dialog box.

Structure of the design capture report

Below is an example of the structure of a design capture report:

CREATE MODULE - TPS_TEST3 from

Implementation Name:

Name:TPS_TEST3

Purpose:TPS_TEST3

Language:Forms

Top Title:

CREATE WINDOW - DUMMY from

Title:

CREATE MODULE COMPONENT - TOOLBAR from Insert:False  Update:False  Query:False  Delete:False

CREATE WINDOW - GC_LOVCALL from

Title:Gc Lovcall: Window 0

CREATE MODULE COMPONENT - BK from

Insert:True  Update:False  Query:True  Delete:True

Display Title:Bookings

CREATE MODULE DETAILED TABLE USAGE - BK from

Table:BOOKINGS Type:BASE

CREATE ITEM - REFERENCE from

Column:REFERENCE Type:BASE

Display:True  Insert:False  Update:False  Query:True  Nullify:True

Display Datatype: Display Width:7 Display Height:1

Prompt:A unique number identifying a booking

Hint Text:A unique number identifying a booking

Order By Sequence:1

Justification:1

CREATE ITEM - TI_PRODUCT_CODE from

Column:TI_PRODUCT_CODE Type:BASE

Display:True  Insert:True  Update:False  Query:True  Nullify:False

Display Datatype: Display Width:10 Display Height:1

Prompt:A unique code that identifies a title - list of values available

Hint Text:A unique code that identifies a title - list of values available

Order By Sequence:1

Justification:1

CREATE ITEM - COP_INVENTORY_NUMBER from

Column:COP_INVENTORY_NUMBER Type:BASE

Display:True  Insert:True  Update:False  Query:True  Nullify:False

Display Datatype: Display Width:9 Display Height:1

Prompt:A unique number identifying a physical copy of a title - LOV

Hint Text:A unique number identifying a physical copy of a title - LOV

Order By Sequence:1

Justification:1

CREATE ITEM - ME_MEMBERSHIP_NUMBER from

Column:ME_MEMBERSHIP_NUMBER Type:BASE

Display:True  Insert:True  Update:False  Query:True  Nullify:False

Display Datatype: Display Width:7 Display Height:1

Prompt:A unique number identifying a membership - list of values available

Hint Text:A unique number identifying a membership - list of values available

Order By Sequence:1

Justification:1

CREATE ITEM - ME_START_DATE from

Column:ME_START_DATE Type:BASE

Display:True  Insert:True  Update:False  Query:True  Nullify:False

Display Datatype: Display Width:11 Display Height:1

Prompt:The date a membership becomes valid

Hint Text:The date a membership becomes valid

Order By Sequence:1

Justification:1

CREATE ITEM - BOOKED from

Column:BOOKED Type:BASE

Display:True  Insert:True  Update:False  Query:True  Nullify:False

Display Datatype: Display Width:11 Display Height:1

Prompt:The date that a booking was made

Default:$$DATE$$

Hint Text:The date that a booking was made

Order By Sequence:3

Justification:1

CREATE ITEM - RESERVED from

Column:RESERVED Type:BASE

Display:True  Insert:True  Update:False  Query:True  Nullify:False

Display Datatype: Display Width:11 Display Height:1

Prompt:The date that a copy was reserved for this booking

Hint Text:The date that a copy was reserved for this booking

Order By Sequence:1

Justification:1

CREATE ITEM - EXPIRY from

Column:EXPIRY Type:BASE

Display:True  Insert:True  Update:False  Query:True  Nullify:False

Display Datatype: Display Width:11 Display Height:1

Prompt:The date that a reservation made for this booking will expire

Hint Text:The date that a reservation made for this booking will expire

Order By Sequence:2

Justification:1

CREATE ITEM - EMP_EMPLOYEE_NUMBER from

Column:EMP_EMPLOYEE_NUMBER Type:BASE

Display:True  Insert:True  Update:False  Query:True  Nullify:False

Display Datatype: Display Width:6 Display Height:1

Prompt:A unique number identifying an employee - list of values available

Hint Text:A unique number identifying an employee - list of values available

Order By Sequence:1

Justification:1

CREATE ITEM - NOTIFIED from

Column:NOTIFIED Type:BASE

Display:True  Insert:True  Update:False  Query:True  Nullify:False

Display Datatype: Display Width:11 Display Height:1

Prompt:The date and time a member was notified that a copy has been reset

Hint Text:The date and time a member was notified that a copy has been reset

Order By Sequence:1

Justification:1

CREATE ITEM - STAFF_REMARKS from

Column:STAFF_REMARKS Type:BASE

Display:True  Insert:True  Update:False  Query:True  Nullify:False

Display Datatype: Display Width:23 Display Height:3

Prompt:Any additional comments made by an employee

Hint Text:Any additional comments made by an employee

Order By Sequence:1

Justification:1


Repository module properties set during design capture

Related Topics

The table below shows the repository module definition properties set by Form Generator during design capture:

Repository Module Property	Captured from or set to:	Notes and Related Topics
Short Name	Name specified in Destination Module field.	The Destination Module field is in the Capture Form Design dialog box. If no name is specified in the Destination Module field, this property is set to the name of the form module.
Name	As for Short Name (above).
Purpose	Original module Purpose property, title of first window in the form, or repository module's Short Name property	When capturing forms generated by Form Generator 6i, set to the original module's Purpose property. When capturing hand-built forms or forms generated with versions of Form Generator prior to release 6i, set to title of first window in the form that has a title. If none of the windows have titles, this property is set to the repository module's Short Name property.
Implementation Name	Filename of the captured module if the module specified in the Destination Module field is different to the filename of the form module being captured.	This property is not set if the module specified in the Destination Module field is the same as the filename of the form module being captured. If the filename is used, the .fmb extension is removed.
Language	Oracle Forms
Module Type	Default
Top Title	Title property of captured module
Layout Format	Not set unless capturing a generated navigator style form	(see below)
Description	Comment property of the form module.
Notes	If the Add Notes check box is checked, set to: Captured by the Forms Generator  by user <username> on <date> at <time>	The Add Notes check box is in the Forms Design Capture Options dialog box.
Generated navigator style forms

If the first block in a form being captured is called CG$NAVIGATOR_BLOCK, Form Generator:

•	sets the Layout Format property of the repository module to Navigator

•	ignores any items belonging to the block


Repository window properties set during design capture

Related Topics

The table below shows the Repository window definition properties set by Form Generator during design capture:

Repository Window Property	Captured from or set to:	Notes and Related Topics
Name	Name property of window
Template/Library Object	If subclassed from an object library source object, this property is set to the name of that source object (unless the source object's name starts CG$, CGSO$, or CGAI$).	If the name of the source object in an object library begins with CG$, CGSO$, or CGAI$, this property is not set.
Title	Title property of window
Scrollable	Set to Yes if either the Show Horizontal Scroll Bar or Show Vertical Scroll Bar properties of the window are set to True.
Height	Height property of window
Width	Width property of window
X Position	X Position property of window
Y Position	Y Position property of window
Description	Comments property of window
Notes	If the Add Notes check box is checked, set to: Captured by the Forms Generator  by user <username> on <date> at <time>	The Add Notes check box is in the Forms Design Capture Options dialog box.
Notes

For each block Form Generator determines which windows to capture by:

•	identifying the first item from the block displayed on a canvas

•	confirming the canvas on which that first item is displayed is assigned a window

•	using the name of that window to create a new window in the repository

If a form contains two blocks and the first items of each block are displayed on two different canvases in two different windows, Form Generator captures two windows into the repository. Any other windows in the form are ignored.

If no items for a particular block are displayed on a canvas, or if none of the canvases in a form are assigned to a window, Form Generator creates a default repository window definition and sets the following properties:

Repository Window Property	Captured from or set to:	Notes and Related Topics
Name	Name property of form module
Title	Name property of form module

If a window called ROOT_WINDOW exists in the form being captured, Form Generator captures the window regardless of whether any canvases have been assigned to it.


Repository module component properties set during design capture

Related Topics

The table below shows the repository module component properties set by Form Generator during design capture:

Repository Module Component Property	Captured from or set to:	Notes and Related Topics
Name	Name property of block	When capturing a multi-region block, Form Generator names the primary module component and its module sub-components with the name of the block followed by a number.
Template/Library Object	If subclassed from an object library source object, this property is set to the name of that source object (unless the source object's name starts CG$, CGSO$, or CGAI$).	If the name of the source object in an object library begins with CG$, CGSO$, or CGAI$, this property is not set
Placement	Set to one of New content canvas, Same content canvas, New tab canvas page, or Same tab canvas page	Form Generator determines the canvas on which the first item in each block is placed, and considers this to be the canvas on which the entire block is placed. Form Generator then sets this property to: • New content canvas or New stacked canvas for the first block on the canvas • Same content canvas or Same stacked canvas for any subsequent blocks on the canvas If all the displayed items belonging to a block are placed on the same tab canvas page, Form Generator sets this property to: • New tab canvas page, for the first block on the tab canvas page • Same tab canvas page, for any subsequent blocks on the tab canvas page
Tab Stop Scope	Set to Self	Note that items with the same X coordinate but which are captured from two different blocks will not be aligned if you generate from the captured module unless: • at least two captured items from each block had the same X coordinate • you set the Tab Stop Scope property of both captured module components to Parent
Title	Original module component's Title property or Display Title property of the repository table definition	When capturing forms generated by Form Generator 6i, set to the original module component Title property. When capturing hand-built forms or forms generated with versions of Form Generator prior to release 6i, set to Display Title property of the repository table definition (or null if a Display Title has not been defined for the table).
Rows Displayed	Number of Records Displayed property of block
Insert ?	Insert Allowed property of block
Delete ?	Delete Allowed property of block
Update ?	Update Allowed property of block
Query ?	Query Allowed property of block
Description	Comments property of block
Notes	If the Add Notes check box is checked, set to: Captured by the Forms Generator  by user <username> on <date> at <time>	The Add Notes check box is in the Forms Design Capture Options dialog box.
Can Form Generator capture blocks based on any datasource?

Form Generator can capture blocks based on tables and views (as well as control blocks, see below). However, Form Generator does not capture blocks based on procedures, subqueries or transactional triggers.

Control blocks

To capture control blocks, check the Capture Control Blocks check box on the Forms Design Capture Options dialog box - General tab.

For more information about control blocks, refer to About Oracle Forms control blocks.

Current record indicator items

If any items in a block have the Current Record Visual Attribute Group property set (or the block itself has this property set), Form Generator issues a warning during design capture.

After design capture, you might want to consider using CURREC to indicate the current record. For more information, refer to Setting the Current Record Visual Attribute Group property.

What happens if the block being captured has Record Orientation property set to Horizontal?

Form Generator does not capture a block's Record Orientation property because generated blocks always have the Record Orientation property set to Vertical.

If you capture a block that has the Record Orientation property set to Horizontal and subsequently generate the module, the generated block's Record Orientation property will be set to Vertical and items will be laid out accordingly.

Multi-region blocks

During design capture, Form Generator considers a block to be a multi-region block if items belonging to the block appear on different content or stacked canvases.

In the repository, multi-region blocks are represented as a primary module component with one or more module sub-components. The primary module component and its module sub-components have the same base table.

When capturing multi-region blocks, Form Generator:

•	captures items on the first canvas as the primary module component

•	captures items on the second and subsequent canvases as module sub-components

Form Generator does not create a module component (or sub-component) for items from a multi-region block placed on a tab canvas page. Instead, Form Generator captures those items and includes them in the previous module component or sub-component

If you are merging an Oracle Forms module with an existing repository module and items exist in a multi-region block but not in the repository module components, Form Generator adds those items to the primary module component.

Where items are grouped on stacked canvases on the same content canvas but the stacked canvases do not occupy the same area on the content canvas (i.e. the stacked canvases each have different dimensions and/or different X and Y coordinates), Form Generator captures the items on each stacked canvas as a module sub-component. If the stacked canvases do all have the same dimensions and the same X and Y coordinates, Form Generator captures the items as stacked item groups.

Capturing and updating reusable module components

The properties of existing reusable module components are never updated during design capture, and reusable module components are never deleted during design capture.

When merging the form being captured with an existing repository module, the following rules apply:

•	If a block in the form being captured does not have a corresponding specific module component in the destination module, and a corresponding reusable module component exists, include the corresponding reusable module component in the destination module.

•	If a block in the form being captured does not have a corresponding specific module component in the destination module, and no corresponding reusable module component exists, create a module component (if the block was originally generated from a reusable module component, create the module component as reusable).

•	If a block in the form being captured does have a corresponding module component in the destination module, only update the module component if it is not a reusable module component.


Repository table usage properties set during design capture

Related Topics

The table below shows the repository table usage properties set by Form Generator during design capture:

Repository Table Usage Property	Captured from or set to:	Notes and Related Topics
Table/View/ Materialized View	Query Data Source Name property of the block	Form Generator checks that the table name uniquely identifies the table within the first 21 characters (because when a nine character Generator prefix (e.g. CGRI$CHK_) is added to the table name, the resulting string must be both unique and less than 30 characters). If the table name is not unique within the first 21 characters, Form Generator issues a warning. If you will be generating a form from the captured module definition, before generation you must modify the repository definitions to make the table name unique within 21 characters. During capture, Form Generator removes any schema reference prefixed to the block's Query Data Source Name property. If capturing a lookup table usage from a query-based list of values, this property is set to the table name used in the query. Note that Form Generator only captures a lookup table usage from a query-based LOV when capturing hand-built blocks (or LOVs from forms generated with versions of Form Generator prior to release 6i).
Usage Alias	Query Data Source Name property of captured block (unless the block's Query Data Source Name contains a table alias)	If the block's Query Data Source Name property contains a table alias, the alias is used to set this property. Table aliases are specified in the block's Query Data Source Name property as follows: emptable empalias
Usage Type	Base or Lookup as appropriate	If capturing a lookup table usage from a query-based LOV, this property of the lookup table usage is set to Lookup. Note that Form Generator only captures a lookup table usage from a query-based LOV when capturing hand-built blocks (or LOVs from forms generated with versions of Form Generator prior to release 6i). If Form Generator cannot identify a base table usage and lookup table usages from an LOV's query, the table usages are captured and this property is set to Unknown.
WHERE Clause of Query	Restricted WHERE clause property of the block.	If capturing a lookup table usage from a query-based LOV, this property of the lookup table usage is set to the WHERE clause of the Record Group Query. Note that Form Generator only captures a lookup table usage from a query-based LOV when capturing hand-built blocks (or LOVs from forms generated with versions of Form Generator prior to release 6i).
Description	Comment property of the LOV when capturing a lookup table usage from a query-based LOV.	Note that Form Generator only captures a lookup table usage from a query-based LOV when capturing hand-built blocks (or LOVs from forms generated with versions of Form Generator prior to release 6i).
Notes	If the Add Notes check box is checked, set to: Captured by the Forms Generator  by user <username> on <date> at <time>	The Add Notes check box is in the Forms Design Capture Options dialog box.
ORDER BY clauses

Note that any ORDER BY clause recorded for the block is not added to the table usage. Instead, Order By Sequence properties are set for the appropriate items. Refer to Repository bound item properties set during design capture for more information.

Capturing links between base table usages

Form Generator compares the Copy From property of items in the block with foreign key definitions in the repository. Using this information, Form Generator creates appropriate links from this base table usage to any preceding base table usages.

Capturing lookup table usages from query-based LOVs

Form Generator captures lookup table usages:

•	from generated forms

•	from query-based LOVs when capturing:

−	hand-built forms with LOVs

−	LOVs from forms generated with versions of Form Generator prior to release 6i

Capturing lookup table usages from generated forms

When capturing generated forms, Form Generator creates lookup table usages providing that those constraints (either foreign key constraints or domain key constraints) joining table definitions when the form was generated still exist. Note that the constraints must not have been altered subsequently to join different table definitions.

Lookup items in the generated form are captured as bound items belonging to the lookup table usage.

Form Generator creates a lookup table usage even if the originally generated lookup items (and all references to them) have been removed from the generated form. Where a displayed lookup item has been removed from the generated form, Form Generator creates the lookup item in the Repository but sets its Displayed property to No.

Form Generator captures other items added to the generated form after generation as unbound items, regardless of whether they imply a lookup table usage.

Which constraints (i.e. foreign key constraints or domain key constraints) to use to join table usages captured from hand-built forms

When capturing hand-built forms, Form Generator creates lookup table usages from query-based LOVs. Form Generator determines which constraint to use to link the lookup table usage to the base table usage by analyzing the columns returned to the form by the LOV.

If either a domain key constraint or a foreign key constraint uses the same columns in the base table and the lookup table as the columns returned to the form by the LOV, Form Generator uses that constraint to join the lookup table usage to the base table usage.

If both a domain key constraint and a foreign key constraint use the same columns in the base table and the lookup table as the columns returned to the form by the LOV, Form Generator can select either constraint to join the lookup table usage to the base table usage. In this situation, you might want to review the captured module to make sure that the constraint you require is being used to join the table usages.

When Form Generator uses a domain constraint to link table usages, the WHERE clause of the Record Group Query property of the record group associated with the Oracle Forms LOV is included in:

•	the captured lookup table usage's WHERE Clause of Query property

•	the WHERE Clause of Query property of the base table usage in the captured repository LOV

Locating repository table definitions during design capture

To capture the usage of a table by an application during design capture (i.e. to create a table usage), a corresponding repository table definition must already exist. Form Generator uses the name of the table used by the application to identify the corresponding repository table definition, as follows:

Firstly:	Form Generator searches for a repository table definition with the same name as the table used by the application
If Repository table definition not found:	If the table used by the application has a name ending with the characters _JN (i.e. the table is a journal table), Form Generator searches for a repository table definition without the _JN suffix
If Repository table definition still not found:	Form Generator searches for a repository table definition that has a synonym with the same name as the table used by the application


Repository LOV properties set during design capture

Related Topics

The table below shows the repository LOV properties set by Form Generator during design capture:

Repository LOV Property	Captured from or set to:	Notes and Related Topics
Name	Name of Oracle Forms LOV
Short Description	Not set
Template/Library Object	If subclassed from an object library source object, this property is set to the name of that source object (unless the source object's name starts CG$, CGSO$, or CGAI$)	If the name of the source object in an object library begins with CG$, CGSO$, or CGAI$, this property is not set
Usage Sequence	Not set
Item	Item associated with the Oracle Forms LOV (if any)
Return List	Derived from the Column Mappings property of the Oracle Forms LOV	If captured LOV was originally generated, set to original value of this property.
Filter Before Display?	Filter before Display property of Oracle Forms LOV
Restriction
Used for	If captured LOV was originally generated, set to original value of this property. If captured LOV was not originally generated, set to 'Query and Data Entry'.
Additional Restriction	If captured LOV was originally generated, set to original value of this property.	If captured LOV was not originally generated, this property is not set.
Restriction Clause	Set to default.
Placement
X Position	List X Position property of associated item in the form
Y Position	List Y Position property of associated item in the form
Display
Title	Title property of Oracle Forms LOV
Layout Style	Not set
Rows Displayed	Not set
Size
Width	Width property of Oracle Forms LOV.
Height	Height property of generated Oracle Forms LOV.
Help
User/Help Text	Not set
Help Context Id Prefix	Not set
Documentation
Description	Not set
Notes	Not set
Repository LOV base table usage properties set during design capture

During design capture of an Oracle Forms LOV, Form Generator sets the following properties of the captured repository LOV base table usage as shown below:

Repository LOV base table usage property	Captured from or set to:	Notes and Related Topics
WHERE Clause of Query	If captured LOV was originally generated, set to original value of this property. If captured LOV was not originally generated, this property is not set.	Note that the conditions in the query record group's query related to foreign key validation will be included in the appropriate lookup table usage property.
Validation WHERE clause	If captured LOV was originally generated, set to original value of this property. If captured LOV was not originally generated, this property includes all conditions in the query record group's query.	Note that the conditions in the query record group's query related to foreign key validation will be included in the appropriate lookup table usage property.
Capturing LOVs based on query record groups

Form Generator captures an Oracle Forms LOV from a generated form as a repository LOV definition providing both the following conditions are true:

•	the Oracle Forms LOV is based on a query record group

•	the Oracle Forms LOV was not generated to display allowable values defined in the repository and contained in a reference code table (e.g. CG_REF_CODES)

Capturing LOVs based on static record groups

If an LOV in a form being captured is based on a static record group, Form Generator does not capture the LOV as a repository LOV definition. Instead, Form Generator:

•	determines which columns are used and what values they are given

•	determines which (if any) items the LOV returns values to

If the LOV does return a value to an item, Form Generator analyzes the captured module component to determine whether a corresponding item definition exists in the repository:

•	If a bound item definition exists, Form Generator compares the static values assigned in the record group with the allowable values held against the repository column or domain definition for that item. If there are any discrepancies, Form Generator displays a warning.

•	If an unbound item definition exists, Form Generator creates allowable values for the unbound item from each of the static values in the record group.

Capturing LOVs from hand-built blocks and from forms generated with versions of Form Generator prior to release 6i

When capturing hand-built blocks or forms generated with versions of Form Generator prior to release 6i, Form Generator captures LOVs populated by a query on a lookup table as repository LOV definitions.

If the lookup table is linked to a base table (i.e. there is a relationship between a foreign key in the base table and the primary key in the lookup table) and the Oracle Forms LOV returns values to the foreign key column(s) in the base table, Form Generator creates:

•	a lookup table usage for each table in the Record Group Query

For more information, refer to Repository table usage properties set during design capture.

•	a lookup item for each column in the Record Group Query

For more information, refer to Repository bound item properties set during design capture.

If the lookup table is not linked to a base table or if the Oracle Forms LOV does not return values to the foreign key column(s) in the base table, Form Generator captures the lookup table as an 'unknown' table usage (i.e. the table usage's Usage Type property is not set).

If the LOV returns a value to a data item (i.e. an item based on a column) in the form, Form Generator creates:

•	a displayed base table item

•	a non-displayed item in the lookup table usage (or in the unknown table usage)

If the LOV returns a value to a control item (i.e. an item not based on a column) in the form, Form Generator:

•	creates a displayed item in the lookup table usage (or in the unknown table usage) from the control item

•	sets the item's Name property to the control item's name

Capturing repository LOV definitions from generated row LOVs

When Form Generator creates an LOV in a generated form to provide row LOV functionality, Form Generator gives the LOV a name beginning CGRL$. When capturing a generated form containing an LOV with a name beginning CGRL$, Form Generator creates a repository LOV definition and gives it the same name as the module component captured from the block for which the row LOV displays records.

Note that before generating a form from the captured module definition, you must set ROWLOV to Yes. For more information about row LOVs, refer to Generating row LOVs.

Capturing repository LOV definitions from generated lookup poplist, lookup text list and lookup combo box items

A generated form can contain a lookup poplist, lookup text list or lookup combo box item generated from a repository item explicitly associated with a repository LOV definition. Note that in this case, the generated form does not contain an LOV.

When capturing a generated form containing such a lookup poplist, lookup text list or lookup combo box item, Form Generator creates a repository LOV definition and associates it with the corresponding repository item.

For more information about generated lookup poplist, lookup text list or lookup combo box items, refer to About generated lookup poplist, lookup text list and lookup combo box items.

Capturing and updating reusable LOVs

The properties of existing reusable LOV components are never updated during design capture, and reusable LOV components are never deleted during design capture..

When merging the form being captured with an existing repository module, the following rules apply:

•	If an LOV in the form being captured does not have a corresponding specific LOV component in the destination module, and a corresponding reusable LOV component exists, include the corresponding reusable LOV component in the destination module.

•	If an LOV in the form being captured does not have a corresponding specific LOV component in the destination module, and no corresponding reusable LOV component exists, create a new LOV component (if the LOV in the form was originally generated from a reusable LOV component, create the LOV component as reusable).

•	If an LOV in the form being captured does have a corresponding LOV component in the destination module, only update the LOV component if it is not a reusable LOV component.


Repository bound item properties set during design capture

Related Topics

The table below shows the repository bound item properties set by Form Generator during design capture:

Repository Item Property	Captured from or set to:	Notes and Related Topics
Column	Database column name property of the item.	If the Database column name property is not set, Form Generator uses the Name property of the item in the form.
Name	Name property of item.
Template/Library Object	If subclassed from an object library source object, this property is set to the name of that source object (unless the source object's name starts CG$, CGSO$, or CGAI$).	If the name of the source object in an object library begins with CG$, CGSO$, or CGAI$, this property is not set
Insert ?	Insert Allowed property of the item.	Set to No if Item Type is Display Item.
Update ?	Update Allowed property of the item.	Set to No if Item Type is Display Item.
Query ?	Query Allowed property of the item	Set to No if Item Type is Display Item.
Display ?	Visible property of the item	If a lookup table usage is being captured from a query-based LOV and the LOV returns a value to this item, this property is set to Yes (regardless of the setting of the item's Visible property). Note that Form Generator only captures a lookup table usage from a query-based LOV when capturing hand-built blocks (or LOVs from forms generated with versions of Form Generator prior to release 6i).
Prompt	Prompt property of the item.
Display Type	Item Type property of the item.
Show Meaning	(see below)	(see below)
Width	Width property of the item.	(see below)
Height	Height property of the item.
Alignment	Justification property of the item.	If the item's Justification property is set to Left, Right, or Center, the repository item's Alignment property is set to the same.  If the item's Justification property is set to Null, the repository item's Alignment property is set to Left. If the item's Justification property is set to Start, the repository item's Alignment property is set to Left unless the item's Reading Order is set to Right to Left (in which case the repository item's Alignment property is set to Right). If the item's Justification property is set to End, the repository item's Alignment property is set to Right unless the item's Reading Order is set to Right to Left (in which case the repository item's Alignment property is set to Left).
Format Mask	Format Mask property of the item.
Item Group	Set to the name of the item group to which the item belongs (if applicable).	For more information, refer to Repository item group properties set during design capture.
Start Tab Stop	Set to X-coordinate of start of item if the start of any other item or item group in the same block has the same X-coordinate	(see below)
End Tab Stop	Set to X-coordinate of end of item if the end of any other item or item group in the same block has the same X-coordinate	(see below)
Align prompt	Set to Yes if two conditions are both met	Set to Yes if both the following conditions are true: • another item captured from the same block has the same Start Tab Stop and/or End Tab Stop as this item • the other item in the form has its prompt starting at the same X coordinate as this item
Datatype	Data Type property of the item.
Default Value	Initial Value property of the item.
Optional ?	Required property of the item.	Set to Yes if Item Type is Display Item.
Order By Sequence	Set to reflect the position of the column within the block's ORDER BY statement (if one exists).
Sort Order	Set to Ascending, unless the block has an ORDER BY statement containing an order direction clause.	If the block has an ORDER BY statement containing an order direction clause, this property is set to the direction specified.
Hint	Hint property of the item.
Notes	If the Add Notes check box is checked, set to: Captured by the Forms Generator  by user <username> on <date> at <time>	The Add Notes check box is in the Forms Design Capture Options dialog box.
Setting the Show Meaning property during design capture

If the item in the form is a radio group, Form Generator sets the captured item's Display Type property to Radio Group and the Show Meaning property as follows:

if	both the Label and the Value properties for all buttons in the radio group are identical, Form Generator does not set the captured item's Show Meaning property
otherwise, if	the Label properties for all buttons in the radio group are single words and less than six characters, Form Generator sets the captured item's Show Meaning property to Abbreviation only
otherwise	Form Generator sets the captured item's Show Meaning property to Meaning only

If the item in the form is a list item (either pop list or text list), Form Generator sets the captured item's Display Type property to Poplist or Text List as appropriate and sets the Show Meaning property as follows:

if	the List Element and List Item Value properties are identical for every entry in the list, Form Generator does not set the captured item's Show Meaning property
otherwise, if	the List Item Value properties of all entries in the list are single words and less than six characters, Form Generator sets the captured item's Show Meaning property to Abbreviation only
otherwise	Form Generator sets the captured item's Show Meaning property to Meaning only
Capturing item widths

When capturing certain text items (dates, numbers, and items displayed in uppercase), Form Generator uses ITMBIF to determine whether to reduce the width of the captured repository item by the amount specified by TXTSCA. For both ITMBIF and TXTSCA, Form Generator uses the container level setting of the preference.

Capturing allowable values for bound items

During design capture of the following as bound items, Form Generator compares allowable values recorded for the repository column definition (or associated domain) with the values indicated below.

Display type of captured bound item	Allowable values of repository column definition compared with:
Pop list	List Item Value properties for each entry in the list
Text list	List Item Value properties for each entry in the list
Combo box	List Item Value properties for each entry in the list
Radio group	Radio Button Value properties for radio buttons in group

If there are any differences between allowable values recorded for the repository column definition (or associated domain) and the above, Form Generator displays a warning.

Capturing lookup items

If the item being captured is a lookup item, Form Generator sets the following properties:

Repository Item Property	Captured from or set to:	Notes and Related Topics
Name	Database column name used in the query.
Display ?	Set to Yes if a lookup table usage is being captured from a query-based LOV and the LOV returns a value to this item	This property is not set from the Visible property of the item being captured. Note that Form Generator only captures a lookup table usage from a query-based LOV when capturing hand-built blocks (or LOVs from forms generated with versions of Form Generator prior to release 6i).
Query ?	Set to Yes.

Note that Form Generator captures lookup poplist and text list items from generated forms, but not from forms you have built yourself using Form Builder.

For more information about capturing lookup tables, refer to Repository table usage properties set during design capture.

For more information about lookup items in general, refer to Lookup item generation.

Capturing mirror items

If a mirror item (i.e. an item with the Synchronize with Item property set) is identified during design capture and the mirror item is based on a data item in the form (i.e. an item that corresponds to a database column), Form Generator captures the mirror item as a bound item.

For example, a form contains a block (Employees) with three items:

•	ename0 (a data bound item based on the column ename)

•	ename1 (a mirror item based on ename0)

•	ename2 (a mirror item based on ename1)

When capturing this form into the repository, Form Generator:

•	analyzes ename2 and determines it is based on ename1

•	analyzes ename1 and determines it is based on ename0

•	analyzes ename0 (the original item) and determines it is based on the column ename

Because ename0 is based on a column, Form Generator captures:

•	ename0 into the repository as a bound item based on ename

•	ename1 into the repository as a bound item based on ename

•	ename2 into the repository as an unbound item of type SQL Expression with its Derivation Text property set to Employees.ename1

Form Generator does not capture ename2 as a bound item because ename2 is not based on a data item in the form (ename1 is a mirror item).

Capturing check box items

If the bound item being captured is a check box item, Form Generator compares the Value when Checked/Value when Unchecked properties of the check box with the allowable values recorded for the column (or associated domain) definition in the repository. If there are any differences, Form Generator displays a warning.

Capturing relative tab stops

Note that Form Generator sets the Tab Stop Scope property of captured container objects as follows:

•	the Tab Stop Scope property of captured item groups is always set to Parent

•	the Tab Stop Scope property of captured module components is always set to Self

If the captured form is subsequently generated, captured items from the same block (whether inside or outside item groups) with the same X coordinate will be aligned. However, items with the same X coordinate but which are captured from two different blocks will not be aligned unless:

•	at least two captured items from each block had the same X coordinate

•	you set the Tab Stop Scope property of both module components to Parent


Repository unbound item properties set during design capture

Related Topics

The table below shows the repository unbound item properties set by Form Generator during design capture:

Repository Item Property	Captured from or set to:	Notes and Related Topics
Name	Name property of item.
Template/Library Object	If subclassed from an object library source object, this property is set to the name of that source object (unless the source object's name starts CG$, CGSO$, or CGAI$).	If the name of the source object in an object library begins with CG$, CGSO$, or CGAI$, this property is not set
Insert ?	Insert Allowed property of the item.	Set to No if: • Item Type is Chart, Push Button, or Display Item • the item is a calculated item
Update ?	Update Allowed property of the item.	Set to No if: • Item Type is Chart, Push Button, or Display Item • the item is  a calculated item
Query ?	Query Allowed property of the item.	Set to No if: • Item Type is Chart, Push Button, or Display Item • the item is a calculated item
Display ?	Visible property of the item.
Prompt	Prompt property of the item.
Display Type	Item Type property of the item.
Show Meaning	(see below)	(see below)
Width	Width property of the item.	(see below)
Height	Height property of the item.
Alignment	Justification property of the item.	If the item's Justification property is set to Left, Right, or Center, the repository item's Alignment property is set to the same.  If the item's Justification property is set to Null, the repository item's Alignment property is set to Left. If the item's Justification property is set to Start, the repository item's Alignment property is set to Left unless the item's Reading Order is set to Right to Left (in which case the repository item's Alignment property is set to Right). If the item's Justification property is set to End, the repository item's Alignment property is set to Right unless the item's Reading Order is set to Right to Left (in which case the repository item's Alignment property is set to Left).
Format Mask	Format Mask property of the item.
Item Group	Set to the name of the item group to which the item belongs (if applicable).	For more information, refer to Repository item group properties set during design capture.
Start Tab Stop	Set to X-coordinate of start of item if the start of any other item or item group in the same block has the same X-coordinate	(see below)
End Tab Stop	Set to X-coordinate of end of item if the end of any other item or item group in the same block has the same X-coordinate	(see below)
Align prompt	Set to Yes if two conditions are both met	Set to Yes if both the following conditions are true: • another item captured from the same block has the same Start Tab Stop and/or End Tab Stop as this item • the other item in the form has its prompt starting at the same X coordinate as this item
Order By Sequence	Not captured.
Sort Order	Not captured.
Hint	Hint property of the item.
Notes	If the Add Notes check box is checked, set to: Captured by the Forms Generator  by user <username> on <date> at <time>	The Add Notes check box is in the Forms Design Capture Options dialog box.
Setting the Show Meaning property during design capture

If the item in the form is a radio group, Form Generator sets the captured item's Display Type property to Radio Group and the Show Meaning property as follows:

if	both the Label and the Value properties for all buttons in the radio group are identical, Form Generator does not set the captured item's Show Meaning property
otherwise, if	the Label properties for all buttons in the radio group are single words and less than six characters, Form Generator sets the captured item's Show Meaning property to Abbreviation only
otherwise	Form Generator sets the captured item's Show Meaning property to Meaning only

If the item in the form is a list item (both pop list and text list), Form Generator sets the captured item's Display Type property to Poplist or Text List as appropriate and sets the Show Meaning property as follows:

if	the List Element and List Item Value properties are identical for every entry in the list, Form Generator does not set the captured item's Show Meaning property
otherwise, if	the List Item Value properties of all entries in the list are single words and less than six characters, Form Generator sets the captured item's Show Meaning property to Abbreviation only
otherwise	Form Generator sets the captured item's Show Meaning property to Meaning only
Capturing item widths

When capturing certain text items (dates, numbers, and items displayed in uppercase), Form Generator uses ITMBIF to determine whether to reduce the width of the captured repository item by the amount specified by TXTSCA. For both ITMBIF and TXTSCA, Form Generator uses the container level setting of the preference.

Capturing allowable values for unbound items

During design capture of the following as unbound items, Form Generator captures allowable values as shown:

Display type of captured unbound item	Allowable values captured from
Pop list	List Item Value properties for each entry in the list
Text list	List Item Value properties for each entry in the list
Combo box	List Item Value properties for each entry in the list
Radio group	Radio Button Value properties for radio buttons in group
Capturing summary items as unbound items of type Computed

Regardless of whether the form being captured was originally generated, Form Generator sets the following properties of an unbound item captured from a summary item:

Repository Item Property	Captured from or set to:	Notes and Related Topics
Unbound Type	Set to Computed.
Derivation Text	Set to: <summary_function>(<block>.<item>)

If the form being captured was originally generated by Form Generator, a summary item might have been generated into a control block rather than into a block generated from the module component in which it was defined in the repository. If this was the case, during generation Form Generator will have added the string CG$COMPUTED_DES2K_MC_ITEM_<table_name>_<item_name> to the generated summary item's Comment property. During design capture, Form Generator uses this comment to create the item in the correct module component.

Capturing formula items as unbound items of type Computed

If the form being captured was originally generated, Form Generator might have generated an unbound item of type Computed as a formula item. This situation occurs when the item summarizes an item in a different block (for more information, refer to Generating summary items).

Normally Form Generator only captures summary items as unbound items of type Computed. However, in this special case, Form Generator:

•	captures the formula item as an unbound item

•	sets the captured unbound item's Unbound Type to Computed

•	sets the captured unbound item's Derivation Text property to the Formula property of the generated item

Capturing formula items as unbound items of type SQL Expression, Client Side function, or Server Side Function

If the form being captured was originally generated: Form Generator captures a formula item generated from an unbound item of type SQL Expression, Client Side Function, or Server Side Function and sets the following properties of the unbound item:

Repository Item Property	Captured from or set to:	Notes and Related Topics
Unbound Type	Set to SQL Expression, Client Side Function, or Server Side Function	Set to the same value as the unbound item from which the formula item was originally generated.
Derivation Text	Formula property of the item.	Any colons in :block.item references are removed.

If the form being captured was not originally generated: Form Generator captures a formula item as an unbound item and attempts to set the Unbound Type property correctly by parsing the formula item's Formula property.

Note that if Form Generator cannot identify the captured item as being of type SQL Expression or Server Side Function, the captured item's Unbound Type property is set to Client Side Function.

Capturing invalid summary items and formula items as unbound items of type Custom

If Form Generator identifies the summary item being captured as invalid (i.e. the summary function, summarized block or summarized item has not been set in the form), Form Generator:

•	captures the item as an unbound item

•	sets the unbound item's Unbound Type property to Custom

If Form Generator identifies the formula item being captured as invalid (i.e. the item's Formula property has not been set in the form), Form Generator:

•	captures the item as an unbound item

•	sets the unbound item's Unbound Type property to Custom

Capturing descriptive flexfield items, current record indicator items and drilldown current record indicator items as unbound items of type Custom

If the form being captured was originally generated: Form Generator captures an item generated from an unbound item of type Custom and with its Display Type property set to one of Descriptive Flexfield, Current Record, or Drilldown Current Record.

repository Item Property	Captured from or set to:	Notes and Related Topics
Unbound Type	Set to Custom
Display Type	One of Descriptive Flexfield, Current Record, or Drilldown Current Record	Set to the same value as the unbound item from which the formula item was originally generated.

If the form being captured was not originally generated: If the form contains a descriptive flexfield item, a current record indicator item, or a drilldown current record indicator item, Form Generator:

•	captures the item as an unbound item

•	sets the unbound item's Unbound Type property to Custom

•	sets the unbound item's Display Type property according to the Oracle Forms item's Item Type property (e.g. Text Item)

•	captures trigger code associated with the Oracle Forms item as user-defined application logic for the captured item (providing you are capturing both the module design and its associated application logic)

Note that if you subsequently set the captured item's Display Type property to describe the item's functionality (i.e. by setting the Display Type property to one of Descriptive Flexfield, Current Record, or Drilldown Current Record), Form Generator will generate the item accordingly. If you do change the item's Display Type, it is your responsibility to remove the (now superfluous) captured user-defined application logic.

Capturing mirror items

If a mirror item (i.e. an item with the Synchronize with Item property set) is identified during design capture and the mirror item is based on a control item in the form (i.e. an item that does not correspond to a database column), Form Generator captures the mirror item as an unbound item.

For example, a form contains a block (Employees) with three items:

•	total_remuneration0 (a control item not based on a column that displays the result of a calculation)

•	total_remuneration1 (a mirror item based on total_remuneration0)

•	total_remuneration2 (a mirror item based on total_remuneration1)

When capturing this form into the repository, Form Generator:

•	analyzes total_remuneration2 and determines it is based on total_remuneration1

•	analyzes total_remuneration1 and determines it is based on total_remuneration0

•	analyzes total_remuneration0 (the original item) and determines it is not based on a column

Because total_remuneration0 is not based on a column, Form Generator captures:

•	total_remuneration0 into the repository as an unbound item of an appropriate type and with its Derivation Text property set to the Oracle Forms item's Formula property

•	total_remuneration1 into the repository as an unbound item of type SQL Expression with its Derivation Text property set to Employees.total_remuneration0

•	total_remuneration2 into the repository as an unbound item of type SQL Expression with its Derivation Text property set to Employees.total_remuneration1

Capturing check box items

If the unbound item being captured is a check box item, Form Generator captures the Value when Checked property and the Value when Unchecked property as Allowable Values for the repository item definition.

Capturing generated button items

If the form being captured was originally generated by Form Generator, a button item might have been generated from a repository unbound item definition. If this is the case, Form Generator captures the unbound item's PL/SQL Block Text property from the CGBG$WHEN_BUTTON_PRESSED code group generated for the button item's WHEN-BUTTON-PRESSED trigger, providing both the following conditions are true:

•	you have not modified the generated CGBG$WHEN_BUTTON_PRESSED code group

•	you did not enter user-defined application logic to override the generated CGBG$WHEN-BUTTON-PRESSED code group

Capturing relative tab stops

Note that Form Generator sets the Tab Stop Scope property of captured container objects as follows:

•	the Tab Stop Scope property of captured item groups is always set to Parent

•	the Tab Stop Scope property of captured module components is always set to Self

If the captured form is subsequently generated, captured items from the same block (whether inside or outside item groups) with the same X coordinate will be aligned. However, items with the same X coordinate but which are captured from two different blocks will not be aligned unless:

•	at least two captured items from each block had the same X coordinate

•	you set the Tab Stop Scope property of both module components to Parent


Repository item group properties set during design capture

Related Topics

Repository item group properties captured from items grouped together on the same canvas

Form Generator can capture those items grouped together on the same canvas as item groups. When doing so, Form Generator sets the following properties:

Repository Item Group Property	Captured from or set to:	Notes and Related Topics
Name	If generated item group, Name property of original repository item group.	If non-generated item group, derived from the Prompt property captured for the item group (see below).
Parent item group	If generated item group, set to Parent Item Group property of original repository item group.	If non-generated item group and Form Generator determines this item group in the form was nested within another item group, set to the name of that item group
Prompt	If generated item group, Prompt property of original repository item group.	If non-generated item group, Form Generator determines a prompt from graphic text or frame title associated with the items being captured as an item group
Layout Format	If generated item group, Layout Format property of original repository item group.	If non-generated item group, set to Standard.
Stacked ?	Set to No.	Set to No.
Tab Stop Scope	Set to Parent
Start Tab Stop	Set to X-coordinate of left-hand edge of item group if the start of any other item or item group in the same block has the same X-coordinate
End Tab Stop	Set to X-coordinate of right-hand edge of item group if the end any other item or item group in the same block has the same X-coordinate
Notes	If the Add Notes check box is checked, set to: Captured by the Forms Generator  by user <username> on <date> at <time>	The Add Notes check box is in the Forms Design Capture Options dialog box.
Repository stacked item group properties captured from items grouped on stacked canvases

Form Generator can capture those items grouped together on stacked canvases as stacked item groups (an alternative implementation of native tab canvases that is sometimes called 'alternate regions'). To capture items on stacked canvases as stacked item groups, the stacked canvases must occupy the same area on the same content canvas (i.e. the stacked canvases must have the same dimensions and the same X and Y coordinates)

When capturing stacked item groups, Form Generator sets the following properties:

Repository Item Group Property	Captured from or set to:	Notes and Related Topics
Name	If generated item group, Name property of original repository item group.	If non-generated item group, derived from the Name property of the stacked canvas.
Prompt	Label property of the tab page on which the item group was displayed.
Layout Format	If generated item group, Layout Format property of original repository item group.	If non-generated item group, set to Standard.
Stacked ?	Set to Yes.
Tab Stop Scope	Set to Parent
Notes	If the Add Notes check box is checked, set to: Captured by the Forms Generator  by user <username> on <date> at <time>	The Add Notes check box is in the Forms Design Capture Options dialog box.

To generate item groups captured from alternate regions as alternate regions in the generated form, set  CANNTC to No.

Note that where items are grouped on stacked canvases on the same content canvas but the stacked canvases do not occupy the same area on the content canvas (i.e. the stacked canvases each have different dimensions and/or different X and Y coordinates), Form Generator captures the items on each stacked canvas as a module sub-component.

Repository stacked item group properties captured from items grouped on tab canvas pages

Form Generator can capture those items grouped together on tab pages as item groups. When doing so, Form Generator sets the following properties:

Repository Item Group Property	Captured from or set to:	Notes and Related Topics
Name	Name property of the tab page on which the item group was displayed.
Prompt	Label property of the tab page on which the item group was displayed.
Template/Library Object	If subclassed from an object library source object, this property is set to the name of that source object (unless the source object's name starts CG$, CGSO$, or CGAI$).	If the name of the source object in an object library begins with CG$, CGSO$, or CGAI$, this property is not set
Stacked ?	Set to Yes.
Tab Stop Scope	Set to Parent
Notes	If the Add Notes check box is checked, set to: Captured by the Forms Generator  by user <username> on <date> at <time>	The Add Notes check box is in the Forms Design Capture Options dialog box.
Example of capturing stacked item groups from items grouped on tab canvas pages

For example, a form might have a block containing (among other things) a tab canvas with two tab pages displaying the following items and properties:

Item name	Displayed on Tab Page	Tab Page Label
ename	PersonDetails	'Person Details'
hiredate	PersonDetails	'Person Details'
salary	SalaryDetails	'Salary Details'
commission	SalaryDetails	'Salary Details'

During design capture, Form Generator creates two repository item groups with the following properties:

Item Group Name	Item Group Prompt	Item Group Stacked Property set to:
PersonDetails	Person Details	Yes
SalaryDetails	Salary Details	Yes

Form Generator sets the Item Group property of the captured items to the appropriate item group.


Repository module argument properties set during design capture

Related Topics

The table below shows the repository module argument properties set by Form Generator during design capture:

Repository Argument Property	Captured from or set to:	Notes and Related Topics
Name	Name property of the parameter.
Datatype	Parameter Data Type property of the parameter.
Default	Parameter Initial Value property of the parameter.
Description	Comments property of the parameter.
Notes	If the Add Notes check box is checked, set to: Captured by the Forms Generator  by user <username> on <date> at <time>	The Add Notes check box is in the Forms Design Capture Options dialog box.
Notes

Form Generator captures each parameter in the form as a repository module argument definition.


How Form Generator captures buttons during design capture

Related Topics

Form Generator captures a Push Button item from an Oracle Forms form either as a custom action item or as an unbound item of type Button, depending on the block containing the item.

If the button is subclassed from an object library source object, the repository item's Template/Library Object property is set to the name of that source object (unless the source object's name starts CG$, CGSO$, or CGAI$).

How Form Generator captures buttons from generated button blocks

Generated button blocks are control blocks created by Form Generator to contain custom action items defined for specified windows.

During generation of modules where custom action items have been defined for a window, Form Generator creates an additional block below each generated block in the window. Each block is called CGNV$<window_name>_<unique_number> and contains all the custom action items defined for the window.

During design capture, Form Generator captures any items of type Push Button from blocks called CGNV$<window_name>_<unique_number> as custom action items for the window identified by the  <window_name> portion of the item's name.

Note that because a generated button block is a control block, to capture it you must select the Capture Control Blocks checkbox on the Forms Design Capture Options dialog box - General tab.

How Form Generator captures buttons from other blocks

Form Generator captures items of type Push Button from other blocks (i.e. blocks that are not generated button blocks) as follows:

if	only one record and only one item are displayed in the block, Form Generator recovers the item as a custom action item for the module component captured from the block
otherwise	Form Generator recovers the item as an unbound item of type Button that belongs to the module component captured from the block


How Form Generator captures library attachments during design capture

Related Topics

If the form being captured contains library attachments, Form Generator captures the existence of the attachments as module network links providing the following conditions are met:

•	a repository library module with the same name as the library attachment already exists

•	the library attachment's Comment property does not contain the string CG$IGNORE_ON_DESIGN_CAPTURE

•	you have checked the Capture Library Links checkbox on the Forms Design Capture Options dialog box

If any of these conditions are not met, Form Generator does not capture the library attachment.

Capturing generated module libraries

You might have added hand-coded program units or modified generated program units in a generated module library (i.e. because PGULIB was set to Yes when a form was generated) attached to the generated form. You can use Form Generator to capture the program units from the generated module library and include them as named routines for the repository module from which the form was generated. In other words, you can capture code from the generated module library but Form Generator does not capture the generated module library itself as a repository module.

Note that if a program unit with the same name appears in both the generated form and the generated module library, Form Generator captures the program unit from the form.

For more information about capturing generated module libraries, refer to Capturing application logic from Oracle Forms applications


Ignoring objects during design capture

Related Topics

Why ignore objects during design capture?

When you capture a form into the repository, it is possible that the form will contain objects that you do not want to capture. Typically, you do not want to capture objects into a repository module that Form Generator will source from a template form or object library if you subsequently generate the captured module.

In the case of generated forms, objects to ignore during design capture might include:

•	objects from a template form (both generator objects and user objects)

•	objects from an object library that belong to objects subclassed or copied into the generated form

In the case of hand-built forms, objects to ignore during design capture might include objects appearing in multiple forms that you intend to include in a template form for future generation.

Which objects are always ignored during design capture?

During design capture, Form Generator always ignores the following objects in a form:

•	objects with names beginning CG$, including generator objects from the template form

•	objects with the string CG$IGNORE_ON_DESIGN_CAPTURE in their Comment property, including user objects from the template form (for a full list of these objects, refer to What Form Generator does not capture)

•	objects from an object library that belong to objects subclassed or copied into the generated form

If you are capturing a form that was originally generated, there will probably be a number of such objects.

Ignoring other objects during design capture

In addition to the objects that are always ignored during design capture, there are two ways to specify other objects to be ignored:

•	you can include the string CG$IGNORE_ON_DESIGN_CAPTURE in the Comment property of objects you do not want captured

•	you can include the objects in a 'capture filter form'

What is a capture filter form?

A capture filter form contains objects of the same name and type as objects that you do not want to be captured. During design capture, Form Generator compares the form being captured with the capture filter form. Any objects in the form being captured that have the same name and type as objects in the capture filter form are ignored.

If you are capturing hand-built forms containing objects that you intend to place in a template form for future generation, you could use the template form as the capture filter form.

Some objects can only exist in a form as children of parent objects. For example, an item can only exist as a child of its parent block. If you want to use a capture filter form to ignore a child object, you have to create a suitable parent object with the same name as the parent object in the form being captured. However, you might want to capture the parent object whilst ignoring the child object. To capture the parent object whilst ignoring the child object, add the following string  to the Comment property of the parent object in the capture filter form:

CG$INCLUDE_ON_FILTER

To create a capture filter form:

1.	Create a form using Form Builder.

2.	Create objects in the form of the same type and with the same name as the objects you want Form Generator to ignore during design capture.

3.	Save the form.

How to specify a capture filter form for use during design capture:

1.	Select Generate→Capture Design of→Form to display the Capture Form Design dialog box.

2.	Specify the form you want to capture, together with other settings as appropriate.  How

3.	In the Capture Filter - Form Name field, specify the name and optionally the path of the capture filter form.

The value in the Capture Filter - Form Name field defaults to the current setting of SCTFMB. To set options when using a capture filter form held in a database, use the Forms Design Capture Options dialog box - Capture Filter tab.

4.	When you have specified the options you require, click the Start button on the Capture Form Design dialog box to begin the design capture process.


What Form Generator does not capture

Related Topics

The table below shows the information that Form Generator does not capture into the repository from an existing form:

Not Captured	Comment
data blocks based on procedures, subqueries or transactional triggers	Not captured.
blocks with names that start with 'CG$'	Not captured.
items with names that start with 'CG$'	Not captured.
graphic objects/text	Not captured.
control block items displayed on toolbar canvases	Not captured because the icon bitmaps will not be available during any subsequent generations of the captured module. The control block to which the items belong will be captured.
global variables	Not captured.
module network	Form Generator does not determine which modules a form may call and does not capture calls to user exits, forms or HOST commands.
menu modules	Not captured.
forms built with versions of Oracle Forms earlier than Oracle Forms 4.0	To capture a form developed with versions of Oracle Forms earlier than Oracle Forms 4.0 (i.e. SQL*Forms 3.0, 2.3 or 2.0), you must first upgrade the form. For more information about upgrading forms, refer to the Oracle Forms help system.
objects that include the string CG$IGNORE_ON_DESIGN_ CAPTURE in the Comment property (such objects might include blocks, items, windows, LOVs, parameters, module-level triggers, module-level program units, block-level triggers, item-level triggers, library attachments)	This string instructs Form Generator not to capture the object during design capture. Do not remove this comment unless you want the object captured into the repository. Form Generator includes the string CG$IGNORE_ON_DESIGN_CAPTURE in the Comment property of user objects copied from the template. Form Generator also adds this string to the Comment property of items copied or subclassed from items in object library blocks (for more information, refer to Items copied or subclassed from items in object library blocks)
objects belonging to objects subclassed or copied into a generated form from an object library	For example, items in object library blocks copied or subclassed into the form are not captured (for more information, refer to Items copied or subclassed from items in object library blocks).
objects contained in a capture filter form	For more information, refer to Ignoring objects during design capture.


Using templates for form and menu generation

Using Templates for form generation

Using Templates for menu generation


Using templates for form generation

About template forms

Creating template forms

Specifying template forms

Specifying the location of template forms

Standard template forms

Release 1.x style template functionality superseded by object library support


About template forms

Related Topics

What is a template form in Oracle Designer?

A template form is an existing form Form Generator uses during the generation process. Template forms can be part of your strategy to ensure a consistent look and feel for generated forms created at different times and by different members of a development team.

Typically, you use a template form to define:

•	form-level properties

•	canvases, blocks and items (collectively referred to as user objects) that you want to appear in a number of generated forms

Form Generator copies user objects from a template form into the generated form without modification. Form Generator determines whether an object is a user object on the basis of the object’s name. Provided an object's name does not start with the prefix CG$, Form Generator considers the object to be a user object.

Form Generator includes the string CG$IGNORE_ON_DESIGN_CAPTURE in the comment property of user objects. This comment instructs Form Generator not to capture the object during design capture. Do not remove this comment unless you want the object captured into the repository.

For more information about user objects, refer to:

•	User windows from the template and generated forms

•	User canvases from the template and generated forms

•	User blocks from the template and generated form

•	User items from the template and generated forms

Shipped template forms

Form Generator is shipped with a number of template forms. You can either use these templates as supplied or use Form Builder to customize them to meet your own requirements. If necessary, you can create your own template forms.

Template forms and earlier versions of Oracle Designer

In versions of Oracle Designer prior to Release 2, template forms could contain the following in addition to user objects

•	Generator objects, to set properties of generated objects

•	CG$ template button items, providing default Oracle Forms functionality

•	Generator named visual attributes (NVAs)

Much of the above functionality has been superseded in Oracle Designer release 2 onwards by Form Generator's support for copying and subclassing objects from object libraries. It is likely that the functionality superseded by object library support will be removed in future releases. Consequently, we strongly recommend you use objects in object libraries to set properties of generated objects.

However, to ensure backwards compatibility, in Oracle Designer release 2 onwards you can continue to use objects in a template form to define properties of generated objects.


Creating template forms

Related Topics

To create a template form:

1.	Use Form Builder either to copy one of the standard template forms shipped with Form Generator or to create a new form.

Note:	We strongly recommend you do not modify a standard template directly. Instead, always take a copy of a standard template and modify the copy.

2.	Define any form-level properties you want generated forms to have as form-level properties of the template form.

3.	Include in the template form the user objects you want to appear in all forms generated with the template.

4.	Save the template form.

To find out how to specify Form Generator is to use the template form you have created, refer to Specifying template forms.


 Specifying template forms

Related Topics

To specify the template form Form Generator is to use during form generation:

1.	Use the Template Name field on the Generate Form dialog to specify the name of the template form module (in the format my_form.fmb) to use during generation.

The default value in this field is the module currently specified by STFFMB.

If you change the name in the field, the name you enter is used instead of STFFMB. To restore the entry in the Template Name field to the current value of STFFMB, click the Reset button.

If the template form is stored as a file in the filesystem, you can specify a path in the Template Name field. If you do not specify a path to locate the file in the filesystem, use the Dependencies tab of the Form Generator Options dialog box to specify a path for the template.

If the template form is stored as a file in the repository, Form Generator ignores any path specified in the Template Name field or by STFFMB.

2.	Use the Dependencies tab of the Form Generator Options dialog box to specify whether the template form is a file in the filesystem or database, or a file in the repository.

For more information about how to specify the location of the template form, refer to Specifying the location of template forms.


 Specifying the location of template forms

Related Topics

The way to specify the location of the template form depends on how and where the form module is stored.

If the template form is stored as a file in the repository:

1.	On the Dependencies tab of the Form Generator Options dialog box, select the Repository option.

2.	In the Repository Folder field on the Dependencies tab of the Form Generator Options dialog box, specify the repository folders to search for the template form .

Note that if the template form is stored as a file in the repository, Form Generator ignores any path specified in the Template Name field on the Generate Form dialog or by STFFMB.

If the template form is stored as a file in the filesystem:

1.	On the Dependencies tab of the Form Generator Options dialog box, select the File or Database option.

2.	If the template form is not in the current working directory, specify the location of the template form in one of the following ways:

•	Include the full path to the template form in the Template Name field on the Generate Form dialog box.

•	On the Dependencies tab of the Form Generator Options dialog box, either type a path in the Path field (use a semi-colon to separate it from any existing entries), or use the Browse button to add a path.

If you do not specify a path in the Template Name field or the template form is not in the path you specify in the field, Form Generator first searches for the specified template form in the current working directory. If the template form is not in the current working directory, Form Generator searches in the locations specified in the Path field (working from left to right) until it finds the specified template form.

3.	On the Standards tab of the Form Generator Options dialog box, set Form Template Location to File.

If the template form is stored on the database on which the repository is installed:

1.	On the Dependencies tab of the Form Generator Options dialog box, select the File or Database option.

2.	On the Standards tab of the Form Generator Options dialog box, set Form Template Location to Local Database.

If the template form is stored on a database other than the database on which the repository is installed:

1.	On the Dependencies tab of the Form Generator Options dialog box, select the File or Database option.

2.	On the Standards tab of the Form Generator Options dialog box, set Form Template Location to Other Database.

3.	Specify a command to extract the template form from the database in the Command field.

4.	Specify the full connect string (in the format username/password@database) in the Connect String field.

Notes

If the template form is held on a database and you do not own the module, set STFOWN to specify the owner.

If the template form references database objects and these objects are used during generation, they must be stored in the current database (i.e., the database containing the current repository user).


Standard template forms

Related Topics

About standard template forms

About the ofgwebt.fmb standard template form

About the ofgpc1t.fmb standard template form

About the ofgpc2t.fmb standard template form

Ways to customize the standard template forms

Other templates and .fmb files shipped with Form Generator


About standard template forms

Related Topics

What are standard template forms?

Standard template forms is the term used to refer to template forms that are shipped with Oracle Designer. The standard template forms are ready to use as templates, or they can be copied and the copies customized and extended.

The .FMB files containing the standard template forms are in <PATH>\cgenf61\admin, where <PATH> is the path into which the Oracle Designer products have been installed.

Note:	We strongly recommend you do not modify a standard template form directly. Instead, always take a copy of a standard template and modify the copy.

The standard template forms shipped with Oracle Designer

Oracle Designer is supplied with the following standard template forms:

Template	Notes
ofgwebt.fmb	For a WebForms three tier environment
ofgpc1t.fmb	For a Microsoft Windows client/server environment.
ofgpc2t.fmb	For a Microsoft Windows client/server environment.

The main features of the ofgwebt.fmb standard template are:

•	use of real coordinates

•	the setting of character cell dimensions

The main features of the ofgpc1t.fmb and ofgpc2t.fmb standard templates are:

•	a toolbar with iconic buttons and tool tips

•	use of a CG$FFn object together with navigation buttons

•	visual attributes for the Microsoft Windows environment

•	code to set the application title bar

•	use of real coordinates

Other templates shipped with Form Generator

In addition to the standard templates described above, Form Generator is also shipped with other templates and .FMB files. For more information about these, refer to Other templates and .FMB files shipped with Form Generator.


About the ofgwebt.fmb standard template form

Related Topics

The ofgwebt.fmb template is a template form containing the minimum information you need in a template to generate a form as a WebForms application.

The ofgwebt.fmb template simply specifies the use of real coordinates and sets character cell sizes.

For more information about generating WebForms applications, refer to WebForms application generation.


About the ofgpc1t.fmb standard template form

Related Topics

The ofgpc1t.fmb template can be adopted as the standard graphical user interface template for Microsoft Windows.

Iconic toolbar

ofgpc1t.fmb has an iconic MDI toolbar. The toolbar buttons are:

•	Commit (tool tip label "Save")

•	Print (tool tip label "Print")

•	Clear Form (tool tip label "Clear Form")

•	Enter/Execute Query (tool tip label "Find")

•	Insert Record (tool tip label "Insert")

•	Delete Record (tool tip label "Remove")

•	Clear Record (tool tip label "Clear Record")

•	List of Values (tool tip label "List")

•	Edit (tool tip label "Edit)

•	Help (tool tip label "Help")

The toolbar buttons have tool tips implemented. Color icons are supplied for use with the buttons. The icons are in <PATH>\cgenf61\admin\icons\pc, where PATH is the path into which the Oracle Designer products have been installed.

Visual attributes

ofgpc1t.fmb uses a set of visual attributes for Microsoft Windows that are specified in association with a custom palette. The visual attributes defined are:

CG$ITEM	CG$DISPLAY_RADIO_BUTTON
CG$CANVAS	CG$MANDATORY_ RADIO_BUTTON
CG$DISPLAY_ITEM	CG$OPTIONAL_RADIO_BUTTON
CG$PUSH_BUTTON	CG$DISPLAY_CHECK_BOX
CG$TITLE	CG$MANDATORY_ CHECK_BOX
CG$RADIO_TITLE	CG$OPTIONAL_ CHECK_BOX
CG$GROUP_TITLE	CG$CURRENT_RECORD
CG$PROMPT	CG$OTHER_RECORD
Application title bar

ofgpc1t.fmb sets the title bar text to the repository application system's Title property (if available).

Coordinate system

ofgpc1t.fmb uses a real coordinate system with Real Unit set to ‘Inch’. The character cell size is:

•	width = 0.1"

•	height = 0.25".


About the ofgpc2t.fmb standard template form

Related Topics

Note

The recommended way to specify navigation between modules in Oracle Designer release 2 onwards is to define navigation action items. An alternative mechanism provided in versions of Form Generator prior to Release 2 involves adding code to a separate Key-Fn trigger for each called module. The ofgpc2t.fmb template makes use of this generated trigger code, as described below

Generation of Key-Fn trigger code is still supported in Oracle Designer release 2 onwards. However, generating Key-Fn trigger code as a mechanism to call other modules is likely to be discontinued in subsequent releases of Form Generator. Therefore, we strongly recommend you use navigation action items to call other modules. For more information, refer to Calling reports, displays, and other forms using buttons generated from navigation action items.

About the ofgpc2t.fmb template

The ofgpc2t.fmb template form has all the features of ofgpc1t.fmb; the important difference is that in addition, it replaces the CG$ navigation "List" item with navigation buttons for inter-form navigation. The navigation buttons are implemented as described below. The template shows how to implement navigation buttons; it is not a definitive solution, and should be tailored to suit particular requirements.

To use the ofgpc2t.fmb template, you must set CALLFM to Yes.

Note that the ofgpc2t.fmb template form can only be used to generate and compile a module if that module calls other modules. This is because the code in the template relies on the fact that for such modules, Form Generator adds some inter-form navigation code, which is called by a WHEN-BUTTON-PRESSED trigger in the template. Therefore, the generated form will compile only if there are child modules (and attendant navigation procedures) associated with this module.

ofgpc2t.fmb implements inter-form navigation by exploiting the way Form Generator handles items named CG$FFn in a template form, namely: if a template form contains a pop-list item named CG$FF1 or CG$FF2, Form Generator creates a poplist based on this item in the generated form that lists all the forms that are callable from the current form.

Implementation of navigation buttons

•	ofgpc2t.fmb has a block called NAV that has five buttons named NAV1 through NAV5. These are on canvas CG$FOOTER_1. These are the generic buttons which are used for the navigation options.

•	At runtime, the generated form calls a program unit SET_NAV_BUTTONS that converts the navigation options in the poplist CG$FF1, enabling one button for each navigation option. The buttons are labeled accordingly. If there are more navigation options than buttons, the last button is labeled "Others" and this button invokes a List of Values showing the remaining navigation options. The CG$FF1 object is then hidden.

•	When the user of the form presses one of the buttons, the block-level WHEN-BUTTON-PRESSED trigger for the block NAV determines the action to be taken. This is typically a CALL_FORM to the appropriate form.

•	Canvas CG$FOOTER_1 has a fixed size. This means that if your window is narrower than this canvas, some of the buttons may be partially or completely hidden. Thus, it is important to understand how this feature works so that you can tailor the template form to your needs.

•	The buttons are placed on CG$FOOTER_1 to ensure that they appear only on the first generated window.


Ways to customize the standard template forms

Related Topics

This topic describes some of the ways in which you can customize the standard templates ofgpc1t.fmb and ofgpc2t.fmb.

Note:	We strongly recommend you do not modify a standard template form directly. Instead, always take a copy of a standard template and modify the copy.

Visual attributes

The visual attributes used by the standard templates are designed to complement one another, so, if you decide to change one of them, consider whether any of the others need changing.

Application title bar

In Microsoft Windows, the generated application will run in a multiple document interface (MDI) window. The template includes the following line in the form-level PRE-FORM trigger:

begin

set_window_property(‘FORMS_MDI_WINDOW’,TITLE,

get_item_property(‘CG$CTRL.CG$AT’,HINT_TEXT));

end;

During generation, the CG$AT generator item's Hint Text property is set to the text specified for the repository application system's Title property. In the absence of this mechanism, the title bar would read "Oracle Forms Runtime" by default. For more information about using generator items to access information in the repository, refer to Accessing repository Properties using Release 1.x Style Generator Items from the Template

If the application system's Title property is not available (e.g. if no text has been specified for the property, or if the repository module is in a folder rather than an application system), the application’s title bar is empty.

An alternative (but less elegant) way to set the window title bar would be to use explicit text rather than the Application Title property, using PL/SQL code as follows:

set_window_property(‘FORMS_MDI_WINDOW’,TITLE,'Oracle Designer Generated Application');

To specify a different title, change the text between the single quotation marks.

Toolbar

To add or remove buttons in the toolbar:

1.	Delete existing buttons or create the new buttons in the block TOOLBAR on the canvas TOOLBAR. To create new buttons, duplicate an existing one and change the properties name, X position, Y position, label, icon name. The label will be displayed as the tool tip, and the icon name will define the icon displayed on the button. There are a number of useful standard icons supplied under <PATH>\icons\pc, where PATH is the path into which the Oracle Designer products have been installed

2.	Edit the program unit TOOLBAR_ACTIONS. This has an IF...ELSEIF statement which has one branch for each toolbar button. The IF statement uses the Name property of the button. So if you add a new button called NEXTRECORD you would probably want to add a new ELSEIF statement:

elsif (button = 'NEXTRECORD')then do_key('NEXT_RECORD');

You can put any valid PL/SQL elements after the THEN statement, so you can do almost anything from a toolbar button. The text of the tool tip for each toolbar button comes from the Label property of the toolbar button. To change the tool tip for a button, simply change the Label property. If a label is too long for the tool tip item, increase the Width property for the item BUTTON_HELP in the block TOOLBAR. This may be particularly relevant if the application is to be enabled for different national languages

Navigation buttons

The code in the template is structured to allow buttons to be added to the NAV block, providing that their names start with NAV(n). Buttons can also be removed. In this template form, the object CG$FF1 must be on the CG$FOOTER_1 canvas.

Scaling for different screen resolutions

Most dimensions specified for the module will translate into multiples of the character cell size. That is, given a character cell size of:

•	width = 0.1"

•	height = 0.25"

a window specified as 80 * 24 will have a physical size of width 80 * 0.1 = 8.0", and a height 24 * 0.25 = 6.0". Note, however, that item sizes are calculated specifically to accommodate the font specified. So, for the MS Sans Serif font, 10 point, the text item may be 0.23" high and 0.97" *n, where n is the Width property of the repository item.

The character cell size chosen in the template is designed to look best on SVGA at medium to high screen resolution. It is also designed to match the item sizes generated for the font specified in the CG$ visual attributes.

For deployment of the application on VGA or at different screen resolutions, you may want to change the character cell size and font on the CG$ visual attributes to create a screen which is physically smaller but, because of the different screen resolution, appears the same size as on SVGA. An example of this would be to reduce the character cell size to width = 0.08" and height = 0.2", and reduce the font to MS San Serif, 8 point. This would result in the example screen above being width 80 * 0.08" = 6.4" and height 24 * 2.0" = 4.8".

Note:	When a real coordinate system is used, the template controls the physical size of the generated application.


Other templates and .fmb files shipped with Form Generator

Related Topics

In addition to the standard templates, Form Generator is also shipped with other templates and .FMB files, including:

•	ofgcalt.fmb - a form containing the definition of the calendar window shown below, and a procedure to call associated procedures in the ofgcall.pll library

For more information about calendar windows, refer to Calendar Windows for Date Items.

•	ofgchrt.fmb - a character mode template form (with coordinates in character cells)

•	ofgexpt.fmb - a number of example generator items you might want to copy into template forms you create. Note this form is not designed for use either in the generation of a form or as part of a generated application.

•	two standard help forms:

−	ofghlpf.fmb - the default help form (as specified by the default setting of  HLPFRM) for displaying context sensitive help from the CG_FORM_HELP help table and optimized for client/server applications

−	ofgwfhf.fmb - an alternative help form for displaying context sensitive help from the CG_FORM_HELP help table and optimized for WebForms applications

In both cases, note that if you set HPTABL to APPSYS and you want to use ofghlpf or ofgwfhf to display help text, you must change any references to CG_FORM_HELP in ofghlpf and ofgwfhf to refer instead to the name of the table created for the application system or folder. For more information, refer to Context-sensitive help generation.

•	ofghlvf.fmb -an example LOV form to display allowable ranges for an item (use the DVHLVF preference to specify a LOV form is used instead of the Oracle Forms default LOV)

•	ofglovf.fmb - an example LOV form to display allowable values for an item (use the DVLOVF preference to specify a LOV form is used instead of the Oracle Forms default LOV). When a user makes a selection, the :GLOBAL.CG$REF_CODE global variable is set to the selected value. If a meaning has been defined for the selected allowable value, the :GLOBAL.CG$REF_MEANING global variable is set to the meaning of the selected value.

•	ofglovt.fmb - an example template form you can use when generating LOV forms from repository module definitions

•	ofgmf1t.fmb - use this template when you are generating forms in a Windows environment but intend to deploy generated forms in a Motif environment. The ofgmf1t template and the ofgpc1t template are very similar. Both include an iconic toolbar and visual attributes, and both use the real coordinate system (where Real Unit=Inch, Character Cell Width = 0.1", and Character Cell Height = 0.25"). Note that the toolbar window defined in ofgmf1t is displayed at 0,0 coordinates; to ensure generated windows are displayed below the toolbar, explicitly specify their X and Y coordinates.


Release 1.x style template functionality superseded by object library support

Related Topics

Release 1.x style generator canvases in the template form

Release 1.x style headers and footers in the template form

Release 1.x style generator blocks in the template form

Release 1.x style generator items in the template form

Release 1.x style generator named visual attributes in the template form

Accessing repository properties using Release 1.x style generator items from the template


Release 1.x style generator canvases in the template form

Related Topics

About Release 1.x style generator canvases

Using Release 1.x style generator canvases to set properties of generated content canvases

Using Release 1.x style generator canvases to set properties of generated stacked canvases

Using Release 1.x style generator canvases to set properties of generated toolbar canvases

List of Release 1.x style CG$ generator canvases to include in template forms


About Release 1.x style generator canvases

Related Topics

What you should consider before using this functionality

Generator canvases are specially named canvases in the template form. Using generator canvases enables you to include:

•	graphic objects/text on generated content canvases, stacked canvases, and toolbar canvases

•	user items and generator items on headers, footers and toolbar canvases

You can also use generator canvases to set properties of generated canvases (although there are other mechanisms for doing this as well).

Generator canvas names comprise the prefix CG$ followed by a recognized suffix. For a list of valid generator canvas names, refer to List of Release 1.x style CG$ generator canvases to include in template forms.

Headers and footers are special types of generator canvases. For more information about headers and footers, refer to Release 1.x style headers and footers in the template form.


Using Release 1.x style generator canvases to set properties of generated content canvases

Related Topics

What you should consider before using this functionality

When Form Generator creates content canvases in a generated form, it names them CG$PAGE_1, CG$PAGE_2, and so on.

You can include a generator canvas in the template form to set properties for all generated content canvases or for a specific content canvas. Any graphic objects/text you place on the generator canvas will also be included on the generated canvas(es). However, Form Generator will ignore any generator items or user items placed on the generator canvas.

Note that there are other ways to set generated content canvas properties. For more information, refer to Content canvas generation.

To set properties for all generated content canvases:

1.	Create a content canvas in the template form called CG$PAGE.

2.	Set the properties of the generator canvas that you want Form Generator to give to all generated content canvases.

To set properties for one specific generated content canvas

1.	Create a content canvas in the template form with the same name as the canvas that Form Generator will create in the generated form (e.g. CG$PAGE_3).

2.	Set the properties of the generator canvas that you want Form Generator to give to the generated content canvas.

To include graphic objects/text on generated content canvases:

1.	Create a content canvas in the template form called one of the following:

•	CG$PAGE, if you want to include graphic objects/text on all generated content canvases

•	CG$PAGE_n, where _n is the number of the specific generated content canvas on which you want the graphic objects/text to appear

2.	Create the required graphic objects/text on the content canvas you have created.


Using Release 1.x style generator canvases to set properties of generated stacked canvases

Related Topics

What you should consider before using this functionality

When Form Generator creates stacked canvases in a generated form, it names them CG$POPUP_1, CG$POPUP_2, and so on.

You can include a generator canvas in the template form to set properties for all generated stacked canvases or for a specific stacked canvas. Any graphic objects/text you place on the generator canvas will also be included on the generated canvas(es). However, Form Generator will ignore any generator items or user items placed on the generator canvas.

Note that there are other ways to set generated stacked canvas properties. For more information, refer to Stacked canvas generation.

To set properties for all generated stacked canvases:

1.	Create a stacked canvas in the template form called CG$POPUP.

2.	Set the properties of the generator canvas that you want Form Generator to give to all generated stacked canvases.

To set properties for one specific generated stacked canvas

1.	Create a stacked canvas in the template form with the same name as the canvas that Form Generator will create in the generated form (e.g. CG$POPUP_3).

2.	Set the properties of the generator canvas that you want Form Generator to give to the generated stacked canvas.

To include graphic objects/text on generated stacked canvases:

1.	Create a stacked canvas in the template form called one of the following:

•	CG$POPUP, if you want to include graphic objects/text on all generated stacked canvases

•	CG$POPUP_n, where _n is the number of the specific generated stacked canvas on which you want the graphic objects/text to appear.

2.	Create the required graphic objects/text on the stacked canvas you have created.


Using Release 1.x style generator canvases to set properties of generated toolbar canvases

Related Topics

What you should consider before using this functionality

When Form Generator creates toolbar canvases in a generated form, it names them as follows:

•	horizontal toolbars are called CG$HORIZONTAL_TOOLBAR_1, CG$HORIZONTAL_TOOLBAR_2, and so on

•	vertical toolbars are called CG$VERTICAL_TOOLBAR_1, CG$VERTICAL_TOOLBAR_2, and so on

where _n is the order within the form of the generated window to which the toolbar is assigned.

You can include a generator toolbar canvas in the template form to set properties for all generated toolbar canvases or for a specific toolbar canvas. Any generator and user items, and any graphic objects/text you place on the generator canvas will also be included on the generated canvas(es). For more information, refer to Generating a toolbar for generated windows.

Including a toolbar in the MDI window

The procedure to include a toolbar in the MDI window of a generated Oracle Forms application is slightly different to that for including a toolbar in a generated window. For more information, refer to Generating a toolbar for the MDI window of a generated form.


List of Release 1.x style CG$ generator canvases to include in template forms

Related Topics

What you should consider before using this functionality

Include the following CG$ generator canvases in a template form for the purposes indicated below:

CG$ Generator Canvas Name	Template Canvas Type	Purpose/Comments	Generated Canvas Type
CG$FOOTER	Content Canvas	Merged with generated content canvas	n/a
CG$FOOTER_n	Content Canvas	Merged with generated content canvas	n/a
CG$HEADER	Content Canvas	Merged with generated content canvas	n/a
CG$HEADER_n	Content Canvas	Merged with generated content canvas	n/a
CG$HORIZONTAL _TOOLBAR	Horizontal Toolbar Canvas	Include toolbar in generated window	Horizontal Toolbar Canvas
CG$HORIZONTAL _TOOLBAR_n	Horizontal Toolbar Canvas	Include toolbar in generated window	Horizontal Toolbar Canvas
CG$PAGE	Content Canvas	Define properties of all generated content  canvases	Content Canvas
CG$PAGE_n	Content Canvas	Define properties of a specific generated content canvas	Content Canvas
CG$POPUP	Stacked Canvas	Define properties of all generated stacked canvases	Stacked Canvas
CG$POPUP_n	Stacked Canvas	Define properties of a specific generated stacked canvas	Stacked Canvas
CG$STACKED_ FOOTER	Stacked Canvas	Define properties of all generated stacked canvases used as footers	Stacked Canvas
CG$STACKED_ FOOTER_n	Stacked Canvas	Define properties of a specific generated stacked canvas used as a footer	Stacked Canvas
CG$STACKED _ HEADER	Stacked Canvas	Define properties of all generated stacked canvases used as headers	Stacked Canvas
CG$STACKED_ HEADER_n	Stacked Canvas	Define properties of a specific generated stacked canvas used as a header	Stacked Canvas
CG$VERTICAL_ TOOLBAR	Vertical Toolbar Canvas	Include toolbar in generated window	Horizontal Toolbar Canvas
CG$VERTICAL_ TOOLBAR_n	Vertical Toolbar Canvas	Include toolbar in generated window	Horizontal Toolbar Canvas


Release 1.x style headers and footers

Related Topics

About Release 1.x style headers and footers

Notes on Release 1.x style headers and footers

Content headers and footers

About Release 1.x style content headers and footers

Including Release 1.x style content headers and footers in generated forms

Notes on Release 1.x style content headers and footers

Stacked headers and footers

About Release 1.x style stacked headers and footers

Including Release 1.x style stacked headers and footers in generated forms

Notes on Release 1.x style stacked headers and footers


About Release 1.x style headers and footers

Related Topics

What you should consider before using this functionality

A header is an area at the top of a generated content canvas, above the first generated block on the canvas. A footer is an area at the bottom of a generated content canvas, below the last generated block on the canvas. Typically, you might include a header or footer in a generated form to display the same things at the top or bottom of all generated content canvases in the form (e.g. a company logo, the date, a row of buttons)

To include headers and/or footers in a generated form, you define them in the template form as being one of two types:

•	content headers and footers

•	stacked headers and footers

As well as defining properties in the template form for the headers and footers you require, you can also place the following on them:

•	graphic objects/text

•	generator items (for more information refer to Release 1.x style generator items in the template form)

•	user items (for more information refer to User items from the template and generated forms)

During generation, Form Generator 'merges' a content header or footer with the underlying content canvas in the window. However, Form Generator generates a stacked header or footer as a separate stacked canvas that 'floats' above the content canvases displayed in a window.

The space available for the layout of blocks on the canvas is the space between the header and the footer.

Form Generator begins the layout of generated items at the line below any content header or stacked header (whichever has the greater height) and finishes at the line above any content footer or stacked footer (again, whichever has the greater height).

Note:	If you add more separation with the PAGHDS or PAGFTS preferences, the extra space is added to the taller of the content header or stacked header and content footer or stacked footer.

Illustration: Interaction of headers and footers example

Illustration: Adding space to headers and footers example


Notes on Release 1.x style headers and footers

Related Topics

What you should consider before using this functionality

•	Headers and footers will not be generated for windows that have no generated blocks in them. For example, if you decide to have a toolbar and nothing else in the root window, you cannot use generator items (‘CG$’ items) to define the buttons in the toolbar.

•	By default, Form Generator places a stacked canvas created for a block based on a table usage with a layout position of New stacked canvas or Same stacked canvas in the top left corner of the window. When the stacked canvas is displayed, it will overlay items from a content header merged into the window's content canvas, and a stacked header if one has been defined. In either case, the header will effectively 'disappear'.

The solution is to predefine the display position for the stacked canvas to allow for the height of the header. You can do this by creating an appropriately named stacked canvas in the template form (CG$POPUP), or by setting the Y Position property of the module component associated with the stacked canvas, or by setting the POPVYP preference.

•	Where both a stacked and a content header or footer apply to the same content canvas, the stacked header/footer will appear on top of the content header/footer. Make sure the the content header/footer is larger than the stacked header/footer, and position any items on the content header/footer outside the area that will be covered by the stacked header/footer.


About Release 1.x style content headers and footers

Related Topics

What you should consider before using this functionality

A content header or footer is a canvas defined in the template form as a content canvas with one of the following names:

•	CG$HEADER

•	CG$HEADER_n

•	CG$FOOTER

•	CG$FOOTER_n

where _n is the number of a specific generated content canvas with which the content header or footer is to be merged. If _n is not specified, the content header or footer is merged into all generated content canvases.

During generation, Form Generator 'merges' a content header or footer into the specified content canvas(es). In other words, the content header or footer will not exist as a separate canvas in the generated form. Any items located in the content header or footer canvas in the template form are located on the content canvas of the generated form.

One example of when you would use a content header rather than a stacked header is when you want to use the CG$PN generator item to display the number (or 'page number') of each content canvas as static graphic text. A stacked header does not change when the content canvas beneath it changes, so placing the CG$PN on the stacked header would be misleading. Instead, place the generator item on a content header to ensure the page number is created and displayed on each generated content canvas.


Including Release 1.x style content headers and footers in generated forms

Related Topics

What you should consider before using this functionality

To include content headers or footers in a generated form:

1.	In Form Builder, open or create a template form.

2.	Create a canvas in the template form called CG$HEADER or CG$FOOTER.

If you want a particular content header or footer to be merged with a specific content canvas, append '_n' to the name of the canvas you have just created (where n is the number of the generated content canvas with which it is to be merged). For example CG$HEADER_2 will be merged with content canvas CG$PAGE_2. If you do not specify a content canvas, the header or footer will be merged with all content canvases.

3.	Set the Canvas Type property to Content.

4.	Define the width and height of the canvas as required.

Note:	The width of the content header or footer must not exceed the width of the generated content canvas with which it will be merged.

5.	Create the generator items and user items you want to appear on the content canvas in the generated form.

6.	Save the template form.


Notes on Release 1.x style content headers and footers

Related Topics

What you should consider before using this functionality

•	The size of the content header or footer is determined by the size of the template canvas. If the template canvas is wider than the generated canvas, the content header is not included in the generated content canvas.

•	Blank areas on the template become blank areas in the generated header. For example, you can include a blank area on the header canvas to separate the items in the generated header from any generated blocks. To add extra space, use PAGHDS and PAGFTS.

•	Form Generator places the header at the top left corner of the generated canvas. Form Generator places the footer at the bottom left corner of the generated canvas.

•	Because the template canvas does not appear as a real canvas in the generated form, visual attributes have no effect.


About Release 1.x style stacked headers and footers

Related Topics

What you should consider before using this functionality

A stacked header or footer is a canvas defined in the template form as a stacked canvas with one of the following names:

•	CG$STACKED_HEADER

•	CG$STACKED_HEADER_n

•	CG$STACKED_FOOTER

•	CG$STACKED_FOOTER_n

where _n is the order within the form of the generated window to which you want the stacked canvas to appear. If _n is not specified, the stacked header or footer will appear in all windows.

During generation, Form Generator creates a stacked header or footer as a separate stacked canvas that 'floats' above all content canvases displayed in a window.

One example of when you would use a stacked header rather than a content header is when you want to use the CG$CN generator item to include the company name as static graphic text at the top of each content canvas. This information will not change for each content canvas, so placing the generator item on a stacked header is an ideal solution.


Including Release 1.x style stacked headers and footers in generated forms

Related Topics

What you should consider before using this functionality

To include stacked headers and footers in a generated form:

1.	In Form Builder, open or create a template form.

2.	Create a canvas in the template form called CG$STACKED_HEADER or CG$STACKED_FOOTER.

If you want a particular stacked header or footer to appear above or below content canvases in a specific generated window, append '_n' to the name of the canvas you have just created (where n is the order within the form of the generated window to which you want the stacked canvas to appear).

For example, if EMPWINDOW is the second window and you want a stacked footer to appear below every content canvas appearing in the window, name the canvas CG$STACKED_FOOTER_2.

 If you do not specify a window, the stacked header or footer will appear in all windows.

3.	Set the Canvas Type property to Stacked.

4.	Define the following properties of the canvas as required:

•	width and height (canvas)

•	width and height (view)

•	position on canvas (x, y)

•	display position (x, y)

•	bevel

•	visual attributes (color, etc.)

5.	Create the generator items and user items you want to appear on the stacked header or footer in the generated form.

6.	Save the template form.


Notes on Release 1.x style stacked headers and footers

Related Topics

What you should consider before using this functionality

•	Stacked footers are repositioned according to the height of the content canvas currently displayed in the window. When canvas height is greater than window height, the stacked footer is only visible on navigation to the bottom of the canvas.This can be confusing for a user and we therefore recommend you avoid this situation.

•	To define a stacked header or footer for the root window only, use 0 for the numbering (e.g. CG$STACKED_HEADER_0).

•	Stacked headers and footers can be wider than the window in which case you would want to define scrollbars to access the hidden part.

•	The stacked header or footer is the same size as the template canvas used. The view size of the template canvas determines how much space the generated stacked header occupies.

•	Form Generator always places the stacked header at the top left corner of the generated content canvas that is currently displayed in the window. Form Generator always locates the stacked footer in the bottom left corner of the generated content canvas that is currently displayed in the window.

•	Because the stacked header and footer canvases from the template form become real canvases in the generated form, use properties of the template canvas to control the following generated canvas properties:

−	width and height (canvas)

−	width and height (view)

−	position on canvas (x, y)

−	display position (x, y)

−	bevel

−	visual attributes (color, etc.)


Release 1.x style generator blocks in the template form

Related Topics

About Release 1.x style generator blocks

Creating Release 1.x style generator blocks


About Release 1.x style generator blocks

Related Topics

What you should consider before using this functionality

A generator block is any block in the template form with a name that begins with CG$. Use a generator block when you want to include generator items in a generated form and you have no user items to include.

During generation, Form Generator includes in the generated form all CG$ generator items belonging to a generator block. However, Form Generator never includes in the generated form:

•	user items (i.e. items with names that do not begin with CG$) belonging to the generator block

•	the generator block itself

Any CG$ generator items belonging to the generator block in the template form and generated as items (i.e. not as graphic text) are reassigned to the CG$CTRL control block in the generated form. For more information about using generator items, refer to About Release 1.x style CG$ generator items)


Creating Release 1.x style generator blocks

Related Topics

What you should consider before using this functionality

To create a generator block:

1.	In Form Builder, open or create a template form.

2.	Create a new block.

3.	Give the block a name that begins with CG$.

4.	Create generator items that are to be included in the generated form.

For more information about using generator items, refer to About Release 1.x style CG$ generator items


Release 1.x style generator items in the template form

Related Topics

About Release 1.x style CG$ generator items

Generating graphic text from CG$ generator items

Generating items that provide standard Oracle Forms functionality from CG$ generator items

Generating items that provide predefined functionality from CG$ generator items

Generating non-displayed items to access repository properties from CG$ generator items

List of Release 1.x style CG$ generator items to use to generate graphic text

List of Release 1.x style CG$ generator items providing standard Oracle Forms functionality

List of Release 1.x style CG$ generator items providing predefined functionality

List of Release 1.x style CG$ generator items providing access to repository properties

Complete list of all Release 1.x style CG$ generator items to include in template forms


About Release 1.x style CG$ generator items

Related Topics

What you should consider before using this functionality

CG$ generator items (often referred to simply as 'generator items') are specially named items in the template form. Using CG$ generator items, enables you to include the following in generated forms:

•	graphic text displaying repository and page number information

•	items that provide standard Oracle Forms functionality (e.g. Commit, Enter Query)

•	items with predefined functionality (e.g. items to toggle query mode)

•	non-displayed items with Hint properties set to repository information

Form Generator determines what to create in the generated form on the basis of the CG$ generator item name, the item type, the setting of the item's Visible property, and the template canvas on which the item is placed (does not apply to non-displayed items).

Generator item names comprise the prefix CG$ followed by a recognized two letter suffix. To include more than one occurrence of the same generator item in the same block, append unique characters to the item name following the suffix.

The type of the generator item in the template must match the type that Form Generator is expecting for the name.


Generating graphic text from CG$ generator items

Related Topics

What you should consider before using this functionality

Why generate graphic text from CG$ generator items?

Form Generator includes in the generated form any graphic text that you have entered on generator or user canvases in the template form.

However, sometimes this will not fully meet your requirements. For example, you might be using the same template to generate forms from different repository modules and you want the name of each module to appear as graphic text in the header of each generated form. If you enter the name yourself as graphic text, you will have to change the template for each module you generate.

Instead, you can use CG$ generator items to specify that Form Generator is to create graphic text during generation to display:

•	repository information (e.g. application system name)

•	page number information (e.g. current page number, total number of pages)

To find out which CG$ generator items to use, refer to List of Release 1.x style CG$ generator items to use to generate graphic text.

To generate graphic text from a CG$ generator item:

1.	Create the item in the template form as a text item.

The item can belong to either a user or a generator block.

2.	Give the item an appropriate CG$ generator item name.

3.	Place the item within the borders of one of the following CG$ generator canvases:

•	a content header or footer canvas (i.e. a content canvas called CG$HEADER, CG$HEADER_n, CG$FOOTER, or CG$FOOTER_n)

•	a stacked header or footer canvas (i.e. a stacked canvas called CG$STACKED_HEADER, CG$STACKED_HEADER_n, CG$STACKED_FOOTER, or CG$STACKED_FOOTER_n)

•	a horizontal or vertical toolbar canvas (i.e. a toolbar canvas called one of CG$HORIZONTAL_TOOLBAR, CG$HORIZONTAL_TOOLBAR_n, CG$VERTICAL_TOOLBAR, or CG$VERTICAL_TOOLBAR_n)

Form Generator ignores any generator item placed either partially or totally off its template canvas.

4.	Set the Visible property of the item to Yes.

5.	Specify a named visual attribute in the template form to set the font, color, and pattern properties of the generated graphic text.

The generated graphic text is justified within the area defined by the size and position rectangle of the item in the template. If the graphic text is too long to fit in the rectangle, it is truncated.

Example

If you create a text item called CG$MN on a header canvas in the template form, Form Generator will generate boilerplate in the header of the generated form to display the name of the repository module.


Generating items that provide standard Oracle Forms functionality from CG$ generator items

Related Topics

What you should consider before using this functionality

Why provide standard Oracle Forms functionality?

Oracle Forms provides a number of useful features for users of Oracle Forms applications, including:

•	Commit

•	Enter Query

•	Execute Query

You can use CG$ generator items to include items that provide these standard Oracle Forms features in generated forms.

To find out which CG$ generator items to use, refer to List of Release 1.x style CG$ generator items providing standard Oracle Forms functionality.

To generate an item to provide standard Oracle Forms functionality from a CG$ generator item:

1.	Create the item in the template form as a text item, button item, or checkbox item as appropriate.

The item can belong to either a user or a generator block.

2.	Give the item an appropriate CG$ generator item name.

3.	Place the item within the borders of one of the following CG$ generator canvases:

•	a content header or footer canvas (i.e. a content canvas called CG$HEADER, CG$HEADER_n, CG$FOOTER, CG$FOOTER_n)

•	a stacked header or footer canvas (i.e. a stacked canvas called CG$STACKED_HEADER, CG$STACKED_HEADER_n, CG$STACKED_FOOTER, or CG$STACKED_FOOTER_n)

•	a horizontal or vertical toolbar canvas (i.e. a toolbar canvas called one of CG$HORIZONTAL_TOOLBAR, CG$HORIZONTAL_TOOLBAR_n, CG$VERTICAL_TOOLBAR, or CG$VERTICAL_TOOLBAR_n)

Form Generator ignores any generator item placed either partially or totally off its template canvas.

4.	Set the Visible property of the item to Yes.

5.	Set other properties of the generator item in the template to specify properties for the generated item in the generated form.

Example

If you create a button item called CG$EQ on a header canvas in the template form, Form Generator will generate a button item in the header of the generated form to set the form into Enter Query mode.


Generating items that provide predefined functionality from CG$ generator items

Related Topics

What you should consider before using this functionality

Why generate items with predefined functionality?

There are a number of features that users often want in generated forms. Oracle Forms provides some of these features as standard, and you can use Form Generator to include these features in the Oracle Forms applications you generate.

There are some other features that are often required, but which are not provided by Oracle Forms. However, using Form Generator and CG$ generator items you can include items in generated forms that have predefined functionality to meet many common requirements, including:

•	text items to display current session information (e.g. current date, current user, current query mode)

•	button items to navigate to next and previous canvases

•	button and/or checkbox items to toggle query mode

To find out which CG$ generator items to use, refer to List of Release 1.x style CG$ generator items providing predefined functionality.

To generate an item with predefined functionality from a CG$ generator item:

1.	Create the item in the template form as a text item, button item, or checkbox item as appropriate.

The item can belong to either a user block or a generator block.

2.	Give the item an appropriate CG$ generator item name.

3.	Place the item within the borders of one of the following CG$ generator canvases:

•	a content header or footer canvas (i.e. a content canvas called CG$HEADER, CG$HEADER_n, CG$FOOTER, or CG$FOOTER_n)

•	a stacked header or footer canvas (i.e. a stacked canvas called CG$STACKED_HEADER, CG$STACKED_HEADER_n, CG$STACKED_FOOTER, or CG$STACKED_FOOTER_n)

•	a horizontal or vertical toolbar canvas (i.e. a toolbar canvas called one of CG$HORIZONTAL_TOOLBAR, CG$HORIZONTAL_TOOLBAR_n, CG$VERTICAL_TOOLBAR, or CG$VERTICAL_TOOLBAR_n)

Form Generator ignores any generator item placed either partially or totally off its template canvas.

4.	Set the Visible property of the item to Yes.

5.	Set other properties of the generator item in the template to specify properties for the generated item in the generated form.

Example

If you create a text item called CG$DT on a header canvas in the template form, Form Generator will generate a text item in the header of the generated form to display the current date.


Generating non-displayed items to access repository properties from CG$ generator items

Related Topics

What you should consider before using this functionality

Why access repository properties?

On occasion, you might want to use the text of repository properties. For example, you might want to include in the MDI window title of the generated form the text recorded in the repository for the application system's Title property.

Using a CG$ generator item, you can generate a non-displayed item in a generated form that includes the value of a repository property in its own Hint property. Code you have written can then access and manipulate the generated item's property.

To find out which CG$ generator items to use, refer to List of Release 1.x style CG$ generator items providing access to repository properties.

To generate a non-displayed item to access repository properties from a CG$ generator item:

1.	Create the item in the template form as a text item.

The item can belong to either a user block or a generator block.

2.	Give the item an appropriate CG$ generator item name.

3.	Set the Visible property of the item to No.

4.	Create a stacked header or footer canvas in the template if one does not exist already.

If no header or footer is actually required in the generated form, create a thin CG$STACKED_FOOTER canvas that will not be noticeable in the generated form.

5.	Enter code to use the Hint property of the generated item (note that the generated item will belong to the CG$CTRL control block).

Example

If you want to set the MDI window title to the repository module's Module Name property:

•	create a text item called CG$MN in the template form and set its Visible property to No

•	create a thin CG$STACKED_FOOTER canvas

•	add code to set the MDI window title to the value of the CG$MN item's Hint property as application logic (either as user-defined application logic for the PRE-FORM event, or called from an attached library) or in a form-level PRE-FORM trigger in the template

To see code for this example, refer to Setting the MDI window title.

Notes

Because Form Generator recognizes only the first five characters of a generator item name, you can include graphic text in the generated form from the same generator item. To do this, define two similar but different generator items (e.g. CG$MN_1 and CG$MN_2), and set the Displayed property for one of them to False, and the Displayed property for the other to True.


List of Release 1.x style CG$ generator items to use to generate graphic text

Related Topics

What you should consider before using this functionality

Include the following CG$ generator items on a header or footer canvas (e.g. CG$HEADER) in the template form to display the indicated information as graphic text in the generated form.

For more information about using these items, refer to Generating graphic text from CG$ generator items.

CG$ generator items to use to generate repository information as graphic text

CG$ generator Item Name	Template Item Type	Set Visible property of template item to:	Purpose/Comments	Generated as:
CG$AN	Text Item	Yes	Repository application system's Name property	Graphic Text
CG$AV	Text Item	Yes	Repository application system's version label	Graphic Text
CG$AT	Text Item	Yes	Repository application system's Title property	Graphic Text
CG$CN	Text Item	Yes	Show company name (specified by CONAME)	Graphic Text
CG$MB	Text Item	Yes	Repository module's Bottom Title property	Graphic Text
CG$MI	Text Item	Yes	Repository module's Implementation Name property	Graphic Text
CG$MJ	Text Item	Yes	Repository module's Project Code property	Graphic Text
CG$MK	Text Item	Yes	Repository module's Task Code property	Graphic Text
CG$MN	Text Item	Yes	Repository module's Name property	Graphic Text
CG$M1	Text Item	Yes	Part of module's Top Title property that precedes a | character (e.g. if module's Top Title property is Employee | Details, Employee is used)	Graphic Text
CG$M2	Text Item	Yes	Part of module's Top Title property that follows a | character (e.g. if module's Top Title property is Employee | Details, Details is used)	Graphic Text
CG$MP	Text Item	Yes	Repository module's Purpose property	Graphic Text
CG$MS	Text Item	Yes	Repository module's Short Name property	Graphic Text
CG$ generator items to use to generate page number information as graphic text

CG$ Generator Item Name	Template Item Type	Purpose/Comments	Generated as:
CG$PM	Text Item	Show Page n of m Where n is current page (content canvas) number and m is total number of pages in the form	Graphic Text
CG$PN	Text Item	Show page number (do not use on stacked headers or footers)	Graphic Text
CG$PT	Text Item	Show the total number of pages (content canvases)	Graphic Text


List of Release 1.x style CG$ generator items providing standard Oracle Forms functionality

Related Topics

What you should consider before using this functionality

Include the following CG$ generator items on a header or footer canvas (e.g. CG$HEADER) in the template form to generate items that provide the standard Oracle Forms features indicated below.

For more information about using these items, refer to Generating items that provide standard Oracle Forms functionality from CG$ generator items.

CG$ Generator Item Name	Template Item Type	Purpose/Comments	Generated as:
CG$CB	Button Item	Clear Block (standard Oracle Forms function)	Button Item
CG$CF	Button Item	Clear Item (standard Oracle Forms function)	Button Item
CG$CH	Button Item	Count Query Hits (standard Oracle Forms function)	Button Item
CG$CM	Button Item	Commit (standard Oracle Forms function)	Button Item
CG$CP	Button Item	Copy (standard Oracle Forms function)	Button Item
CG$CQ	Button Item	Cancel Query (standard Oracle Forms function)	Button Item
CG$CR	Button Item	Clear Record (standard Oracle Forms function)	Button Item
CG$CT	Button Item	Cut (standard Oracle Forms function)	Button Item
CG$DE	Button Item	Display Error (standard Oracle Forms function)	Button Item
CG$DF	Button Item	Duplicate Item (standard Oracle Forms function)	Button Item
CG$DR	Button Item	Duplicate Record (standard Oracle Forms function)	Button Item
CG$ED	Button Item	Edit Item (standard Oracle Forms function)	Button Item
CG$EQ	Button Item	Enter Query (standard Oracle Forms function)	Button Item
CG$EX	Button Item	Exit (standard Oracle Forms function)	Button Item
CG$FN	Button Item	Fetch Next Set (standard Oracle Forms function)	Button Item
CG$HP	Button Item	Help (standard Oracle Forms function)	Button Item
CG$IR	Button Item	Insert Record (standard Oracle Forms function)	Button Item
CG$KY	Button Item	Keys (standard Oracle Forms function)	Button Item
CG$LQ	Button Item	Last Criteria (standard Oracle Forms function)	Button Item
CG$LR	Button Item	Lock Record (standard Oracle Forms function)	Button Item
CG$LV	Button Item	List of Values (standard Oracle Forms function)	Button Item
CG$NB	Button Item	Next Block (standard Oracle Forms function)	Button Item
CG$NF	Button Item	Next Item (standard Oracle Forms function)	Button Item
CG$NR	Button Item	Next Record (standard Oracle Forms function)	Button Item
CG$OP	Button Item	Print (standard Oracle Forms function)	Button Item
CG$PA	Button Item	Paste (standard Oracle Forms function)	Button Item
CG$PB	Button Item	Previous Block (standard Oracle Forms function)	Button Item
CG$PF	Button Item	Previous Item (standard Oracle Forms function)	Button Item
CG$PR	Button Item	Previous Record (standard Oracle Forms function)	Button Item
CG$RB	Button Item	Rollback (standard Oracle Forms function)	Button Item
CG$RF	Button Item	Refresh (standard Oracle Forms function)	Button Item
CG$RR	Button Item	Remove Record (standard Oracle Forms function)	Button Item
CG$SD	Button Item	Scroll Down (standard Oracle Forms function)	Button Item
CG$SU	Button Item	Scroll Up (standard Oracle Forms function)	Button Item
CG$XQ	Button Item	Execute Query (standard Oracle Forms function)	Button Item


List of Release 1.x style CG$ generator items providing predefined functionality

Related Topics

What you should consider before using this functionality

Include the following CG$ generator items on a header or footer canvas (e.g. CG$HEADER) in the template form to generate items that have predefined functionality to meet many common requirements.

For more information about using these items, refer to Generating items that provide predefined functionality from CG$ generator items.

CG$ Generator Item Name	Template Item Type	Purpose/Comments	Generated as:
CG$DT	Text Item	Show current date	Text Item
CG$FF	Pop List	Display List of Forms that can be called from the generated form. For more information, refer to Calling reports, displays, and other forms using Key-Fn trigger code and CG$FF functionality.	Stacked canvas List
CG$FF	Tlist	(see above)	Tlist
CG$NP	Button Item	Navigate to next canvas (item is disabled (dimmed) if current canvas is last canvas)	Button Item
CG$PP	Button Item	Navigate to previous page (item is disabled (dimmed) if current canvas is first canvas)	Button Item
CG$QI	Button Item	Toggle query mode on and off (item disabled (dimmed) if BSCHMD=N)	Button Item
CG$QI	Check box Item	Toggle query mode on and off and Display query mode	Check box Item
CG$QI	Text Item	Display query mode	Text Item
CG$US	Text Item	Show current user of the form	Text Item


List of Release 1.x style CG$ generator items providing access to repository properties

Related Topics

What you should consider before using this functionality

Include one of the following CG$ generator items in the template form to generate a non-displayed item in a generated form that includes the value of a repository property in its own Hint property.

For more information about using these items, refer to Generating non-displayed items to access repository properties from CG$ generator items.

CG$ generator Item Name	Template Item Type	Set Visible property of template item to:	Generated item's Hint property is set to:	Generated as:
CG$AN	Text Item	No	Repository application system's Name property	Non-displayed text item
CG$AV	Text Item	No	Repository application system's version label	Non-displayed text item
CG$AT	Text Item	No	Repository application system's Title property	Non-displayed text item
CG$CN	Text Item	No	Company Name (specified by CONAME)	Non-displayed text item
CG$MB	Text Item	No	Repository module's Bottom Title property	Non-displayed text item
CG$MI	Text Item	No	Repository module's Implementation Name property	Non-displayed text item
CG$MJ	Text Item	No	Repository module's Project Code property	Non-displayed text item
CG$MK	Text Item	No	Repository module's Task Code property	Non-displayed text item
CG$MN	Text Item	No	Repository module's Name property	Non-displayed text item
CG$M1	Text Item	No	Part of module's Top Title property that precedes a | character (e.g. if module's Top Title property is Employee | Details, Employee is used)	Non-displayed text item
CG$M2	Text Item	No	Part of module's Top Title property that follows a | character (e.g. if module's Top Title property is Employee | Details, Details is used)	Non-displayed text item
CG$MP	Text Item	No	Repository module's Purpose property	Non-displayed text item
CG$MS	Text Item	No	Repository module's Short Name property	Non-displayed text item


Complete list of all Release 1.x style CG$ generator items to include in template forms

Related Topics

What you should consider before using this functionality

Include the following CG$ generator items on a header or footer canvas (e.g. CG$HEADER) in a template form to create the indicated item in the generated form:

CG$ Generator Item Name	Template Item Type	Purpose/Comments	Generated as:
CG$AN	Text Item	Repository application system's Name property	Graphic text or non-displayed text item
CG$AV	Text Item	Repository application system's version label	Graphic text or non-displayed text item
CG$AT	Text Item	Repository application system's Title property	Graphic text or non-displayed text item
CG$CB	Button Item	Clear Block (standard Oracle Forms function)	Button item
CG$CF	Button Item	Clear Item (standard Oracle Forms function)	Button item
CG$CH	Button Item	Count Query Hits (standard Oracle Forms function)	Button item
CG$CM	Button Item	Commit (standard Oracle Forms function)	Button item
CG$CN	Text Item	Company name (specified by CONAME)	Graphic text or non-displayed text item
CG$CP	Button Item	Copy (standard Oracle Forms function)	Button item
CG$CQ	Button Item	Cancel Query (standard Oracle Forms function)	Button item
CG$CR	Button Item	Clear Record (standard Oracle Forms function)	Button item
CG$CT	Button Item	Cut (standard Oracle Forms function)	Button item
CG$DE	Button Item	Display Error (standard Oracle Forms function)	Button item
CG$DF	Button Item	Duplicate Item (standard Oracle Forms function)	Button item
CG$DR	Button Item	Duplicate Record (standard Oracle Forms function)	Button item
CG$DT	Text Item	Show current date	Text item
CG$ED	Button Item	Edit Item (standard Oracle Forms function)	Button item
CG$EQ	Button Item	Enter Query (standard Oracle Forms function)	Button item
CG$EX	Button Item	Exit (standard Oracle Forms function)	Button item
CG$FF	Pop List	Display List of Forms that can be called from the generated form. For more information, refer to Calling reports, displays, and other forms using Key-Fn trigger code and CG$FF functionality.	Stacked canvas List
CG$FF	Tlist	(see above)	Tlist
CG$FN	Button Item	Fetch Next Set (standard Oracle Forms function)	Button item
CG$HP	Button Item	Help (standard Oracle Forms function)	Button item
CG$IR	Button Item	Insert Record (standard Oracle Forms function)	Button item
CG$KY	Button Item	Keys (standard Oracle Forms function)	Button item
CG$LQ	Button Item	Last Criteria (standard Oracle Forms function)	Button item
CG$LR	Button Item	Lock Record (standard Oracle Forms function)	Button item
CG$LV	Button Item	List of Values (standard Oracle Forms function)	Button item
CG$MB	Text Item	Repository module's Bottom Title property	Graphic text or non-displayed text item
CG$MI	Text Item	Repository module's Implementation Name property	Graphic text or non-displayed text item
CG$MJ	Text Item	Repository module's Project Code property	Graphic text or non-displayed text item
CG$MK	Text Item	Repository module's Task Code property	Graphic text or non-displayed text item
CG$MN	Text Item	Repository module's Name property	Graphic text
CG$M1	Text Item	Part of module's Top Title property that precedes a | character (e.g. if module's Top Title property is Employee | Details, Employee is used)	Graphic text or non-displayed text item
CG$M2	Text Item	Part of module's Top Title property that follows a | character (e.g. if module's Top Title property is Employee | Details, Details is used)	Graphic text or non-displayed text item
CG$MP	Text Item	Repository module's Purpose property	Graphic text or non-displayed text item
CG$MS	Text Item	Repository module's Short Name property	Graphic text or non-displayed text item
CG$NB	Button Item	Next Block (standard Oracle Forms function)	Button item
CG$NF	Button Item	Next Item (standard Oracle Forms function)	Button item
CG$NP	Button Item	Navigate to next canvas (item is disabled (dimmed) if current canvas is last canvas)	Button item
CG$NR	Button Item	Next Record (standard Oracle Forms function)	Button item
CG$OP	Button Item	Print (standard Oracle Forms function)	Button item
CG$PA	Button Item	Paste (standard Oracle Forms function)	Button item
CG$PB	Button Item	Previous Block (standard Oracle Forms function)	Button item
CG$PF	Button Item	Previous Item (standard Oracle Forms function)	Button item
CG$PM	Text Item	Show Page n of m Where n is current page (content canvas) number and m is total number of pages in the form	Graphic text
CG$PN	Text Item	Show page number (do not use on stacked headers or footers)	Graphic text
CG$PP	Button Item	Navigate to previous page (item is disabled (dimmed) if current canvas is first canvas)	Button item
CG$PR	Button Item	Previous Record (standard Oracle Forms function)	Button item
CG$PT	Text Item	Show the total number of pages (content canvases)	Graphic text
CG$QI	Button Item	Toggle query mode on and off (item disabled (dimmed) if BSCHMD=N)	Button item
CG$QI	Check box Item	Toggle query mode on and off and display query mode	Check box item
CG$QI	Text Item	Display query mode	Text item
CG$RB	Button Item	Rollback (standard Oracle Forms function)	Button item
CG$RF	Button Item	Refresh (standard Oracle Forms function)	Button item
CG$RR	Button Item	Remove Record (standard Oracle Forms function)	Button item
CG$SD	Button Item	Scroll Down (standard Oracle Forms function)	Button item
CG$SU	Button Item	Scroll Up (standard Oracle Forms function)	Button item
CG$US	Text Item	Show current user of the form	Text item
CG$XQ	Button Item	Execute Query (standard Oracle Forms function)	Button item


Release 1.x style generator named visual attributes in the template form

Related Topics

About Oracle Forms visual attributes

How Form Generator uses Release 1.x style named visual attributes (NVAs) defined in the template

Alphabetical list of Release 1.x style generator named visual attributes (NVAs)

Hierarchy of Release 1.x style generator named visual attributes (NVAs)


About Oracle Forms visual attributes

Related Topics

What you should consider before using this functionality

Visual attributes are the font, color, and pattern properties set for form and menu objects that appear in an application's interface. Visual attributes include the following properties:

•	Font properties:  Font Name, Font Size, Font Style, Font Width, Font Weight

•	Color and pattern properties:  Foreground Color, Background Color, Fill Pattern, White on Black

There are several ways to set the visual attributes of objects using Form Builder.

Every interface object has a Visual Attribute Name property that determines how the object's individual visual attribute settings (Font Size, Foreground Color, etc.) are derived.

The Visual Attribute Name property can be set to:

•	Default - individual attribute settings reflect the current system defaults

•	a Named Visual Attribute defined in the same module - individual attribute settings defined for the named visual attribute (a named visual attribute is a separate object in a form or menu module that defines a collection of visual attribute properties)

•	NULL


How Form Generator uses Release 1.x style named visual attributes (NVAs) defined in the template

Related Topics

What you should consider before using this functionality

Form Generator copies all named visual attributes (NVAs) in the template form into the generated form. Form Generator considers there to be two types of NVA:

•	user named visual attributes

•	generator named visual attributes

What are generator named visual attributes (NVAs)?

Generator named visual attributes (NVAs) are specially named NVAs you can define in the template form. The name of the generator NVA determines the objects to which it is applied. For example, Form Generator applies all the visual attributes in the CG$PAGE NVA to content canvases in the generated form.

The generator NVAs are arranged in a simple hierarchy. When Form Generator generates an object, it attempts to apply the appropriate generator NVA from the lowest level of the hierarchy. If this has not been defined in the template form, Form Generator attempts to use the next NVA above it in the hierarchy, and so on.

Where no generator NVA exists for a particular object type, generated objects of that type are given the default visual attributes of the generated form.

What are user named visual attributes (NVAs)?

Form Generator regards any named visual attribute (NVA) in the template with a name that does not start with CG$ as a user NVA, and will include it in the generated form.

To apply a user NVA to a generated object, set the Visual Attribute Name property of the corresponding template item to the name of the user NVA.


Alphabetical list of Release 1.x style generator named visual attributes (NVAs)

Related Topics

What you should consider before using this functionality

CG$ALERT

CG$BLOCK_DECORATION

CG$BLOCK_TITLE

CG$CANVAS

CG$CONTEXT_DECORATION

CG$CONTEXT_TITLE

CG$CURRENT_RECORD

CG$DECORATION

CG$DEFAULT

CG$DISPLAY_CHECK_BOX

CG$DISPLAY_COMBO_BOX

CG$DISPLAY_IMAGE

CG$DISPLAY_ITEM

CG$DISPLAY_POP_LIST

CG$DISPLAY_PROMPT

CG$DISPLAY_RADIO_BUTTON

CG$DISPLAY_TEXT_ITEM

CG$DISPLAY_TEXT_LIST

CG$DRILLDOWN

CG$EDITOR

CG$GROUP_DECORATION

CG$GROUP_TITLE

CG$HORIZONTAL_TOOLBAR

CG$ITEM

CG$LOV

CG$MANDATORY_CHECK_BOX

CG$MANDATORY_COMBO_BOX

CG$MANDATORY_IMAGE

CG$MANDATORY_ITEM

CG$MANDATORY_POP_LIST

CG$MANDATORY_PROMPT

CG$MANDATORY_PUSH_BUTTON

CG$MANDATORY_RADIO_BUTTON

CG$MANDATORY_TEXT_ITEM

CG$MANDATORY_TEXT_LIST

CG$OPTIONAL_CHECK_BOX

CG$OPTIONAL_COMBO_BOX

CG$OPTIONAL_IMAGE

CG$OPTIONAL_ITEM

CG$OPTIONAL_OLE_CONTAINER

CG$OPTIONAL_OLE_CONTAINER

CG$OPTIONAL_POP_LIST

CG$OPTIONAL_PROMPT

CG$OPTIONAL_PUSH_BUTTON

CG$OPTIONAL_TEXT_ITEM

CG$OPTIONAL_TEXT_LIST

CG$OTHER_RECORD

CG$PAGE

CG$POPUP

CG$PROMPT

CG$PUSH_BUTTON

CG$RADIO_DECORATION

CG$RADIO_TITLE

CG$SPREAD_TABLE

CG$STACKED_FOOTER

CG$STACKED_HEADER

CG$STUB_DECORATION

CG$STUB_TITLE

CG$TEMPLATE_TEXT

CG$TEXT

CG$TITLE

CG$VERTICAL_TOOLBAR

CG$WINDOW


Hierarchy of Release 1.x style generator named visual attributes (NVAs)

Related Topics

What you should consider before using this functionality

Below are the names of the generator NVAs you can include in the template form and their relative positions in the NVA hierarchy. Many of these visual attributes are superseded by object library objects listed in the topic Hierarchy of standard source objects.

Visual Attribute Name

CG$CURRENT_RECORD

CG$DEFAULT

CG$ALERT

CG$CANVAS

CG$PAGE

CG$POPUP

CG$SPREAD_TABLE

CG$STACKED_HEADER

CG$STACKED_FOOTER

CG$HORIZONTAL_TOOLBAR

CG$VERTICAL_TOOLBAR

CG$EDITOR

CG$ITEM

CG$PUSH_BUTTON

CG$MANDATORY_ITEM

CG$MANDATORY_CHECK_BOX

CG$MANDATORY_COMBO_BOX

CG$MANDATORY_IMAGE

CG$MANDATORY_POP_LIST

CG$MANDATORY_PUSH_BUTTON

CG$MANDATORY_RADIO_BUTTON

CG$MANDATORY_TEXT_ITEM

CG$MANDATORY_TEXT_LIST

CG$DISPLAY_ITEM

CG$DISPLAY_CHECK_BOX

CG$DISPLAY_COMBO_BOX

CG$DISPLAY_IMAGE

CG$OPTIONAL_OLE_CONTAINER

CG$DISPLAY_POP_LIST

CG$DISPLAY_RADIO_BUTTON

CG$DISPLAY_TEXT_ITEM

CG$DISPLAY_TEXT_LIST

CG$OPTIONAL_ITEM

CG$OPTIONAL_CHECK_BOX

CG$OPTIONAL_COMBO_BOX

CG$OPTIONAL_IMAGE

CG$OPTIONAL_OLE_CONTAINER

CG$OPTIONAL_POP_LIST

CG$OPTIONAL_PUSH_BUTTON

CG$OPTIONAL_TEXT_ITEM

CG$OPTIONAL_TEXT_LIST

CG$LOV

CG$WINDOW

CG$DECORATION

CG$BLOCK_DECORATION

CG$CONTEXT_DECORATION

CG$STUB_DECORATION

CG$GROUP_DECORATION

CG$RADIO_DECORATION

CG$TEXT

CG$TITLE

CG$BLOCK_TITLE

CG$CONTEXT_TITLE

CG$STUB_TITLE

CG$GROUP_TITLE

CG$RADIO_TITLE

CG$PROMPT

CG$DISPLAY_PROMPT

CG$MANDATORY_PROMPT

CG$OPTIONAL_PROMPT

CG$TEMPLATE_TEXT

CG$OTHER_RECORD


Accessing repository properties using Release 1.x style generator items from the template

Related Topics

What you should consider before using this functionality

You can include the values of repository properties (e.g. the Name property of the module being generated) in generated forms in two ways:

•	as generated graphic text

For more information, refer to

−	Generating graphic text from CG$ generator items

−	List of Release 1.x style CG$ generator items to use to generate graphic text

•	as the Hint property of generated non-displayed items, which you can access and manipulate programmatically

For more information, refer to:

−	Generating non-displayed items to access repository properties from CG$ generator items

−	List of Release 1.x style CG$ generator items providing access to repository properties


WebForms application generation

Related Topics

About WebForms

About WebForms applications

About generated WebForms applications

Using the Web Previewer to run a generated WebForms application

Using a web browser to run a generated WebForms application


About WebForms

Related Topics

What is WebForms?

WebForms is the term used to describe the environment in which an Oracle Forms application runs in a three tier architecture. The WebForms environment comprises the Forms Client and the Forms Server.

To describe WebForms in more detail, it is helpful to consider the differences between running an Oracle Forms application in a client server architecture and in a three tier architecture.

Running Oracle Forms applications in a client server architecture

In a client server architecture:

•	the client comprises end-user machines, each containing their own copy of application code

•	the server comprises a database server

A typical client server architecture might be represented as shown:

When running an Oracle Forms application in a client server architecture, each client machine typically holds its own local copy of the application. In addition, the Forms runtime engine is installed on each client machine. It is the Forms runtime engine that is responsible for all form functionality (UI interaction, trigger and commit processing, record management, and general database interaction).

Running Oracle Forms applications in a three tier architecture

In a three tier architecture:

•	the front-end tier comprises end-users' machines running Web browsers

•	the middle tier comprises application servers hosting application code

•	the back-end tier comprises database servers running one or more databases

A typical three tier architecture might be represented as shown:

When running Oracle Forms applications in a three tier architecture, one copy of the Oracle Forms application is installed on an application server along with the Forms Server. At runtime, a Forms Client is downloaded from the application server to a client machine as a java applet (the WebForms applet) displayed in the user's Web browser.

The Forms Client displays the form's user interface and manages interaction between end users and the Forms Server. The Forms Client receives 'bundles' of interface commands from the Forms Server and translates them (in sets) into interface objects for the end user. Some interface events handled by the Forms runtime engine in a client server implementation (such as typing characters in a text field, or moving around a dialog) occur only on the Forms Client, with no interaction with the Forms Server runtime engine.

The Forms Server consists of two components:

•	Listener. The Forms Server Listener initiates the Forms Server runtime session and establishes a connection between the Forms Client and the Forms Server runtime engine.

•	Runtime Engine. The Forms Server runtime engine is a modified version of the Forms runtime engine, with user interface functionality redirected to the Forms Client. It handles all form functionality except UI interaction, including trigger and commit processing, record management, and general database interaction.


About WebForms applications

Related Topics

Oracle Forms applications that run in a three tier architecture are sometimes referred to as WebForms applications.

You can run the same Forms executable (fmx file) in a client server architecture and in a three tier architecture. In other words, any fmx file is potentially a WebForms application.

When you design an Oracle Forms application to run in a three-tier environment, you can extend the application’s functionality by:

•	including JavaBeans

•	replacing default user interface components with custom components written in Java

Running WebForms applications

WebForms applications run inside a java applet called the WebForms applet. You can run the WebForms applet in two ways:

•	you can run the WebForms applet standalone using an Oracle Forms Developer component called the Web Previewer (this enables you to test WebForms applications locally without having to deploy them to an application server).

Note that the Web Previewer is installed as part of the Form Server installation process, and it can only run on the same platforms as Oracle Form Server.

•	you can run the WebForms applet in a java-enabled web browser having deployed the application to an application server (this is how WebForms applications run in a production environment)

Considerations when designing WebForms applications

When designing applications that are to run as WebForms applications, there are a number of considerations to be aware of:

•	Combo boxes are not supported in WebForms applications.

•	You can use .gif files for iconic buttons but you cannot use .ico files.

•	The Forms Server maps fonts in a form to java fonts. If the default font mappings are not acceptable, edit the mappings in <oracle_home>\forms60\java\oracle\forms\registry\registry.dat

•	There are potentially significant increases in network traffic associated with including the following in WebForms applications:

−	images (these have to be downloaded from the application server each time they are displayed)

−	mouse events as triggers (the WHEN-MOUSE-MOVE trigger is not supported)

−	timers

−	graphic objects/text (these have to be downloaded from the application server each time the form is run)


About generated WebForms applications

Related Topics

Since you can run the same Forms executable (fmx file) in a client server architecture and in a three tier architecture, every Oracle Forms application you generate is already a potential WebForms application.

In addition, Form Generator also provides Java support for Oracle Forms applications generated exclusively for use as WebForms applications. Specifically, Form Generator enables you to include the following in generated applications:

•	Bean Area items (for more information, refer to Bean Area item generation)

•	custom user interface components (for more information, refer to Custom user interface component generation)

Running generated WebForms applications

WebForms applications run inside a java applet called the WebForms applet. You can run the WebForms applet in two ways after generation:

•	you can run the WebForms applet standalone using an Oracle Forms Developer component called the Web Previewer (this enables you to test generated WebForms applications locally without having to deploy them to an application server).

Note that the Web Previewer is installed as part of the Form Server installation process, and it can only run on the same platforms as Oracle Form Server.

•	you can run the WebForms applet in a java-enabled web browser having deployed the application to an application server (this is how WebForms applications run in a production environment)

In either case, you can run the WebForms applet automatically after generation or select it from the Build Action dialog.

Considerations when designing generated WebForms applications

When designing generated applications that are to run as WebForms applications, there are a number of considerations to be aware of:

•	When running a generated form as a WebForms application, a native text editor is available in the WebForms applet. This text editor is always used in the WebForms applet, regardless of whether a specific text editor is associated with an item when running the form in a client server architecture (i.e. using preferences DFTCED/DFTLED and the FORMS60_EDITOR Registry variable, or attached to a source object in the object library).

•	When running a generated form as a WebForms application, you are not prompted to save outstanding changes if you attempt to close the window in which the WebForms applet is running (i.e. either the Web Previewer window or the web browser window). The window closes and any outstanding changes are discarded. Make sure that users of the generated form (especially users familiar with running forms in a client server architecture) are familiar with this difference in behavior.

•	To provide help for generated WebForms applications, we recommend you use Form Generator's HTML-based help generation functionality (for more information, refer to Displaying help text as HTML-based help in a web browser). Alternatively, use HLPFRM to specify the ofgwfhf standard help form that is optimized for generated WebForms applications.


Using the Web Previewer to run a generated WebForms application

Related Topics

About the Web Previewer

Oracle Forms Developer includes a component called the Web Previewer that runs the WebForms applet standalone (i.e. not in a web browser). The Web Previewer enables you to run forms as though they are being deployed from a web server. Use the Web Previewer as a tool to test your web forms without having to actually deploy the forms on a server.

Note that the Web Previewer is installed as part of the Form Server installation process, and it can only run on the same platforms as Oracle Form Server.

What does Form Generator generate to run a generated application in the Web Previewer

When you specify that you want to run the generated form in the Web Previewer, Form Generator creates:

•	an .fmb file and an .fmx file as for normal generation

•	an HTML file containing runtime parameters to pass to the Web Previewer

The HTML file generated by Form Generator is stored in the temp directory (e.g. C:\temp). The parameters in the HTML file control the appearance of the application in the Web Previewer. You set these parameters using a number of preferences.

You can specify that you want to automatically run the generated form after generation in the Web Previewer (i.e. instead of running the form as a client server form). In addition, the option to run the generated form in the Web Previewer is added to the actions in the Build Action dialog.

To run a generated application in the Web Previewer after generation

1.	Set the following preferences to control the appearance of the application in the Web Previewer:

WEBCOL	Preview mode color scheme
WEBHGT	Preview window height
WEBLAF	Preview mode look-and-feel style
WEBWID	Preview window width

2.	Display the Form Generator Options dialog box (either by selecting the Options button on the Generate Form dialog box or by selecting Options→Generator Options→Forms).

3.	On the Compile tab of the Form Generator Options dialog box, select the Yes radio button from the Compile Form/Menu radio group.

4.	If you want to run the form in the Web Previewer immediately after generation, on the Run tab of the Form Generator Options dialog box:

•	check the Run form automatically checkbox

•	check the Run as a Web form checkbox

•	remove any entry in the Web Browser field

5.	Generate the form.

If you specified that you wanted to run the form immediately after generation, the form appears in the Web Previewer. If you did not specify that you wanted to run the form immediately, use the Build Actions dialog to run the application in the Web Previewer.

The option to run the form as a client server form also appears in the Build Actions dialog.


Using a web browser to run a generated WebForms application

Related Topics

Prerequisites

To use a web browser to run a generated WebForms application:

•	the browser with which you want to view the generated application must be java-enabled

•	you must have access to a machine (referred to as the 'application server machine') running both Forms Server and a web server

•	any files required by the application at runtime (e.g. library files, image files) must be available on the application server machine (i.e. file locations must be included in the machine's FORMS60_PATH environment variable)

•	you must be able to create a base HTML file (or copy an existing base HTML file) containing runtime parameters suitable for the browser with which you want to view the generated application

•	you must set both WEBHTM and  WEBURL to run a generated application as a WebForms application

What does Form Generator generate to run a generated application in a web browser?

When you specify that you want to use a web browser to run the generated form on the web, Form Generator creates an .fmb file and an .fmx file as for normal generation.

You use the same mechanism (i.e. an HTML file)  to pass runtime parameters to the WebForms applet running in both a web browser and in the Web Previewer.

When the WebForms applet runs in a web browser, note that Form Generator does not create an HTML file containing runtime parameters unless a 'base HTML file' already exists. Providing a base HTML file does exist, during generation Form Generator copies the base HTML file and names the copied file <generated_module_name>.html. The format of the base HTML file will depend on the browser you are using. It is therefore your responsibility to create and maintain the base HTML file. If you are not sure of the format of the base HTML file, refer to the Oracle Forms help system or ask the administrator of the application server machine for assistance.

To run a generated application in a web browser after generation

1.	Create the base HTML file.

For more information about the base HTML file, refer to the Oracle Forms help system.

2.	In the base HTML file, include the serverargs parameter to pass to the WebForms applet:

•	the location and name of the generated .fmx file

•	a connect string (optional)

The format of the parameter text will depend on the browser you are using. For example, if you are using Netscape Navigator with Oracle JInitiator, you would define the parameter in the following format:

serverargs="module=<physical_drive>:\<physical_directory>\<generated_form_name>.fmx userid=<connect_string>"

For example, assume:

•	the physical directory on the application server machine that will contain the generated .fmx file is d:\my_apps\forms\webdeploy

•	the name of the generated form will be sales.fmx

•	the connect string is scott/tiger@salesdb

In this case, you would include the following parameter in the base HTML file:

serverargs="module=d:\my_apps\forms\webdeploy\sales.fmx userid=scott/tiger@salesdb"

Note that instead of explicitly specifying the generated form name and the connect string, you can use the variable CG$SERVER_ARGS. During generation, Form Generator replaces CG$SERVER_ARGS with the name of the generated form and the connect string specified on the Run tab of the Form Generator Options dialog (if no connect string is specified on the Run tab, Form Generator uses the connect string used to start Oracle Designer). If you used CG$SERVER_ARGS in the example above, the parameter in the base HTML file would look as follows:

serverargs="module=d:\my_apps\forms\webdeploy\CG$SERVER_ARGS"

3.	Set WEBHTM to specify the location and name of the base HTML file.

4.	Set WEBURL to specify the location of the generated form (and the HTML file copied from the base HTML file) on the application server machine, in the following format:

http://<machine_address>/<virtual_directory>/<physical_directory>

5.	Set WEBPTH to specify the location (as seen by the server) of the form on the server.

6.	Display the Form Generator Options dialog box (either by selecting the Options button on the Generate Form dialog box or by selecting Options→Generator Options→Forms).

7.	On the Dependencies tab of the Form Generator Options dialog box, use the Source options to specify whether the base HTML file is stored in the filesystem or in the repository.

For more information about storing files in the repository, refer to About storing files in the repository for use during generation)

8.	On the Compile tab of the Form Generator Options dialog box, specify the physical directory on the application server machine into which Form Generator is to save the generated .fmx file in the following format:

<mapped_drive>:\<physical_directory>

For example, assume:

•	the physical directory on the application server machine is d:\my_apps\forms\webdeploy

•	you have mapped drive G on your machine to the D drive on the application server machine

In this case, you would specify the physical location as:

g:\my_apps\forms\webdeploy

9.	On the Compile tab of the Form Generator Options dialog box, select the Yes radio button from the Compile Form/Menu radio group.

10.	If you want to run the form as a WebForms application immediately after generation, on the Run tab of the Form Generator Options dialog box:

•	check the Run form automatically checkbox

•	check the Run as a Web form checkbox

•	specify the location of the web browser with which you want to run the web form in the Web Browser field

11.	Generate the form.

If you specified that you wanted to run the form immediately after generation, the form appears in the specified browser. If you did not specify that you wanted to run the form immediately, use the Build Actions dialog to run the application.

Options to run the form as a client server form or to run the form in the Web Previewer also appear in the Build Actions dialog.


Bean Area item generation

About Bean Area items and JavaBeans

About generated Bean Area items

Generating Bean Area items


About Bean Area items and JavaBeans

Related Topics

About Bean Area items

In Oracle Forms, an item of type Bean Area acts as a JavaBean container and enables you  to integrate JavaBeans into a WebForms application.

For more information about WebForms, refer to WebForms application generation.

About JavaBeans

JavaBeans are self contained program units that are written in Java and conform to the JavaBean specification. For example, a JavaBean might implement a control such as a calculator or spreadsheet, or might display an animated image.

You can integrate JavaBeans with a WebForms application to perform specialized functions that augment the application's capabilities.

To integrate correctly with a WebForms application, you must provide a Java container for the JavaBean. This container (sometimes also called a wrapper) must implement a Forms-defined interface, called the IView interface.

For more information about JavaBeans and Oracle Forms applications, refer to the Oracle Forms help system.


About generated Bean Area items

Related Topics

Form Generator provides support for JavaBeans by enabling you to include Bean Area items in the forms you generate for deployment as WebForms applications (for more information about WebForms, refer to WebForms application generation).

Note that for a particular JavaBean to work correctly in the generated form, you will have to create a Java class that extends the VBean class supplied with Oracle Forms by modifying calls to methods in the IView interface. For more information about extending the VBean class, refer to the Oracle Forms help system.


Generating Bean Area items

Related Topics

How to generate a Bean Area item:

1.	Use a text editor to write a Java container class (including a reference to the JavaBean that you want the generated Bean Area item to contain).and save the definition as a .java file.

The Java container class you create must extend the VBean class supplied with Oracle Forms by modifying calls to methods in the IView interface. For more information about creating a suitable Java class, refer to the Oracle Forms help system.

2.	Use a Java compiler (JDK 1.1) to compile the .java file into a .class file and save the .class file in <oracle_home>\Forms60\Java.

Note the CLASSPATH environment variable must include <oracle_home>\Forms60\Java.

3.	Use Form Builder to:

•	create an item of type Bean Area

•	set the item's Implementation Class property to the name of the Java container class

•	include the item in an object library as a source object

4.	Use Design Editor to:

•	create a repository unbound item definition.  How

•	set the item's Display Type property to Bean Area

•	set the item's Unbound Type property to Custom

•	set the item's Template/Library object property to the name of the source object in the object library

Notes

You can record application logic in the repository for the unbound item against the item's When-Custom-Event trigger. For detailed code examples, refer to the Oracle Forms help system.


Custom user interface component generation

About custom user interface components

About generated custom user interface components

Generating custom user interface components


About custom user interface components

Related Topics

Instead of using the standard Oracle Forms-supplied components in a WebForms application user interface, you can use your own custom-designed components written in Java. For example, if you wanted all buttons to have rounded edges, you could replace the standard Oracle Forms button with a Java class you have written.

The user interface elements (i.e. control item types) that you can replace are:

•	check boxes

•	list items (i.e. combo boxes, text lists, and poplists)

•	buttons

•	radio groups/radio buttons

•	text items

For a list of the default classes supplied with Oracle Forms to implement the standard user interface components, refer to the Oracle Forms help system

The standard user interface components implement the IView interface. By creating your own class for your custom user interface component that implements this interface, your custom component can replace the standard component and be integrated into your Forms application.

For more information about WebForms, refer to WebForms application generation.


About generated custom user interface components

Related Topics

Form Generator provides support for custom user interface components by enabling you to override the default classes supplied with Oracle Forms for particular UI elements in a WebForms application. Instead of using the default class for a specific generated UI element, you can specify an alternative implementation class using a source object in an object library.

Note that for a particular class, you will have to create one of the following:

•	a Java class that extends the appropriate default class supplied with Oracle Forms by modifying calls to methods in the IView interface (for a list of the default classes supplied with Oracle Forms, refer to the Oracle Forms help system)

•	a new Java class that fully implements the IView interface

For more information about WebForms, refer to WebForms application generation.


Generating custom user interface components

Related Topics

How to generate a custom user interface component:

1.	Use a text editor to write a Java class for the custom user interface component and save the definition as a .java file.

You can either extend the default class supplied with Oracle Forms (e.g. VButton) by modifying calls to methods in the IView interface, or create a new class that fully implements the IView interface. For more information about creating a suitable Java class file, refer to the Oracle Forms help system.

2.	Use a Java compiler (JDK1.1) to compile the .java file into a .class file and save the .class file in <oracle_home>\Forms60\Java.

Note the CLASSPATH environment variable must include <oracle_home>\Forms60\Java.

3.	Use Form Builder to:

•	create an item of the appropriate type (e.g. checkbox, button)

•	set the item's Implementation Class property to the name of the Java class you have written for the custom user interface component

•	include the item in an object library as a source object

4.	Use Design Editor to:

•	create a repository bound item, unbound item, or action item definition.  How

•	set the item's Display Type property as appropriate (e.g. checkbox, button)

•	set the item's Template/Library object property to the name of the source object in the object library