In oracle Applications' GUI includes unique features to enhance the productivity of Oracle's application users. Folder is one the features, that enhance the feature for high productivity.
What is Folder..
As per documentation is say .."A folder is a special kind of window that allows users to customize the set of fields and records displayed for a particular business entity without programming. Using the folder customization menu or tool palette, users can specify the records and the fields they wish to see, as well as field sequence, field prompts, and field display widths. Users can customize folders at any time, saving them for personal use or sharing them with others."
The most common use of folder technology is in the gateway to a key applications entity. Users can customize the folder window to display the set of fields and records that are most relevant to the business at hand. From the folder window, users can perform an action involving one or more of the returned records. Or, they can select a single record, open a detail window that shows all the fields for that record, and perform an action involving that record.
Here are the 9 steps to enable folders in custom forms.
These Changes will make sure that folder can be saved and its query criteria are also saved.
1. Pick up Template.fmb from your $AU_TOP/resource directory on server where forms are residing.
2. Check out all the libraries get loaded successfully along with the Template.
3. Check for APPDAYPK.pll loaded fine, else copy it from APPSTAND.fmb
4. Attach APPFLDR library/pll
APPFLDR can be found in $AU_TOP/Resource directory on server where forms are residing.
5. Copy the STANDARD_FOLDER Object Group
STANDARD_FOLDER Object group can be referenced from APPSTAND form which resides in $AU_TOP/Resource. This will also copies the dependent objects required for object group.
This will copy Folder Related Blocks,Canvases and other necessary objects.
6. Let us say we have One Main block, Not concerned with Control Blocks
Create <BLOCKNAME>_RECORD_COUNT parameter
as XXPH_RCPT_HIS_ RECORD_COUNT parameter
where BLOCKNAME is the name of the block containing columns to be displayed. Data Type should be Number and Put default Value of 2.
You need two canvas- one content and one stacked. Let us name content canvas as XXPH_RCPT_HIS_CONTENT and stacked canvas as XXPH_RCPT_HIS_STACKED. Both the canvas have same window.
Create One Window. Name it XXPH_RCPT_HIS_WIN with view name as XXPH_RCPT_HIS_WIN
XXPH_RCPT_HIS contains database columns. Items should be on Stacked canvas (XXPH_RCPT_HIS_STACKED).
7. Create following eight triggers:
if (:parameter.XXPH_rcpt_his_record_count = 1) then
if (:parameter.xxph_rcpt_his_record_count = 1) then
8. PROMPT Block:
Create new block XXPH_RCPT_HIS_PROMPT: which will contain prompts for the column displayed in upper block.
Make subclass information as DYNAMIC_PROMPT.
This block should contain:
Items which will be Prompts for above block columns (Item name should be same as Column name in above block). Prompt Items should be on Stacked canvas (XXPH_RCPT_HIS_STACKED).
Create new Items specified below:
Item Name: FOLDER_OPEN, Item Type: Button, Canvas: XXPH_RCPT_HIS_CONTENT,Subclass:Dynamic_Title
Item Name: FOLDER_DUMMY, Item Type: Text Item , Canvas: TOOLBAR ,Subclass:Folder_Dummy
Item Name: FOLDER_TITLE, Item Type: Display Item, Canvas: XXPH_RCPT_HIS_CONTENT,Subclass:Dynamic_Title
Item Name: ORDER_BY1, Item Type: Button, Canvas: XXPH_RCPT_HIS_STACKED
Item Name: ORDER_BY2, Item Type: Button, Canvas: XXPH_RCPT_HIS_STACKED
Item Name: ORDER_BY3, Item Type: Button, Canvas: XXPH_RCPT_HIS_STACKED
Item Name:Folder_Switcher, Item Type:Text,Canvas: XXPH_RCPT_HIS_CONTENT,Subclass:SWITCHER
Check out your Both Canvases for setting these new buttons,prompts.
9. Form Level Triggers
-- Remove the message and uncomment the line after it to activate the folder actions
-- message('You must modify the FOLDER_ACTION trigger in your form!');
app_folder.define_folder_block(' XXPORCHUK ', -- 'Object Name'
' XXPH_RCPT_HIS ', -- 'folder_block',
' XXPH_RCPT_HIS_PROMPT ', -- 'prompt_block',
NULL); --'disabled functions');