... Flexiblen Code schreiben



Ähnliche Dokumente
Dipl. Inf. Dipl. Math. Y. Orkunoglu Datum:

VIDA ADMIN KURZANLEITUNG

Die Beschreibung bezieht sich auf die Version Dreamweaver 4.0. In der Version MX ist die Sitedefinition leicht geändert worden.

Bedienungsanleitung. Matthias Haasler. Version 0.4. für die Arbeit mit der Gemeinde-Homepage der Paulus-Kirchengemeinde Tempelhof

QR-FUNKTION. Informationen über zu erledigende Aufgaben an das Reinigungspersonal senden.

O UTLOOK EDITION. Was ist die Outlook Edition? Installieren der Outlook Edition. Siehe auch:

Oracle Forms. Aufbau und Bestandteile von Formularen. Erstellen eines neuen Blocks. Starten von Oracle Forms

Lernprogramm "Veröffentlichen von WMS- Services"

How to do? Projekte - Zeiterfassung

OSF Integrator für Btracking und Salesforce Anleitung für die Nutzer

Grundfunktionen und Bedienung

Datenbanken Kapitel 2

Aufklappelemente anlegen

Suche schlecht beschriftete Bilder mit Eigenen Abfragen

Stellvertretenden Genehmiger verwalten. Tipps & Tricks

Er musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt

Kommunikations-Management

Access Grundlagen für Anwender. Susanne Weber. 1. Ausgabe, 1. Aktualisierung, Juni 2013

Das Modul Hilfsmittel ermöglicht den Anwender die Verwaltung der internen Nachrichten, Notizen, Kontakte, Aufgaben und Termine.

Bauteilattribute als Sachdaten anzeigen

Benutzeranleitung Superadmin Tool

Version Deutsch In diesem HOWTO wird beschrieben wie Sie Ihren Gästen die Anmeldung über eine SMS ermöglichen.

Task: Nmap Skripte ausführen

Access [basics] Rechnen in Berichten. Beispieldatenbank. Datensatzweise berechnen. Berechnung im Textfeld. Reporting in Berichten Rechnen in Berichten

1. Allgemeines. Mit der Vertragsverwaltung können u.a.

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Word 2010 Schnellbausteine

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten

Artikel Schnittstelle über CSV

tentoinfinity Apps 1.0 EINFÜHRUNG

Rechnung Angebot Zeiterfassung

ZIMT-Dokumentation für Studierende Webmail-Oberfläche (Roundcube)

Übung - Konfigurieren einer Windows-XP-Firewall

Tevalo Handbuch v 1.1 vom

In diesem Tutorial lernen Sie, wie Sie einen Termin erfassen und verschiedene Einstellungen zu einem Termin vornehmen können.

SharePoint Demonstration

Für die Einrichtung des elektronischen Postfachs melden Sie sich wie gewohnt in unserem Online-Banking auf an.

3. GLIEDERUNG. Aufgabe:

Handbuch. NAFI Online-Spezial. Kunden- / Datenverwaltung. 1. Auflage. (Stand: )

Seite 1 von 14. Cookie-Einstellungen verschiedener Browser

Newsletter. 1 Erzbistum Köln Newsletter

Access Grundlagen für Anwender. Andrea Weikert 1. Ausgabe, 1. Aktualisierung, Juli inkl. zusätzlichem Übungsanhang ACC2010-UA

Excel Funktionen durch eigene Funktionen erweitern.

Zeichen bei Zahlen entschlüsseln

... Fenster und Content Canvases erstellen

Handbuch zur Anlage von Turnieren auf der NÖEV-Homepage

FIS: Projektdaten auf den Internetseiten ausgeben

Version 1.0 Datum Anmeldung... 2

Anleitung für die Hausverwaltung

Übung - Datensicherung und Wiederherstellung in Windows 7

Facebook I-Frame Tabs mit Papoo Plugin erstellen und verwalten

Der vorliegende Konverter unterstützt Sie bei der Konvertierung der Datensätze zu IBAN und BIC.

Um dies zu tun, öffnen Sie in den Systemeinstellungen das Kontrollfeld "Sharing". Auf dem Bildschirm sollte folgendes Fenster erscheinen:

