Components of Forms:
Oracle has provided “Forms Developer Suite” that enable business developers to easily and quickly construct sophisticated database forms and business logic with a minimum of effort. It consists of the following programs, or components:
Components of Form builder
Object Navigator: It is hierarchical browsing and editing interface that enables you locate and manipulate application objects quickly and easily.
Property Palette: It is used set and modify the properties for all objects in form modules.
Layout Editor: It is graphical design facility for creating and arranging interface items and graphical objects in your application.
PL / SQL Editor: It is the integrated functionality of oracle procedure builder that exists with in form builder.
Form Module types:
Form Module: It is a collection of objectives such as block, canvas, items and event based PL/SQL code blocks called trigger.
Menu Module: It is a collection of menu items. It can be main menu or sub menu.
PL / SQL Libraries: The library module is a collection of PL/SQL function and package stored in a single library file. This library file is the attached to form / menu modules. All other objects in the form or menu can now access share the collection of PL/SQL functions and procedures.
Object Libraries: It is a collection of form objects that you can use in other modules. You can create it to store, maintain and distribute standard objects that can be reuse across the entire development organization.
Objects of forms:
Blocks:Block is logical owner of items. It provides a mechanism for grouping related items into a functional unit for storing, displaying and manipulating records.
Items:These are interface objects that present data values to the user or enable the user to interact with the form.
Canvas:A canvas is the background object upon which interface items appear.
Frames:Frames are used to arrange items with in a block.
Windows:Windows contains for all visual objects that make up a form builder application.
PL/SQL Code Block: It is used for event driven code. That code automatically executes when a specific event occurs.
In Forms Builder there are two main types of blocks
Database Blocks: A data block is associated with a specific database table (or view), a stored procedure, a FROM clause query, or transactional triggers.
Control Blocks: A control block is not associated with a database, and its items do not relate to any columns within any database table. Its items are called control items.
Form Builder provides four types of canvases, all of which can be displayed in the same window at runtime. A canvas' type defines how Form Builder will display it in the window to which it is assigned.
Content Canvas: The most common canvas type is the content canvas (the default type). A content canvas is the "base" view that occupies the entire content pane of the window in which it is displayed. You must define at least one content canvas for each window you create.
Stacked Canvas: A stacked canvas is displayed a top of on the content canvas assigned to the current window.
Tab Canvas: A tab canvas made up of one or more tab pages allows you to group and display a large amount of related information on a single dynamic Form Builder canvas object.
Toolbar Canvas: A toolbar canvas often is used to create toolbars for individual windows. You can create two types of toolbar canvases: horizontal or vertical. Horizontal toolbar canvases are displayed at the top of a window, just under its menu bar, while vertical toolbars are displayed along the far left edge of a window.
Form Module Hierarchy
Using trigger and program units, form functionality will be added.Trigger can be written at different levels in form module
Oracle has provided one template form (TEMPLATE.fmb) and stated that this form should be the starting point for all development of new forms in Oracle Application.
Oracle has already written minimum but all code which is required to implement Oracle Application Standard Functionality. The pre-written components of the template form includes platform-independent references to:
Object groups in the APPSTAND form
Predefined Program Units
Applications Color Palette
The APPSTAND form contains the master copy of the shared objects. It contains the following Object Groups
STANDARD_PC_AND_VA:contains the Visual Attributes and Property Classes required to implement much of the user interface for Forms-Based Products
STANDARD_TOOLBAR:Contains the windows, canvasses, blocks, and items of the Applications Toolbar
STANDARD_CALENDAR: contains the windows, canvasses, blocks, and items of the Applications Calendar
QUERY_FIND:contains a window, canvas, block, and items used as a starting point for coding a Find Window
Libraries in the TEMPLATE Form
The TEMPLATE form includes platform-independent attachments of several libraries. Few of these libraries are:
APPCORE:It contains the packages and procedures that are required of all forms to support the menu, Toolbar, and other required standard behaviors
APPCORE2:It is a near-duplicate of APPCORE intended for use with the CUSTOM library. Oracle recommends that you should use the corresponding routine in the APPCORE2 library in place of APPCORE. The various routines available are APP_ITEM_PROPERTY2, APP_DATE2, APP_SPECIAL2
APPDAYPK:It contains the packages that control the Calendar feature
FNDSQF:It contains packages and procedures for Message Dictionary, flexfields, profiles
CUSTOM:It allows extension of forms without modification of form code
GLOBE: It allows developers to incorporate regional features into forms. The GLOBE library calls routines in the JA (Asia/Pacific region), JE (Europe/Middle East/Africa), and JL (Latin America region) libraries
Form Creation Steps in oracle apps
1. Open Template.fmb
2. Delete BLOCKNAME from Windows, Canvas and Data Blocks
3. Create New Window and set Subclass in formation as ‘Window’
4. Create Canvas and set Subclass in formation as ‘Canvas’
5. Attach Window in Canvas and canvas in window (Property palate)
6. Create the Data Block using wizard
7. Set the First Navigation block in Module Property
8. Open PRE-FORM Trigger and provide the WINDOW NAME in place of BLOCKNAME.
app_window.set_window_position(' BLOCKNAME ', 'FIRST_WINDOW');
9. Open APP_CUSTOM Package provide the WINDOW NAME in place of your first window
if (wnd = '<your first window>') then app_window.close_first_window;
10. Compile the form.
Transfer (in binary format) the FMB file to server at $AU_TOP/forms/US
Login to UNIX environment and run below command (from $AU_TOP/forms/US) to generate FMX
f60gen module=XXForm.fmb module_type=form userid=apps/<apps_password> compile_all=special output_file=$XXLCB_TOP/forms/US/XXForm.fmx
frmcmp_batch module=XXFORM.fmb userid=apps/<apps_password> output_file=$XXLCB_TOP/forms/US/XXFORM.fmx