oracle forms - master detail

95
Creating a Master-Detail Form Purpose In this lesson you learn how to create a basic master-detail Form with Oracle Forms Builder 10g. Topics This lesson discusses the following: Time to complete This lesson takes approximately 75 minutes to complete. Viewing Screenshots Move your mouse over this icon to show all screenshots. You can also move your mouse over each individual icon to see only the screenshot associated with it. Overview The lesson guides you through many of the tasks that you must perform when using Oracle Forms Builder to create a master- detail form. You use the Data Block Wizard to quickly generate the master and detail blocks, then you add a control block (one with no base table items) to the form. You add some non base table items to the data blocks, and use PL/SQL triggers to add functionality to the form. Back to Topic List Scenario You are designing a human resource application. One of the main forms in this application is intended to enable HR clerks to maintain department and employee information. You have decided to implement this as a master-detail form that displays one department with all employees in the department. Prerequisites Back to Topic List In order for this lesson to work successfully, you need to have performed the following: Overview Prerequisites Step 1 - Setting Up the Development Environment Step 2 - Building a Data Block Step 3 - Adding Non Base Table Items to a Data Block Step 4 - Building a Detail Block Step 5 - Creating a New Canvas Step 6 - Creating a New Window Step 7 - Building a Control Block Step 8 - Controlling Navigation Step 9 - Modifying the Layout Step 10 - Adding Functionality with Code Summary Page 1 of 95 Creating a Master-Detail Form 17-07-2012 http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/FormsMasterDetail/F...

Upload: arun-vijay

Post on 16-Apr-2015

127 views

Category:

Documents


3 download

DESCRIPTION

Create a Master Detail form using Oracle Forms using this OBE.

TRANSCRIPT

Page 1: Oracle Forms - Master Detail

Creating a Master-Detail Form

Purpose

In this lesson you learn how to create a basic master-detail Form with Oracle Forms Builder 10g.

Topics

This lesson discusses the following:

Time to complete

This lesson takes approximately 75 minutes to complete.

Viewing Screenshots

Move your mouse over this icon to show all screenshots. You can also move your mouse over each individual icon to see only the screenshot associated with it.

Overview

The lesson guides you through many of the tasks that you must perform when using Oracle Forms Builder to create a master-detail form. You use the Data Block Wizard to quickly generate the master and detail blocks, then you add a control block (one with no base table items) to the form. You add some non base table items to the data blocks, and use PL/SQL triggers to add functionality to the form.

Back to Topic List

Scenario

You are designing a human resource application. One of the main forms in this application is intended to enable HR clerks to maintain department and employee information. You have decided to implement this as a master-detail form that displays one department with all employees in the department.

Prerequisites

Back to Topic List

In order for this lesson to work successfully, you need to have performed the following:

OverviewPrerequisitesStep 1 - Setting Up the Development Environment Step 2 - Building a Data BlockStep 3 - Adding Non Base Table Items to a Data BlockStep 4 - Building a Detail Block Step 5 - Creating a New CanvasStep 6 - Creating a New WindowStep 7 - Building a Control BlockStep 8 - Controlling NavigationStep 9 - Modifying the LayoutStep 10- Adding Functionality with CodeSummary

Page 1 of 95Creating a Master-Detail Form

17-07-2012http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/FormsMasterDetail/F...

Page 2: Oracle Forms - Master Detail

Step 1 - Setting Up the Development Environment

Back to Topic List

Oracle Developer Suite 10g includes a standalone version of Oracle 10g Containers for J2EE (OC4J), which you can use as a Web listener and a servlet container to test Forms applications. To get ready to build and test a form, perform the following steps:

1.������ Install Oracle Developer Suite 10g.

2.������ Install the sample schemas to use in this lesson. See Installing the Sample Schemas and Establishing a Database Connection.

You do not need to create a database connection in JDeveloper—just have the HR schema available so that you can connect to it in Forms. Ensure that the tnsnames.ora file in the Network\Admin directory of the Developer Suite installation contains an entry to connect to the database where the HR schema is available.

1.������ From the Windows Start menu, select Programs | Oracle Developer Suite iDS10g | Forms Developer | Start OC4J Instance.

2.������ You can minimize the command prompt window when the window displays the message "Oracle Application Server Containers for J2EE 10g (9.0.4.0.0) initialized".

Page 2 of 95Creating a Master-Detail Form

17-07-2012http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/FormsMasterDetail/F...

Page 3: Oracle Forms - Master Detail

Note: Do not close the OC4J Instance window. When you want to stop OC4J, choose Programs | Oracle Developer Suite iDS10g | Forms Developer | Stop OC4J Instance from the Windows Start menu.

3.������ From the Windows Start menu, select Programs | Oracle Developer Suite iDS10g | Forms Developer | Forms Builder.

4.������ When Forms Builder starts, an empty form is automatically created named Module1. Select the Module1 name, then click it again to change the name of the form. Type in the name HR and press Enter.

Page 3 of 95Creating a Master-Detail Form

17-07-2012http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/FormsMasterDetail/F...

Page 4: Oracle Forms - Master Detail

5.������ Click Save . By default, Forms saves files in the \bin directory of your Developer Suite installation. You may want to save it in a different directory; if desired, you can create a new directory called MyForms in which to save the application.

Page 4 of 95Creating a Master-Detail Form

17-07-2012http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/FormsMasterDetail/F...

Page 5: Oracle Forms - Master Detail

6.������ Connect to the database as the HR user by clicking Connect and then entering the userid, password, and connect string for the database that contains the HR or HR8 schema (see Prerequisites).

Page 5 of 95Creating a Master-Detail Form

17-07-2012http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/FormsMasterDetail/F...

Page 6: Oracle Forms - Master Detail

Step 2 - Building a Data Block

Back to Topic List

Transactional applications need to be able to insert, update, and delete records from the database. The data block is the mechanism that makes this possible in a Forms application. A data block is a logical grouping of items that usually are associated with a single database table, view, or set of stored procedures, although the data block may contain non base table items also.

Forms Builder includes a Data Block Wizard to make it possible to easily create a data block and a Layout Wizard to lay out the items on the form's canvas. To use the Data Block Wizard and the Layout Wizard to create a data block and define its layout, perform the following steps:

1.������ Select the Data Blocks node in the Object Navigator, then click Create .

Page 6 of 95Creating a Master-Detail Form

17-07-2012http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/FormsMasterDetail/F...

Page 7: Oracle Forms - Master Detail