Kurzanleitung MAN E-Learning (WBT)

12. Dokumente Speichern und Drucken

LISP. Eine Einführung

EMC SourceOne TM für Microsoft SharePoint 7.1 Archivsuche Kurzreferenz

Anleitung zur Benutzung des jobup.ch Stellensuchendekontos

Erstellen einer in OWA (Outlook Web App)

Benutzerkonto unter Windows 2000

Plugins. Stefan Salich Stand

Lehrer: Einschreibemethoden

Windows. Workshop Internet-Explorer: Arbeiten mit Favoriten, Teil 1

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER

Bedienungsanleitung. Stand: Copyright 2011 by GEVITAS GmbH

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

Die Dateiablage Der Weg zur Dateiablage

Nach der Anmeldung im Backend Bereich landen Sie im Kontrollzentrum, welches so aussieht:

Kurzanleitung: Abonnenten-Import

Dokumentenverwaltung

Erstellen eines Formulars

VERWALTUNG. Postfächer, Autoresponder, Weiterleitungen, Aliases. Bachstraße 47, 3580 Mödring

1. Adressen für den Serienversand (Briefe Katalogdruck Werbung/Anfrage ) auswählen. Die Auswahl kann gespeichert werden.

Handbuch. Anlegen von Vermittlern, Gruppen und Anwendern. 1. Auflage. (Stand: )

LimeSurvey -Anbindung

Dieser Ablauf soll eine Hilfe für die tägliche Arbeit mit der SMS Bestätigung im Millennium darstellen.

Enigmail Konfiguration

1 Einleitung. Lernziele. automatische Antworten bei Abwesenheit senden. Einstellungen für automatische Antworten Lerndauer. 4 Minuten.

Tipps und Tricks zu Netop Vision und Vision Pro

Ordner Berechtigung vergeben Zugriffsrechte unter Windows einrichten

Visualisierung auf Büro PC s mit dem ibricks Widget

Novell Client. Anleitung. zur Verfügung gestellt durch: ZID Dezentrale Systeme. Februar ZID Dezentrale Systeme

Persönliches Adressbuch

Stadt Luzern. 1. Wozu ein Benutzerkonto?

Sichern der persönlichen Daten auf einem Windows Computer

Xcode/Cocoa/Objective-C Crashkurs Programmieren unter Mac OS X

SQL (Structured Query Language) Schemata Datentypen

Anwendungsbeispiele Buchhaltung

Das Starten von Adami Vista CRM

Elexis-BlueEvidence-Connector

Der neue persönliche Bereich/die CommSy-Leiste

Inhalt. meliarts. 1. Allgemeine Informationen Administration Aufruf Das Kontextmenü Vorlagen...

Handbuch zum Excel Formular Editor

Aktivieren von Onlinediensten im Volume Licensing Service Center

Auf der linken Seite wählen Sie nun den Punkt Personen bearbeiten.

Intranet Moodle

Anleitung Typo3-Extension - Raumbuchungssystem

Die Erstellung eigener Strukturprofile

Bei der Anlage von Pauschalen ist folgendes zu beachten!!!!!!!!

Transkript:

21... Flexiblen Code schreiben

Kapitel 21: Flexiblen Code schreiben Ziele Am Ende dieser Unterrichtseinheit verfügen Sie über folgende Kenntnisse: Flexiblen Code beschreiben, Vorteile der Verwendung von Systemvariablen aufführen, eingebaute Prozeduren erkennen, die flexible Codierung unterstützen, Code zum Referenzieren von Objekten durch interne ID schreiben, Code zum indirekten Referenzieren von Objekten schreiben. 21-2 Copyright Oracle Corporation, 1998. All rights reserved. 21-2 Oracle Developer: Form Builder I

Einführung Einführung Übersicht Oracle Developer Form Builder verfügt über eine Vielzahl von Funktionen, die es Ihnen ermöglichen, flexiblen, wiederverwendbaren Code zu erstellen. Ziele Am Ende dieser Unterrichtseinheit verfügen Sie über folgende Kenntnisse: Flexiblen Code beschreiben, die Vorteile der Verwendung von Systemvariablen beschreiben, eingebaute Prozeduren erkennen, die flexible Codierung unterstützen, Code zum Referenzieren von Objekten mittels interner ID schreiben, Code zum indirekten Referenzieren von Objekten schreiben. Oracle Developer: Form Builder I 21-3

