QUESTION 1
The DBA has added STATE column to the CUSTOMERS table and has asked you to add
a corresponding State item to the Customers block of the Orders form. You want
to make it easier for order entry clerks to enter the correct state abbreviation.
Most customers are located in five southeastern states, although on very rare
occasions there will be customers from outside that area. You decide to implement
a list item with five values for the State item and allow clerks to enter the state
abbreviation director for those customers outside the region. Which style of list item
will you create for the State item?

A. A poplist
B. A Tlist
C. A combo box.
D. There is no style of list item that allows users to enter values that are not on the list.
Correct Answer: C

QUESTION 2
You want to create a new data block. You click the Data Blocks node in the Object Navigator,
and then you click Create to invoke the Create Data Block dialog box. As you click through
the pages of the wizard, the page shown in the exhibit appears.
After looking at the exhibit, what do you know is true about this form?

A. The block you are creating is based on a view.
B. The block you are creating is based on a stored procedure.
C. The form contains at least one block in addition to the block you are creating.
D. In addition to the block you are creating, the form contains at least two other blocks
that are master-detail locks.
E. The block you are creating is based on a table that has at least one foreign key relationship
to another table.
Correct Answer: C

QUESTION 3
You are creating an application on a Windows PC, and you want to test a form. What are two ways
to start an OC4J instance on the PC? (Choose two)

A. From the Forms Builder menu.
B. From the Windows Start menu.
C. By executing a batch file that is included with Oracle9iDS.
D. From the test form that is included with Oracle9iDS.
E. From the HTML front end (runform.htm) that is included with Oracle9iDS.
F. By running a Forms Builder form, which automatically starts OC4J.
Correct Answer: BC

QUESTION 4
While updating an existing customer record using the Customers form, the user invoked the Orders
form by clicking the CONTROL.Orders_btn button. The When-Button-Pressed trigger had the following code:
CALL_FORM(‘orders’);
There is a requirement to navigate back to the Customers form after the order details have also been updated.
This will be achieved through a form-level Key-Exit trigger in the Orders form.
Which code should be used?

A. IF GET_APPLICATION_PROPERTY(calling_form) IS NOT NULL THEN EXIT_FORM(ASK_COMMIT,
NO_ROLLBACK;
ELSE
EXIT_FORM;
END IF;
B. VALIDATE(FORM_SCOPE);
IF :SYSTEM.FORM_STATUS <> ‘QUERY’ THEN GO_FORM(‘CUSTOMERS’);
ELSE
EXIT_FORM;
END IF;
C. ENTER
IF :SYSTEM.CURSOR_BLOCK = ‘CHANGED’ THEN COMMIT_FORM ;
ELSE
EXIT_FORM(NO_VALIDATE, NO_ROLLBACK);
END IF;
D. IF :SYSTEM.FORM_STATUS = ‘CHANGED’ THEN
COMMIT_FORM:
END IF;
GO_FORM(‘CUSTOMERS’);
Correct Answer: A

QUESTION 5
Your company assigns three possible credit ratings to customers: Poor, Good, and Excellent (represented
numerically by 1, 2, and 3). The DBA has just added a RATING column to the CUSTOMERS table and has
asked you to add an item to your form so that data entry clerks can populate the RATING column. To restrict
data entry clerks to one of these three values, you decide to create a radio group for the Rating item. With
the Customers block selected in the Layout Editor, you use the radio button to create three radio buttons on
the canvas. You then set the labels (Poor, Good, and Excellent) and values (1, 2, and 3) for the radio
buttons. You set the name of the radio group to RATING, its Data Type to Number, and its Database column to Rating.
You run the form to test it. When you execute a query, however, no records are returned, although there are many
customer records in the database. What can you do to make the query return the records?

A. Set the Mapping of Other Values property for the radio group to Null.
B. Create a fourth radio button for an undetermined credit rating and leave its value blank.
C. Create a fourth radio button for an undetermined credit rating and explicitly set its value to Null.
D. Choose a different type of input, because radio groups do not allow query of Null values.
Correct Answer: A

QUESTION 6
You are editing the INVENTORY tab canvas. You set the Tab Attachment Edge property to RIGHT. You also
change the ordering of INVENTORY tab pages in the Object Navigator. The Direction property has not been
customized.
What influence will this have on the display of tab pages at run time?
A. The highest tab page in the Object Navigator will appear at the far left of the tab stack.
B. The highest tab page in the Object Navigator will appear at the top of the tab stack.
C. The highest tab page in the Object Navigator will appear at the far right of the tab stack.
D. The highest tab page in the Object Navigator will appear at the bottom of the tab stack.
E. The lowest tab page in the Object Navigator will appear at the start of the tab stack.
Correct Answer: B

QUESTION 7
In the Product.fmb module, data block items are displayed on two content canvases. You define a set of icon buttons that users must have access to at all times.
Which canvases type is appropriate to display the buttons?

A. Overlay stacked canvas.
B. Overlay Tab canvas that is associated with a separate window.
C. Content canvas that is associated with the same window as the two content canvases.
D. Horizontal Toolbar canvas that is associated with a separate window.
E. Horizontal Toolbar canvas that is associated with the same window as the two content canvases.
Correct Answer: E

QUESTION 8
You are developing an Order Entry form. The When-New-Form-Instance trigger executes a query on the only block in the form. Instead of the alert shown in the exhibit, when the query cannot be performed you want to display to the user a message with the actual database error that is received.
What can you do to implement this?

A. In the When-New-Form-Instance trigger, insert this code after the EXECUTE_QUERY built in:
IF NOT FORM _SUCCESS THEN
message(DBMS_ERROR_TEXT);
END IF;
B. In the When-New-Form-Instance trigger, insert this code after the EXECUTE_QUERY built in:
IF NOT FORM_SUCCESS THEN
message(SQLERRM);
END IF;
C. Place this code in a form-level On-Error trigger:
IF ERROR_CODE = 40505 THEN
message(DBMS_ERROR_TEXT);
END IF;
D. Place this code in a form-level On-Error trigger:
IF ERROR_CODE = 40505 THEN
message(SQLERRM);
END IF;
E. Add this exception handler to the When-New-Form-Instance trigger:
EXCEPTION
WHEN ERROR_CODE = 40505 THEN
MESSAGE(DBMS_ERROR_TEXT);
F. Add this exception handler to the When-New-Form-Instance trigger:
EXCEPTION
WHEN ERROR_CODE = 40505 THEN MESSAGE(SQLERRM);

Correct Answer: C

QUESTION 9
Which of the items depicted in the Menu Editor (shown in the exhibit) must contain PL/SQL code?

A. Exit and Save only.
B. File, Edit, and Customers only.
C. All items shown in the Menu Editor should contain PL/SQL code.
D. Exit, Save, Customers Report, Open Customers, and Call Customers only.
E. Exit, Save, Cut, Copy, Paste, Customers Form, Customers Report, Open Customers, and Call Customers
only.
Correct Answer: D

QUESTION 10
To centralize some of your processing, you decide to write PL/SQL library modules that contain procedures that can be called from the triggers or menu items.
You want the message “Credit limit exceeded” to be displayed when the values in the order_total and credit_limit fields in the Orders form meet certain criteria.
Which code do you use?

A. IF :order_total > 10000
AND :credit_limit < 10000 THEN
MESSAGE(‘Credit limit exceeded’);
END IF;
B. IF :SYSTEM.cursor_item > 10000
AND :SYSTEM.trigger_item < 10000 THEN
MESSAGE(‘Credit limit exceeded’);
END IF;
C. IF NAME_IN(‘order_total’) > 10000
AND NAME_IN(‘credit_limit’) < 10000 THEN
MESSAGE(‘Credit limit exceeded’);
END IF;
D. IF COPY(‘ORDERS.order_total’) > 10000
AND COPY(‘ORDERS.credit_limit’) < 10000 THEN MESSAGE(‘Credit limit exceeded’);
END IF;
E. IF :ORDERS.order_total > 10000
AND :ORDERS.credit_limit < 10000 THEN
MESSAGE(‘Credit limit exceeded’);
END IF;
Correct Answer: C

QUESTION 11
How can you programmatically determine which button a user pressed to respond to an alert?

A. Use the GET_ALERT_PROPERTY function.
B. Use the GET_ALERT_BUTTON_PROPERTY function.
C. Check the value returned by the SHOW_ALERT function to see if it is 1, 2, or 3.
D. Check the value returned by the SHOW_ALERT function to see if it is ALERT_BUTTON1,
ALERT_BUTTON2, or ALERT_BUTTON3.

Correct Answer: D

QUESTION 12
You should enable the user to add additional values to a list item at run time. You must also ensure that the
Record Group LOCATIONS, which is used to populate the list item, can be updated with any user-supplied
value.
What two actions could you take to accomplish this? (Choose two)

A. Add a new value to the list item by calling the POPULATE_LIST built-in.
B. Add a new value to LOCATIONS by calling the POPULATE_GROUP built-in.
C. Add a new value to the list item by calling the ADD_LIST_ELEMENT built-in.
D. Remove duplicate values in LOCATIONS by calling the DELETE_LIST_ELEMENT built-in.
E. Add a new value to LOCATIONS by calling the ADD_GROUP_ROW and SET_GROUP_CHAR_CELL
built-ins.
F. Add a new value to LOCATIONS by calling the ADD_GROUP_ROW and SET_GROUP_NUMBER_CELL
built-ins.

Correct Answer: CE

QUESTION 13
You write a form in which there are two text items (FIELD 1 and FIELD2) and a button (BTN1) arranged in the following sequence:
FIELD1,
BTN2,
FIELD2
Which three conditions will combine to produce a Navigation Trap when the focus is in FIELD1 and the user presses the [Next Item] key? (Choose three)

A. FIELD1 has a Post-Text-Item trigger that fails.
B. FIELD1 has a Pre-Text-Item trigger that fails.
C. FIELD1 has a When-New-Item-Instance trigger that fails.
D. FIELD2 has a Post-Text-Item trigger that fails.
E. FIELD2 has a Pre-Text-Item trigger that fails.
F. FIELD2 has a When-New-Item-Instance trigger that fails.
G. The Keyboard Navigable property of BTN1 is set to No.
H. The Keyboard Navigable property of BTN1 is set to Yes.

Correct Answer: BEG

QUESTION 14
Which two statements define a Static Record Group? (Choose two)

A. The Record Group can be created only at run time.
B. The Record Group is not associated with a query.
C. The Record Group can be created and modified only at design time.
D. The Record Group can be created and modified at design time or at run time.
E. You can modify the structure of this Record Group by adding columns and rows at run time.
F. You can modify the structure of this Record Group by associating it with a query at run time.

Correct Answer: BC

QUESTION 15
There is a requirement in the Orders form to direct the focus depending on the value in the Sales Rep Id text
item. The design team has not yet decided on the exact details, but you propose the following style of code:
IF :ORDERS.Sales_Rep_Id = … THEN –value to be decided later GO_ITEM(…); –item to be decided later
ELSE
GO_ITEM(…); –item to be decided later
END IF;
A colleague suggest that the code could be called from the triggers listed below. In fact, not all these triggers can execute the code.
Which triggers can call the code? (Choose all that apply)

A. Post-Block on the Orders block.
B. Pre-Block on the Order_Items block.
C. When-New-Block-Instance on the Orders block.
D. Post-Text-Item on the Sales Rep Id text item.
E. When-Validate-Item on the Sales Rep Id text item.
F. When-New-Block-Instance on the Order_Items block.

Correct Answer: CF

QUESTION 16
The REGIONS non-query Record Group has two char columns.
Which built-in can you use to replace any existing rows in REGIONS with the results of a query?

A. ADD_GROUP_ROW(REGIONS’,2);
B. rgno :- POPULATE_GROUP(REGIONS’);
C. rgno :- POPULATE_GROUP_WITH_QUERY(‘REGIONS’, ‘select name, country, id from regiontable’);
D. rgno := CREATE_GROUP_FROM_QUERY(‘REGIONS’, ‘select name, country, id from regiontable’)
E. rgno := CREATE_GROUP_FROM_QUERY(‘REGIONS’, ‘select name, country, id from regiontable’).
F. rgno :- POPULATE_GROUP_WITH_QUERY(‘REGIONS’, ‘select name, country, id from regiontable’);
G. You cannot populate a non-query Record Group with the results of a query.

Correct Answer: F
QUESTION 17
You are a developer in the IT department of a municipal utility. You have been tasked with integrating two applications that are already in production.
The first application is a customer management system. Its main form is the Customers form, in which utility clerks enter and update customer information.
The second application is a GIS application. One of its forms, the Address form, enables clerks to enter an address, click a button, and have the address verified and property formatted according to postal standards. You need to add a button to the Customers form that will pass the customer address to the Address form and receive the properly formatted address back. A variable of the user-defined type Addr_Typ will contain the address information to be passed back and forth between the two users.
Which method of sharing data will you use?

A. Global variables
B. Global record group
C. Parameters
D. Shared PL/SQL library
E. There is no method of sharing data that enables you to use a variable of a user-defined type.

Correct Answer: D

QUESTION 18
Consider the following scenario:
In a multiform application, the user started in FormA.
1. From FormA, the user invoked FormB using CALL_FORM.
2. From FormB, the user invoked FormC using OPEN_FORM.
3. From FormC, the user invoked FormD using OPEN_FORM.
4. From FormB, the user invoked FormE using CALL_FORM.
There is an additional form in the application, called FormF. Which statement is true?

A. FormF can be invoked from FormC using CALL_FORM.
B. FormF can be invoked from FormA using OPEN_FORM.
C. FormF can be invoked from FormD using CALL_FORM.
D. FormF can be invoked from FormE using CALL_FORM.
E. FormF can be invoked from FormB using OPEN_FORM.
Correct Answer: D
QUESTION 19
Some forms that you wrote have been through part of the testing cycle. One of the testers has reported encountering a “Navigation Trap”
in your Orders form.Which scenario could have caused the Navigation Trap?

A. The Pre-Form trigger validates the user and time of day and also contains the code:
GO_ITEM(‘ORDERS.Date_Ordered’);
This is an illegal call to a restricted built-in, resulting in the Navigation Trap.
B. Two adjacent text items have When-New-Item-Instance triggers that fail when executed.
This left the internal cursor with no place to go when the tester attempted to navigate to them, and there was a fatal error for the form.
C. A Pre-Text-Item trigger allows the focus unto the text item the first time it is executed, but subsequent
execution raises a FORM_TRIGGER_FAILURE.
A Pre-Text-Item trigger on a different text item also fails.
D. The Next Navigation Data Block and Previous Navigation Data Block properties of the Orders and
Order_Items blocks have been set so that the focus cannot move to the Inventories block.
E. A When-Validate-Item trigger on a text item validates the contents of the wrong field, and you have
coded a GO_ITEM() that sends the focus back to the item that invoked it.
F. The Next Navigation Item and Previous Navigation Item properties of some text items have been set so
that the user is stuck in an infinite navigation loop.

Correct Answer: C

QUESTION 20
You are modifying a form that has four buttons on a canvas. Button2, Button3, and Button4 are all subclassed from Button1.
You want to change the width of all the buttons, so you open the Property Palette for Button1 and change its width to 60.
In the Layout Editor, you can see that all buttons have become smaller except for Button3. You open the Property Palette for
Button3 (as shown in the exhibit).
Why did the width for Button3 not change to 60?

A. Button3 was not properly subclassed.
B. Width is a changed property in Button3.
C. Width is a variant property in Button3.
D. Width is a default property in Button3.
E. Width is an inherited property in Button3.
Correct Answer: C

QUESTION 21
You have created three list items, each of which is in a different list style. You have defined the same four list elements
for each list item. The exhibit depicts the list items at run time after user input.
What is the list style of each list item?

A. List 1: Combo box; List 2: poplist; List 3: Tlist
B. List 1: poplist ;List 2: Combo box; List 3: Tlist
C. List 1: poplist; List 2: Tlist; List 3: Combo box
D. List 1: Tlist; List 2: Combo box; List 3: poplist
E. List 1: Combo box; List 2: Tlist; List 3: poplist
F. List 1: Tlist; List 2: poplist; List 3: Combo box

Correct Answer: B

QUESTION 22
Which is a method of reuse that is possible with a PL/SQL program unit, but not possible with a Forms
trigger?

A. Copy and paste text.
B. Create a library module.
C. Move to an object library.
D. Copy and paste within a module.
E. Copy to or subclass from another module.

Correct Answer: B

QUESTION 23
You are attempting to drag the Control and CV_Order objects to an object group as shown in the exhibit, but you are unable to release them
in the Object Group Children node of the object group.
What is the reason for this?

A. You cannot drag a canvas to an object group.
B. The Control block already exists in the object group.
C. You need separate object groups for different types of objects.
D. You cannot drag multiple types of objects to an object group at the same time.
E. You should drag them to the ObjectGroup98 node, not to its Object Group Children node.

Correct Answer:

QUESTION 24
A user has requested a change to the Summit.fmb module. The form has two windows, DEPT_WIN and EMP_WIN.
DEPT_WIN is always visible to the user. However, EMP_WIN is only occasionally required to be open. The user complains that once EMP_WIN is
open, it is not possible to make the window invisible. The user can navigate between the open windows. You are asked NOT to write code to
close EMP_WIN explicitly.
What changes should you make to the Summit form?

A. Define EMP_WIN as a modal window and set the Hide and Exit property to No.
B. Define EMP_WIN as a modal window and set the Hide and Exit property to Yes.
C. Define EMP_WIN as a modal window and set the Close Allowed property to Yes.
D. Define EMP_WIN as a modeless window and set the Hide and Exit property to No.
E. Define EMP_WIN as a modeless window and set the Hide and Exit property to Yes.
F. Define EMP_WIN as a modeless window and set the Close Allowed property to Yes.

Correct Answer: E

QUESTION 25
The Order Entry application contains a Quarterly_Report button that is used to print a report based on the system date. The same
report must be printed from several different forms, so you create an object library and drag the Quarterly Report button from the
Orders form to it. You then subclass that button into the other forms that need to print the report.
Which statement is true?

A. You should also place the When-Button-Pressed trigger from the Invoice button into the object library and
subclass it into the other forms.
B. You can modify the properties of the button in the object library by right-clicking its name in the object
library to invoke its Property Palette.
C. You cannot modify the properties of the button the forms where it is subclassed.
D. If you change the properties of the button in the object library, the changes will be reflected in the buttons
that are subclassed from it.

Correct Answer: A

QUESTION 26
You colleague created a list item that will be populated at run time by the JOBS Record Group. JOBS is populated from the EMP table using
one or more of the following three columns:
– SAL column, whose data type is number
– TITLE column, whose data type is varchar2
– JOB column, whose data type is varchar2
Assuming that any variables used are properly declared, which built-ins can you to create JOBS?

A. RETRIVE_LIST(list_id, ‘JOBS’);
B. POPULATE_GROUP_WITH_QUERY (‘JOBS’,
‘SELECT distinct initcap(job) as Job,’||
‘job as JOB from emp’);
C. POPULATE_GROUP_WITH_QUERY (‘JOBS’,
‘SELECT initcap(title) as Job,’||
‘sal as Salary from emp’);
D. rgid := CREATE_GROUP_FROM_QUERY (‘JOBS’,
‘SELECT distinct initcap(job) as Job ,’||
‘job as JOB from emp’);
E. rgid := CREATE_GROUP_FROM_QUERY (‘JOBS’,
‘SELECT initcap(title)as Job.’||
‘sal as Salary from emp’ )
F. rgid := CREATE_GROUP_FROM_QUERY (‘JOBS’,
‘SELECT distinct initcap(job) as Job,’||
‘job as JOB, sal as Salary from emp’);

Correct Answer: D

QUESTION 27
Your company assigns three possible credit ratings to customers: Poor, Good, and Excellent (represented numerically by 1, 2, and 3).
The DBA has just added a RATING column to the CUSTOMERS table and has asked you to add an item to your form so that credit ratings can be
]recorded. To restrict data entry clerks to one of these three values, you decide to create a radio group for the Rating item. With the items
node of the Customers block selected in the Object Navigator, you click Create. You then open the Property Palette for the new item and set
properties as follows:
Name: RATING
Item Type: Radio Group
Data Type: Number
Column Name: Rating
Canvas: CUSTOMER_CV
You open the CUSTOMER_CV canvas in the Layout Editor, but the Rating item does not appear. How can you get the Rating item to appear on the canvas?
A. Create a radio button for the radio group.
B. Set the Visible property of the Rating item to Yes.
C. Delete the radio group and create it in the Layout Editor because a radio group that is created in the
Object Navigator will not appear on a canvas.
D. Change the width of the Rating item because the default width of a radio group is 0, so it does not appear
on the canvas.