2.������ In the New Data Block dialog, ensure that Use the Data Block Wizard is selected, then click OK.

3.������ If the Welcome to the Data Block Wizard page displays, click Next >.

You can base a data block on a database table or view, or on a set of stored procedures in which you can define complicated query, insert, update, and delete logic. For this application you base the block on a table, so ensure that Table or View is selected, then click Next >.

Page 7 of 95Creating a Master-Detail Form

17-07-2012http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/FormsMasterDetail/F...

Page 8: Oracle Forms - Master Detail

4.������In the Table or view field, type departments for the table name, then click Refresh. Click the right double arrow button to move all available columns to the Database Items to be included in the block, then click Next >.

Page 8 of 95Creating a Master-Detail Form

17-07-2012http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/FormsMasterDetail/F...

Page 9: Oracle Forms - Master Detail

5.������ Accept the default name for the block, which is the same as the table name, and click Next >.

Page 9 of 95Creating a Master-Detail Form

17-07-2012http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/FormsMasterDetail/F...

Page 10: Oracle Forms - Master Detail

6.������ On the final page of the Data Block Wizard, click Finish to create the data block and invoke the Layout Wizard.

Page 10 of 95Creating a Master-Detail Form

17-07-2012http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/FormsMasterDetail/F...

Page 11: Oracle Forms - Master Detail

7.������ If the Welcome to the Layout Wizard page displays, click Next >.

Accept the defaults and click Next > to lay out the items on a new content canvas.

Page 11 of 95Creating a Master-Detail Form

17-07-2012http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/FormsMasterDetail/F...

Page 12: Oracle Forms - Master Detail

Note: A content canvas is one that fills the entire window. You can display only one content canvas at a time within a window. Other canvas types are toolbar, stacked, and tab canvases, which typically reside in a portion of a window while the content canvas remains at least partially visible.

8.������ You decide to display only the department id and department name, because the location id and manager id are just numbers that are not meaningful to the user.

Control-click DEPARTMENT_ID and DEPARTMENT_NAME in the Available Items list, then click the right single arrow button to move them to the Displayed Items list.

Page 12 of 95Creating a Master-Detail Form

17-07-2012http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/FormsMasterDetail/F...

Page 13: Oracle Forms - Master Detail

Click Next >.

9.������ Click Next > to accept the default item prompt, width, and height for both items.

Page 13 of 95Creating a Master-Detail Form

17-07-2012http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/FormsMasterDetail/F...

Page 14: Oracle Forms - Master Detail

10.������ Click Next > to accept the Form layout.

Page 14 of 95Creating a Master-Detail Form

17-07-2012http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/FormsMasterDetail/F...

Page 15: Oracle Forms - Master Detail

11.������For the Frame Title enter Department, then click Next >.

Page 15 of 95Creating a Master-Detail Form

17-07-2012http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/FormsMasterDetail/F...

Page 16: Oracle Forms - Master Detail

12 .������ On the final page of the Layout Wizard, click Finish to create the canvas and open it in the Layout Editor.

Page 16 of 95Creating a Master-Detail Form

17-07-2012http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/FormsMasterDetail/F...

Page 17: Oracle Forms - Master Detail

13.������ In the Layout Editor, you can perform any cosmetic changes that you want to the layout.

First, to ensure that changes to the layout frame are preserved, double-click the frame (the line that surrounds the items) to invoke its Property Palette.

Page 17 of 95Creating a Master-Detail Form

17-07-2012http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/FormsMasterDetail/F...

Page 18: Oracle Forms - Master Detail

Note: You can leave the Property Palette open; it displays the properties for whatever object is currently selected. If you should close the Property Palette, you can reopen it by selecting Tools | Property Palette from the Forms Builder menu. Alternatively, double-clicking most Forms objects opens the Property Palette for that object.

14.������ In the Property Palette for the Frame, change the property Update Layout from Automatically to Manually.

Page 18 of 95Creating a Master-Detail Form

17-07-2012http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/FormsMasterDetail/F...

Page 19: Oracle Forms - Master Detail

15.������ Enlarge the frame by clicking the handle in its lower right corner and dragging it downward and to the right.

16.������ Click the Rounded Rectangle tool on the toolbar at the left of the Layout Editor. With the mouse, click and drag a rectangle around the department id and the department name.

Page 19 of 95Creating a Master-Detail Form

17-07-2012http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/FormsMasterDetail/F...

Page 20: Oracle Forms - Master Detail

Step 3 - Adding Non Base Table Items to a Data Block

Back to Topic List

The Departments block is based on the Departments database table, and so far all the items in the block represent columns in that table. However, there is often a need to include items in the block that are not in the base table for the block. One

17.������ With the rectangle selected in the Layout Editor, click Fill Color on the Layout Editor toolbar and pick a color for the rectangle. (You may need to click the arrow at the bottom of the toolbar to scroll down to the Fill Color button if the Layout Editor window is too small to display all the tools.)

18.������ Click Save to save your form.

Page 20 of 95Creating a Master-Detail Form

17-07-2012http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/FormsMasterDetail/F...

Page 21: Oracle Forms - Master Detail

common use of non base table items is to display information from related tables.

The Departments block contains two items that do not appear on the canvas: Manager_Id and Location_Id. You can see these items in the Object Navigator. Instead of displaying these numbers which are not meaningful to the user, you want to display the manager's name and the location city, state/province, and country.

To add non base table items to display related information, perform the following steps:

1.������ In the Layout Editor, click the Display Item tool . Click a point on the canvas just below the department name to create a Display Item. Then click the Display Item tool again, and click a point on the canvas just below the display item that you just created.

Note: A Display Item is similar to a Text Item (used for Department_Id and Department_Name), except that it does not accept user input. If you want users to be able to change these values, you should use a Text Item.

2.������ Control-click each of the Display Items to select them both. Alternatively, you can drag the mouse around both items to select them, being careful to include only those two items.

Page 21 of 95Creating a Master-Detail Form

17-07-2012http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/FormsMasterDetail/F...

Page 22: Oracle Forms - Master Detail

3.������ The Property Palette should now display the properties for both display items. If both display items have the same value for a property, the value is displayed. If the two display items have different values for a property, asterisks are displayed for that property.

Selecting both display items enables you to change properties to identical values for both items .

Change the following properties in the Property Palette for both display items:

Hint: If you have trouble locating a particular property, type its name in the Find box at the top right of the Property Palette. As soon as you have typed enough letters to uniquely identify the property, Forms Builder highlights that property in the Property Palette.