Kapitel 21: Flexiblen Code schreiben Flexibler Code Ist wiederverwendbarer Code Ist generischer Code Vermeidet fest codierte (hard-coded) Objektnamen Vereinfacht die Verwaltung Erhöht die Produktivität 21-3 Copyright Oracle Corporation, 1998. All rights reserved. 21-4 Oracle Developer: Form Builder I

Was versteht man unter flexiblem Code? Was versteht man unter flexiblem Code? Flexibler Code ist Code, den Sie wiederverwenden können. Flexibler Code ist häufig generischer Code, den Sie in jedem beliebigen Form-Modul in einer Anwendung verwenden können. Normalerweise werden dabei anstelle von fest codierten (hardcoded) Objektnamen Systemvariablen verwendet. Warum flexiblen Code schreiben? Flexibler Code bietet folgende Vorteile: Er ist für Sie und für andere einfacher zu verwalten. Er erhöht die Produktivität. Oracle Developer: Form Builder I 21-5

Kapitel 21: Flexiblen Code schreiben Systemvariablen für aktuellen Kontext Eingabefokus SYSTEM.CURSOR_BLOCK SYSTEM.CURSOR_RECORD SYSTEM.CURSOR_ITEM SYSTEM.CURSOR_VALUE 21-4 Copyright Oracle Corporation, 1998. All rights reserved. Systemvariablen für aktuellen Kontext Trigger-Fokus SYSTEM.TRIGGER_BLOCK SYSTEM.TRIGGER_RECORD SYSTEM.TRIGGER_ITEM 21-5 Copyright Oracle Corporation, 1998. All rights reserved. 21-6 Oracle Developer: Form Builder I

Systemvariablen für flexible Codierung verwenden Systemvariablen für flexible Codierung verwenden In diesem Kapitel verwenden Sie die Systemvariablen, die den aktuellen Status des Datensatzes, des Blocks und der Form liefern, sowie die Systemvariablen, die zurückgeben, wo sich der Eingabefokus aktuell befindet. Systemvariablen zum Ermitteln des aktuellen Eingabefokus Systemvariable CURSOR_BLOCK CURSOR_RECORD CURSOR_ITEM CURSOR_VALUE Funktion Bestimmt, welcher Block aktiviert ist. Bestimmt, welcher Datensatz aktiviert ist. Bestimmt, welches Item in welchem Block aktiviert ist. Bestimmt den Wert des aktivierten Items. Systemvariablen zum Ermitteln des aktuellen Trigger-Fokus Systemvariable TRIGGER_BLOCK TRIGGER_RECORD TRIGGER_ITEM Funktion Bestimmt den Block, der aktiviert war, als der Trigger ursprünglich ausgelöst wurde. Bestimmt die Nummer des Datensatzes, den Form Builder gerade verarbeitet. Bestimmt den Block und das Item, die aktiviert waren, als der Trigger ursprünglich ausgelöst wurde. Hinweis: Die beste Art, Systemvariablen kennenzulernen, ist, während der Ausführung einer Form ihre Werte zu betrachten. Sie können die Systemvariablen mit Hilfe des Debuggers überprüfen. Oracle Developer: Form Builder I 21-7

Kapitel 21: Flexiblen Code schreiben Systemstatus-Variablen When-Button-Pressed 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; 21-6 Copyright Oracle Corporation, 1998. All rights reserved. 21-8 Oracle Developer: Form Builder I

