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

Popular posts from this blog

opaque schema xsd (standard file used in OIC)

SQL,PLSQL interview practice and DSA patterns

QR code Generate From Oracle PLSQL