f Get Oracle Apps Traning Here: Oracle Forms Basic Concepts

This work is licensed under a Creative Commons -NonCommercial 2.5 License.



Thursday, November 02, 2006

Oracle Forms Basic Concepts

ARTICLE AUTHOR: Rakesh Sreenivasa

Oracle Forms Basic Concepts

The focus of the document is for consultants who are new to Oracle Forms and needs a kick-start on the concepts for better understanding of the subject.

Let’s start understanding the basic but important concepts in Forms.

Form :It is a developmental tool that is used for designing data entry and query screens. It is a front-end tool that runs in a Graphical User Interface (GUI).

GUI Concepts:

These concepts holds good for any user-interface.

To develop an effective GUI there are 4 basic stages:

  1. Define User Requirements
  2. Plan the User Interface
  3. Build the User Interface Elements (Create/Modify elements/functionality)
  4. User Feedback (Holds Key on the functionality and basis of the requirement)

Let’s move on to Forms Developer

There are 3 components involved in the application development

  1. Form Builder
  2. Form Compiler
  3. Form Runtime

Form builder consists of following tools to perform a specific task

  1. Object Navigator
  2. Layout Editor
  3. Property Palette
  4. PL/SQL Editor
  5. Menu Editor
  6. Object Library

Object Navigator: It’s a hierarchal representation of all objects.

Layout Editor: It provides a virtual representation of the application user interface.

Property Palette: Each object in the form module has a property associated to it. Developer can view/set properties for one/multiple object.

PL/SQL Editor: Programmatically to enhance the functionality and appearance of an application.

Menu Editor: Create menu as per applications requirement and can add various functionality to various menu options.

Object Library: Creation of objects on some default specification. Storing some standard objects that can be re-used in other forms/menu.

Blocks: Logically related interface items are grouped into functional units called Blocks.

Types of Block:

Data Block: It is associated with or bound, to a database table or view or a set of stored procedures.

Control Block: It is not associated with any database table but items that will control the behavior of the application.

Let’s move on to the next scheme of things…

Canvas: It is a surface inside a window on which we place the interface that end user interacts.

Types of Canvas:

  1. Stacked Canvas
  2. Content Canvas
  3. Horizontal Toolbar
  4. Vertical Toolbar
  5. Tab Canvas

Let’s discuss briefly about the triggers in this section, for more information you can look through the Forms Builder Help Topics.

Note: The hierarchy of Objects in a form is

Form

Block

Record

Item

Triggers: These are program units which enhance the functionality of a form/application.

The following triggers can be used to enhance the functionality of the form:

Block Processing Triggers: It fires in response to events related to record management in block.

e.g., When_Create_Record,When_Clear_Block,…

Interface Event Triggers: It fires in response to events that occur in form interface.

e.g., When_Button_Pressed,When_Checkbox_Changed,…

Master-Detail Triggers: It fires automatically when defined master-detail relationship between blocks. (Master-Detail relationship discussed further in the document)

e.g.,On_Checkdelete_Master,On_Clear_Details,…

Message Handling Triggers: It fires to issue appropriate error and information messages in response to runtime events.

e.g.,On_Error,On_Message,..

Navigational Triggers: It fires in response to Navigational Items.

e.g., Pre_Form, Post_Form, When_New_Form_Instance, When_New_Block_Instance,..

Query Time Triggers: It fires before/after the operator/application executes a query.

e.g.,Pre_Query,Post_Query,…

Transactional Triggers: It fires in response to wide variety of events that occur as a form interacts with data source.

e.g.,On_Delete,On_Update,..

Validation Triggers: It fires when it validates data in an item/record.

e.g.,When_Validate_Item,When_Validate_Record,..

Mouse Event Triggers: It fires for a mouse event.

e.g.,When_Mouse_Enter,When_Mouse_Click,..

Key Triggers: It has one to one relationship with specific Keys.

e.g.,Key F1,Key Enter,..

There are lot number triggers that can be used, please use as per the requirement with reference to Form Builder Help Topics.