Property Value

Maximum Length 65

Database Item No

Height 14

Prompt Attachment Offset 5

Page 22 of 95Creating a Master-Detail Form

17-07-2012http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/FormsMasterDetail/F...

Page 23: Oracle Forms - Master Detail

4.������ Change the following properties for only the first display item by selecting it singly (click an area outside the two display items to deselect them, then click the first display item):

Change the following properties for the second display item only:

Property ValueName LOCATION

Prompt Location

Property Value

Name MANAGER

Prompt Manager

Page 23 of 95Creating a Master-Detail Form

17-07-2012http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/FormsMasterDetail/F...

Page 24: Oracle Forms - Master Detail

5.������ Move the second Display Item up slightly so it is just under the first. An easy way to move an item a short distance is to select it and then use the arrow keys to nudge the item to its desired position.

Page 24 of 95Creating a Master-Detail Form

17-07-2012http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/FormsMasterDetail/F...

Page 25: Oracle Forms - Master Detail

6.������ To ensure that all items are properly aligned, select all items (do not include the prompts in this selection) and click Align Left on the Layout Editor toolbar.

7. ������ In the Layout Editor, click into the item prompts Department Name and Department Id. Delete the word "Department" from both prompts. Alternatively, you can change the item prompts in the Property Palette for each item.

8.������ Click Save to save the form, then click Run Form to test it (be sure that you have started OC4J -- see

Page 25 of 95Creating a Master-Detail Form

17-07-2012http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/FormsMasterDetail/F...

Page 26: Oracle Forms - Master Detail

Step 4 - Building a Detail Block

Back to Topic List

Forms Developer gives you the ability to quickly define additional data blocks. The Data Block Wizard offers you the option of defining relations between the new blocks and any existing blocks in the form.

Now that you have a Departments block, you would like to be able to additionally display all the employees in each department. To create a detail block based on the Employees table, perform the following steps:

Step 1).

When the form starts running, click Execute Query to display data in the form. Click Next Record and

Previous Record to navigate between records.

Note: At this point the Location and Manager items are not populated; you write code to populate these items in a later step.

9.������ Click Exit Form to exit the application, then close the browser window.

CAUTION: Always exit the application by clicking the Exit Form button prior to closing the browser. Failure to do this may cause the Runform process to hang; if this happens, you need to open Task Manager and end the ifweb90.exe process.

1.������ Select Departments in the Object Navigator, then click Create . This ensures that the new block immediately follows Departments in the Object Navigator tree. The sequence of the blocks determines default

Page 26 of 95Creating a Master-Detail Form

17-07-2012http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/FormsMasterDetail/F...

Page 27: Oracle Forms - Master Detail

navigation and also the sequence of commit processing.

Note: If you happen to create an object in the wrong order, you can drag its icon to the desired position in the Object Navigator. For example, if the sequence of the blocks is Employees, then Departments, you can drag the Employees block icon to a position after Departments under the Data Blocks node.

2.������ In the New Data Block dialog, ensure that Use the Data Block Wizard is selected, then click OK.

3.������ If the Welcome to the Data Block Wizard page displays, click Next >.

You are basing the block on a table, so ensure that Table or View is selected, then click Next >.

Page 27 of 95Creating a Master-Detail Form

17-07-2012http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/FormsMasterDetail/F...

Page 28: Oracle Forms - Master Detail

4.������In the Table or view field, type employees for the table name, then click Refresh. Click the right double arrow button to move all available columns to the Database Items to be included in the block, then click Next >.

Page 28 of 95Creating a Master-Detail Form

17-07-2012http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/FormsMasterDetail/F...

Page 29: Oracle Forms - Master Detail

5.������ Because there is already a block in the form, you are offered the option to relate this new block to it. Click Create Relationship.... A dialog displays any foreign keys defined in the database between these two tables. Click OKto base the relationship between the blocks on the EMP_DEPT_FK foreign key.

Page 29 of 95Creating a Master-Detail Form

17-07-2012http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/FormsMasterDetail/F...

Page 30: Oracle Forms - Master Detail

6.������ Click Next > to accept the join condition created automatically by Forms Builder based on the foreign key, then on the next screen click Next >, and then Finish.

Page 30 of 95Creating a Master-Detail Form

17-07-2012http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/FormsMasterDetail/F...

Page 31: Oracle Forms - Master Detail

7.������ If the Welcome to the Layout Wizard page displays, click Next >.

Click Next > to accept the default of laying out the items on the existing canvas.

Page 31 of 95Creating a Master-Detail Form

17-07-2012http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/FormsMasterDetail/F...

Page 32: Oracle Forms - Master Detail

8.������ In the Available Items column, select for display all items except Manager_Id and Department_Id, and then click the single right arrow button to move them to the Displayed Items column.

Page 32 of 95Creating a Master-Detail Form

17-07-2012http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/FormsMasterDetail/F...

Page 33: Oracle Forms - Master Detail

9.������ Change the following item prompts:

Click Next >.

Name PromptEMPLOYEE_ID ID

PHONE_NUMBER Phone

COMMISSION_PCT Commission %

Page 33 of 95Creating a Master-Detail Form

17-07-2012http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/FormsMasterDetail/F...

Page 34: Oracle Forms - Master Detail

10.������ You want to display several employees at a time in a tabular format, so select the Tabular option and click Next >.

Page 34 of 95Creating a Master-Detail Form

17-07-2012http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/FormsMasterDetail/F...

Page 35: Oracle Forms - Master Detail

11.������For the Frame Title, type Employees. Change Records Displayed to 5. Check Display Scrollbar, then click Next >, and on the final screen, click Finish.

Page 35 of 95Creating a Master-Detail Form

17-07-2012http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/FormsMasterDetail/F...

Page 36: Oracle Forms - Master Detail

12. ������ The Layout Editor opens showing how five employee records are displayed. If you maximize the Layout Editor window, you can see that the canvas has been enlarged to accommodate all the items, but the viewport, which is the area that shows data in the running form, does not show the entire record.

Page 36 of 95Creating a Master-Detail Form

17-07-2012http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/FormsMasterDetail/F...

Page 37: Oracle Forms - Master Detail

Note: Although in this case you could enlarge the viewport so that the entire record is visible, for this exercise you use a different technique that shows you one way to make it possible for users to view more data than can display in a single window.

13. ������ Restore the Layout Editor window to its original size. Observe that the Object Navigator shows that a relation, some triggers, and some program units have been automatically created. These are for master-detail coordination.

