Vous êtes sur la page 1sur 64

Oracle Forms

Q: How does the command POST differs from COMMIT ?

POST will temporary save data in the relevant table.


If you do not use commit after post then the temporary saved data will be lost.
COMMIT permanently Save Data in the table

Q: How do you pass the parameters from one form to another form?

Q: Give built-in routine related to a record groups?


GET_GROUP_SELECTION Built-in
GET_GROUP_SELECTION_COUNT Built-in
GET_GROUP_ROW_COUNT Built-in
GET_GROUP_RECORD_NUMBER Built-in
SET_GROUP_CHAR_CELL Built-in
SET_GROUP_number_CELL Built-in
SET_GROUP_date_CELL Built-in
gET_GROUP_CHAR_CELL Built-in
gET_GROUP_number_CELL Built-in
gET_GROUP_date_CELL Built-in
POPULATE_GROUP_FROM_TREE Built-in
POPULATE_GROUP_WITH_QUERY Built-in
POPULATE_GROUP Built-in
DELETE_GROUP_ROW Built-in
DELETE_GROUP Built-in
CREATE_GROUP Built-in
CREATE_GROUP_FROM_QUERY Built-in
ADD_GROUP_COLUMN Built
ADD_GROUP_ROW Built-in
ADD_LIST_ELEMENT Built-in

Q: set exeqution hiereriky before, after, override

PROCEDURE
CALL_FORM(form_name,display,switch_menu,query_mode,data_mode,paramlist_name);

Display hide, no_hide


Switch_menu no_replace, do_replace
Query_mode query_only, no_query_only
Data_mode share_library_data, no_ share_library_data

QUESTIONS: List the Types of Items?


ANSWER:

Text item.
Chart item.
Check box.
Display item.
Image item.
List item.
Radio Group.
User Area item.
Bean Area
Hirerical tree
Push button
Activex control
Ole container
Sound
Vbx control

What are the types of triggers and how the sequence of firing in text item

Triggers can be classified as Key Triggers, Mouse Triggers ,Navigational Triggers.

Key Triggers : Key Triggers are fired as a result of Key action.e.g : Key-next-field, Key-up,Key-
Down
Mouse Triggers : Mouse Triggers are fired as a result of the mouse navigation.e.g. When-mouse-
button-presed,when-mouse-doubleclicked,etc
Navigational Triggers : These Triggers are fired as a result of Navigation. E.g : Post-Text-
item,Pre-text-item. We also have event triggers like when -new-form-instance and when-new-
block-instance.

We cannot call restricted procedures like go_to(my_block.first_item) in the Navigational


triggers . But can use them in the Key-next-item.

The Difference between Key-next and Post-Text is an very important question.


The key-next is fired as a result of the key action while the post text is fired as a result of the
mouse movement. Key next will not fire unless there is a key event.

The sequence of firing in a text item are as follows ::


a) pre - text
b) when new item
c) key-next
d) when validate
e) post text

20. which are the triggers will fire in the following situation

I have three text items


1. Text-item1
1.key-next-item
Go_item (text_item2);
Go_item (text_item3);

2. Text-item2
1. Pre-text-item
2. When-validate-item
3. When-new-item-instance
4. Key-next-item
5. Post-text-item
6. Post-change
3. Text-item3
1. Pre-text-item
2. When-validate-item
3. When-new-item-instance
4. Key-next-item
5. Post-text-item
6. Post-change

If I press tab or enter key at text-item1 what are the triggers will fire and order of firing during the
entire navigation.

If I change key-next-item trigger of text-item1

Go_item (text_item2);
: Text_item2: = Nagendra;
Go_item (text_item3);

Then what are the triggers will fire and order of firing

What is the definition of the term "text item"?

A . Any control on your form that allows the user to view and edit text, numbers, or dates

B . Any control on your form that allows the user to view and edit text

C . Any control on your form that allows the user to view and edit text or numbers

D . The label preceding a field on a form

E*. Any control on your form that allows the user to view and edit text, numbers, dates, or long
data

Explanation: E
Any control on your form that allows the user to view and edit text, numbers, dates, or long data

Your Employee form includes a SALARY text item. You want to ensure that standard users
cannot input or change a salary value, but you want the value to look exactly like a regular
field. What is the best way to do this?

A . Set the item's Enabled property to No, and its Update Allowed property to No.

B*. Set the item's Insert Allowed property to No, and its Update Allowed property to No.

C . Set the item's Enabled property to No.

D . It is not possible for an unchangeable item to look like a changeable item.


Explanation:
Set the item's Insert Allowed property to No, and its Update Allowed property to No

Changing an item's Enabled property to No causes its contents to display with light gray
characters instead of black. Therefore, this is the only valid choice.

Commit processing
The processing flow when a Commit occurs always seems to cause confusion. The basics of the
Commit processing are as follows.
Each item that has been changed is validated (When-Validate-Item).
Each record with a changed item is validated (When-Validate-Record).
Pre-Commit trigger occurs after validation and before any data is written to the
database.
Any records that are marked as INSERT are inserted onto the database (Pre-Insert /
Post Insert).
Any records that are marked as CHANGED are updated onto the database (Pre-Update /
Post-Update).
Any records that are marked as DELETED are deleted from the database (Pre-Delete /
Post-Delete).
Post-Forms-Commit trigger occurs after Forms has written the data to the database but
before the database Commit.
Post-Database-Commit trigger occurs after the database Commit.

Display items are similar to text items but store only fetched or assigned values. Operators
cannot navigate to a display item or edit the value it contains.
Display items are generally used as a boilerplate or as conditional text.

The DEPARTMENT table in your database has been augmented with a BUDGET column.
You want to add BUDGET as an item on your Department form, but the item should be a
read-only text box so users cannot change it. The best way to do this is:

A . In the Layout Editor, create a display item and set its Insert Allowed property to No, its
Update Allowed property to No, and its Database Item property to No.

B . In the Data Block Wizard, move the BUDGET column into the Available Items area. Change
the new data block item's Insert Allowed and Update Allowed properties to No. Proceed to the
Layout Editor and add BUDGET as a text item.

C . In the Data Block Wizard, move the BUDGET column into the Available Items are C:
Proceed to the Layout Editor and add BUDGET as a text item, and change the item's Insert
Allowed and Update Allowed properties to No.

D*. In the Layout Editor, create a display item and set its Column Name property to BUDGET.
Explanation:
In the Layout Editor, create a display item and set its Column Name property to BUDGET.

Setting an item's Database Item property to No keeps it from retrieving database data, eliminates
two answers, but it creates a normal-looking text box that actually allows the user to type in data;
it isn't until the user tries to save their work that the data block's Insert Allowed and Update
Allowed properties halt the action. This is not optimal design. The third incorrect answer creates
an application in which the field's data cannot be changed, but the user can still place focus on the
field, which is also not optimal.

You need to add a display item to a form. The item will display a calculated total
summarizing data from several different tables. You do not want to create any new objects
in the database. What is the best course of action to take?

A . Using the Data Block Wizard, create a block with a stored procedure as its data source type.

B . Using the Data Block Wizard, create a block with a view as its data source type.

C . After creating a data block manually, set its Query Data Source Columns property to the
desired columns and write the appropriate select command in its Query Data Source Arguments
property.

D*. After creating a data block manually, set its Query Data Source Type to FROM clause query,
and write the appropriate select command in its Query Data Source Name property.

Explanation:
After creating a data block manually, set its Query Data Source Type to FROM clause query and
write the appropriate select command in its Query Data Source Name property. You cannot use
a stored procedure or a view because both of these require adding a new item to the database. The
correct approach is using a FROM clause query.

Which of the following actions can a user do with a display item?

A . Delete existing database values.

B . Update existing database values.

C*. View existing database values.

D . Insert new database values.

E . All Answers are Correct

Explanation:
View existing database values

A display item shows data but does not allow the user to change it. In essence, it is a read-only
field.
Check Box - A Check Box is a two state control that indicates whether a certain condition or
value is on or off, true or false. The display state of a check box is always either "checked" or
"unchecked".

A canvas-view is the background object on which you layout the interface items (text-items,
check boxes, radio groups, and so on.) and boilerplate objects that operators see and interact with
as they run your form. At run-time, operators can see only those items that have been assigned to
a specific canvas. Each canvas, in term, must be displayed in a specific window.

An alert is a modal window that displays a message notifies the operator of some application
condition. Three style Stop, Caution, note

QUESTIONS: What is the built-in function used for finding the alert?
ANSWER: Find_alert

When do you use Alert?


Use alerts to advise operators of unusual situations or to warn operators who are about to perform
an action that might have undesirable or unexpected consequences.

what are the different display styles of alert?


Find_alert
Show_alert

How do you change the alert message during runtime?


You can change an alert message at run time by executing the SET_ALERT_PROPERTY built-
in procedure. Changing an alerts message allows you to reuse the same alert object, but display a
different message each time it is invoked.

Example
Set_Alert_Property(alert_id,ALERT_MESSAGE_TEXT, The product you selected is not in stock
);

QUESTIONS: Can you change the alert messages at run-time?


ANSWER: set_alert_property('alert_name',text_message,'messagestring')

LIST - It is a list of text elements. Style: poplist, tlist, combolist.

What is a Poplist?
The poplist style list item appears initially as a single field(similar to a text item field. When The
operator selects the list icon, a list of available choices appears.

What is a Text list?


The text list style 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 display area of the item), a
vertical scroll bar appears, allowing the operator to view and select undisplayed values.

What is a Combo Box?


The Combo Box style list item combines the features found in list and text items. Unlike the
poplist or the text list style list items, the combo box style list item will both display fixed values
and accept one operator-entered values.

LOV- An LOV is a scrollable popup window that provides the operator with either a single or
multi-column selection list.

QUESTIONS: What is the built-in used to get and set lov properties during run-time?
ANSWER: Get_lov_property, Set_lov_property, Record Group

QUESTIONS: Can you attach an lov to a field at run-time? if yes, give the build-in name.?
ANSWER: yes, this is done using dynamic record group. the property name is
set_lov_property(lov_name,GROUP_NAME,recordgroup_name)
here GROUP_NAME is the property

How do you use the same lov for 2 columns?


We can use the same lov for 2 columns by passing the return values in global values and using the
global values in the code
What is the difference between static and dynamic lov
The static lov contains the predetermined values while the dynamic lov contains values that come
at run time
What is the basic data structure that is required for creating an LOV?
Record Group

What is the LOV for validation Property of an item? What is the use of it?
When LOV for validation is set to true, Oracle Forms compares the current value of the text item
to the values in the first column displayed in the LOV whenever the validation event occurs.

If the value in the text item matches one of the values in the first column of the LOV, Validation
succeeds ,The LOV is not displayed, the processing continues normally.

If the value in the text item doesnt match one of the values in the first column of the
LOV,Oracle Forms displays the LOV and uses the text item value as the search criteria to
automatically reduce the list.

What are the built-ins used to display the LOV?


Show_lov , list_values

What are the built-ins that are used to attach an LOV programatically to an item?
Set_item_property, Get_item_property, (by setting the LOV_NAMEproperty)

What are the built-ins that are used for setting the LOV properties at runtime?
get_lov_property, set_lov_property

What are the differences between LOV and List item?


LOV is a Property whereas List item is an item.
A List item can have only one column whereas an LOV can have one or more columns.

You have added an LOV to a form and now want to add code to determine whether the user
has made a choice from the LOV or dismissed it. What built-in will help you?
A . WHEN-LIST-CHANGED

B . GET_LOV_PROPERTY

C . WHEN-LIST-ACTIVATED

D . POST-TEXT-ITEM

E*. SHOW_LOV

Explanation:
SHOW_LOV

