Chapter Eight
Introduction To Form
Builder
1
Forms
❖ Why Do We Use Form Builder?
❖ Why Don’t We Use SQL Only?!
❖ Application with a graphical user
interface that looks like a paper form
❖ Used to insert, update, delete and view
database data
2
Primary Form Uses
❖ Viewing/retrieving records
❖ Inserting/updating/deleting records
❖ Counting the number of records a query
will retrieve
3
Data Block Form
❖ Is a form associated with a specific Oracle
database table
❖ System automatically creates:
➢ Text fields associated with table fields
➢ Programs for inserting, modifying, deleting,
and viewing data records
4
Data Block Forms
❖ ORACLE 11g forms are displayed in a web
browser as a web page.
❖ They appear in the Forms Services Window
within the browser window.
❖ The form specification is translated into Java
Applet (those are displayed in web browsers)
using a Web server process called OC4J.
❖ They are Dynamic Web Pages.
5
Steps of running the form
❖ Design the form and write its code (.fmb
file)
❖ Compile the form (.fmx file)
❖ When you run the form:
❖ OC4J Instance process converts the
compiled file into java applet
❖ Java applet form starts on the web
browser
6
Using a Data Block Form
❖ A block is a group of related form items (text
fields, option buttons,…).
❖ A data block is a specific DB table, and
contains objects (text fields, option buttons)
that display values from the table’s data fields.
❖ A single-block form: is the form that displays
data from only one table.
❖ A multiple-block form: is the form that
displays data from multiple DB tables.
7
Using a Data Block Form
❖To start Form Builder:
➢ Start, All programs, Oracle Developer Suit-
OraHome, Forms Developer, Forms Builder
➢ Open an existing for (.fmb) or design yours and
save it (the path name or the form name should
not contain spaces).
➢ To run the form, click Program on the menu bar,
Run Form.
❖If you are asked to install the Jinitiator, click yes and
accept all default values.
❖Jinitiator application initializes the Java applet in the
web browser. 8
Form Modes
❖ When the form is running in the Forms Services window in the
web browser it can be one of two modes:
❖ Normal Mode
➢ You can view records and sequentially step through records
and change data.
❖ Enter Query Mode
➢ You can enter search parameters in form fields and then
retrieve the associated records
❖ To place the form in Enter Query mode, click the Enter Query
button on the toolbar.
❖ Execute the query or cancel it to return to Normal mode.
9
Inserting New Records
❖ In Normal mode, click the Insert Record
button to insert a new blank record
❖ Type the data values in the form fields
❖ Click the Save button to save the values in
the database
10
Retrieving Records
❖ Click the Enter Query button to place the
form in Enter Query mode
❖ Type a search condition
❖ Click the Execute Query button to
retrieve selected records
➢ If you click , do not enter a search condition,
and then click , all table records will be
retrieved
11
Form Search Types
❖ Exact search: only retrieves records that
exactly match the entered search
condition
❖ Restricted search: retrieves records that
fall within a range of values
12
Restricted Search Operators
❖ _: wildcard replacing a single character
❖ %: wildcard replacing multiple characters
❖ >, <: greater than, less than
❖ >=, <=: greater than or equal to, less than
or equal to
❖ <> or !=: not equal to
13
Scrolling Through Retrieved Records
❖ To view the next record, click the Next Record
button
❖ To view the previous record, click the Previous
Record button
14
Updating and Deleting Records
❖ Retrieve the record to be updated or
deleted
❖ To update, change the data value and
click the Save button
❖ To delete, click the Remove Record
button
15
Data Block Form File Types
❖ .fmb
❖ Form design file, used by form
programmer in Form Builder
❖ .fmx
❖ Form executable file, run by form users
16
Form Components
❖ Form module: form application
❖ Form window
❖ Title bar on top
❖ Horizontal and vertical scrollbars
❖ Can be resized, maximized, minimized
17
Form Components
❖ Canvas
➢ Surface that displays form items
❖ Block
➢ Object that contains form items
❖ Form items
➢ Command buttons, radio (option)
buttons, text items
➢ Items in the same block can appear on
different canvases
18
Form Components
Window
Name Canvas
Cash Block of items
Check
Credit Card
19
Object Navigator
Figure: Object Navigator window 20
Creating a Data Block Form
❖ Steps:
1. Create the data block using the Data Block
Wizard
2. Create the form layout using the Layout
Wizard
21
Data Block Wizard
❖ Welcome page
❖ Type page
➢Select table or view on which to base the
block source
❖ Table page
➢Select table associated with form
➢Enforce Integrity Constraint Check Box
❖ Finish page
➢Option to use the Layout Wizard to
automate creating the layout
22
Layout Wizard
❖ Canvas page
➢ Select the canvas where the block is displayed
❖ Data Block page
➢ Select the fields that are displayed on the
layout
❖ Items page
➢ Specify the column labels, heights and widths
❖ Style page
➢ Specify to create a form- or tabular-style layout
23
Layout Styles
❖ Form style
➢ One record appears on the form at a
time
❖ Tabular style
➢ Multiple records display on the form
in a table
24
Form Builder Wizards
Are Re-entrant
▪You can select a block or layout, then re-enter it
and modify its properties using the Wizard
▪A Wizard is in re-entrant mode when its pages
appear as tabs
25
Form Builder
Object Navigator Window
❖ Shows form objects
❖ Allows developer to access form objects
❖ Object Navigator has 2 views
➢ Ownership view: shows form objects as a flat list
(the form is presented as a top-level object, and
then lists all form object nodes on the next level) .
(Figure: Object Navigator window, slide 20)
➢ Visual view: hierarchical relationships between
objects ( form objects contain other objects: a
form contains windows, a window contains
canvases and a canvas contains data blocks).(As
Shown in fig. next slide)
26
Figure : Object Navigator window in Visual View 27
Guidelines For Configuring Form
Windows
1. Change the window title
2. Allow user to minimize the window
3. Do not allow the user to maximize the
window
4. Do not allow the user to resize the window
5. Include horizontal and vertical scrollbars if
items appear beyond window boundaries
6. Make the form window fill the Forms
Runtime window
28
Configuring Form Windows
Window Minimize/ Window
Title Maximize buttons size
29
Example: create a Data Block using
WIZARD
1. Click on the Data Block node under the MODULE form
node.
2. Click the + sign or choose create from Edit on the menu
bar.
3. The following window appears:
4. Choose the first option, now
5. Then the Ok →
6. A Welcome page might appear,
if so click next
7. The wizard window appears
as shown next slide:
30
Data block Wizard Type window 31
Example: create a Data Block using
WIZARD
8. Make sure the table or view is selected, now.
Then NEXT
9. The tables window appears so as to choose the
table from your schema, which the data block is
based on.
10. You might need to connect to the DB, if you
are not doing yet.
Choose the connect button
or connect from file on the menu bar.
32
Example: create a Data Block using
WIZARD
11. Select the table, pay
attention to the user.
12. After that choose the field
you want to show.
13. Type the data block name.
14. Then choose “create the
data block, and
then call the layout wizard,
then FINISH.
33
Example: create a Data Block using
WIZARD
15. The form layout specifies how a given form looks to the
user. So a welcome window might appear, click next.
16. Then a Canvas (the area where the form objects are
located) window appear, choose the canvas and its type.
34
Example: create a Data Block using
WIZARD
17. The Data block page appear so you can choose
the fields that will be displayed in the form.
18. Then the items page appears, where the
specifications and labels (prompts) can be
determined.
19. You can change the prompts (labels that appears
next to each field).
20. Then choose whether the layout style is FORM or
Tabular.
35
Example: create a Data Block using
WIZARD
21. If form is chosen, then determine the title that
appears on the frame of the data block, the
number of rows that appear in the form style is
always one row at a time. If the tabular is chosen,
then number can be more. The distance between
record is determined in a tabular case. Choose
whether to display the scroll bar.
22. Finish.
23. The window should appear as in next slide:
36
37
Example: create a Data Block using
WIZARD
24. You can import a static image to make your form looks
better:
1. Click on the layout editor window shown in the
previous slide.
2. From EDIT choose import → image.
3. Select the image you like.
4. Adjust its place on the window.
25. To run the form so as to see the data of the table:
1. Run the form using the button
or from Program on the menu bar choose run form.
38
Example: create a Data Block using
WIZARD
Important:
If the “FRM-10142” error appears, then run the OC4J
instant of the form
If the HTML code appears instead of the form on
your browser then do the following”
from IE chose tools → Internet Options →
Advanced → Look for Security value then Check
the “allow active controls to run in files on my
computer”.
39
Creating a Form Based on a
Database View
❖ View can be derived from one or more
database tables
❖ Form based on a view only allows you to
display data from table(s)
❖ Form could be used to insert, update, or
delete data if the view is a simple view only.
❖ How to do that ? Select Views from Figure, see
slide 33 when you create the form using the
wizard.
40
Modifying Form Properties
❖ Every form object has a Property Palette that
allows you to configure form and its objects
properties
❖ How to open the property palette? From the
Object navigator chose windows node, select
your window and right click the mouse,
choose property palette. OR:
❖ On the layout editor, right click and then select
property palette.
41
Modifying Form Properties
Context bar
Property
Nodes
42
Intersection Property Palette
❖ Used to change property of several items to the same value
❖ Select the objects together and open the property palette.
➢ Intersection/Union button on the tool bar appears as
➢ When the objects have different values, it appears as *****, and
the property node appears with a ? Before it.
43
Frame Properties
❖ The frame is that encloses a data block’s items.
❖ Its update Layout can be:
❖ Automatically
➢ Frame items are automatically repositioned based on
their order in the Data Blocks list when you move or
resize a frame, or modify the form layout using the
Layout Wizard in reentrant mode
❖ Manually
➢ Items are automatically when layout is modified in
Layout Wizard in reentrant mode
➢ Items are not repositioned if you move or resize the
frame
❖ Locked
➢ Items are never automatically repositioned
44
Frame Properties
45
Multiple-Table Forms
❖ Data block forms can display data from multiple tables that
have a master-detail relationship in which
❖ Master record can have multiple related (detail) records
through foreign key relationship.
❖ Examples:
➢ One FACULTY record can have multiple related
STUDENT records. The FACUTLY record is the master
record, because a faculty member can have many
student records, but a student can have only one
related faculty record.
➢ One CUSTOMER might have multiple CUST_ORDER
records
46
Multiple-Table Forms
1. When creating a form that contains a master-
detail relationship, you always use the Data
Block Wizard to create the master block, which
is the block that displays the master records first.
2. Then start the wizard a second time, and create
the detail block, which displays the detail
records.
❖ When creating the detail block, the master-detail
relationship should be specified in the wizard on
a page called Master_Detail page.
❖ That page appears only when you create a data
block that already contains one or more data
blocks.
47
Master-Detail Forms
Master block
Detail block
48
Creating a Master-Detail Form
❖ Create the
master block
first
❖ Specify the
relationship
on the Data
Block Wizard
Master-
Detail page
of the detail
block
49
Complex Master-Detail Relationships
❖ A master block can have multiple detail blocks
➢ An item can be in multiple customer orders, and have
multiple shipment records
➢ A student has an advisor and also enrolled in courses.
❖ A detail block can be a master block in a second master-detail
relationship
➢ A customer can have multiple CUST_ORDER records
➢ One CUST_ORDER record can have multiple ORDER_LINE
records
➢ A faculty member can have many students and a student
can be enrolled in many classes.
50
Complex Master-Detail
Relationship Example
51
END
52