Page 37 of 95Creating a Master-Detail Form

17-07-2012http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/FormsMasterDetail/F...

Page 38: Oracle Forms - Master Detail

14. ������ Click Save to save the form, then click Run Form to test it (be sure that you have started OC4J -- see Step 1).

When the form starts running, click Execute Query to display data in the form. Click Next Record . Notice that the form automatically displays employees associated with the next department record. Click Next Block to navigate to the Employees block. You must tab through the items to be able to see them all.

Page 38 of 95Creating a Master-Detail Form

17-07-2012http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/FormsMasterDetail/F...

Page 39: Oracle Forms - Master Detail

Step 5 - Creating a New Canvas

Back to Topic List

By running the master-detail form, you can see that Forms has already done the job of building and coordinating the master-detail blocks for you. The form is useful as it is, with only the default functionality that Forms has built for you. In the remaining

In the next step, you see one technique to better display data that does not fit in a single window.

15. ������ Click Exit Form to exit the application, then close the browser window.

Page 39 of 95Creating a Master-Detail Form

17-07-2012http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/FormsMasterDetail/F...

Page 40: Oracle Forms - Master Detail

steps, you make adjustments to enhance the usability of the form. The first thing you do is create a new canvas to display most of the details about an employee.

In addition to the content canvas, which takes up all the space in the window, you can create three other types of canvases:

You decide to create a second content canvas and move some of the items from the Employees block to that canvas. In addition, you define on that second canvas some items that are synchronized with the items that appear on the main canvas.

To create the second content canvas, move some of the Employees block items to it, and create some synchronized items, perform the following steps:

Stacked canvas Can display in front of a content canvas and is usually smaller than the content canvas

Tab canvas Specialized type of stacked canvas containing multiple tab pages

Toolbar canvas Canvas that displays above or to the left of the content canvas, typically used for buttons

1.������ Select the canvas in the Object Navigator and click Create .

2.������ Change the names of both canvases by clicking the name in the Object Navigator, then clicking again and overtyping the existing name. Call the original canvas MAIN_CV and the new canvas EMP_DETAILS_CV.

Page 40 of 95Creating a Master-Detail Form

17-07-2012http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/FormsMasterDetail/F...

Page 41: Oracle Forms - Master Detail

Note: Alternatively you could change the name in the Property Palette.

3.������ Open the MAIN_CV canvas in the Layout Editor. In the Employees block, control-click (or drag the mouse) to select the Email, Phone_Number, Hire_Date, Salary, and Commission_Pct items. Choose Edit | Cut from the menu.

Page 41 of 95Creating a Master-Detail Form

17-07-2012http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/FormsMasterDetail/F...

Page 42: Oracle Forms - Master Detail

4.������ Select the EMP_DETAILS_CV canvas from the Canvas pop-up list at the top left of the Layout Editor and select EMPLOYEES from the Block pop-up list. Choose Edit | Paste from the menu. Drag the items to a location near the upper left corner of the canvas.

Page 42 of 95Creating a Master-Detail Form

17-07-2012http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/FormsMasterDetail/F...

Page 43: Oracle Forms - Master Detail

5.������ With all items still selected, open the Property Palette and change the following properties:

Then drag the items to arrange them on the canvas, leaving some room at the top for the synchronized items that you create next.

Property ValueNumber of Items Displayed 1

Prompt Attachment Edge Start

Prompt Attachment Offset 5

Page 43 of 95Creating a Master-Detail Form

17-07-2012http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/FormsMasterDetail/F...

Page 44: Oracle Forms - Master Detail

6.������ Change the background color of the canvas. Click a blank spot on the canvas so that the Property Palette displays the canvas properties. Change the Background Color property to a color of your choosing.

Page 44 of 95Creating a Master-Detail Form

17-07-2012http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/FormsMasterDetail/F...

Page 45: Oracle Forms - Master Detail

7.������ Select MAIN_CV from the Canvas pop-up list of the Layout Editor. Select together the Employee_Id, First_Name, and Last_Name items. From the menu, choose Edit | Copy.

8.������ Select EMP_DETAILS_CV from the Canvas pop-up list of the Layout Editor. From the menu, choose Edit | Paste.

Page 45 of 95Creating a Master-Detail Form

17-07-2012http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/FormsMasterDetail/F...

Page 46: Oracle Forms - Master Detail

9.������ Change the property values as you did in step 5-5 above, then change the names of each of the items to M_EMPLOYEE_ID, M_FIRST_NAME, and M_LAST_NAME (the M is just an indication that these items mirror, or are synchronized with, other items).

In the Synchronize with Item property for each item, select from the pop-list the item with which this item should be synchronized. For example, M_Employee_Id should be synchronized with Employee_Id.

Change other individual properties as shown:

Drag the items to the top of the canvas and arrange them near the top.

Item Property Value Note: If you fail to set these properties, the form still functions, but you receive annoying messages when you run the form from Forms Builder. If you would prefer not to set these properties, you can ignore the messages.

M_EMPLOYEE_ID and M_LAST_NAME

Required No

M_FIRST_NAME andM_LAST_NAME

Data Length SemanticsMaximum Length

Null0

Page 46 of 95Creating a Master-Detail Form

17-07-2012http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/FormsMasterDetail/F...

Page 47: Oracle Forms - Master Detail

10.������ Open the MAIN_CV canvas again. To ensure that changes to the layout of the Employees block are preserved, click its Frame (the line that surrounds the items in the Employees block). In the Property Palette for the Frame, change the property Update Layout from Automatically to Manually.

Page 47 of 95Creating a Master-Detail Form

17-07-2012http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/FormsMasterDetail/F...

Page 48: Oracle Forms - Master Detail

11.������ Move the scrollbar from the far right of the MAIN_CV canvas to a position just to the right of the remaining items, then resize the frame width appropriately.

12. ������ Click Save to save the form, then click Run Form to test it (be sure that you have started OC4J -- see Step 1).

Page 48 of 95Creating a Master-Detail Form

17-07-2012http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/FormsMasterDetail/F...

Page 49: Oracle Forms - Master Detail

Step 6 - Creating a New Window

Back to Topic List

Because you have two content canvases and one window, you can display only one content canvas at a time. Both canvases display in Window1 that Forms Builder created by default.

If you would like to enable users to view both canvases at once, you can create another window. To create a new window and display the EMP_DETAILS_CV canvas in it, perform the following steps:

When the form starts running, click Execute Query to display data in the form. Click Next Block to navigate to the Employees block. You still must tab through the items to be able to see them all, but at least now the employee detail displays all in one window. You may notice that navigation through the items on the detail page is not what you might expect; you change the navigation in a later step.

Note: You could use a stacked canvas, rather than a content canvas, to display the employee details. If you had a larger number of items, you could use a tab canvas to display them, arranging the items on different tab pages.

13.������ Click Exit Form to exit the application, then close the browser window.

1.������

Page 49 of 95Creating a Master-Detail Form

17-07-2012http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/FormsMasterDetail/F...

Page 50: Oracle Forms - Master Detail

Select the window in the Object Navigator and click Create .

2.������ Change the names of both windows by clicking the name in the Object Navigator, then clicking again and overtyping the existing name. Call the original window MAIN_WIN and the new window EMP_DETAILS_WIN.

Page 50 of 95Creating a Master-Detail Form

17-07-2012http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/FormsMasterDetail/F...

Page 51: Oracle Forms - Master Detail

Note: Alternatively you could change the name in the Property Palette.

3.������ In the Property Palette for each window, change its Title property. This changes the title that displays in each window of the running form.

Change the title for MAIN_WIN to Departments and Employees. Change the title for EMP_DETAILS_WIN to Employee Details.

Page 51 of 95Creating a Master-Detail Form

17-07-2012http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/FormsMasterDetail/F...

Page 52: Oracle Forms - Master Detail

4.������ Select the EMP_DETAILS_CV canvas in the Object Navigator. In the Property Palette, change its Windowproperty by selecting EMP_DETAILS_WIN from the pop-up list.

Page 52 of 95Creating a Master-Detail Form

17-07-2012http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/FormsMasterDetail/F...

Page 53: Oracle Forms - Master Detail

5.������ In the Layout Editor for the MAIN_CV canvas, place your cursor at the point where you want the new window to be displayed, and make note of the X and Y coordinates shown at the bottom of the Layout Editor window. In this case, the X and Y coordinates are 210 and 120.

Page 53 of 95Creating a Master-Detail Form

17-07-2012http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/FormsMasterDetail/F...

Page 54: Oracle Forms - Master Detail

6.������ In the Property Palette for the EMP_DETAILS_WIN window, set the X Position and Y Position properties to the values of the X and Y coordinates in the previous step. The example shows setting X Position to 210 and Y Position to 120.

Page 54 of 95Creating a Master-Detail Form

17-07-2012http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/FormsMasterDetail/F...

Page 55: Oracle Forms - Master Detail

7.������ Open the EMP_DETAILS_CV canvas in the Layout Editor and resize the Viewport (black rectangle) so that it is just large enough to display all the items. You may need to maximize the Layout Editor window to be able to see the original lower right point of the viewport.

Page 55 of 95Creating a Master-Detail Form

17-07-2012http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/FormsMasterDetail/F...

Page 56: Oracle Forms - Master Detail

Note: Resizing the viewport actually resizes the window in which the canvas is displayed. It is a visual way to change the height and width properties of the window without the need to change them directly in the Property Palette.

8.������ Click Save to save the form, then click Run Form to test it (be sure that you have started OC4J -- see Step 1).

When the form starts running, click Execute Query to display data in the form. Click Next Block to navigate to the Employees block. Tab through the items so that the separate window is invoked.

Page 56 of 95Creating a Master-Detail Form

17-07-2012http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/FormsMasterDetail/F...

Page 57: Oracle Forms - Master Detail

Step 7 - Building a Control Block

Back to Topic List

Although most data blocks are based on tables, views, or stored procedures, you can create blocks that are not related to the database. Such blocks are referred to as Control Blocks. Control Blocks typically contain buttons, calculated items, or other objects that pertain to the form as a whole, rather than just a single block.

To create a control block to display the sum of department salaries, perform the following steps:

Design suggestion: Because you can now see the details along with the main canvas, you may decide to eliminate the synchronized items from the detail canvas.

It may also be helpful to differentiate the current row on the main canvas visually, such as by specifying a different background color for the current item. You can do this by:

Defining a visual attribute (see the online help topic Creating a Named Visual Attribute)

Setting a property of the Employees block called Current Record Visual Attribute group to the name of the visual attribute that you defined

9.������ Click Exit Form to exit the application, then close the browser window.

1.������ Select the Employees block in the Object Navigator and click Create .

Page 57 of 95Creating a Master-Detail Form

17-07-2012http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/FormsMasterDetail/F...

Page 58: Oracle Forms - Master Detail

2.������ Select the option to Build a new data block manually, then click OK.

3.������In the Property Palette for the new block, set Name to CONTROL and set Single Record to Yes. The Single Record property is appropriate for a Control Block because it does not contain multiple records.

Page 58 of 95Creating a Master-Detail Form

17-07-2012http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/FormsMasterDetail/F...

Page 59: Oracle Forms - Master Detail

Note: Single Record must be set to Yes for a Control Block that contains a summary calculated item.

4.������ In the Layout Editor, open the MAIN_CV canvas. Select CONTROL from the Block pop-up list.

Page 59 of 95Creating a Master-Detail Form

17-07-2012http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/FormsMasterDetail/F...

Page 60: Oracle Forms - Master Detail

5.������ Click the Display Item tool , then click in the canvas to the right of the Manager item.

Page 60 of 95Creating a Master-Detail Form

17-07-2012http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/FormsMasterDetail/F...

Page 61: Oracle Forms - Master Detail

6.������ Using the Property Palette, set the following properties on the new item:

Property Value

Name SAL_SUM

Data Type Number

Maximum Length 14

Format Mask $9,999,999.00

Calculation Mode Summary

Summary Function Sum

Summarized Block EMPLOYEES

Summarized Item Salary

Height 14

Prompt Total Salaries

Prompt Attachment Edge Top

7.������ A summarized block must have its Query All Records or Precompute Summaries property set to Yes so that the sum includes all records, not only those already retrieved into the block. In the Property Palette for the Employees block, set one of these properties to Yes.

Page 61 of 95Creating a Master-Detail Form

17-07-2012http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/FormsMasterDetail/F...

Page 62: Oracle Forms - Master Detail

8.������ Click Save to save the form, then click Run Form to test it (be sure that you have started OC4J -- see Step 1).

When the form starts running, click Execute Query to display data in the form. Click Next Record to navigate to a department with more than one employee.

Click Next Block to navigate to the Employees block. Tab through the items so that the separate window is invoked.

