Skip to main content

Oracle Forms - How to Enable Folder Functionality in Custom Forms

How to Enable Folder Functionality in Custom Forms
 
Follow following steps to enable Folder Functionality in Custom Form or if you want to export column heading in export file along with data:
Attach APPFLDR Library
APPFLDR can be found in $AU_TOP/Res/Plsql directory on server where forms are residing.
Reference STANDARD_FOLDER Object Groups
STANDARD_FOLDER Object group can be referenced from APPSTAND form which resides in $AU_TOP/Res/US. This will also copies the dependent objects required for object group.
Create <BLOCKNAME>_RECORD_COUNT parameter
Create <BLOCKNAME>_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.
Canvas
You need two canvas- one content and one stacked. Let us name content canvas as PROJECT_FOLDER and stacked canvas as PROJECT_STACK. Both the canvas have same window.
Windows
Create One Window. Name it PROJECT_FOLDER with view name as PROJECT_FOLDER
Blocks
Main Block:
Create a block (BLOCKNAME) containing database columns. Items should be on Stacked canvas (PROJECT_STACK). Also create following eight triggers:
WHEN-NEW-BLOCK-INSTANCE
app_folder.event(‘WHEN-NEW-BLOCK-INSTANCE’);
KEY-PREV-ITEM
if (:parameter.<blockname>_record_count = 1) then
previous_item;
else
app_folder.event(‘KEY-PREV-ITEM’);
end if;
KEY-NEXT-ITEM
if (:parameter.<blockname>_record_count = 1) then
next_item;
else
app_folder.event(‘KEY-NEXT-ITEM’);
end if;
PRE-BLOCK
app_folder.event(‘PRE-BLOCK’);
POST-BLOCK
app_folder.event(‘POST-BLOCK’);
PRE-QUERY
app_folder.event(‘PRE-QUERY’);
KEY-EXEQRY
app_folder.event(‘KEY-EXEQRY’);
POST-QUERY
app_folder.event(‘POST-QUERY’);
PROMPT Block:
Create new block (PROMPT) which will contain prompts for the column displayed in upper block. 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 (PROJECT_STACK).
Item Name: FOLDER_OPEN, Item Type: Button, Canvas: PROJECT_FOLDER
Item Name: FOLDER_DUMMY, Item Type: Text Item , Canvas: TOOLBAR
Item Name: FOLDER_TITLE, Item Type: Display Item, Canvas: PROJECT_FOLDER
Item Name: ORDER_BY1, Item Type: Button, Canvas: PROJECT_STACK
Item Name: ORDER_BY2, Item Type: Button, Canvas: PROJECT_STACK
Item Name: ORDER_BY3, Item Type: Button, Canvas: PROJECT_STACK
Form Level Triggers
FOLDER_ACTION

— 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.event(:global.folder_action);
WHEN-NEW-FORM-INSTANCE
app_folder.define_folder_block(‘BLOCKNAME’, — ‘Object Name’
‘BLOCKNAME’, — ‘folder_block’,
‘PROMPT’, — ‘prompt_block’,
‘PROJECT_STACK’, –‘stacked_canvas’,
‘PROJECT_FOLDER’, –‘window’,
NULL); –‘disabled functions’);

Comments

Popular posts from this blog

Oracle Forms -- Important Syntaxes

1. To get the enabled property of the item APP_ITEM_PROPERTY.GET_PROPERTY('CONTROL.FILTER_HOLD_RECORDS',ENABLED) 2. Disable Attachment for this Block in WHEN-NEW-BLOCK-INSTANCE  APP_SPECIAL.ENABLE('ATTACHMENTS', PROPERTY_OFF); 3. Default Where / Default Order By Set_block_property('XWII_MATL_DISP_HOLDS_V', Default_where, Lc_query); Set_block_property('XWII_MATL_DISP_HOLDS_V', order_by, Lc_query); 4. Visual Attribute    a. Define Visual Attribute for eg 'XWII' where you can set Colour  b. SET_ITEM_INSTANCE_PROPERTY('block.item_name',CURRENT_RECORD,VISUAL_ATTRIBUTE ,'XWII'); 4. Visual Attribute for Record APP_RECORD.HIGHLIGHT('XWII'); Where 'XWII' is the visual attribute where you can set Colour. 5. Initiliaze SPECIAL Menu app_special.instantiate ('SPECIAL1', GET_GROUP_CHAR_CELL ('SPECIAL_MENU.SPECIAL_MENU_ITEM', 1), '', TRUE, ''); 6. execute_trigger('SPECIAL25...

Oracle Forms - Window Resize ( Changing window size upon minimizing and maximising)

-- Added by Qutub M for View SU Redesign Proj. (Notes) DECLARE ln_width_diff NUMBER; ln_item_width NUMBER; ln_canvas_width NUMBER; ln_view_width NUMBER; BEGIN IF :system.EVENT_WINDOW = 'FULL_NOTE_DISPLAY' THEN ln_width_diff := TO_NUMBER(GET_WINDOW_PROPERTY('FULL_NOTE_DISPLAY',width)) - :PARAMETER.FULL_NOTES_WIDTH; ln_item_width := TO_NUMBER(GET_ITEM_PROPERTY('FULL_NOTE_DISPLAY.FULL_NOTE',width)); ln_canvas_width := TO_NUMBER(GET_CANVAS_PROPERTY('FULL_NOTE_DISPLAY',width)); ln_view_width := TO_NUMBER(GET_VIEW_PROPERTY('FULL_NOTE_DISPLAY',width)); -- SET_VIEW_PROPERTY('FULL_NOTE_DISPLAY', X_POS, 0); SET_VIEW_PROPERTY('FULL_NOTE_DISPLAY', WIDTH, :parameter.view_width+ln_width_diff); SET_CANVAS_PROPERTY('FULL_NOTE_DISPLAY', WIDTH, :parameter.canvas_width+ln_width_diff);     SET_ITEM_PROPERTY('FULL_NOTE_DISPLAY.FULL_NOTE', width, :parameter.item_width+ln_width_diff);     --M...