oracle forms : coding

14
Flexible Coding in Forms http:// ebiztechnics.blogspot.com

Upload: sekhar-byna

Post on 10-Feb-2017

462 views

Category:

Software


0 download

TRANSCRIPT

Flexible Coding in Forms

http://ebiztechnics.blogspot.com

Objectives

• Explain Flexible Coding• Advantages of using system variables• Identify built-in subprograms that assist flexible coding• Write code to reference objects by internal ID

http://ebiztechnics.blogspot.com

Flexible Coding

• What do you mean by Flexible Coding?

• Is generic code• Is reusable• Avoid hard coded object names• Make maintenance easier• Increases Productivity

http://ebiztechnics.blogspot.com

System Variables

• Input focus:– SYSTEM.CURSOR_BLOCK– SYSTEM.CURSOR_RECORD– SYSTEM.CURSOR_ITEM– SYSTEM.CURSOR_VALUE

http://ebiztechnics.blogspot.com

System Variables

• Trigger focus:– SYSTEM.TRIGGER_BLOCK– SYSTEM.TRIGGER_RECORD– SYSTEM.TRIGGER_ITEM

Note: prefix colon (:) before these variablesExample: :SYSTEM.CURSOR_ITEM

http://ebiztechnics.blogspot.com

Examples

• IF :SYSTEM.CURSOR_BLOCK=‘DEPT’ THEN GO_BLOCK(‘EMP’);ELSIF :SYSTEM.CURSOR_BLOCK=‘EMP’ THEN GO_BLOCK(‘SALGRADE’);ELSIF :SYSTEM.CURSOR_BLOCK=‘SALGRADE’ THEN GO_BLOCK(‘DEPT’);END IF;

http://ebiztechnics.blogspot.com

GET_”object”_PROPERTY Built-ins

• GET_APPLICATION_PROPERTY• GET_FORM_PROPERTY• GET_BLOCK_PROPERTY• GET_RELATION_PROPERTY • GET_RECORD_PROPERTY• GET_ITEM_PROPERTY• GET_ITEM_INSTANCE_PROPERTY

• GET_LOV_PROPERTY

• GET_RADIO_BUTTON_PROPERTY

• GET_MENU_ITEM_PROPERTY

• GET_CANVAS_PROPERTY

• GET_TAB_PAGE_PROPERTY

• GET_VIEW_PROPERTY

• GET_WINDOW_PROPERTY

http://ebiztechnics.blogspot.com

SET_”object”_PROPERTY Built-ins

• SET_APPLICATION_PROPERTY• SET_FORM_PROPERTY• SET_BLOCK_PROPERTY• SET_RELATION_PROPERTY • SET_RECORD_PROPERTY• SET_ITEM_PROPERTY• SET_ITEM_INSTANCE_PROPERTY

• SET_LOV_PROPERTY

• SET_RADIO_BUTTON_PROPERTY

• SET_MENU_ITEM_PROPERTY

• SET_CANVAS_PROPERTY

• SET_TAB_PAGE_PROPERTY

• SET_VIEW_PROPERTY

• SET_WINDOW_PROPERTY

http://ebiztechnics.blogspot.com

Object ID

Finding and Object ID:Alt_id := FIND_ALERT(’Del_alert’)

Referencing an Object by ID:...SHOW_ALERT(Alt_id)

Referencing and Object by Name:...SHOW_ALERT(‘Del_alert’)

http://ebiztechnics.blogspot.com

FIND_ Built-ins

• FIND_FORM FORMMODULE• FIND_BLOCK BLOCK• FIND_ITEM ITEM• FIND_RELATION RELATION• FIND_LOV LOV• FIND_WINDOW WINDOW• FIND_VIEW VIEW• FIND_CANVAS CANVAS• FIND_ALERT ALERT• FIND_EDITOR EDITOR

http://ebiztechnics.blogspot.com

Using Object IDs

• Declare a PL/SQL variable of the same data type.• Use the variable for any later reference to the object.• Use the variable within the current PL/SQL block only.

http://ebiztechnics.blogspot.com

Example

DECLARE item_var item;BEGIN item_var := FIND_ITEM(:SYSTEM.CURSOR_ITEM);

SET_ITEM_PROPERTY(item_var,visual_attribute, ‘va_blue’);

END;

http://ebiztechnics.blogspot.com

Using Object IDs

• A PL/SQL variable has limited scope.• An .id extension:

– Broadens the scope– Converts to a numeric format– Enables assignment to a global variable– Converts back to the object data type

http://ebiztechnics.blogspot.com

Summary

• User System Variables– To avoid hard coded object names– Make maintenance easier

• Use GET_”object”_PROPERTY Built-ins to get and SET_”object”_PROPERTY Built-ins to Set the object properties at run time.

• Use FIND_”object” functions to find the internal Object Ids.

http://ebiztechnics.blogspot.com