Systemvariablen für flexible Codierung verwenden Systemvariablen zum Bestimmen des aktuellen Status der Form Sie können diese Systemstatus-Variablen verwenden, um Code zu erstellen, der für einen bestimmten Status eine Aktion und für einen anderen Status eine andere Aktion durchführt. SYSTEM.RECORD_STATUS CHANGED INSERT NEW QUERY Beschreibung Der Datensatz wurde aus der Datenbank abgerufen, und ein Basistabellen-Item zum Datensatz wurde aktualisiert. Der Benutzer (oder ein Trigger) hat einen Wert in ein Basistabellen-Item eines nicht abgerufenen Datensatzes eingegeben. Der Benutzer (oder ein Trigger) hat noch keine Werte in das Basistabellen-Item des Datensatzes eingegeben. Der Datensatz wurde aus der Datenbank abgerufen, es wurde aber noch kein Basistabellen-Item zum Datensatz aktualisiert. SYSTEM.BLOCK_STATUS CHANGED NEW QUERY Beschreibung Der Block enthält nur einen Datensatz mit dem Status CHANGED oder INSERT. Der Block enthält ausschließlich NEW-Datensätze. Der Block enthält ausschließlich QUERY-Datensätze. SYSTEM.FORM_STATUS CHANGED NEW QUERY Beschreibung Die Form enthält mindestens einen Datensatz mit dem Status CHANGED oder INSERT. Die Form enthält ausschließlich NEW-Datensätze. Die Form enthält ausschließlich QUERY-Datensätze. Oracle Developer: Form Builder I 21-9

Kapitel 21: Flexiblen Code schreiben Eingebaute Prozeduren GET_ object _PROPERTY GET_APPLICATION_PROPERTY GET_FORM_PROPERTY GET_BLOCK_PROPERTY GET_RELATION_PROPERTY GET_RECORD_PROPERTY GET_ITEM_PROPERTY GET_ITEM_INSTANCE_PROPERTY 21-7 Copyright Oracle Corporation, 1998. All rights reserved. Eingebaute Prozeduren GET_ object _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-8 Copyright Oracle Corporation, 1998. All rights reserved. 21-10 Oracle Developer: Form Builder I

Eingebaute Prozeduren für flexible Codierung verwenden Eingebaute Prozeduren für flexible Codierung verwenden Einige der eingebauten Prozeduren von Form Builder bieten die selbe Art von Runtime-Statusinformation wie eingebaute Systemvariablen. GET_APPLICATION_PROPERTY Die eingebaute Prozedur GET_APPLICATION_PROPERTY gibt Informationen über die aktuelle Form Builder-Anwendung zurück. Beispiel Das folgende Beispiel ruft den Benutzernamen und Betriebssysteminformationen ab: :GLOBAL.username := GET_APPLICATION_PROPERTY(USERNAME); :GLOBAL.o_sys := GET_APPLICATION_PROPERTY(OPERATING_SYSTEM); GET_BLOCK_PROPERTY Die eingebaute Prozedur GET_BLOCK_PROPERTY gibt Informationen über einen bestimmten Block zurück. Beispiel Um festzustellen, welcher Datensatz aktuell auf der ersten (obersten) Zeile eines Blocks sichtbar ist, verwenden Sie:...GET_BLOCK_PROPERTY( blockname,top_record)... GET_ITEM_PROPERTY Die eingebaute Prozedur GET_ITEM_PROPERTY gibt Informationen über ein bestimmtes Item zurück. Beispiel Um festzustellen, auf welcher Canvas das aktivierte Item angezeigt wird, verwenden Sie: DECLARE cv_name varchar2(15); BEGIN cv_name := GET_ITEM_PROPERTY(:SYSTEM.CURSOR_ITEM,item_canvas);... Oracle Developer: Form Builder I 21-11

Kapitel 21: Flexiblen Code schreiben Eingebaute Prozeduren SET_ object _PROPERTY SET_APPLICATION_PROPERTY SET_FORM_PROPERTY SET_BLOCK_PROPERTY SET_RELATION_PROPERTY SET_RECORD_PROPERTY SET_ITEM_PROPERTY SET_ITEM_INSTANCE_PROPERTY 21-9 Copyright Oracle Corporation, 1998. All rights reserved. Eingebaute Prozeduren SET_ object _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-10 Copyright Oracle Corporation, 1998. All rights reserved. 21-12 Oracle Developer: Form Builder I