Master- Detail Relationship : It is an association between two datablocks.One block is called Master Block and other Detail block. The relationship signifies that there is a primary key to foreign key relationship between the tables on the blocks associated.

Properties associated with blocks in a master-detail relationship.

Isolated : If you delete master records, associated detail records are not deleted from the database.

Non-Isolated: You cannot delete master records if the associated detail records exist in database.

Cascading: If you delete master records then automatically detail records will be automatically deleted from the database.

Windows : It is a container for all visual objects that make up a form, including canvases.

There are 2 types of Windows:

Document Window : It typically display the main canvases and work areas of the application where most data entry, and data retrieval is performed. It always remains within the application window frame.

Dialog Window: are free-floating, windows typically used for modal dialogs that require immediate user interaction.

Modality of the window depends on the functionality required i.e., Modal or Modeless.

Alert : It is a modal window that displays message to inform user about some application condition. E.g., STOP,CAUTION,NOTE,…

Invoking an alert : show_alert(alert_name)

Return number;

Record Group: It is an internal form builder structure that has column/row structure similar to database table. Static and Query based record groups can be used on the functionality of the form.

List of Values (LOV) : It is a pop-up window that provides end user selection list. LOV’s can be invoked programmatically or statically based on the record group. It can be positional based or automatic display.

The most important features of LOV are it provides auto-reduction and search features due to which user can locate specific values easily.

Let’s get to items on canvas which holds the key points.

Boilerplate Text Tool is used to create or edit a graphics text in the form. Graphics text is a static text in the form. E.g. Labels for items

Text Item Tool is used to create text item. It is an interface control that displays and allows editing of a text. It can be single or multi-line format.

Display Item tool are similar to text items but display items only store and displayed fetched or assigned values.

Buttons is a tool to execute commands or initiate buttons. E.g., OK ,CANCEL,..

Types : Text and Iconic Buttons

List Item is a list of text elements. A list item displays a fixed number of elements.

Types: Tlist,Pop List, Combo Box


Checkbox: It is a control that has 2 states i.e., checked or unchecked. It is used to indicate whether a certain condition is true or false.

Radio Button/Box : It is a logical set of options.

Editors: are used to edit item values in form. There are three editors that can be used at run time: Default editor, System Editor, User Named Editor

Property Class: Form builder provides a facility to create a named list of common properties and their values. This object is known as property class. Once you create a property class, you can base other objects on it. It is similar to the OOPS concept in programming languages.

Visual attribute : is a list of font, color and pattern properties and their values. This visual attribute can be attached to various objects to define object’s visual attributes.

Conclusion:

I started creating this document to include the necessary concepts required for a consultant who wants to harness his skills on Oracle Forms. I have tried to include most of the necessary topics required before jumping to develop a form. For further details on Forms, you can always refer the Form Builder Help Topics.

ARTICLE AUTHOR: Rakesh Sreenivasa

Comments on "Oracle Forms Basic Concepts"

 

Anonymous Anonymous said ... (1:17 AM) : 

It was good intro to forms .....

 

Blogger Anil Passi said ... (2:03 AM) : 

Indeed, its a well written article. I hope to hear more from Rakesh in future.

 

Anonymous Anonymous said ... (10:43 AM) : 

hi ,

all are very good post

can u provide any link which is very good for preparing for oracle forms & reports 9i

 

Blogger Anil Passi said ... (10:49 AM) : 

Please find the
Link for Oracle Reports 9i FAQ

Technet is the best resource for tech stack info

 

Anonymous Anonymous said ... (12:52 AM) : 

Hi Anil,

Can we get the shortname by using only form name?

I know only form name i want to retrive shortname is it possible if so how?

is there any sql query to query shortname based on form name?

Thanks

 

Blogger Anil Passi said ... (2:13 AM) : 

Indeed you can, please find the SQL..

SELECT
rpad(FORM_NAME || '==>' || USER_FORM_NAME , 50) "FORM"
,DESCRIPTION
FROM
FND_FORM_VL
WHERE
FORM_ID >= 0
and
UPPER(FORM_NAME)
||
FORM_ID
||
UPPER(USER_FORM_NAME)
||
UPPER(description) LIKE '%' || upper('&form_name') || '%'
order by APPLICATION_ID, FORM_NAME
/

 