The SHOW_LOV built-in has the ability to display an object (an LOV), and also return a
Boolean value to the calling program indicating whether or not the user selected a value from the
LOV. If you selected one of the WHEN- or POST- choices, be sure to reread the chapter before
the exam...those are triggers, not built-ins.

You created an LOV for stock items and included a Quantity Currently In Stock column in
the LOV. How can you ensure that the user sees accurate "in stock" numbers each time the
LOV is invoked?

A . There is no way to ensure this.

B . Programmatically requery all tables in the application when the user opens that canvas.

C*. Enable the LOV's Automatic Refresh property.

D . Enable the LOV's Automatic Select property.

Explanation:
Enable the LOV's Automatic Refresh property

The Automatic Refresh property determines whether the LOV's underlying query executes every
time the LOV is invoked, or only the first time it is invoked. Setting the property to Yes
configures it to requery every time.

How many characters would you need to type in an LOV to select the WHEN-KEY-UP item
from a list containing WHEN-BUTTON-PRESSED, WHEN-KEY-DOWN, and WHEN-
KEY-UP, assuming they are the only items in the list and the LOV's properties are set to
automatically display the LOV and automatically enter the value once a row is selected?

A . 3 characters

B . 1 character

C*. 2 characters

D . 10 characters

Explanation:
2 characters

Because all three choices begin with "WHEN-," the LOV only cares about the first differentiating
character, which is the "K" that identifies the KEY group. The next character needed is the "D" to
select DOWN, after which the row's key value will automatically be entered into the text item.

You have created an LOV for a text item on your canvas, and you would like the LOV to
appear automatically each time the user enters that text item. What is required to make that
happen?

A . Set the Automatic Select property in the LOV Property Palette to Yes.

B*. Set the Automatic Display property in the LOV Property Palette to Yes.

C . Set the Automatic Refresh property in the text item Property Palette to Yes.

D . Set the Automatic Refresh property in the LOV Property Palette to Yes.

E . Set the Automatic Display property in the text item Property Palette to Yes.

Explanation:
Set the Automatic Display property in the LOV Property Palette to Yes.

No text item property would effect this change. Of the LOV properties listed, Automatic Refresh
determines whether the LOV's contents are requeried each time it is opened, and Automatic
Select specifies whether the selected LOV row is placed into the specified text item without the
user having to double-click on the row or click the OK button.

Which built-in causes an LOV to display for a text item that has one defined?

A . WHEN-NEW-ITEM-INSTANCE

B . WHEN-NEW-LOV

C . GO_ITEM

D*. SHOW_LOV

Explanation:
SHOW_LOV

WHEN-NEW-ITEM-INSTANCE and WHEN-NEW-LOV are triggers, not built-ins. GO_ITEM


navigates to an item but does not open an LOV.

How does the Forms Runtime program respond when a user enters text into a text item that
has an LOV attached and the VALIDATE_FROM_LIST property set to Yes?

A . The Forms Runtime program ignores the LOV if the user types a value directly into the field.

B . The Forms Runtime program populates the item automatically with the first value in the LOV
that matches the user's entry.
C*. The Forms Runtime program opens the LOV and shows only items that match what the user
has typed so far.

D . Validate From List is a Data Block property, not an Item property.

Explanation:
The Forms Runtime program opens the LOV and shows only items that match what the user has
typed so far.

See the section "Introduction to Form Builder Validation Properties" for a refresher on this topic.

What is the return data types of id_null, show_lov

A. Returns a Integer value.

B. Returns a char value

C. * Returns a Boolean value

D. None of the above

Explanation:
Returns a Boolean value

QUESTIONS: What is a radio Group?


ANSWER: Radio groups display a fixed no of options that are mutually Exclusive. User can
select one out of n number of options.

QUESTIONS: What triggers are associated with the radio group?


ANSWER: Only when-radio-changed trigger

You are working with an existing radio group in the Layout Editor and try to add a radio button to
the group. The Layout Editor responds by:

A . Displaying a warning message, and then returning you to the Layout Editor

B . Offering to create a check box instead, since a radio button group already exists

C*. Presenting a dialog box giving you the chance to select a radio group for the new radio
button, or create a new radio group for it

Explanation:
Presenting a dialog box giving you the chance to select a radio group for the new radio button, or
create a new radio group for it

The Layout Editor is willing to add buttons to an existing radio group. It just needs to know
which group will get the new button, or if a completely new group is what you desire.
What are the different types of images?
BoilerPlate Images
Image Items

What is the difference between Boilerplate images and image items?


Boilerplate Images BoilerPlate images are static images(either vector or bitmap) that you import
from the file system or database to use as graphical elements in your form, such as company
logos and maps.
Image ItemsImage items are special types of interfaace controls that store and display either
vector or bitmaps 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 definiton of an image
item is storred as part of the form module. .FMB and .FMX files, but no image file is actually
assciated with an image item until the item is populated at runtime.

What is the use of IMAGE_ZOOM built_in?


You can use the IMAGE_ZOOM built-in subprogram to manipulate images in image items.

What are the triggers associated with the image item?


ANSWER: When-Image-activated(Fires when the operator double clicks on an image Items)
When-image-pressed(fires when the operator selects or deselects the image item)

---------------------
A window, by itself , can be thought of as an empty frame. The frame provides a way to interact
with the window, including the ability to scroll, move, and resize the window. The content of the
window i.e. what is displayed inside the frame is determined by the canvas View or canvas-views
displayed in the window
at run-time.

QUESTIONS: What built-in is used for changing the properties of the window dynamically?
ANSWER: Set_window_property, Canvas-View

QUESTIONS: List the built-in routine for controlling window during run-time?
ANSWER: Find_window,
get_window_property,
hide_window,
move_window,
resize_window,
set_window_property,
show_View

What is FORMS_MDI_WINDOW?
Forms run inside the MDI application window. This property is useful for calling a form from
another one.

What r the types of windows (Window style)?


Specifies whether the window is a Document window or a Dialog window.

What is primary canvas property of window and where it will be useful

What is the relation between windows and Canvas Views ?


Canvas-Views are the background objects on which you place the interface items(text items,
check boxes, radio groups etc.,) and boilerplate objects(boxes,lines,images, etc.,) that operators
interact with as they run your form. Each canvas-view is displayed in a window.

What are the Different Modals of Windows ?


There are Two different modals of Windows are
Modeless Windows
Modal Windows

What are Modeless Windows ?


More than one modeless windows can be displayed at the same time, and operators can navigate
among them if your application allows them to do so. On most GUI platforms, modeless windows
can also be layered to appear either in front of or behind other windows.

What are Modal Windows ?


Modal windows are usually used as dialogs, and have restricted funtionality compared to
modeless windows. On some platforms,for example, operators cannot resize, scroll, or iconify a
modal window.

How do you display console on a window ?


The console includes the status line and message line, and is displayed at the bottom of the
window to which it is assigned.
To specify that the console should be displayed, set the console window form property to the
name of any window in the form, To hide the console, set the console window to <Null>
What is the Remove on Exit property ?
For a modeless window, it determines whether Oracle Forms hides the window automatically,
when the operator navigates to an item in another window.

How many windows in a form can have Console ?


Only one window in a form can display the console, and you cannot change the console
assignment at runtime.

Can you have more than one content canvas view attached
with a window?
Yes. Each window you create must have at least one content canvas-view assigned to it. You can
also create a window that has multiple content canvas-views. At runtime, only one of the content
canvas-views assigned to a window is displayed at a time.

What are the different Window Events activated at Runtime ?


When-Window-Activated
When-Window_Closed
When-Window_Deactivated
When_Window_Resized
Within these triggers, you can examine the build-in system variable
SYSTEM.EVENT_WINDOW to determine the name of the window for which the trigger fired

What is a Visual Attributes Class?

Visual Attributes are the font, color and pattern characteristics of objects that operators see and
intract with in our application.
Or
Visual attributes are the font, color, and pattern properties that you set for form and menu objects
that appear in your application's interface.

What is a Property Class?


A Property class is a named object that contains a list of properties and their settings. Once you
create a property class you can base other objects on it. An object based on a property class
inherit the setting of any property in the class that makes sense for that object.
What are property classes ? Can property classes have trigger?
Property class inheritance is a powerful feature that allows you to quickly define objects that
conform to your own interface and functionality standards. Property classes also allow you to
make global changes to applications quickly. By simply changing the definition of a property
class, you can change the definition of all objects that inherit properties from that class. Yes . All
type of triggers .

Diff. between VAT and Property Class? imp


Named visual attributes define only font, color, and pattern attributes; property classes can
contain these and any other properties.You can change the appearance of objects at runtime by
changing the named visual attribute programmatically; property class assignment cannot be
changed programmatically. When an object is inheriting from both a property class and a named
visual attribute, the named visual attribute settings take precedence, and any visual attribute
properties in the class are ignored.

What is Current record attribute property?


Specifies the named visual attribute used when an item is part of the current record.
Current Record Attribute is frequently used at the block level to display the current row in a
multi-record
If you define an item-level Current Record Attribute, you can display a pre-determined item in a
special color
when it is part of the current record, but you cannot dynamically highlight the current item, as the
input focus changes.

Can u change VAT at run time?


Yes. You can programmatically change an object's named visual attribute setting to change the
font, color,
and pattern of the object at runtime.

Can a Property class itself be based on a property class?


Yes

If you have property class attached to an item and you have same trigger written for the item .
Which will fire first?
Item level trigger fires , If item level trigger fires, property level trigger won't fire. Triggers at the
lowest level are always given the first preference. The item level trigger fires first and then the
block and then the Form level trigger.

What is record group?


A record group is an internal oracle forms data structure that has a similar column/row frame
work to a database table.
it can only store the data but can not display it,it depends on the LOV object to display the data.
QUESTIONS: Give built-in routine related to a record groups?
ANSWER: Create_group (Function)
Create_group_from_query(Function)
Delete_group(Procedure)
Add_group_column(Function)
Add_group_row(Procedure)
Delete_group_row(Procedure)
Populate_group(Function)
Populate_group_with_query(Function)
Set_group_Char_cell(procedure)

Add_parameter
Create_Parameter_list
Delete_parameter
Destroy_parameter_list
Get_parameter_attr
Get_parameter_list
set_parameter_attr

***********What is the Record Group?


A record group is an internal Oracle Forms data structure that has a column/row framework
similar to a database table. However, unlike database tables,record groups are separate objects
that bekong to the form module in which they are defined.

What are record groups ? Can record groups created at run-time?


A record group is an internal Oracle Forms data structure that has a column/row framework
similar to a database table. However, unlike database tables, record groups are separate objects
that belong to the form module in which they are defined.

A record group can have an unlimited number of columns of type CHAR, LONG, NUMBER, or
DATE provided that the total number of columns does not exceed 64K.Record group column
names cannot exceed 30 characters. Programmatically, record groups can be used whenever the
functionality offered by a two-dimensional array of multiple data types is desirable.

TYPES OF RECORD GROUP:


Query Record Group- A query record group is a record group that has an associated SELECT
statement.
The columns in a query record group derive their default names, data types, and lengths from the
database columns referenced in the SELECT statement. The records in a query record group are
the rows retrieved by the query associated with that record group.
Non-query Record Group- A non-query record group is a group that does not have an
associated query, but whose structure and values can be modified programmatically at runtime.
Static Record Group- A static record group is not associated with a query; rather, you define its
structure and row values at design time, and they remain fixed at runtime.

What are the different types of Record Group?


Query Record Groups
NonQuery Record Groups
Static Record Groups
What is a Query Record Group?
A Query record is a record group that has an associated SELECTstatement. The columns in a
query record group derive their default names,datatypes and lengths from the database columns
referenced in the SELECT statement. The records in a query record group are the rows retreived
by the query associated with that record group.