Correct Answer: A

QUESTION 28
The Orders form is required to initialize differently for different users. A database procedure
(GET_ROLE_NAME) is used to determine which database roles are enabled for the user logging on to the
form. If the user has the STORE_CLERK role enabled, certain buttons are disabled and the focus is sent to
the Customer_Id text item. If the user has the ADMIN_MGR role enabled, all buttons are available and the
focus is sent to the Date_Ordered text item. The buttons are set by a form-level procedure
(SET_BUTTONS).
The functionality is achieved with this code:
If get_role_name(USER) = ‘STORE_CLERK’ THEN set_buttons(‘STORE_CLERK’);
GO_ITEM(ORDERS.Customer_id’);
ELSE
set_buttons(ADMIN_MGR’);
GO_ITEM(‘ORDERS.Date_Ordered’);
END IF;
What is the best trigger to execute this code?

A. When-Validate-Item at form level, so that validation takes place as soon as the form initializes.
B. When-New-Form-Instance, because GO_ITEM is a restricted procedure and cannot be called from any
“Pre” triggers.
C. Pre-Form at form level, because the focus will be set before the items appear so that users do not see the
cursor moving around the screen.
D. When-Button-Pressed on any of the enabled buttons, so that it can still execute.
If it where written against the disabled buttons, it would never be fired for the STORE_CLERK role.
E. When-New-Item-Instance on the Date_Ordered Text item, because you want to check for the database
role and redirect focus away from here if the user is a STORE_CLERK.
F. Pre-Block on the first navigable block in the form, because it makes sense to redirect the focus just
before the cursor enters the block.

Correct Answer: B

QUESTION 29
You are designing a menu named Test that you saved in the file called Summit.mmb in the Forms Builder working directory. You attach the menu to the
Orders form by setting its Menu Module property to Summit, then you run the Orders form to test the menu. Before the form comes up, the alert shown
in the exhibit appears, followed by the message “FRM’41810: Error creating menu” displayed on the message line of the form.
You determine that the path setups are correct.
What can you do to resolve this error?

A. Change the Menu Module property of the Orders form to Test.
B. Change the Menu Module property of the Orders form to Test.mmb.
C. Change the Menu Module property of the Orders forms to Summit.mmb.
D. Select the Test menu in the Object Navigator and compile it.
E. Select the Orders form in the Object Navigator and compile it.

Correct Answer: D
QUESTION 30
In the Bonus.fmb module, you have created a Tab canvas and a Content canvas. The form has only one
window. You want to reduce the size of the window so that it will fit exactly around the Tab canvas. You are in the Layout Editor.
How do you resize the window?

A. 1. Select the Content Canvas from the drop-down list.
2. In the View menu, select Fit To Window to change the Width and Height properties of the window.
B. 1. Select the Tab Canvas from the drop-down list.
2. In the View menu, select Fit To Window to change the Width and Height properties of the window.
C. 1. Select the Tab Canvas from the drop-down list.
2. In the View menu, select Show View.
3. Select and resize the view black rectangle to change the Width and Height properties of the window.
D. 1. Select the Content Canvas from the drop-down list.
2. In the view menu, select Show View.
3. Select and resize the view black rectangle to change the Width and Height properties of the window.
E. 1. Select the Content Canvas from the drop-down list.
2. In the View menu, select Snap to Grid to change the Width and Height properties of the window.
F. 1. Select the Tab Canvas from the drop-down list.
2. In the View menu, select Snap to Grid to change the Width and Height properties of the window.
Correct Answer: D

QUESTION 31
You are running the Employees form in debug mode and stepping through a procedure (as shown in the
exhibit). You know that the stored function RAISE_SALARIES performs the correct calculation. Which Forms Builder menu item from the Debug menu
should you select to position the marker on the line of code that
begins as follows?
IF :employees.salary > 2000

A. Go
B. Step Into
C. Step Over
D. Step Out
E. Stop
Correct Answer: C

QUESTION 32
You are developing a Human Resource form. You use the Data Block and Layout wizards to create the
Department and Employees blocks with default property values for the items, then you rearrange the items in the Layout Editor.
When you test the form, you discover that pressing the Tab key with the cursor in the Department Id field
moves the cursor to the Manager Id field. Pressing the Tab key twice more moves the cursor to Department Name and, finally, to Location Id.
What are three ways to change the navigation order so that the cursor moves from Department Id to
Department Name when tabbing forward through the items in the Departments block? (Choose three)

A. Set Keep Cursor Position for all items to Yes.
B. Set the Required property of the Department_Name item to Yes.
C. Set the Keyboard Navigable property for the Manager_Id item to No.
D. Set the Automatic Skip property for the Department_Name item to No.
E. Set the Next Navigation Item property for the Department_Id item to DEPARTMENT_NAME.
F. Set the Previous Navigation Item property for the Department_Name item to DEPARTMENT_ID.
G. Drag the Department_Name item to a position just below the Department_Id item in the Object Navigator.

Correct Answer: CEG

QUESTION 33
There is a requirement to modify the default functionality of the [Commit] key. To implement this
requirement, you decide to write a Key-Commit trigger that will force validation and issue a commit if necessary.
Which trigger code will achieve this?

A. ENTER;
IF GET_ITEM_PROPERTY
(:SYSTEM.trigger_item,ITEM_IS_VALID) = ‘TRUE’ THEN COMMIT_FORM;
END IF;
B. ENTER
IF :SYSTEM.FORM_STATUS = ‘CHANGED’ THEN COMMIT_FORM;
END IF;
C. VALIDATE(ITEM_SCOPE);
IF :SYSTEM.BLOCK_STATUS <> ‘NEW’ THEN DO_KEY(COMMIT_FORM’);
END IF;
D. VALIDATE;
IF :SYSTEM.BLOCK_STATUS <> ‘NEW’ THEN DO_KEY(COMMIT_FORM’);
END IF;
E. VALIDATE(ITEM_SCOPE);
IF :SYSTEM.BLOCK_STATUS = ‘NEW’ THEN COMMIT_FORM;
END IF;
Correct Answer: B

QUESTION 34
The Warehouse.fmb module contains two data blocks. You want to display items from each data block on separate content canvases.
You must ensure that both content canvases are visible together at run time. Which two statements about content canvases are correct? (Choose two)

A. Only one content canvas can be displayed in a window during a run time session.
B. A content canvas can be associated with a window by setting the Windows property of the canvas.
C. Two or more content canvases can be displayed by associating each of them with a different window.
D. A content canvas can be associated with a window by setting the Primary Canvas property of the window.
E. A content canvas can be associated with two or more windows by setting the Primary Canvas property of
the windows.
F. Two or more content canvases can be displayed by setting their viewpoints to be smaller than the window
with which they are to be associated.
Correct Answer: BC

QUESTION 35
In the Human Resourced form, you created an LOV based on a record group. The record group query selects the job title and job ID from the JOBS table,
which contains the following records:
JOB_TITLE JOB_ID
– ————-
Accountant FI_ACCOUNT
Accounting Manager AC_MGR
Administration Assistant AD_ASST President AD_PRES
Programmer IT_PROG
Public Accountant AC_ACCOUNT
Purchasing Clerk PU_CLERK
Purchasing Manager PU_MAN
Sales Manager SA_MAN
Sales Representative SA_REP
The Job_ID value is returned to the Employees.Job_Id item in the form. You attach the LOV to the Job_ID item and set its Validate from List property
to yes, You run the form to test it. You enter “Pro” (without the quotes) into the Job_ID item. What is the behavior when you press the Tab key?

A. The LOV will appear.
If the user clicks Cancel, the cursor will move to the next navigable item in the form.
B. The LOV will appear.
If the user clicks Cancel, the cursor will remain in the Job_ID item and an error message will appear.
C. The LOV will not appear.
The Job_ID item will be assigned the value IT_PROG.
The cursor will move to the next navigable item in the form.
D. The LOV will not appear.
The Job_ID item will be assigned the value Programmer.
The cursor will move to the next navigable item in the form.
E. The LOV will not appear.
The cursor will remain in the Job_ID item and an error message will display.
Correct Answer: C

QUESTION 36
The validation unit for the Orders form is set to Item. This master-detail form contains an Order block and a multirecord Order Items block.
Why might you want to create a When-Validate-Record trigger on the Orders block in this form?

A. To check that all required items in the Orders block have values.
B. To check that all required items in the Order Items block have values.
C. To check that the shipping data for is not earlier than the order date.
D. To perform some logic whenever a user navigates to a different record in the queried block.
Correct Answer: C
QUESTION 37
Examine the PL/SQL code. The code uses the valmess package. To resolve compiler or run-time errors, what changes should you make to the trigger code?
A. No changes are required.
B. Delete the BEGIN and END keywords.
C. Define an EXCEPTION section to handle exceptions.
D. Define all Forms Builder variables with the format: :block_name.item_name.
E. Define a DECLARE section to declare PL/SQL variables.
Correct Answer: D

QUESTION 38
You are implementing a search function for employees that relies on the fact that the PREVIOUS_RECORD built-in fails when the cursor is in the first record. The code for the Search button is shown in the exhibit is: IF :control.search_text IS NOT NULL THEN
GO_BLOCK(‘Employees’);
LAST_RECORD;
WHILE :employees.last_name != :control.search_text LOOP PREVIOUS_RECORD
IF NOT FORM_SUCCESS then
MESSAGE(‘Employees not found’);
RAISE FORM_TRIGGER_FAILURE;
END IF;
END LOOP;
MESSAGE(The requested employee has been found!’);
END IF;
You do not want users to see the alert shown in the exhibit. FRM-40100 is the least severe type of error message.
Which line(s) of code placed just prior to the PREVIOUS_RECORD built-in in this trigger will achieve this, while allowing more severe messages
to be displayed?
A. IF DMBS_ERROR_CODE = 40100 THEN
NULL;
END IF;
B. IF ERROR_CODE = 40100 THEN
NULL;
END IF;
C. IF MESSAGE_CODE = 40100 THEN
NULL;
END IF;
D. SYSTEM.MESSAGE_LEVEL:= ‘0’;
E. SYSTEM.MESSAGE_LEVEL:= ‘5’;
F. SYSTEM.MESSAGE_LEVEL:= ’25’;
Correct Answer: E

QUESTION 39
The Products.fmb module has one content canvas, which displays information about products sold by your company. You increase the canvas display area
by creating an overlay canvas that enables image of
selected products to be displayed on request.
How do you position the overlay canvas on the content canvas?

A. Set the Width and Height properties of the content canvas.
B. Set the Viewport X/Y Position properties for the stacked canvas.
C. Set the Viewport Width and Height properties of the stacked canvas.
D. Set the Viewport X/Y Position on Canvas properties for the content canvas.
E. Set the Viewport X/Y Position on Canvas properties for the stacked canvas.
Correct Answer: B

QUESTION 40
Which three statements about display items are true? (Choose three)
A. A display item cab be a database item.
B. The content of a display item can be read and changed programmatically.
C. If a display item is part of a control block, its Calculation Mode property is ignored.
D. A display item does not have a Format Mask property, so a text item must be used where that
functionality is required.
E. The contents of a display item can be validated using a Key-Next-Item trigger with the scope of the
display item.
F. A display item does not have a Multi-Line property, so a text item must be used where that functionality is
required.

Correct Answer: ABF

QUESTION 41
An application uses a menu that contains a Check type menu item. You want to programmatically toggle the checked/unchecked state of the Check item.
Which two built-ins can you use to accomplish this? (Choose two)
A. FIND_ITEM
B. REPLACE_MENU
C. FIND_MENU_ITEM
D. GET_ITEM_PROPERTY
E. SET_ITEM_PROPERTY
F. SET_MENU_ITEM_PROPERTY
G. GET_MENU_ITEM_PROPERTY
Correct Answer: FG

QUESTION 42
The Orders form must display the item total for products ordered. You decide to implement this functionality by creating an item in the
ORDER_ITEMS block as a Calculated item. The item total is calculated by multiplying the UNIT_PRICE of the product by the QUANTITY ordered.
Which two items properties must be set? (Choose two)
A. Database item must be set to No.
B. Update Allowed must be set to No.
C. Summary Function must be set to Sum.
D. Item Type must be set to Display Item.
E. Calculation Mode must be set to Formula.
F. Calculation Mode must be set to Summary.
G. Summarized Block must be set to ORDER_ITEMS.
H. Formula must be set to an appropriate calculation.
Correct Answer: AE

QUESTION 43
You created and compiled the Summit menu whose properties are shown in the exhibit. You attach the menu to the Orders form and run it to test the menu.
In addition to the Window item, which items from the Summit menu will appear in the top-level menu of the running form when the Summit menu is displayed?

A. Menu1 only.
B. Save and Exit only.
C. File, Edit, Reports, and Applications.
D. File_Menu, Edit_Menu, Reports_Menu, and Application_Menu.
E. Save, Exit, Cut, Paste, Order, Invoice, Customers, and Warehouse.
Correct Answer: B

QUESTION 44
What happens when you click Run Form Debug in Forms Builder?

A. The forms run on your local machine using a debug executable client.
B. The form runs in a three-tier environment using the application server URL that you specify in run-time
preferences.
C. The form runs in a three-tier environment using the application server URL that you specify in debug
preferences.
D. The form runs in a simulated three-tier environment using an applet viewer that is included with the
product to enable debugging.
Correct Answer: B

QUESTION 45
In a multiform application, one form must invoke another. The form modules are called Customers and
Orders internally, but the compiled files are saved as CUST.FMX and ORD.FMX, respectively. There is a button in the Customers form with a
When-Button-Pressed trigger to invoke the Orders form. There is a requirement that only one Orders form can be running at a time, so the trigger
must check to see if the form is already open. If it is open, the focus must be sent to it. If it is not open, it has to be opened. Which of these
trigger codes will achieve the required functionality?
A. IF NOT FIND_FORM(‘ord’) THEN
OPEN_FORM(‘ord’);
ELSE
GO_FORM(orders’);
END IF;
B. IF ID_NULL(FIND_FORM(‘ord’)) THEN
OPEN_FORM(‘orders’);
ELSE
GO_FORM(ord’);
END IF;
C. IF ID_NULL(FIND_FORM(‘orders’)) THEN
OPEN_FORM(‘ord’);
ELSE
GO_FORM(orders’);
END IF;
D. IF NOT FIND_FORM(‘orders’)) THEN
OPEN_FORM(‘orders’);
ELSE
GO_FORM(orders’);
END IF;
Correct Answer: C

QUESTION 46
Exhibit:
SQL> desc orders
Name Null? Type
—————————— ————– —————— ORDER_ID NOT NULL NUMBER(12) ORDER_DATE NOT NULL DATE
ORDER_MODE VARCHAR2(8)
CUSTOMER_ID NOT NULL NUMBER(6) ORDER_STATUS NUMBER(2)
ORDER_TOTAL NUMBER(8,2)
SALES_REP_ID NUMBER(6)
SQL> desc order_items Name Null? Type
—————————– ————– —————— ORDER_ID NOT NULL NUMBER(12) LINE_ITEM_ID NOT NULL NUMBER(3)
PRODUCT_ID NOT NULL NUMBER(6) UNIT_PRICE NUMBER(8,2)
QUANTITY NUMBER(8)
ITEM_TOTAL NUMBER(10,2)
Examine the structure of the ORDERS and ORDER_ITEMS tables. The ORDERS table has been
denormalized in that the column ORDER_TOTAL contains the total cost for all ORDER_ITEMS linked to
particular order via the foreign key ORDER_ID. You need to create a form that maintains the denormalized column in the database and displays
the updated Order_Total whenever the Unit_Price or Quantity is changed on the screen. To achieve this, you have created a non-base-table
Calculated item (ITEM_COTAL in the Order Items block) that calculates UNIT_PROCE * QUANTITY and another non-base-table Calculated item
(ORDER_TOTAL in the Control block) that summarized ITEM_TOTAL.
Which three additional tasks must you do? (Choose three)

A. Set the Database Item property of ORDER_TOTAL to Yes.
B. Set the Update Allowed property of ORDER_TOTAL to Yes.
C. Set the Single Record property of the Control block to Yes.
D. Set the Query All Record property of the Order Items block to Yes.
E. Set the Precompute Summaries property of the Order Items block to Yes.
F. Create a null canvas item based on the ORDER_TOTAL column and set its Copy Value From Item
property to CONTROL.ORDER_TOTAL.
G. Write a database trigger to update ORDER_TOTAL in the ORDERS table when a change is written to the
ORDER_ITEMS table.
H. Write a stored procedure to update ORDER_TOTAL in the ORDERS table and call it from a When-
Validate-Item trigger whenever a change is made to the UNIT_PRICE or QUANTITY field
correct Answer: CDE

