Below the steps to develop a Query_Find form in Oracle Apps.
Step-1.
Open Template.fmb with form builder save it in another name(eg. XX_QUERY_FIND.fmb) and change module name into XX_QUERY_FIND
Step-2.
- Delete Data Block: BLOCKNAME and DETAILBLOCK
- Delete Window: BLOCKNAME
- Delete Canvas: BLOCKNAME
Step-3.
- Create new Window. (eg. XX_YOUR_WINDOW)
- Go to property palette >> choose "Subclass Information" >> choose "Property Class" >> choose "WINDOW"
Step-4.
- Go to PRE-FORM trigger on form level
- Change "BLOCKNAME" into XX_YOUR_WINDOW
PRE-FORM trigger (before)
FND_STANDARD.FORM_INFO('$Revision: 115.12
'$Date: 2003/12/19 11:02 $', '$Author: appldev $');
app_standard.event('PRE-FORM');
app_window.set_window_position('BLOCKNAME', 'FIRST_WINDOW');
PRE-FORM trigger (after)
FND_STANDARD.FORM_INFO('$Revision: 115.12
'$Date: 2003/12/19 11:02 $', '$Author: appldev $');
app_standard.event('PRE-FORM');
app_window.set_window_position('XX_YOUR_WINDOW', 'FIRST_WINDOW');
Step-5.
- Go to "Program Units" >> open "APP_CUSTOM (Package Body)"
- Change "" with XX_YOUR_WINDOW
Before
if (wnd = '') then
app_window.close_first_window;
elsif (wnd = '') then
--defer relations
--close related windows
null;
elsif (wnd = '') then
--defer relations
--close related windows
null;
end if;
After
if (wnd = 'XX_YOUR_WINDOW') then
app_window.close_first_window;
elsif (wnd = '') then
--defer relations
--close related windows
null;
elsif (wnd = '') then
--defer relations
--close related windows
null;
end if;
Step-6.
- Create new Canvas. (eg. XX_YOUR_CANVAS)
- Go to property palette >> choose "Subclass Information" >> choose "Property Class" >> choose "CANVAS"
Step-7.
- Create new Block (Manual or using Wizard). (eg. XX_YOUR_BLOCK)
- Go to property palette >> choose "Subclass Information" >> choose "Property Class" >> choose "BLOCK"
- Apply "Subclass Information" to the items as "TEXT_ITEM"
Step-8.
- Open APPSTAND.fmb, get the file from application server $AU_TOP/forms/US/
- Drag QUERY_FIND Object Group from APPSTAND.fmb to Our Form(XX_QUERY_FIND.fmb) Object Group.
- When the message poped "Do you want to copy the object or Subclass it?" choose "Copy" button.
- New Window, Canvas, Datablock will generated automatically with the name of "QUERY_FIND"
Step-9.
- Apply "subclass information" to "QUERY_FIND" Window, Canvas as well as Block. And drag these object to first position.
Step-10
- In QUERY_FIND data block, it has 3 buttons (Clear, New and Find) with 3 Triggers.
- Open "WHEN-BUTTON-PRESSED" trigger of "New" Button and change
app_find.new('Your blockname here');
with
app_find.new('XX_YOUR_BLOCK');
- Open "WHEN-BUTTON-PRESSED" trigger of "Find" Button and change
:parameter.G_query_find := 'TRUE';
app_find.find('your blockname here');
:parameter.G_query_find := 'FALSE';
with
:parameter.G_query_find := 'TRUE';
app_find.find('XX_YOUR_BLOCK');
:parameter.G_query_find := 'FALSE';
Step-11
- Create control item in the Query_Find Block
- Apply "Subclass Information" to the items as "TEXT_ITEM"
- Attach all items to QUERY_FIND canvas.
Step-12
- Open file APPSTAND.fmb and open trigger on form level
- Drag the QUERY_FIND form level trigger from APPSTAND.fmb and place it in XX_YOUR_BLOCK block level trigger.
- Change QUERY_FIND trigger:
Before
APP_STANDARD.EVENT('QUERY_FIND');
Change to:
APP_FIND.QUERY_FIND('XX_YOUR_WINDOW', 'QUERY_FIND','QUERY_FIND');
Step-13
- Create PRE-QUERY trigger in the block level XX_YOUR_BLOCK
- Write below code:
begin
if :PARAMETER.G_QUERY_FIND = 'TRUE' then
COPY(:QUERY_FIND.YOUR_ITEM, 'XX_YOUR_BLOCK.YOUR_ITEM');
:PARAMETER.G_QUERY_FIND := 'FALSE';
end if;
end;
Step-14
- On form module XX_QUERY_FIND, set "First Navigation Data Block" as "QUERY_FIND".
- On the QUERY_FIND datablock set next navigation block as "XX_YOUR_BLOCK".
Step-15
- Save the file
- Move form from Local Machine to Oracle Application Directory
- Compile form
- Run form.
- Finished.