What is a Non Query Record Group?


A non-query record group is a group that does not have an associated query,but whose structures
can be modified programatically at runtime.

What is a Static Record Group?


A Static record group is not associated with a query,rather, you define its structure and row values
at design time, and they remain fixed at runtime.

What is a record Group? What are different types of record group?

A record group is an oracle forms data structure that has a column/row framework similar to a
database table.

There are three types of record groups: query record groups, non-query record groups, and static
record groups.

Query record group


A query record group is a record group that has an associated SELECT statement. Query record
groups can be created and modified at design time or at runtime.

Non-query record group


A non-query record group is a group that does not have an associated query. Non-query record
groups can be created and modified only at runtime.

Static record group


A static record group is not associated with a query. Static record groups can be created and
modified only at design time.

How many number of columns a record group can have?


A record group can have an ultimate number of columns of type CHAR,LONG,NUMBER, and
DATE provided that the total number of columns does not exceed 64k.
What is the maximum allowed length of a Record Group Column?
Record group column names cannot exceed 30 characters.

What are the built-ins used for creating and deleting groups?
CREATE_GROUP(function)
CREATE_GROUP_FROM_QUERY(function)
DELETE_GROUP(Procedure)

What are the built-ins used for modifying a group structure?


ADD_GROUP_COLUMN(function)
ADD_GROUP_ROW(Procedure)
DELETE_GROUP_ROW(Procedure)
POPULATE_GROUP(function)
POPULATE_GROUP_WITH_QUERY(function)
SET_GROUP_CHAR_CELL(Procedure)
SET_GROUP_DATE_CELL(Procedure)
SET_GROUP_NUMBER_CELL(Procedure)

What are the built-ins used for getting cell values?


GET_GROUP_CHAR_CELL(function)
GET_GROUP_DATE_CELL(function)
GET_GROUP_NUMBER_CELL(function)

What are the built-ins used for processing rows?


GET_GROUP_ROW_COUNT(function)
GET_GROUP_SELECTION(function)
GET_GROUP_SELECTION(function)
RESET_GROUP_SELECTION(Procedure)
SET_GROUP_SELECTION(Procedure)
UNSET_GROUP_SELECTION(Procedure)

What are the built-ins used for finding Object ID functions?


FIND_GROUP(function)
FIND_COLUMN(function)

Use the ADD_GROUP_COLUMN function to add a column to a record group that was created at
design time (1) True (2) False.
False

Use the Add_Group_row procedure to add a row to a static record group.


(1)True (2) False
False

What built-in enables you to replace the query associated with a record group?

A*. POPULATE_GROUP_WITH_QUERY

B . CREATE_GROUP

C . ADD_GROUP_ROW

D . SET_GROUP_QUERY

Explanation:
POPULATE_GROUP_WITH_QUERY

What built-in enables you to change a nonquery record group into a query record group?

A . POPULATE_GROUP

B . CREATE_GROUP_FROM_QUERY

C*. POPULATE_GROUP_WITH_QUERY
D . POPULATE_LIST_WITH_QUERY

Explanation:
POPULATE_GROUP_WITH_QUERY

The purpose of the POPULATE_GROUP_WITH_QUERY built-in is to fill a record group with


data based on a given query, even if the record group was originally a nonquery group.

What built-in enables you to populate a record group with data that can be filtered dynamically at
runtime?

A . CREATE_GROUP_FROM_PARAMETER

B . POPULATE_LIST

C*. POPULATE_GROUP

D . SET_GROUP_FILTER

Explanation:
POPULATE_GROUP

What built-in enables you to change the contents of a static record group at runtime?

A . POPULATE_GROUP_FROM_QUERY

B . POPULATE_GROUP

C . ADD_GROUP_ROW

D*. You cannot change the contents of a static record group at runtime.

Explanation:
You cannot change the contents of a static record group at runtime.

The definition of a static group is one whose contents cannot be changed at runtime.

What built-in can populate a dynamic list item on a form with values from a record group?

A*. POPULATE_LIST

B . POPULATE_LIST_WITH_QUERY

C . SET_LIST_VALUES

D . RETRIEVE_LIST

Explanation:
POPULATE_LIST

QUESTIONS: How image_items can be populate to field in forms 4.0?


ANSWER: A fetch from a long raw database column PL/Sql assignment to executing the
read_image_file built_in procedure to get an image from the file system.

QUESTIONS: What is a Layout Editor?


ANSWER: The Layout Editor is a graphical design facility for creating and arranging items and
boilerplate text and graphics objects in your application's interface.

QUESTIONS: What is a Navigable item?


ANSWER: A navigable item is one that operators can navigate to with the keyboard during
default navigation, or that Oracle forms can navigate to by executing a navigational built-in
procedure.

QUESTIONS: What are the triggers associated with a check box?


ANSWER: Only When-checkbox-activated Trigger associated with a Check box.

QUESTIONS: Give the Types of modules in a form?


ANSWER: Form
Menu
Library

QUESTIONS: What is the content view and stacked view?


ANSWER: A content view is the "Base" view that occupies the entire content pane of the
window in which it is displayed. A stacked view differs from a content canvas view in that it is
not the base view for the window to which it is assigned

QUESTIONS: List the built-in routines for the controlling canvas views during run-time?
ANSWER: Find_canvas
Get-Canvas_property
Get_view_property
Hide_View
Replace_content_view
Scroll_view
Set_canvas_property
Set_view_property
Show_view
Alert

QUESTIONS: Explain the following file extension related to library?


ANSWER: .pll,.lib,.pld
The library pll files is a portable design file comparable to an fmb form file
The library lib file is a plat form specific, generated library file comparable to a fmx form file
The pld file is Txt format file and can be used for source controlling your library files
Parameter

QUESTIONS: What is the difference between Pre-Form & When-New-Form-Instance? What is


their sequence of firing?
ANSWER: Pre-Form happens first. There are restrictions on what built-ins you can call. No
block will be 'current'. If the trigger fails, then the form will be exited. It is used for doing security
checks - ie if the user is not allowed to run the form, then it exits out.

When-New-Form-Instance runs later, after it has sucessfully navigated to the first navigable
block, and fired any triggers as a consequence of that.
Questions: Pre Query & Post Query
Questions: How many times pre query and post query fired when we fetch 10 record from a
table ?
Answer: Pre Query fires only one time before the execution of the query on the other hand Post
Query fires after execution of the query and one time for every rows returned. Thus if there are 5
returns rows in a query then Pre Query will fire for 1 time only but Post Query will fire for 5
times.
Answer: Pre Query 1 Time - Before Query Post Query n Time ( n Times for n number
of records fetch by this query)

What is Master Detail Relationship ?


A Master-detail relationship is an association between two base table blocks - a master block and
a detail block. The relationship between the blocks reflects a primary key to foreign key
relationship between the tables on which the blocks are based.

What is coordination Event?


Any event that makes a different record in themaster block the current record is a coordination-
causing event.

What are the two phases of block coordination?


There are two phases of block coordination; the clear phase and the population phase. During the
clear phase, Oracle forms navigates internally to the detail block and flushes the obsolete detail
records. During the population phase, oracle forms issues a SELECT statement to repopulate the
details block with the detail records associated with the new master record. These operations are
accomblished through the execution og triggers.

what are most common types of complex master_detail relationship?


There are three most common types of complex master-detail relationships:
master with dependent details
master with independent details
detail with two masters

What arethe different types of Delete details we can establish in Master-Details?


Cascade
Isolate
Non-Isolate

What are the different default triggers created when Master Deletes Property is set to Non-
isolated?
Master Deletes Property Resulting Triggers
Non-Isolated (the default) On-Check-Delete-Master
On-Clear-Details
On-Populate-Details
What are the different default triggers created when Master Deletes Property is set to
Cascade?
Master Deletes Property Resulting Triggers
Cascading On-Clear-Details
On-Populate-Details
Pre-Delete

What are the different default triggers created when Master Deletes Property is set to
Isolated?
Master Deletes Property Resulting Triggers
Isolated On-Clear-Details
On-Populate-Details

What are the Coordination properties ina master detai relationship?


The coordinatio in properties are
Deferred
Auto-Query
These properties determine when the population phase of block coordination should occur.

What are the different types of coordinations of the Master with the Detail block?
Coordination of the detail block with its master can be
Immediate
Deferred with Auto-Query
Deferred with the no Auto-Query

what is the immediate coordination of the Master with the Detail block?
Immediate(Deferred False, Auto-Querry False) The default settings.
When a coordination-causing event occurs, the detail records are fetched immediately.

What is the deferred with Auto-Quey Coordination of the Master with the Detail block?
Deferred with Auto-Query(Deferred True,Auto-Query true) When a Coordination-causing events
occurs,Oracle Forms defers fetching the associated detail records until the operator navigates to
the detail block.

What is the Deferred with no Auto-Query Coordination of the Master with the Detail
block?
Deferred with Auto-Query(Deferred True,Auto-Query False) When a Coordination-causing
events occurs,Oracle Forms doesnt automatically fetch the detail records the operator must
navigate to the detail block and explicitly execute a query.

What are the Various Master and Detail Relation ships.


The various Master and Detail Relationship are
a) NonIsolated :: The Master cannot be deleted when a child is exisiting
b) Isolated :: The Master can be deleted when the child is exisiting
c) Cascading :: The child gets deleted when the Master is deleted.

What are the Various Block Coordination Properties


9) The various Block Coordination Properties are
a) Immediate
Default Setting. The Detail records are shown when the Master Record are shown.
b) Deffered with Auto Query
Oracle Forms defer fetching the detail records until the operator navigates to the detail block.
c) Deffered with No Auto Query
The operator must navigate to the detail block and explicitly execute a query

Which trigger are created when master -detail rela?


master delete property
* NON-ISOLATED (default)
a) on check delete master
b) on clear details
c) on populate details

* ISOLATED
a) on clear details
b) on populate details

* CASCADE
a) per-delete
b) on clear details
c) on populate details

which system variables can be set by users?


SYSTEM.MESSAGE_LEVEL
SYSTEM.DATE_THRESHOLD
SYSTEM.EFFECTIVE_DATE
SYSTEM.SUPPRESS_WORKING
What is an object group ?
An object group is a container for a group of obects. You define an object group when you want
to package related objects, so that you can copy or reference them in another module.

What are the different objects that you cannot copy or reference in object groups ?
Objects of different modules
Another Objects group
Individual block depndent objects
Program Units.

Can object group have a block?


Yes , object group can have block as well as program units.

What are referenced objects?


Referencing allows you to create objects that inherit their functionality and appearance from other
objects. Referencing an object is similar to copying an object, except that the resulting reference
object maintains a link to its source object. A reference object automatically inherits any changes
that have been made to the source object when you open or regenerate the module that contains
the reference object.

Can you store objects in library?


Referencing allows you to create objects that inherit their functionality and appearance from other
objects. Referencing an object is similar to copying an object, except that the resulting reference
object maintains a link to its source object. A reference object automatically inherits any changes
that have been made to the source object when you open or regenerate the module that contains
the reference object.

What is SECURE property?


Hides characters that the operator types into the text item. This setting is typically used for
password protection.
Can you store pictures in database? How?
Yes , in long Raw datatype.
Can a button have icon and lable at the same time ?
-NO
What is mouse navigate property of button?
When Mouse Navigate is True (the default), Oracle Forms performs standard navigation to move
the focus to the item when the operator activates the item with the mouse.
When Mouse Navigate is set to False, Oracle Forms does not perform navigation (and the
resulting validation) to move to the item when an operator activates the item with the mouse.
What are timers ? when when-timer-expired does not fire?
The When-Timer-Expired trigger can not fire during trigger, navigation, or transaction
processing.
Which trigger related to mouse?
* When-Mouse-Click
* When-Mouse-DoubleClick
* When-Mouse-Down
* When-Mouse-Enter
* When-Mouse-Leave
* When-Mouse-Move
* When-Mouse-Up