Eingebaute Prozeduren für flexible Codierung verwenden SET_ITEM_INSTANCE_PROPERTY Die eingebaute Prozedur SET_ITEM_INSTANCE_PROPERTY verändert die angegebene Instanz eines Item in einem Block durch Verändern der angegebenen Item-Eigenschaft. Beispiel Im folgenden Beispiel wird das visuelle Attribut für den aktuellen Datensatz des aktuellen Items auf VA_CURR festgelegt: SET_ITEM_INSTANCE_PROPERTY(:SYSTEM.CURSOR_ITEM, VISUAL_ATTRIBUTE, CURRENT_RECORD, VA_CURR ); SET_MENU_ITEM_PROPERTY Die eingebaute Prozedur SET_MENU_ITEM_PROPERTY verändert die angegebenen Eigenschaften eines Menü-Items. Beispiel Um das Item Save Menu im Menü File zu aktivieren, verwenden Sie folgendes: SET_MENU_ITEM_PROPERTY( FILE.SAVE,ENABLED,PROPERTY_TRUE); SET_TAB_PAGE_PROPERTY Die eingebaute Prozedur SET_TAB_PAGE_PROPERTY legt die Registerkarten-Eigenschaften der angegebenen Tab Canvas Page fest (Leinwandtyp Registerkarte). Beispiel Um tab_page_1 zu aktivieren, falls es bereits deaktiviert wurde, verwenden Sie: DECLARE tbpg_id TAB_PAGE; BEGIN tbpg_id := FIND_TAB_PAGE( tab_page_1 ); IF GET_TAB_PAGE_PROPERTY(tbpg_id, enabled) = FALSE THEN SET_TAB_PAGE_PROPERTY(tbpg_id, enabled, property_true); END IF; END; Oracle Developer: Form Builder I 21-13

Kapitel 21: Flexiblen Code schreiben Objekt-IDs Objekt-ID suchen lov_id := FIND_LOV( my_lov ) ID Objekt nach ID referenzieren...show_lov(lov_id) Objekt nach Namen referenzieren...show_lov( my_lov ) ID 21-11 Copyright Oracle Corporation, 1998. All rights reserved. 21-14 Oracle Developer: Form Builder I

Objekte über interne ID referenzieren Objekte über interne ID referenzieren Form Builder weist jedem von Ihnen erstellten Objekt eine ID zu. Unter einer Objekt-ID versteht man einen internen Wert, der nie angezeigt wird. Sie können die ID eines Objekts anzeigen, indem Sie die Prozedur FIND_ zu dem Objekt aufrufen. Die Prozeduren FIND_ setzen einen vollqualifizierten Objektnamen als Parameter voraus. Verwenden Sie beispielsweise zum Verweisen auf ein Item den Objektnamen BLOCKNAME.ITEMNAME. Die Rückgabewerte der Prozeduren FIND_ (die Objekt-IDs) haben einen bestimmten Typ. Die Typen von Objekt-IDs sind in Form Builder vordefiniert. Jedes Objekt hat einen anderen Typ. Drei Gründe für die Verwendung von Objekt-IDs Performance verbessern: Form Builder sucht das Objekt nur einmal, wenn Sie die Prozedur FIND_ erstmals aufrufen, um die ID abzufragen. Wann immer Sie in einem Trigger über den Namen auf ein Objekt verweisen, muß Form Builder die Objekt-ID jedes Malsuchen. Generischeren Code erstellen. Testen, ob ein Objekt existiert (über die Funktion ID_NULL und das Objekt FIND_ ). Oracle Developer: Form Builder I 21-15

Kapitel 21: Flexiblen Code schreiben Eingebaute Prozeduren FIND_ FIND_FORM FIND_BLOCK FIND_ITEM FIND_RELATION FIND_LOV ID 21-12 Copyright Oracle Corporation, 1998. All rights reserved. Eingebaute Prozeduren FIND_ FIND_WINDOW FIND_VIEW FIND_CANVAS FIND_ALERT FIND_EDITOR ID 21-13 Copyright Oracle Corporation, 1998. All rights reserved. 21-16 Oracle Developer: Form Builder I

