| 1. | 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 a 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 the following 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;
Which triggers are ideal for executing 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 were written against the disabled buttons, it would have never been 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
|
|
|
|
|
|
|
| 2. | JOHN was running the Employees form in debug mode and stepping through a procedure (as shown in the exhibit). He knows that the stored function RAISE_SALARIES performs the correct calculation. Which forms builder menu item from the Debug menu should he 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
|
|
|
|
|
|
|
| 3. | The following four menu items were created for the main menu of a menu module that is attached to a form:
| Name | Label |
| EXIT_FORM | EXIT& FORM |
| CLOSE_QUERY | CLOSE FORM |
| EDIT | Edi&t |
| EXIT | eXit |
Which menu item is invoked when a user presses Alt + C at run time? |
| a. | | EDIT |
| b. | | EXIT |
| c. | | CLOSE_FORM |
| d. | | EXIT_FORM
|
|
|
|
|
|
|
| 4. | How can a value be assigned to an item on a form from within the code of a menu item? |
| 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
|
|
|
|
|
|
|
| 5. | The Department form is a part of a multiform application that also includes the Customer and Orders forms. The Department form must include a query-based PRODUCT Record Group. All three forms must be able to access the PRODUCT Record Group. Which built-in should be used 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)
|
|
|
|
|
|
|
| 6. | Which built-in should be used 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. |
| 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);
|
|
|
|
|
|
|
| 7. | Which of the following statement is correct with regard to object group? |
| a. | | A program unit cannot be dragged to an object group |
| b. | | Object groups contain copies of the original objects |
| c. | | The original objects can be deleted without affecting the object group |
| d. | | The object group can be deleted without affecting the original objects
|
|
|
|
|
|
|
| 8. | 'Create a library module' is a method of reuse that is possible with a PL/SQL program unit, but not with a Forms trigger. |
| a. | | True |
| b. | | False
|
|
|
|
|
|
|
| 9. | MARY has been asked to define a data block based on a query that is dependent on SQL only. The user will not update the data. Selection of the tables to be queried will be decided by the user at run time. How should she 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
|
|
|
|
|
|
|
| 10. | 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);
|
|
|
|
|
|
|
| 11. | All the buttons in a form should have the same values for several properties as the Exit button has. How can a property class be created and used 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
|
|
|
|
|
|
|
| 12. | TOM is developing a Human Resources 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 'FRM-40400: Transaction complete: records applied and saved.' He wants to replace that with the message 'Records inserted:', 'Records updated:', 'Records deleted:', Which triggers must be created to modify or 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
|
|
|
|
|
|
|