Can u set default font in forms?


Yes. Change windows registry(regedit). Set form45_font to the desired font.

Can u have OLE objects in forms?


Yes.

Can u have VBX and OCX controls in forms ?


Yes.

What is OLE Activation style property?


Specifies the event that will activate the OLE containing item.

Can u change the mouse pointer ? How?


Yes. Specifies the mouse cursor style. Use this property to dynamically change the shape of the
cursor.
What are snapshots and views
Snapshots are mirror or replicas of tables. Views are built using the columns from one or more
tables. The Single Table View can be updated but the view with multi table cannot be updated

Can u have OLE objects in forms?


Yes.

Can u have VBX and OCX controls in forms ?


Yes.

What is OLE Activation style property?


Specifies the event that will activate the OLE containing item.

Can u change the mouse pointer ? How?


Yes. Specifies the mouse cursor style. Use this property to dynamically change the shape of the
cursor.

What are system.mode ?


SYSTEM.MODE indicates whether the form is in Normal, Enter Query, or Fetch Processing
mode. The value is always a character string.

NORMAL- Indicates that the form is currently in normal processing mode.


ENTER-QUERY- Indicates that the form is currently in Enter Query mode.
QUERY- Indicates that the form is currently in fetch processing mode, meaning that a query is
currently being processed.

Usage Notes
When using SYSTEM.MODE to check whether the current block is in Enter Query mode, be
aware that if testing from a When-Button-Pressed trigger in a control block, Enter Query mode
will never be entered, because the control block is not the current block.

What are the different types of Modules available in Oracle Forms ?

There are three types of modules in Oralcle Forms :


Form Module - A collection of objects and code routines
Menu Module - A collection of Menus( a main menu and any number of submenu objects) and
menu item commands that together make up an application menu.
Library Module - A collection of user-named procedures,functions, and packages that can be
called from other modules in the application.

What are the default extensions of the files created by Forms Module ?
.FMB Form Module Binary
.FMX Form Module Executable

What are the default extensions of the files created by Menu Module ?
.MMB Menu Module Binary
.MMX Menu Module Executable

What are the default extensions of the files created by Library Module ?
.PLL PL/SQL Library Module Binary

What are the different types of editors?


There are three editors that can be used at run time the default editor, a system editor,or a
user-named editor.

What is the default editor?


The default editor provides standard editing features,including search/replace and cut,copy and
paste. The default editor is built into every form and is automatically available from every
text item.
What is the System Editor?
If there is a system editor available, you can specify that Oracle Forms should use the current
system editor, rather than the default editor.

What is the User named Editor?


A User named Editor has the same text editing functionality has the default editor, but, because it
is a named object,you can specify editor attributes such as window display size,position,and title.

What are the built-ins to display the user-named editor?


A User-named editor can be displayed programatically with built in procedure
SHOW_EDITOR,EDIT_TEXTITEM independent of any particular text item.

What is the difference between SHOW_EDITOR and EDIT_TEXTITEM?


Show_Editor is the generic built-in which accepts any editor name and takes some input string
and returns modified output string. whereas the edit_textitem built_in needs the input focus to be
in the textitem before the built_in is executed.

What are the Parameters?


Parameters provide a simple mechanism for defining and setting the values of inputs that are
required by a form at startup. Form parameters are variables of type CHAR,NUMBER, or
DATE that you define at design time.

What are the Built-ins used for sending Parameters to forms?


You can pass parameter values to a form when an application executes the
CALL_FORM,NEW_FORM,OPEN_FORM,or RUN_PRODUCT.

What is the maximum number of characters the parameter can store?


The maximum number of characters the parameter can store is only valid for CHAR parameters,
which can be up to 64k. Number parameters default to 23 bytes and DATE parameters default to
7 bytes.

How do you call other ORACLE products from Oracle Forms?


RUN_PRODUCT is a built-in used to invoke one of the supported Oracle tools products and
specifies the name of the document or module to be run. If the called product is unavailable at the
time of calkl, Oracle Forms returns a message to the operator.

How do you reference a Parameter?


In PL/SQL, you can reference and set the values of form parameters using bind variable syntax.
Example
:PARAMETER.parameter_name=VIKRAM; or
:block.item=PARAMETER.parameter_name;

How do you reference a parameter indirectly?


To indirectly reference a parameter
Use the NAME_IN and COPY built-ins to indirectly set and reference the parameter s value.
Example:
Name_In(PARAMETER.my_param)
Copy(SURESH,PARAMETER>my_param)

What are the difference Parameter Types?


Text Parameters
Data Parameters

When do you use DATA_PARAMETER type?


When the value of a data parameter being passed to a called product is always the name of a
record group defined in the current form. Data paremeters are used to pass data to products
invoked with the RUN_PRODUCT built-in subprogram.

Can you pass data parameters to forms?


No.

Working with Multiple Forms

How do you create a new session while opening a new form?


Using OPEN_FORM built-in setting the SESSION option.
Ex: OPEN_FORM(STOCKS,ACTIVE,SESSION);
When you invoke multiple forms with OPEN_FORM and CALL_FORM in the
Same application,state whether the following are TRUE or FALSE

Any attempt to navigate programatically to a disabled form in a call form stack is allowed
FALSE

An open form cannot execute the CALL_FORM procedure if a chain of called forms has
been initiated by another open form
TRUE

When a form is invoked with CALL_FORM, does Oracle Forms issues a savepoint?
TRUE/FALSE
TRUE

What are the various subevents a mouse double click event invokes?
Double_clicking the mouse consists of the mouse down,mouse up,mouse click,mouse down and
mouse up events.

State any three mouse event System Variables?


SYSTEM.MOUSE_BUTTON_PRESSED
SYSTEM.MOUSE_BUTTON_SHIFT_STATE
SYSTEM.MOUSE_ITEM
SYSTEM.MOUSE_CANVAS
SYSTEM.MOUSE_RECORD

What is an OLE?
Object Linking and Embedding (OLE) provides you with the capability to integrate objectrs from
many MS Windows applications into a single compound document. Creating integrated
applications enables you to use the features from several MS Windows application.

What is the difference between Object Embedding and Linking in Oracle Forms?
An Ole server applications creates OLE objects that are embedded or linked in OLE containers.
Examples of OLE servers are MS Word and MS Excel. OLE containers provide a place to
store,display and manipulate objects that are created by OLE server applications.

Example: Oracle Forms is an example of an OLE container

What are the different styles of Activation of OLE objects?


In-place Activation
External Activation

What is a TEXT_IO package?


The Text_IO package allows you to read and write information to a file in the file system.

What is an USER_EXIT?
Calls the user exit named in the user_exit_string invokes a 3GL program by name which has been
properly linked into your current Oracle Forms executable.

What is SYNCHRONIZE?
Synchronizes the terminal screen with the internal state of the form. That is SYNCHRONIZE
updates the screen display to reflect the information that Oracle Forms has in its internal
representation of the screen.

What is WHEN-DATABASE-RECORDN Trigger?


Fires when Oracle Forms first marks a record as an insert or an update. That is, the trigger fires as
soon as Oracle Forms Determines through validation that the record should be processed by the
next post or commit as an insert or update. This generally occurs only when the operator modifies
the first item in a record, and after the operator attempts to navigate out of the item.

What is the difference between $$DATE$$ and $$DBDATE$$?


$$$$DBDATE$$ retrieves the current database date
DBDATE$$ retrieves the current operating system date.

What is SYSTEM.COORDINATION_OPERATION?
SYSTEM.COORDINATION_OPERATION represents the coordination causing event that
occureson the master block in master detail relationship.

Example: System.Cooordination_Operation=

What is the difference between OPEN_FORM AND CALL_FORM?


when one form invokes another form by executing OPEN_FORM, the first form remains
displayed, and operators can navigate between the forms as desires.
When one form invokes another form by executing CALL_FORM, the called form is modal with
respect to the calling form. That is, any windowa that belong to the calling form are disabled and
operators cannot navigate to them until they first exit the called form.

What is NEW_FORM built-in?


When one form invokes another form by executing New_form, Oracle Forms exists the first form
and releases its memeory before loading the new form. Calling NEW_FORM completely replaces
the first form with the second. If there are changes pending in the first form, the operator will be
prompted to save them before the new form is loaded.

what is a Library?
A library is a collection of subprograms, including user- named procedures,functions and
packages.

What are the advantages of libraries?


Libraries provide a convenient means of storing client-side program units and sharing them
among multiple applications.
Once you create a library,you can attach it to any other form,menu or library ,module.
Then, you can call library units from triggers, menu item commands and user-named routines you
write in the modules to which modules to which you have attached the library.
When a library attaches another library,program units in the first library can reference program
units in the attached library.
Libraries support dynamic loading-that is, a librarys program units are loaded into an
application only when needed. This can significantly reduce the runtime memory requirements of
an application.

What is a STRIP_SOURCE generate option?


Removes the source code from the library file and generates a library file that contains only
pcode.
The resulting file can be used for final deployment, but cannot be subsequently edited in the
designer.
Example:f45gen module=old_lib.pll userid=scott/tiger
Strip_source=YES output_file=<new_file_name>

What are VBX controls?


VBX controls provide a simple method of building and enhancing user interfaces. The controls
can be used to obtain user input and display program output. The controls can be used to obtain
user input and display program output. VBX controls were originally developed as extensions for
the MS Visual Basic environment and include such items as sliders,grids and knobs.

What is a Timer?
A timer is an internal time clock that you programatically create to perform an action each time
the timer expires.

109. What are the built-ins associated with timers?


FIND_TIMER
CREATE_TIMER
DELETE_TIMER
What is the difference between POST-DATABASE-COMMIT and POST-FORM-
COMMIT?
POST-FORM-COMMIT fires once during the Post and Commit Transactions process, after the
database commit occurs. The Post-Forms-Commit trigger fires after inserts, updates and deletes
have been posted to the database, but before the transaction has been fibalized by issuing the
commit. The Post-Database-Commit Trigger fires after Oracle Forms issues the Commit to
finalize the transaction.

What is the difference between PRE-SELECT and PRE-QUERY?


Fires during Execute Query and Count Query processing, after Oracle Forms constructs the
SELECT statement to be issued, but before the statement is actually issued.
The Pre-Query trigger fires just before Oracle Forms
issues the SELECT statement to the database, after the operator has defined the example record
by entering query criteria in Enter Query Mode.
Pre-Query trigger fires before Pre-Select trigger.

What is the trigger associated with the TIMER?


WHEN-TIMER-EXPIRED

What is the use of the Transactional Triggers?


Using Transactional triggers we can control or modify the default functionality of the Oracle
Forms.
Oracle Form interview questions

http://www.careerride.com/Oracle-Form.aspx

How do you control the constraints in forms?

This can be done by selecting the Use Constrain Property to ON.

You can suppress or customize error messages in Forms?


This can be done by setting the message level of the system variable
SYSTEM.MESSAGE_LEVEL. The other way to do this is by using the ON-ERROR / ON-
MESSAGE triggers.
When will ON-VALIDATE-FIELD trigger executed?

ON-VALIDATE-FIELD trigger is fired when an existing value is attempted to override the fields
default behavior. For instance a user expects a city field to be mandatory and if on filling the form
it is left blank, a validation error occurs.

ON-VALIDATE-FIELD triggers are used for field validation. It fires when the field validation
status is New or changed. However, if the field status is already valid then any further change to
the value in the field will not fire this trigger.