While the cursor is in the separate window, click Next Record through all existing employee records and verify that the total department salaries figure is correct.

Page 62 of 95Creating a Master-Detail Form

17-07-2012http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/FormsMasterDetail/F...

Page 63: Oracle Forms - Master Detail

Step 8 - Controlling Navigation

Back to Topic List

As you were testing the form, depending on how you arranged the items you may have noticed that the cursor did not move in the desired sequence when you tabbed through the items. In addition, you may prefer that when you tab out of the last item in an Employees record, that the cursor should move to the next record, and that when you tab out of the last item in a Departments record, that the cursor should move to the Employees block. In this step, you change the navigation order so that these things are accomplished.

To change navigation order, perform the following steps:

9.������ Click Exit Form to exit the application, then close the browser window.

1.������ By default, navigation order is determined by the sequence in which objects appear in the Object Navigator.

Open the EMP_DETAILS_CV canvas in the Layout Editor. In the Object Navigator, drag the items in the Employees block to the order in which you want the navigation to occur.

For example, when items are arranged on the canvas as shown below, you want the cursor to move to HIRE_DATE when you tab out of PHONE_NUMBER. To change the sequence, you drag HIRE_DATE in the Object Navigator to the position just after PHONE_NUMBER.

Ignore the items JOB_ID, MANAGER_ID, and DEPARTMENT_ID, because those items are not displayed on any canvas, so navigation to those items does not occur.

Page 63 of 95Creating a Master-Detail Form

17-07-2012http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/FormsMasterDetail/F...

Page 64: Oracle Forms - Master Detail

2.������ You can also use block properties to affect navigation order.

In the Property Palette for the Departments block, change the Navigation Style property to Change Data Block.

Page 64 of 95Creating a Master-Detail Form

17-07-2012http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/FormsMasterDetail/F...

Page 65: Oracle Forms - Master Detail

3 .������ In the Property Palette for the Employees block, change the Navigation Style property to Change Record.

Page 65 of 95Creating a Master-Detail Form

17-07-2012http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/FormsMasterDetail/F...

Page 66: Oracle Forms - Master Detail

4.������ Click Save to save the form, then click Run Form to test it (be sure that you have started OC4J -- see Step 1). Test that the navigation order is the same as what you determined by moving the items in the Object Navigator, that the cursor moves into the Employees block when you tab out of the Department_Name item, and that the cursor moves to the next Employees record when you tab out of the last item in the Employees block.

Click Exit Form to exit the application, then close the browser window.

5.������ You can also affect navigation with item properties.

In preparation for some new functionality that you implement with code in a later step, change the following item properties in the Employees block:

Note: When viewing a queried record, this makes it impossible to navigate to the employee details shown on the EMP_DETAILS_CV canvas. You add the ability to navigate to these items in a later step.

Item Property Value

EMPLOYEE_ID Previous Navigation Item LAST_NAME

LAST_NAME Next Navigation Item EMPLOYEE_ID

6.������ Click Save to save the form.

Page 66 of 95Creating a Master-Detail Form

17-07-2012http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/FormsMasterDetail/F...

Page 67: Oracle Forms - Master Detail

Step 9 - Modifying the Layout

Back to Topic List

When you attempt to insert a new employee record, you discover that you have omitted a required database column, JOB_ID, from the layout. You did include JOB_ID in the data block itself; if you had not, you could use the Data Block Wizard in reentrant mode to add the JOB_ID to the data block. To invoke the Data Block Wizard in reentrant mode, you just right-click the block in the Object Navigator and choose Data Block Wizard from the context menu.

So that it is be possible to use the form to insert employee records, you could use the Layout Wizard in reentrant mode to add the item to the layout for that required database column . However, using the Layout Wizard arranges the items in their original tabular layout within the frame on the MAIN_CV canvas, and this is not desirable for this application. If you want to try this to see the effect, save the form first so that you can revert to the saved copy, then right-click the Employees frame on the MAIN_CV canvas and select Layout Wizard from the context menu to open the Layout Wizard in reentrant mode. You can tell that you are in reentrant mode because there are tabs along the top of the Wizard and there is an Apply button that does not exist unless the Wizard is in reentrant mode. Then on the Data Block tab, move JOB_ID to Displayed Items and click Finish. After you experiment with this, close the form without saving it (select the HR form in the Object Navigator and click Delete), then reopen the saved form to continue.

Instead of using the Layout Wizard in reentrant mode to modify the layout, in this step you simply change the properties of the JOB_ID item. To add JOB_ID to the EMP_DETAILS_CV canvas, perform the following steps:

1.������ Select the JOB_ID item in the Object Navigator and display its Property Palette. Change its Canvas Property to EMP_DETAILS_CV, change Number of Items Displayed to 1, and change Prompt Attachment Offset to 5.

Page 67 of 95Creating a Master-Detail Form

17-07-2012http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/FormsMasterDetail/F...

Page 68: Oracle Forms - Master Detail

2.������ Open the Layout Editor for the EMP_DETAILS_CV canvas. The JOB_ID item is displayed in the upper left corner. Drag it to the desired position on the canvas.

3.������ In the Object Navigator, drag the JOB_ID item to the proper position for the desired navigation order.

Page 68 of 95Creating a Master-Detail Form

17-07-2012http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/FormsMasterDetail/F...

Page 69: Oracle Forms - Master Detail

4.������ Click Save to save the form, then click Run Form to test it (be sure that you have started OC4J -- see Step 1).

Before querying any data, attempt to insert a new Departments record. Enter 99 for the Department_Id and Test for the Department_Name. Click Save . The record should be inserted without error.

Page 69 of 95Creating a Master-Detail Form

17-07-2012http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/FormsMasterDetail/F...

Page 70: Oracle Forms - Master Detail

5.������ Click Remove Record to delete the record that you just inserted, then click Save . The record should be deleted without error.

Page 70 of 95Creating a Master-Detail Form

17-07-2012http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/FormsMasterDetail/F...

Page 71: Oracle Forms - Master Detail

6.������ Click Execute Query . Navigate to the Employees block and click Insert Record .

Enter 999 for the Employee_ID, and enter your own first and last name. Click Save .

Because there are some required items that have no values, you receive an error and Forms automatically navigates to the first null required item. Enter IT_PROG for the Job_Id, then fill in any values you desire for the other items. Then click Save . The record should be saved successfully; notice that the Total Salaries amount is recalculated automatically. You may delete the new record if desired.