Objekte über interne ID referenzieren Form Builder-Klassentypen In der nachfolgenden Tabelle sind einige der Prozeduren FIND_ aufgelistet, zusammen mit den Objektklassen, die sie verwenden, und mit den Rückgabetypen, die sie produzieren. Objektklasse Prozedur Rückgabetyp Alert FIND_ALERT ALERT Block FIND_BLOCK BLOCK Canvas FIND_CANVAS CANVAS Editor FIND_EDITOR EDITOR Form FIND_FORM FORMMODULE Item FIND_ITEM ITEM LOV FIND_LOV LOV Relation FIND_RELATION RELATION View FIND_VIEW VIEWPORT Window FIND_WINDOW WINDOW Oracle Developer: Form Builder I 21-17

Kapitel 21: Flexiblen Code schreiben Objekt-IDs verwenden PL/SQL-Variable des selben Datentyps deklarieren. Variable für spätere Referenz auf Objekt verwenden. Variable nur in aktuellem PL/SQL-Block verwenden. 21-14 Copyright Oracle Corporation, 1998. All rights reserved. Objekt-IDs verwenden Beispiel 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-15 Copyright Oracle Corporation, 1998. All rights reserved. 21-18 Oracle Developer: Form Builder I

Variablen für Objekt-IDs deklarieren Um eine Objekt-ID zu verwenden, müssen Sie diese zuerst einer Variablen zuordnen. Sie müssen eine Variable des selben Typs wie die Objekt-ID deklarieren. Im folgenden Beispiel wurde die eingebaute Prozedur FIND_ITEM verwendet, um die ID des Items, das aktuell aktiviert ist, der Variablen id_var zuzuordnen. Sobald Sie eine Objekt-ID einer Variablen in einem Trigger oder PL/SQL- Programmblock zuordnen, können Sie diese Variable verwenden, um das Objekt zu referenzieren, statt dafür den Objektnamen zu verwenden. DECLARE id_var item; BEGIN id_var := FIND_ITEM(:SYSTEM.CURSOR_ITEM);... END; Aus den beiden nachfolgenden Beispielen geht hervor, daß Sie entweder einen Item-Namen oder eine Item-ID an die eingebaute Prozedur SET_ITEM_PROPERTY weitergeben können. Die folgenden Aufrufe sind logisch entsprechend: SET_ITEM_PROPERTY( S_ITEM.price,position,50,35); SET_ITEM_PROPERTY(id_var,position,50,35); Sie können entweder Objekt-IDs oder Objektnamen in der selben Argumentliste verwenden, vorausgesetzt, jedes einzelne Argument verweist auf ein bestimmtes Objekt. Es ist jedoch nicht möglich, mit einer Objekt-ID und einem Objektnamen einen voll qualifizierten object_name (blockname.itemname) zu bilden. Der folgende Aufruf ist demnach unzulässig: GO_ITEM(block_id. item_name ); Hinweis: Verwenden Sie die eingebauten Prozeduren FIND_ nur, um ein Objekt im selben Trigger oder PL/SQL-Programmblock mehrmals zu referenzieren. Oracle Developer: Form Builder I 21-19

Kapitel 21: Flexiblen Code schreiben Objekt-IDs verwenden PL/SQL-Variable hat begrenzten Wirkungskreis. Erweiterung.id (.id extension): Vergrößert den Wirkungskreis Konvertiert in numerisches Format Akzeptiert Zuordnung zu globaler Variabler Konvertiert zurück in Objekt-Datentyp 21-16 Copyright Oracle Corporation, 1998. All rights reserved. 21-20 Oracle Developer: Form Builder I

