You are on page 1of 50

Enhanced Guide to Oracle8i Chapter 12: Form Builder Objects and Flexible Code

Object-Oriented Principles


Object


Abstract representation of something in the real world Group of objects with the same structure and properties Object that belongs to a specific class Specifies that when you create a new object, it inherits its structure and properties from its class
2

Class


Class instance


Inheritance


Subclasses


Classes that have similar properties and structure of their parent class Subclasses have specializations, which are properties that make them different than their parent class

Form Builder Approaches For Creating Reusable Objects


   

Property Classes Object Groups Object Libraries PL/SQL Libraries

Property Classes


Top-level Form Builder objects that specify a collection of properties with specific values Property classes can be associated with Form Builder objects to define object properties
5

Creating a Property Class




Approaches:


Create the property class based on an existing object Explicitly create the property class object, and then define its properties and associated values

Creating a Property Class Based on an Existing Object




Create the object and configure its properties as desired In the object s Property Palette, select the desired properties and then click the Property Class button on the toolbar to create the property class

Creating a Property Class Explicitly




Create the property class object in the Object Navigator and open its Property Palette To add a property, click the Add Property button To remove a property, select the property and then click the Remove Property button
8

Using Property Classes to Subclass Form Objects




When you apply a property class to a form object, the form object is subclassed to the property class To subclass a form object, open the object s Property Palette, and the the property class name in the Subclass Information dialog box
9

Using the Subclass Information Dialog box




Select whether you are subclassing from an object or a property class Select the property class name

The image cannot be displayed. Your computer may not have enough memory to open the image, or the image may have been corrupted. Restart your computer, and then open the file again. If the red x still appears, you may have to delete the image and then insert it again.

10

Object Groups


Top-level form objects that contain groups of objects that can be reused in different forms Examples of object types in object groups:
  

LOVs Data blocks Alerts

Object groups are created in a source from, and then subclassed into target forms
11

Creating an Object Group




Create a new object group object in the form template Rename the object group

12

Adding Objects to an Object Group


 

Create the objects Drag and drop the objects on the object group Object Group Children node

13

Subclassing Object Groups in Target Forms




Select the object group in the source form Drag the object group to the Object Groups node in the target form, drop the object group, and click the Subclass button

14

Subclassing vs. Copying Objects




When you subclass an object, changes to original object are propagated to subclassed objects When you copy an object, changes to original object do not affect subclassed objects

15

Form With Objects Subclassed From Object Group

Subclassed objects

Subclassed object group

16

Object Libraries


Top-level Form Builder objects that are independent of specific forms Contain form objects that can be referenced in specific forms

17

Creating an Object Library




Create a new object library object in Form Builder Save the object library file
 

File has an .olb extension Filename specifies object library name

18

Object Library Structure




Consists of multiple library tabs




Tab pages that contain one or more similar object instances

19

Creating and Configuring Tab Pages




To create a new tab page, select the Library Tabs node, and then click the Create button Right-click the new tab page, and then click Property Palette to open the tab page Property Palette Change the tab page Name and Label values
20

Opening the Object Library




Double-click the object library icon to open the Object Library window

Library tabs Object on tab page

21

Adding Form Objects to Library Tab Pages


 

Create and configure the object in a source form Open the source form Object Navigator and the Object Library window side-by-side
 

Maximize the Object Navigator window Open the Object Library window, and then click the Restore button so the Object Library appears in a window Reposition the windows as necessary

Drag and drop the object onto the Library Tab page
22

Window Configuration For Adding Objects


Object Navigator window Object Library window

Object to be stored in library

23

Using Object Library Objects in Forms




Open the target form Object Navigator and the Object Library window side-byside Drag and drop the object library object into the target form Subclass the object into the target form

24

SmartClasses


Object library objects that are defined as standard object types for an application SmartClassed objects appear as selections on a pop-up menu when you create a new object and then right-click the object Speeds up the process of using object libraries

25

Creating a SmartClass
 

Select the object in the object library Click Object on the menu bar, and then click SmartClass

Green check indicates object is a SmartClass

26

Selecting a SmartClass

27