What is the difference between system.current_field and system.cursor_field?

system.current_field gives the name of the field while system.cursor_field gives the name of the
field where the cursor is lying along with the block name.
The following sequence should be used to fire triggers when a form opens:

1. Pre-Form
2. Pre-Block
3. Pre-Record
4. Pre-Text-Item
5. When-New-Form-Instance
6. When-New-Block-Instance
7. When-New-Record-Instance
8. When-New-Item-Instance

The folowing sequence should be followed when you exit from the form:

1. post text item


2. post record
3. post block
4. post form

Can one issue DDL statements from Forms?

DDL (Data Definition Language) commands like CREATE, DROP and ALTER are not directly
supported from Forms because your Forms are not suppose to manipulate the database structure.

A statement like CREATE TABLE X (A DATE); will result in error:


Encountered the symbol "CREATE" which is a reserved word.

However, you can use the FORMS_DDL built-in to execute DDL statements. Eg:
FORMS_DDL('CREATE TABLE X (A DATE)');

FORMS_DDL can also be used to create dynamic SQL statements at runtime. The
FORMS_SUCCESS built-in can be used to determine if the last executed built-in was successful.
Can one execute dynamic SQL from Forms?

Yes, use the FORMS_DDL built-in or call the DBMS_SQL database package from Forms. Eg:
FORMS_DDL('INSERT INTO X VALUES (' || col_list || ')');

Just note that FORMS_DDL will force an implicit COMMIT and may de-synchronize the Oracle
Forms COMMIT mechanism.
[edit]
Forms won't allow me to use restricted built-in's. What should I do?

How to get around the "can't use a restricted built-in in built-in XXX" message:

1. Create a TIMER at the point where you want the navigation to occur. Eg.
create_timer('TIMER_X', 5, NO_REPEAT);

2. Code a WHEN-TIMER-EXPIRED trigger to handle the navigation


DECLARE
tm_name VARCHAR2(20);
BEGIN
tm_name := Get_Application_Property(TIMER_NAME);
IF tm_name = 'TIMER_X' THEN
Go_Item('ITEM_X');
END IF;
END;

Dirty but effective (didn't Oracle promise to fix this feature?).


[edit]
Can one change the mouse pointer in Forms?

The SET_APPLICATION_PROPERTY build-in in Oracle Forms allows one to change the mouse
pointer. Example:
SET_APPLICATION_PROPERTY(CURSOR_STYLE, BUSY);

The following cursor styles are supported:


BUSY - Specifies a busy symbol
CROSSHAIR - Specifies a crosshair symbol
DEFAULT - Specifies an arrow symbol
HELP - Specifies a help symbol/ Displayed as a hand in WebForms
INSERTION - Specifies an insertion symbol
HAND - Hand cursor pointer for Developer 6.0 and above
[edit]
Why doesn't my messages show on the screen?

Regardless of whether you call the MESSAGE() built-in with ACKNOWLEDGE,


NO_ACKNOWLEDGE, or with no mode specification at all, your message may or may not be
displayed. This is because messages are displayed asynchronously. To display messages
immediately, use the SYNCHRONIZE build-in:
message('...'); synchronize;

This can also be used to execute a query while the user is looking at the results of a previous
query.
[edit]
What happened to SQL*Menu?

From Forms V4.5, SQL*Menu is fully integrated into Oracle Forms. Application menus can be
added to your application by creating Menu Modules (*.MMB) and generate it to Menu Module
Executables (*.MMX).
[edit]
How does one create a custom toolbar?

Create a new block, let's name it "TOOLBAR" and a canvas named "C_TOOLBAR" (for
ilustration purposes). Put some iconic buttons on your canvas. Use the following properties for
these buttons:
Enabled: True
Navigable: False
Mouse Navigate: False

Now set the "Canvas Type" in the canvas property palette to "Horizontal Toolbar" and the "Form
Horizontal Toolbar Canvas" in the module property palette to your canvas name (C_TOOLBAR
in our case).
[edit]
How does one compile MS Help files?

The Microsoft Help Compiler does not ship with Designer/2000 or Developer/2000, but you can
download it from here:
Where to Get Compilers and Other Files?

Note: Designer/2000 includes a Help Generator that can generate source files for the Help
Compiler.
[edit]
How can I read/write OS Files from Forms?

OS files can be read/written from Forms using the TEXT_IO package in Forms. The TEXT_IO
package has a datatype FILE_HANDLE. It also has procedures FCLOSE, GET_LINE,
NEW_LINE, PUT, PUT_LINE & PUTF and a function FOPEN. Example:
DECLARE
file1 TEXT_IO.FILE_TYPE;
file2 TEXT_IO.FILE_TYPE;
str VARCHAR2(80);
BEGIN
file1 := TEXT_IO.FOPEN( 'input.txt','r' );
file2 := TEXT_IO.FOPEN( 'output.txt', 'w' );
TEXT_IO.GET_LINE( file1, str );
TEXT_IO.PUT_LINE( file2, str );
TEXT_IO.FCLOSE( file1 );
TEXT_IO.FCLOSE( file2 );
END;
[edit]
How can I generate all my forms in a batch?

Look at this DOS Batch file example:


@echo off
@echo. +----------------------------------------------------------
@echo. | FMXGNALL.BAT
@echo. +----------------------------------------------------------
@echo. |
@echo. | Create runtime FMXs from source FMBs
@echo. | Will convert ALL of the fmbs in the current direcotry
@echo. | Usage : FMXALL.BAT username/password@connect string
@echo. |
@echo. +----------------------------------------------------------
@echo.
@echo. Username/Password@connect_string = %1
@echo.

IF %1 == "" GOTO END

@echo Removing old FMX files


del *.fmx

@echo Creating the new FMX files


rem FOR %%F in (*.fmb) DO start /w f45gen32 userid=%1 batch=y module=%%F
FOR %%F in (*.fmb) DO start /w ifcmp90.exe userid=%1 module=%%F

@echo.
@echo Done!!! Remember to move the FMX files into your runtime directory.
@echo.

:END
[edit]
How does one get a form to run on Unix?

You need to design your form on your workstation. FTP or copy the Forms's FMB file to the Unix
box. If you generate for a terminal environment (character based), the syntax is:
f45gen USERID=userid/passwd@db_name MODULE_TYPE=FORM MODULE=module_name

If you want to generate a Library file, replace FORM with LIBRARY. Use f45genm to generate
your form in a Motif environment.

Use the "f45run" command to run your form. Forms 6i uses commands f60gen, f60run, etc.

1. What built-in can you use to open a second form but keep the first form in control?

A*. OPEN_FORM

B . SYSTEM.MOUSE_FORM

C . SYSTEM.CURRENT_FORM

D . CALL_FORM

E . FIND_FORM

Explanation:
OPEN_FORM

The OPEN_FORM built-in includes a NO_ACTIVATE option stipulating that the form being
opened should not receive control.

2. Which system variable can tell you the record on which the user has placed focus?

A . CURSOR_ITEM

B . CURRENT_RECORD

C*. CURSOR_RECORD

D . CURRENT_ITEM

Explanation:
CURSOR_RECORD
This is a record-level requirement, so the ITEM variables will not help you. There is no
CURRENT_RECORD system variable.

3. You are modifying a Customer form so that it has the ability to place the contents of the
customer's ZIP code into a separate form named Dealer. What built-in will you use?

A . ADD_PARAMETER

B . SET_APPLICATION_PROPERTY

C . WRITE_VALUE

D*. COPY

E . NAME_IN

Explanation:
COPY

This question requires the use of form bind variables, which cannot be referenced directly across
modules. The built-ins NAME_IN and COPY are used to read and write values across modules
with form bind variables. In this case, COPY is the right choice, because you wish to place values
in another field, rather than read them from the field.

5. Which of the following allows you to collect objects and easily reuse them in other forms?

A*. Object group

B . Trigger library

C . PL/SQL Library

D . Object package

E . Property class

Explanation:
Object group

Review the section "Grouping Related Items for Reuse" if you need a refresher on this topic.

6. You have created a client-lookup canvas, complete with code and all the necessary
objects, that has proven popular enough that others want to use it in their applications. How
can you make it available to the other applications from one central source point?

A . Copy the form module into a PL/SQL library.

B . Copy the canvas, code, and objects into a PL/SQL library.

C*. Copy the canvas, code, and objects into an object library.
D . Copy the form module into an object library.

E . Place the canvas, code, and objects into an object group that the other developers will
reference.

Explanation:
Copy the canvas, code, and objects into an object library.

Review the section "Reusing Objects from an Object Library" if you need a refresher on this
topic.

7. You have inherited an application from a developer who left to pursue a career in music.
While looking through the SALARY item's Property Palette, you notice that to the left of its
Data Type property is an arrow with an "X" at its point. What does this symbol indicate?

A . The setting has been derived from a Visual Attributes group, but has been overridden.

B . The setting has been derived from a Visual Attributes group.

C . The setting for this property is invalid.

D . The setting has been derived from a property class.

E*. The setting has been derived from a property class, but has been overridden.

Explanation:
The setting has been derived from a property class, but has
been overridden.

A Data Type property can only be derived from a property class. The arrow indicates that this has
been done. The "X" at its point indicates that the setting inherited from the property class has
been manually overridden for this item.

8. You want to read the value in an item on another form and use it in your current form.
What built-in will you use?

A . FIND_ITEM

B . NAME_IN

C . SET_ITEM_PROPERTY

D . GET_ITEM_VALUE

E*. COPY

Explanation:
NAME_IN
Some of the built-in names offered as choices don't exist. Of the ones that do, NAME_IN and
COPY are used to read and write values from/to items in other form modules. In this case,
NAME_IN is the right choice, because you wish to read a value in another field.

9. You create a module with two forms: Employee and Product. The application allows users
to have the forms open simultaneously. The users notice that when they save an Employee
record, any unsaved Product records are also committed; the reverse is also true. This is not
the behavior they want. What can you do to change it?

A . Open the first form using the OPEN_FORM built-in with the ACTIVATE option.

B . Open the first form using the OPEN_FORM built-in with the SESSION option.

C*. Open the second form using the OPEN_FORM built-in with the SESSION option.

D . Open the second form using the GO_FORM built-in with the ACTIVATE option.

E . Open the second form using the GO_FORM built-in with the NO_ACTIVATE option.

Explanation:
Open the second form using the OPEN_FORM built-in with the SESSION option.

Review the section "Calling One Form from Another" if you need a refresher on this topic.

10. You need a built-in that will copy a value into a global variable and create the variable if
it is undefined. What built-in has this ability?

A*. DEFAULT_VALUE

B . SET_VAR

C . COPY

D . CREATE_VAR

Explanation:
DEFAULT_VALUE

Review the section "Built-In Subprograms that Assist Flexible Coding" if you need a refresher on
this topic.

11. You are writing versatile code that checks whether your Employee form's Salary field is
visible; if it is, the code hides it; if it isn't, the code shows it. What built-in can you use to
determine which route the code will take?

A*. GET_ITEM_PROPERTY

B . GET_BLOCK_PROPERTY

C . GET_FORM_PROPERTY
D . GET_WINDOW_PROPERTY

E . GET_RECORD_PROPERTY

Explanation:
GET_ITEM_PROPERTY

Visibility is an item-level property, so you would use the GET_ITEM_PROPERTY to determine


the current status.

12. You want to use a single multipage tab canvas for different purposes. Which built-in lets
you set the labels for the pages dynamically when the application is running?

A . SET_PAGE_PROPERTY

B . SET_CANVAS_PROPERTY

C . SET_TAB_PROPERTY

D*. SET_TAB_PAGE_PROPERTY

