"When
you see your brother, you see God."
-St.
Clement of Alexandria (c.A.D.
150-c.215)
|
How
to populate poplist item?
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.”
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.
|