Objekt-IDs außerhalb des ursprünglichen PL/SQL-Blocks verwenden Sie haben gesehen, wie Objekt-IDs im Trigger oder Programmblock mit Hilfe von PL/SQL-Variablen referenziert werden. Sie können diese PL/SQL-Variablen nur im aktuellen PL/SQL-Block referenzieren; Sie können jedoch den Wirkungsbereich einer Objekt-ID erweitern. Um eine Objekt-ID außerhalb des ursprünglichen PL/SQL-Blocks zu referenzieren, müssen Sie die ID für Ihre deklarierte PL/SQL-Variable in numerisches Format (mit der Erweiterung.id) konvertieren und dann einer globalen Variablen zuordnen. Beispiel Im folgenden Trigger-Code-Beispiel wird die Objekt-ID erst einer lokalen PL/SQL-Variablen (item_var) und dann einer globalen Variablen (global.item) zugeordnet. DECLARE item_var item; BEGIN item_var := FIND_ITEM(:SYSTEM.CURSOR_ITEM); :GLOBAL.item := item_var.id; END; Sie können die globale Variable innerhalb der Anwendung weitergeben. Um die Objekt-ID wiederverwenden zu können, müssen Sie sie in ihren ursprünglichen Datentyp zurückkonvertieren. Beispiel Das folgende Beispiel zeigt die Konvertierung der globalen Variablen zurück in ihren ursprünglichen Datentyp PL/SQL Variable. DECLARE item_var item; BEGIN item_var.id := TO_NUMBER(:GLOBAL.item); GO_ITEM(item_var); END; Oracle Developer: Form Builder I 21-21

Kapitel 21: Flexiblen Code schreiben Objekte indirekt referenzieren Direkte Referenz ITEM A KIDSPORT Indirekte Referenz ITEM B ITEM A ITEM A KIDSPORT 21-17 Copyright Oracle Corporation, 1998. All rights reserved. 21-22 Oracle Developer: Form Builder I

Items indirekt referenzieren Items indirekt referenzieren Durch indirektes Referenzieren von Items können Sie generischeren, wiederverwendbaren Code erstellen. Indem Sie Variablen anstelle von tatsächlichen Item-Namen verwenden, können Sie einen PL/SQL- Programmblock erstellen, der jedes Item verwendet, dessen Name der angegebenen Variablen zugeordnet ist. Sie können Items indirekt mit den eingebauten Prozeduren NAME_IN und COPY referenzieren. Hinweis: Verwenden Sie indirekte Referenzierung, um Prozeduren und Funktionen in einem Bibliotheksmodul zu erstellen, da direkte Referenzen nicht aufgelöst werden können. Oracle Developer: Form Builder I 21-23

Kapitel 21: Flexiblen Code schreiben Objekte indirekt referenzieren Funktion NAME_IN Rückgabewert Inhalt einer Variablen Zeichenfolge (Character String) Verwendung Konvertierungsfunktionen für NUMBER und DATE 21-18 Copyright Oracle Corporation, 1998. All rights reserved. Objekte indirekt referenzieren Prozedur COPY Ermöglicht Direktes Kopieren COPY( Kidsport, S_CUSTOMER.name ); Indirektes Kopieren COPY( Kidsport,:GLOBAL.customer_name); 21-19 Copyright Oracle Corporation, 1998. All rights reserved. 21-24 Oracle Developer: Form Builder I

Items indirekt referenzieren Eingebaute Funktion NAME_IN verwenden Die Funktion NAME_IN gibt den Inhalt einer angegebenen Variablen zurück. Die folgenden Anweisungen sind äquivalent. Die erste verwendet eine direkte Referenz auf customer.name, während die zweite eine indirekte Referenz verwendet: IF :S_CUSTOMER.name = Kidsport... In einer Bibliothek könnten Sie diese direkte Referenz vermeiden, indem Sie folgendes verwenden: IF NAME_IN( S_CUSTOMER.name ) = Kidsport... Bei dem Rückgabewert von NAME_IN handelt es sich stets um eine Zeichenfolge. Um NAME_IN für ein Datums- oder ein Nummern-Item zu verwenden, konvertieren Sie die Zeichenfolge in den gewünschten Datentyp mit der entsprechenden Konvertierungsfunktion. Beispiel: date_var := TO_DATE(NAME_IN( S_ORD.date_ordered )); Eingebaute Prozedur COPY verwenden Die eingebaute Prozedur COPY weist einer angegebenen Variablen oder einem Item einen angegebenen Wert zu. Im Gegensatz zur Standard- PL/SQL-Zuordnungsanweisung, können Sie mit Hilfe der eingebauten Prozedur COPY das Item, dessen Wert festgelegt wird, indirekt referenzieren. Das erste Beispiel unten zeigt direkte und das zweite indirekte Referenzierung: COPY( Kidsport, S_CUSTOMER.name ); COPY( Kidsport,:GLOBAL.customer_name); Verwenden Sie die eingebauten Prozeduren COPY und NAME_IN, um einem Item, dessen Name in einer globalen Variablen gespeichert ist, einen Wert zuzuordnen, wie im folgenden Beispiel dargestellt: COPY( Kidsport,NAME_IN( GLOBAL.customer_name )); Oracle Developer: Form Builder I 21-25

