|
Forms
|
|
Triggers
Introduction
Forms Trigger
A forms
trigger is a block of PL/SQL code that
adds functionality to your application.
Triggers are attached to objects in your
application. When a trigger is fired, it
executes the code it contains. Each
trigger�s name defines what event will fire
it; for instance, a WHEN-BUTTON-PRESSED
trigger executes its code each time you
click on the button to which the trigger is
attached. Or, we can say, a forms trigger
is a set of PL/SQL actions that happen each
time an event such as when-checkbox-changed,
when-button-pressed, or
when-new-record-instance occurs. You can
attach several triggers to a data query.
The most popular of them are the PRE-QUERY
and POST-QUERY.
PRE-QUERY and
POST-QUERY trigger
The
PRE-QUERY trigger fires before the
select statement is finalized. The
POST-QUERY trigger fires before selected
records are presented to the user. It fires
after records are retrieved but before they
are displayed. So, you can use it to enhance
a query�s records in a number of ways. Your
Post-Query trigger can contain code to
calculate or populate control items.
PRE-INSERT and
WHEN-NEW-FORM-INSTANCE trigger
Some other
useful triggers are: PRE-INSERT and
WHEN-NEW-FORM-INSTANCE.
A
PRE-INSERT trigger fires once before
each new record is inserted in a commit
process. The �WHEN-NEW-FORM-INSTANCE�
trigger will be used to prepare objects or
an action when entering to a new form. It
fires when the form is entered.
Hands-On
Now, the
user�s DBA removed the �itemtot� column
whose content was depended on the other
columns. Your client wants you to remove the
�itemtot� item from layout screen.
Also, your
application only shows products' ID. Your
client wants to see product's description
since product's ID does not tell them what
the product is.
They want you
to remove duplicate item information from
"Items" tab canvas; and add a new item to
display product's description in the "Items"
tab canvas.
See Figure 8.
Your tasks
are:
1- Remove
duplicate item information from "Items" tab
canvas.
2- Add a new
item to display product's description
�Product Description� in the "Items" tab
canvas.
3- Run and
test all user functional requirements.
In this Hands-On, you will learn how to:
use the post-query trigger, Compile
Triggers, use tab canvas, use �object
navigator,� use �Data Blocks,� use �Layout
Editor,� use �Property Palette,� use �Run
Form,� and �Execute Query.�
Figure 8
Open a Module
In the �Object
Navigator� window, highlight Forms. Go to
the Main menu and choose �File,� select
�Open� to open an existing form (customer_orders_V05)
in the folder.
Save a Module
Click on the
�CUSTOMER_ORDERS_V05� form. The color
changes to blue. Change it and then save the
Form name as version 06 (customer_orders_v06).
This way the original form is untouched.
Layout Editor
In the Main
menu, choose the �Tools� sub-menu and select
the Layout Editor option.
Adjust the
window, if you need it. In the Layout Editor
window, select the "ITEMTOT" item by
clicking on it and press the "Delete"
function key to remove the object since it
is duplicated.
Make some
window adjustment to make space for the
product description.
Add a Display
Item
In the toolbar
in the Layout Editor window, select the
�Display Item� icon. Drag the �+� sign on
the canvas and click it where you wish to
add your Product Description item
(DISPLAY_ITEMnn). Adjust its size.
Make sure the
BLOCK box in the Layout Editor shows �ITEM.�
Change
Property Palette sheets
Right click on
the new item and open its property palette.
Change name to �PRODUCT_DESC.� Change
"database item" to "no." On �Prompt� type
�Product Description.� Change �Prompt
Attachment edge� to " Top.� Then close the
window.
Do some window
adjustments if needed.
Notice that
the "Product Description" is not in the item
table, therefore you need to create a
trigger to query that information.
Create a
Trigger
Expand the
ITEM data block. Notice that the box next to
Trigger is empty. That means the ITEM data
block does not have any trigger.
Highlight the
Trigger item and click on the green �+� sign
on the toolbar in the Object Navigator
window.
POST-QUERY
Trigger
In the Trigger
window, type a letter �P� and you will see
all the triggers that start with the letter
�P.� Select the �POST-QUERY� trigger.
PL/SQL editor
In the PL/SQL
Editor window, write a query to move
"product description" into the display item
for each "prodid" on the screen.
(PL/SQL
Editor)
SELECT descrip
INTO :product_desc
FROM product
WHERE prodid =
:prodid;
Compile a
PL/SQL statement
Compile it.
You should get
successfully compiled.
Close the
window.
Navigate
through the application layout.
Run the Form
Runtime
Then run the
application.
Execute Query
Execute the
query and then navigate through the
application.
Check the
changes. Test the "product description."
Check if the
description is right.
Close the
window and save all the changes.
Questions:
Q: What is a
Forms Trigger?
Q: Describe
the WHEN-BUTTON-PRESSED trigger.
Q: Describe
the PRE-QUERY trigger.
Q: Describe
the POST-QUERY trigger.
Q: Describe
the PRE-INSERT trigger.
Q: Describe
the WHEN-NEW-FORM-INSTANCE trigger.
Q: Now, the
user�s DBA removed the �itemtot� column
whose content was depended on the other
columns. Your client wants you to remove the
�itemtot� item from layout screen.
Also, your
application only shows products' ID. Your
client wants to see product's description
since product's ID does not tell them what
the product is.
They want you
to remove duplicate item information from
"Items" tab canvas; and add a new item to
display product's description in the "Items"
tab canvas.
See Figure 8.
Your tasks
are:
1- Remove
duplicate item information from "Items" tab
canvas.
2- Add a new
item to display product's description
�Product Description� in the "Items" tab
canvas.
3- Run and
test all user functional requirements. |
|
|
|
|