Copyright Ó Oracle Corporation, 1999. All rights reserved. 2121 Writing Flexible Code.

Slides:



Advertisements
Similar presentations
8 Copyright © 2005, Oracle. All rights reserved. Creating the Web Tier: JavaServer Pages.
Advertisements

Copyright Ó Oracle Corporation, All rights reserved Validation.
Copyright Ó Oracle Corporation, All rights reserved Sharing Objects and Code.
Guide to Oracle10G1 Introduction To Forms Builder Chapter 5.
Advanced Package Concepts. 2 home back first prev next last What Will I Learn? Write packages that use the overloading feature Write packages that use.
13 Copyright © 2004, Oracle. All rights reserved. Introduction to Triggers.
3 Copyright © 2004, Oracle. All rights reserved. Creating Packages.
7 Copyright © 2004, Oracle. All rights reserved. Working with Text Items.
10 Copyright © 2004, Oracle. All rights reserved. Creating Noninput Items.
8 Copyright © 2004, Oracle. All rights reserved. Creating LOVs and Editors.
A Guide to Oracle9i1 Creating an Integrated Database Application Chapter 8.
4 Copyright © 2004, Oracle. All rights reserved. Creating a Basic Form Module.
Chapter 5B-C: Introduction to Forms Builder: Tiggers, LOV.
3 Copyright © 2004, Oracle. All rights reserved. Working in the Forms Developer Environment.
Eyad Alshareef 1 Creating Custom Forms Part A. 2Eyad Alshareef Data Block and Custom Forms Data block form Data block form Based on data blocks that are.
14 Copyright © 2004, Oracle. All rights reserved. Producing Triggers.
Copyright  Oracle Corporation, All rights reserved. 4 Creating Functions.
23 Copyright © 2004, Oracle. All rights reserved. Sharing Objects and Code.
8 Copyright © 2004, Oracle. All rights reserved. Creating LOVs and Editors.
24 Copyright © 2004, Oracle. All rights reserved. Using WebUtil to Interact with the Client.
CHAPTER SIX Reducing Program Complexity General Sub Procedures and Developer-defined Functions.
Copyright Ó Oracle Corporation, All rights reserved. 1 Introduction to Oracle Developer.
11 Copyright س Oracle Corporation, All rights reserved. ® Overview of PL/SQL.
Copyright Ó Oracle Corporation, All rights reserved. 22 Running a Form Builder Application.
1 Copyright © 2004, Oracle. All rights reserved. Introduction to PL/SQL.
3 Copyright © 2004, Oracle. All rights reserved. Working in the Forms Developer Environment.
4 Copyright © 2004, Oracle. All rights reserved. Creating a Basic Form Module.
1 Chapter 12: Form Builder Objects and Flexible Code.
Microsoft Visual Basic 2005: Reloaded Second Edition Chapter 3 Variables, Constants, Methods, and Calculations.
1 Copyright © 2004, Oracle. All rights reserved. Introduction to PL/SQL.
BIS Database Systems School of Management, Business Information Systems, Assumption University A.Thanop Somprasong Chapter # 8 Advanced SQL.
Guide to Oracle 10g ITBIS373 Database Development Lecture 4a - Chapter 4: Using SQL Queries to Insert, Update, Delete, and View Data.
12 Copyright © 2004, Oracle. All rights reserved. Understanding and Influencing the PL/SQL Compiler.
Recognizing PL/SQL Lexical Units. 2 home back first prev next last What Will I Learn? List and define the different types of lexical units available in.
Copyright Ó Oracle Corporation, All rights reserved Producing Triggers.
10 Copyright © 2004, Oracle. All rights reserved. Creating Noninput Items.
Copyright Ó Oracle Corporation, All rights reserved. 99 Creating Noninput Items.
Copyright Ó Oracle Corporation, All rights reserved Working with Other Canvases.
3 Copyright © 2004, Oracle. All rights reserved. Working in the Forms Developer Environment.
16 Copyright © 2004, Oracle. All rights reserved. Adding Functionality to Items.
Copyright Ó Oracle Corporation, All rights reserved Query Triggers.
19 Copyright © 2004, Oracle. All rights reserved. Validation.
Programming with Microsoft Visual Basic th Edition
4 Copyright © 2004, Oracle. All rights reserved. Creating a Basic Form Module.
25 Copyright © 2004, Oracle. All rights reserved. Introducing Multiple Form Applications.
Passing Parameters. 2 home back first prev next last What Will I Learn? List the types of parameter modes Create a procedure that passes parameters Identify.
Declaring PL/SQL Variables
Copyright Ó Oracle Corporation, All rights reserved Debugging Triggers.
15 Copyright © 2004, Oracle. All rights reserved. Debugging Triggers.
10 Copyright © 2004, Oracle..All rights reserved. PL/SQL.
10 Copyright © 2004, Oracle. All rights reserved. Building ADF View Components.
Lab 2 Writing PL/SQL Blocks CISB514 Advanced Database Systems.
22 Copyright © 2009, Oracle. All rights reserved. Filtering Requests in Oracle Business Intelligence Answers.
Copyright Ó Oracle Corporation, All rights reserved. 77 Creating LOVs and Editors.
8 Copyright © 2005, Oracle. All rights reserved. Managing Schema Objects.
19 Copyright © 2004, Oracle. All rights reserved. Coding PL/SQL Triggers.
4 Copyright © 2004, Oracle. All rights reserved. Advanced Interface Methods.
17 Copyright © 2006, Oracle. All rights reserved. Information Publisher.
Copyright Ó Oracle Corporation, All rights reserved. 88 Creating Additional Input Items.
Preface IIntroduction Course Objectives I-2 Oracle Complete Solution I-3 Course Agenda I-4 Tables Used in This Course I-5 The Order Entry Schema I-6 The.
3 Copyright © 2004, Oracle. All rights reserved. Writing Executable Statements.
6 Copyright © 2009, Oracle. All rights reserved. Using Dynamic SQL.
Working in the Form Builder Environment
Introduction to Triggers
Microsoft Visual Basic 2005 BASICS
Chapter 6: Creating Custom Forms
Producing Triggers Schedule: Timing Topic 40 minutes Lecture
Libraries of Code Notes from Wilson, Software Design and Development Preliminary Course pp
Creating Noninput Items
Procedures Oracle & MySQL
Presentation transcript:

Copyright Ó Oracle Corporation, All rights reserved Writing Flexible Code

21-2 Copyright Ó Oracle Corporation, All rights reserved. Objectives After completing this lesson, you should be able to do the following: Describe flexible code State the advantages of using system variables Identify built-in subprograms that assist flexible coding Write code to reference objects by internal ID Write code to reference objects indirectly After completing this lesson, you should be able to do the following: Describe flexible code State the advantages of using system variables Identify built-in subprograms that assist flexible coding Write code to reference objects by internal ID Write code to reference objects indirectly

21-3 Copyright Ó Oracle Corporation, All rights reserved. Flexible Code Is reusable code Is generic code Avoids hard-coded object names Makes maintenance easier Increases productivity Is reusable code Is generic code Avoids hard-coded object names Makes maintenance easier Increases productivity

21-4 Copyright Ó Oracle Corporation, All rights reserved. System Variables for Current Context Input focus: –SYSTEM.CURSOR_BLOCK –SYSTEM.CURSOR_RECORD –SYSTEM.CURSOR_ITEM –SYSTEM.CURSOR_VALUE Input focus: –SYSTEM.CURSOR_BLOCK –SYSTEM.CURSOR_RECORD –SYSTEM.CURSOR_ITEM –SYSTEM.CURSOR_VALUE

21-5 Copyright Ó Oracle Corporation, All rights reserved. System Variables for Current Context Trigger focus: –SYSTEM.TRIGGER_BLOCK –SYSTEM.TRIGGER_RECORD –SYSTEM.TRIGGER_ITEM Trigger focus: –SYSTEM.TRIGGER_BLOCK –SYSTEM.TRIGGER_RECORD –SYSTEM.TRIGGER_ITEM

21-6 Copyright Ó Oracle Corporation, All rights reserved. System Status Variables ENTER; IF :SYSTEM.BLOCK_STATUS = ’ CHANGED ’ THEN COMMIT_FORM; END IF; CLEAR_BLOCK; ENTER; IF :SYSTEM.BLOCK_STATUS = ’ CHANGED ’ THEN COMMIT_FORM; END IF; CLEAR_BLOCK; IF :SYSTEM.CURSOR_BLOCK = ’ S_ORD ’ THEN GO_BLOCK( ’ S_ITEM ’ ); ELSIF :SYSTEM.CURSOR_BLOCK = ’ S_ITEM ’ THEN GO_BLOCK( ’ S_INVENTORY ’ ); ELSIF :SYSTEM.CURSOR_BLOCK = ’ S_INVENTORY ’ THEN GO_BLOCK( ’ S_ORD ’ ); END IF; IF :SYSTEM.CURSOR_BLOCK = ’ S_ORD ’ THEN GO_BLOCK( ’ S_ITEM ’ ); ELSIF :SYSTEM.CURSOR_BLOCK = ’ S_ITEM ’ THEN GO_BLOCK( ’ S_INVENTORY ’ ); ELSIF :SYSTEM.CURSOR_BLOCK = ’ S_INVENTORY ’ THEN GO_BLOCK( ’ S_ORD ’ ); END IF; When-Button-Pressed

21-7 Copyright Ó Oracle Corporation, All rights reserved. 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_APPLICATION_PROPERTY GET_FORM_PROPERTY GET_BLOCK_PROPERTY GET_RELATION_PROPERTY GET_RECORD_PROPERTY GET_ITEM_PROPERTY GET_ITEM_INSTANCE_PROPERTY