Page 71 of 95Creating a Master-Detail Form

17-07-2012http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/FormsMasterDetail/F...

Page 72: Oracle Forms - Master Detail

Step 10 - Adding Functionality with Code

Back to Topic List

Now you have a fully functional master-detail form that enables you to query, insert, update, and delete records. The form even performs calculations automatically, and you have not written a single line of code to achieve this functionality. Forms Builder makes it easy to declaratively develop a complete application.

However, you may desire to add functionality by coding PL/SQL program units and triggers in your form. A trigger is a block of code that executes in response to a certain action, such as when the user clicks a button.

In this step, you write code to perform the following:

Click Exit Form to exit the application, then close the browser window.

Page 72 of 95Creating a Master-Detail Form

17-07-2012http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/FormsMasterDetail/F...

Page 73: Oracle Forms - Master Detail

Execute a Query Automatically

Back to List

It is common for the user to want data to be displayed in the form when it first opens. To execute a query automatically when the form starts, perform the following steps:

Execute a query automaticallyPopulate non base table items when queryingUse lists of values for user inputCreate a button to display detailsAdjust navigation programmaticallyClose a window programmatically

1.������ In the Object Navigator, right-click the form-level Triggers node, then select SmartTriggers | WHEN-NEW-FORM-INSTANCE from the context menu.

2.������ The PL/SQL Editor opens up for the form-level When-New-Form-Instance trigger. Enter the following code:

DO_KEY('EXECUTE_QUERY');

Then click Compile in the PL/SQL Editor. A message showing that the trigger is compiled displays in the

Page 73 of 95Creating a Master-Detail Form

17-07-2012http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/FormsMasterDetail/F...

Page 74: Oracle Forms - Master Detail

Populate Non Base Table Items When Querying

Back to List

One way to look up related data and display it automatically in non base table items is to use a post-query trigger. This technique requires a round trip to the database for each row that is retrieved by the query, so it can result in slower performance. For a large number of records, you may want to consider basing the table on a view or on a set of stored procedures, which may provide better performance.

To automatically populate the non base table items when querying, perform the following steps:

lower right corner of the editor.

Click Save .

1.������ Under the Departments block in the Object Navigator, select the Triggers node, then click Create .

Page 74 of 95Creating a Master-Detail Form

17-07-2012http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/FormsMasterDetail/F...

Page 75: Oracle Forms - Master Detail

2.������Type p in the Find box, then select POST-QUERY from the list. Click OK.

3.������ The PL/SQL Editor opens up for the block-level Post-Query trigger for the Departments block. The Post-Query trigger fires for every row that is retrieved by a query of the Departments block. Enter the following code:

Page 75 of 95Creating a Master-Detail Form

17-07-2012http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/FormsMasterDetail/F...

Page 76: Oracle Forms - Master Detail

Use Lists of Values for User Input

Back to List

A List of Values (LOV) can be attached to any input item to help users to enter accurate data. There is little coding involved in defining an LOV other than typing in the SELECT statement to use.

You could use LOVs for Location and Manager, then populate those non base table items along with their associated base table items, Location_Id and Manager_Id. However, in this example, you use an LOV to enable the user to select a valid Job_Id for an employee.

To define an LOV for the Job_Id item, perform the following steps:

SELECT CITY || ', ' || STATE_PROVINCE || ', '|| COUNTRY_IDINTO :departments.locationFROM locationsWHERE :departments.location_id = location_id;

SELECT FIRST_NAME || ' ' || LAST_NAMEINTO :departments.managerFROM employeesWHERE :departments.manager_id = employee_id;

Then click Compile in the PL/SQL Editor. A message showing that the trigger is compiled displays in the lower right corner of the editor.

Click Save .

1.������ Click the LOVs node in the Object Navigator, then click Create .

Page 76 of 95Creating a Master-Detail Form

17-07-2012http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/FormsMasterDetail/F...

Page 77: Oracle Forms - Master Detail

2.������ Leave the Use the LOV Wizard option selected and click OK.

3.������ On the first page of the LOV Wizard, click Next to base the LOV on a new record group based on a query.

Page 77 of 95Creating a Master-Detail Form

17-07-2012http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/FormsMasterDetail/F...

Page 78: Oracle Forms - Master Detail

4.������ For the SQL Query Statement, enter the following:

SELECT job_title TITLE, job_id IDFROM jobsORDER BY job_title

Do not end the statement with a semicolon.

If you want to ensure that the statement is syntactically correct, click Check Syntax. You should receive a message affirming the correctness of the statement; click OK to dismiss this message, then in the LOV Wizard, click Next.

Page 78 of 95Creating a Master-Detail Form

17-07-2012http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/FormsMasterDetail/F...

Page 79: Oracle Forms - Master Detail

5.������ In the LOV you want to display the Job_Title to the user, because this contains information that is meaningful to the user. You decide to also display the Job_Id. Click the double right arrow button to move both record group columns to the LOV, then click Next.

Page 79 of 95Creating a Master-Detail Form

17-07-2012http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/FormsMasterDetail/F...

Page 80: Oracle Forms - Master Detail

6.������ What you are trying to accomplish is to populate the Job_Id item in the Employees block with the ID selected from the query.

Click the Return value column for the ID column, then click Look up return item.... In the Items and Parameters list, select :EMPLOYEES.JOB_ID, then click OK.

Check Automatically size columns, then click Next.

Page 80 of 95Creating a Master-Detail Form

17-07-2012http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/FormsMasterDetail/F...

Page 81: Oracle Forms - Master Detail

7.������Enter Jobs for the LOV Title, 250 for the Width, and 300 for the Height. Click Next.

Page 81 of 95Creating a Master-Detail Form

17-07-2012http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/FormsMasterDetail/F...

Page 82: Oracle Forms - Master Detail

8.������ Click Next to accept the defaults of retrieving 20 rows at a time and refreshing the record group before displaying the LOV.

Page 82 of 95Creating a Master-Detail Form

17-07-2012http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/FormsMasterDetail/F...

Page 83: Oracle Forms - Master Detail

9.������ You want the LOV to be available from the Job_ID item in the Employees block. Click the right arrow button to move EMPLOYEES.JOB_ID from Return Items to Assigned Items, then click Next, and on the final

screen, click Finish.

Page 83 of 95Creating a Master-Detail Form

17-07-2012http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/FormsMasterDetail/F...

Page 84: Oracle Forms - Master Detail

Create a Button to Display Details

Back to List