QUESTION 47
You are developing a form for customers to order tickets to events. There is an Event_Date item in the Tickets block of the form that has an LOV
whose record group uses the following query.SELECT event_name, event_date FROM events
ORDER BY event_date
In the Choose_Event block of the form, you want users to be able to select an event name into an
Event_Name item. The event name will be selected from a LOV that is sorted by the name of the event. You do not want to modify either the LOV or
the record group at run time. Which statement is true for the LOV and the record group as specified at design time?

A. You must define a new LOV for the Choose_Event.Event_Name item that uses a different record group.
B. You must define a new LOV for the Choose_Event.Event_Name item, but you can base it on the same
record group.
C. You can use the same LOV and record group for the Choose_Event.Event_Name item that you used for
the Tickets.Event_Date item.
D. You can use the same LOV for both items, but you should specify that each item must use a different
record group for the LOV.
Correct Answer: A

QUESTION 48
There is a requirement to replace the standard List of Values functionality with a separate LOV from that will be invoked via a call to a procedure
(show_lov_form). This will be implemented via a button, but the [List] key and the Edit > Display List option in the default menu should also invoke
the LOV form. Which triggers should you use?

A. A form-level Key-Listval trigger with the code
DO_KEY(‘LIST_VALUES’);
and the When-Button-Pressed trigger with the code show_lov_form;
B. A form-level Key-Listval trigger with the code
DO_KEY(‘LIST_VALUES’);
and the When-Button-Pressed trigger with the code DO_KEY(‘LIST_VALUES’);
C. A form-level Key-Listval trigger with the code
show_lov_form;
and the When-Button-Pressed trigger with the code DO_KEY(‘LIST_VALUES’);
D. A form-level Key-Listval trigger with the code
LIST_VALUES;
and the When-Button-Pressed trigger with the code EXECUTE_TRIGGER(‘show_lov_form’);

Correct Answer: C

QUESTION 49
The menu that appears by default in a Forms application does not quite meet your needs, so you decide to
create a custom menu. You create and compile a menu module called Test with three submenus that contain PL/SQL code, and you attach the Test menu to a form.
How will the menu of the form appear and perform at rune time?

A. You will see only the three submenus from the Test menu (plus the Window menu that is usually
displayed), and you will not be able to call code from the default menu in your form.
B. You will see the three submenus from the Test menu merged with the submenus of the default menu
(plus the Window submenu that is usually displayed).
C. You will see only the submenus of the default menu (plus Window), but you will be able to call code from
the Test menu in your form.
D. You will see only the Test menu submenus (plus Window), but you will be able to call code from the
default menu in your form.
E. You will see only the submenus of the default menu (plus Window) until you issue the REPLACE_MENU
built-in in the form.

Correct Answer: A

QUESTION 50
The Credit_Rating in the Customers block of an Order Entry form must be restricted to three possible values: Good, Bad, or Null (the latter value indicates that the credit rating has not been determined). Order entry
clerks must be able to update this item to any of these three values. You want to change the item to a check box labeled “Credit Risk” that should be selected if the customer has bad credit. The check box should not be selected if the customer’s credit rating is good or undetermined. You change the item type to Check Box and set other properties as shown in the exhibit, then run your form and insert three records: two with good credit and the check box clear, and one with bad credit and the check box selected. You commit the data and query the records, with the following result set:
CUST_ID LAST_NAME FIRST_NAME CREDIT_RATING
———— —————– —————— ———————— 1001 Gamer Pam 1002 Wallace Sheila
1003 Maslen Glenn Bad
The first two records show an undetermined credit rating, although your intention was to set the value to Good for those customers.
What change must be you make in the properties of the Credit_Rating item to enable values of Good, Bad, and Null to be entered?

A. Change the Initial Value property to Good.
B. Change the Check Box Mapping of Other Values property to Not Allowed.
C. Change the Initial Value to Good and the Value When Unchecked property to Null.
D. Change the Initial Value property to Good and the Check Box Mapping of Other Values property to Null.
E. Change the Initial property to Good and the Check Box Mapping of Other Values property to Checked.
F. Change the item type.
It is not appropriate to use a check box to enable entry and update of more than two values in an item.

Correct Answer: F

QUESTION 51
The user must be able to invoke a list of values for valid sales representative in the Orders form. To facilitate this, you created a button and positioned it next to the Sales Rep Id field.
The text item has these properties set:
– Required: Yes
– List of Values: SALES_REP_LOV
– Validate from List: No
The button has these properties set:
– Keyboard Navigable: Yes
– Mouse Navigate: Yes
– Iconic: Yes
– Icon Filename: list.ico
An appropriate LOV has been created (called SALES_REP_LOV) and associated with the text item. An icon file (list.gif) exists in the appropriate directory. All other properties are left at their defaults. You write a WhenButton-Pressed trigger at the item level with this code:
LIST_VALUES;
To test the form, you attempt to enter a new record. What is the run-time behavior of the form?

A. The form doesn’t compile and therefore cannot be tested.
B. The icon is not displayed on the button.
When you click the Sales Rep Id field and then click the button, the LOV is invoked.
C. The icon is displayed on the button.
When you click in the Sales Rep Id field and then click the button, the LOV is not invoked and an error is
reported.
D. The icon is not displayed on the button.
When you click in the Sales Rep Id field and then click the button, the LOV is not invoked and an error is
reported.
E. The icon is displayed on the button.
When you click in the Sales Rep Id field and then click the button, the LOV is invoked.

Correct Answer: D

QUESTION 52
The Orders form is a master-detail form in which ORDERS is a single-record master block and ORDER_ITEMS is a multirecord detail block.
During testing of the Orders form, users have complained about the behavior of Enter-Query mode. In the form they are testing, they are unable to navigate out of the current block while they are in Enter-Query mode. However, they would like to be able to carry out the following procedure:
1. Press [Enter Query] while in the master block.
2. Enter some search criteria.
3. Navigate to the detail block.
4. Enter more search criteria (while the form is still in Enter-Query mode).
5. Press [Execute Query] to have the criteria applied to both blocks at once. How can you provide the requested functionality?

A. The requested functionality is the default behavior.
You simply need to remove or rewrite the triggers you wrote that “broke” the form.
B. Use a Key-Entqry trigger on the master block to redirect the focus to the detail block after the search
criteria have been entered in the master block.
C. You cannot perform the requested operation with a master-detail form.
The restriction on navigating out of the current block during Enter-Query mode cannot be circumventedĀ“.
D. Use a Key-Exeqry trigger on both the master and detail blocks to call a centralized procedure and have
the procedure handle the navigation.
E. Use a Key-Nxtblk trigger on the ORDERS block to cause navigation to the ORDER_ITEMS block.
This will work because Key triggers can fire in Enter-Query mode and call restricted built-ins such as GO_BLOCK().
F. Use a combination of Key-Entqry and Key-Exeqry triggers at form level to call generically written
procedures to test where the current focus is and set global variables that a form-level Key-Nxtblk trigger can use to redirect the focus.

Correct Answer: C

QUESTION 53
You are developing a Human Resourced form with a single block to display employees. For each employee, you look up the department name to display in a non-base-table item. When you test the form, you discover that when you enter a new employee as the first employee in a new department that has not yet been created in the database, you get the following error when you try to navigate out of the Department_Id item:
FRM-40735: WHEN-VALIDATE-ITEM trigger raised unhandled exception ORA-01403.
The ORA-01403 exception is the NO_DATA_FOUND exception. When this message is received, you cannot navigate out of the Department_Id item. You add the following code to the When-Validate-Item trigger on the Department_Id item to display a meaningful message to the use:
EXCEPTION
WHEN NO_DATA_FOUND THEN
MESSAGE(‘You must create the department before adding employees to it’); You run the form again to test it, and you enter a new employee and a department ID that does not exist in the database. When you click into the Employee_Name Item, the appropriate message is displayed, but the cursor moves to
Employee_Name. What must you change so that the user will not be able to navigate out of the
Department_Id item when entering a department ID that is no in the database?

A. If you write a handler for the exception, you will not be able to stop navigation from occurring, so you
should put the following code in an On-Error trigger instead:
IF ERROR_CODE = 40735 THEN
MESSAGE(‘You must create the department before adding employees to it’); END IF;
B. Add the following code at the end of the exception handler:
IF DBMS_ERROR_CODE = 1403 THEN
RAISE FORM_TRIGGER_FAILURE;
END IF;
C. Add the following line at the end of the exception handler:
RAISE FORM_TRIGGER_FAILURE;
D. If you write a handler for the exception, you will not be able to stop navigation from occurring.
Instead, create a Key-Next-Item trigger on the Department_Id item with the following code:
NEXT_ITEM
IF NOT FORM_SUCCESS THEN
MESSAGE(‘You must create the department before adding employees to it’); END IF;
E. You cannot stop navigation from occurring when displaying a custom message.
You should delete the exception handler and allow Forms to display the default message.

Correct Answer: C

QUESTION 54
You are testing a form.
How can you programmatically disable validation during testing?

A. You cannot programmatically disable validation in a form.
B. Use the SET_FORM_PROPERTY built-in to set the VALIDATION property.
C. Use the SET_FORM_PROPERTY built-in to set the VALIDATION_UNIT property.
D. Use the SET_FORM_PROPERTY built-in to set the DEFER_REQUIRED_ENFORCEMENT property.
E. Use the CLEAR_FORM, CLEAR_BLOCK, and EXIT_FORM built-ins with the NO_VALIDATE argument.

Correct Answer: B

QUESTION 55
You are developing a Human Resourced application. There is a query-only form that displays employee IDs,
names, and department numbers. When users double-click an employee ID, another form opens displaying
all the columns from the EMPLOYEES table so that users can update the records (as shown in the exhibit)
You use a global variable to pass the value for Employee_Id to the update form. When users modify the
name and exit the update form, how can you synchronize the data in the query-only form so that the new
name is displayed?

A. Requery the data in a When-New-Form-Instance trigger of the query-only form.
B. Requery the data in a Pre-Form trigger of the query-only form.
C. Requery the data in a When-Form-Navigate trigger of the query-only form.
D. Pass the new name value in a global variable from the update form to the query-only form and assign it
to the appropriate name item in a When-New-Form-Instance trigger of the query-only form.
E. Pass the new name value in a global variable from the update form to the query-only form and assign it
to the appropriate name item in a Pre-Form trigger of the query-only form.
F. Pass the new name value in a global variable from the update form to the query-only form and assign it
to the appropriate name item in a When-Form-Navigate trigger of the query-only form.

Correct Answer: C

QUESTION 56
The Orders form has two Record Groups: the SHIP Record Group that was created at design time, and the SOLD Record Group that was created at run time.
You are required to write a Program Unit that will delete both Record Groups. Which two statements describe your situation? (Choose two)

A. You cannot delete Record Group SOLD at run time.
B. You cannot delete Record Group SHIP at run time.
C. You should delete Record Group SOLD with built-in DELETE_GROUP(‘SOLD’);
D. You should delete Record Group SHIP with built-in DELETE_GROUP(‘SHIP’);
E. You should delete Record Group SOLD with built-in DELETE_GROUP_ROW(SOLD’,ALL_ROWS);
F. You should delete Record Group SHIP with built-in DELETE_GROUP_ROW(SHIP’,ALL_ROWS);

Correct Answer: BC

QUESTION 57
The following On-Error trigger was written to give users a more meaningful message when they press the Up
key when the cursor is in the first record (the FRM-40100 error) and to display default messages for all other
errors:
IF message_code = 40100 THEN
MESSAGE(‘You are already at the first record’);
ELSE
MESSAGE(message_type || ‘-‘ ||
to_char(message_code) | ‘-‘ || message_text);
END IF;
When you test the form, you still get the FRM-40100 message when you press the Up key while the cursor is in the first record. Your custom message does not appear.
What correction can you make so that the code functions properly?

A. Change all occurrences of message_code, message_type, and message_text to error_code, error_type,
and error_text.
B. Eliminate the to_char function because message_code is a varchar2 value.
C. To keep the remaining code from executing, add after the second line:
RAISE FORM_TRIGGER_FAILURE;
D. Change all occurrences of message_code, message_type, and message_text to DBMS_error_code,
DBMS_error_type, and DBMS_error_text.

Correct Answer: A

QUESTION 58
You are writing a Forms application, and you plan to include several JavaBeans. What should you do to facilitate the communication between Forms and the JavaBeans?

A. Write Java wrapper classes to integrate the JavaBean into Forms.
B. Use the FBEAN PL/SQL package and its built-ins to register and invoke the JavaBeans.
C. Add a special layer of Java code to register the properties and methods of the JavaBeans.
D. You do not need to use any built-in package or write any code to integrate JavaBeans into forms.

Correct Answer: B

QUESTION 59
Order entry clerks use the Orders form to enter the shipping date of an order. Once the shipping date has been entered into the database, the clerks are not allowed to modify it. What property can you set in the Property Palette for the Shipping_Date item to ensure that this data entry restriction is enforced?

A. Enabled
B. Database Item
C. Update Allowed
D. Insert Allowed
E. Update Only If NULL

Correct Answer: E
QUESTION 60
Why would you want to create a control block in a Forms module?

A. To control all items in other blocks that are not base table items.
B. To control relationship between a master block and its detail block.
C. To control the way additional forms are opened and to track the call stack.
D. To control navigation within the form so that users cannot randomly navigate to any item.
E. To place various control items (such as buttons) on a single block that is not related to a table in the
database.
Correct Answer: E

QUESTION 61
You want to find out if a certain menu item exists in the menu that is attached to a form, so you use the following code in a When-Button-Pressed trigger.
DECLARE
mi_id BOOLEAN;
BEGIN
MI_ID:= FIND_MENU_ITEM(‘File.Exit’); IF mi_id THEN
MESSAGE(‘The Exit menu item exists’);
END IF;
END;
Is this code correct? If not, what would you need to change?

A. No changes are needed; the code is correct.
B. Use a different built-in; FIND_MENU_ITEM is not correct.
C. Do not place the menu item name in single quotes; precede it with a colon instead.
D. The variable mi_id should be of the MENU_ITEM data type, and the IF clause should check to see that
the variable is not null.
E. Change the arguments for FIND_MENU_ITEM; the menu name and the menu item name should be
separate arguments.

Correct Answer: D

QUESTION 62
You use the Data Block and Layout wizards to create a block based on the ORDER_ITEMS table. The table does not include a column for the item total, so you create a text item in the block to display the item total. You change six properties for the Item_Total text item, then run the form and execute a query.
The exhibit shows the form as it appears at run time.
What are four of the properties of the Item_Total item that you manually changed? (Choose four)

A. Update Allowed
B. Column Name
C. Database Item
D. Format Mask
E. Summary Function
F. Enabled
G. Update Only If NULL
H. Justification

Correct Answer: CDFH Section: (none)

QUESTION 63
The DBA added a STATE column defined as VARCHAR2(2) to the CUSTOMERS table. This column will
contain two-letter state abbrevations; because the CUSTOMERS table is quite large, storing complete state names would waste space in the database. The DBA asks you to add a corresponding State item to the Customers block of the Orders form.
You open the Layout Editor of the Orders form and create a list item on the canvas in the Customers block. In the Property Palette for the list item, you change the Name property to State and the Database Item
property to Yes. You then open the Elements in List property and add some state abbreviations and names to the list, as shown in the exhibit.
When you run the form to test it, after selecting a value from the list and clicking Commit, you receive an FRM error. Its corresponding database error is the following:
ORA-01401: inserted value to large for column
What should you do to correct this problem?

A. Have the DBA increase the column width in the database.
B. Change the List Style property for the State item to Tlist.
C. Change the List Style property for the State item to Combo Box.
D. Set Initial Value for the State item to one of the elements in the list.
E. Set Mapping of Other Values for the State item to a two-letter state abbreviation.
F. Change the elements in the list of the State item so that the list elements are the state names and the list
element values are the state abbreviations.

Correct Answer: F

QUESTION 64
You want to standardize the appearance of certain text items in a particular form, so you create a Visual
Attribute called TEXT_ITEM_VA and define values for all of its properties. Which four properties can you set by applying TEXT_ITEM_VA to the items? (Choose four)

A. Width
B. Height
C. Prompt
D. Font Weight
E. Fill Pattern
F. Font Spacing
G. Foreground Color

Correct Answer: DEFG Section: (none)

QUESTION 65
You want to create a calculated item in the Control block of the Human Resourced form. This item will contain the total of employee salaries for employees in a particular department. Which statement is true about how to create the calculated item?

A. You can create it by first creating a text item and then changing the item type.
B. You can create it in the Layout Editor using a special tool that creates a calculated item.
C. You can create it by first creating a display item and then setting appropriate properties in its Calculation
property group.
D. You can create it in the Layout Editor by selecting the Salary item of the Employees block, selecting the
Control block from the block list, clicking the Text Item tool, and drawing a text item on the canvas to
automatically calculate a sum of the selected Salary item.

Correct Answer: C

QUESTION 66
What is an indication that the Data Block Wizard is in reentrant mode?

A. There is a tabbed interface.
B. The Finish button is disabled.
C. There are no Next> or <Back buttons.
D. The page to create relations does not appear.
E. You cannot switch between different types of data sources.
Correct Answer: A

QUESTION 67
The Department.fmb module contains the DEPT data block. You wish to display DEPT items at run time. Which two are valid considerations that affect your design? (Choose two)

A. A DEPT item can be associated directly with a window.
B. A DEPT item cannot be associated directly with a window.
C. A DEPT item can be assigned to a content canvas by setting the item Canvas property.
D. A DEPT item can be assigned to a canvas by setting the Data Block Scroll Bar Canvas property.
E. A DEPT item is automatically assigned to the null_canvas.
It can be assigned to a window by setting the item Rendered property.
F. A DEPT item is automatically assigned to the null_canvas.
It can be assigned to a window by setting the item Synchronize with item property.

Correct Answer: BC

QUESTION 68
You created a LOV based upon a three-column Record Group called CUST, which was created at design
time. Examine the structure of the CUST Record Group in the exhibit. At run time, the user sometimes
requires the LOV to be populated from the PROD Record Group. Which two built-ins will enable you to create the PROD Record Group and repopulate the LOV? (Choose two)

A. RETRIVE_LIST(lov_id,’PROD’);
B. POPULATE_LIST(lov_id, ‘PROD’);
C. SET_LOV_PROPERTY(lov_id,GROUP_NAME,’PROD’);
D. CREATE_GROUP_FORM_QUERY (‘PROD’;
‘SELECT P_id, ‘||
‘ date_sold as Date, Name as Desc ‘|| ‘ from products ‘ );
E. CREATE_GROUP_FROM_QUERY (‘PROD’,
‘SELECT P_id as ID, ‘||
‘ Name as Desc, date_sold as Date ‘|| ‘ from products ‘ );
F. CREATE_GROUP_FROM_QUERY (‘PROD’,
‘SELECT rownum as index, P_id as ID, ‘||
‘ Name as Desc, date_sold as Date ‘||
‘ from produts ‘ );