Explanation:
SET_TAB_PAGE_PROPERTY

Review the section titled "Built-In Subprograms that Assist Flexible Coding" if you need a
refresher on this topic.

13. Which built-in enables you to change window properties dynamically while the
application is running?

A*. SET_WINDOW_PROPERTY

B . SET_VIEW_PROPERTY

C . GET_CANVAS_PROPERTY

D . GET_WINDOW_PROPERTY

E . SET_CANVAS_PROPERTY

Explanation:
SET_WINDOW_PROPERTY

14. At what object level do you place WHEN-WINDOW- triggers?

A*. Form

B . Canvas

C . Block
D . Window

Explanation:
Form

Windows do not have the capability to hold triggers, so you need to define a WHEN-
WINDOWS- trigger one level higher in the object hierarchy: the form level.

15. What happens to a function key's default functionality when you define a key trigger for
the function key?

A . The default functionality overrides whatever code is contained in the key trigger.

B . The default functionality is augmented by whatever code is contained in the key trigger.

C*. The default functionality is replaced by whatever code is contained in the key trigger.

D . Forms determines each time the function key is pressed whether it should execute the default
functionality or the key trigger.

Explanation:
The default functionality is replaced by whatever code is contained in the key trigger.

16. Which property and setting will prohibit the user from deleting a master record if
related detail records exist?

A . Relation property Delete Record Behavior set to Cascading

B . Master block property Delete Record Behavior set to Non Isolated

C . Master block property Delete Record Behavior set to Cascading

D*. Relation property Delete Record Behavior set to Non Isolated

E . Master block property Delete Record Behavior set to Isolated

Explanation:
Relation property Delete Record Behavior set to Non Isolated

17. What trigger can institute a default functionality, or no functionality, for every function
key that does not have an explicit trigger?

A . KEY-ELSE

B . KEY-FUNCTION

C . KEY-Fn

D*. KEY-OTHERS

E . KEY-NONE
Explanation:
KEY-OTHERS

The purpose of the KEY-OTHERS command is to replace the functionality of any key that can
have a trigger assigned to it but does not.

18. What built-in gives you the ability to change the cursor's appearance dynamically?

A*. SET_APPLICATION_PROPERTY

B . SET_CANVAS_PROPERTY

C . SET_CONTEXT

D . SET_ITEM_PROPERTY

E . SET_FORM_PROPERTY

Explanation:
SET_APPLICATION_PROPERTY

19. What built-in enables you to dynamically control when a detail block is populated?

A . SET_BLOCK_PROPERTY

B*. SET_RELATION_PROPERTY

C . SET_ITEM_PROPERTY

D . SET_WINDOW_PROPERTY

Explanation:
SET_RELATION_PROPERTY

20. What trigger is necessary for implementing a cascading delete in a master/detail


relation?

A . PRE-CASCADE

B . PRE-POST

C*. PRE-DELETE

D . PRE-UPDATE

E . POST-CASCADE

Explanation:
PRE-DELETE
The PRE-DELETE trigger is the only one that has the capability to intercept a master-record
deletion, check to determine if related detail records exist, and delete those detail records before
proceeding to delete the master record. A PRE-CASCADE, POST-CASCADE, or PRE-POST
trigger do not exist.

23. What built-in can you use to open a second form modally?

A . OPEN_FORM

B*. CALL_FORM

C . NEW_FORM

D . RUN_PRODUCT

Explanation:
CALL_FORM

CALL_FORM is the built-in that opens forms in a modal window.

24. What built-in can provide the name of the current form?

A*. GET_APPLICATION_PROPERTY

B . GET_BLOCK_PROPERTY

C . GET_WINDOW_PROPERTY

D . GET_FORM_PROPERTY

Explanation:
GET_APPLICATION_PROPERTY

27. How can you base a data block on a stored procedure that uses a ref cursor?

A . Using the Data Block Wizard, specify a data source type of table.

B*. Using the Data Block Wizard, specify a data source type of stored procedure.

C . After creating a data block manually, set the Query Data Source Name property to the
appropriate stored procedure.

D . After creating a data block manually, set the Query Data Source Columns property to the
appropriate stored procedure.

Explanation:
Using the Data Block Wizard, specify a data source type of stored procedure.
The options detailing the creation of a data block manually specify using the name of the stored
procedure in properties not designed to hold a procedure name. Using the Data Block Wizard,
you do not have to specify a data source type of table when you also have the option for stored
procedure.

28. Name a benefit of using a FROM clause query as the basis for a data block.

A . Can perform server joins, calculations, and lookups without needing specific access rights to
tables

B . Can utilize any PL/SQL code

C*. Can perform server joins, calculations, and lookups without needing to create a view

D . Can include user-defined parameters

Explanation:
Can perform server joins, calculations, and lookups without needing to create a view

The essence of the FROM clause query is its capability to nest SQL select statements in
subqueries that perform lookups, table joins, and calculations without relying on a database view.

30. You have created a sales application that uses one form for the sales ticket and a second
form to list the items being purchased. When the second form is called, the sales ticket is
still open and has pending changes. What mode will the second form be opened in?

A*. Post-only mode

B . Commit mode

C . Enter-query mode

D . Open-transaction mode

Explanation:
Post-only mode

32. What built-in enables you to pass data from a record group to a separate Oracle graph?

A . PASS_GROUP_DATA

B*. RUN_PRODUCT

C . OPEN_REPORT_WITH_GROUP

D . PASS_GROUP

Explanation:
RUN_PRODUCT
The RUN_PRODUCT built-in is designed to open other forms of graphics in their respective
runtime programs.

33. When you need to design a pair of forms in which one passes values to the other, when
and where should you define the parameters that will accept the values?

A*. In the called form, at design time

B . In the calling form, at design time

C . In the calling form, at runtime

D . In the called form, at runtime

Explanation:
In the called form, at design time

A parameter that is to be received must be defined at design time, and of course, it must be
defined in the called form. See the section titled "Passing Data Between Forms Using Parameter
Lists" for a refresher on this topic.

34. What reusable component enables you to lead your users through complicated
processes?

A . Navigator class

B . ActiveX controls

C . Standard Object library

D . Picklist class

E*. Wizard class

Explanation:
Wizard class

The Wizard class enables you to create your own custom wizards, which can lead users through
complicated processes.

35. What reusable component enables you to create an Object Navigator-like interface for
your own applications?

A . Picklist class

B . ActiveX controls

C . Calendar class

D*. Navigator class


E . Standard Object library
Wizard class

Explanation:
Navigator class

The Navigator class contains objects that make it easy to implement a Navigator interface in your
own applications.

36. What built-in enables you to find the internal ID of a timer?

A*. FIND_TIMER

B . WHEN-TIMER-EXPIRED

C . SET_TIMER

D . CREATE_TIMER

E . SET_TIMER_PROPERTY

Explanation:
FIND_TIMER

The FIND_TIMER built-in returns the internal ID of whatever timer's name is provided as an
argument.

37. What reusable component enables you to create a customized SmartClass?

A . Picklist class

B . ActiveX controls

C . Calendar class

D . Navigator class

E*. Standard Object library

Explanation:
Standard Object library

38. What built-in enables you to eliminate a timer?

A*. DELETE_TIMER

B . REMOVE_TIMER

C . FIND_TIMER
D . SET_TIMER

E . SET_TIMER_PROPERTY

Explanation:
DELETE_TIMER

The DELETE_TIMER built-in's sole purpose is to deactivate and eliminate timers. A


REMOVE_TIMER built-in does not exist.

39. You moved a number of your application's program units over to the server and started
experiencing DBMS errors. What built-in can you use to capture these errors and the
information they return?

A . DBMS_ERROR

B . DBMS_ERROR_NUM

C . DBMS_ERROR_STRING

D*. DBMS_ERROR_TEXT

Explanation:
DBMS_ERROR_TEXT

The DBMS_ERROR_TEXT built-in is designed specifically to return the text of error messages
sent back by the database server.

40. What trigger is used to respond to timers, and at what level is it most commonly
defined?

A . WHEN-TIMER-BEGINS at the block level

B . ON-TIMER at the window level

C . ON-TIMER-EXPIRE at the form level

D . ON-TIMER-BEGIN at the block level

E*. WHEN-TIMER-EXPIRED at the form level

Explanation:
WHEN-TIMER-EXPIRED at the form level

41. What trigger should you use to activate a calendar when the user presses the List of
Values function key while in a date field?

A . WHEN-LOV-OPEN

B . ON-LIST-OPEN
C . KEY-LIST-OPEN

D . ON-LISTVAL

E*. KEY-LISTVAL

Explanation:
KEY-LISTVAL

The KEY-LISTVAL trigger fires whenever the user presses the LOV function key.

42. What are the steps for embedding an existing chart on a form that is open in the Layout
Editor?

A . Execute the File | Import menu command, identify the chart file, and move the resulting chart
to the correct position on the canvas.

B . Invoke the Chart Wizard, identify the chart file, and move the resulting chart to the correct
position on the canvas.

C*. Create a chart item manually using the Chart Item button, identify the chart file in the item's
Property Palette, and move the resulting chart to the correct position on the canvas.

Explanation:
Create a chart item manually using the Chart Item button, identify the chart file in the item's
Property Palette, and move the resulting chart to the correct position on the canvas.

The Chart Wizard is only useful for creating new charts, so it is not a correct answer because the
question specifies that you are dealing with an existing chart. The command File | Import does not
exist in Form Builder. When dealing with an existing chart file, you bypass the Chart Wizard,
create a new chart item manually, and alter the new item's properties to use the existing chart file.

43. What built-in enables you to manipulate table structures at runtime?

A . DDL_RUNTIME

B*. FORMS_DDL

C . RUNTIME_DDL

D . DDL_FORMS

E . FORMS_RUNTIME

Explanation:
FORMS_DDL

The FORMS_DDL built-in gives you the ability to execute SQL commands during runtime. All
other potential answers to this question were made up (FORMS_RUNTIME is a program, not a
built-in).
44. What built-in enables you to determine which timer fired a WHEN-TIMER-EXPIRED
trigger?

A*. GET_APPLICATION_PROPERTY

B . GET_TIMER_PROPERTY

C . SYSTEM.TIMER

D . FIND_TIMER

Explanation:
GET_APPLICATION_PROPERTY

45. What file format must a third-party external procedure be in for Forms 6i to use it?

A . PL/SQL8

B*. DLL

C . C++

D . Structured Query Language

Explanation:
DLL

An external procedure can be written in a variety of third-party languages, but it must be stored in
the .dll format in order for Forms 6i to use it.

47. What is the order of firing the following triggers((Both are in form-level))
1. when-new-form-instance
2. pre-text-item

A. *Pre-Text , when-new-form-instance

B. When-new-form-instance, pre-text-item

C. None of the above

Explanation:
Pre-Text , when-new-form-instance

48. Difference between Post Query and Pre Query.


A. Post Query fires only once, Pre Query fires for each return row.

B. When Post Query fires, Pre Query returns more than one row.

C. *Post Query fires once for each record fetched from the query Pre Query fires only once.

D. None of the above


Explanation:
Post Query fires once for each record fetched from the query Pre Query fires only once.

49. What is the sequence of triggers firing?

Pre-form, post-form, when-new-form-instance, pre-text-item, pre-block, pre-record.

A. Pre-form, pre-record, pre-block, pre-text-item, post-form, when-new-form-instance

B. Pre-form, pre-block, pre-record, pre-text-item, post-form, when-new-form-instance

C. Pre-form, When-new-form-instance, pre-block, pre-record, pre-text-item, post-form

D. *Pre-form, pre-block, pre-record , pre-text-item, When-new-form-instance, post-form.