Anonymous Anonymous said ... (9:50 PM) : 

Hi,

Thanks for helping me.

from the query which u have mentioned i am not able to get shortname.

I want to retrive shortname.

For example :
FORM:GLXBDORG - Define Budget Organization

for the form GLXBDORG i want to retrive shortname assocaited with it.

Hope u got my question plz do needful.

Thanks

 

Blogger Anil Passi said ... (11:59 PM) : 

Hi

For form GLXBDORG - Define Budget Organization, GLXBDORG is the short name itself.

If you describe table that holds Form Registration details....
ITUPDV1>>desc fnd_form_vl
Name
-----------------------------------
ROW_ID
APPLICATION_ID
FORM_ID
FORM_NAME
LAST_UPDATE_DATE
LAST_UPDATED_BY
CREATION_DATE
CREATED_BY
LAST_UPDATE_LOGIN
AUDIT_ENABLED_FLAG
USER_FORM_NAME
DESCRIPTION

Here, the FORM_NAME which maps to the FMX file is the shortname itself. The username is what you see in the Form Function Screen.

SELECT form_id, form_name, user_form_name, description
FROM fnd_form_vl
WHERE form_id >= 0
AND upper(form_name) || form_id || upper(user_form_name) ||
upper(description) LIKE '%' || upper('&form_name') || '%'
ORDER BY application_id, form_name ;


hence, the form_name is short name itself.
In case you are after Form Function details, run the below query
1 select function_name, user_function_name from
2* fnd_form_functions_vl where form_id = 54119
--id from fnd_form query
ITUPDV1>>/

FUNCTION_NAME
------------------------------
USER_FUNCTION_NAME
-------------------------------------------------------------
GLXBDORG
Define Budget Organization

 

Blogger Seshadri said ... (4:08 AM) : 

hi
i have one doubt that,how to create database triggers in sql.and in which situation we use that triggers

 

Blogger Anil Passi said ... (4:42 AM) : 

Hi seshadri

This article discussion Forms triggers that are different from the database triggers.

As per Oracle Applications standards, one must never create database triggers.


For database triggers concepts you can visit
http://download-uk.oracle.com/docs/cd/B19306_01/server.102/b14200/statements_7004.htm#SQLRF01405

http://download-uk.oracle.com/docs/cd/B19306_01/appdev.102/b14251/adfns_triggers.htm#ADFNS012

Thanks,
Anil Passi

Cheers
Anil Passi

 

Anonymous Anonymous said ... (2:33 AM) : 

hi,

im new to oracle forms and could any one help me in solvin the problem.

how to make the check box state checked at run time???

scenario:

i hav a select all checkbox, selecting which should make all the checkbox in datablockl checked????

 

Blogger pavonnvarma said ... (10:11 PM) : 

how to work with sedded reports in apps give basics

 

Blogger Sharmila Kothagundla said ... (12:06 PM) : 

Hi Anil,

I am trying to create a tab canvas with horizontal scroll bar in a tab page, for this I am thinking I have to create a stacked canvas over the tab page. however the forms builder is not allowing such functionality. How do you think I can achieve this? any inputs would be greatly appreciated.

Thanks,
Sharmila

 

Blogger Unknown said ... (5:19 AM) : 

Hi,
I need your help...
please clear my doubts...
A)Oracle Apps Technical consultant's role means working on Forms,Reports and PL/SQL if not can you please help me what is it all about?
B)I am working as Automation Testing using QTP,Would i be able to swtich over it?

Thanks in anticipation...

 

Anonymous Anonymous said ... (12:28 AM) : 

Hi anil

i have created a record group for Drop Down, i am able to get the label field populate, but i am not getting the corresponding values,.....


Can you plz help me in this

 

Anonymous sakshi said ... (12:31 AM) : 

hi anil sir,
sakshi here..
simply superb,
one request from my side also
i want some good pdfs or links
for form 6i and reports 6i
my id is bela.paliwal@gmail.com

 

post a comment