Correct Answer: CE

QUESTION 69
You want to create a menu item to enable users to sort the tabular display of a form either by customer ID, last name, or department ID. You decide to create a radio group as shown in the exhibit.
Which statement about this radio group is true?

A. You must create the radio group before creating Radio menu items for it.
B. You must create a Radio menu item before the radio group is created.
C. You must name the radio group the same as the submenu name so that it will be associated with that
submenu.
D. You must name the radio group Sort, the same as the submenu label, so that it will be associated with
that submenu.

Correct Answer: B

QUESTION 70
You created a LOV based on the query Record Group PRODUCTS. The LOV is attached to the :PROD.
DESC text item. The validate from List property is set to No for the :PROD.DESC Text item. Which built-in can you call to execute the query associated with the Record Group?

A. SHOW_LOV
B. ADD_GROUP_ROW
C. ADD_GROUP_COLUMN
D. SET_GROUP_SELECTION
E. CREATE_GROUP_FORM_QUERY
F. VALIDATE(ITEM_SCOPE) when :PROD.DESC is the current item.

Correct Answer: A

QUESTION 71
You are developing and testing a Forms application on a machine that has plenty of memory. The Customers
block, whose Property Palette is shown in the exhibit, is based on a table that contains a large number of
records.
The initial query on the block appears quickly. However, after scrolling through hundreds of records in the block, you notice that it is taking longer and harder to retrieve the next set of records. What can you do to improve performance without losing the fast initial response?

A. Set Single Record to Yes.
B. Set Query All Records to Yes.
C. Set Query Array Size to a larger number.
D. Set Number of Records Buffered to a larger number.
E. Set Number of Records Buffered to a smaller number.
F. Set Number of Records Displayed to a smaller number.

Correct Answer: D

QUESTION 72
In the Products.Fmb module, a trigger currently fires each time you navigate to any item in the Product data block. You want to make a change so that the trigger fires only when you navigate to a specific item. What change should you make to the trigger to correct this behavior?

A. Change the Trigger scope from Block to Form.
B. Change the Trigger scope from Block to Item.
C. Change the Trigger scope from Form to Item.
D. Change the Trigger scope from Form to Block.
E. Change the Trigger scope from Item to Block.
F. Set the Trigger Execution Hierarchy property to After.
G. Set the Trigger Execution Hierarchy property to Before.

Correct Answer: B

QUESTION 73
You have been asked to define a data block based on a query that is dependent on SQL only. The data will not be updated by the user. Selection of the tables to be queried will be decided by the user’s at run time. How should you define the appropriate data source?

A. Define a data block based on Ref Cursor.
B. Define a data block based on a Table of Records.
C. Define a data block based on a From Clause query.
D. Define a data block based on a combination of a Ref Cursor and a Table of Records.
E. Define a data block based on a From Clause query and define Transactional triggers for controlling DML
statements.
Correct Answer: A

QUESTION 74
You designed a standard toolbar to accompany a number of forms so the code behind the buttons is written as generically as possible.
One of the features of this toolbar is that the buttons are synchronized with the state of the form. To achieve this functionality, you wrote generic procedures that are placed in an attached library and are called from
various triggers.
For example, if the form is in Enter-Query mode, the procedure set_enter_query_mode will disable the Enter
Query button, change the icon for the Exit button, and modify its Tooltip to read “Cancel Query” rather than
“Exit”‘
What must you code to support this approach?

A. Form-level When-Button-Pressed triggers for each button to call the generic procedures.
For example, a form-level trigger on the Enter Query button as the following code:
set_enter_query_mode;
B. Item-level Key triggers for each button as well as item-level When-Button-Pressed triggers for each
button to call the generic procedures.
For example, the When-Button-Pressed trigger on the Enter Query button has the following code: set_enter_query_mode;
C. Block-level Key triggers that call the generic procedures and item-level When-Button-Pressed triggers
that call the EXECUTE_TRIGGER() built-in and pass the name of the button as a parameter.
For example, the Key-Entry trigger the following code:
set_enter_query_mode;
The When-Button-Pressed trigger on the Enter Query button has the following code: EXECUTE_TRIGGER(‘ENTER_QUERY’);
D. Form-level Key triggers that call the generic procedures and item-level When-Button-Pressed triggers
that call the DO_KEY() built-in.
For example, Key-Entqry has the following code: set_enter_query_mode;
The When-Button-Pressed trigger on the Enter Query button has the following code: DO_KEY(‘ENTER_QUERY’);

Correct Answer: D

QUESTION 75
Which two statements are true of a Query Record Group? (Choose two)

A. The Record Group is associated with a query.
B. The Record Group can be created only at run time.
C. The Record Group can be created and modified only at design time.
D. The Record Group can be created and modified at design time or at run time.
E. The query associated with this Record Group can be defined only at design time.
F. The query associated with this Record Group can be modified only at design time.
G. The query associated with this Record Group can be modified only at run time.

Correct Answer: AD

QUESTION 76
The DBA has informed you that two new columns have been added to the ORDERS table. The blocks in the Order Entry form were created manually.
How can you use a wizard to modify the Orders block to include items that corresponds to these columns?

A. You cannot use wizards to add a new items to add data block that was created manually.
B. Select the last item in the Orders block, then invoke the Layout Wizard from the menu.
C. Select the Orders block in the Object Navigator, then invoke the Data Block Wizard from the menu.
D. Select the Data Block node in the Object Navigator, then invoke the Data Block Wizard from the menu.

Correct Answer: C

QUESTION 77
The Summit application contains several different forms. You are developing the Orders form of the Summit application.
You have coded a trigger in the form to retrieve and format the address of the customer placing the order so that you can print a mailing label. However, as you add functionality you discover that you want to use the same code in several triggers in that form. The other forms in the application do not use this logic. Without creating a separate module, how can you reuse the code within the Orders form and ensure that all triggers that format and retrieve the customer address do it exactly the same way?

A. Move the code to a PL/SQL program unit in the Orders form.
B. Move the code to a PL/SQL library that you attach to the Orders form.
C. Copy the code from the first trigger and paste it into other triggers that use it.
D. Place the trigger in an Object Group and drag it whenever it is needed in the Orders form.
E. Place the trigger in an Object Library and drag it whenever it is needed in the Orders form.

Correct Answer: A

QUESTION 78
There are two buttons on a form: Button1 and Button2. When you make a change in the appearance of Button1, you want the appearance of Button2 to change automatically.
How can you implement this?

A. Define a Visual Attribute and apply it to both buttons.
B. Set the Subclass Information property of Button2 to the name, block, and module of Button1.
C. Select both buttons in the Object Navigator and set the shared properties in the Property Palette.
D. In the Property Palette of Button1, select all the properties that you want to share with Button2 and click
Copy Properties.
In the Property’s Palette of Button2, select Paste Properties.

Correct Answer: B

QUESTION 79
The Products.fmb module has one content canvas, which displays information about products sold by your company.
You increase the canvas display area by creating an overlay canvas to enable product images to be
displayed on request. At run time, however, the overlay canvas is never displayed; users complain that there is only a brief flash on their screen.
How do you correct this?

A. Ensure that the current item is not hidden by the overlay canvas.
B. Call the built-in GET_VIEW_PROPERTY to set the canvas VISIBLE property to True.
C. In the Layout Editor, choose View Stacked Views.
Then select the overlay canvas in the Stacked Canvases dialog box.
D. Change the stacking order of canvases under the Canvases node in the Object Navigator.
Ensure that the overlay canvas is the first canvas listed under this node.
E. Change the stacking order of canvases under the Canvases node in the Object Navigator.
Ensure that the overlay canvas is the last canvas listed under this node.

Correct Answer: A

QUESTION 80
You are developing an account management system for First National Bank. The Layout Editor for the Customer form is shown in the exhibit.
The three buttons on the form invoke separate forms to enter deposits and withdrawals for the customer’s
checking, savings, and money market accounts. Often deposit and withdrawals to these accounts are
accomplished as part of a single transaction, so they must all be committed together or all rolled back if the
commit fails.
How should you code the Checking button?

A. OPEN_FORM(‘Checking’);
B. OPEN_FORM(‘checking,session);
C. OPEN_FORM(‘Checking’, SESSION,ACTIVATE);
D. OPEN_FORM(‘Checking’, SESSION,NO_ACTIVATE);

Correct Answer: A
QUESTION 81
You are developing a form that servers as a front end to access the Order Entry application. Within the form you want to store the usernames of those users who have permissions to run the application. This information is accessed when the form starts up to determine if the user is authorized. The list of usernames is not stored in the database and should not be visible to users.
How will you store this information?

A. In a list item.
B. In a list of values.
C. In a set of parameters.
D. In a record group.
E. You cannot store this information within a form; you must create a database table to store it and query the
information at run time.

Correct Answer: D

QUESTION 82
You are coding a When-New-Form-Instance trigger to populate a hierarchical tree item called Emp_Tree that should initially appear as shown in the exhibit. Mr. Bill, the president of the company, is the only employee who does not have a manager.
In the trigger, you declare a variable called rg_emps that is of the RECORDGROUP data type. You will use this record group to populate the tree. You use the following code to create the record group:
rg_emps := Create_Group_Form_Query(‘rg_emps’, ‘select 1, level, last_name, NULL, to_char(employee_id) from employees connect by prior employee_id =manager_id is null’); You then programmatically populate the record group, and then populate the tree with the record group.
You run the form to test it.
Will the tree initially appear as shown? If not, why not?

A. Yes, the tree will appear as shown.
B. No. The first element selected in the select statement should be 4 because you want four levels of the
tree to be displayed.
C. No. You should eliminate the last element selected in the select statement, because you do not want to
display the employees ID.
D. No. The “connect by” statement should be “connect by prior manager_id = employee_id”.

Correct Answer: A

QUESTION 83
Which statement about object group is true?

A. Object groups can contain other object groups.
B. You cannot drag a program unit to an object group.
C. Object groups contain copies of the original objects.
D. You can delete the original objects without affecting the object group.
E. You can delete the object group without affecting the original objects.
F. Dragging a block to an object group does not place its triggers in the object group.
Correct Answer: E

QUESTION 84
In your Employee.fmb module you have an EMP block, which is currently on a content canvas. You want to display items from the EMP block on a new tab canvas.
What are two ways to achieve this? (Choose two)

A. 1. Create a tab canvas in the Layout Editor.
2. For each item, associate the tab canvas by specifying the Canvas property.
3. Set the Rendered property of each item to Yes.
B. 1. Create a tab canvas in the Layout Editor.
2. For each item, associate the tab canvas by specifying the Canvas property.
3. For each item, associate the tab page by specifying the Tab Page property.
C. 1. Create a tab page in the Layout Editor.
2. Associate the content canvas with each item by specifying the Item Canvas property.
3. For each item, associate the tab page by specifying the Tab Page property.
4. Set the Visible property of each item to Yes.
D. 1. Create a canvas in the Object Navigator.
2. Set the Canvas Type property to Content.
3. For each item, associate the new canvas by specifying the Item Canvas property.
E. 1. Create a canvas in the Object Navigator.
2. Set the Canvas Type property to Tab.
3. For each item, associate the new canvas by specifying the Item Canvas property.
4. Set the Rendered property of each item to Yes.
F. 1. Create a new canvas in the Object Navigator.
2. Set the Canvas Type property to Tab.
3. For each item, associate the new canvas by specifying the Item Canvas property.
4. For each item, associate the tab page by specifying the Tab Page property.

Correct Answer: BF

QUESTION 85
Examine the structure of the DEPARTMENT.FMB module.
The :EMP.JOB list item is populated at run time from the dynamically created Record Group DEPT_JOB. It contains job details only for the current DEPT record. The Record Group is repopulated each time the user navigates between DEPT records.
Which two built-ins should you use to repopulate DEPT_JOBS and the list item?

A. CLEAR_LIST and POPULATE_LIST
B. CLEAR_RECORD and POPULATE_LIST
C. POPULATE_GROUP_WITH_QUERY and RETRIEVE_LIST
D. POPULATE_GROUP_WITH_QUERY and POPULATE_LIST
E. POPULATE_GROUP and RETRIEVE_LIST
F. POPULATE_GROUP and CLEAR_LIST

Correct Answer: D

QUESTION 86
The Orders form has two base table blocks and a control block. There is an Execute Query button in the control block with the following When-Button-Pressed trigger:
DO_KEY(‘execute_query);
A user navigates to the Order Items block and clicks Execute Query. The query does not execute, but instead returns error FRM-41003: “This function cannot be performed here”.
What can you do to fix this error?

A. Define a Key-Exeqry trigger at the form level.
B. Set the Mouse Navigate property to No for the Execute Query button.
C. Set the Query All Records property to Yes for the Order Items block.
D. Set the Query Allowed property to Yes for at least one item in the Order Items block.

Correct Answer: B

QUESTION 87
There is a requirement to invoke the Orders form from the Customers form. Your colleagues offer some
suggestions about which built-in to use and their reasons for the choice. Which suggestion names a built-in that will meet the requirement and offers a correct reason?

A. CALL_FORM, because NEW_FORM is no longer valid for Web-deployed forms due to the extra network
traffic that is causes.
B. CALL_FORM, because it can be issued in Enter-Query mode and can be constrained to be “query only”.
C. CALL_FORM, because the second form is invoked in a modeless state and it saves on memory
resources.
D. NEW_FORM, because the second form is invoked in a modeless state and the user can navigate freely
between the two running forms.
E. OPEN_FORM, because the second form is invoked in a modal state and there can be only one “Open
form stack”.
F. OPEN_FORM, because it causes a savepoint to be issued and the current form is validated before
invoking the second form.

Correct Answer: B

QUESTION 88
You have created a default master-detail form, and you need to have a query executed automatically when the form starts. Identify the trigger that is the best place for this code:
DO_KEY(‘EXECUTE_QUERY’);

A. Pre-Form trigger written at the form level.
B. Pre-Block trigger written at the form level.
C. Pre-Text-Item trigger written at the form level.
D. Pre-Block trigger written at the detail block level.
E. Pre-Block trigger written at the master block level.
F. When-New-Item-Instance trigger written at the form level.
G. When-New-Form-Instance trigger written at the form level.
H. When-New-Block-Instance trigger written at the form level.
I. When-New-Block-Instance trigger written at the detail block level.
J. When-New-Block-Instance trigger written at the master block level.

Correct Answer: G

QUESTION 89
When called from the Customers form, the Orders form enables order entry clerks to place new orders for
the current customer using the customer ID passed from the Customer form as a parameter. If clerks decide
to cancel a new record without entering further information, they do not want to be required to clear the
record.
You must assign the value of the parameter to the Customer_Id item in each new record of the Orders from with this code:
:orders.customer_id :=:parameter.customer_id;
Where should you place this code to meet the requirements of the order entry clerks and also to ensure that each new order has the correct customer ID?

A. In a When-New-Form-Instance trigger.
B. In a Pre-Query trigger on the Orders block.
C. In a When-Create-Record trigger on the Orders block.
D. In a When-New-Record-Instance trigger on the Orders block.

Correct Answer: C

QUESTION 90
You are running a multiple-form application. The Customers form invoked the Orders form. When the Orders form launches, it displays orders for only the active customer from the Customers form. Forms exchange
data with the :GLOBAL.CUSTOMER_ID variable. The Orders form should be restricted to orders for the
current customer only the first time a query is issued after invoking the Orders form.
Which built-in helps you to do this by setting the ONETIME_WHERE property to refer dynamically to the
GLOBAL.CUSTOMER_ID?

A. SET_APPLICATION_PROPERTY
B. SET_FORM_PROPERTY
C. SET_BLOCK_PROPERTY
D. SET_RECORD_PROPERTY

Correct Answer: C

QUESTION 91
You need to restrict access to a form. Access must be limited to a particular times of day and to certain authorized users.
You write a procedure (get_authorization) in the form that checks the username of the person logging in and
validates the time of day. If the person is not authorized to use the form at that time, the following code is
executed:
MESSAGE
(‘You are not authorized to access the form at this time’); RAISE FORM_TRIGGER_FAILURE; What is the best trigger from which to call this procedure? Why?

A. When-Validate-Item on the first enterable item, because the form will exit without showing the position of
fields on the screen or the accompanying prompts.
B. Pre-Text-Item on the first navigable text item in the first navigable block, because this will trap every user
and allow time for the message to be read before exiting the form.
C. When-New-Form-Instance at form level, because GET_AUTHORIZATION is a restricted procedure and
cannot be called from any “Pre” trigger.
D. Pre-Form at form level, because the form will exit immediately after displaying the message in an alert.
E. When-Validate-Item at form level, because the message will appear on the message line and must be
acknowledged by the user.
F. Pre-Block on the first enterable block, because this can also be used to set global variables and initialize
any parameters needed.
Correct Answer: D

QUESTION 92
The Name text item is subclassed from a property class.
Which two statements are true about the Keyboard Navigable property of the Name text item whose Property Palette is shown in the exhibit? (Choose two)

A. It is a variant property.
B. It is a default property.
C. It is a changed property.
D. It is an inherited property.
E. It was inherited from the property class.
If the value of Keyboard Navigable changes in the property class, it will change in the Name item also.
F. It was inherited from the property class and has been changed from the value in the property class.
G. It was not inherited from the property class and has been modified from the default Keyboard Navigable
value for a text item.
H. It was not inherited from the property class and is the default Keyboard Navigable value for a text item.

Correct Answer: AF

QUESTION 93
In a multiform application, the Customers form invoked the Orders form using a When-Button-Pressed
trigger behind the CONTROL.Orders_Btn button. This button has the Mouse Navigable property set to No and the following trigger code:
OPEN_FORM(‘Orders’);
The user updates a customer’s telephone number and clicks the button, causing the Orders form to appear. The user queries orders for the customer that is being viewed in the Customers form and changed the
QUANTITY of one of the products ordered.
The forms are arranged so that both are visible at the same time. Which users clicks the CUSTOMERS. Cust_Email text item in the Customers form, which four triggers can fire? (Choose four)

A. When-Validate-Item in the Orders form.
B. When-Form-Navigable in the Orders form.
C. When-Form-Navigable in the Customers form.
D. When-Window-Activated in the Orders form.
E. When-Validate-Item in the Customers form.
F. When-Window-Deactivated in the Orders form.
G. When-Window-Activated in the Customers form.
H. When-Window-Deactivated in the Customers form.

Correct Answer: CEGH