Explanation:
Pre-form, pre-block, pre-record , pre-text-item, When-new-form-instance, post-form.

50. What is the validation unit property of form module?

A. *Record_Scope, Item_Scope, Block_Scope, Default_Scope

B. Data_Scope, Trigger_Scope

C. Static_Scope, Dynamic_Scope

D. None of the above


Explanation:
Record_Scope, Item_Scope, Block_Scope, Default_Scope

Validation unit property of form module is


Record_Scope, Item_Scope, Block_Scope, Default_Scope and Form_Scope

1. You open a single property sheet to display properties for your DEPARTMENT data
block and DEPARTMENT canvas simultaneously. Which Property Palette display mode is
likely to show more properties?

A . Intersection

B*. Union

Explanation:
Union

The Intersection display mode shows only the properties that multiple selected objects have in
common, while the Union display mode shows all properties for all selected objects, whether the
objects share the properties in common or not.

2. What does it mean when the Property Palette displays ***** as a property's value?
A*. Two or more objects are selected, and their values for that property are not the same.

B . The value "*****" will be inserted into the field automatically.

C . You cannot update that property for the object you have selected.

D . The property is not applicable for the object you have selected.

Explanation:
Two or more objects are selected, and their values for that property are not the same

Because the Property Palette cannot display more than one value per property, the only way it can
deal with multiple objects is to display something special when those objects' values are different.
The special display is *****.

3. What happens if you select multiple objects, open the Property Palette, and change a
property's value?

A . The changed value displays as *****.

B . The Property Palette shows each object's old and new values for that property.

C*. The change is applied to all selected objects.

D . You cannot change a property for multiple objects at one time.

Explanation:
The change is applied to all selected objects

4. Which data block property would you consider changing if your records include LONG
items that are not likely to be edited?

A*. Update Changed Columns Only

B . Update Allowed

C . Query Allowed

D . DML Array Size

Explanation:
Update Changed Columns Only

If your records include LONG items that are not likely to be edited, this data block property can
improve application performance by keeping the application from sending the voluminous LONG
data back to the server during an update command.

5. What does the Property Palette toolbar field labeled Find do?

A . Locates other objects containing the same property as the one you currently have selected
B . Allows you to search-and-replace a given property value with a different value

C . Locates Form Builder files on your hard disk

D*. Forces the Palette to place its focus on the first property matching the characters you type

Explanation:
Forces the Palette to place its focus on the first property matching the characters you type

The Property Palette toolbar field labeled Find makes the Property Palette quickly jump to
specific properties. If the group containing the matching property is closed, the Find field will
even open it up for you.

6. What would be the result of completely deleting a data block from the Object Navigator?

A . The data blocks and components are deleted but can be retrieved using the Edit | Undo
command.

B . The data blocks and components are irreversibly deleted, and all components from the data
block are removed from any canvas that contained them, including the data block's frame and
boilerplate title text.

C*. The data blocks and components are irreversibly deleted, and all components from the data
block are removed from any canvas that contained them, but the data block's frame and
boilerplate title text will stay on the canvas.

D . The data blocks and components are irreversibly deleted, and all components from the data
block stay on the canvas and must be deleted manually.

Explanation:
The data blocks and components are irreversibly deleted, all components from the data block are
removed from any canvas that contained them, but the data block's frame and boilerplate title text
will stay on the canvas.

7. What does the Property Palette context bar do?

A . Nothing

B*. Identifies which object's properties are currently being displayed by the Property Palette

C . Identifies which program you are in when you open the Property Palette

D . Provides help instructions based on your location in the Property Palette

Explanation:
Identifies which object's properties are currently being displayed by the Property Palette.

8. Which of the following occur if you copy multiple properties from one object and paste
them into another?
A*. No Answer is Correct

B . Properties not relevant to the destination object will be added to that object.

C . Properties with blank properties will be pasted.

D . It is not possible to copy multiple properties at one time.

E . If the destination is a different type of object than the source, the destination object will be
changed to the same type of object as the source.

Explanation:
No Answer is Correct

The Property Palette can copy and paste individual or multiple properties. When copying multiple
properties, the Palette pastes only the properties for which an actual value is shown, and only the
properties that are relevant to the object receiving the pasted properties.

10. You have created a SALES_TICKET form for a point-of-sale application. You now want
to modify the Transaction_Date_Time item in the form so it is automatically populated with
the current date and time each time a new record is created. How can you accomplish this?

A . Set the Default Value property to SYSDATE.

B . Set the Initial Value property to SYSDATE.

C . Set the Default Value property to $$DATETIME$$.

D*. Set the Initial Value property to $$DATETIME$$.

Explanation:
Set the Initial Value property to $$DATETIME$$.

The is no Item property called Default Value, and while SYSDATE is a valid parameter in a SQL
query, it will not work in the Initial Value property; you must use $$DATETIME$$.

11. What does freezing the Property Palette do?

A . Enables you to change a property in multiple objects at one time

B . When multiple objects are selected, shows only those properties that all selected objects share
in common

C*. Forces the Palette to continue displaying properties for the currently selected object(s),
regardless of what object(s) you select from that point on

D . Opens a second Palette for comparing multiple objects' properties

Explanation:
Forces the Palette to continue displaying properties for the currently selected object(s), regardless
of what object(s) you select from that point on
12. What is the best way to ensure that an item cannot accept query criteria?

A . Set the item's Query Length property to 0.

B . Set the item's Queryable property to No.

C*. Set the item's Query Allowed property to No.

D . Set the item's Disable Query property to Yes.

Explanation:
Set the item's Query Allowed property to No

There are no properties named Disable Query or Queryable. Setting the Query Length property to
0 simply tells Oracle Forms 6i to use the item's length as the maximum query length.

17. To which of the following items does a control block directly correspond?

A . All Answers are Correct

B . Database

C*. No answer is correct

D . Table

E . Column

Explanation:
No answer is correct

A control block is not associated with a database object. Instead, it contains either controls (such
as buttons), or a group of items with single values (such as calculated subtotals).

18. When a control block is created, what items does it contain?

A . None, because, you cannot put items in a control block.

B . Text items for all columns in the related database table.

C*. None. You must manually create any items that will go into a control block.

Explanation:
None. You must manually create any items that will go into a control block.

By definition, a control block is not related to a database table. And you can put items into a
control block-that is what it's for. But you must do it manually after the block is created.
19. What is the definition of an input item?

A . A form object through which the user can view data

B . A dialog box

C . A graphics element affecting how a chart will look

D*. A form object through which the user can enter and change data

E . A form object through which the program can enter and change data

Explanation:
A form object through which the user can enter and change data

Input items are the basis of forms-they enable a user to add or edit data. A dialog box may contain
input items, but the dialog itself is a window, not an input item.

20. Users of your application have requested that they be able to see STOCK and
CUSTOMER canvases on the screen simultaneously. You add a second window to the
application. How can you make the CUSTOMER canvas use the second window?

A . Change the window's Primary Canvas property.

B . Change the canvas's Visual Attributes group.

C*. Change the canvas's Window property.

D . It is not possible to change a canvas's display window.

Explanation:
Change the canvas's Window property

A canvas's Window property determines which window the canvas is visible in. The Visual
Attributes Group has no window selection properties, and a window's Primary Canvas property
specifies the primary canvas for a window that displays multiple canvases.

21. Which check box property controls the text that displays next to the check box?

A*. Label

B . Text

C . Name

D . A check box's text is fixed and cannot be changed.

Explanation:
Label
Remember that both Prompt and Label can place text next to a radio button.

22. Which type of canvas is best suited for displaying tutorial text on the same canvas as the
form about which the user is being taught?

A . Tab

B . Viewport

C*. Stacked

D . Toolbar

E . Content

Explanation:
Stacked

The requirement that the tutorial text be visible on the same form limits the choices to either
stacked or tab. A tab canvas might be useful for a multipage tutorial, but the requirements did not
state the need for multiple pages, so a simple stacked canvas will fulfill the requirement.

25. What type of canvas can easily eliminate the need for a menu in your application?

A*. Toolbar

B . Content

C . Tab

D . Stacked

Explanation:
Toolbar

A toolbar canvas's sole purpose is holding buttons that initiate actions. The buttons can replace
every menu action your users would need to take.

27. You have created a form that contains two canvases, ten database items, and four
buttons. The items have all been placed into a group, and the buttons have been placed into
a separate group. What happens when you click one of the buttons in the Layout Editor?

A*. The group of buttons is selected.

B . Nothing is selected.

C . All groups are selected

D . The button is selected.


E . All items on the button's canvas are selected

Explanation:
The group of buttons is selected.

The primary reason for groups is to ensure that when any item in the group is selected, all items
are selected with it.

28. Which canvas type is most dissimilar to the others?

A . Content

B . Stacked

C . Tab

D*. Toolbar

Explanation:
Toolbar

Content, stacked, and tab canvases are all intended to display database data. The toolbar canvas
type is not; it is intended to display buttons that work in concert with the items on the other three
canvas types.

29. What is the primary difference between tab and stacked canvases?

A . A stacked canvas can contain push buttons.

B . A stacked canvas obscures what is beneath it.

C*. A tab canvas can contain multiple pages.

D . A tab canvas looks much cooler.

Explanation:
A tab canvas can contain multiple pages.

The essence of a tab canvas is the fact that it consists of multiple pages of data, each page
overlaying the others when it is selected by the user or developer. It is not possible to get this
functionality from a single stacked canvas.

30. What trigger would you use to execute code each time a user modifies the value of a
check box?

A . ON-NEW-CHECKBOX-INSTANCE

B . WHEN-CHECKBOX-UNCHECKED

C . WHEN-CHECKBOX-CLICKED
D . WHEN-CHECKBOX-CHECKED

E*. WHEN-CHECKBOX-CHANGED

Explanation:
WHEN-CHECKBOX-CHANGED

31. You would like to create a trigger that fires each time a window is closed by the user. You
will most likely place the trigger at which of the following levels:

A . Canvas level

B . Window level

C . Data block level

D . Item level

E*. Form level

Explanation:
Form level

Windows do not have triggers. Placing the WHEN-WINDOW-CLOSED trigger at the Form level
allows it to fire when any window in the module is closed.

32. What trigger would fire each time a new record is created?

A . ON-NEW-RECORD

B*. WHEN-NEW-RECORD-INSTANCE

C . WHEN-VALIDATE-RECORD

D . WHEN-DATABASE-RECORD

Explanation:
WHEN-NEW-RECORD-INSTANCE

ON-NEW-RECORD is not a valid trigger name. Choices WHEN-VALIDATE-RECORD and


WHEN-DATABASE-RECORD fire at other times. Review the section "Supplementing the
Functionality of Input Items" if you need a reminder on this topic.

33. What do you need to do to within Form Builder to run a form module in debug mode?

A . Enable Debug Messages and then run your form. The Debugger will appear automatically.

B*. Enable the Debug Mode button, run the form, and the Debugger displays automatically.

C . Run the form, and in the Forms Runtime program execute the Help | Debug menu command.
D . Enable the Debug Mode button, run your form, and in the Forms Runtime program execute
the Help | Debug menu command.

Explanation:
Enable the Debug Mode button, run the form, and the Debugger displays automatically.

See the section "Running a Form Module in Debug Mode" for a refresher on this topic.

34. When does the PRE-QUERY trigger fire?

A*. After the user enters query criteria, but before the query executes

B . Before the form enters Enter-Query mode

C . After the form enters Enter-Query mode, but before the user enters query criteria

D . After the query executes, but before records are shown to the user

Explanation:
After the user enters query criteria, but before the query executes

The PRE-QUERY trigger fires after Enter-Query mode but before a query's select statement has
been finalized, and therefore before the query is executed.

35. Which built-in causes an editor to display for a text item?