PL/SQL Libraries


Library of PL/SQL named program units that can be used in forms Top-level Form Builder object that is not associated with a specific form Specific program units can be attached to forms
 

Code is not part of form .fmb file Code is only loaded when program unit is called

28

Creating a PL/SQL Library in Form Builder




Select the PL/SQL Libraries node, and then click the Create button Save the library in the file system


Library name is the same as the filename File has a .pll extension
29

Saving PL/SQL Library Files




In general, PL/SQL library files should be saved in the default PL/SQL library folder


Path: Developer_Home\TOOLS\OPEN60

If you save a library file in a different location, that path and file must always be available when you open forms that reference the library
30

Adding Program Units to PL/SQL Libraries




Select the library Program Units node, and then click the Create button Select the named program unit type (procedure, function, package) Type the program unit code in the PL/SQL Editor window

31

Using PL/SQL Libraries in Forms


 

Attach the library to the form Call the library program units from form triggers

32

Attaching a PL/SQL Library to a Form




Select the form s Attached Libraries node, and then click the Create button Navigate to the library file and attach the file


If the library is saved in the default library folder, click Yes to discard path information If the library is not saved in the default library folder, click No to save path information
33

Calling a Library Program Unit From a Form Trigger




Reference the program unit and pass the required parameters as specified in the attached library specification in the Object Navigator

34

Calendar Windows


Associated with a form text item that displays date values Allows the user to select a date The selected date value is returned to the form text item

35

Creating a Calendar Window




Open the STNDRD20.OLB object library and copy or subclass the Calendar object group into the form Attach the CALENDAR.PLL PL/SQL library to the form Create a trigger associated with the form text item that calls a procedure in the CALENDAR.PLL PL/SQL library
36

Subclassing the Calendar Object Group Into the Form


  

Open the target form Open the STNDRD20.OLB object library Subclass the CALENDAR object group into the target form

37

Subclassing the Calendar Object Group Into the Form

38

Attaching the CALENDAR.PLL PL/SQL Library to the Form


The image cannot be displayed. Your computer may not have enough memory to open the image, or the image may have been corrupted. Restart your computer, and then open the file again. If the red x still appears, you may have to delete the image and then insert it again.

Create a new attached library object in the target form Click Browser, select CALENDAR.PLL, click Open, and then click Attach to attach the library
39

Creating a Trigger to Open the Calendar Window




Create a Show Calendar button next to the date text item Create the trigger to call the GET_DATE procedure in the DATE_LOV package

40

Creating a Trigger to Open the Calendar Window

41

Flexible Code


Allows you to create objects that can be configured at runtime Approaches




Use system variables to retrieve and set system values Use built-in subprograms that dynamically retrieve and set form object properties

42

Using Built-in Subprograms to Create Flexible Code




GET_ built-ins


Allow you to retrieve current object properties Allow you to dynamically set object properties

SET_ built-ins


43

GET_APPLICATION_PROPERTY Built-in


Returns information about the current Form Builder application Syntax:

GET_APPLICATION_PROPERTY(property_name);

44

Retrieving Specific Object Properties




Syntax:

return_value := GET_object_PROPERTY (object_id | object_name, property_name);

45

Retrieving Object ID Values Using the FIND_ Built-ins




Syntax:

return_value := FIND_object(object_name);

46

Dynamically Setting Object Properties




Syntax:

SET_object_PROPERTY(object_id | object_name, property_name, property_value);

47

Using Indirect Referencing to Write Flexible Code




Direct referencing


Directly referencing a form object using the format :block_name.object_name Specifying block and item names in single quotation marks Allows you to reference objects that are not in the current form
48

Indirect referencing


Commands For Indirect Referencing




COPY


Indirectly sets the value of a form item

Syntax:
 Value: desired value  Destination: form item
 Format: block_name.item_name

COPY(value, destination);

49

Commands For Indirect Referencing




NAME_IN


Indirectly retrieves the value of a form item

Syntax:
 Return_value: retrieved value
 Is always a character string

return_value := NAME_IN(source);

 Source: form item


 Format: block_name.item_name
50

You might also like