QUESTION 94
In the Orders form you define five LOVs, and you create one button to be used to display any of the LOVs. The button is enabled only when the user navigates to a field with an attached LOV. If the user supplies only part of the required input data, the LOVs use that input as search criteria to automatically reduce the LOV Contents. If the LOVs hold only one value that can possibly math user-supplied input, then the LOVs autocomplete the input field and are not displayed.
Which built-in properties should you use to display the LOVs?

A. Use the List_Values(RESTRICT) built-in, and set the Mouse Navigate property value to NO.
B. Use the List_Values(RESTRICT) built-in, and set the Mouse Navigate property value to YES.
C. Use the List_Values(NO_RESTRICT) built-in, and set the Mouse Navigate property value to NO.
D. Use the List_Values(NO_RESTRICT) built-in, and set the Mouse Navigate property value to YES.
E. Use the Show_LOV built-in, and set the Mouse Navigate property value to YES.
Set the Validate from List property of the text item to NO for each item with an attached LOV.
F. Use the Show_LOV built-in, and set the Mouse Navigate property value to YES.
Set the Automatic Select property of each LOV to YES.

Correct Answer: A

QUESTION 95
Examine the PL/SQL block.
To resolve compiler or run-time errors, what three changes could you make to this code? (Choose three)

A. Define the BEGIN and END keywords.
B. Declare PL/SQL variables in anonymous block.
C. Define an EXCEPTION section to handle exceptions.
D. Define an EXCEPTION section to declare exceptions.
E. Define an EXCEPTION section to declare PL/SQL variables.
F. Define a DECLARE section PL/SQL variables and exceptions.

Correct Answer: ACF

QUESTION 96
A form named Orders is saved to the file system as MY_ORDERES.FMB. You are modifying the Customers form, and you want to code a When-Butoon-Pressed trigger to invoke the Orders form only if the Orders form is not already open. What is the correct code to place in the When-Button-Pressed trigger?

A. OPEN_FORM(‘ORDERS’,NO_ACTIVATE);
B. OPEN_FORM(‘MY_ORDERS’,NO_ACTIVATE);
C. IF NOT FIND_FORM(‘ORDERS’) THEN
OPEN_FORM(‘MY ORDERS’);
ELSE
GO_FORM(‘ORDERS’);
END IF;
D. IF ID_NULL(FIND_FORM(‘ORDERS’)) THEN
OPEN_FORM(‘ORDERS’);
ELSE
GO_FORM(‘ORDERS’);
END IF;
E. IF ID_NULL(FIND_FORM(‘ORDERS’)) THEN
OPEN_FORM(‘MY_ORDERS’);
ELSE
GO_FORM(‘ORDERS’);
END IF;
F. IF NOT FIND_FORM(‘MY_ORDERS’) THEN
OPEN_FORM(‘ORDERS’);
ELSE
GO_FORM(‘ORDERS’);
END IF;

Correct Answer: E

QUESTION 97
The Department form is part of a multiform application that also includes the Customer and Orders forms.
The Department form must include a query-based PRODUCT Record Group. You must ensure that all three forms can access the PRODUCT Record Group.
Which built-in will you use to create the PRODUCT Record Group?

A. CREATE_GROUP(‘PRODUCT’)
B. CREATE_GROUP(‘PRODUCT’,FORM_SCOPE)
C. CREATE_GROUP(‘PRODUCT’,GLOBAL_SCOPE)
D. CREATE_GROUP_FROM_QUERY(‘PRODUCT’,’select id,desc from
products’,GLOBAL_SCOPE)
E. CREATE_GROUP_FROM_QUERY(‘PRODUCT’,’select id,desc from
products’,FORM_SCOPE)

Correct Answer: D

QUESTION 98
You created a query Record Group at design time.
Which built-in can you use to execute the query defined in the Record Group object?

A. ADD_GROUP_ROW
B. POPULATE_GROUP
C. ADD_GROUP_COLUMN
D. SET_GROUP_SELECTION
E. CREATE_GROUP_FROM_QUERY
F. POPULATE_GROUP_WITH_QUERY

Correct Answer: B

QUESTION 99
You create the following four menu items for the main many of a menu module that is attached to a form: Name Label
————————————— ———————— ENTER_QUERY ENTER QUERY
EXECUTE_QUERY EXECUTE &QUERY EDIT Edi&t
EXIT eXit
At run time, which menu item is invoked when a user presses Alt+E?

A. EDIT
B. EXIT
C. ENTER_QUERY
D. EXECUTE_QUERY

Correct Answer: C

QUESTION 100
A master-detail form displays Orders and Order Items.
What can you tell about the run-time behavior of the form by looking at the exhibit, assuming that the masterdetail triggers and relations have not been modified since they were created?

A. Users will be unable to delete detail records if master records exist.
B. Users will be unable to delete master records of detail records exist.
C. If users delete a master record, its detail records will also be deleted.
D. Users will be able to delete a master record even if detail records exist.
E. If users delete all detail records, the master record will also be deleted.

Correct Answer: B

QUESTION 101
There is a requirement to change the default functionality of certain function keys (suck as [Exit], [Create
Record], [Duplicate Record], and so on) when the focus is in the INVENTORIES block of the Orders form. If the user presses the [Exit] key, the focus should be transferred to the ORDER_ITEMS block. Pressing the other function keys should cause a meaningful message to appear.
How can you meet this requirement?

A. Use of Key triggers at the form level only is sufficient, but the Exception Hierarchy property of the trigger
must be set to Override.
Form example, the Key-Exit trigger has the following code: GO_BLOCK(‘order_item’);
B. Use a Key triggers written on the INVENTORIES block only is sufficient.
For example, the Key-Exit trigger has the following code:
GO_BLOCK(‘order_item’);
C. Use a combination of block- and form-level Key triggers.
For example, the Key-Exit trigger on the INVENTORIES block has the following code: GO_BLOCK(‘order_item’);
The form-level Key-Others trigger has the following code: EXIT_FORM;
D. Use a Key-Others trigger written at the form level with the Execution Hierarchy property of the trigger set
to Before.
The code can be written generically to test for the current block and to use the DO_KEY built-in to exit the
form.
For example, it has the following code:
IF :SYSTEM.trigger_block = ‘INVENTORIES’ THEN GO_BLOCK(‘order_item’);
ELSE
DO_KEY(‘EXIT_FORM’);
END IF
Correct Answer: B

QUESTION 102
The Orders form consists of a single-record master block (ORDERS) and a multirecord detail block
(ORDER_ITEMS). These triggers have been defined at form level: Pre-Form, Pre-Block, Pre-Record, Pre-
Text-Item, Post-Block, Post-Record, Post-Then-Item, When-New-Form-Instance, When-New-Block-Instance, When-New-Item-Instance.
At run time, the focus is in the Sales Rep Id Text Item in the Order block when the user selects a check box in the ORDER_ITEMS block that has its Mouse Navigate property set to Yes.
In what sequence will the trigger fire?

A. Pre-Form, Pre-Block, When-New-Block-Instance, Pre-Record, When-New-Item-Instance, Pre-Text-Item
B. Post-Text-Item, Post-Record, Post-Block, Pre-Block, Pre-Record, Pre-Text-Item
C. Post-Record, Post-Block, Pre-Record, Pre-Block, When-New-Block-Instance, Pre-Text-Item, When-New-
Item-Instance
D. Post-Text-Item, Post-Record, Post-Block, Pre-Block, Pre-Record, When-New-Block-Instance, When-New-
Item-Instance
E. Post-Text-Item, Pre-Record, Pre-Block, Post-Block, Post-Record, When-New-Item-Instance
F. Post-Block, Post-Form, Pre-Form, Pre-Block, Pre-Record, When-New-Item-Instance

Correct Answer: D

QUESTION 103
The database EMPLOYEES table has a foreign key constraint referencing the DEPARTMENTS table. You
are developing a Human Resourced application. HR clerks use the Employees form to query, update, and
insert employee records. They occasionally attempt to add an employee who is a new department that has
not yet been entered into the database. When this happens, they receive an error indicating that the parent
record cannot be found, so they cannot commit the employee record. The HR clerks have requested that you
place a button on the form to enable them to invoke the Departments form to enter the new department and
save it independently. Then they want to be able to return to the Employees form and decide whether or not
to save the new employee record. How should you code the When-Button-Pressed trigger to achieve this?
A. CALL_FORM(‘Departments’);
B. CALL_FORM(‘Department’,NO_HIDE);
C. OPEN FORM(Departments’);
D. OPEN FORM(Departments’,ACTIVATE,SESSION);
E. OPEN FORM(Departments’,NO ACTIVATE,NO SESSION);
F. NEW_FORM(‘Departments’);
G. POST;
NEW_FORM(‘Departments’, FULL_ROLLBACK);

Correct Answer: D

QUESTION 104
You are running a form in debug mode and you begin to step through the code of a lengthy subprogram. After stepping through a few lines of its code, you realize that the error comes not from the code in that particular subprogram but from code that is executed after it.
At this point, how can you immediately jump to the next line of code after the call to the subprogram?

A. Click Step Over to step over the execution of the subprogram.
B. Open the Stack panel, select the previous stack frame, and click Go.
C. Click Step Out to resume stepping through code after the subprogram is called.
D. You cannot do this in the same debug session.
Click Stop, set a breakpoint immediately after the subprogram code is called, and run the form in debug mode again.
Correct Answer: C

QUESTION 105
Which built-in can you use to programmatically set the validation status for all records in a block?

A. SET_BLOCK_PROPERTY
B. SET_RECORD_PROPERTY
C. SET_ITEM_PROPERTY
D. You cannot use a built-in; you must set a system variable instead.
E. You cannot programmatically set the validation status because it is controlled by Forms internal
processing.
Correct Answer: E
QUESTION 106
Which statement is true about client-side validation?

A. It requires a network round trip.
B. It does not require any middle-tier configuration.
C. It requires setting an item’s Implementation Class property.
D. It is implemented with the When-Validate-Item and When-Validate-Record triggers.

Correct Answer: C

QUESTION 107
The LINE data block is defined in the Order.fmb module. LINE items are displayed in the default window at run time. In a second window, called BUTTONS, you display a set of icon buttons. At run time, the user must be able to freely navigate between the two windows.
Which statement identifies the types of windows to define?

A. Both windows must be defined as dialog and modal.
B. Both windows must be defined as document and modal.
C. Both windows must be defined as document and modeless.
D. The default window must be defined as modeless and the BUTTONS window must be modal.
E. The default window must be defined as modal and the BUTTONS window must be modeless.

Correct Answer: C

QUESTION 108
The EMPLOYEES table contains 100 records. You are developing a Human Resources form that has an Employee block with properties as shown in the exhibit.
When you run the form and execute a query in the Employees block, approximately how many network rounds trips will be made to the server before records are displayed in the block?

A. 1
B. 2
C. 10
D. 50
E. 100
Correct Answer: C

QUESTION 109
You have started an instance of OC4J to test a Forms application on your development PC. How should you cleanly shut down the OC4J instance?

A. Close the window from which OC4J started.
B. Make a section from the Forms Builder menu.
C. Execute a batch file that is included with Oracle9iDS.
D. Close Forms Builder, which automatically shuts down OC4J.
E. Exit all running forms and close the browser, which automatically shuts down OC4J.

Correct Answer: C

QUESTION 110
You are building the Customer.fmb module, and you define a multirecord data block based on the
CUSTOMERS table. The data block is called CUST. You specify a Tabular layout style for the CUST items. When the window is at its maximum size, only some of the items can be viewed in the window. To view all items together, you should enable users to scroll horizontally through the CUST items; however, the Cust_ID and Cust_Name items should always be visible. Which combination of canvas types is most appropriate to display the CUST items together?

A. Content canvas and an overlay Tab canvas.
B. Tab canvas and an overlay stacked canvas.
C. Vertical Toolbar canvas and a Tab canvas.
D. Content canvas and an overlay stacked canvas.
E. Horizontal Toolbar canvas and a content canvas.

Correct Answer: D

QUESTION 111
You want users to be able to add a single value to a list item. How do you achieve this?

A. Set the List Style property to combo box.
From the When-List-Activated trigger, call the Add_List_Element built-in.
B. Set the List Style property to Tlist.
Form the When-List-Activated trigger, call the Populate_List built-in.
C. Set the List Style property to poplist.
From the When-List-Activated trigger, call the Add_List_Element built-in.
D. Set the List Style property to combo box.
From the When-List_Changed trigger, call the Add_List_Element built-in
E. Set the List Style property to Tlist.
From the When-Validate-Item trigger, call the Populate_List built-in.
F. Set the List Style property to poplist.
From the When-Validate-Item trigger, call the Add_List_Element built-in.

Correct Answer: D

QUESTION 112
There is a requirement to invoke the Orders form from the Customers form, and to display the orders for the
active customer. However, the user needs to be able to move freely back and fourth between both active
forms, and a commit issued in one form should commit all outstanding transactions across both forms. The
application server is listening on the default port on http://www.summit.com.
The Orders form is invoked form a When-Button-Pressed trigger behind Orders_Btn in the Customers form. What is the most appropriate way to invoke the Orders form?
A. OPEN_FORM(‘orders’, ACTIVATE, SESSION);
B. NEW_FORM(‘orders’, NO_ROLLBACK, QUERY_ONLY);
C. OPEN_FORM(‘orders’, ACTIVATE, NO_SESSION);
D. NEW_FORM(‘orders’, NO_ROLLBACK, NO_QUERY_ONLY);
E. CALL_FORM(‘orders’, NO_HIDE, NO_REPLACE, QUERY_ONLY);
F. CALL_FORM(‘orders’, NO_HIDE, NO_REPALCE, NO_QUERY_ONLY);
G. WEB.SHOW_DOCUMENT
Correct Answer: C

QUESTION 113
The DBA informed you that a number column called ORDER_STATUS has been added to the ORDERS
table.
You want to update the Order Entry form to display the additional data. You open the Layout Editor for the
canvas on which items from the Customers, Orders, and Order_Items blocks are displayed. You use the text item tool to create a new text item on the canvas, then open its Property Palette and set the Name property to ORDER_STATUS and the Column Name property to Order_Status. When you run the form to test it, you receive the error “FRM 40505 ORACLE error unable to perform query”.
What could be the cause of this error?

A. You did not change the default value for the Data Type property of the Order_Status text item.
B. You did not modify the WHERE clause of the Orders block to include the ORDER_STATUS column.
C. You did not change the default value for the Database Item property of the Order_Status text item.
D. You did not select the Orders block from the block poplist in the Layout Editor prior to creating the item.
E. You did not define the Column Name in uppercase so that the column value can be retrieved from the
database.
Correct Answer: D

QUESTION 114
Assuming they are all syntactically correct, which three lines of code are valid to use in the PL/SQL code of a menu item? (Choose three)

A. SET_BLOCK_PROPERTY(‘Orders’,ORDER_BY,’Customer_Id’);
B. :Order.Order_Status := 1;
C. EXECUTE_TRIGGER(‘my_trigger’);
D. IF NAME_IN(‘Orders.Order_ID’) = 100 THEN …
E. :global.customer_id := :customer.customer_id;
F. WHILE x < :orders.order_id LOOP …

Correct Answer: ACD

QUESTION 115
You are developing an application for use by meteorologists. Form1 contains a list of item based on a query of cloud types that are stored in a database table. Users can add cloud types to the list by typing in new
values that are automatically inserted to the database table.
Form1 calls Form2, which contains an identical list item. You do not want to requery the database to obtain the list of cloud types.
Which method can you use to pass the cloud types from Form1 to Form2?

A. Parameter list
B. Global variables
C. Global record group
D. Shared PL/SQL library
E. There is no way to pass such data between forms; you must require the data from the database.

Correct Answer: C

QUESTION 116
Which two statements about FORM_TRIGGER_FAILURE are true? (Choose two)
A. You cannot raise FORM_TRIGGER_FAILURE in an exception handler.
B. FORM_TRIGGER_FAILURE does not cause an unhandled exception.
C. FORM_TRIGGER_FAILURE causes a trigger to fail in a controlled manner.
D. If you use FORM_TRIGGER_FAILURE to fail a trigger that is called by another trigger, the calling trigger
automatically fails.
E. Processing continues after FORM_TRIGGER_FAILURE is raised until the end of the PL/SQL block that
contains it.
F. You must code an exception handler to define how you want the FORM_TRIGGER_FAILURE exception
to function.

Correct Answer: BC
QUESTION 117
During testing, you received comments that the default functionality of the [Commit] key can cause and error message to be displayed if there are no changes to save when it was activated. You decide to provide a
button for users to validate the form and issue a commit if necessary. To implement this, you write a formlevel procedure called VALIDATE_AND_COMMIT. The same functionality must be provided when the users chooses File > Save from the menu or presses the [Commit] key.
Which should you use?

A. The When-Button-Pressed trigger with the code
DO_KEY(commit;);
A form-level Key-Commit trigger with the code validate_and_commit
B. The When-Button-Pressed trigger with the code.
DO_KEY(‘COMMIT_FORM’);
A form-level Key-Commit trigger with the code. DO_KEY(‘COMMIT_FORM’);
validate_and_commit;
C. The When-Button-Pressed trigger with the code
DO_KEY(‘[COMMIT]’);
A form-level Key-Commit trigger with the code DO_KEY(‘validate_and_commit’);
D. The When-Button-Pressed trigger with the code
DO_KEY(‘COMMIT_FORM’);
A form-level Key-Commit trigger with the code validate_and_commit;
E. The When-Button-Pressed trigger with the code
validate_and_commit;
A form-level Key-Commit trigger with the code DO_KEY(‘COMMIT_FORM’);

Correct Answer: D

QUESTION 118
Which statement about the Data properties of a text item is true?

A. If the Maximum Length of an item is set to a value that is greater than the value for Width, the item will
not be displayed at run time.
B. You can set the Initial Value for an item outside the range of values specified by the Lowest Allowed
Value and the Highest Allowed Value properties because Initial Value defines an exception to that range.
C. If you set the Required property to Yes for an item whose corresponding database column does not have
a NOT NULL constraint, you will receive an error at run time.
D. If Data Length Semantics property is set by BYTE, you may need to manually adjust the Maximum
Length property depending on the character set that is being used.

Correct Answer: D

QUESTION 119
You need a field on the Orders form that shows a description of the product being ordered. This field must not be updated directly by the user. Instead, double-clicking in the field should invoke another form where a change can be made.
How can you achieve this?