A . WHEN-NEW-ITEM-INSTANCE

B . SHOW-EDITOR

C*. SHOW_EDITOR

Explanation:
SHOW_EDITOR

SHOW-EDITOR is formatted as a trigger, not a built-in, and doesn't exist. WHEN-NEW-ITEM-


INSTANCE exists but is also a trigger, not a built-in.

36. You want to write a trigger that screens a query condition. At what level will you place
the trigger?

A . Block

B*. Form

C . Item

D . Record

Explanation:
Form
37. You wish to have certain values in a form initialized when the form is first opened. What
trigger will you use?

A . WHEN-NEW-CANVAS-INSTANCE

B*. WHEN-NEW-FORM-INSTANCE

C . WHEN-NEW-FORM

D . WHEN-FORM-OPENED

E . WHEN-NEW-CANVAS

Explanation:
WHEN-NEW-FORM-INSTANCE

None of the other choices are valid triggers.

38. What part of a trigger specifies the trigger's actions?

A . Type

B . Name

C*. Code

D . Scope

Explanation:
Code

A trigger's actions are defined entirely by its code.

40. What trigger can you use to ensure that a query entered by the user includes at least one
item that is indexed, and keep the query from occurring if not?

A*. PRE-QUERY

B . WHEN-CLEAR-BLOCK

C . ON-SELECT

D . POST-SELECT

E . ON-FETCH

Explanation:
PRE-QUERY
While the other triggers listed are query triggers, only the PRE-QUERY trigger fires before the
select statement is executed.

41. What is the purpose of the KEY-OTHERS trigger?

A . Provides code to execute if a key's own trigger fails

B*. Provides code to execute if user presses a key that has no trigger attached

C . Provides code to execute if user presses wrong key

D . Provides code that accesses another key's trigger and executes the code it contains

Explanation:
Provides code to execute if user presses a key that has no trigger attached.

See the section "Form Trigger Categories" for a refresher on this topic.

42. Your data analysis application is slowing the network to a crawl. You analyze the queries
users are performing and discover that the majority of their queries are too broad,
returning many more records than necessary. You decide to require that any query have at
least three fields containing criteria. What type of trigger can you use to enforce that
requirement?

A . POST-QUERY

B . ON-NEW-QUERY-INSTANCE

C . PRE-UPDATE

D*. PRE-QUERY

E . POST-UPDATE

Explanation:
PRE-QUERY

The PRE-QUERY trigger fires before a query's select statement has been finalized, and is
therefore ideal for screening query criteria before the query is executed.

44. What is the default level at which validation occurs in the Forms Runtime program?

A*. Item

B . Form

C . Block

D . Record
Explanation:
Item

By default, the Forms Runtime program validates an item immediately when the user tries to
leave the item.

46. How can you cause a block to use a database sequence to get unique IDs?

A . Set the Initial Value property to :sequence.sequence-name.nextval.

B . Set the Validate From List property to :sequence.sequence-name.nextval.

C . Set the DML Array Size property to :sequence.sequence-name.nextval.

D*. This action is not possible.

Explanation:
This action is not possible.

Data blocks cannot read sequences, and in fact cannot store values at all. Items, on the other hand,
can.
Give yourself half a point if you answered:
Set the Initial Value property to
:sequence.sequence-name.nextval.
which would have been the right answer if the question had referred to an item instead of a block,
and remember to pay closer attention to the wording of questions. In some Oracle exam
questions, a single word defines why one choice is right and another choice wrong.

47. You have written a contact-tracking application that includes a field for the last date a
client was contacted. You want to use a trigger to guarantee that whenever the date in that
field is changed, the date entered is later than the date that was there before. What is the
best trigger to use?

A . PRE-UPDATE

B . ON-COMMIT

C . ON-UPDATE

D*. PRE-COMMIT

E . POST-UPDATE

Explanation:
PRE-COMMIT

PRE-COMMIT is a form-level trigger that fires only once at the beginning of a transaction, so it
cannot perform validation on a row-by-row basis. ON-UPDATE and ON-COMMIT only occur if
you have replaced the default Forms Runtime transaction processing. POST-UPDATE occurs
after the update has occurred, so it is too late for a validity check. The remaining trigger, PRE-
COMMIT, is perfect.

48. Your form module's Validation Unit property is set to Form. The module includes a data
block that has a PRE-TEXT-ITEM trigger. At what point will the trigger fire?

A*. Never

B . When data is committed

C . Before the form is validated

D . After the form is validated

Explanation:
Never

The trigger will not fire because the object level defined in the trigger name item is smaller than
the module's validation unit.

50. You would like to keep the user from seeing the Forms Runtime program's "nn records
applied and saved" messages. What would you put in the form's WHEN-NEW-FORM-
INSTANCE trigger?

A . :system.message_level := 0;

B . :system.suppress_working := 'TRUE';

C . :system.suppress_working := 'FALSE';

D*. :system.message_level := 5;

Explanation:
:system.message_level := 5;

See the section "Controlling System Messages" for a refresher on this topic.

51. What is the last DML statement processed during a commit transaction?

A*. INSERT

B . UPDATE

C . DELETE

D . POST

Explanation:
The post command does not perform a commit. Of the three remaining choices, their processing
order is delete, update, and then insert.

52. Which of these built-ins can you use in a PRE-UPDATE trigger?

A . DOWN

B . COMMIT_FORM

C*. No Answer is Correct.

D . All Answers are Correct.

E . GO_ITEM

Explanation:
No Answer is Correct.

Each built-in listed is a navigational built-in, which cannot be used within the navigational trigger
PRE-UPDATE.

53. Which navigational built-in will move the focus to a subsequent record and place it on
the same item it was on in the original record?

A . NEXT_BLOCK

B . NEXT_ITEM

C*. DOWN

D . The described action is not possible from a single built-in.

Explanation:
DOWN

54. You would like to modify your form so it uses array processing to send DML statements
to the server in batches of 50. How would you do this?

A . Set the canvas's DML Array Size property to 50.

B*. Set the data block's DML Array Size property to 50.

C . Set the window's DML Array Size property to 50.

D . Array processing is limited to 25 records per batch.

Explanation:
Set the data block's DML Array Size property to 50.

Oracle Forms:
1. How to use single data block to query multiple tables
2. How to see the select statement when we issue execute_query
3. What are the system variables can be changed
4. How do you trap default forms processing ( DML)
5. What is the difference between post-query and post-select
6. What is purpose and order of firing the following triggers
1. on fetch
2. on select
7. What is the number of records buffered and Query array size properties of data block
8. What is the difference between object libraries and object groups
9. What is the difference between pre-query and pre-select triggers
10. What is the difference between pre-text-item and when-new-item-instance triggers
11. What is the order of firing the following triggers
1. when-new-form-instance
2. pre-text-item
(Both are in form-level)
12. What is the validation unit property of form module
13. What is the order of checking for a program unit from form module(local program
unit, library, stored procedure)
14. What is the difference between PL/SQL library and object library
15. what is the use of pre text/pre record/pre form
16. types of record groups and usage
17. what is id_null function
18. what is the return data types of id_null, show_alert, show_lov
19. what is the difference between call_form , open_form, new_form
Which is restricted built-in and why?
Which cant issue savepoint
What is session parameter of open_form?

21. What is synchronous and asynchronous parameters for run_product built-in


22. How do you suppress the logon screen while running the form for the first time
24. I have when-button-pressed trigger at form , block and item level
If I want to execute first block, form then item level trigger what changes I have to make.
25. what is data parameter and text parameter
26. Can we re-generate a library that is currently accessing by some other session
27. Can we re-generate and save a library that has been attached with some forms but they are
running currently.
28. Can we re-generate a library that has been attached with some forms , will the changes will
reflect in the referenced forms
29. What is the use of transactional triggers
30. Can we modify a sub classed object ( from object group and from object libraries)
31. How to set forms default directory
32. What is the return data type of populate_group built-in
33. What is the difference between OLE object created at design time and runtime
34. Will the timer will expire during large query executing
35. What is the built-in package available to manipulate text files( forms)
36. Can we define a relation between two control blocks
37. If we change relation property from non-isolated to cascading what changes will occur
38. What is the coordination property of a relation
39. If we delete on-clear-details trigger in a relation what happens
40. What is the first trigger fires when we run a form
41. What is the use of enforce primary key property of data block
42. Can we put items other than buttons in the toolbars
43. Which object relates content and stacked canvases(window)
44. How to navigate from one form to other form(built-in)
45. How to copy values from list item to record group
46. In a non-isolated relation what is the order of firing the following triggers
1. on-populate-details
2. on-clear-details
3. pre-query
4. pre-select
47. How to find out the previous form id in multi form application(it s system variable)

Oracle Reports

Set text, fill, border color

Function F_NAMEFormatTrigger return Boolean is


Begin

-- Automatically Generated from Reports Builder.


If (: AAN BETWEEN '1' and '3')
Then
srw.set_foreground_border_color('r50g100b0');
srw.set_border_pattern('solid');
srw.set_foreground_fill_color('r100g100b75');
srw.set_fill_pattern('solid');
srw.set_text_color('r100g0b0');
srw.set_font_face('Arial')
;
srw.set_font_size(12);
srw.set_font_weight(srw.bold_weight);
srw.set_font_style(srw.plain_style);
srw.set_font_style(srw.underline_style);
srw.set_font_style(srw.italic_style);
srw.set_font_style(srw.overstrike_style); End if;

Return (TRUE);
End;

How many types of columns are there and what are they?
Formula columns : For doing mathematical calculations and returning one value
Summary Columns : For doing summary calculations such as summations etc.
Place holder Columns : These columns are useful for storing the value in a variable

Can u have more than one layout in report


It is possible to have more than one layout in a report by using the additional layout option in the
layout editor.
Can u run the report with out a parameter form
Yes it is possible to run the report without parameter form by setting the PARAM value to Null

What is the lock option in reports layout


By using the lock option we cannot move the fields in the layout editor outside the frame. This is
useful for maintaining the fields .

Avoiding Layout Errors


To avoid common hierarchy errors in your report layout, always work in the Layout
Model using the Confine and Flex modes.

Confine Mode
- Work with Confine Mode enabled (closed padlock) to avoid accidently
moving one object outside or below its correct enclosing object.
- Work with Confine Mode disabled (open padlock) when you want to move
one object outside its enclosing object.
Flex Mode
- Work with Flex Mode enabled to adjust all affected objects when you move
or resize one object; the whole layout flexes to accommodate your changes.
- Work with Flex Mode disabled when you want to move an individual object
without moving other objects.

Repeating frame- Contains other objects and prints once for each record of the
associated group
Frame- Contains other objects and prints only once
Field- Contains data and other variable values and their formats
Boilerplate -Contains text or graphics that may appear anywhere in the
report

What are the minimum number of groups required for a matrix report
The minimum of groups required for a matrix report are 4

What are dynamic reports? How will you create them?

Following steps should be followed to build a Dynamic Report:


Create a temporary table first.
Then insert data to the temporary table using the After Form Trigger.
Generate the report using this temporary table in the Data Model.
Delete all records from the temporary table in the After Report trigger.

============================================================

Oracle reports:

1. Minimum requirement to make a matrix report


(Queries, Groups and Repeating frames)
2. How to change the font of an field at runtime based on the value
3. What is the anchoring and enclosing object
4. What is anchor object
5. How to rotate a field( data base field in the layout)
6. What is the difference between lexical and bind parameters
7. What is the place holder
8. What is the use of frame(not repeating)
9. What is the use of format triggers
10. SRW package
11. What is flex mode and confine mode
12. what difference between the logical and physical pages and planes
13. what is the use of group filter

Vous aimerez peut-être aussi