21-8 Copyright Ó Oracle Corporation, All rights reserved. GET_object_PROPERTY Built-ins GET_LOV_PROPERTY GET_RADIO_BUTTON_PROPERTY GET_MENU_ITEM_PROPERTY GET_CANVAS_PROPERTY GET_TAB_PAGE_PROPERTY GET_VIEW_PROPERTY GET_WINDOW_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

21-9 Copyright Ó Oracle Corporation, All rights reserved. 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_APPLICATION_PROPERTY SET_FORM_PROPERTY SET_BLOCK_PROPERTY SET_RELATION_PROPERTY SET_RECORD_PROPERTY SET_ITEM_PROPERTY SET_ITEM_INSTANCE_PROPERTY

21-10 Copyright Ó Oracle Corporation, All rights reserved. SET_object_PROPERTY Built-ins SET_LOV_PROPERTY SET_RADIO_BUTTON_PROPERTY SET_MENU_ITEM_PROPERTY SET_CANVAS_PROPERTY SET_TAB_PAGE_PROPERTY SET_VIEW_PROPERTY SET_WINDOW_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

21-11 Copyright Ó Oracle Corporation, All rights reserved. Object IDs ID lov_id := FIND_LOV( ’ my_lov ’ )...SHOW_LOV(lov_id) ID...SHOW_LOV( ’ my_lov ’ ) Finding the object ID: Finding the object ID: Referencing an object by ID: Referencing an object by ID: Referencing an object by name: Referencing an object by name:

21-12 Copyright Ó Oracle Corporation, All rights reserved. FIND_ Built-ins FIND_FORM FIND_BLOCK FIND_ITEM FIND_RELATION FIND_LOV FIND_FORM FIND_BLOCK FIND_ITEM FIND_RELATION FIND_LOV ID

21-13 Copyright Ó Oracle Corporation, All rights reserved. FIND_ Built-ins FIND_WINDOW FIND_VIEW FIND_CANVAS FIND_ALERT FIND_EDITOR FIND_WINDOW FIND_VIEW FIND_CANVAS FIND_ALERT FIND_EDITOR ID

21-14 Copyright Ó Oracle Corporation, All rights reserved. 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. 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.

21-15 Copyright Ó Oracle Corporation, All rights reserved. Using Object IDs Example: DECLARE item_var item; BEGIN item_var := FIND_ITEM(:SYSTEM.CURSOR_ITEM); SET_ITEM_PROPERTY(item_var,position,30,55); SET_ITEM_PROPERTY(item_var,prompt_text, ’ Current ’ ); END; DECLARE item_var item; BEGIN item_var := FIND_ITEM(:SYSTEM.CURSOR_ITEM); SET_ITEM_PROPERTY(item_var,position,30,55); SET_ITEM_PROPERTY(item_var,prompt_text, ’ Current ’ ); END;

21-16 Copyright Ó Oracle Corporation, All rights reserved. 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 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

21-17 Copyright Ó Oracle Corporation, All rights reserved. Referencing Objects Indirectly Direct reference Indirect reference ITEM A KIDSPORT ITEM B ITEM A Kidsport

21-18 Copyright Ó Oracle Corporation, All rights reserved. Referencing Objects Indirectly The NAME_IN function: Returns: –The contents of variable –Character string Use conversion functions for NUMBER and DATE The NAME_IN function: Returns: –The contents of variable –Character string Use conversion functions for NUMBER and DATE

21-19 Copyright Ó Oracle Corporation, All rights reserved. Referencing Objects Indirectly The COPY procedure allows: Direct copy Indirect copy The COPY procedure allows: Direct copy Indirect copy COPY( ’ Kidsport ’, ’ S_CUSTOMER.name ’ ); COPY( ’ Kidsport ’,:GLOBAL.customer_name);

21-20 Copyright Ó Oracle Corporation, All rights reserved. Summary Use system variables: – –To avoid hard-coding object names – –To return information about the current state of the form Use GET_object_PROPERTY built-ins to return current property values for Form Builder objects. Use system variables: – –To avoid hard-coding object names – –To return information about the current state of the form Use GET_object_PROPERTY built-ins to return current property values for Form Builder objects.

21-21 Copyright Ó Oracle Corporation, All rights reserved. Summary Use object IDs to improve performance. Use indirect referencing to allow form module variables to be referenced in library and menu modules. Use object IDs to improve performance. Use indirect referencing to allow form module variables to be referenced in library and menu modules.

21-22 Copyright Ó Oracle Corporation, All rights reserved. Practice 21 Overview This practices covers the following topics: Populating product images only when the image item is displayed Modifying the When-Button-Pressed trigger of the Image_Button in order to use object IDs instead of object names This practices covers the following topics: Populating product images only when the image item is displayed Modifying the When-Button-Pressed trigger of the Image_Button in order to use object IDs instead of object names