A. By creating a Display Item and writing a When-Mouse-Doubleclick trigger to invoke the other form.
B. By creating a Text Item, setting its Update Allowed property to No in the Property Palette, and writing a
When-Button-Pressed trigger to invoke the other form.
C. By creating a Text Item, writing a When-Mouse-Doubleclick trigger to invoke the other form, and
changing its Keyboard Navigable property in a When-New-Item-Instance trigger written against the item.
D. By using a Pluggable Java Component. (The required behavior cannot be achieved with a standard forms
item.
A PJC will need to be written or purchased from a third-party supplier.

Correct Answer: A

QUESTION 120
You have an image item in the Employees form to display an employee photograph, and you are trying to decide where to place some code to manipulate the image item. If you place the code in a When-Image-
Activated trigger, when will the code be executed?

A. When the user clicks the image item.
B. When the user double-clicks the image item.
C. When the image item is first displayed on the canvas.
D. When the image item is populated with an image, either programmatically or by a query.

Correct Answer: B

QUESTION 121
LibraryA and LibraryB are in the working directory of the Employees form. LibraryA is attached to the
Employees form. There is a stored procedure in the database called Raise_Salary which must be called
without any parameters. There is no Raise_Salary procedure in the form or in the attached library. A WhenButton-Pressed trigger in the Employees form contains this code:
raise_salary;
Where does Forms search for the Raise_Salary procedure?

A. First in the attached library, then in the database.
B. First in the form module, then in the attached library.
C. First in the form module, then in the attached library, then in the database.
D. First in the form module, then in the attached library, then in other libraries in the working directory, then
in the database.
E. In the form module only.
F. In the attached library only.
G. In the database only.

Correct Answer: C

QUESTION 122
The Products.fmb module has one content canvas, which displays information about products sold by your company. You want to increase the canvas display area by creating an overlay canvas to enable images of selected products to be displayed on request.
How can you size the display area of the overlay canvas?

A. Define the display area for a stacked canvas by using the built-in procedure SET_CANVAS_PROPERTY.
B. Define the display area for a stacked canvas by using the built-in procedure
SET_WINDOW_PROPERTY.
C. Define the display area for a content canvas by using the built-in procedure SET_CANVAS_PROPERTY.
D. Define the display area for a content canvas by using the built-in procedure SET_VIEW_PROPERTY.
E. Define the display area for a stacked canvas by using the built-in procedure SET_VIEW_PROPERTY.

Correct Answer: E

QUESTION 123
What are two ways that you can assign a value to an item on a form from within the code of a menu item? (Choose two)

A. Use the COPY built-in.
B. Use the NAME_IN built-in.
C. Use the FIND_ITEM built-in.
D. Use the SET_ITEM_PROPERTY built-in.
E. Use the EXECUTE_TRIGGER built-in call code in the form that assigns the value.

Correct Answer: AE

QUESTION 124
You have created the Order.fmb module. It contains the LINE data block. You want to display LINE items in the default window at run time. You also want to display a second window, called WIN_ASK. The window
displays a question that the user is required to answer before returning to the default window.
Examine the exhibit.
Which two statements correctly describe the behavior of the WIN_ASK window? (Choose two)

A. WIN_ASK is a modeless window that must be dismissed before control is returned to a modal window.
B. WIN_ASK is a modal window that must be dismissed before control is returned to a modeless window.
C. WIN_ASK is a dialog window that must be dismissed before control is returned to a modal window.
D. WIN_ASK is an example of a modeless window; only one modeless window at a time can be displayed in
a Forms module.
E. WIN_ASK is an example of a modal window; only one modal window at a time can be displayed in a
forms module.
F. WIN_ASK is an example of a dialog window; only one dialog window at a time can be displayed in a
forms module

Correct Answer: BC

QUESTION 125
The Orders.fmb module contains two content canvases, both associated with the default window. Items from the DEPT data block are associated with the DEPTCAN canvas. Items from the EMP data block are
associated with the EMPCAN canvas.
The user wants to view DEPT and EMP data at the same time. What changes would you make to the Orders form?

A. Redefine the EPMCAN canvas as a tab canvas because it is not possible to display multiple content
canvases in a single Forms module.
B. Create a new WINDOW object called DEPTWIN.
To associate the DEPTCAN canvas with the DEPTWIN window, set the DEPTCAN Window property to DEPTWIN.
C. Redefine the EMPCAN canvas as a stacked canvas because it is not possible to display multiple content
canvases in a single Forms module.
D. Create a new WINDOW object called DEPTWIN.
To associate the DEPTWIN window with the DEPTCAN canvas, set the DEPTWIN Primary Canvas property to DEPTCAN.
E. Create a separate Forms module for the EMPCAN canvas and EMP data block, because it is not possible
to display multiple content canvases in a single Forms module.

Correct Answer: B

QUESTION 126
In the Orders form, users are able to change the status of an Order. Options are HOLD, SHIP and CANCEL, and each option is represented individually in the Layout Editor. These options are sized and positioned
independently of one another, they are mutually exclusive by default. When a new order status is selected, the ORDER_AUDIT_LOG table must be updated by the first trigger to register the changed value.
Which trigger should you select?

A. Post-Text-Item
B. When-Radio-Changed
C. When-Validate-Item
D. When-Button-Pressed
E. When-Checkbox-Changed
F. When-New-Item-Instance

Correct Answer: B

QUESTION 127
The Orders table in the database contains several thousand records. There is a block in the Orders form that is based on the ORDERS table and displays one record. The block is ordered by the Order_Date in
descending order, because order entry clerks usually must access only the most recent orders. Which one of the following combinations of property settings for the Orders block will provide the fastest response time before a record appears in the block upon executing a query?

A. Query Array Size: 0
Number of Records Buffered: 0 Query All Records: Yes
B. Query Array Size: 1000
Number of Records Buffered: 0 Query All Records: Yes
C. Query Array Size: 1000
Number of Records Buffered: 0 Query All Records: No
D. Query Array Size: 0
Number of Records Buffered: 1000 Query All Records: No
E. Query Array Size: 0
Number of Records Buffered: 1000 Query All Records: Yes

Correct Answer: D

QUESTION 128
You are running a form in debug mode, but you have not set any breakpoints in the code. You click the button that invokes the code shown in the exhibit.
While the code executes, you decide to examine the variable values in the loop. Which menu items in the Forms Builder Debug menu would you choose?

A. Stop, Debug Windows > Variables
B. Pause, Debug Windows > Variables
C. Stop, Debug Windows > Forms Values
D. Pause, Debug Windows > Form Values
E. Step Into, Debug Windows > Variables
F. Step Into, Debug Windows > Form Values

Correct Answer: B

QUESTION 129
You are running a multiple-form application. The Customers form calls the Orders form. When the Orders form launches, it displays orders for only the active customer from the Customers form. Forms exchange data with the :GLOBAL.CUSTOMER_ID variable.
You need to modify the Orders form so that it displays the active customer’s orders initially and can later be used to display orders from any customer.
Which two tasks must you perform? (Choose two)

A. Remove the call to the EXECUTE_QUERY built-in in the Orders form’s When-New-Form-Instance
trigger.
B. Remove all the references to the :GLOBAL.CUSTOMER_ID variable in the Pre-Query trigger of the
Orders form.
C. Remove from the Orders form all references to the :GLOBAL.CUSTOMER_ID variable that is currently
used to exchange data between the forms.
D. In the Customers form, set the ONETIME_WHERE property of the Orders form to refer to the :GLOBAL.
CUSTOMER_ID variable, and then invoke the Orders form.
E. In the When-New-Form-Instance trigger of the Orders form, set the block property of the Orders block to
refer to the :GLOBAL.CUSTOMER_ID for the ONETIME_WHERE property, and then call the
EXECUTE_QUERY built in.
Correct Answer: BE

QUESTION 130
You need to resize the INVENTORY tab canvas. The Viewport Width and Height properties are 200 and 300. You change the values to 150 and 120, respectively.
What implication may this have on your design?

A. Some tab pages may be obscured at run time.
B. By decreasing the Viewport Width property, some tab pages may be deleted.
C. Objects previously within the borders of a tab page may fall outside the tab page border, and you will get
compilation errors.
D. Objects previously within the borders of a tab page may fall outside the tab page border and will be
visible at run time only by navigating to them programmatically.
E. Objects previously within the borders of a tab page may fall outside the tab page border and will be
assigned to the null canvas.

Correct Answer: C

QUESTION 131
Which statement about object libraries is true?

A. Object libraries are saved as part of the Forms module.
B. You cannot place an individual item into an object library.
C. When you open Forms Builder, all object libraries in the current working directory are opened.
D. Using object libraries can increase network performance by promoting object similarities.

Correct Answer: D

QUESTION 132
The DBA informed you that a number column called ORDER_STATUS has been added to the ORDERS
table.
The DBA ran a SQL script to populate that column.
You want to update the Orders form to display the additional data. You currently have a non-base-table
display item in the Orders block called Order_Total that you no longer want to use. The Order_Total item is located on the canvas in the position where you want the Order_Status item to appear. You open the
Property Palette for Order_Total, change its name to Order_Staus, and change its item type to Text Item. You run the form, but when you execute a query on the block, no data is displayed in the Order_Status item. What should you do to correct this problem?

A. Set the Database Item property to Yes for the Order_Status item.
B. Use the form to populate the Order_Status item, since the SQL script that the DBA ran obviously did not
work.
C. Set the Name property for the Order_Status item to ORDER_STATUS, because it must be uppercase to
match the column name in the database.
D. Use the Data Block Wizard in reentrant mode to add the item, because you cannot add a base table item
by changing the item type of an existing item.

Correct Answer: A

QUESTION 133
Examine the form.
The text items are in the CONTROL block and are called FIELD1 and FIELD2 respectively. There is a PreText-Item trigger written on FIELD2 that contains the following code:
message(:system.cursor_item ‘-‘: system.trigger_item);
With the focus in FIELD1, what message will be displayed when you click in FIELD2?

A. FIELD1 – FIELD1
B. FIELD1 – FIELD2
C. FIELD2 – FIELD1
D. FIELD2 – FIELD2
E. CONTROL.FIELD1 – CONTROL.FIELD1
F. CONTROL.FIELD1 – CONTROL.FIELD2
G. CONTROL.FIELD2 – CONTROL.FIELD1
H. CONTROL.FIELD2 – CONTROL.FIELD2

Correct Answer: F

QUESTION 134
Which three statements best describe a Table of Records in Forms Builder? (Choose three)

A. A Table of Records enables you to query and update multiple tables, and perform validation, on the
server side.
B. A Table of Records is not efficient in terms of network traffic, because multiple round trips are required for
all the records to be returned.
C. Array processing cannot be used when a data block is based on a stored procedure that returns a Table
of Records.
D. A stored procedure that uses a Table of Records can be used only as a DML block datasource.
E. A stored procedure that uses a Table of Records can be used as both a query and DML block.
F. A stored procedure that uses a Table of Records can be used only as a query block datasource.

Correct Answer: ACE

QUESTION 135
Which three statements best describe a Form Clause query in Forms Builder? (Choose three)

A. A FROM clause is a valid DML datasource for a data block.
B. A FROM clause is a valid query datasource for a data block.
C. A FROM clause cannot be used to prototype views.
D. A FROM clause allows you to nest a SELECT statement in the FROM clause of the data block SELECT
statement.
E. The value returned from a FROM clause is a subset of records from a defined view on the database
server.
F. FROM clauses are used to perform joins and calculations without having to create a view on the server.

Correct Answer: BDF

QUESTION 136
You want to insert a new row into the single column VIDEO Record Group. VIDEO has 14 rows, and the new row will be inserted after row 10.
Which built-in will you use?

A. ADD_GROUP_ROW (‘VIDEO’. 10);
B. ADD_GROUP_ROW (‘VIDEO’, 11);
C. SET_GROUP_SELECTION (‘VIDEO’, 10);
D. SET_GROUP_SELECTION (‘VIDEO’, 11);
E. ADD_GROUP_ROW (‘VIDEO’, END_OF_GROUP);

Correct Answer: B

QUESTION 137
While using the LOV Wizard to create the LOV called SALES_REP_LOV, which is based on the
SALES_REP_RG record group, you assign it to the Sales_Rep_Name item in the form that you are developing. After the LOV is created, you realize that you should have assigned the LOV to the Sales_Rep_Id item instead What can you do to make this change?

A. Change the Column Mapping properties of the SALES_REP_LOV list of values to return the value to
SALES_REP_ID rather than to SALES_REP_NAME.
B. Delete the value in the List of Values property for the Sales_Rep_Name item and set the List of Values
property of the Sales_Rep_Id item to SALES_REP_LOV.
C. Change the Record Group Query property of the SALES_REP_RG record group to select into the
Sales_Rep_Id item instead of into the Sales_Rep_Name item.
D. Delete the SALES_REP_LOV list of values and create it again, because once the LOV is created, you
cannot modify the item to which it is assigned.

Correct Answer: B

QUESTION 138
You are developing a form for customers to order tickets to events. There is an Event_Date item in the Ticket block of the form, and you want users to enter dates only for existing events. You use the LOV wizard to
create an LOV based on a record group with the following query:
SELECT event_name, event_date FROM events ORDER BY event_name
On the Column Properties page of the LOV (as shown in the exhibit), you click “Look up return item” and select the Tickers.Event_Date item from the items list.
You run the form to test it. However, when you invoke the LOV and choose an event, you receive the error FRM-40212: “Invalid value for field EVENT_DATE”.
What should you do to correct this problem?

A. Change the Validate from List property for the Event_Date item to No-
B. Create another item in the form to which the vent name can be returned.
C. Modify the Record Group Query property for the record group to sort the list by event date.
D. Modify the Column Mapping property of the LOV so that the event date, rather than the event name is
returned.
E. Modify the Record Group Query property for the record group so that the event date is the first column
selected.
Correct Answer: D

QUESTION 139
You have created a menu for the Summit Office Supply applications that you attach to its main form. The menu, whose Menu Editor is shown in the exhibit, contains several submenus
– Applications, displaying a choice of forms to invoke
– Customers, displaying menu items for the Customers form
– Orders, displaying menu items for the Orders form
– HR, displaying menu items for the HR form
The Main Menu property for the menu is set to Applications. When the user chooses from the Applications
submenu to invoke another form, which built-in can you use to display the appropriate menu items for that
form?

A. FIND_MENU
B. REPLACE_MENU
C. FIND_MENU_ITEM
D. SET_FORM_PROPERTY
E. SET_MENU_ITEM_PROPERTY

Correct Answer: B

QUESTION 140
What type of message indicates a Forms message that cannot be suppressed?

A. A Busy message
B. A level 0 message
C. A Working message
D. A level 25 message
E. A level 50 message
F. A message with a level less than 0
G. A message with a level greater than 25
H. A message with a level greater than 50

Correct Answer: G

QUESTION 141
Order_Id is the primary key for the ORDERS table. A sequence called Orders_Seq has been created for order ID numbers.
You are designing a form that performs transactions on the ORDERS table. Users will be able to insert,
update, delete, and query records using this form. Gaps in order ID numbers in the ORDERS table should be kept to a minimum. After the order ID number is assigned to a newly created record, it should be displayed in the form without requerying the data.
What is the best way to use the Orders_Seq sequence to assign order ID numbers so that these requirements are met?

A. Set the Initial Value for the Orders.Order_Id item to:
SEQUENCE.ORDERS_SEQ.NEXTVAL.
B. Put the following code into a Pre-Inserted trigger:
:Orders.Order:Id := :SEQUENCE.ORDERS_SEQ_NEXTVAL;
C. Put the following code into a Pre-Inserted trigger:
SELECT orders_seq.NEXTVAL INTO :Orders.Order_Id FROM sys.dual;
D. Put the following code into a When-Create-Record trigger:
:Orders.Order_Id := :SEQUENCE.ORDERS_SEQ.NEXTVAL;
E. Put the following code into a When-Create-Record trigger:
SELECT orders_seq.NEXTVAL INTO :Orders.Order_Id
FROM sys.dual;

Correct Answer: C

QUESTION 142
You have been asked to define a data block based on a JOIN of multiple tables. The read-only data will be used for calculations and lookups.
The DBA is on holiday and is unable to define a view on the database server. What is the simplest way for you to continue to build the form?
A. Define a data block based on a Ref Cursor.
B. Define a data block based on a Table of Records.
C. Define a data block based in a From Clause query.
D. Define a data block based on a combination of Ref Cursor and a Table of Records.
E. Define a data block based on a Ref Cursor and define Transactional triggers for controlling DML statements.

Correct Answer: C

QUESTION 143
You have been asked to correct a problem with a form that was created by another developer. Users complain that they are unable to query on the employee Hire Date, which is a base table item.
What is a possible cause for this problem?

A. The Hire Date item is a display item.
B. The Hire Date item has its Enabled property set to No.
C. The Hire Date item has its Query Allowed property set to Yes.
D. The Hire Date item width is not large enough to display the complete date.

Correct Answer: A

QUESTION 144
You are developing a single-block form with a block called Employees. While the form is in development, you test it using the EMPLOYEES_TEST table in the database, which has the same structure as the
EMPLOYEES table in the same database. When you put the form into production, you will run it using the EMPLOYEES table.
Which block property will you change to run the form using the EMPLOYEES table?

A. WHERE clause
B. Database Data Block
C. Query Data Source Type
D. Query Data Source Name
E. Query Data Source Columns
F. Query Data Source Arguments

Correct Answer: D

QUESTION 145
An Order Entry form that you are developing contains several blocks. The first is a control block where you
create buttons to perform certain actions. One button, which is mouse and keyboard navigable, contains code to navigate to and perform queries in multiple blocks in the form:
GO_BLOCK(‘Customers’);
EXECUTE_QUERY;
GO_BLOCK(‘Orders’);
EXECUTE_QUERY;
GO_BLOCK(‘Items’);
EXECUTE_QUERY;
You do not want trigger processing to continue if there is any type of error in navigating to the Customers
block.
How should you modify the code?

A. GO_BLOCK(‘Customers’);
if FORM_SUCCESS then
EXECUTE_QUERY;
end if;
GO_BLOCK(‘Orders’);
EXECUTE_QUERY;
GO_BLOCK(‘Items’);
EXECUTE_QUERY;
B. GO_BLOCK(‘Customers’);
if not FORM_SUCCESS then EXECUTE_QUERY;
GO_BLOCK(‘Orders’);
EXECUTE_QUERY;
GO_BLOCK(‘Items’);
EXECUTE_QUERY;
end if;
C. GO_BLOCK(‘Customers’);
if FORM_SUCCESS then
EXECUTE_QUERY;
GO_BLOCK(‘Orders’);
EXECUTE_QUERY;
GO_BLOCK(‘Items’);
EXECUTE_QUERY;
end if;
D. GO_BLOCK(‘Customers’);
if not FORM_FATAL then
EXECUTE_QUERY;
GO_BLOCK(‘Orders’);
EXECUTE_QUERY;
GO_BLOCK(‘Items’);
EXECUTE_QUERY;
end if;
E. GO_BLOCK(‘Customers’);
if not FORM_FAILURE then EXECUTE_QUERY;
GO_BLOCK(‘Orders’);
EXECUTE_QUERY;
GO_BLOCK(‘Items’);
EXECUTE_QUERY;
end if;
Correct Answer: C

QUESTION 146
Which built-in should be used to invoke one form from another form so that you can navigate between the
two?
A. CALL_FORM
B. OPEN_FORM
C. NEW_FORM
D. RUN_PRODUCT

Correct Answer: B

QUESTION 147
Which three statements best describe a Ref Cursor in Forms Builder? (Choose three)

A. A stored procedure that uses a Ref Cursor can be used only as a query datasource for a data block.
B. A stored procedure that uses a Ref Cursor can be used only as a DML datasource for a data block.
C. A stored procedure that uses a Ref Cursor can be used as both a query and a DML datasource for a data block.
D. A Ref Cursor is ideal for queries that are dependent only on PL/SQL, and not SQL statements.
E. A Ref Cursor enables you to query multiple tables and encapsulate logic in a PL/SQL subprogram.
F. A Ref Cursor is used by a stored procedure to return data to a data block.

Correct Answer: AEF

QUESTION 148
You are developing a Human Resourced form for HR clerks to insert, update, and delete records from the
EMPLOYEES table. When the user commit records, Forms displays the default informative message “FRM40400: Transaction complete: <n> records applied and saved”. You want to replace that with the message “Records inserted: <n> Records updated: <n> Records deleted: <n>, where <n> represents the number of records inserted, updated, and deleted”.
Which triggers must you create of modify to accomplish this?
A. On-Message only
B. Post-Commit and On-Message
C. Post-Database-Commit and On-Message
D. When-Validate-Record and On-Message
E. Post-Insert, Post-Update, Post-Delete, and On-Message

Correct Answer: E

QUESTION 149
The two-column LOCATION Record Group has 10 rows.
At run time, the user wants to mark two or more LOCATION records for use by another Forms Builder object. The rows will be used to construct a WHERE clause for a subsequent data block query.
Which built-in enable individual rows to be marked?

A. ADD_GROUP_COLUMN
B. SET_RECORD_PROPERTY
C. GET_GROUP_SELECTION
D. SET_GROUP_SELECTION
E. RESET_GROUP_SELECTION
F. GET_GROUP_RECORD_NUMBER

Correct Answer: D

QUESTION 150
Which built-in always starts a new Forms run-time session when you use it to invoke another form?

A. CALL_FORM
B. OPEN_FORM
C. NEW_FORM
D. WEB.SHOW_DOCUMENT

Correct Answer: A

QUESTION 151
There is a requirement to prevent users from exiting the Orders form until a value is entered into the Sales REP Id text item.
Users would like to have maximum flexibility. Sometimes the Sales Rep Id is the last item they complete. Which option provides the flexibility to enter values into the items in any order?

A. For Sales Rep Id, set the Required? property to Yes and the Validate from List property to Yes.
B. Use a When-Validate-Item trigger on the Sales Rep Id text item to display a message and a When-
Validate-Record trigger on the Orders block to raise a FORM_TRIGGER_FAILURE if a value is not
supplied.
C. Use a When-Validate-Item trigger on the Sales Rep Ip text item to disable the Exit option in the File menu
if a value is not supplied.
D. Use a When-Validate-Item trigger on the Sales Rep Id text item that displays a message and raises a
FORM_TRIGGER_FAILURE if a value is not supported.
E. Use a Key-Exit trigger at the form level, which will display a message if a value is not supported or will
EXIT_FORM if a value is not supplied.

Correct Answer: B

QUESTION 152
An application is accessed through the Summit form, which can open the Customers form and the Orders
form. The Customers form can also open the Orders form, and the Orders form can open the Customers
form. What should you do to ensure that forms are closed in the proper order so that the session closes down when the last form is exited?

A. You should keep track of the order of the opening of forms in a global record group.
Then in the Key-Exit trigger for each form, you should allow only the last form that was opened to be
closed.
B. You should make sure that the Summit form that started the session is the last one closed by coding its
Key-Exit trigger to exit only if no other forms are open.
C. You do not need to do anything because Forms keeps track of the forms that are opened internally and
does not allow the user to close them in the wrong order.
D. You do not need to do anything.
No matter which form is closed last, the session will close properly.

Correct Answer: D

QUESTION 153
You are developing an Order Entry application. The Customers form calls the Orders form and passes the
value of Customer_Id as a global variable so that the orders for only that customer are displayed. When you
run the Orders form by itself, you receive the error shown in the exhibit. How can you avoid this error when
using a global variable as a way to pass data between forms?

A. Use the following code in the When-New-Form-Instance trigger of the Orders form:
:global.customer_id := NULL;
B. Check to see if the global variable has a value before using it in the Orders form with the following
condition:
IF :global.customer_id IS NOT NULL THEN

C. Use the following code in the Pre-Form trigger of the Orders form:
DEFAULT_VALUE(NULL,’global.customer_id);
D. Use a different method to share data between forms because you cannot avoid this error when using
global variables and running a form by itself.

Correct Answer: C

QUESTION 154
You have been asked to create a query Record Group programmatically. Which built-ins will you use?
A. CREATE_GROUP and ADD_GROUP_NOW
B. CREATE_GROUP and ADD_GROUP_COLUMN
C. CREATE_GROUP and SET_GROUP_SELECTION
D. CREATE_GROUP and POPULATE_GROUP
E. CREATE_GROUP_FROM_QUERY and POPULATE_GROUP

Correct Answer: E

QUESTION 155
Which two statements about a Non-Query Record Group are true? (Choose two)

A. The Record Group is associated with a query at run time or at design time.
B. The Record Group can be created and modified only at run time.
C. The Record Group can be created and modified only at design time.
D. The Record Group can be created and modified at design time or at run time.
E. You can modify the structure of this Record Group by adding columns and rows.
F. The Record Group is associated with a query only at design time.

Correct Answer: BE

QUESTION 156
You are developing a form for a family-oriented video store. The form will run in a query-only mode in a
customer kiosk that displays information about movies that are available to rent. The Rating item on the form shown in the upper portion of the exhibit displays the rating of the movie: G, PG, R, or X. Your customers are not interested in all these values, but they do want to see if the film is suitable for the whole family (rated G). You decide to change the item to a check box to be displayed as shown in the lower portion of the exhibit. You want users to be able to query any movies, but only those with a G rating will have the check box
selected. Which properties of the Rating item must you modify to make this change?

A. Item Type, Label, Value When Checked, Checkbox Mapping of Other Values, Prompt
B. Item Type, Value When Checked, Value When Unchecked, Prompt
C. Label, Initial Value, Value When Checked, Value When Unchecked, Prompt
D. Label, Initial Value, Value When Checked, Checkbox Mapping of Other Values, Prompt
E. Data Type, Label, Value When Checked, Value When Unchecked, Checkbox Mapping of Other Values, Prompt
F. You cannot use a check box for this application because there are more than two possible values for the item.

Correct Answer: E

QUESTION 157
In the Orders form, you create a button in the CONTROL block to send the input focus to the INVENTORIES block and cause it to be replaced.
You write this code in a When-Button-Pressed trigger. GO_BLOCK(‘Inventories’);
EXECUTE_QUERY;
What happens when you test the form?
A. The form will not compile because the block name must be uppercase.
B. The form compiles, but clicking the button causes a Navigation Trap to be encountered.You must revise the code to avoid such a trap.
C. The form compiles and runs as required.Focus moves to the INVENTORIES block, and it is queried automatically when the button is clicked.
D. The form compiles and focus moves to the INVENTORIES block.But because the internal cursor is still in the CONTROL block, the query is attempted against the wrong
block.
E. The form compiles, but clicking the button causes an error message to appear.
GO_BLOCK() is a restricted procedure and cannot be called from any “When” triggers.
F. The form compiles, but clicking the button leaves the focus in the original block, which is then queried.
This could have been prevented if you had coded a check for FORM_SUCCESS after the GO_BLOC();

Correct Answer: C

QUESTION 158
You start an OC4J instance on your development PC and then run a form from the Forms Builder. Which statement describes the behavior of OJ4J?

A. It appears in the Forms Builder window, which you can minimize after OC4J starts.
B. It appears in a separate window, which you can close after OC4J starts.
C. It appears in the Forms Builder window, which you can close after OC4J starts.
D. It appears in a separate window, which you should not close or the OC4J instance will abort.
E. It appears in a separate window, which you should not minimize of the OC4J instance will abort.

Correct Answer: D

QUESTION 159
Examine the Property Palettes of the BONNY canvas and the CLYDE window. Two items, both 50 points
wide by 15 points high, are associated with the canvas. The first item is a text item, the X Position property is
30, and the Y Position property is 40. The second item is a display item; the X Position property is 150, and
the Y Position property is 250 Which two actions allow the user to view the display item at run time? (Choose
two)

A. At run time, navigate to the text item and press the Tab key.
B. Define CLYDE as a modal window and display it with a horizontal scroll bar.
C. Define CLYDE as a modeless window and display it with a horizontal scroll bar.
D. Define CLYDE as a dialog window and display it with a horizontal scroll bar.
E. Define CLYDE as a document window and display it with a vertical scroll bar.
F. Define CLYDE as a modeless window and display it with a vertical scroll bar.

Correct Answer: EF

QUESTION 160
Exhibit:
***MISSING***
In the Human Resources form shown in the exhibit, you want to modify the prompt, heights, and widths of the Department Id, Manager Id, and Location Id fields in the Department data block. What must you select prior to invoking the Layout Wizard in reentrant mode to modify these item properties?

A. Frame5
B. Frame8
C. Canvas4
D. The Departments block
E. The DEPARTMENT_ID, MANAGER_ID, and LOCATION_ID items

Correct Answer:

QUESTION 161
You are developing an Order Entry application. The Customers form calls the Orders form and passes the
value of Customer_Id as a parameter by the same name, so that the orders for only that customer are
displayed.
What three statements are true? (Choose three)

A. You must create the parameter at design time in the Customers form.
B. You must create the parameter at design time in the Orders form.
C. You must create the parameter programmatically in the Customers form.
D. You must create the parameter programmatically in the Orders form.
E. You can programmatically refer to the parameter as :parameter.customer_id in the Customers form.
F. You can programmatically refer to the parameter as :parameter.customer_id in the Orders form.

Correct Answer: BCF

QUESTION 162
You have the Customers form and the Orders form open the Forms Builder. You create an object group in the Orders form and you try to drag various components in the Object Navigator to the object group. Which two components will you be unable to place in the object group? (Choose two)

A. The Orders block of the Orders form.
B. The Order_CV canvas of the Orders form.
C. The Customers block of the Customers form.
D. The When-New-Form-Instance trigger of the Orders form.
E. The Product_Id item in the Order_Items block of the Orders form.

Correct Answer: CE

QUESTION 163
You are developing a form that uses alerts to display database message rather than associated FRM
messages when the SQL statements issued by the form cause database errors to occur. You use a generic alert called DB_Alert to display the messages.
You begin to code an On-Error trigger to trap the FRM-40505 error that occurs when the SQL statement references an invalid column name. The associated database message is “ORA-00904: Invalid column name”, and this is what you want to be displayed in the alert.
You create a form-level On-Error trigger with the following code: DECLARE
n Number
BEGIN
IF ERROR_CODE = 40505 THEN
SET_ALERT_PROPERTY(‘DB_Alert’,ALERT_MESSAGE_TEXT, DBMS_ERROR_CODE);
n: = SHOW_ALERT(‘DB_Alert’);
END IF;
END
You run the form to test it.
What will the run-time behavior be when the FRM-40505 error code is encountered?

A. The alert called DB_Alert appears with the message “ORA-00904: Invalid column name”.
B. The alert called DB_Alert appears, but not with the correct message.
C. The alert does not appear, and the FRM-40505 message appears in the message line.
D. The alert does not appear, and the message “ORA-00904: Invalid column name” appears on the
message line.
E. The alert does not appear, and the message “FRM-41039: Invalid Alert ID 0” appears on the message
line.
Correct Answer: B

QUESTION 164
You are developing a Human Resourced application, and you create an Employees button in the
Departments form. The When-Button-Pressed trigger calls the Employees form to display the employees in
the current department. You have set the Employees button properties so that navigation to the button does
not occur. The Validation Unit property of the Departments form is set to item. You want to ensure that the
Department ID is valid prior to calling the Employees form, even if the user has updated the Department ID
and has not navigated out of that item. The Department_Id item has a When-Validate-Item trigger that
performs some complex validation logic. What code in the When-Button-Pressed trigger would force the
When-Validate-Item trigger to fire for the Department_Id item without navigating form the item?

A. ENTER;
B. SYNCHRONIZE;
C. REDISPLAY;
D. SET_FORM_PROPERTY(‘departments’,VALIDATION,
PROPERTY_TRUE);
E. SET_ITEM_PROPERTY(:SYSTEM.CURSOR_ITEM,ITEM_IS_VALID,
PROPERTY_TRUE);
F. You cannot programmatically cause validation without navigation.

Correct Answer: A

QUESTION 165
You want all buttons in your form to have the same values for several properties as the Exit button has. How can you create and use a property class to implement this?

A. Click Create with the Property Classes node selected in the Object Navigator.
Open the Property Palette for the new property class. Click Add Property.
Control-click the Exit button and in the Property Palette selected the properties to add. Multiselect all the other buttons in the Object Navigator and open their Property Palette. Click Property Class.
B. Open the Property Palette for the Exit button and multiselect the desired properties.
Click Property Class.
Multiselect all the other buttons in the Object Navigator and open their Property Palette. Set the Subclass Information property to the name of the new property class.
C. Open the Property Palette for the Exit button and multiselect the desired properties.
Click Property Class.
Multiselect all other buttons in the Object Navigator and open their Property Palette. Click Inherit.
D. Open the Property Palette for the Exit button and multiselect the desired properties.
Click Copy Properties.
Select the Property Class node in the Object Navigator and click Create. Open the Property Palette for the new Property Class.
Click Paste Properties.
Multiselect all the other buttons in the Object Navigator and open their Property Palette. Set the Subclass Information property to the name of the new property class.

Correct Answer: B

QUESTION 166
You have been asked to define a data block based on the result of a SQL query and of PL/SQL functions that return summary data. The data can be updated by the user.
How should you define an appropriate data source?

A. Define a data block based on a Ref Cursor.
B. Define a data block based on Table of Records.
C. Define a data block based on a Form Clause query.
D. Define a data block based on a combination of a Form Clause query and a Table of Records.
E. Define a data block based in a From Clause query and a Ref Cursor for controlling DML statements.

Correct Answer: B

QUESTION 167
The text items (Field1, Field2, and Field3) and the button (Check_Values) are in the CONTROL block. The Mouse Navigate property of the button has been set to No. The following code has been written in a WhenButton-Pressed trigger on the Check_Values button:
MESSAGE(:field1 l l’- ‘l l
NAME_IN(:SYSTEM.cursor.item) l l’- ‘l l NAMEIN(‘SYSTEM.cursor.item’)); With the focus in FIELD1, and the
values field1, field2, and field3 in the text items, what message will be displayed when the button is clicked?

A. field1-field1-field1
B. field1-field2-field3
C. field1-field2-CheckValues
D. field1-field1-CheckValues
E. field1-field1-CONTROL.FIELD1
F. CONTROL.FIELD1- CONTROL.FIELD1- field1
G. CONTROL.FIELD1 – CONTROL.FIELD2 – field3

Correct Answer: E
QUESTION 168
The Orders form is required to initialize differently for different users. A database procedure (GET
_ROLE_NAME) is used to determine which database roles are enabled for the user logging on to the form If
the user has the STORE_CLERK role enabled, certain buttons are disabled and the focus is sent to the
Custome_Id text item. If the user has the ADMIN_MGR role enabled, all buttons are available and the focus
is sent to the Date Ordered text item. You have written a procedure (SET_BUTTONS) to set the appropriate
button properties.
The functionality is achieved with this code:
IF get role name (USER)= ‘STORE_CLERK’ THEN set_buttons(‘STORE_CLERK’);
GO_ITEM(‘ORDERS.Customer_id’);
ELSE
set_buttons(‘ADMIN_MGR’);
GO_ITEM(‘ORDERS.Date_Ordered’);
END IF;
What is the best trigger to execute this code?

A. Pre-Form at form level
B. When-Validate-ltem at form level
C. When-New-Form-instance at form level
D. When-Button-Pressed on any of the enabled buttons
E. Pre-Block on the first navigable block in the form
F. When-New-ltem-Instance on the Date Ordered text item

Correct Answer: C

QUESTION 169
Consider the following scenario:
In a multiform application, the user started in FormA.
1. From FormA, the user invoked FormB using CALL_FORM
2. From FormB, the user invoked FormC using OPEN_FORM
3. From FormC, the user invoked FormD using OPEN_FORM
4. From FormB, the user invoked FormE using CALL_FORM
FormE contains a button with a When-Button-Pressed trigger. Which trigger code will close the form and navigate successfully?

A. CLOSE_FORM(‘FormA’);
GO_FORM (‘FormD’);
B. CLOSE_FORM(‘FormA’);
GO_FORM (‘FormC’);
C. CLOSE_FORM(‘FormB’);
GO_FORM (‘FormC’);
D. CLOSE_FORM(‘FormC’);
GO_FORM (‘FormB’);
E. CLOSE_FORM(‘FormC’);
GO_FORM (‘FormD’);
F. CLOSE_FORM(‘FormD’);
GO_FORM (‘FormA’);

Correct Answer: E

QUESTION 170
View the Exhibit and examine the Property Palettes of the BONNY canvas and the CLYDE window. The requirements of the application specify that the CLYDE window should not be resizable.
The form contains two items, both 50 points wide by 15 points high, which are associated with the canvas The first item is a text item; the X Position property is 30, and the Y Position property is 40.
The second item is a display item; the X Position property is 150, and the Y Position property is 250.
What are two ways to allow the user to view the display item at run time? (Choose two.)

A. At run time, with the cursor in the text item, press the Tab key
B. Define CLYDE as a modal window and display it with a horizontal scroll bar
C. Define CLYDE as a modeless window and display it with a horizontal scroll bar
D. Define CLYDE as a dialog window and display it with a horizontal scroll bar
E. Define CLYDE as a document window and display it with a vertical scroll bar
F. Define CLYDE as a modeless window and display it with a vertical scroll bar

Correct Answer: EF

QUESTION 171
The Summit application contains several different forms. You are developing the Orders form of the Summit application.
You have coded a trigger in the form to retrieve and format the address of the customer placing the order so that you can print a mailing label. However, as you add functionality you discover that you want to use the same code in several triggers in that form. The other forms in the application do not use this logic.
Without creating a separate module, how can you reuse the code within the Orders form and ensure that all triggers that format and retrieve the customer address do it in exactly the same way?

A. Move the code to a PL/SQL program unit in the Orders form
B. Move the code to a PL/SQL library that you attach to the Orders form
C. Copy the code from the first trigger and paste it into other triggers that use it
D. Place the trigger in an Object Group and drag it wherever it is needed in the Orders form
E. Place the trigger in an Object Library and drag it wherever it is needed in the Orders form

Correct Answer: A

QUESTION 172
View the Exhibit
You are modifying the New_Orders form. You want to change the navigation order of the Orders block so
that Order_Status is between Order_Date and Order_Mode in the navigation order. You attempt to drag the
Order_Status item in the Object Navigator (as shown in the exhibit), but Forms does not allow you to release
the item in the desired position. Why is this happening, and what can you do to change the navigation order?
A. Because the data block is sub classed, you cannot change the order of items in the object navigator, but
you can change item properties to affect the navigation order.
B. Because the data block is sub classed, you can only drag objects to a lower position in the Object
Navigator, so you can drag Order_Mode and Customer_Id to a position below Order_Status.
C. Because the data block is sub classed, you will have to delete the object and then create it again in the
desired position.
D. Because the item is sub classed, you cannot change any of its properties

Correct Answer: A

QUESTION 173
You are developing a Human Resources form for HR clerks to insert, update, and delete records from the EMPLOYEES table. You are also maintaining an audit table with the following table description
SQL>desc audlt changes
Name Null? Type
—————————— ——– — ——— —————————– TABLE NAME VARCHAR2 (30) ID NUMBER
TIMESTAMP DATE
CHANGE BY VARCHAR2 (30)
CHANGE TYPE VARCHAR2 (6)
Valid values for the CHANGE _TYPE column are INSERT, UPDATE, and DELETE.
Which trigger(s) must you create or modify in the Human Resources form to track all the information in the audit table?

A. Post-Commit
B. Post-Data base-Commit
C. When-Validate-Record
D. Post-Insert, Post-Update and Post-Delete
E. You cannot accomplish this using Forms triggers; you must use a database trigger

Correct Answer: D

QUESTION 174
You apply the Btn_PC property class to the Exit button and then make several changes in the property
values of the button. The Btn_PC property class includes the item type Push Button. You accidentally change the Item Type property of the Exit Button to CheckBox . How can you change the Item Type of the Exit
button back to Push Button, restore the subclassed relationship of the Item Type to the property class, and retain any other property changes that you have made?

A. Select the Item Type property of the Exit button and click Inherit
B. Change the Item Type property of the Exit button back to Push Button
C. Select the Item Type property of the Exit button and click Property Class
D. Set the Subclass Information property of the Exit button to NulI, then set it to Btn_PC
E. Set the Item Type property in the Btn_PC property class to Check Box, then change it back to Push
Button

Correct Answer: A

QUESTION 175
You are coding a trigger (shown in the exhibit) to display the database error that occurs when users
encounter the FRM-40505 error about being unable to execute a query. You have created an alert called
Ouery_Alert. For the FRM-40505 error, the trigger should display the database error message in the
Ouery_Alert. For all other errors, the trigger should display default messages on the console message line.
Examine the code for the On-Error trigger. When you attempt to compile this trigger, you receive a
compilation error with the message “Error 215 at line2, column 4: String length constraints must be in range
(1..32767)”.
What corrections should you make so that the trigger compiles and functions properly?

A. Eliminate the n variable because SHOW_ALERT does not return a value
B. Change the n variable to a NUMBER data type and change SLQERRM to DBMS_ERROR_TEXT.
C. Change the n variable to a NUMBER data type, replace SHOW_ALERT with FIND_ALERT, and change
the line beginning with SET_ALERT _PROPERTY to SET_ALERT _MESSAGE _PROPERTY(‘Ouery
_Alert’ ,SQLERRM);
D. Change all occurrences of error_code, error_type, and error_text to message_code, message_type and
message_txt.

Correct Answer: B

QUESTION 176
You create a text item in the Object Navigator. Which property must you change from the default value 50 that the text item will not be part of the SOL statement when a query is issued on the block?

A. Item Type
B. Column Name
C. Conceal Data
D. Database Item

Correct Answer: D

QUESTION 177
Which statement is true about built-ins that invoke one form from another?

A. CALL_FORM cannot be issued while in Enter-Query mode
B. CALL_FORM does not issue a save point
C. NEW_FORM invokes the second form in a modal state so the user can navigate freely between the two
running forms
D. NEW_FORM improves performance but consumes more memory because the first form is retained in
memory and returning to it is more efficient than reloading it
E. OPEN_FORM invokes the second form in a modeless state and optionally within a different transaction
scope
F. OPEN_FORM is the only way to invoke the second form in “query only”

Correct Answer: E

QUESTION 178
How can you restrict a query on a block temporarily, so that the restriction is in effect only for the first query on the block after setting the property?

A. Set the Where Clause block property at design time
B. Set the DEFAULT_WHERE block property programmatically
C. Set the ONETIME_WHERE block property programmatically
D. Set the Onetime Where Clause block property at design time
E. Set the Default Where clause for the block either at design time or programmatically
F. Set the Onetime Where clause for the block either at design time or programmatically

Correct Answer: C

QUESTION 179
Your company assigns three possible credit ratings to customers: Poor, Good, and Excellent (represented numerically by 1, 2, and 3). The DBA has just added a RATING column to the CUSTOMERS table and has asked you to add an item to your form so that credit ratings can be recorded. To restrict data entry clerks to one of these three values, you decide to create a radio group for the Rating item.
You want to allow for an undetermined (Null) credit rating, and users should be able to update the credit rating from a value to an undetermined rating How can you implement this?

A. Create three radio buttons for each of the credit ratings, and set the Mapping of Other Values for the radio
group to Null
B. Create three radio buttons for each of the credit ratings, and set the Mapping of Other Values for the radio
group to one of the credit rating values.
C. Create four radio buttons, and leave blank the value for the undetermined credit rating
D. Choose a different type of input item, because radio groups do not allow entry and update of null values

Correct Answer: C

QUESTION 180
View the Exhibit to examine the form.
The text items (Field1, Field2, and Field3) and the button (Check_Values) are in the CONTROL block. The Mouse Navigate property of the button has been set to No. The following code has been written in a WhenButton-Pressed trigger on the Check_Values button:
MESSAGE(:field1 | |’ – ‘| | :SYSTEM.cursor_item | | ‘
– ‘| | :SYSTEM.trlgger_ltem) ;
With the focus in Field1, and the values 1, 2 and 3 in the text items, what message will be displayed when
the button is pressed?
A. -4
B. 1-2-3
C. 1-field1-CheckValues
D. field1 – 1 – CheckValues
E. 1 – CONTROL.FIELD1 – CONTROL.FIELD1
F. 1 _ CONTROL.FIELD1 – CONTROL.CHECK_VALUES
G. :field1 – SYSTEM.cursor_item – :SYSTEM.trigge_item

Correct Answer: F
QUESTION 181
You are designing a Human Resources application that uses a menu to implement most of the code. One of the menu items is labeled Raise Salary. The business rule is that the salary should be raised 2% if the salary of the selected employee shown in the form is less than $25,000 per year, but the raise should be 3% if the value of the salary item is $2 5,000 or greater. Which condition can you use in the menu code to determine if the current value of the Salary item in the Employees block is less than $ 25,000?

A. IF : EMPLOYEES. SALARY < 25000 THEN …
B. IF COPY(‘EMPLOYEES.SALARY’) < 25000 THEN …
C. IF NAME_IN (‘EMPLOYEES. SALARY’) <25000 THEN …
D. IF FIND_ITEM(‘EMPLOYEES.SALARY’) < 25000 THEN …
E. IF GET_ITEM_PROPERTY(‘EMPLOYEES.SALARY’,DATABASE_VALUE) < 25000 THEN …

Correct Answer: C

QUESTION 182
The Products.fmb module has one content canvas, which displays information about products sold by your company.
You increase the canvas display area by creating an overlay canvas to enable product images to be
displayed on request. At run time, however, the overlay canvas is never displayed; users complain that there is only a brief flash on their screen
How do you correct this problem?

A. Ensure that the current item is not hidden by the overlay canvas
B. Call the built-in GET _VIEW_PROPERTY to set the canvas VISIBLE property to True
C. In the Layout Editor, choose View Stacked Views Then select the overlay canvas in the Stacked
Canvases dialog box
D. Change the stacking order of canvases under the Canvases node in the Object Navigator Ensure that the
overlay canvas is the first canvas listed under this node.
E. Change the stacking order of canvases under the Canvases node in the Object Navigator. Ensure that the
overlay canvas is the last canvas listed under this node
Correct Answer: A

QUESTION 183
You are developing a form for a family-oriented video store. The form will run in query-only mode in a
customer kiosk to show information about movies that are available to rent. The Rating item in the Movies block of the form shown in the upper portion of the exhibit displays the rating of the movie: G, PG, R, or X. Your customers are not interested in all these values, but they do want to see if the film is rated G to indicate that it is suitable for the whole family You decide to change the item to a check box to be displayed as shown in the lower portion of the exhibit You want users to be able to query any movies, but only those with a G
rating will have the check box selected.
You change the item type of the Rating item to Checkbox and set its Label, Value When Checked (G), and Prompt properties However, when you run the form to test it and execute an unrestricted query, only those movies with a rating of G are displayed.
What do you need to change so that all movies are returned by the query and the check box properly shows the “For the Whole Family” rating?

A. Set the Initial Value property of the Rating item to G
B. Set the Value When Unchecked property of the Rating item to null
C. Set the Checkbox Mapping of Other Values property of the Rating item to Checked
D. Set the Checkbox Mapping of Other Values property of the Rating item to Unchecked
E. Set the Update Allowed, Insert Allowed, and Delete Allowed Properties of the Movies block to No
F. Change the item type You cannot use a check box for this application because there are more than two
possible values for the item

Correct Answer: D

QUESTION 184
You are developing a customer information application for a pay television company. The customer’s home telephone number is used as the account number for the customer. Clerks must be able to update the
telephone number in case of changes or data entry errors. A data entry clerk will typically open several forms from the Customers form that are synchronized with the currently selected customer using a global variable containing the telephone number. Although you also need to modify the other forms, what two triggers should you code in the Customers form to keep the forms synchronized in case the data entry clerk updates the
telephone number or selects a different customer? (Choose two.)

A. Pre-Query
B. Post-Query
C. Key-Next-Record
D. When-New-Record-lnstance
E. When-Validate-ltem for the phone number item
F. When-New-ltem-lnstance for the phone number item

Correct Answer: DE

QUESTION 185
In an Order Entry form, the Order_Items block has a text item called Shipping_Date, which is of the Date
data type The Lowest Allowed Value and the Highest Allowed Value properties are not defined for this item. Assuming that all of the following are defined, which three are valid settings for the Initial Value property of the Shipping_Date item? (Choose three.)

A. $$DBDATE$$
B. : Orders.Order_date + 3
C. SYSDATE
D. :GLOBAL.SHIP_DATE
E. :PARAMETER:SHIP_DATE
F. ORDER_ITEMS_SEQ
Correct Answer: AE
QUESTION 186
To centralize some of your processing, you decide to write PUSQL library modules that contain procedures
that can be called from form triggers or menu items. You need to populate some fields based on values in
other fields.
Which code do you use?

A. IF FIND ITEM I ‘ORDERS. order total’ I > 10000
THEN
FIND_ITEM(‘ORDERS.large order’)’ := ‘Y’;
MESSAGE ( ‘WARNING – large order!);
END IF;
B. IF :ORDERS.order total > 10000
THEN
:ORDERS.large order := ‘Y’;
MESSAGE (‘ WARNING – large order! “);
END IF;
C. IF ‘ORDERS. Order_total’ > 10000
THEN
‘ORDERS .large_order’ :=’Y’ ;
MESSAGE ( ‘WARNING – large order!’);
END IF;
D. IF :ORDERS.order_total> 10000
THEN
COPY ( ‘ORDERS . large_order’, ‘Y’ ) ;
MESSAGE ( ‘WARNING – large order! ‘);
END IF;
E. IF NAME_IN ( ‘ORDERS. Order_total’ ) > 10000
THEN
COPY ( ‘Y’ , ‘ORDERS .large_order’ ) ;
MESSAGE (‘WARNING – large order! ‘);
END IF;

Correct Answer: E

QUESTION 187
You are creating an application on a Windows PC, and you want to test a form. What are two ways to start an OC4J instance on the PC? (Choose two)

A. From the Forms Builder menu.
B. From the Windows Start menu.
C. By executing a batch file that is included with Oracle9iDS.
D. From the test form that is included with Oracle9iDS.
E. From the HTML front end (runform.htm) that is included with Oracle9iDS.
F. By running a Forms Builder form, which automatically starts OC4J.

Correct Answer: BC

QUESTION 188
You want to find out if a certain menu item exists in the menu that is attached to a form, so you use the following code in a When-Button-Pressed trigger.
DECLARE
mi_id BOOLEAN;
BEGIN
MI_ID:= FIND_MENU_ITEM(‘File.Exit’); IF mi_id THEN
MESSAGE(‘The Exit menu item exists’);
END IF;
END;
Is this code correct? If not, what would you need to change?

A. No changes are needed; the code is correct.
B. Use a different built-in; FIND_MENU_ITEM is not correct.
C. Do not place the menu item name in single quotes; precede it with a colon instead.
D. The variable mi_id should be of the MENU_ITEM data type, and the IF clause should check to see that
the variable is not null.
E. Change the arguments for FIND_MENU_ITEM; the menu name and the menu item name should be
separate arguments.
Correct Answer: D

QUESTION 189
In the Orders form you define five LOVs, and you create one button to be used to display any of the LOVs. The button is enabled only when the user navigates to a field with an attached LOV. If the user supplies only part of the required input data, the LOVs use that input as search criteria to automatically reduce the LOV Contents. If the LOVs hold only one value that can possibly math user-supplied input, then the LOVs autocomplete the input field and are not displayed.
Which built-in properties should you use to display the LOVs?

A. Use the List_Values(RESTRICT) built-in, and set the Mouse Navigate property value to NO.
B. Use the List_Values(RESTRICT) built-in, and set the Mouse Navigate property value to YES.
C. Use the List_Values(NO_RESTRICT) built-in, and set the Mouse Navigate property value to NO.
D. Use the List_Values(NO_RESTRICT) built-in, and set the Mouse Navigate property value to YES.
E. Use the Show_LOV built-in, and set the Mouse Navigate property value to YES.
Set the Validate from List property of the text item to NO for each item with an attached LOV.
F. Use the Show_LOV built-in, and set the Mouse Navigate property value to YES.
Set the Automatic Select property of each LOV to YES.

Correct Answer: A

QUESTION 190
You are developing a form that uses alerts to display database message rather than associated FRM
messages when the SQL statements issued by the form cause database errors to occur. You use a generic alert called DB_Alert to display the messages.
You begin to code an On-Error trigger to trap the FRM-40505 error that occurs when the SQL statement references an invalid column name. The associated database message is “ORA-00904: Invalid column name”, and this is what you want to be displayed in the alert.
You create a form-level On-Error trigger with the following code: DECLARE
n Number
BEGIN
IF ERROR_CODE = 40505 THEN
SET_ALERT_PROPERTY(‘DB_Alert’,ALERT_MESSAGE_TEXT, DBMS_ERROR_CODE);
n: = SHOW_ALERT(‘DB_Alert’);
END IF;
END
You run the form to test it.
What will the run-time behavior be when the FRM-40505 error code is encountered?

A. The alert called DB_Alert appears with the message “ORA-00904: Invalid column name”.
B. The alert called DB_Alert appears, but not with the correct message.
C. The alert does not appear, and the FRM-40505 message appears in the message line.
D. The alert does not appear, and the message “ORA-00904: Invalid column name” appears on the
message line.
E. The alert does not appear, and the message “FRM-41039: Invalid Alert ID 0” appears on the message
line.

Correct Answer: B

QUESTION 191
View the Exhibit to examine the form.
The text items (Field1, Field2, and Field3) and the button (Check_Values) are in the CONTROL block. The Mouse Navigate property of the button has been set to No. The following code has been written in a WhenButton-Pressed trigger on the Check_Values button:
MESSAGE(:field1 | |’ – ‘| | :SYSTEM.cursor_item | | ‘
– ‘| | :SYSTEM.trlgger_ltem) ;
With the focus in Field1, and the values 1, 2 and 3 in the text items, what message will be displayed when
the button is pressed?

A. -4
B. 1-2-3
C. 1-field1-CheckValues
D. field1 – 1 – CheckValues
E. 1 – CONTROL.FIELD1 – CONTROL.FIELD1
F. 1 _ CONTROL.FIELD1 – CONTROL.CHECK_VALUES
G. :field1 – SYSTEM.cursor_item – :SYSTEM.trigge_item

Correct Answer: F

QUESTION 192
You are developing a form for a family-oriented video store. The form will run in query-only mode in a
customer kiosk to show information about movies that are available to rent. The Rating item in the Movies block of the form shown in the upper portion of the exhibit displays the rating of the movie: G, PG, R, or X. Your customers are not interested in all these values, but they do want to see if the film is rated G to indicate that it is suitable for the whole family You decide to change the item to a check box to be displayed as shown in the lower portion of the exhibit You want users to be able to query any movies, but only those with a G
rating will have the check box selected.
You change the item type of the Rating item to Checkbox and set its Label, Value When Checked (G), and Prompt properties However, when you run the form to test it and execute an unrestricted query, only those movies with a rating of G are displayed.
What do you need to change so that all movies are returned by the query and the check box properly shows the “For the Whole Family” rating?

A. Set the Initial Value property of the Rating item to G
B. Set the Value When Unchecked property of the Rating item to null
C. Set the Checkbox Mapping of Other Values property of the Rating item to Checked
D. Set the Checkbox Mapping of Other Values property of the Rating item to Unchecked
E. Set the Update Allowed, Insert Allowed, and Delete Allowed Properties of the Movies block to No
F. Change the item type You cannot use a check box for this application because there are more than two
possible values for the item

Correct Answer: D

QUESTION 193
In an Order Entry form, the Order_Items block has a text item called Shipping_Date, which is of the Date
data type The Lowest Allowed Value and the Highest Allowed Value properties are not defined for this item. Assuming that all of the following are defined, which three are valid settings for the Initial Value property of the Shipping_Date item? (Choose three.)

A. $$DBDATE$$
B. : Orders.Order_date + 3
C. SYSDATE
D. :GLOBAL.SHIP_DATE
E. :PARAMETER:SHIP_DATE
F. ORDER_ITEMS_SEQ

Correct Answer: AE

Advertisements