Because there is now no easy way to navigate to items on the EMP_DETAILS_CV canvas, you create a button enabling users to do so.

In most cases, you would create buttons in the Control block. However, the button needs to know which record in the Employees block to display details for, and the easiest way to do this (there are other ways) is to place the button in the Employees block.

For most buttons, you set the Mouse Navigate property to No. In this case, however, you want to select an employee record and display its details with one click, so you leave Mouse Navigate set to its default value, which is Yes.

To create a button to display employee details, perform the following steps:

Click Save .

1.������ Open the Layout Editor for the MAIN_CV canvas. Enlarge the Employees frame to the right by selecting it and dragging its resize handle. Move the scrollbar to the right side of the frame.

Page 84 of 95Creating a Master-Detail Form

17-07-2012http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/FormsMasterDetail/F...

Page 85: Oracle Forms - Master Detail

2.������ Select EMPLOYEES from the block list in the Layout Editor. Click the Button tool in the Layout Editor, then click in the area between Last_Name and the scrollbar.

Page 85 of 95Creating a Master-Detail Form

17-07-2012http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/FormsMasterDetail/F...

Page 86: Oracle Forms - Master Detail

3.������ Open the Property Palette for the button and set the following properties:

Property ValueName DETAILS_BTN

Label Details

Width 50

Height 14

Page 86 of 95Creating a Master-Detail Form

17-07-2012http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/FormsMasterDetail/F...

Page 87: Oracle Forms - Master Detail

4.������ In the Object Navigator, drag the button to a position just after Last_Name.

Page 87 of 95Creating a Master-Detail Form

17-07-2012http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/FormsMasterDetail/F...

Page 88: Oracle Forms - Master Detail

5.������ Right-click the DETAILS_BTN button, and from the context menu choose SmartTriggers | WHEN-BUTTON-PRESSED.

Page 88 of 95Creating a Master-Detail Form

17-07-2012http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/FormsMasterDetail/F...

Page 89: Oracle Forms - Master Detail

6.������ In the PL/SQL Editor, enter the following code:

GO_ITEM('job_id');

Click Compile .

Page 89 of 95Creating a Master-Detail Form

17-07-2012http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/FormsMasterDetail/F...

Page 90: Oracle Forms - Master Detail

Adjust Navigation Programmatically

Back to List

You previously set the Navigation Style property of the Employees block to Change Record, which means that when the user tabs out of the last item in the block, the cursor goes to the first item in the next record. However, because Last_Name is not the last item in the block, tabbing out of it simply navigates to the Employee_Id of the same record.

To adjust navigation so that tabbing from the employee's last name navigates to the next record, perform the following steps:

Click Save .

1.������ In the Object Navigator, expand the Last_Name node under the Employees block, and select the Triggersnode. Click Create .

Page 90 of 95Creating a Master-Detail Form

17-07-2012http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/FormsMasterDetail/F...

Page 91: Oracle Forms - Master Detail

2.������ In the Triggers window, scroll down and select KEY-NEXT-ITEM, then click OK.

3.������ In the PL/SQL Editor, enter the following code, then click Compile :

Page 91 of 95Creating a Master-Detail Form

17-07-2012http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/FormsMasterDetail/F...

Page 92: Oracle Forms - Master Detail

Close a Window Programmatically

Back to List

When the user clicks the X on a Forms window to close it, by default nothing happens. If you want the user to be able to close the window, you must code the action to take.

To close the EMP_DETAILS_WIN window when the user clicks the X, perform the following steps:

do_key('next_record');

Click Save .

1.������ Select the Triggers node under the HR form, click Create , and choose WHEN-WINDOW-CLOSED from the trigger list, then click OK.

Page 92 of 95Creating a Master-Detail Form

17-07-2012http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/FormsMasterDetail/F...

Page 93: Oracle Forms - Master Detail

2.������ In the PL/SQL Editor, enter the following code, then click Compile:

IF :SYSTEM.CURSOR_ITEM IN ('EMPLOYEES.M_EMPLOYEE_ID', 'EMPLOYEES.M_FIRST_NAME', 'EMPLOYEES.M_LAST_NAME', 'EMPLOYEES.JOB_ID', 'EMPLOYEES.EMAIL', 'EMPLOYEES.PHONE_NUMBER', 'EMPLOYEES.HIRE_DATE', 'EMPLOYEES.SALARY', 'EMPLOYEES.COMMISSION_PCT') THEN GO_ITEM('employee_id'); HIDE_WINDOW('emp_details_win');END IF;

Page 93 of 95Creating a Master-Detail Form

17-07-2012http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/FormsMasterDetail/F...

Page 94: Oracle Forms - Master Detail

Summary

Back to Topic List

This exercise showed you how easy it is to create a master-detail form using the Data Block and Layout Wizards in Forms Builder. You also manually created a control block on which you placed an item to automatically calculate the sum of salaries for a department.

You enhanced a data block with non base table items to display data from related tables, and you moved some items to a new canvas to display in a separate window. You adjusted navigation and added another base table item to the layout. This fully

Click Save .

3.������ Click Run Form to test it (be sure that you have started OC4J -- see Step 1).

Demonstrate that:

Click Exit Form to exit the application, then close the browser window.

The form displays the data (executes the query) automatically.

The Location and Manager items are populated automatically.

When navigating in the Employees block on the Main canvas, tabbing out of Last_Name navigates to the next employee record.Employee details display when you click Details in the Employees block.

In the Job_Id item you can display and select from an LOV when you press Ctrl + L, and the Job_Id item is populated with the job that you select.You can close the detail window.

Page 94 of 95Creating a Master-Detail Form

17-07-2012http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/FormsMasterDetail/F...

Page 95: Oracle Forms - Master Detail

functional master-detail form was achieved using only the visual and declarative IDE of Forms Builder.

You then added code to execute a query automatically, populate the non base table items, define a list of values to aid user input, create a button to display employee details, further refine navigation programmatically, and programmatically close the separate window.

This brief overview only scratches the surface of what you can accomplish with Forms Builder. For more information, see Related Topics below.

Related topics

Oracle Education courses: Oracle Forms Developer 10g: Move to the Web

Oracle Education courses: Oracle Forms Developer 10g:Build Internet Applications

OTN: Forms Products page

Move your mouse over this icon to hide all screenshots

Page 95 of 95Creating a Master-Detail Form

17-07-2012http://www.oracle.com/webfolder/technetwork/tutorials/obe/forms/FormsMasterDetail/F...