Kapitel 21: Flexiblen Code schreiben Zusammenfassung Systemvariablen Um fest codierte (hard-coded) Objektnamen zu vermeiden Um Informationen über den aktuellen Zustand der Form zurückzugeben Eingebaute Prozeduren GET_object_PROPERTY verwenden Um aktuelle Eigenschaftswerte für Form Builder-Objekte zurückzugeben 21-20 Copyright Oracle Corporation, 1998. All rights reserved. Zusammenfassung Objekt-IDs Um die Performance zu verbessern Indirekte Referenzierung Um die Referenzierung von Form- Modul-Variablen in Bibliotheks- und Menümodulen zuzulassen 21-21 Copyright Oracle Corporation, 1998. All rights reserved. 21-26 Oracle Developer: Form Builder I

Zusammenfassung Zusammenfassung Folgendes verwenden Sie zum Erstellen von flexiblem Code: Systemvariablen - Um fest codierte (hardcoded) Objektnamen zu vermeiden - Um Informationen über den aktuellen Zustand der Form zurückzugeben Eingebaute Prozeduren GET_object_PROPERTY - Um die aktuellen Eigenschaftswerte für Form Builder-Objekte zurückzugeben Objekt-IDs - Um die Performance zu verbessern Indirekte Referenzierung - Um zuzulassen, daß Form-Modul-Variablen in Bibliotheks- und Menümodulen referenziert werden Oracle Developer: Form Builder I 21-27

Kapitel 21: Flexiblen Code schreiben Übung 21 - Übersicht Produkt-Image nur dann mit Bilder füllen, wenn das Image Item angezeigt wird. Trigger When-Button-Pressed der Schaltfläche Image_Button ändern, so daß Objekt-IDs anstelle von Objektamen verwendet werden. 21-22 Copyright Oracle Corporation, 1998. All rights reserved. 21-28 Oracle Developer: Form Builder I

Übungsteil - Übersicht: Kapitel 21 Übungsteil - Übersicht: Kapitel 21 In dieser Übung verwenden Sie Eigenschaften und Variablen in der Form ORDGxx, um flexible Verwendung von Code zu ermöglichen. Sie verwenden auch Objekt-IDs. Übungsinhalte Sie füllen die Produkt-Images nur dann mit Daten, wenn das Image-Item angezeigt wird. Sie verändern den Trigger When-Button-Pressed der Schaltfläche Image_Button dahingehend, daß Objekt-IDs anstelle von Objektnamen verwendet werden. Oracle Developer: Form Builder I 21-29

Kapitel 21: Flexiblen Code schreiben Übung 21 1 Ändern Sie in der Form ORDGxx die Trigger, die die Abbildung eines Produktes anzeigen, sobald das Item Product_Image angezeigt wird. Fügen Sie dem Code einen Test hinzu, um die Eigenschaft Visible für Product_Image zu überprüfen. Führen Sie die Trigger-Aktionen nur dann aus, wenn das Image gerade angezeigt wird. Verwenden Sie die eingebaute Funktion GET_ITEM_PROPERTY. 2 Ändern Sie den Trigger When-Button-Pressed für die Schaltfläche Image_Button dahingehend, daß Objekt-IDs verwendet werden. Verwenden Sie eine Funktion FIND_object, um die IDs der einzelnen vom Trigger referenzierten Items zu erhalten. Deklarieren Sie Variablen für diese IDs, und verwenden Sie sie in jeder Item-Referenz im Trigger. 3 Speichern und kompilieren Sie die Form, und führen Sie sie aus, um diese Funktionen zu testen. 21-30 Oracle Developer: Form Builder I