How to
populate poplist item?
Hands-On
problem
===================
Your
client has a form that contains a product description. They don’t want that
their data entry staffs to type a product description. You, as a programmer,
have been asked to change their form so that the product description item is
populated from the PRODUCT table. They therefore are able to select the product
description. You need to change the “text item” object to the “list
item” object with the item type as “poplist.”
Gathered
By:
John Kazerooni
Solution:
=========
Assuming
that you have a form that has an item that contains the product description.
1-
Go to the object navigator window and open the “product description”
property palette.
2-
Change “item type” to “list item.”
3-
Make sure that “list style” is “poplist.”
4-
Open the “Elements in list.” You do this just to avoid getting an
error regarding with the “No value defined in the list item” error message.
5-
Type “A” in “List Elements.”
6-
Type “A” in “List Item Value.”
7-
Close the “product description” property palette.
8-
Create a record group and name it “rg_prod_desc” with the
following query:
(Make
sure that the “Based on the query below” option is selected.)
SELECT descrip A, descrip B
FROM product
ORDER BY 1 -- do not type “;” at the end.
Note
that you must define the descrip column twice. The first one is for label, and
the second one is for the value.
9-
Open the “rg_prod_desc” property palette and change the “Name”
item and the “Record Group Fetch Size” item to your desire value.
For
example:
Change
“Name” to “rg_prod_desc.”
Change
“Record Group Fetch Size” to 10.
10-Close
the property palette.
11-
Create the “WHEN_NEW_FORM_INSTANCE” trigger with the following code:
DECLARE
STATUS NUMBER;
Problem EXCEPTION;
BEGIN
-- to populate the group
STATUS:=POPULATE_GROUP('RG_PROD_DESC');
-- Check that the select statement was executed successfully.
IF STATUS <> 0 THEN
RAISE problem;
ELSE
-- to populate the list item
POPULATE_LIST('DESCRIP', 'RG_PROD_DESC');
END IF;
EXCEPTION
WHEN problem THEN
MESSGAE ('We have a problem to query the PRODUCT table.');
END;
12-
Compile and close the trigger.
13-
Run the form, go to the product description item, and click on the description
poplist. You should see the items listed.
|