Custom form creation process
Documentation of Custom Forms:
Step-1
->Open the form Builder application and connect it with the server
->now delete the module and open the template.fmb which is standard
->Rename Template file with ur form name and save as form.fmb(form name)
->Now click on Data Block and delete DetailBlock
->Now click on Canvas and delete Blockname
->Now click on windows and delete Blockname
Step-2
->Now click on data Block and click (+) symbol which we can find on the left side on the top
->Now Create the new Data Block Use the Data Block Wizard and click ok
->Then click on next
->now click on table or view and click next
->give ur custom table name and click on enforce data integrity so that we can find the columns of our table and move all the items to database items and click next
->then click on next
->give the data block name which we want to display and click on next
->click on data block and call the layout wizard and click finish
->now ur datablock will be created
->welcome to layout wizard page will popup in that click on next
->then click on new canvas and type should be content and click on next
->now move the items to diplaye items which columns need to be display not all the columns and click on next
->again click on next if you want to change the prompt and width and height size we can modify here
->click on form and then next
->Give the frame title name and click on next and then click on finish
-> now Canvas is ready
Step-3
->click on canvas and press f4 or right click and move to property palatte
->Change the canvas name so what name should be display on canvas as per our understand
->change the subclass to canvas
->As We didn’t create window so it will take default window name once window will create and change the window name in the canvas as we can see in physical window is available
->now click on window and press(+) icon as we can find on the left side on the top
-> click on canvas and press f4 or right click and move to property palatte
-> Change the window name so what name should be display on window as per our understand
-> change the subclass information to window and make sure primary canvas is ur canvas
->and give the title name to the window
->Now window is crated
->now go to the canvas and change the window name and assign our window name
Now We should Give the triggers
When pre-form
->app_window.set_window_position('XXBTAPWIN', 'FIRST_WINDOW');
-> here give the exact window name which we we have given the window name
-> now click on program units in that we can find app-custom(package Body)
Click on that and rename here the window name
-> if (wnd = 'XXBTAPWIN') then
->Now click on new form instance there change the template name
-> FDRCSID('$Header: XXBTINVPAYAPI.fmb 120.0 2005/05/06 23:25 appldev ship
How to create calendar lov
These are the Basic things we need to change
Now go the column add trigger key_listval
calendar.show
Now this is a Basic Form created
We need to Register our form in the application so that open the Mozilla firefox
-> In Application click on application developer
->Click on Application and click on form
-> Give the exact Form Name on form and Application in which module we are developing if we are developing in payables the give payables and user form name can be anything
->Now register the function
->Now give the function as form name and user function name can be anything and in the same page we can find tabs in that click on formtab and assign the user form name to the form and application
->we can see form click on form
-> Now function is created
->Now click on menu and register the form name in the application
->Make the query mode and give the menu name and make it complie
->move to the bottom and give seq num and prompt and function name(user form name and user name name should be assign)
Here the fmb form is available
Form Name : XXBTINVPAYAPI.fmb |
This is the basic form completed
This form in still in our local now move to the server
->Open winscp
-> Move the file to the server
-> path is /u02/oracle/VIS/apps/apps_st/appl/au/12.0.0/forms/US
-> Now Open Putty
-> After successfully login give the below commands separately
cd $AU_TOP
cd forms/US
frmcmp_batch userid=apps/apps module=/u02/oracle/VIS/apps/apps_st/appl/au/12.0.0/forms/US/XXBTINVPAYAPI.fmb output_file=/u02/oracle/VIS/apps/apps_st/appl/ap/12.0.0/forms/US/XXBTINVPAYAPI.fmx module_type=form
è Here as iam using Payables so I have given ap so we should change as per requirement in purchase give po instead of ap
->Now open the application click on our form and our form will display
This is the Normal form which we have created if we want any additional requirement as LOV,s or mandatory columns then
->Manditory Columns
-> Click on column which we want to apply mandatory
->press f4 or right click and then Property palette
->Make Requuired as YES
LOV
Step-1
->click on Record group
-> give the query what we want to display
For example:- if we r giving deptname along with deptno
Then select distinct dname,deptno from dept and click on ok if there is any error in query it will throw an error
->Now click on Regord group Change the name
Step-2
-> Now click on lov and click on (+) icon and the lov wizard and click on ok
->Click on existing Regord group and click on which Regord group the lov should be assign and click on next
->click on modify existing record and click on next
->check the syntax and click on next
-> move the Record Group columns to the lov columns and click on next
->Now Which column we want to fetch the data click on that column in return value and click on lookup return items just match the column name and click next and give the title and click on next and then finish
Map column on which we need LOV.
Keep Yes for Validate from List on Column or Field.
___ LOV Completed
Creating DFF
->First We need to Register our table in the application
->Then Columns
Register the Table
-> create the below procedure and give the table name which was highlighted
BEGIN
AD_DD.REGISTER_TABLE('FND','xxbt_po_headers_all','T');
END;
Register the Columns
->Table name ,column name ,seq number,datatype
BEGIN
AD_DD.REGISTER_COLUMN('FND','xxbt_po_headers_all','OPERATING_UNIT',1,'VARCHAR2',40,'N','N');
AD_DD.REGISTER_COLUMN('FND','xxbt_po_headers_all','PO_NUMBER',2,'NUMBER',10,'N','N');
AD_DD.REGISTER_COLUMN('FND','xxbt_po_headers_all','PO_HEADER_ID',3,'NUMBER',15,'N','N');
AD_DD.REGISTER_COLUMN('FND','xxbt_po_headers_all','CREATED',4,'DATE',11,'N','N');
AD_DD.REGISTER_COLUMN('FND','xxbt_po_headers_all','ATTRIBUTE_CATEGORY',5,'VARCHAR2',
150,'N','N');
AD_DD.REGISTER_COLUMN('FND','xxbt_po_headers_all','ATTRIBUTE1',6,'VARCHAR2',240,'N','N');
AD_DD.REGISTER_COLUMN('FND','xxbt_po_headers_all','ATTRIBUTE2',7,'VARCHAR2',240,'N','N');
AD_DD.REGISTER_COLUMN('FND','xxbt_po_headers_all','ATTRIBUTE3',8,'VARCHAR2',240,'N','N');
--AD_DD.REGISTER_COLUMN('FND','xxbt_po_headers_all','ATTRIBUTE4',9,'VARCHAR2',240,'N','N');
--AD_DD.REGISTER_COLUMN('FND','xxbt_po_headers_all','ATTRIBUTE5',10,'VARCHAR2',240,'N','N');
END;
Now Open the Application
-> Application Developer->Flexfield->Descriptive->Register
Save and click on columns
Here we will find our columns
->Again go to Application Developer->Flexfield-> Descriptive->Segments
-> Give the query mode and search the name which we have given
And Now Click on segments
Here name means Which name u want to assign
For ex:-phone window prompt will be phone it self and to which column u want to assign it
->Now save and click on open
To give mandatory or to remove mandatory
If we want Manditory to that column then mark as required or if we don’t then don’t mark
->Now come to the fmb and click on Attribute_category column and press f4
->Change the subclass information and change the lov and validate from list
Now We Should Create triggers
When New Item Instance
FND_FLEX.EVENT('WHEN-NEW-ITEM-INSTANCE');
When New Form Instance
XXBT_DFF.ATTRIBUTE_CATEGORY_PROC('WHEN-NEW-FORM-INSTANCE');
Now DFF is Completed
Query Find Form
->If we want to Create the query find form then We need to follow these steps
Step-1
->We need to Open the APPSTAND file
->After Open the file STANDARD_OBJECTS File will be appear in hierarchy
->Click on object group then drag and drop the query find to the form ,then it will ask copy or subclass
Then click on subclass then we can find the query_find in data blocks ,canvas,objects and report group
->Now go to data block
->click on Query_find (+)icon then click on items and then click on new then Triggers then when button_pressed
Query_find-> items-> new-> Triggers-> when button_pressed
app_find.new('Your Block Name);
app_find.new('XXBT_AP_PAY1'); here block name should be given
Give the block name to which we need to perform action
For ex:- iam Using depttable so give as deptblock
-> Query_find-> items-> find-> Triggers-> when button_pressed
:parameter.G_query_find := 'TRUE';
app_find.find('XXBT_AP_PAY1');change the block name
:parameter.G_query_find := 'FALSE';
->Now go to the canvas click on query_find we can find the layout then click on display items then paste the item in now press f4 or right click property palette
->Now Change the name what we want to display ->Deptno
And change the subclass information in property palette
And save and go to layout and click on text button and place beside to the deptno which we are displaying
->Now Click on Standard Object open triggers and drag and drop the query_find to the datablock which need to be populated and use as subclass
For ex: deptblock
APP_FIND_QUERY_FIND(‘result Block window’,’find window ’,’find window block’);
APP_FIND.QUERY_FIND('XXBTAPWIN','QUERY_FIND','QUERY_FIND');
And now click on same datablock and add triggers to pre query then write the code
IF :PARAMETER.G_QUERY_FIND ='TRUE' THEN
COPY(find window name,results field );
:PARAMETER.G_QUERY_FIND := 'FALSE';
END IF;
IF :PARAMETER.G_QUERY_FIND ='TRUE' THEN
COPY(:QUERY_FIND.STATUS,'XXBT_AP_PAY1.STATUS');
:PARAMETER.G_QUERY_FIND := 'FALSE';
END IF;
Suppose we have Multiple columns then
IF :PARAMETER.G_QUERY_FIND ='TRUE' THEN
COPY(:QUERY_FIND.INVOICE_NUMBER,'XXBT_AP_PAY1.INVOICE_NUMBER');
COPY(:QUERY_FIND.STATUS,'XXBT_AP_PAY1.STATUS');
COPY(:QUERY_FIND.SUPPLIER,'XXBT_AP_PAY1.SUPPLIER');
COPY(:QUERY_FIND.CHECK_NUMBER,'XXBT_AP_PAY1.CHECK_NUMBER');
:PARAMETER.G_QUERY_FIND := 'FALSE';
END IF;
Now click on form Module ->f4 or property palette ->move to navigation ->first navigation data block
->Query_find (datablock)
Now click on data Block ->query_find Data Block ->f4->Navigation->Next Navigation Data Block (which we want to display)
This is the end of the query find
If u find any mistake pls intimate me or anything I have missed in this so pls let me know
Comments
Post a Comment